#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"
For nX := 1 To oObj:GetModel("SD1_DETAIL"):Length()
If Empty(oObj:GetModel("SD1_DETAIL"):GetValue("D1_CONTATES", nX))
xRet := .F.
Help( ,, "HELP",, "ElInforme campoprimero D1_CONTA debe ser informado.un TES", 1, 0)
EndIf
Next EndIf
EndIf
ElseIf cIdPonto == 'FORMPREFORMPOS' //EjecutadoValidación antestotal de la alteración de cualquier campo de del formulario.
//Formulario*aParam
/*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 3 ID de formulário
4 C AcciónID de formulario
5formulário*/
C xRet Id del campo
6:= .T.
C If cIdModel == "SF1_MASTER"
Dato asignado al campo*/
//GridIf Empty(oObj:GetValue("F1_TPVENT"))
/*aParam
1 O xRet := .F.
Objeto del formulário o de modelo, conforme sea el caso
2 CHelp( ,, "HELP",, "El campo F1_TPVENT debe ser ID local de ejecución del punto de entrada
3informado.", 1, 0)
C EndIf
ID de formulário
4 N ElseIf cIdModel == "SD1_DETAIL"
Número de línea de FWFORMGRID
5 C For nX := Acción1 de FWFORMGRID
6To oObj:Length()
C Id del campo*/
If Empty(oObj:GetValue("D1_CONTA", nX))
If cIdModel == "SF1_MASTER"
cActionxRet := aParam[4].F.
cIdCpo := aParam[5]
Help( ,, "HELP",, "El campo D1_CONTA debe elseIf cIdModel == "SD1_DETAIL"ser informado.", 1, 0)
cAction := aParam[5]
EndIf
cIdCpo := aParam[6]Next
EndIf
ElseIf cIdPonto == 'FORMLINEPRE' //Ejecutado antes de la Ifalteración cActionde == "CANSETVALUE"
una línea de formulário FWFORMGRID (Grid)
/*aParam
If cIdCpo == "F1_LOJA"
1 O xRet := !Empty(oObj:GetValue("F1_FORNECE"))
Objeto del formulário o de modelo, conforme sea el caso
EndIf
2 C ElseIf cAction == "SETVALUE"
ID local de ejecución del punto de entrada
If cIdCpo == "D1_CF"
3 C ID de formulário
If Empty(oObj:GetValue("D1_TES"))
4 N Número de xRetlínea := .F.
de FWFORMGRID
5 C Help( ,, "HELP",, "Informe primero un TES", 1, 0)
Acción de FWFORMGRID
6 C Id del EndIfcampo*/
If cIdModel == EndIf
"SD1_DETAIL"
cAction EndIf
:= aParam[5]
ElseIf cIdPonto == 'FORMPOS' //Validación total delnLinha formulario.
:= oObj:GetLine()
/*aParam
1 O If cAction == Objeto del formulário o de modelo, conforme sea el caso
2"DELETE" .and. nLinha == 1
C ID localxRet de ejecución del punto de entrada
3:= .F. //Retorno de la validación.
C ID de formulário*/
Help( ,, "HELP",, "No puede ser eliminada xRetesta := .T.
linea.", 1, 0)
If cIdModel == "SF1_MASTER"
EndIf
If Empty(oObj:GetValue("F1_TPVENT"))
EndIf
ElseIf cIdPonto == 'FORMLINEPOS' //Ejecutado al finalizar la edición de una línea de xRetformulário :=FWFORMGRID (Grid).F.
(Validación de línea)
Help( ,, "HELP",, "El campo F1_TPVENT debe ser informado.", 1, 0)
/*aParam
1 O Objeto del EndIf
formulário o de modelo, conforme sea el caso
ElseIf cIdModel == "SD1_DETAIL"
2 C For nXID :=local 1de To oObj:Length()
ejecución del punto de entrada
3 If Empty(oObj:GetValue("D1_CONTA", nX))
C ID de formulário
4 xRet := .F.
N Número de línea de FWFORMGRID*/
If Help( ,,cIdModel == "HELP",, "El campo D1_CONTA debe ser informado.", 1, 0)
SD1_DETAIL"
nLinha := oObj:GetLine()
EndIf
If Empty(oObj:GetValue("D1_CC", nLinha))
Next
EndIf
Help( ,, "HELP",, "El campo D1_CC ElseIfdebe cIdPonto == 'FORMLINEPRE' //Ejecutado antes de la alteración de una línea de formulário FWFORMGRID (Grid)
ser informado.", 1, 0)
xRet := .F. /*aParam
1 O/Retorno de la validación.
Objeto del formulário o de modelo, conformeEndIf
sea el caso
2 C EndIf
ID local de ejecución delElseIf puntocIdPonto de entrada
3== "MODELCOMMITTTS"
C /*aParam
ID de formulário
4 N 1 NúmeroO de línea de FWFORMGRID
5 Objeto Cdel formulário o de modelo, conforme sea el Accióncaso
de FWFORMGRID
6 C 2 Id del campo*/
C ID local de ejecución Ifdel cIdModelpunto == "SD1_DETAIL"de entrada
3 cAction := aParam[5]
C ID de formulário*/
nLinha :=If oObj:GetLineGetOperation()
== 3 //Inclusión
If cAction == MsgAlert("DELETEDocumento " .and. nLinha == 1
+ oObj:GetModel("SF1_MASTER"):GetValue("F1_DOC") + " guardado." )
ElseIf xRet := .F. //Retorno de la validación.oObj:GetOperation() == 5 //Borrado
MsgAlert("Documento " + Help( ,, "HELP",, "No puede ser eliminada esta linea.", 1, 0)
EndIfoObj:GetModel("SF1_MASTER"):GetValue("F1_DOC") + " borrado." )
EndIf
ElseIf cIdPonto == 'FORMLINEPOS' //Ejecutado al finalizar la edición de una línea de formulário FWFORMGRID (Grid). (Validación de línea)"MODELCOMMITNTTS"
/*aParam
/*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 conforme sea el caso
N 2 Número de línea de FWFORMGRID*/
C ID local de ejecución Ifdel cIdModelpunto == "SD1_DETAIL"de entrada
3 nLinhaC := oObj:GetLine()
ID de formulário*/
If Empty(oObj:GetValue("D1_CC", nLinha))GetOperation() == 3 //Inclusión
MsgAlert("Transacción de la inclusión del Help( ,, "HELP",, "El campo D1_CC debe ser informado.", 1, 0documento " + oObj:GetModel("SF1_MASTER"):GetValue("F1_DOC") + " finalizada." )
ElseIf oObj:GetOperation() == 5 //Borrado
xRet := .F. //Retorno de la validación.
MsgAlert("Transacción del borrado del documento " + oObj:GetModel("SF1_MASTER"):GetValue("F1_DOC") + " finalizada." EndIf)
EndIf
EndIf
EndIf
Return xRet
|