
Nightmareterrible
Nightmareterrible
Подробная информация
- Имя пользователя
- Nightmareterrible
- Присоединился
- Посещений
- 0
- Был на сайте
- Группы
- Members
Комментарии
-
Попробуйте привести БД к третьей или хотя бы ко второй Нормализованной Форме
-
Это просто. 1) У компонента PageFooter1 ставишь свойство "PrintOnFirstPage" = true (ты его убирал). 2) Добавляешь для PageFooter1 следующий код: procedure PageFooter1OnBeforePrint(Sender: TfrxComponent); begin if =1 then Memo2.Text := 'то…Раздел: Заголовок и подвал листа№1 отличаются от всех последующих листов Комментарий от Nightmareterrible April 2014
-
Кидаешь на форму frxDBDataSet, к нему подключаешь свой DataSet, в котором у тебя данные. В отчёте - 1 MasterData, в нём 4 MemoView. В каждом MemoView - значение из БД: [ТАБЛИЦА."ПОЛЕ"]. Выше MasterData разместить 1 PageHeader, в нём 4 MemoView. …
-
Да. Можно сделать проще. В документации всё подробно описано, просто нужно приложить немного усилий. Также не поленитесь посмотреть все Demo-примеры, идущие с компонентом (или скачайте frxDemo с сайта).
-
Вариант №2: В том же AfterPrint или AfterCalcHeight вызываете MY_FUNCTION1(Engine.FreeSpace). При этому у вас должен быть код при создании TfrxReport (можно в Form.onCreate) frxReport1.AddFunction('function MY_FUNCTION1(space:integer): boolean'); …
-
В чём программа? Исходники ваши? Если да, то подключается frxDBDataSet - к нему необходимый ADO, DBE или что там у вас. Далее - извлечение данных. Здесь уже зависит от конкретной реализации: можно через where cid in (список_значений), либо через фи…
-
Если отчёт не планируется развивать по иерархии вложенности, то для такой тривиальной задачи рекомендую MasterData + 4 MemoView. Для заголовка используйте PageHeader + 4 MemoView.
-
оно? procedure GroupHeader2OnAfterCalcHeight(Sender: TfrxComponent); begin MasterData2.RowCount :=Round(abs((Engine.FreeSpace - 20) div Memo21.Height)); end;
-
Мне кажется, что объект Engine может стать недоступным после обработки отчёта. Попробуйте использовать onManualBuild или в последнем датабенде в методе, например, AfterPrint или AfterData вызывать UserFunction с параметром FreeSpace (ну или перенест…
-
Какой смысл изобретать велосипед? FastReport отлично отображает сохранённые отчёты - либо в fp3, либо в fr3, в зависимости от результата. Если нужно в HTML - то есть грамотный экспорт в HTML. Лишнюю проблему себе создаёте. Перебор, в принципе, де…
-
Для начала поройтесь в исходниках FastReport, если куплены. На первом этапе я нашёл такую штуку: frxCommonErrorHandler(), но в каком исходнике она находится, я не знаю, т.к. у меня есть только скачанный с интернета frxClass.pas от какой-то из лом…
-
Пришлите шаблон отчёта (fr3) и в Ворде - то, что должно получиться.
-
Квадратные скобки [] попробуйте поставить в начале и конце выражения
-
Если поместить на форму TfrxReport, то ведь не возникает ошибки при закрытии приложения? Значит, не баг. Скорее всего, проблема в том, где и как освобождается, какие функции используются. Пришлите образец исходника, вызывающего ошибку.
-
написал: нужно create memo делать на новой строке в бэнде Можете описать другими словами? Не очень понятно, что имеется в виду. Возможно, вам подойдёт свойство Memo.Top - попробуйте поиграться с ним. А также в вашем MasterData поставьте ну…
-
Во-первых, Height := 1.3 * fr1cm - свойство Height = Extended, хранится не в виде пикселей или сантиметров, поэтому всегда используйте fr1cm или fr01cm. Во-вторых, попробуйте вместо Page1 написать frxReport1.FindObject('Page1') - именно Object, не …
-
procedure frxReport1ClickObject(Sender: TfrxView; Button: TMouseButton; Shift: TShiftState; var Modified: Boolean); begin if (Sender.Name = 'Memo4') then begin FormDialog.ShowModal; // обработка результатов, в том числе можно Sender.T…
-
Используйте переменные в коде. Там можно и List и StringList. Если получать значения надо из основной программы, то закинуть их в отчёт можно при помощи onUserFunction - примеры есть в документации.
-
Я мало работал с VC++, пишу в Delphi. В компонентах FIBPlus это делается так: DataSet1 = запрос, содержащий ИДЕНТИФИКАТОР DataSet2 = запрос where ПОЛЕ = :MAS_ИДЕНТИФИКАТОР причём в DataSet2 ставишь DataSource = DataSource1 (а у него DataSet = Da…
-
Таблица 2 привязана к таблице 1? Что указано в Датасетах Contracts и Tarif ?
-
PageHeader.OnBeforePrint: PageHeader1.Visible = mod 2 = 0; //или <> 0, от обстоятельствРаздел: Можно ли группировкой установить флаг первой страницы Комментарий от Nightmareterrible December 2013
-
написал: А вот Engine.FreeSpace - это сколько сводобного места осталось на странице текущей? Совершенно верно. Если проблема разобраться - пришлите шаблон вашего отчёта, гляну структуру.
-
Создайте MasterData3. DataSet = null RowCount = 1. Stretched = true. Туда же добавьте Memo_MasterData3 Для этого датасета создайте GroupHeader3 и GroupFooter3 (Height=0) В обработчике GroupHeader2OnAfterCalcHeight напишите строчку Maste…
-
Попробуйте Report.Preview.Repaint;
-
Двойной проход пробовали?
-
Если я правильно понял суть вопроса, то можно так: DS1.onBeforePrint: Set('myTotalPages', 0); DS1_footer.onBeforePrint: //Устанавливаем новое значение TotalPages Аналогично с детейлами. Более точно не подскажу, т.к. не экспериментировал. …
-
frxReport.PrintOptions.ShowDialog := false; Попробуйте установить в коде перед вызовом Print, возможно, это свойство где-то сбрасывается
-
Держите проект. Создан в Delphi 2010
-
png := TPNGObject.create; try png.assign(Image1.Picture.Bitmap); png.savetofile('myImage.png'); finally png.free end; и uses не забыть добавить uses pngimage, Graphics;
-
Картинка постоянная или изменяется? Если постоянная - сохранить как PNG, он поддерживает прозрачность