CONTEÚDO
01. VISÃO GERAL
A rotina de romaneio(OGA250) foi criado usando a arquitetura Model-View-Controller ou MVC, possibilitando o uso da regra de negócio em aplicações automática.
A finalidade deste documento é exemplificar a inclusão, alteração e exclusão de um romaneio via rotina automática MVC.
O romaneio sem pesagem/simbólico(OGA251) também faz uso da rotina de romaneio(OGA250), se diferenciando por não fazer uso da balança, não sendo necessário informar o peso de entrada e saída, mas somente o peso bruto do romaneio.
Documentação se aplica ao Protheus a partir da versão 12.1.27.
Deve ser adequado conforme a necessidade do cliente.
02. EXEMPLO DE UTILIZAÇÃO
Exemplo de código - Inclusão Romaneio com Pesagem
User Function zIncRomP() Local lRet := .F. Local oModel := Nil oModel := FWLoadModel('OGA250') oModel:SetOperation(MODEL_OPERATION_INSERT) //INCLUSÃO oModel:Activate() //### Modelos de dados: NJJUNICO, NJKUNICO, NK4UNICO, NJMUNICO ### //Setando valores nos campos oModel:GetModel('NJJUNICO'):SetValue('NJJ_TIPENT', '0') //COM PESAGEM oModel:GetModel('NJJUNICO'):SetValue('NJJ_TIPO', '4') //SAIDA POR VENDA oModel:GetModel('NJJUNICO'):SetValue('NJJ_CODCTR', '000116') //NUMERO DO CONTRATO oModel:GetModel('NJJUNICO'):SetValue('NJJ_TPFORM', '1') oModel:GetModel('NJJUNICO'):SetValue('NJJ_LOCAL', '01') oModel:GetModel('NJJUNICO'):SetValue('NJJ_TABELA', '000001') oModel:GetModel('NJJUNICO'):SetValue('NJJ_PESO1', 1000) oModel:GetModel('NJJUNICO'):SetValue('NJJ_PESO2', 2000) oModel:GetModel('NJJUNICO'):SetValue('NJJ_PSSUBT', 1000) //modelo de dados da aba Classificação(Grid) oModel:GetModel('NJKUNICO'):GoLine( 1 ) //posicionando na linha oModel:GetModel('NJKUNICO'):SetValue('NJK_PERDES', 1) oModel:GetModel('NJKUNICO'):GoLine( 2 ) //posicionando na linha oModel:GetModel('NJKUNICO'):SetValue('NJK_PERDES', 0.8) //modelo de dados da aba Comercialização(Grid) oModel:GetModel( "NJMUNICO" ):GoLine( 1 ) //posicionando na linha oModel:GetModel('NJMUNICO'):SetValue('NJM_ITEROM', '01') If oModel:VldData() //valida os dados oModel:CommitData() //realiza a gravação do registro MsgInfo("Registro incluído com sucesso") lRet := .T. Else VarInfo("",oModel:GetErrorMessage()) MsgAlert("Erro ao incluir o registro") EndIf return lRet
Exemplo de código - Inclusão Romaneio sem Pesagem(simbólico)
User Function zIncRomS() Local lRet := .F. Local oModel := Nil SetFunName("OGA251") //para definir que deve ser considerado a chamada pelo OGA251(Romaneio sem pesagem) //chamada da função acima necessário para algumas validações, importante seu uso somente nos romaneio com o campo NJJ_TIPENT='2' oModel := FWLoadModel('OGA250') oModel:SetOperation(MODEL_OPERATION_INSERT) oModel:Activate() oModel:GetModel('NJJUNICO'):SetValue('NJJ_TIPENT', '2') //SEM PESAGEM oModel:GetModel('NJJUNICO'):SetValue('NJJ_TIPO', '4') //SAIDA POR VENDA oModel:GetModel('NJJUNICO'):SetValue('NJJ_CODCTR', '000116') //NUMERO DO CONTRATO oModel:GetModel('NJJUNICO'):SetValue('NJJ_TPFORM', '1') oModel:GetModel('NJJUNICO'):SetValue('NJJ_LOCAL', '01') oModel:GetModel('NJJUNICO'):SetValue('NJJ_TABELA', '000001') oModel:GetModel('NJJUNICO'):SetValue('NJJ_PSSUBT', 1000) //modelo de dados da aba Classificação(Grid) oModel:GetModel('NJKUNICO'):GoLine( 1 ) //posicionando na linha oModel:GetModel('NJKUNICO'):SetValue('NJK_PERDES', 1) oModel:GetModel('NJKUNICO'):GoLine( 2 ) //posicionando na linha oModel:GetModel('NJKUNICO'):SetValue('NJK_PERDES', 0.8) //modelo de dados da aba Comercialização(Grid) oModel:GetModel( "NJMUNICO" ):GoLine( 1 ) //posicionando na linha oModel:GetModel('NJMUNICO'):SetValue('NJM_ITEROM', '01') If oModel:VldData() //valida os dados oModel:CommitData() //realiza a gravação do registro MsgInfo("Registro incluído com sucesso") lRet := .T. Else VarInfo("",oModel:GetErrorMessage()) MsgAlert("Erro ao incluir o registro") EndIf return lRet
Exemplo de código - Alteração do Romaneio
User Function zEditRom() Local lRet := .F. Local oModel := Nil dbSelectArea("NJJ") NJJ->(DbSetOrder(1)) If NJJ->(DbSeek(xFilial("NJJ") + '0000000447')) //SetFunName("OGA251") //importante definir para o romaneio sem pesagem, campo NJJ_TIPENT='2', para executar as validações corretas oModel := FWLoadModel('OGA250') oModel:SetOperation(MODEL_OPERATION_UPDATE) //Alteração oModel:Activate() //### Modelos de dados: NJJUNICO, NJKUNICO, NK4UNICO, NJMUNICO ### //Setando valores nos campos oModel:GetModel('NJJUNICO'):SetValue('NJJ_LOCAL', '02') //modelo de dados da aba Classificação(Grid) oModel:GetModel( "NJKUNICO" ):GoLine( 1 ) oModel:GetModel('NJKUNICO'):SetValue('NJK_PERDES', 1.1) //modelo de dados da aba Comercialização(Grid) oModel:GetModel( "NJMUNICO" ):GoLine( 1 ) oModel:GetModel('NJMUNICO'):SetValue('NJM_TES', '501') If oModel:VldData() oModel:CommitData() MsgInfo("Registro alterado com sucesso") lRet := .T. Else VarInfo("",oModel:GetErrorMessage()) MsgAlert("Erro ao alterar o registro") EndIf Else MsgAlert("Registro não localizado!") EndIf return lRet
Exemplo de código - Exclusão do Romaneio
User Function zDeletRom() Local lRet := .F. Local oModel := Nil dbSelectArea("NJJ") NJJ->(DbSetOrder(1)) If NJJ->(DbSeek(xFilial("NJJ") + '0000000449')) oModel := FWLoadModel('OGA250') oModel:SetOperation(MODEL_OPERATION_DELETE) //Exclusão oModel:Activate() If oModel:VldData() oModel:CommitData() MsgInfo("Registro excluido com sucesso") lRet := .T. Else VarInfo("",oModel:GetErrorMessage()) MsgAlert("Erro ao excluir o registro") EndIf Else MsgAlert("Registro não localizado!") EndIf return lRet
03. ASSUNTOS RELACIONADOS
Visão Geral
Import HTML Content
Conteúdo das Ferramentas
Tarefas