/**********************************************************
Funcion para validar los campos de un datawindow
debe tener texto de validacion para que los tome.
param: tipo dw, nombre parametro: adw_a_validar
**********************************************************/
integer li_cols, li_cont
string ls_nomcol, ls_lstcols, ls_txtcol, ls_coltype, ls_valstr, ls_required
boolean lb_msg = false, lb_vacio = false
long ll_valNum
decimal ldc_valDC
adw_a_validar.AcceptText()
li_cols = f_ColCount( adw_a_validar )
for li_cont = 1 to li_cols
ls_nomcol = trim( adw_a_validar.Describe("#"+string(li_cont)+".name") )
ls_txtcol = adw_a_validar.Describe(ls_nomcol+"_t.Text")
ls_txtcol = mid( ls_txtcol, 1, Pos(ls_txtcol, ':') -1 )
//ls_txtcol = adw_a_validar.Describe(ls_nomcol+"_t.Text")
//ls_required = adw_a_validar.Describe(ls_nomcol+".Edit.Required")
ls_required = adw_a_validar.Describe(ls_nomcol+".Tag")
ls_required = Left( ls_required, 1)
//if Len( adw_a_validar.Describe(ls_nomcol+".Validation") ) >1 then
if ls_required = "R" then
//adw_a_validar.SetColumn(li_cont)
ls_coltype = adw_a_validar.Describe("#"+string(li_cont)+".coltype")
if match( ls_coltype, '(') then // quitar parentesis ej. char(30)
ls_coltype = mid(ls_coltype,1, Pos(ls_coltype, '(')-1 )
end if
choose case ls_coltype
case "char"
ls_valstr = adw_a_validar.GetItemString( adw_a_validar.GetRow(), ls_nomcol )
if f_esta_vacio(ls_valstr) then
lb_vacio = True
end if
case "date"
ls_valstr = adw_a_validar.GetItemString( adw_a_validar.GetRow(), ls_nomcol )
if not isDate(ls_valstr) or isNull(ls_valstr) then
lb_vacio = True
end if
case "long", "int", "number"
ll_valnum = adw_a_validar.GetItemNumber( adw_a_validar.GetRow(), ls_nomcol )
if ll_valnum = 0 or isNull(ll_valnum) then
lb_vacio = True
end if
case "decimal"
ldc_valdc = adw_a_validar.GetItemDecimal( adw_a_validar.GetRow(), ls_nomcol )
if ldc_valdc = 0 or isNull(ldc_valdc) then
lb_vacio = True
end if
end choose
end if
if lb_vacio = True then
ls_lstcols = ls_lstcols + "~t" + ls_txtcol+ "~r~n"
lb_msg = true
end if
ls_required = ""
ls_valstr = ""
lb_vacio = false
next
if lb_msg = True then
beep(2)
f_mensaje("A", "Some fields are empty, fill them:"+ ln + ls_lstcols )
return false
else
Return True
end if
return true