PERGUNTAS E RESPOSTAS
 
Bem Vindo, Visitante  Todos os Fórums
  ADVPL
Enviar para a impressoraImprimir  Enviar e-mail para um amigoEnviar Para um Amigo
Precisa estar Logado

Subject Assunto:
Ponto de entrada MT103FIM
Versão:
.
Plataforma:
.
Complemento:
DB:
.
Complemento:
LinkedIn
Foto
Mensagem do Enviar e-mail Abrir o Perfil do usuário GUDEFENDI GUDEFENDI em 10/01/2019, 07:40 h
Local: SP  Registro: 10/07/2018  Postagens: 2
Bom dia,

Tenho o ponto de entrada abaixo (MT103FIM) que pega o lote do fornecedor e a data de fabricação que são inseridos na SD1 no momento da digitação do documento de entrada e os grava na SD7 em dois campos personalizados.

Só que se a nota que esta sendo digitada tiver mais de 1 item, ele grava todos os itens na SD7 com o lote e a data do ultimo item da nota digitada.

Alguém consegue me ajudar como corrigir isso?

-------------------------------------------------------------------------
#INCLUDE "RWMAKE.CH"
#INCLUDE "TOPCONN.CH"
#INCLUDE "PROTHEUS.CH"
#INCLUDE "TBICONN.CH"

User Function MT103FIM()
Local nOpcao := PARAMIXB[1]   // Opção Escolhida pelo usuario no aRotina
Local nConfirma := PARAMIXB[2]   // Se o usuario confirmou a operação de gravação da NFECODIGO DE APLICAÇÃO DO USUARIO.....
Local cAliasTmp := GetNextAlias()
Local xnRecno := 0

//IF nOpcao = 3 .AND. nConfirma = 1
cCodEmp := FWCodEmp()
IF cCodEmp == "01"


     cQuery := "SELECT * FROM "+RetSqlName("SD1")+" D1 "
     cQuery += "WHERE D1.D_E_L_E_T_ = ‘ ‘ AND D1.D1_FILIAL = ‘"+XFILIAL("SD1")+"‘ "
     cQuery += "AND D1.D1_DOC = ‘"+SF1->F1_DOC+"‘ AND D1.D1_SERIE = ‘"+SF1->F1_SERIE+"‘AND D1.D1_FORNECE = ‘"+SF1->F1_FORNECE+"‘ AND D1.D1_LOJA = ‘"+SF1->F1_LOJA+"‘ "
     dbUseArea(.T., ‘TOPCONN‘, TCGenQry(,,cQuery),‘TSD1‘, .F., .T.)
     cQuery := ChangeQuery(cQuery)

          WHILE TSD1->(!EOF())
          
          cQuery := "SELECT D7.R_E_C_N_O_ AS REC FROM "+RetSqlName("SD7")+" D7 "
          cQuery += "WHERE D7.D_E_L_E_T_ = ‘ ‘ AND D7.D7_FILIAL = ‘"+XFILIAL("SD7")+"‘ "
          cQuery += "AND D7.D7_DOC = ‘"+TSD1->D1_DOC+"‘ AND D7.D7_SERIE = ‘"+TSD1->D1_SERIE+"‘AND D7.D7_FORNECE = ‘"+TSD1->D1_FORNECE+"‘ AND D7.D7_LOJA = ‘"+TSD1->D1_LOJA+"‘ "
          dbUseArea(.T., ‘TOPCONN‘, TCGenQry(,,cQuery),‘TSD7‘, .F., .T.)
          cQuery := ChangeQuery(cQuery)
     
          WHILE TSD7->(!EOF())
               SD7->(DBCLOSEAREA())
               SD7->(DBSETORDER(1))
               SD7->(DBGOTO(TSD7->REC))
               RECLOCK("SD7",.F.)
               SD7->D7_ZLOTEFO := TSD1->D1_LOTEFOR
               SD7->D7_ZDTFABR := STOD(TSD1->D1_DFABRIC)
               MSUNLOCK()
               TSD7->(DBSKIP())
          ENDDO
          TSD7->(DBCLOSEAREA())
          TSD1->(DBSKIP())
          TSD1->(DBCLOSEAREA())
     ENDDO
     TSD1->(DBCLOSEAREA())
//ENDIF
ENDIF

RETURN()

Foto
Mensagem do Enviar e-mail Abrir o Perfil do usuário CRIS.POLLI CRIS.POLLI em 10/01/2019, 08:30 h
Local: SP  Registro: 16/09/2005  Postagens: 56
Bom dia,
Sugiro você unir as duas querys caso a relação seja um para um, da uma olhada no campo D7_CHAVE, na minha base não achei o campo que se refere ao item D1_ITEM
Tem o campo D1_PRODUTO.
No select procure colocar somente os campos que serão utilizados, isto diminui o tamanho do retorno.

Mensagem do Enviar e-mail Abrir o Perfil do usuário JUNIORPLAC JUNIORPLAC em 10/01/2019, 15:13 h
Local: BA  Registro: 19/02/2015  Postagens: 31
Você é analista, consultor, trabalha com Protheus, Sistemas de informação? Se SIM! Se inscreva neste canal, conteúdo bom e de GRAÇAAAAAAAAAAAAA!

Canal Protheus e SQL - Conteúdo GRATUITO

Mensagem do Enviar e-mail Abrir o Perfil do usuário JUNIORPLAC JUNIORPLAC em 10/01/2019, 15:13 h
Local: BA  Registro: 19/02/2015  Postagens: 31
Você é analista, consultor, trabalha com Protheus, Sistemas de informação? Se SIM! Se inscreva neste canal, conteúdo bom e de GRAÇAAAAAAAAAAAAA!

Canal Protheus e SQL - Conteúdo GRATUITO

Para postar no Fórum você precisa efetuar o seu login ou se registrar

 Mudar para Fórum

 

 

 
 
   
Pagina Principal Shopping PROTHEUS Tire suas duvidas Vagas Microsiga em todo Brasil Aprofunde seus conhecimentos Noticias Online Fale Conosco Pagina Principal