Página 1 de 1

erro ao voltar de SelectMultipleFiles HWGUI

Enviado: 16 Jan 2013 21:26
por gilbertosilverio
Ola Amigos,

Usa a funcao SelectMultipleFiles da HWGUI para selecionar arquivos, so que quando retorno ao sistema da o erro abaixo quando tento abrir qualquer arquivo;

Error DBFCDX/1001 Erro de abertura: MATPRIMA.dbf (DOS Error 2)
Chamado por --> DBUSEAREA(0)
Chamado por PROG01.PRG --> ALTMP(2237)

Alguem ja passou por isso, como posso corrigir este problema

Grato.

Gilberto Silverio
xhb110+hwgui(svn)+wvw+BCC55

Código: Selecionar todos

FUNCTION MULTISELECAO()
    PRIVATE nRetornoArq:=0
    PRIVATE aListaArq:={}
    aListaArq := SelectMultipleFiles( [*.xml], [*.xml], curdrive()+":\", [Selecione os arquivos XMls a serem transferidos])
    i:=0
    IF aListaArq[ 1 ] > [0]
       DO WHILE i < LEN( aListaArq )
          i++
          PesquisaArquivoMultiplo(@aListaArq[i])
          aNomeForne    := PegaNomeArquivo( aListaArq[i] )
          aNomeForne[7] := substr(aListaArq[i], 1, nRetornoArq)
          aNomeForne[8] := substr(aListaArq[i], nRetornoArq+1, len(alltrim(aListaArq[i]))-nRetornoArq)
          AADD( aFiles,  aNomeForne  )
       ENDDO
       ThisForm:oBrowse1:aArray := aFiles
       ThisForm:oBrowse1:REFRESH()
       oBrowse1_onPosChange()
       Thisform:oBrowse1:setfocus()
       thisform:refresh()
    ELSE
       MSGINFO([Abortada a selecao],[Aviso])
       ThisForm:oBrowse1:aArray := aFiles
       ThisForm:oBrowse1:REFRESH()
       oBrowse1_onPosChange()
    ENDIF
RETURN NIL


erro ao voltar de SelectMultipleFiles HWGUI

Enviado: 20 Jan 2013 13:32
por Toledo
Gilberto, DOS Error 2 quer dizer que o arquivo não foi encontrado. Então provavelmente o arquivo não está na pasta onde o programa está sendo executado ou em alguma parte do programa o path está sendo alterado.
Tenta fazer um teste, no comando em que você está abrindo o arquivo, passe o caminho completo até o arquivo (C:\pasta\arquivo.dbf).

Abraços,

erro ao voltar de SelectMultipleFiles HWGUI

Enviado: 21 Jan 2013 10:19
por gilbertosilverio
Toledo,

Grato pela resposta.

Realmente a função SelectMultipleFiles da HWGUI altera o PATH do sistema, quando retornava ao programa dava erro.

Corrigi o problema da seguinte maneira:

1) Salvo o diretorio ativo com SAVEPATH()

2) Uso a função: ON CLICK {|| SAVEPATH(), MultiSelecao(), RESTOREPATH() }

3) Recupero o diretorio ativo com RESTOREPATH()

Código: Selecionar todos


FUNCTION SavePath()
  cOldDrive := CURDRIVE()
  cOldPath  := CURDIR()
RETURN .T.


FUNCTION RestorePath()
  DISKCHANGE(cOldDrive)
  DIRCHANGE("\"+cOldPath)
RETURN .T.