MUDAR NOME TABELA EM RUNTIME CRYSTAL 8.5

FGSANTOS 12/04/2007 16:55:16
#211575
Senhores,

Estou mudando um projeto meu, de DataReport para Crystal Reports.

Primeiro usei a versao 10 e estava funcionando muito bem, porém alguns clientes usam windows 98 e nao estava funcionando os relatorios para eles. Entao passei a usar a versao 8.5 do Crystal. Tenho alguns relatorios que as tabelas sao temporárias, resultado de processamentos para exibir o relatorio. Sendo assim, tive que criar uma rotina que atualizasse as tabelas dentro do rpt crystal em execuçao. Acontece que a mesma rotina funcionava muito bem com a versao 10, mas com a versao 8.5 nao funciona. Nem erro dá, processa normal, executa todos os comandos para trocar o nome da tabela sem erro algum, mas os dados sempre aparecem da tabela fixa que tem dados de teste do relatorio.

A parte da rotina que troca as tabelas é:

     For Each Table In Report.Database.Tables
If Report.Database.Tables(nAux).Name = NomeReplaceTable Then
Report.Database.Tables(nAux).SetTableLocation cNomeBanco & "." & NomeTempTable, jetProvider, ""
Report.Database.Tables(nAux).SetLogOnInfo jetProvider, cNomeBanco, Report.Database.Tables(nAux).LogOnUserID
Else
Report.Database.Tables(nAux).SetTableLocation cNomeBanco & "." & Report.Database.Tables(nAux).Name, jetProvider, ""
Report.Database.Tables(nAux).SetLogOnInfo jetProvider, cNomeBanco, Report.Database.Tables(nAux).LogOnUserID
End If
nAux = nAux + 1
Next


Alguém já fez algo parecido e teve problemas com Crystal 8.5???

PS: Já olhei no site do Crytal, já olhei no manual, tá tudo do jeito que deve ser mesmo. Como disse, não dá erro, apenas nao exibe os dados corretamente.
USUARIO.EXCLUIDOS 12/04/2007 18:13:59
#211599
FGSANTOS, já tive um problema parecido (Usando o Crystal 8) onde relatórios com valores não apareciam as casas decimais (ficavam zeradas) e justamente dava este problema nos micros com windows98, daí percebi que o problema era no Windows98 (já que o mesmo não gerencia a memória) verifiquei isto pq quando os usuarios usavam outros softwares e a memória ficava cheia dava o problema nos relatorios...daí bastava reiniciar o windows98 que o relatório voltava ao normal...A solução que encontrei foi passar as estações(micros) para Windows 2000 e/ou XP...e colocar + memória...
FGSANTOS 13/04/2007 09:31:48
#211681
Mas meu problema não é este FRAU. Meu problema é: tenho relatórios que são exibidos de tabelas criadas via um processamento. O rpt foi criado sobre uma tabela com os mesmos campos. No Crystal 10 e 11 a rotina acima conseguia trocar a tabela, por exemplo tablog (que foi utilizada para fazer o relatorio) por tablog1100 (criada pelo processamento). Nas versoes 10 e 11 funcionaram muito bem, a mesma rotina na versao 8.5 não dá erro nenhum na execução, porém também nao exibe os dados da tabela criada e sim os dados da tabela de criaçao do relatorio. E isto acontece na meu note, com win xp.
FGSANTOS 18/04/2007 09:27:41
#212474
Só para registro se alguem um dia tiver o mesmo problema:

Mantive as linhas de códigos que informei no primeiro tópico, e adcionei o seguinte código:

      cAux = Report.SQLQueryString
cAux = Replace(cAux, "sglinx", cNomeBanco)
If NomeReplaceTable <> "" And NomeTempTable <> "" Then
cAux = Replace(cAux, NomeReplaceTable, NomeTempTable)
cAux = Replace(cAux, NomeTempTable & "1", NomeReplaceTable & "1")
End If

Report.SQLQueryString = cAux
Report.Database.Verify


Percebi quando capturei a SQL do rpt que mesmo eu tendo mandado logar em outras tabelas e/ou banco, continuavam os mesmos da construção do rpt. Entao substituo diretamente na SQL e retorno para o rpt.

PS: Pena que nao posso "me pontuar"... rsrsrsrs
Tópico encerrado , respostas não são mais permitidas