Здравствуйте!
aStroki,aColonki,aAll - это массивы, комбинации значений которых записываются в файл File_vr
Бэст ругается на строку
Eval({||File_vr->(ADDREC()),File_vr->Vid:=aCol[1],File_vr->Vid_Name:=aCol[2],File_vr->(F_DBUNLOCK())})
- "Неверный аргумент"
Если эту строку записать так :
Eval({||sayandwait('1'),File_vr->(ADDREC()),File_vr->Vid:=aCol[1],File_vr->Vid_Name:=aCol[2],File_vr->(F_DBUNLOCK())})
то РУГАНИ НЕТ,т.е надо перед File_vr->(ADDREC()) применить какую либо функцию.
Конечно ,можно вместо этой строки записать так:
fFile_vr(aCol[1],aCol[2]);
где fFile_vr
FUNCTION fFile_vr(a,b)
File_vr->(ADDREC())
File_vr->Vid:=a
File_vr->Vid_Name:=b
File_vr->(F_DBUNLOCK())
sayandwait('2')
RETURN Nil
Тогда все работает как надо.
Но как тогда правильно ( если это возможно ) написать выражение с использованием Eval({|| ?
Код |
---|
AEVAL(aStroki,{|Str| aStr:=Str,; AEVAL(aColonki,{|Col| aCol:=Col,iif(ascan(aAll,{|x| upper(x[1])=upper(aStr[1]).and.upper(x[2])=upper(aStr[2]).and.upper(x[3])=upper(aCol[1]).and.upper(x[4])=upper(aCol[3]).and.upper(x[5])=upper(aCol[5])})=0; .and.!File_vr->(dbseek(upper(aStr[1]+aStr[2]+aCol[1]+aCol[3]+aCol[5]))); , ,; Eval({||File_vr->(ADDREC()),File_vr->Vid:=aCol[1],File_vr->Vid_Name:=aCol[2],File_vr->(F_DBUNLOCK())}); ); }); }) |
Бэст ругается на строку
Eval({||File_vr->(ADDREC()),File_vr->Vid:=aCol[1],File_vr->Vid_Name:=aCol[2],File_vr->(F_DBUNLOCK())})
- "Неверный аргумент"
Если эту строку записать так :
Eval({||sayandwait('1'),File_vr->(ADDREC()),File_vr->Vid:=aCol[1],File_vr->Vid_Name:=aCol[2],File_vr->(F_DBUNLOCK())})
то РУГАНИ НЕТ,т.е надо перед File_vr->(ADDREC()) применить какую либо функцию.
Конечно ,можно вместо этой строки записать так:
fFile_vr(aCol[1],aCol[2]);
где fFile_vr
FUNCTION fFile_vr(a,b)
File_vr->(ADDREC())
File_vr->Vid:=a
File_vr->Vid_Name:=b
File_vr->(F_DBUNLOCK())
sayandwait('2')
RETURN Nil
Тогда все работает как надо.
Но как тогда правильно ( если это возможно ) написать выражение с использованием Eval({|| ?