nordk wrote: |
Давайте сначала попробуем понять : что нужно.
Пока не понятно - объясните подробнее. И на всякий случай о каком БЭСте речь |
nordk wrote: |
Описание функции выложил |
Code: |
#define Y_Type(_x, _t) ValType(_x) == _t Function _SC(nCo) .... Return (aLines[nCo, 1]) Function Main() Local aSC .... aSC := F_TDocsC -> (_SC(1) ... |
Code: |
#translate FiGet(<_f>) => _FIELD-><_f> |
Code: |
#translate FiGet(<_f>) => _FIELD-><_f> #define Y_Type(_x, _t) ValType(_x) == _t Function Main() Local aStru, aSetKey Local aSC aSetKey:=SaveSetKey() DBPUSH() altd() aSC := TDocsC -> (MY_SC(1)) DbPop() RestSetKey(aSetkey) Return Function MY_SC(nCo) MemVar aLines If Y_Type(MemVarBlock("NFLAG"), "B") Return(If(nCo > 0 .And. nCo < Val(FiGet(NCOL)),; 1,; (; SayError({"Выражение в формуле: MY_SC(" + LTrim(Str(nCo)) +; ") - должно ссылаться на номер",; "колонки, которая расcчитыва" +; "ется раньше текущей колонки!"}, 15),; NIL; ))) EndIf Return (aLines[nCo, 1]) |
nordk wrote: |
Честно говоря мне вообще непонятна возня вокруг этой функции.
Ведь по сути она ничего не делает - а только возвращает значение из массива aLines. Вы посмотрите в отладчике - доступен ли Вам этот массив, если недоступен, то про функцию можно забыть и надо все делать самостоятельно, начиная с подробного изложения, а что все таки надо... |
nordk wrote: |
Думаю это не так просто.
Содержимое лежэит в массиве aLines Он Вам недоступен. Значит Вам надо создавать самому этот массив, самому его заполнять. |
nordk wrote: |
Если это Вам нужно во время рассчета. Если после рассчета по посчитанным суммам - то тогда из поля БД. |
nordk wrote: |
Еще раз повторяю - Вы не пишете цель конечную и помогать Вам трудно. Явно что изначально постановка задачи некорректна и надо озвучить всю задачу от начала до конца а не отдельный ее метод, который по всей видимости так как Вам нужно будет решаться очень непросто. Надо пересматривать путь решения вопроса в принципе, а для этого надо понимать конечную цель и все имеющиеся исходные данные. |
nordk wrote: |
Зашел в табличные документы, написал свой плагин вставил в программу и могу ответственно заявить массив aLines в отладчике виден - берите из него значения и никакие функции Вам не нужны |
Code: |
FUNCTION MAIN()
RETURN aLines[2,1] |
nordk wrote: | ||
|
nordk wrote: |
Взял демобазу.
Первый же табличный документ. Отпуск по шестидневной рабочей неделе. В предпоследнюю колонку вставил формулу HFileEval('test.hrb',{}) Берет цифру из второй колонки и ее возвращает при расчете самого табличного документа. Когда нажимаю F10. Для того чтобы привязать HRB сначала написал RETURN 1 После привязки перекомпилировал на RETURN aLines[2,1] Пакет 36 но думаю в 39 тоже самое. |
nordk wrote: |
Нуу брат, а начали тему с функции SC_()
Это дорогой надо по заголовку документа накладывать скоп на таблицу строк и из поля соответствуюещго нужной колонки брать цифру через DBEVAL суммированием по всем строкам скопа Конечно тут никаких SC__ и aLines[] в принципе быть не может. Они существуют в момент расчета табличного документа |
Дениска wrote: |
получить данные из определенной колонки (по номеру) определенного табличного документа. |
Code: |
DBSELECTAREA('TDOCSC')
TDOCSC->( DBGOTOP() ) WHILE !tdocsc->( EOF() ) x:=AMLOAD('ASUMS') tdocsc->( DBSKIP() ) ENDDO |
output generated using printer-friendly topic mod. All times are GMT + 4 Hours