× Linguagem de Programação ADVPL

Perguntas Dúvida MsExecAuto({|x,y,z|MATA140(x,y,z)},_aAutoSF1,_aAutoSD1,3)

Mais
11 anos 4 meses atrás #15306 por gustavo13
Olá!

Quando adiciono no _aLinha o campo D1_PEDIDO e D1_ITEMPC, ele simplesmente não funciona e quando os retiro funciona.


_aLinha = {}
AADD(_aLinha , {"D1_COD" , sb1 -> b1_cod , Nil } )
AADD(_aLinha , {"D1_DESCRI" , _sDescri , Nil } )
AADD(_aLinha , {"D1_TOTAL" , _nVlTot , Nil } )
AADD(_aLinha , {"D1_UM" , sb1 -> B1_UM , Nil } )
AADD(_aLinha , {"D1_TP" , sb1 -> B1_TIPO , Nil } )
AADD(_aLinha , {"D1_LOCAL" , sb1 -> B1_LOCPAD, Nil } )
AADD(_aLinha , {"D1_QUANT" , _nQuant , Nil } )
AADD(_aLinha , {"D1_VUNIT" , _nVlUni , Nil } )
aadd(_aLinha,{"D1_PEDIDO",'',Nil,Nil})
aadd(_aLinha,{"D1_ITEMPC",'',Nil,Nil})
if mv_par05 == "2" // Gerar nota
AADD(_aLinha , {"D1_TES" , _sTES , Nil } )
endif
AADD(_aAutoSD1, aClone (U_OrdAuto (_aLinha)))
next
endif

else
u_help ("Layout ou versao de XML desconhecidos na rotina " + procname ())
_lContinua = .F.
endif


// Gera a NF ou pre-NF de entrada.
if _lContinua
//acols := AlteraTeste(_aAutoSD1)
/* For i := 1 to len(acols)

If _aAutoSD1[1][2] == acols[1]

_aAutoSD1[9][2] := acols[3]
_aAutoSD1[8][2] := acols[2]

Endif

Next */
lMsHelpAuto := .F. // se .t. direciona as mensagens de help
lMsErroAuto := .F. // necessario a criacao
_aAmbAnt := U_SalvaAmb () // As rotinas automaticas alteram o conteudo das variaveis mv_par.
DbSelectArea("SF1")
if mv_par05 == "1" // Gerar pre-nota
MsExecAuto({|x,y,z|MATA140(x,y,z)},_aAutoSF1,_aAutoSD1,3)
elseif mv_par05 == "2" // Gerar nota

//U_EL_SOLTESTE("2121",.T., _aLinha,"1212")

// Abre tela do doc. entrada (parametro .T.) para possibilitar conferencia e manutencao do usuario.
MATA103 (_aAutoSF1, _aAutoSD1, 3, .T.)
endif
U_SalvaAmb (_aAmbAnt)
//If lMsErroAuto
// MostraErro()
//else
// Verifica se a nota foi gravada (usuario pode ter cancelado no final)
if sf1 -> f1_filial == xfilial ("SF1") ;
.and. sf1 -> f1_doc == right (zzx -> zzx_doc, tamsx3 ("F1_DOC")[1]) ;
.and. sf1 -> f1_serie == zzx -> zzx_serie ;
.and. sf1 -> f1_fornece == zzx -> zzx_clifor ;
.and. sf1 -> f1_loja == zzx -> zzx_loja
reclock ("ZZX", .F.)
zzx -> zzx_NFGer = 'S'
msunlock ()
u_help ("Documento '" + sf1 -> f1_doc + "' gerado com sucesso.")
endif
//endif
endif

Por favor Acessar ou Registrar para participar da conversa.

Mais
11 anos 4 meses atrás #15308 por kanaamlrr
Você tem que preencher esses campos com algum valor, senão não irá funcionar, da forma que você está colocando, ele está tentando atribuir em branco.
Se você estiver parametrizado para que o doc de entrada só entre com um PC, ele irá dar rejeição na inclusão.

Por favor Acessar ou Registrar para participar da conversa.

Mais
11 anos 4 meses atrás #15378 por gustavo13
Mesmo colocando valor continua não funcionando quando adiciono os dois campos no código, ele não retorna erro. Ele apenas nesta verificação "sf1 -> f1_filial == xfilial ("SF1") .and. sf1 -> f1_doc == right (zzx -> zzx_doc, tamsx3 ("F1_DOC")[1]) .and. sf1 -> f1_serie == zzx -> zzx_serie .and. sf1 -> f1_fornece == zzx -> zzx_clifor .and. sf1 -> f1_loja == zzx -> zzx_loja" retorna todos os campos SF1 em branco e cai fora, pois fica diferente dos campos zzx, mas quando tiro do fonte o D1_PEDIDO e D1_ITEMPED ele retornar os campos SF1 preenchidos e funciona.

Por favor Acessar ou Registrar para participar da conversa.

Mais
11 anos 4 meses atrás #15386 por kanaamlrr
Cara, quando você for fazer essa verificação você tem que reposicionar a SF1, pode ser que internamente ela esteja perdendo o posicionamento.

Coloca uma validação com dbSeek antes para ver se criou.

Por favor Acessar ou Registrar para participar da conversa.

Mais
11 anos 4 meses atrás #15592 por gustavo13
Obrigado, consegui fazer com que funcione.

Por favor Acessar ou Registrar para participar da conversa.

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