Ejemplo de uso de punto Por medio de los puntos de entrada padrón MVC para documentos fiscales de entradade MVC es posible realizar validaciones de datos en los documentos de entrada, como se ejemplifican la información a continuación.
| |
| Punto de entrada ejecutado en la validación total del modelo. Parámetros recibidos: | Nombre | Tipo | Descripción |
---|
PARAMIXB[1] | O | Objeto del formulario o del modelo, conforme el caso | PARAMIXB[2] | C | ID del local de ejecución del punto de entrada. | PARAMIXB[3] | C | ID del formulario. |
| Respuesta: | Nombre | Tipo | Descripción |
---|
lRet | L | .T. indica que no hay errores. |
|
Bloco de código |
---|
language | java |
---|
firstline | 1 |
---|
title | Ejemplo: |
---|
linenumbers | true |
---|
collapse | true |
---|
| #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.
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
EndIf
EndIf
Return xRet |
|
| Punto de entrada ejecutado antes de la alteración de cualquier campo de formulario. Parámetros recibidos: | Formulario. Nombre | Tipo | Descripción |
---|
PARAMIXB[1] | O | Objeto del formulario o del modelo, conforme el caso | PARAMIXB[2] | C | ID del local de ejecución del punto de entrada. | PARAMIXB[3] | C | ID del formulario. | PARAMIXB[4] | C | Acción de formulario. | PARAMIXB[5] | C | ID del Campo. | PARAMIXB[5] | C | Dato asignado al campo |
Grid. Nombre | Tipo | Descripción |
---|
PARAMIXB[1] | O | Objeto del formulario o del modelo, conforme el caso | PARAMIXB[2] | C | ID del local de ejecución del punto de entrada. | PARAMIXB[3] | C | ID del formulario. | PARAMIXB[4] | N | Número de línea de FWFORMGRID | PARAMIXB[5] | C | Acción del FWFORMGRID. | PARAMIXB[6] | C | ID del Campo. |
| Respuesta: | Nombre | Tipo | Descripción |
---|
lRet | L | "CANSETVALUE" - Indica si el campo puede ser editado. "SETVALUE" - Indica si el valor no puede ser atribuido. |
|
Bloco de código |
---|
language | java |
---|
firstline | 1 |
---|
title | Ejemplo: |
---|
linenumbers | true |
---|
collapse | true |
---|
| #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 == 'FORMPRE' //Ejecutado antes de la alteración de cualquier campo de formulario.
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
EndIf
EndIf
Return xRet |
|
| Punto de entrada ejecutado en la validación total del formulario. Parámetros recibidos: | Nombre | Tipo | Descripción |
---|
PARAMIXB[1] | O | Objeto del formulario o del modelo, conforme el caso | PARAMIXB[2] | C | ID del local de ejecución del punto de entrada. | PARAMIXB[3] | C | ID del formulario. |
| Respuesta: | Nombre | Tipo | Descripción |
---|
lRet | L | En caso de que el formulario esté correcto retornar .T., si existen errores retornar .F. |
|
Bloco de código |
---|
language | java |
---|
firstline | 1 |
---|
title | Ejemplo: |
---|
linenumbers | true |
---|
collapse | true |
---|
| #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 == 'FORMPOS' //Validación total del formulario.
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
EndIf
EndIf
Return xRet |
|
| Punto de entrada ejecutado antes de la alteración de cualquier campo de formulario. Parámetros recibidos: | Nombre | Tipo | Descripción |
---|
PARAMIXB[1] | O | Objeto del formulario o del modelo, conforme el caso | PARAMIXB[2] | C | ID del local de ejecución del punto de entrada. | PARAMIXB[3] | C | ID del formulario. | PARAMIXB[4] | N | Número de línea de FWFORMGRID | PARAMIXB[5] | C | Acción del FWFORMGRID. | PARAMIXB[6] | C | ID del Campo. |
| Respuesta: | Nombre | Tipo | Descripción |
---|
lRet | L | Indica si permite alterar la línea .T., en caso contrario .F. |
|
Bloco de código |
---|
language | java |
---|
firstline | 1 |
---|
title | Ejemplo: |
---|
linenumbers | true |
---|
collapse | true |
---|
| #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 == 'FORMLINEPRE' //Ejecutado antes de la alteración de una línea de formulário FWFORMGRID (Grid)
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
EndIf
EndIf
Return xRet |
|
| Punto de entrada ejecutado al finalizar la edición de una línea. Parámetros recibidos: | Nombre | Tipo | Descripción |
---|
PARAMIXB[1] | O | Objeto del formulario o del modelo, conforme el caso | PARAMIXB[2] | C | ID del local de ejecución del punto de entrada. | PARAMIXB[3] | C | ID del Model. | PARAMIXB[4] | N | Número de línea. |
| Respuesta: | Nombre | Tipo | Descripción |
---|
lRet | L | Si el valor retornado es .T. si la línea no tiene errores, en caso de existir un error retornar .F. |
|
Bloco de código |
---|
language | java |
---|
firstline | 1 |
---|
title | Ejemplo |
---|
linenumbers | true |
---|
collapse | true |
---|
| #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 == 'FORMLINEPOS' //Ejecutado al finalizar la edición de una línea de formulário FWFORMGRID (Grid). (Validación de línea)
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 |
|
...