Помогите неопытной программистке разобраться =)
У меня возникла такая проблема. Есть frxDBDataSet, который привязывается к конкретному ADOQuery, но тот в свою очередь не активен (потому что в нем запрос с ипользованием параметров). То есть ADOQuery становится активным и содержит какие-то записи уже в ходе выполнения программы. Поэтому в frxDataSet нельзя как обычно принято в режиме дизайна кликнуть два раза и чтобы там появился список полей. Возможно ли в ходе выполнения программы изменять содержимое этого frxDataSet и уже эти параметры толкать в отчет? Помогите пожалуйста... Как это сделать?
Делаю в дельфях
Делаю в дельфях
Дискуссия закрыта.
Комментарии
У меня тоже НД(набор данных) тоже собирается с использованием отбора по значению в определенных полях по значению переменных. Без передачи значений в запрос данные тебе просто не выдадуться и в отчете не будет ничего в тех местах, где используесч содержимое НД.
А двойной щелчок нормально отрабатывает...
тока что проверил....
<span style='font-size:12pt;line-height:100%'>1. Когда знаешь, какой набор данных получится в итоге</span> (т.е. знаешь, какие поля будуть на выходе запроса ADOQuery1).
Считаем, что у нас есть следущие компоненты:
<span style='font-family:Courier'><span style='color:blue'>TADOConnection: ADOConnection1;
TADOQuery: ADOQuery1;
TfrxDBDataset: frxDBDataset1;
TfrxReport: frxReport1;
TButton: Button1;</span></span>
Далее настраиваем отчет:
Создаем стандартный отчет с <span style='font-family:Courier'><span style='color:blue'>ReportTitle1, MasterData1, PageFooter1</span></span>. Задаем данные: меню <span style='font-family:Courier'><span style='color:blue'>Report -> Data</span></span> выбираем галочкой <span style='font-family:Courier'><span style='color:blue'>frxDBDataset1</span></span> (появится пустой набор данных <span style='font-family:Courier'><span style='color:blue'>frxDBDataset1</span></span>).
Далее наполняем отчет по своему усмотрению.
MasterData1 привязываем к набору данных (далее НД) <span style='font-family:Courier'><span style='color:blue'>frxDBDataset1</span></span>, и неважно, что он пустой.
В тех местах, где необходимы данные с НД, пишем руками <span style='font-family:Courier'><span style='color:blue'>[frxDBDataset1."Название поля"]</span></span>.
Для примра в <span style='font-family:Courier'><span style='color:blue'>MasterData1</span></span> кидаем два <span style='font-family:Courier'><span style='color:blue'>Memo</span></span>, заполняем их следущим образом:
<span style='font-family:Courier'><span style='color:blue'>Текст Memo1 = [frxDBDataset1."ID"],
Текст Memo1 = [frxDBDataset1."Name"]</span></span>.
Допустим, что отчет у нас вызывается кнопкой <span style='font-family:Courier'><span style='color:blue'>Button1</span></span>, ее обработчик будет выглядеть следущим образом: В данном примере данные беруться из набора, который заполняется по ходу выполнения программы, но мы заранее знаем, что конкретный отчет под конкретный запрос.
<span style='font-size:12pt;line-height:100%'>2. Когда известно о данных из запроса становится только в ходе выполнения программы.</span>
Аналогично, компоненты:
<span style='font-family:Courier'><span style='color:blue'>TADOConnection: ADOConnection1;
TADOQuery: ADOQuery1;
TfrxDBDataset: frxDBDataset1;
TfrxReport: frxReport1;
TButton: Button1;</span></span>
Далее создаем отчет:
Создаем стандартный отчет с <span style='font-family:Courier'><span style='color:blue'>ReportTitle1, MasterData1, PageFooter1</span></span>.Далее наполняем шапку и константные выражения. В тех местах, где необходимы данные с НД, выкладываем пустые <span style='font-family:Courier'><span style='color:blue'>Memo</span></span>.
Для примра в <span style='font-family:Courier'><span style='color:blue'>MasterData1</span></span> кидаем два <span style='font-family:Courier'><span style='color:blue'>Memo</span></span> (<span style='font-family:Courier'><span style='color:blue'>Memo2</span></span> и <span style='font-family:Courier'><span style='color:blue'>Memo3</span></span>) и никак их не заполняем:
Допустим, что отчет у нас вызывается кнопкой <span style='font-family:Courier'><span style='color:blue'>Button1</span></span>, ее обработчик будет выглядеть следущим образом:
P.S. Надеюсь не составит труда перевести с Builder'а на Delphi.
Можно задать некоторые значения этим параметрам и активизировать ADOQuery в дизайн-тайме, а потом дизайнить отчет.