HeitorArgenta
29-Aug-2023, 03:31 PM
Olá, eu uso DataFlex 17.0 e Crystal Reports XI.
Estou usando TempFile.pkg para criar tabelas temporárias na máquina do usuario:
Send Add_TempFile of ghoTempFileList TABELA1.File_number
Open (sCaminhoPadrao + "TABELA1") as TABELA1
Para processamentos demorados, no estilo abaixo, na máquina do usuário:
While ( Found )
Clear TABELA1
Reread
Move "P" to TABELA1.TIPO_INFO // TIPO PRESCRICAO PA
Move gsUsuario to TABELA1.USUARIO
Move CADPREPA.NR_PRESCRICAO to TABELA1.NR_PRESC_PA
Move CADPREPA.DATA to TABELA1.DATA_PA
Move CADPREPA.HORA to TABELA1.HORA_PA
Move sCADGER to TABELA1.CODPAC
SaveRecord TABELA1
Unlock
Constrained_Find Next
Loop
Até aí funcionou perfeitamente, abri o arquivo temporário no Database Explorer e mostra os registros corretos, testei tambem, usando um CopyFile, sobreescrever o DAT para mostrar no Crystal, só que isso torna o processo mais demorado ainda.
Estou tentando fazer com que o Crystal use o caminho da tabela temporária, só que ele usa o caminho da Workspace para procurar os registros e eu preciso alterar, testei assim:
Procedure OnInitializeReport Handle hoReport Integer eDestination
Handle hoDatabaseTable
String sDataPath sTable
Forward Send OnInitializeReport hoReport
//Set new data path.
Get GetTableObjectByName of hoReport "TABELA1" to hoDatabaseTable
Get ComLocation of hoDatabaseTable to sTable
Set ComLocation of hoDatabaseTable to (sCaminhoPadrao + sTable)
End_Procedure // OnInitializeReport
Na primeira execução, tudo funciona perfeitamente, só que na segunda, dá um erro de violação de arquivos e entra em modo de debbug, alguem pode me ajudar?
Estou usando TempFile.pkg para criar tabelas temporárias na máquina do usuario:
Send Add_TempFile of ghoTempFileList TABELA1.File_number
Open (sCaminhoPadrao + "TABELA1") as TABELA1
Para processamentos demorados, no estilo abaixo, na máquina do usuário:
While ( Found )
Clear TABELA1
Reread
Move "P" to TABELA1.TIPO_INFO // TIPO PRESCRICAO PA
Move gsUsuario to TABELA1.USUARIO
Move CADPREPA.NR_PRESCRICAO to TABELA1.NR_PRESC_PA
Move CADPREPA.DATA to TABELA1.DATA_PA
Move CADPREPA.HORA to TABELA1.HORA_PA
Move sCADGER to TABELA1.CODPAC
SaveRecord TABELA1
Unlock
Constrained_Find Next
Loop
Até aí funcionou perfeitamente, abri o arquivo temporário no Database Explorer e mostra os registros corretos, testei tambem, usando um CopyFile, sobreescrever o DAT para mostrar no Crystal, só que isso torna o processo mais demorado ainda.
Estou tentando fazer com que o Crystal use o caminho da tabela temporária, só que ele usa o caminho da Workspace para procurar os registros e eu preciso alterar, testei assim:
Procedure OnInitializeReport Handle hoReport Integer eDestination
Handle hoDatabaseTable
String sDataPath sTable
Forward Send OnInitializeReport hoReport
//Set new data path.
Get GetTableObjectByName of hoReport "TABELA1" to hoDatabaseTable
Get ComLocation of hoDatabaseTable to sTable
Set ComLocation of hoDatabaseTable to (sCaminhoPadrao + sTable)
End_Procedure // OnInitializeReport
Na primeira execução, tudo funciona perfeitamente, só que na segunda, dá um erro de violação de arquivos e entra em modo de debbug, alguem pode me ajudar?