× Linguagem de Programação ADVPL

Perguntas Atualizar conteúdo cabeçalho Doc. Entrada - MATA103

Mais
8 anos 9 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

Por favor Acessar ou Registrar para participar da conversa.

Mais
8 anos 9 meses atrás - 8 anos 9 meses atrás #30296 por sarraipa
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
Ultima edição: 8 anos 9 meses atrás por sarraipa.

Por favor Acessar ou Registrar para participar da conversa.

Mais
8 anos 9 meses atrás #30311 por roberto.junior@maxgear.com.br
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!

Por favor Acessar ou Registrar para participar da conversa.

Tempo para a criação da página:0.108 segundos
Joomla templates by a4joomla