Форум » LetoDB, HbNetio. » Странности с letoudf » Ответить

Странности с letoudf

PSP: А может я туплю. Вот имеем два варианта: 1. [pre2] #define WA &( cAlias ) FUNCTION udfDocLoad( nUserStru, cAlias, d1, cOrd, cSeek ) LOCAL aDat := {} LOCAL cOrdSave LOCAL bSeek cAlias := leto_Alias( nUserStru, cAlias ) bSeek := &( "{ || " + cSeek + "}" ) cOrdSave := WA->( OrdSetFocus( cOrd ) ) WA->( dbGoTop() ) WA->( Eval( bSeek ) ) // не срабатывает ... ... ... RETURN aDat [/pre2] 2. [pre2] #define WA &( cAlias ) FUNCTION udfDocLoad( nUserStru, cAlias, d1, cOrd, cSeek ) LOCAL aDat := {} LOCAL cOrdSave LOCAL bSeek cAlias := leto_Alias( nUserStru, cAlias ) //bSeek := &( "{ || " + cSeek + "}" ) cOrdSave := WA->( OrdSetFocus( cOrd ) ) WA->( dbGoTop() ) WA->( dbSeek( DtoS( d1 ), .T. ) ) // срабатывает ... ... ... RETURN aDat [/pre2] Параметры: d1 - дата, cOrd - строка cSeek - строка вида "dbSeek( DtoS( d1 ), .T. )" Так вот: - в первом варианте udf-функция прерывается по ошибке на строке "WA->( Eval( bSeek ) )", а логе появляется запись "Error BASE/1003 Variable does not exist: D1" - во втором варианте всё работает без вопросов. Как это понимать? ps. Проверил на всякий случай leto_UDFExist( "Eval" ). Вернула .T.

Ответов - 21, стр: 1 2 All

PSP: Всем спасибо!!! ))



полная версия страницы