none
Criar Relatorio com mais de uma tabela relacionada RRS feed

  • Pergunta

  • Ola pessoal,
    é o seguinte estou aprendendo ainda a trabalhar com o crystal reports no VST 2008
    e estou com um problema para criar um relatorio onde este relatorio exibira informaçoes de 3 tabelas,
    onde eu tenho tabela: OrdemFabricaçao,ItensOF e Produtos
    na tabela de OF eu tenho o NºOF,ProdutoRaiz,QTDETOTAL (este produto da tabelas de Produtos)
    na tabela de ItensOF eu tenho os Produtos,QTDE (onde este produto vem da tabelas de Produtos)

    o problema que nao estou sabendo como fazer isso para exibir os dados da OF com o produto raiz relacionado a tabela produtos
    e os itens desta OF com os produtos relacinados com a tabela de produtos tbm
    viniciuseroico
    segunda-feira, 1 de março de 2010 13:29

Respostas

  • E como você sabe se um "Produto" é da mesma linha que o principal? existe alguma coluna na tbProduto (tb1) que é possivel diferenciar isto ?

    Caso exista, apenas mude o inner join para esta coluna:


    CREATE VIEW nomeDaView
    AS
    SELECT tb1.cod as codTb1,
       tb1.nome as nomeTb1,
       tb2.cod as codTb2,
       tb2.nome as nomeTb2,
       tb3.cod as codTb3,
       tb3.nome as nomeTb3,
    FROM tabelaPrincipal tb1
    inner join tabelaSecundaria2 tb2 on tb2.tipoProduto = tb1.tipoProduto
    inner join tabelaSecundaria3 tb3 on tb3.tipoProduto = tb2.tipoProduto
    GO

    Pelo que eu entendi é isto, caso não seja a solução ( ou eu entendi errado ) de um feedback OK,


    Abs,


    -----------------------------------------------------------------
    Se a resposta te ajudou marque como útil 
    • Marcado como Resposta Vinicius Eróico quarta-feira, 3 de março de 2010 14:07
    terça-feira, 2 de março de 2010 23:21

Todas as Respostas

  • Olá Vinicius,


    O ideal seria você criar uma view que retorna os dados que você precisa das Tabelas citadas acima, após apenas arraste sua view para seu DataSet e pegue os valores a partir da view !

    Abs,


    -----------------------------------------------------------------------------------------------------------
    Se a resposta te ajudou marque como útil
    segunda-feira, 1 de março de 2010 15:00
  • Vinicius,

    Você pode fazer como o Rafael sugeriu (que é como eu costumo fazer, a propósito), mas, se quiser, dê uma olhada nestes links se você não quiser fazer a view:

    http://www.aspfree.com/c/a/Database/Generating-a-Multiple-Table-Crystal-Report-using-VS-2005/

    http://vb.net-informations.com/crystal-report/vb.net_crystal_report_from_multiple_tables.htm
    André Alves de Lima
    Visite o meu site: http://andrealveslima.spaces.live.com
    Me siga no Twitter: @andrealveslima
    segunda-feira, 1 de março de 2010 16:27
    Moderador
  • entao Andre,do jeito que esta no link que me passou eu ja tinha tentado ,porem por exemplo:

    eu tenho registros onde eu tenho 1 produto raiz e mais de 1 item na tabela associado aquele registro...dai ele só me traz um

    e com a view eu tbm acho que seja melhor o problema é que nao estou sabendo fazer o select para poder trazer
    os registros da tabela de OF ,da tabela dos Itensda OF e tbm trazer o produto raiz da Of e os produtos dos Itens,que sao relacionado pela tabela de produtos.

    viniciuseroico
    segunda-feira, 1 de março de 2010 17:54
  • Segue um exemplo de criação de uma View da forma mencionada:


    CREATE VIEW nomeDaView
    AS
    SELECT	tb1.cod as codTb1,
    		tb1.nome as nomeTb1,
    		tb2.cod as codTb2,
    		tb2.nome as nomeTb2,
    		tb3.cod as codTb3,
    		tb3.nome as nomeTb3,
    FROM tabelaPrincipal tb1
    inner join tabelaSecundaria2 tb2 on tb2.cod = tb1.cod
    inner join tabelaSecundaria3 tb3 on tb3.cod = tb2.cod
    GO


    Att,
    • Sugerido como Resposta Aime O terça-feira, 2 de março de 2010 23:41
    segunda-feira, 1 de março de 2010 18:10
  • Rafael,assim funciona ,porem com um problema, pois o

    tb1.nome (exemplo) esta relacionado tanto na tb2 quanto na tb3

    pra talvez ficar mais facil de entender,o tb1 é minha tabela de Produto,onde tenho todos os produtos cadastrados
    quando abro a OF,informo qual sera o produto principal dessa OF buscando la na tab de produtos,blz

    dai quando adiciono os itens da Of,eu escolho o mesmo,ou outros produtos (desde que seja da mesma linha que o principal) e adiciono a tabela de itens da OF

    entao por exemplo eu posso colocar como produto principal o FG1
    e nao hora de adicionar os itens adicionar o FG1 e FG2

    e desse jeito o select ou traz os dois como FG1 ,ou entao se eu coloco um inner join para comparar o produto do item com a tab de produtos,ele so me traz o produto igual ao principal....

    espero ter conseguido explicar
    viniciuseroico
    segunda-feira, 1 de março de 2010 18:55
  • E como você sabe se um "Produto" é da mesma linha que o principal? existe alguma coluna na tbProduto (tb1) que é possivel diferenciar isto ?

    Caso exista, apenas mude o inner join para esta coluna:


    CREATE VIEW nomeDaView
    AS
    SELECT tb1.cod as codTb1,
       tb1.nome as nomeTb1,
       tb2.cod as codTb2,
       tb2.nome as nomeTb2,
       tb3.cod as codTb3,
       tb3.nome as nomeTb3,
    FROM tabelaPrincipal tb1
    inner join tabelaSecundaria2 tb2 on tb2.tipoProduto = tb1.tipoProduto
    inner join tabelaSecundaria3 tb3 on tb3.tipoProduto = tb2.tipoProduto
    GO

    Pelo que eu entendi é isto, caso não seja a solução ( ou eu entendi errado ) de um feedback OK,


    Abs,


    -----------------------------------------------------------------
    Se a resposta te ajudou marque como útil 
    • Marcado como Resposta Vinicius Eróico quarta-feira, 3 de março de 2010 14:07
    terça-feira, 2 de março de 2010 23:21
  • Ola Rafael, como sempre na informatica tudo muda, houve uma reuniao entre os responsaveis e ficou decidido eliminar este campo de produto principal,e manter apenas os itens da Ordem de fabricação,com isso fica facil,é apenas fazer do jeito que vc mostrou da primeira vez.
    Ja que agora entao na tabOF eu salvo as informaçoes dela e na de ItensOF eu salvo os produtos e qtdes...e como elas estao amarradas pelo ID,é so comparar ele.

    obrigado Rafael pela ajuda...
    e ao Andre tbm


    abraços....
    viniciuseroico
    quarta-feira, 3 de março de 2010 14:05