относительная адресация DataSet-ов для Dictionary

отредактировано 01:36 Раздел: FastReport 2.xx VCL
Искал, копал, FAQ-и читал, форум читал. Не нашел. А вообще такое возможно?
Суть:
DataSouce для TfrDBDataSet задается динамически при подготовке отчета. Отчет грузится с BLOB-а.
Беда в том, что использовать в Dictionary отчета относительную адресацию к полю через TfrDBDataSet не получается ( типа frDBDataSet1.FieldsValue)
Приходится использовать абсолютную адресацию для переменной Dictionary с указанием названия формы, кверя и значения поля, типа frmMain.qTest."order_no".
А если у меня один отчет для двух и более форм используется? Пускай на каждой форме существует кверь с одинаковым возвращаемым набором полей. Мне сейчас приходится делать клоны отчетов ради того, что бы в каждом клоне изменить абсолютную привязку к форме, на которой находится кверь.
Вопрос: а нафига плодить клоны, если возможна относительная адресация к полям через frDBDataSet."order_no" или что-то подобное.
Хотя полистав исходник TfrDBDataSet ничего не нашел ;)

Это реально? Или я пошел обламываться с клонами дальше:(

Комментарии

  • FOXFOX
    отредактировано 01:36
    Реально.
    Но лучше в таких случаях использовать end-user отчеты.
  • отредактировано 01:36
    В одном проекте нужно было сдлеать так как ты и говоришь.
    Дописывались FR_Class и FR_Utils.
    Был добавлен TStringList в который записывались имена датасетов и указатели на них. Ну и в нескольких местах добавлено юзанье этого списка.
    ИМХО - в принципе не плохобы это добавить в стандартный FR ...

Оставить комментарий

Многофункциональный текстовый редактор. Чтобы отредактировать стиль параграфа, нажмите TAB, чтобы перейти к меню абзаца. Там вы можете выбрать стиль. По умолчанию не выбран ни один стиль. Когда вы выберете текст, появится встроенное меню форматирования. Нажмите TAB, чтобы войти в него. Некоторые элементы, такие как многофункциональные вставки ссылок, картинок, индикаторов загрузки и сообщений об ошибок могут быть вставлены в редактор. Вы можете перемещаться по ним, используя стрелки внутри редактора и удалять с помощью клавиш delete или backspace.