none
Dúvida com Joins de Datasource RRS feed

  • Pergunta

  • Bom dia, 

    Tenho que montar um relatório que contenha dados das seuintes tabelas: ProdTable, ProBom, InvenTable, InventDim e InventLocation.

     

    Tenho que trazer no header do relatório os dados de uma ProdID e no body os ProBOM dessa ProdID, assim como outros detalhes que vem da InventTable e InventLocation. 

    Eu fiz isso no sql server e deu certo, abaixo coloco meu código SQL que traz o resultado desejado:

     

     

    select PRODTABLE.PRODID,

    PRODTABLE.NAME,

    PRODTABLE.ITEMID,

    INVENTLOCATION.NAME AS DEPOSITO,

    INVENTDIM.WMSLOCATIONID AS LOCALL,

    PRODBOM.ITEMID AS ITEM, 

    INVENTTABLE.ITEMNAME         AS DESCRICAO,

    PRODBOM.BOMQTY AS QTD_UNI

    from         PRODTABLE,

    PRODBOM,

    INVENTTABLE,

    INVENTLOCATION,

    INVENTDIM

    where PRODTABLE.PRODID = '00000073_110'

    AND PRODBOM.PRODID = PRODTABLE.PRODID

    AND PRODBOM.ITEMID = INVENTTABLE.ITEMID

    AND INVENTDIM.INVENTLOCATIONID = INVENTLOCATION.INVENTLOCATIONID

    AND PRODBOM.INVENTDIMID = INVENTDIM.INVENTDIMID

     

     

    A dúvida é: como montar a estrutura de datasources com suas relações..

    eu tentei fazer assim:

    ProBOM_DS (Data source principal)

       - ProdTable_DS ( Datasource dentro de ProdBOM_DS - 1:N - ProdBOM_DS.ProdId == ProdTable_DS.ProdID )

       - InventDim_DS ( Datasource dentro de ProdBOM_DS - 1:1 - ProdBOM_DS.InventDimId == InventDim.InventDimId )

       - InventTable_DS ( Datasource dentro de ProdBOM_DS - 1:1 - ProdBOM_DS.ItemId== InventTable.ItemId )

             - InventLocation_DS ( Datasource dentro de InventDim_DS- 1:N - InventDim.InventIdLocation== InventLocation. InventIdLocation)

     

    Assim sendo, os itens que estão no body estão vindo corretos, mas o problmea está no header que são valores da prodTable, estão todos vazios, alguem pode me ajudar onde to errando? Eu fiz certo esses joins? 

     

    Att,

     

    Rafael

    quinta-feira, 25 de março de 2010 14:21

Todas as Respostas

  • Rafael,

    A tradução da sua instrução para um objeto query está no xpo abaixo, no entanto, é  necessário um entendimento um pouco mais avançado para trabalhar com estes objetos. Eu te aconselho a dar uma olhada nas classes: query e querybuilddatasource.

     

    Da forma que eu fiz no XPO, eu deixei a query pronta para ser usada, de uma forma mais fácil e assim você só precisa chamá-la e fazer o while(querRun.next()) e colher os resultados normalmente. Para um exemplo, veja os tradelooptrans na SalesInvoice_BR.

     

    Exportfile for AOT version 1.0 or later

    Formatversion: 1

     

    ***Element: QUE

     

    ; Microsoft Dynamics Query: MSDN_Help descarregado

    ; --------------------------------------------------------------------------------

    VERSION 8

     

    QUERY #MSDN_Help

      PROPERTIES

        Name                #MSDN_Help

        Version             #43

        NextUniqueId        #1006

      ENDPROPERTIES

     

      METHODS

        Version: 3

        SOURCE #classDeclaration

          #public class QueryRun extends ObjectRun

          #{

          #}

        ENDSOURCE

      ENDMETHODS

      BLOCKS

        BLOCK #prodtable

          PROPERTIES

            Name                #ProdTable

            Table               #prodtable

            UniqueId            #1000

          ENDPROPERTIES

     

          FIELDLIST

            PROPERTIES

            ENDPROPERTIES

     

          ENDFIELDLIST

          SORTING

          ENDSORTING

          LINES

            LINE #ProdId

            PROPERTIES

              Name                #ProdId

              Table               #prodtable

              Field               #ProdId

            ENDPROPERTIES

     

          ENDLINES

          BLOCKS

            BLOCK #prodbom

              PROPERTIES

                Name                #ProdBOM

                Table               #prodbom

                UniqueId            #1001

              ENDPROPERTIES

     

              FIELDLIST

                PROPERTIES

                ENDPROPERTIES

     

              ENDFIELDLIST

              SORTING

              ENDSORTING

              LINES

              ENDLINES

              BLOCKS

                BLOCK #inventtable

                  PROPERTIES

                    Name                #InventTable

                    Table               #inventtable

                    UniqueId            #1002

                  ENDPROPERTIES

     

                  FIELDLIST

                    PROPERTIES

                    ENDPROPERTIES

     

                  ENDFIELDLIST

                  SORTING

                  ENDSORTING

                  LINES

                  ENDLINES

                  BLOCKS

                    BLOCK #Address

                      PROPERTIES

                        Name                #Address_1

                        Table               #Address

                        UniqueId            #1003

                      ENDPROPERTIES

     

                      FIELDLIST

                        PROPERTIES

                        ENDPROPERTIES

     

                      ENDFIELDLIST

                      SORTING

                      ENDSORTING

                      LINES

                      ENDLINES

                      BLOCKS

                      ENDBLOCKS

                      ASSOCIATIONS

                      ENDASSOCIATIONS

                    ENDBLOCK

                  ENDBLOCKS

                  ASSOCIATIONS

                    ASSOCIATION

                      MASTERFIELD  #ItemId

                      DETAILSFIELD #ItemId

                  ENDASSOCIATIONS

                ENDBLOCK

                BLOCK #inventdim

                  PROPERTIES

                    Name                #InventDim

                    Table               #inventdim

                    UniqueId            #1004

                  ENDPROPERTIES

     

                  FIELDLIST

                    PROPERTIES

                    ENDPROPERTIES

     

                  ENDFIELDLIST

                  SORTING

                  ENDSORTING

                  LINES

                  ENDLINES

                  BLOCKS

                    BLOCK #InventLocation

                      PROPERTIES

                        Name                #InventLocation

                        Table               #InventLocation

                        UniqueId            #1005

                      ENDPROPERTIES

     

                      FIELDLIST

                        PROPERTIES

                        ENDPROPERTIES

     

                      ENDFIELDLIST

                      SORTING

                      ENDSORTING

                      LINES

                      ENDLINES

                      BLOCKS

                      ENDBLOCKS

                      ASSOCIATIONS

                        ASSOCIATION

                          MASTERFIELD  #InventLocationId

                          DETAILSFIELD #InventLocationId

                      ENDASSOCIATIONS

                    ENDBLOCK

                  ENDBLOCKS

                  ASSOCIATIONS

                    ASSOCIATION

                      MASTERFIELD  #InventDimId

                      DETAILSFIELD #inventDimId

                  ENDASSOCIATIONS

                ENDBLOCK

              ENDBLOCKS

              ASSOCIATIONS

                ASSOCIATION

                  MASTERFIELD  #ProdId

                  DETAILSFIELD #ProdId

              ENDASSOCIATIONS

            ENDBLOCK

          ENDBLOCKS

        ENDBLOCK

      ENDBLOCKS

    ENDQUERY

     

     

    ***Element: END



    []s
    Pichler


    Pichler
    quinta-feira, 25 de março de 2010 16:48