RELACIONAR TABELAS CRYSTAL REPORTS
Bom dia gente, bom, queria saber como eu posso exibir dados de 3 tabelas no mesmo relatório, terei que relacionar as 3?
uuuupppp
sim dentro do crystal reports você estária inserindo as três tabelas no menu e definindo qual a ligação entre as três... se eu não me engano fica no quarto menu lá tem as opções de adicionar tabela, e manipular o ligamento das mesma... é que já faz um tempo que não trabalho com crystal... mas eu lhe aconcelharia a criar uma view ou tabela temporária, fazer o tratamento dentro do código e depois só inserir os dados em uma única tabela e apresentar somente aquela tabela, pois caso ocarra algum erro nos dados de seu relátorio você pode debugar o código e achar qual o problema, mas se você fazer o ligamento das tabelas dentro do crystall não conheço nenhuma forma de debugar elas...
Mas no caso eu preciso ter algum dado que está em outra tabela pra poder fazer o vinculo, EX: tab emissor eu teria que ter um campo EX: CodContrato?
Deixa eu explicar melhor, amigos se puderem me ajudar na logica aqui, porque ta meio difÃcil, ó, vou precisar dos dados de 3 tabelas, [txt-color=#0000f0][Ô]TabContrato, TabAluno, TabEmissor[Ô][/txt-color], tipo vou ter que ter tambem uma tabela [txt-color=#0000f0][Ô]TabContratoEmitido[Ô][/txt-color] e quando for gravar eu gravar na [txt-color=#0000f0]TabContratoEmitido[/txt-color] tipo [txt-color=#0000f0][Ô]CodContrato, CodAluno, CodEmissor[Ô],[/txt-color] desse jeito eu sei que vou conseguir exibir os dados das 3 tabelas, pois na [txt-color=#0000f0]TabContratoEmitido[/txt-color] eu vou ter os dados do [txt-color=#0000f0]CodAluno, CodContrato, CodEmissor[/txt-color], bom, eu sei que assim da certo, mas queria saber se a logica é essa mesmo? pois nao queria ficar criando tabelas a [txt-color=#0000f0]TORTO[/txt-color] e [txt-color=#0000f0]DIREITO[/txt-color], queria fazer o certo, obrigado a todos, abraco.
Ok vou tentar lhe explicar, postarei até algumas fotinhas
Bom primeiro, eu uso o Crystal Reports 8.5 e escolhi abrir um relátorio do zero para você dar uma olhada...
Vamos fazer praticamente tudo em [Ô]DATABASE[Ô], quando vc abri o relátorio pela primeira vez ele manda vc selecionar o banco e as tabelas que vão participar do seu relátorio no seu caso é [Ô]TabContrato, TabAluno, TabEmissor[Ô] e o no meu caso eu optei por cad_empresas, tab_jornadas e cad_funcionarios...
Na minha aba DATABASE>VISUAL LINKING EXPERT vai abrir digamos a minha área lógica do relátorio com todas as tabelas do meu sistema que eu inseri até agora ou que posso inserir futuramente:
Nessa mesma aba DATABASE>VISUAL LINKING EXPERT eu vou trabalhar as ligações das tabelas do meu relátorio, dizendo onde cada dado vai se encontrar em uma tabela diferente, no meu caso ficou assim:
Agora no meu relátorio eu vou em INSERT FILDS>DATABASE FILDS>MINHA TABELA (uma grid branca perto do tamanho da letra, não está no menu) e insiro os campos que vou colocar no meu relátorio:
Agora vou em DATABASE>SHOW SQL QUERY e noto que ele já gerou a minha query sql de ligação entre as tabelas ficando assim:
PS: Apague o [txt-color=#e80000]{ OJ[/txt-color] do começo e [txt-color=#e80000]}[/txt-color] do final, não sei porque ele gera esses caracteres.
E pronto, click em PREVIEW seu relátorio está criado com a ligação interna... básicamente será somente o primeiro passo que lhe dara trabalho o restante é só layout e coisinhas bobas, veja o resultado final do nosso relátorio:
Qualquer dúvida só postar..
Bom primeiro, eu uso o Crystal Reports 8.5 e escolhi abrir um relátorio do zero para você dar uma olhada...
Vamos fazer praticamente tudo em [Ô]DATABASE[Ô], quando vc abri o relátorio pela primeira vez ele manda vc selecionar o banco e as tabelas que vão participar do seu relátorio no seu caso é [Ô]TabContrato, TabAluno, TabEmissor[Ô] e o no meu caso eu optei por cad_empresas, tab_jornadas e cad_funcionarios...
Na minha aba DATABASE>VISUAL LINKING EXPERT vai abrir digamos a minha área lógica do relátorio com todas as tabelas do meu sistema que eu inseri até agora ou que posso inserir futuramente:
Nessa mesma aba DATABASE>VISUAL LINKING EXPERT eu vou trabalhar as ligações das tabelas do meu relátorio, dizendo onde cada dado vai se encontrar em uma tabela diferente, no meu caso ficou assim:
Agora no meu relátorio eu vou em INSERT FILDS>DATABASE FILDS>MINHA TABELA (uma grid branca perto do tamanho da letra, não está no menu) e insiro os campos que vou colocar no meu relátorio:
Agora vou em DATABASE>SHOW SQL QUERY e noto que ele já gerou a minha query sql de ligação entre as tabelas ficando assim:
PS: Apague o [txt-color=#e80000]{ OJ[/txt-color] do começo e [txt-color=#e80000]}[/txt-color] do final, não sei porque ele gera esses caracteres.
E pronto, click em PREVIEW seu relátorio está criado com a ligação interna... básicamente será somente o primeiro passo que lhe dara trabalho o restante é só layout e coisinhas bobas, veja o resultado final do nosso relátorio:
Qualquer dúvida só postar..
Amigo é oque eu quis dizer, rs, se tem que ser assim é assim que tem que ser feito, mas o problema que eu tava falando era por exemplo, eu tenho uma tabela
----------------------------------
[txt-color=#0000f0]Alunos com os campos[/txt-color]
----------------------------------
[txt-color=#e80000]IdAluno
NomeAluno
TelefoneAluno[/txt-color]
----------------------------------
e outra tabela
----------------------------------
[txt-color=#0000f0]Emissores com os campos[/txt-color]
----------------------------------
[txt-color=#e80000]IdEmissor
NomeEmissor
TelefoneEmissor[/txt-color]
----------------------------------
nesse caso como que seria pra exibir os dados das duas tabelas? lembrando que as duas tabelas sao distintas uma da outra sem vinculo nenhum, é possivel?
----------------------------------
[txt-color=#0000f0]Alunos com os campos[/txt-color]
----------------------------------
[txt-color=#e80000]IdAluno
NomeAluno
TelefoneAluno[/txt-color]
----------------------------------
e outra tabela
----------------------------------
[txt-color=#0000f0]Emissores com os campos[/txt-color]
----------------------------------
[txt-color=#e80000]IdEmissor
NomeEmissor
TelefoneEmissor[/txt-color]
----------------------------------
nesse caso como que seria pra exibir os dados das duas tabelas? lembrando que as duas tabelas sao distintas uma da outra sem vinculo nenhum, é possivel?
Dessa forma se são distintas sem vinculo nenhum é lógico que não é possivel... Não tem como você identificar qual registro pertence a qual, a não ser que tenha alguma terceira tabela ou uma auxiliar que una as duas... Ou a de emissor deveria ter o IdAluno ou a do aluno deveria ter o IdEmissor ou uma terceira tabela que só grave esses dados de ligação...
Tabela3
---------------------------
IdAluno
IdEmissor
---------------------------
Procure na documentação do banco de dados se hoje você precisa ligar esses dados um analista deve ter deixado alguma solução... Igual na segundo foto dos exemplos a tabela de cad_funcionarios tem os campos empresa e jornada onde são gravadas os códigos da jornada e da empresa daquele funcionario para que depois tenha como ligar todos os registros...
Tabela3
---------------------------
IdAluno
IdEmissor
---------------------------
Procure na documentação do banco de dados se hoje você precisa ligar esses dados um analista deve ter deixado alguma solução... Igual na segundo foto dos exemplos a tabela de cad_funcionarios tem os campos empresa e jornada onde são gravadas os códigos da jornada e da empresa daquele funcionario para que depois tenha como ligar todos os registros...
Era essa minha duvida, eu achava que tinha alguma maneira de exibir os dados sem os vÃnculos, mas então valeu.
Tópico encerrado , respostas não são mais permitidas