P.E. no cadastro de tabela de preço
Exemplo 1- Percorre todos os itens da DA1 e efetua a gravação de log:
//Bibliotecas #Include "Protheus.ch" #Include "TopConn.ch" /*/{Protheus.doc} OMSA010 Exemplo de Ponto de Entrada em MVC - Tabela de Preço @author zIsMVC @since 21/06/2018 @version 1.0 @type function @obs Deixar o nome do prw como: OMSA010_pe.prw /*/ User Function OMSA010() Local aParam := PARAMIXB Local xRet := .T. Local oObj := Nil Local cIdPonto := "" Local cIdModel := "" Local oModelPad := Nil Local oModelGrid := Nil Local cProduto := "" Local cTabela := "" Local nValor := 0 Local lExcluido := .F. Local nComissao := 0 Local nQuantid := 0 Local cQryZ12 := "" Local nErro //Se tiver parâmetros If aParam != Nil //Pega informações dos parâmetros oObj := aParam[1] cIdPonto := aParam[2] cIdModel := aParam[3] //Valida a abertura da tela If cIdPonto == "MODELVLDACTIVE" xRet := .T. //Pré configurações do Modelo de Dados ElseIf cIdPonto == "MODELPRE" xRet := .T. //Pré configurações do Formulário de Dados ElseIf cIdPonto == "FORMPRE" xRet := .T. //Adição de opções no Ações Relacionadas dentro da tela ElseIf cIdPonto == "BUTTONBAR" xRet := {} //Pós configurações do Formulário ElseIf cIdPonto == "FORMPOS" xRet := .T. //Validação ao clicar no Botão Confirmar ElseIf cIdPonto == "MODELPOS" xRet := .T. //Pré validações do Commit ElseIf cIdPonto == "FORMCOMMITTTSPRE" //Se vier da Grid If cIdModel == "DA1DETAIL" //Pegando os modelos de dados oModelPad := FWModelActive() oModelGrid := oModelPad:GetModel('DA1DETAIL') //Pegando as informações do item atual cProduto := oModelGrid:GetValue("DA1_CODPRO") cTabela := oModelPad:GetValue("DA0MASTER", "DA0_CODTAB") nValor := oModelGrid:GetValue("DA1_PRCVEN") lExcluido := oModelGrid:IsDeleted() //Chama a rotina do log (para gravar alterações de preço) u_zDA1Log(cTabela, cProduto, nValor, lExcluido) EndIf //Pós validações do Commit ElseIf cIdPonto == "FORMCOMMITTTSPOS" //Se a tabela nao estiver ativa, desativa ela do cadastro auxiliar If DA0->DA0_ATIVO == '2' cQryZ12 := " UPDATE " + CRLF cQryZ12 += " Z12010 " + CRLF cQryZ12 += " SET " + CRLF cQryZ12 += " Z12_FLAG = 'N' " + CRLF cQryZ12 += " WHERE " + CRLF cQryZ12 += " Z12_FILIAL = '" + FWxFilial('Z12') + "' " + CRLF cQryZ12 += " AND Z12_TABPRC = '" + DA0->DA0_CODTAB + "' " + CRLF cQryZ12 += " AND D_E_L_E_T_ = ' ' " + CRLF nErro := TcSqlExec(cQryZ12) If nErro != 0 Alert("Erro na execucao do UPDATE para desativar auxiliar: " + TcSqlError()) EndIf EndIf //Commit das operações (antes da gravação) ElseIf cIdPonto == "MODELCOMMITTTS" //Commit das operações (após a gravação) ElseIf cIdPonto == "MODELCOMMITNTTS" EndIf EndIf Return xRet