Page 1 of 1

Trabajar Sobre el Dispositivo

Posted: Fri Jul 03, 2015 9:20 pm
by leandro
Buenas Tardes para todos

Lo que pasa es que tengo conectado un dispositivo por cable al pc. Resulta que necesito correr un proceso de importación de la información pero a la vez, marca en el dispositivo que la información ya fue procesada. Pero cuando intento abrir la base de datos me arroja el siguiente error:

Code: Select all

Application
===========
   Path and name: C:\Cartera\Cartera.Exe (32 bits)
   Size: 1,483,776 bytes
   Compiler version: xHarbour 1.2.3 Intl. (SimpLex) (Build 20140725)
   FiveWin  Version: FWHX 15.01
   Windows version: 6.2, Build 9200 

   Time from start: 0 hours 1 mins 57 secs 
   Error occurred at: 03/07/2015, 16:20:22
   Error description: Error BASE/1002  No existe el alias: d_corte
 

Re: Trabajar Sobre el Dispositivo

Posted: Sat Jul 04, 2015 10:17 am
by Antonio Linares
Leandro,

Puedes mostrar el código ?

Parece que esa área de trabajo se cerró

Re: Trabajar Sobre el Dispositivo

Posted: Sat Jul 04, 2015 1:16 pm
by leandro
Aquí esta el código...

Code: Select all

************************************************************
*Recuperamos la Informacion que viene desde los dispositivos
************************************************************
Function fRecuperaCortes()
Local vEst1,vEst2
Local nCont:=0
uFec:=date()
uTim:=time()
uCou:=alltrim(oLamcla:vCous)


IF FILE (".\dbfs\lamsys\corte.DBF")
  USE ".\dbfs\lamsys\corte" ALIAS d_maestr NEW EXCLUSIVE
  SELE d_maestr
  vEst1 := dbstruct()
  d_maestr->(DBCloseArea())
ENDIF

If !Empty(vGruta)
  If !FILE (vGruta)
    MsgAlert("Archivo No Encontrado"+CRLF+;
             "Intente Nuevamente",oLamcla:mDato)
  Else
    Btn_Grab:disable()
    Btn_Canc:disable()

    USE &vGruta ALIAS d_corte NEW EXCLUSIVE
    SELE d_corte
    vEst2 := dbstruct()
    nRegistros := reccount()
    oProgress3:SetRange( 0, nRegistros )
    oProgress3:SetPos( 0 )


    //if vEst1==vEst2

      SELE d_corte
      Dbgotop()
      Do While !eof()
      vImMa:=d_corte->Manza
      vImLo:=d_corte->Lotes
      vImMe:=d_corte->Mesaf
      vImTi:=d_corte->TipCo
      vImTe:=d_corte->Tecni
      vImCe:=d_corte->Cedul
      vImNo:=d_corte->Nombr
      vImFe:=d_corte->Fecha
      vImHo:=d_corte->Horas
      vImOb:=d_corte->Obser
      vImUs:=d_corte->Usuar
      vImIm:=d_corte->Impor

      if !vImIm
        cVar := "SELECT * FROM lyma_cortes WHERE id_manzana="+ltranspic(vImMa)+" AND id_lote="+ltranspic(vImLo)+" AND lotesmes="+ltranspic(vImMe)+" AND motivo='P' AND tipo_corte="+ltranspic(vImTi)
        oConsBO := FW_OPENRECORDSET(oLamcla:oCon,cVar,adLockOptimistic,adOpenKeyset)
        nRegistros := oConsBO:RecordCount()
        IF nRegistros=0
          oConsBO:Addnew()
      oConsBO:Fields("id_proyecto"):value := 1
          oConsBO:Fields("id_manzana"):value := vImMa
          oConsBO:Fields("id_lote"):value := vImLo
          oConsBO:Fields("docu_terce"):value := vImCe
          oConsBO:Fields("observa"):value := vImOb
          oConsBO:Fields("fecha"):value := vImFe
          oConsBO:Fields("tec_corte"):value := vImTe
          oConsBO:Fields("tipo_corte"):value := vImTi
      if vImTi=1 //agua
            oConsBO:Fields("corte"):value := ".F."
            oConsBO:Fields("corteagua"):value := ".T."
      else
            oConsBO:Fields("corte"):value := ".T."
            oConsBO:Fields("corteagua"):value := ".F."
      endif
          oConsBO:Fields("motivo"):value := "P"
          oConsBO:Fields("lotesmes"):value := vImMe
          oConsBO:Fields("fe_cor_lu"):value := vImFe
          oConsBO:Fields("tracor_lu"):value := ".T."
      oConsBO:Fields("usuari"):value := uCou
      oConsBO:Fields("ufecha"):value := uFec
      oConsBO:Update()
        ENDIF
        oConsBO:close()
        nCont++
      endif

      SELE d_corte
      d_corte->Impor:=.t.
      d_corte->FecIm:=date()
      Skip
      oProgress3:nPosition += 1
      sysrefresh()
    EndDo
    MsgInfo("Proceso Finalizado Exitosamente"+CRLF+;
              "Registros Actualizados "+alltrim(str(nCont)),oLamcla:mDato)
    oDlgImp:end()
    oRsCte:REQUERY()
    oBrw:Refresh()

    /*
    else
      MsgAlert("Dbf Incorrecta, La estructura No"+CRLF+;
               "Coincide Intente Nuevamente",oLamcla:mDato)
    endif*/
    d_corte->(DBCloseArea())
  Endif
Else
  MsgAlert("Seleccione Archivo"+CRLF+;
           "Intente Nuevamente",oLamcla:mDato)
Endif
 
Al seleccionar el archivo y hacer clic en aceptar. Saca el error.

Re: Trabajar Sobre el Dispositivo

Posted: Sat Jul 04, 2015 1:44 pm
by Antonio Linares
Aqui estas cerrando el area de trabajo:

d_corte->(DBCloseArea())

Re: Trabajar Sobre el Dispositivo

Posted: Mon Jul 06, 2015 1:24 pm
by leandro
Hola Antonio gracias por responder

Si ahi se cierra la dbf, pero ahí también se termina el proceso. El problema es cuando intento abrir la dbf directamente sobre el dispositivo como si no encontrara la ruta.

Analizando un poco el código encontré que cuando intento trabajar sobre el dispositivo retorna la siguiente ruta:

Code: Select all

vGruta:=cGetFile("*.dbf","Seleccione Archivo")
C:\Users\Leandro\AppData\Local\Microsoft\Windows\INetCache\IE\M7FT6W9K\corte[2].dbf
 
Como hago para conectarme el dispositivo como si fuera una memoria?

Saludos

Re: Trabajar Sobre el Dispositivo

Posted: Mon Jul 06, 2015 3:57 pm
by Antonio Linares
Leandro,

Yo creo que lo único que tienes que hacer es un USE directamente de ese path completo