Bem Vindo Visitante Lista de Usuários

 Todos os Fórums
  ADVPL

Enviar para a impressoraImprimir   

Subject tabela temporaria
Mensagem do Enviar e-mail Abrir o Perfil do usuário WILLIAN__ WILLIAN__ em 7/3/2018 as 16:43 hs
Local: SP   Registrada: 3/7/2018  Postagem: 1
Criei um relatorio trport que faz consulta em duas base de dados mas ao gerar o relatorio na tela ele apresenta dados duplicados eu testei minhas querys e ao consultar o banco de dados a query funciona como esperado.

este é meu codigo:

RELMWPrt(oReport)
      
     Local oSection1          := oReport:Section(1)
     Local nHndERP           := AdvConnection()
      
     Local cDBOra           := "MSSQL/MW_CLASSIC"
     Local cSrvOra           := "192.168.0.189"
     Local nHndOra           := -1
     Local cQuery          := ""
     Local cQuery1          := ""

     Local aCampos1     := {}
     Local aCampos     := {}
      
     Local cTabela     := ""
     Local cTabela1     := ""

     Local cCond          := ""
     Local cCond1     := ""

     Local cIndex     := ""
     Local cIndex1     := ""



      
     /* ================================================================================================ */                                 
     // Criacao dos campos para a tabela temporaria
     Aadd(aCampos,{"FILIAL",               "C",     4,          0})
     Aadd(aCampos,{"CONTRATO",          "C",     20,          0})
     Aadd(aCampos,{"EMISSAO",          "C",     08,          0})
     Aadd(aCampos,{"VALOR",               "N",     14,          2})
      
     cTabela     := CriaTrab(aCampos,.T.)
      
     While Select("TMP") <> 0
          TMP->(DbCloseArea())
     EndDo
      
     DBUseArea(.T.,,cTabela,"TMP")
     cIndex     := cTabela+"1"
      
     IndRegua("TMP",cIndex,"FILIAL+CONTRATO",,cCond,"Gravando Registros")
     dbSetIndex(cIndex + OrdBagExt())
     /* ================================================================================================ */
              
     /* ================================================================================================ */                                 
     // Criacao dos campos para a tabela temporaria MUNDI WARE
     Aadd(aCampos1,{"FILIAL_MW",     "C",     4,          0})
     Aadd(aCampos1,{"CONTR_MW",     "C",     20,          0})
     Aadd(aCampos1,{"VALOR_MW",     "N",     14,          2})
      
     cTabela1     := CriaTrab(aCampos1,.T.)
      
     While Select("TMP1") <> 0
          TMP1->(DbCloseArea())
     EndDo
      
     DBUseArea(.T.,,cTabela1,"TMP1")
     cIndex1     := cTabela1+"1"
      
     IndRegua("TMP1",cIndex1,"FILIAL_MW+CONTR_MW",,cCond1,"Gravando Registros")
     dbSetIndex(cIndex1 + OrdBagExt())
     /* ================================================================================================ */
      
      
     DO CASE
          CASE MV_PAR05 == 1      
     // Cria uma conexão com um outro banco, outro DBAcces
           
        nHndOra := TcLink( cDbOra, cSrvOra, 7890 )
              
     cQuery := " SELECT CONTRATO.IdLoja,
        CONTRATO.CodigoContrato,CONTRATO.Valor "
              
        cQuery += " FROM      tb_agreement CONTRATO"
        cQuery += " WHERE     CONTRATO.CodigoContrato BETWEEN '" +
        MV_PAR03 + "' AND'" + MV_PAR04 + "' "
           
     TcQuery cQuery New Alias "SQL"
           
While SQL->(!Eof())
       
      RecLock("TMP1",.T.)
              
     TMP1->FILIAL_MW                  := SQL->IdLoja
     TMP1->CONTR_MW                  := SQL->CodigoContrato
     TMP1->VALOR_MW               := SQL->Valor
                     
     TMP1->(MsUnLock())
          
     SQL->(DbSkip())
              
End
        TMP1->(DbGoTop())
              
//Fecha a conexão com o MUNDI WARE
          TcUnlink( nHndOra )
                     
//Volta para conexão ERP
        tcSetConn( nHndERP )
              
     cQuery1 := " SELECT SE1.E1_FILIAL, SE1.E1_XCTMDW, SE1.E1_VALOR, SE1.E1_EMISSAO "
                     
        cQuery1 += " FROM " + RetSqlName("SE1") + " SE1"
      
        cQuery1 += " WHERE SE1.E1_XCTMDW BETWEEN '" + MV_PAR03 + "' AND'" +
        MV_PAR04 + "' "
      
        cQuery1 += " AND SE1.D_E_L_E_T_ = '' "
           
     TcQuery cQuery1 New Alias "SQL1"
           
           
While SQL1->(!Eof())
          
     RecLock("TMP",.T.)
      
     TMP->FILIAL             := SQL1->E1_FILIAL
     TMP->CONTRATO             := SQL1->E1_XCTMDW
     TMP->VALOR          := SQL1->E1_VALOR
     TMP->EMISSAO          := SQL1->E1_EMISSAO
                     
TMP->(MsUnLock())
          
      SQL1->(DbSkip())
        End
       
        TMP->(DbGoTop())
          
oSection1:print()
oReport:Skipline()
     
FErase(cTabela + GetDbExtension()) // Deletando o arquivo
FErase(cIndex + OrdBagExt())       // Deletando índice
      
FErase(cTabela1 + GetDbExtension()) // Deletando o arquivo
FErase(cIndex1 + OrdBagExt())       // Deletando índice
      
           
OTHERWISE
          Alert("tipo de faturamento Inválido")
ENDCASE
      
return(.T.)

Mensagem do Enviar e-mail Abrir o Perfil do usuário WQ123 WQ123 em 9/3/2018 as 22:20 hs
Local: AL   Registrada: 3/9/2018  Postagem: 117
The 2 crossed burberry handbags routes, nfl seahawks jerseys with timberland outlet Thomas puma online shop operating a limited sideline nfl bears jerseys habit and Ginn specifically moncler outlet up the sector from the finish ferragamo zone. Panthers versace clothes basic nike air max safety coach outlet usa Kurt Coleman air jordan shoes reacted towards Thomas' course, however Carolina's other michael kors outlet deep protection nfl 49ers jerseys Mike coach factory online Adams michael kors outlet store experienced way too nike jordan a lot tommy hilfiger canada floor

Para participar do Fórum você precisa efetuar login primeiro
Caso você não esteja registrado registre-se para participar do fórum

 Mudar para Fórum