Как определить позицию поля в секции .Fields

Программирование на Атлантисе (VIP, FCOM, ARD), FastReport

Модераторы: m0p3e, edward_K, Модераторы

Ответить
Semi-bit
Постоянный обитатель
Сообщения: 123
Зарегистрирован: 01 фев 2007, 12:45
Откуда: Магнитогорск
Контактная информация:

Как определить позицию поля в секции .Fields

Сообщение Semi-bit »

Собственно, задача такова: имеется RTF-форма

Код: Выделить всё

.linkform 'bbb' prototype is 'aaa'
// пропуск...
.Fields
field1
expr1
sGetTune('USER.OWNNAME')
...
.EndFields
...
Мне необходимо определить позицию поля sGetTune('USER.OWNNAME'). Задача осложняется тем, что перед ним могут стоять произвольные поля, в том числе и выражения.
Испытываю траблы с даблами
ВИП — Велосипедо-Изобретательская Парадигма
САППОРТ — Сборище Абсолютно Пустых Посредственно Образованных Ржущих Троллей
n0where
Местный житель
Сообщения: 499
Зарегистрирован: 30 дек 2010, 08:16

Re: Как определить позицию поля в секции .Fields

Сообщение n0where »

var?
хороший программист — это человек, который переходя улицу с односторонним движением смотрит в обе стороны
edward_K
Заслуженный деятель интернет-сообщества
Сообщения: 5188
Зарегистрирован: 29 мар 2005, 17:49
Откуда: SPB galaxy spb

Re: Как определить позицию поля в секции .Fields

Сообщение edward_K »

позицию где? тем более в RTF - вставте таблицу и будет всегда на одном уровне.
Semi-bit
Постоянный обитатель
Сообщения: 123
Зарегистрирован: 01 фев 2007, 12:45
Откуда: Магнитогорск
Контактная информация:

Re: Как определить позицию поля в секции .Fields

Сообщение Semi-bit »

Блин, неточно сформулировал. Хочу определить, которым оно по порядку идёт в форме, то есть, какому шаблону поля в форме соответствует определение поля в секции .Fields.
Испытываю траблы с даблами
ВИП — Велосипедо-Изобретательская Парадигма
САППОРТ — Сборище Абсолютно Пустых Посредственно Образованных Ржущих Троллей
spark
Местный житель
Сообщения: 478
Зарегистрирован: 19 окт 2005, 13:38
Контактная информация:

Re: Как определить позицию поля в секции .Fields

Сообщение spark »

Semi-bit писал(а):Блин, неточно сформулировал. Хочу определить, которым оно по порядку идёт в форме, то есть, какому шаблону поля в форме соответствует определение поля в секции .Fields.
В каком порядке описаны в .Fields в том порядке и выводятся...
Semi-bit
Постоянный обитатель
Сообщения: 123
Зарегистрирован: 01 фев 2007, 12:45
Откуда: Магнитогорск
Контактная информация:

Re: Как определить позицию поля в секции .Fields

Сообщение Semi-bit »

Ну так на глаз-то мне это видно, а программу, которая бы смогла определить, что здесь конкретно поле, а там - функция, я написать покамест не смог :)
Испытываю траблы с даблами
ВИП — Велосипедо-Изобретательская Парадигма
САППОРТ — Сборище Абсолютно Пустых Посредственно Образованных Ржущих Троллей
KATZ
Местный житель
Сообщения: 473
Зарегистрирован: 29 мар 2005, 17:49

Re: Как определить позицию поля в секции .Fields

Сообщение KATZ »

Semi-bit
Посмотрите здесь, вроде бы перекликается с вашим вопросом, если я его правильно понял.
Semi-bit
Постоянный обитатель
Сообщения: 123
Зарегистрирован: 01 фев 2007, 12:45
Откуда: Магнитогорск
Контактная информация:

Re: Как определить позицию поля в секции .Fields

Сообщение Semi-bit »

