× Linguagem de Programação ADVPL

Perguntas GetSxEnum () nâo incrementa corretamente

Mais
10 anos 8 meses atrás #21597 por fsbarbosa90
Bom dia.

Estou com um problema, onde tento pegar o proximo numero para o campo código, porém a função getsxenum, nao esta incrementando correto. Ela soma mais 1 enquanto estou com a compilação aberta. Se fecho e abro de novo, ela zera e começa pelo 1 novamente. Se alguem puder me ajudar. Agradeço desde já.

cCod :=GetSxEnum("ZZ1","Z1_COD")

Por favor Acessar ou Registrar para participar da conversa.

Mais
10 anos 8 meses atrás #21625 por dexter
Basicamente para usar um controle de numeração vc tem que
criar os campos na SXF e SXE , sendo a numeração inicial e a próxima
numeração, chamando GETSXENUM para pegar a próxima numeração
e confirmando o uso dessa numeração com a função ConfirmSX8.



Como funciona a sequência numérica nas tabelas SXE e SXF:

Na tabela SXF o campo XF_ALIAS deve ser informado o Alias e o campo XF_NUMERO deve ser igual ao próximo número que será apresentado.
Na tabela SXE o campo XE_ALIAS deve ser informado o Alias e o campo XE_NUMERO deve ser igual ao posterior ao próximo número que será apresentado.


Exemplo utilizando o alias SC5 do pedido de venda:
Se na tabela SC5 o último pedido (campo C5_NUM) for igual a 000040, o campo XF_NUMERO deverá ser 000041 (próximo número) e o campo XE_NUMERO deverá ser 000042 (posterior ao próximo número).


Mais informações SXE e SXF
tdn.totvs.com/pages/releaseview.action?pageId=73893808
tdn.totvs.com/pages/viewpage.action?pageId=22479858


Mais informações GETSXENUM()
tdn.totvs.com/pages/viewpage.action?pageId=24346933
tdn.totvs.com/pages/releaseview.action?pageId=6814925

Por favor Acessar ou Registrar para participar da conversa.

Mais
10 anos 8 meses atrás #21629 por THALESCOTR
Bom dia Fernando,

você deve utilizar o ConfirmSx8() e o RollbackSx8().
Na sua mbrowse você deve utilizar o confirmSx8() quando o usuário clicar no botão confirmar.
Se ele clicar no fechar você da um rollbacksx8(), voltando a numeração anterior.

Segue exemplo:

oDlg:bInit := {|| EnchoiceBar(oDlg, {||lGrava := .T.,oDlg:End()},{||lGrava := .F.,oDlg:End()})}

If lGrava //Clicou no confirmar, grava numeração, com isso quando incluir novamente, puxará a próxima numeração
If nOpc == 3 //incluir
ConfirmSx8()
EndIf

Else //Clicou no cancelar, não grava a numeração
If nOpc == 3 //incluir
RollBackSx8()
EndIf
EndIf


Att
Thales

Por favor Acessar ou Registrar para participar da conversa.

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