5240 - Criação de campo incremental no SGI
Problema: Descrição do Problema: Como criar um campo com sequência incremental na tela SGI
Rotina / Tela: Tela SGI
Solução: Solução 5240: Deverá fazer um cursor para retornar a última sequencia, e se encontrar somar + 1 no referido campo.
Seria parecido com esse exemplo abaixo. A regra seria feito na regra da tabela.
Definir Data xdatven;
Definir Cursor Cur_Venda;
Se (CodOpe = AntesInserir)
Inicio
xseq = 1;
xcodemp = Venda_CodEmp;
xcodpro = Venda_CodPro;
xdatven = Venda_DatVen;
Cur_Venda.SQL SELECT USU_SEQVEN FROM USU_TVENDA WHERE USU_CODEMP = :xcodemp AND USU_CODPRO = :xcodpro AND USU_DATVEN = :xdatven ORDER BY USU_SEQVEN DESC;
Cur_Venda.AbrirCursor();
Se (Cur_Venda.Achou)
Inicio
xseq = Cur_Venda.USU_SeqVen + 1;
Fim;
Cur_Venda.FecharCursor();
Venda_SeqVen = xseq;
Fim;
Rotina / Tela: Tela SGI
Solução: Solução 5240: Deverá fazer um cursor para retornar a última sequencia, e se encontrar somar + 1 no referido campo.
Seria parecido com esse exemplo abaixo. A regra seria feito na regra da tabela.
Definir Data xdatven;
Definir Cursor Cur_Venda;
Se (CodOpe = AntesInserir)
Inicio
xseq = 1;
xcodemp = Venda_CodEmp;
xcodpro = Venda_CodPro;
xdatven = Venda_DatVen;
Cur_Venda.SQL SELECT USU_SEQVEN FROM USU_TVENDA WHERE USU_CODEMP = :xcodemp AND USU_CODPRO = :xcodpro AND USU_DATVEN = :xdatven ORDER BY USU_SEQVEN DESC;
Cur_Venda.AbrirCursor();
Se (Cur_Venda.Achou)
Inicio
xseq = Cur_Venda.USU_SeqVen + 1;
Fim;
Cur_Venda.FecharCursor();
Venda_SeqVen = xseq;
Fim;