× Linguagem de Programação ADVPL

Perguntas MsExecauto

Mais
12 anos 1 mês atrás - 12 anos 1 mês atrás #7248 por de019
MsExecauto foi criado por de019
Pessoal, Alguem pode me ajudar... estou apanhando... O programa roda... nao da nenhum erro, mas nao encerra a op q eu quero... Fiz apenas com uma op, para testar... Depois puxo a query para pegar a tabela inteira...
Tentei debugar... e ele trava... nao entendi pq tb... enfim, se alguem puder me ajudar.. segue abaixo o q eu fiz


_cop :="02428101001"
_ctm :='PR0'
_cod :='TOL3NVER01'
_demissao :=dtos(ddatabase)
_doc :=GetSxEnum("SD3",D3_DOC",1)


Begin Transaction

If !Apmsgnoyes("Confirma o encerramento da Op")

Else

IMsErroAuto :=.F.

_aVetor := {{"D3_Op" ,_cop ,Nil},;
{{"D3_Tm" ,_ctm ,Nil},;
{{"D3_Cod" ,_cod ,Nil},;
{{"D3_Emissao" ,_demissao ,Nil},;
{{"D3_Doc" ,_doc ,Nil}}

MsExecAuto ({|x,y|mata250(x,y)}, _aVetor,6} //Quando debug esta parte ele trava

Endif

If IMsErroAuto
MostraErro()

Endif

msgbox("ops Finalizadas")

End transaction

Return
Ultima edição: 12 anos 1 mês atrás por de019.

Por favor Acessar ou Registrar para participar da conversa.

Mais
12 anos 1 mês atrás #7251 por lalberto
Respondido por lalberto no tópico Re: MsExecauto
Brother só uma dica, a data não precisa converter não ok.

tira o dtos()

tenta antes de rodar o execauto já estar posicionado no registro que será encerrado.

Luiz Alberto Vieira Alves
Proprietário
55 (12) 9 8256-5905 (Vivo)
www.3lsystems.com.br
www.masteradvpl.com.br

Por favor Acessar ou Registrar para participar da conversa.

Mais
12 anos 1 mês atrás #7256 por de019
Respondido por de019 no tópico Re: MsExecauto
Cara... Não deu... !!!

:(

Por favor Acessar ou Registrar para participar da conversa.

Mais
7 anos 8 meses atrás #31908 por junior.silva
Respondido por junior.silva no tópico MsExecauto
Boa tarde Andre,

Estou com o mesmo problema.

Você conseguiu resolver?

Por favor Acessar ou Registrar para participar da conversa.

Mais
7 anos 8 meses atrás - 7 anos 8 meses atrás #31909 por admin
Respondido por admin no tópico MsExecauto
Segue um exemplo de função para encerramento de op, lembrando que o ideal é estar posicionado no registro da op que será encerrada.
User Function RPCPA13()

Local   cSQL := ''
Private lMsErroAuto := .F.
Private lMostraErro := .T.

//ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿
//³ Confirma encerramento	                                             ³
//ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ
nAviso := Aviso( "Atenção","Confirma o encerramento da OP " + SUBSTRING(SBC->BC_OP,1,6) + " ? ", { "Sim", "Não" } )
If nAviso == 2
   Return
EndIf

//ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿
//³ Verifica apontamento da OP                                          ³
//ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ
SC2->(dbSetorder(1))
SC2->(dbSeek(xFilial("SC2")+SUBSTRING(SBC->BC_OP,1,6)))
cSQL := "SELECT * FROM " + RETSQLNAME("SD3") + " WHERE "
cSQL += "D3_OP      = '" + ALLTRIM(SBC->BC_OP)  + "' AND "
cSQL += "D3_JOFPECA <> '' AND "
cSQL += "D3_CF = 'PR0' AND "
cSQL += "D3_ESTORNO <> 'S' AND "
cSQL += "D_E_L_E_T_ = '' ORDER BY R_E_C_N_O_ DESC"
dbUseArea(.T.,"TOPCONN",TcGenQry(,,cSQL),"TD3",.F.,.T.)

If TD3->(Eof())
	Aviso( "Atenção", "A OP não pode ser encerrada pois não existe apontamento de produção. Exclua a OP para encerrar.", { "Sim", "Não" } )
	TD3->(dbCloseArea())
	Return
EndIf

TCSETFIELD("TD3","D3_EMISSAO","D",8,0)

//ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿
//³ Prepara vetor de encerramento                                       ³
//ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ
aEncerra := { { "D3_OP"			, TD3->D3_OP			, NIL },;
				  { "D3_TM" 		, TD3->D3_TM			, NIL },;
				  { "D3_EMISSAO"	, TD3->D3_EMISSAO		, NIL },;
				  { "D3_COD"		, TD3->D3_COD			, NIL },;
				  { "D3_UM"			, TD3->D3_UM			, NIL },;
				  { "D3_LOCAL"		, TD3->D3_LOCAL		, NIL },;
				  { "D3_DOC"		, TD3->D3_DOC   		, NIL },;
				  { "D3_NUMSEQ"	, TD3->D3_NUMSEQ  	, NIL } }

//ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿
//³ Encerramento automatico de OP                                       ³
//ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ
Begin Transaction 
				  
	lMsErroAuto := .F.
	MsgRun("Encerramento da OP do ultimo Palete. Aguarde...","MATA250 - Encerramento de OP",{|| MSExecAuto({|x,y| MATA250(x,y)},aEncerra, 6) })
	If lMsErroAuto
		DisarmTransaction()
	   MostraErro()
	EndIf
	
End Transaction 

TD3->(dbCloseAreA())

Return
Ultima edição: 7 anos 8 meses atrás por admin.

Por favor Acessar ou Registrar para participar da conversa.

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