Здравствуйте!
Немного переделанный блок кода из предыдущей темы :
FUNCTION Main()
Private aMas:={}
Private aParam
dbpush()
aParam:={{"01/01/2014","аааааааа",50,400},{"02/01/2014","бббббббббббб",80,400},{"03/01/2014","ввввввв",300,400}}
//altd()
_DialogSay(aParam)
dbpop()
return
FUNCTION _DialogSay(x)
Local _top,_bot,_left,_right,_heads,_pic:={},_ref:={},_app,_spec,_getbl:={}
Local j:=0,aHeads:={},_value:=0
Private _head:='',cVar
For nPos:=1 to len(x)
cVar:='head_'+alltrim(str(nPos))
private &cVar
&cVar:=0
next
altd()
_top:=3
_bot:=len(x)+2
_left:=3
_right:=76
j:=1
//altd()
Do While j<=len(x)
_head:="head_"+alltrim(str(j))
aadd(aHeads,{{_top+j-1,_left+63},&('_head')})
&_head:=x[j,3]
j:=j+1
enddo
aeval(x,{|| aadd(_pic,'999999')})
_ref:={}
_app:=1
_spec:='RESTOFF'
aeval(x,{|| aadd(_getbl,NIL)})
DISPBOX(_top-1,_left-1,_bot+1,_right+1,'╔═╗║══╚║ ',"N/BG")
SAYSCREEN(" ЗАПОЛНЕНИЕ ОБЪЕМОМ ПРОИЗВЕДЕННОЙ ПРОДУКЦИИ ",_top-1,_left+2)
j:=0
aeval(x,{|x| SAYSCREEN(x[1]+' '+x[2],_top+j,_left+2),j++})
QINPUT(_top,_left,_bot,_right,aheads,_app,_ref,_pic,,,,,,,_spec,_getbl,,,,,,,,,"Сформировать отчет ?")
IF LASTKEY()!=27
j:=1
Do While j<=len(x)
_value:=&_head
aadd(aMas,_value)
j++
enddo
else
aMas:={}
endif
return aMas
Какой параметр в функции QINPUT отвечает за проверку вводимых значений? И как это сделать?
Надо чтобы общая сумма всех значений (&_head:=x[j,3]) , которое введет пользователь должна быть равна некоторому контрольному значению .В данном случае это четверый элемент массива aParam x[j,4].
При этом нужно не давать пользователю выйти из диалогового окна до тех пор ,пока не введет значения ,
которые в сумме будут равны общей контрольной сумме .Желательно чтобы в "подвале" диалогового окна отражалась запись с содержанием " неверная контрольная сумма".
В Help по этому у ни чего не нашел.
Заранее спасибо
Немного переделанный блок кода из предыдущей темы :
FUNCTION Main()
Private aMas:={}
Private aParam
dbpush()
aParam:={{"01/01/2014","аааааааа",50,400},{"02/01/2014","бббббббббббб",80,400},{"03/01/2014","ввввввв",300,400}}
//altd()
_DialogSay(aParam)
dbpop()
return
FUNCTION _DialogSay(x)
Local _top,_bot,_left,_right,_heads,_pic:={},_ref:={},_app,_spec,_getbl:={}
Local j:=0,aHeads:={},_value:=0
Private _head:='',cVar
For nPos:=1 to len(x)
cVar:='head_'+alltrim(str(nPos))
private &cVar
&cVar:=0
next
altd()
_top:=3
_bot:=len(x)+2
_left:=3
_right:=76
j:=1
//altd()
Do While j<=len(x)
_head:="head_"+alltrim(str(j))
aadd(aHeads,{{_top+j-1,_left+63},&('_head')})
&_head:=x[j,3]
j:=j+1
enddo
aeval(x,{|| aadd(_pic,'999999')})
_ref:={}
_app:=1
_spec:='RESTOFF'
aeval(x,{|| aadd(_getbl,NIL)})
DISPBOX(_top-1,_left-1,_bot+1,_right+1,'╔═╗║══╚║ ',"N/BG")
SAYSCREEN(" ЗАПОЛНЕНИЕ ОБЪЕМОМ ПРОИЗВЕДЕННОЙ ПРОДУКЦИИ ",_top-1,_left+2)
j:=0
aeval(x,{|x| SAYSCREEN(x[1]+' '+x[2],_top+j,_left+2),j++})
QINPUT(_top,_left,_bot,_right,aheads,_app,_ref,_pic,,,,,,,_spec,_getbl,,,,,,,,,"Сформировать отчет ?")
IF LASTKEY()!=27
j:=1
Do While j<=len(x)
_value:=&_head
aadd(aMas,_value)
j++
enddo
else
aMas:={}
endif
return aMas
Какой параметр в функции QINPUT отвечает за проверку вводимых значений? И как это сделать?
Надо чтобы общая сумма всех значений (&_head:=x[j,3]) , которое введет пользователь должна быть равна некоторому контрольному значению .В данном случае это четверый элемент массива aParam x[j,4].
При этом нужно не давать пользователю выйти из диалогового окна до тех пор ,пока не введет значения ,
которые в сумме будут равны общей контрольной сумме .Желательно чтобы в "подвале" диалогового окна отражалась запись с содержанием " неверная контрольная сумма".
В Help по этому у ни чего не нашел.
Заранее спасибо