Обращение из проги к объектам отчета
Есть отчет, созданный и сохраненный в файле. В отчете имеются объекты типа Memo, Picture и т.д. и есть прога на Дельфи, которая должна в эти объекты отчета вставлять их содержимое, которое предварительно программно генерируется.
Мой вопрос в том, как из этой проги обратится к этим объектам внутри этого отчета?
На форму я вынес компонент TfrReport, сделал frReport1.LoadFromFile(......), а что дальше??
Мой вопрос в том, как из этой проги обратится к этим объектам внутри этого отчета?
На форму я вынес компонент TfrReport, сделал frReport1.LoadFromFile(......), а что дальше??
Комментарии
Picture придётся передавать через файл. Имя файла можно передать в отчёт используя способы п. 5.1
Я имел ввиду, что я создал в отчете прямоугольник текста, его имя Memo1. Его содержимое - текст. Теперь после того, как я загрузил сохраненный файл с отчетом в TfrReport через frReport1.LoadFromFile я хочу программно прочитать/поменять текст в том самом объекте Memo1, который я ранее создал в отчете, спозиционировал, настроил шрифты и все такое...
Исходя из ссылки с примерами я написал: frReport1.Dictionary.Variables, но оно возвращает NULL.
В связи с этим - вопрос: а можно конкретный пример решения моей задачи посмотреть?
frReport1.Dictionary.Variables, а в самом Memo1 написать текст [MemoText]
Непосредственно обращаться к элементам отчёта можно в FR 3.хх через FindObject
Но, строка типа: frreport1.Dictionary.Value:='"'+'sddfsfs'+'"'; говорит при компиляции, что оно ReadOnly и поэтому доступа к нему в таком варианте нет.
Может переменные надо как-то в самом дизайнере прописать или еще что там???
frreport1.Dictionary.Variables:='"'+'sddfsfs'+'"';
переменная memovar должна быть описана в словаре данных отчёта
При использовании frVariables в словарь данных переменную добавлять не нужно
frVariables:='sddfsfs';
frReport1.FindObject('Memo1').Memo.Text:='dfgdshd';
Тогда и рисунок можно загружать
TfrPictureView(frReport1.FindObject('Picture1')).Picture.LoadFromFile('D:\1.bmp');
Нижеследующее обращение к МЕМО работает хорошо.
ReportFrm.frReport1.FindObject('Memo6').Memo.Text:='123авп';
А вот обращение к Бэнду и его свойству Condition не работает
ReportFrm.frReport1.FindObject.('GroupHeader1').Condition:='[DM.ReportQur."Predpr"]';
Не подскажите, как добавить условие в GroupHeader1 в свойство Condition из кода программы?
Заранее благодарен!
К свойству Condition обратился через переменную, которую ранее создал в словаре данных. Переменная - V1. Ее вставил в "условие" (оно и есть Condition)
ReportFrm.frReport1.Dictionary.Variables:='[DM.ReportQur."Predpr"]';
причем это работает как с МЕМО, ну вобщем везде, где можно вставить переменную:
ReportFrm.frReport1.FindObject('Memo6').Memo.Text:='зпт123';
или
ReportFrm.frReport1.Dictionary.Variables:='зпт123';
Заранее вставив переменную V2 в МЕМО.
TfrBandView(frReport1.FindObject('GroupHeader1')).GroupCondition:='Copy(Company, 1, 2)';