- Fórum
- Protheus/Microsiga/Totvs
- AdvPL (Advanced Protheus Language)
- Dúvidas Gerais
- GetSxEnum () nâo incrementa corretamente
×
Linguagem de Programação ADVPL
Perguntas GetSxEnum () nâo incrementa corretamente
- fsbarbosa90
- Autor do Tópico
- Desconectado
- Membro Iniciado
Menos
Mais
- Postagens: 8
- Obrigados Recebidos: 0
10 anos 8 meses atrás #21597
por fsbarbosa90
GetSxEnum () nâo incrementa corretamente foi criado 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")
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.
- dexter
- Desconectado
- Membro Sénior
Menos
Mais
- Postagens: 78
- Obrigados Recebidos: 0
10 anos 8 meses atrás #21625
por dexter
Respondido por dexter no tópico GetSxEnum () nâo incrementa corretamente
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
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.
- THALESCOTR
- Desconectado
- Membro Especialista
Menos
Mais
- Postagens: 124
- Obrigados Recebidos: 0
10 anos 8 meses atrás #21629
por THALESCOTR
Respondido por THALESCOTR no tópico GetSxEnum () nâo incrementa corretamente
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
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.
- Fórum
- Protheus/Microsiga/Totvs
- AdvPL (Advanced Protheus Language)
- Dúvidas Gerais
- GetSxEnum () nâo incrementa corretamente
Tempo para a criação da página:0.111 segundos