Histórico da Página
...
Punto de entrada MVC | Descripción | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
MODELPOS | Punto de entrada ejecutado en la validación total del modelo.
| |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
FORMPRE | Punto de entrada ejecutado antes de la alteración de cualquier campo de formulario.
| |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
FORMPOS | Punto de entrada ejecutado en la validación total del formulario.
| |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
FORMLINEPRE | Punto de entrada ejecutado antes de la alteración de cualquier campo de formulario.
| |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
FORMLINEPOS | Punto de entrada ejecutado al finalizar la edición de una línea.
|
Ejemplo completo:
Bloco de código | ||||||||||
---|---|---|---|---|---|---|---|---|---|---|
| ||||||||||
#INCLUDE 'protheus.ch' #INCLUDE 'FWMVCDEF.CH' User Function LOCXIN() Local aParam := PARAMIXB Local xRet := .T. Local oObj := '' Local cIdPonto := '' Local cIdModel := '' Local cAction := '' Local nLinha := 0 Local nX := 0 Local cIdCpo := 0 If aParam <> NIL oObj := aParam[1] cIdPonto := aParam[2] cIdModel := aParam[3] If cIdPonto == 'MODELPOS' //Validación total del modelo. /*aParam 1 O Objeto del formulário o de modelo, conforme sea el caso 2 C ID local de ejecución del punto de entrada 3 C ID de formulário*/ xRet := .T. If Empty(oObj:GetModel("SF1_MASTER"):GetValue("F1_TPVENT")) xRet := .F. Help( ,, "HELP",, "El campo F1_TPVENT debe ser informado.", 1, 0) EndIf For nX := 1 To oObj:GetModel("SD1_DETAIL"):Length() If Empty(oObj:GetModel("SD1_DETAIL"):GetValue("D1_CONTA", nX)) xRet := .F. Help( ,, "HELP",, "El campo D1_CONTA debe ser informado.", 1, 0) EndIf Next ElseIf cIdPonto == 'FORMPRE' //Ejecutado antes de la alteración de cualquier campo de formulario. //Formulario /*aParam 1 O Objeto del formulário o de modelo, conforme sea el caso 2 C ID local de ejecución del punto de entrada 3 C ID de formulário 4 C Acción de formulario 5 C Id del campo 6 C Dato asignado al campo*/ //Grid /*aParam 1 O Objeto del formulário o de modelo, conforme sea el caso 2 C ID local de ejecución del punto de entrada 3 C ID de formulário 4 N Número de línea de FWFORMGRID 5 C Acción de FWFORMGRID 6 C Id del campo*/ If cIdModel == "SF1_MASTER" cAction := aParam[4] cIdCpo := aParam[5] elseIf cIdModel == "SD1_DETAIL" cAction := aParam[5] cIdCpo := aParam[6] EndIf If cAction == "CANSETVALUE" If cIdCpo == "F1_LOJA" xRet := !Empty(oObj:GetValue("F1_FORNECE")) EndIf ElseIf cAction == "SETVALUE" If cIdCpo == "D1_CF" If Empty(oObj:GetValue("D1_TES")) xRet := .F. Help( ,, "HELP",, "Informe primero un TES", 1, 0) EndIf EndIf EndIf ElseIf cIdPonto == 'FORMPOS' //Validación total del formulario. /*aParam 1 O Objeto del formulário o de modelo, conforme sea el caso 2 C ID local de ejecución del punto de entrada 3 C ID de formulário*/ xRet := .T. If cIdModel == "SF1_MASTER" If Empty(oObj:GetValue("F1_TPVENT")) xRet := .F. Help( ,, "HELP",, "El campo F1_TPVENT debe ser informado.", 1, 0) EndIf ElseIf cIdModel == "SD1_DETAIL" For nX := 1 To oObj:Length() If Empty(oObj:GetValue("D1_CONTA", nX)) xRet := .F. Help( ,, "HELP",, "El campo D1_CONTA debe ser informado.", 1, 0) EndIf Next EndIf ElseIf cIdPonto == 'FORMLINEPRE' //Ejecutado antes de la alteración de una línea de formulário FWFORMGRID (Grid) /*aParam 1 O Objeto del formulário o de modelo, conforme sea el caso 2 C ID local de ejecución del punto de entrada 3 C ID de formulário 4 N Número de línea de FWFORMGRID 5 C Acción de FWFORMGRID 6 C Id del campo*/ If cIdModel == "SD1_DETAIL" cAction := aParam[5] nLinha := oObj:GetLine() If cAction == "DELETE" .and. nLinha == 1 xRet := .F. //Retorno de la validación. Help( ,, "HELP",, "No puede ser eliminada esta linea.", 1, 0) EndIf EndIf ElseIf cIdPonto == 'FORMLINEPOS' //Ejecutado al finalizar la edición de una línea de formulário FWFORMGRID (Grid). (Validación de línea) /*aParam 1 O Objeto del formulário o de modelo, conforme sea el caso 2 C ID local de ejecución del punto de entrada 3 C ID de formulário 4 N Número de línea de FWFORMGRID*/ If cIdModel == "SD1_DETAIL" nLinha := oObj:GetLine() If Empty(oObj:GetValue("D1_CC", nLinha)) Help( ,, "HELP",, "El campo D1_CC debe ser informado.", 1, 0) xRet := .F. //Retorno de la validación. EndIf EndIf EndIf EndIf Return xRet |
...