- Fórum
- Protheus/Microsiga/Totvs
- AdvPL (Advanced Protheus Language)
- Dúvidas Gerais
- Atualizar conteúdo cabeçalho Doc. Entrada - MATA103
×
Linguagem de Programação ADVPL
Perguntas Atualizar conteúdo cabeçalho Doc. Entrada - MATA103
- roberto.junior@maxgear.com.br
- Autor do Tópico
- Desconectado
- Membro Iniciado
Menos
Mais
- Postagens: 11
- Obrigados Recebidos: 0
8 anos 8 meses atrás #30292
por roberto.junior@maxgear.com.br
Boa tarde, Srs.
Espero que esteja bem!
Peço a gentileza para criação desse tópico com um dúvida "chata" e que até agora não consigo uma solução viável.
Estamos inserindo a importação de XML (documento de entrada), porém, não gostaria de gerar uma pré nota e depois classifica-la, além disso, quero por enquanto montar a tela do MATA103 para o operador ainda interagir com o conteúdo antes de confirmar o documento.
Já tenho todos os dados vindos do xml, produtos, número da nota fiscal, série, código de cadastro do fornecedor e etc, pois é ai que mora o problema.
Não consigo levar esses valores ao cabeçalho da rotina, populando então as variáveis CNFISCAL, CSERIE, CA100FOR, CLOJA e etc... mesmo inserindo o conteúdo do novo valor nessas variáveis, o cabeçalho não é atualizado de forma alguma.
Algum de vocês já passou por isso ? Sabem me sugerir por favor alguma situação aonde possa verificar a execução de um refresh por exemplo aonde o cabeçalho seja atualizado de forma automática, sem digitação do operador ?
Ah, quando o MATA103 é montado, depois do click em incluir, já abro um get solicitando o nome do arquivo XML, ele é lido e então após isso gostaria de levar as informações ao cabeçalho, que está lá paradinho, vazio, me esperando.
Agradeço a ajuda.
Abraços.
Junior
Espero que esteja bem!
Peço a gentileza para criação desse tópico com um dúvida "chata" e que até agora não consigo uma solução viável.
Estamos inserindo a importação de XML (documento de entrada), porém, não gostaria de gerar uma pré nota e depois classifica-la, além disso, quero por enquanto montar a tela do MATA103 para o operador ainda interagir com o conteúdo antes de confirmar o documento.
Já tenho todos os dados vindos do xml, produtos, número da nota fiscal, série, código de cadastro do fornecedor e etc, pois é ai que mora o problema.
Não consigo levar esses valores ao cabeçalho da rotina, populando então as variáveis CNFISCAL, CSERIE, CA100FOR, CLOJA e etc... mesmo inserindo o conteúdo do novo valor nessas variáveis, o cabeçalho não é atualizado de forma alguma.
Algum de vocês já passou por isso ? Sabem me sugerir por favor alguma situação aonde possa verificar a execução de um refresh por exemplo aonde o cabeçalho seja atualizado de forma automática, sem digitação do operador ?
Ah, quando o MATA103 é montado, depois do click em incluir, já abro um get solicitando o nome do arquivo XML, ele é lido e então após isso gostaria de levar as informações ao cabeçalho, que está lá paradinho, vazio, me esperando.
Agradeço a ajuda.
Abraços.
Junior
Por favor Acessar ou Registrar para participar da conversa.
- sarraipa
- Desconectado
- Membro Dourado
Menos
Mais
- Postagens: 232
- Obrigados Recebidos: 1
8 anos 8 meses atrás - 8 anos 8 meses atrás #30296
por sarraipa
Respondido por sarraipa no tópico Atualizar conteúdo cabeçalho Doc. Entrada - MATA103
Vou te dar um exemplo de um MSExecAuto:
No cabeçario do documento de entrada passa direto para SF1 e os itens direto para a SD1.
Para permitir que o usuário manipulo a tela de inclusão coloque .T. no MSExecAuto
MSExecAuto({|x,y,z,w| mata103(x,y,z,w)},aCabec,aItens,3,.T.)
Exemplo
If !EMPTY(aDados)
aCabec := {}
aItens := {}
aadd(aCabec,{"F1_TIPO" ,cTipo})
aadd(aCabec,{"F1_FORMUL" ,cFormul})
aadd(aCabec,{"F1_DOC" ,cNFiscal})
aadd(aCabec,{"F1_SERIE" ,cSerie})
aadd(aCabec,{"F1_EMISSAO" ,dDEmissao})
aadd(aCabec,{"F1_FORNECE" ,cA100For})
aadd(aCabec,{"F1_LOJA" ,cLoja})
aadd(aCabec,{"F1_ESPECIE" ,cEspecie})
aadd(aCabec,{"F1_COND" ,"999"})
aadd(aCabec,{"F1_DESPESA" ,0})
aadd(aCabec,{"E2_NATUREZ" ,"5112001"})
For nX:=1 To len(aDados)
nQtd := Val(StrTran(aDados[nx,2],',','.'))
nVlunit := Val(StrTran(aDados[nx,3],',','.'))
aLinha := {}
aadd(aLinha,{"D1_COD" ,aDados[nx,1],Nil})
aadd(aLinha,{"D1_QUANT" ,nQtd,Nil})
aadd(aLinha,{"D1_VUNIT" ,nVlunit,Nil})
aadd(aLinha,{"D1_TOTAL" ,nQtd * nVlunit,Nil})
aadd(aLinha,{"D1_TES" ,aDados[nx,4],Nil})
aadd(aItens,aLinha)
Next nX
MSExecAuto({|x,y,z,w| mata103(x,y,z,w)},aCabec,aItens,3,.T.)
EndIf
No cabeçario do documento de entrada passa direto para SF1 e os itens direto para a SD1.
Para permitir que o usuário manipulo a tela de inclusão coloque .T. no MSExecAuto
MSExecAuto({|x,y,z,w| mata103(x,y,z,w)},aCabec,aItens,3,.T.)
Exemplo
If !EMPTY(aDados)
aCabec := {}
aItens := {}
aadd(aCabec,{"F1_TIPO" ,cTipo})
aadd(aCabec,{"F1_FORMUL" ,cFormul})
aadd(aCabec,{"F1_DOC" ,cNFiscal})
aadd(aCabec,{"F1_SERIE" ,cSerie})
aadd(aCabec,{"F1_EMISSAO" ,dDEmissao})
aadd(aCabec,{"F1_FORNECE" ,cA100For})
aadd(aCabec,{"F1_LOJA" ,cLoja})
aadd(aCabec,{"F1_ESPECIE" ,cEspecie})
aadd(aCabec,{"F1_COND" ,"999"})
aadd(aCabec,{"F1_DESPESA" ,0})
aadd(aCabec,{"E2_NATUREZ" ,"5112001"})
For nX:=1 To len(aDados)
nQtd := Val(StrTran(aDados[nx,2],',','.'))
nVlunit := Val(StrTran(aDados[nx,3],',','.'))
aLinha := {}
aadd(aLinha,{"D1_COD" ,aDados[nx,1],Nil})
aadd(aLinha,{"D1_QUANT" ,nQtd,Nil})
aadd(aLinha,{"D1_VUNIT" ,nVlunit,Nil})
aadd(aLinha,{"D1_TOTAL" ,nQtd * nVlunit,Nil})
aadd(aLinha,{"D1_TES" ,aDados[nx,4],Nil})
aadd(aItens,aLinha)
Next nX
MSExecAuto({|x,y,z,w| mata103(x,y,z,w)},aCabec,aItens,3,.T.)
EndIf
Ultima edição: 8 anos 8 meses atrás por sarraipa.
Por favor Acessar ou Registrar para participar da conversa.
- roberto.junior@maxgear.com.br
- Autor do Tópico
- Desconectado
- Membro Iniciado
Menos
Mais
- Postagens: 11
- Obrigados Recebidos: 0
8 anos 8 meses atrás #30311
por roberto.junior@maxgear.com.br
Respondido por roberto.junior@maxgear.com.br no tópico Atualizar conteúdo cabeçalho Doc. Entrada - MATA103
Olá André!
Obrigado pelo retorno.
Sinceramente não sabia dessa opção na sintaxe do msexecauto, a partir de agora começo a usa-la.
Quanto ao problema: resolvi a situação colocando a validação no primeiro campo do cabeçalho, que é o CTIPO (F1_TIPO), assim, todos os demais campos abaixo dele são preenchidos, anteriormente estava usando a validação no CESPECIE (F1_ESPECIE), por isso, as variáveis anteriores a esse campo não estavam sendo atualizadas.
Abraço!
Obrigado pelo retorno.
Sinceramente não sabia dessa opção na sintaxe do msexecauto, a partir de agora começo a usa-la.
Quanto ao problema: resolvi a situação colocando a validação no primeiro campo do cabeçalho, que é o CTIPO (F1_TIPO), assim, todos os demais campos abaixo dele são preenchidos, anteriormente estava usando a validação no CESPECIE (F1_ESPECIE), por isso, as variáveis anteriores a esse campo não estavam sendo atualizadas.
Abraço!
Por favor Acessar ou Registrar para participar da conversa.
- Fórum
- Protheus/Microsiga/Totvs
- AdvPL (Advanced Protheus Language)
- Dúvidas Gerais
- Atualizar conteúdo cabeçalho Doc. Entrada - MATA103
Tempo para a criação da página:0.131 segundos