KATZ, перекликается, но не отвечает :) Я хочу сам такую функцию реализовать в своей проге. Пока что думаю подсчитывать количество промежутков между идентификаторами, но как быть со скобками, в которых могут быть как сами поля, так и параметры функций, пока неясно.
Как отличить foo(x) и y (x), где y - переменная (или поле из прототипа), а foo - функция?
Испытываю траблы с даблами
ВИП — Велосипедо-Изобретательская Парадигма
САППОРТ — Сборище Абсолютно Пустых Посредственно Образованных Ржущих Троллей
n0where
Местный житель
Сообщения: 499
Зарегистрирован: 30 дек 2010, 08:16

Re: Как определить позицию поля в секции .Fields

Сообщение n0where »

Для чего надо то?
хороший программист — это человек, который переходя улицу с односторонним движением смотрит в обе стороны
Semi-bit
Постоянный обитатель
Сообщения: 123
Зарегистрирован: 01 фев 2007, 12:45
Откуда: Магнитогорск
Контактная информация:

Re: Как определить позицию поля в секции .Fields

Сообщение Semi-bit »

n0where, а вам никогда не хотелось, чтобы при вставке шаблона в текстовую форму Ворд предлагал поля, которые можно сопоставить этому шаблону? Понятное дело, все отчёты переводятся на FastReport, но старых форм остаётся до сих пор куча, и иногда в них надо-таки добавлять поля, что очень неудобно делать вручную.

Кроме того, мне поставлена задача программно установить закладку на шаблон поля, соответствующий конкретному определению поля в секции .Fields.
Испытываю траблы с даблами
ВИП — Велосипедо-Изобретательская Парадигма
САППОРТ — Сборище Абсолютно Пустых Посредственно Образованных Ржущих Троллей
edward_K
Заслуженный деятель интернет-сообщества
Сообщения: 5188
Зарегистрирован: 29 мар 2005, 17:49
Откуда: SPB galaxy spb

Re: Как определить позицию поля в секции .Fields

Сообщение edward_K »

Гораздо проще будет разбить fields на группы соотв. каждой секции отчета. Понятно что это разово. Макрос конечно универсально, но вопрос турдоемкости - если вы на его создание угрохаете неделю, то за это время можно навести красоту во всех ваших формах и еще соседу помочь. Можно и вообще форму на кусочки разобрать - rtf не такой замороченный формат. В Директуме вообще туда пишут влоб и не парятся например :). Еще вам может помочь, что при компиляции создается temp.frm в Temp - мож там вам будет проще.
LaaLaa

Re: Как определить позицию поля в секции .Fields

Сообщение LaaLaa »

http://www.tyumbit.ru/gal_forum/viewtop ... 850#p47850
Уточнаю алгоритм действия для страждущих.
Фишка работает только в Галактике (не в FCOM) для linkform

Запустили Галактику с параметром fcenv=on
Открыли окно с выбором интересующего отчета
В закладке "Настройка отчетов" по F4 вызываем исходный текст отчета.
Компилируем "вникуда" форму по Ctrl - F9
После чего ставим курсор на интересующее поле и нажимаем shift-F5
Открывается информационное окно с номером, типом и именем поля.
Semi-bit
Постоянный обитатель
Сообщения: 123
Зарегистрирован: 01 фев 2007, 12:45
Откуда: Магнитогорск
Контактная информация:

Re: Как определить позицию поля в секции .Fields

Сообщение Semi-bit »

LaaLaa писал(а):http://www.tyumbit.ru/gal_forum/viewtop ... 850#p47850
Уточнаю алгоритм действия для страждущих.
Фишка работает только в Галактике (не в FCOM) для linkform

Запустили Галактику с параметром fcenv=on
Открыли окно с выбором интересующего отчета
В закладке "Настройка отчетов" по F4 вызываем исходный текст отчета.
Компилируем "вникуда" форму по Ctrl - F9
После чего ставим курсор на интересующее поле и нажимаем shift-F5
Открывается информационное окно с номером, типом и именем поля.
Не поможет. Мне нужно знать алгоритм.
Что ж, временно попробую построчно разбивать - такое разбиение, похоже, стандартно для присоединённых форм. По мере возникновения ошибок улучшать буду...
Испытываю траблы с даблами
ВИП — Велосипедо-Изобретательская Парадигма
САППОРТ — Сборище Абсолютно Пустых Посредственно Образованных Ржущих Троллей
Ответить