Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2008.03.16;
Скачать: CL | DM;

Вниз

Отчет   Найти похожие ветки 

 
rvi ©   (2007-07-23 10:58) [0]

Подскажите пожалуйста, чем лучше воспользоваться для генерации отчета (одна таблица на несколько страниц).

1) RichEdit пробовал, но так и не нашол, как сформировать таблицу.
2) GenRtf от Дмитрия Мотвеева неправильно добавляет ячейки в таблицу (глюк имеено на второй ячейке в строке), в связи с чем RichEdit и WordPad неправильно отображают сгенерированный RTF. Пример тоже не работает.
3) KOLReport просто не устанавливается. При создании пакета dpk для Delphi 7. Это уже обсуждалось кем-то выше. Помимо ошибок приведенных там выдает Duplicate resource. Бился долго и безуспешно.

Заранее спасибо за ответы. Программирую на KOL недавно, так что не пинайте больно.


 
avs ©   (2007-07-27 02:28) [1]

Удобная вещь Reportf. Шаблон rtf-ка, Данные в текстовом файле, отчет
rtf-ка. Есть exe-шник и unit.
Взять можно здесь:<http://softsklad.ru/codings/oths/4986prog.html>


 
rvi ©   (2007-07-30 15:03) [2]

2avs Спасибо, попробую.

Хочу поделится опытом борьбы с KOLReport. Может кому пригодится.

После долгих и нудных попыток установить ЭТО чудо на Delphi7, удалось довести его до рабочего состояния.
1) В архиве выложенном на этом сайте вместе с исходниками самого компонента, лежат исходники примера (их необходимо отделить)
2) Нехватающие модули KOLPrinters, KOLPrintCommon и т.д. берем из архива другого компонента   kolprintdialogs.7z
3) Удаляем из создавемого dpk файл res, иначе дублируются ресурсы.
4) При компиляции выводит ошибку Неизвестный идентификатор ... (пишу установку по памяти поэтому немогу привести строку дословно, но это обсуждалось на форуме) в строке IF ... Richedit=-1 Then Exit; Коментируем эту строку и инсталируем пакет.
5) Сталкиваемся с глюком: при предварительном просмотре не перелистывает сираницы кнопками <<,<,>,>>. Точнее на самом деле перелистывает, но не перерисовывает. Лечим так, в файле KOLReport находим procedure TPreviewObj.TBClick(Sender: PObj) и добавляем в самый конец процедуры строчку: PB.Invalidate;
6) Если есть необходимость перевести все управление на русский, то в этомже файле (KOLReport) находим procedure NewPreviewForm( var PreviewObj: PPreviewObj; AParent: PControl );

Далее можно менять все и размеры ToolBar-а и названия кнопок и иконки. Приведу в качестве примера изменения сделанные мной:

procedure NewPreviewForm( var PreviewObj: PPreviewObj; AParent: PControl );
var Pn: PControl;
begin
 new( PreviewObj, Create );
 PreviewObj.Form := NewForm( AParent, "Preview" ).SetSize( 600, 600 )
    .SetPosition( (GetSystemMetrics( SM_CXSCREEN ) - 600) div 2,
               (GetSystemMetrics( SM_CYSCREEN ) - 600) div 2 );
 {Brandys}
 PreviewObj.Options := [psdMargins,psdSamplePage,psdPaperControl,psdPrinterControl,psdWarning,psdHundre dthsOfMillimeters,psdUseMargins,psdUseMinMargins];
 PreviewObj.PSD := NewPageSetupDialog(PreviewObj.Form,PreviewObj.Options);
 PreviewObj.PSD.SetMinMargins(500,500,500,500);
 PreviewObj.Form.Border := 0;
 Pn := NewPanel( PreviewObj.Form, esNone ).SetSize( 0, 25 ).SetAlign( caTop );
 PreviewObj.TB := NewToolbar( Pn, caNone, [ tboNoDivider ],
    THandle(-1), [ "<<", "<", ">", ">>", " Печать", "Установки", "Вид", "Закрыть" ],
    [ 6, 6, 6, 6, 14, 10, 12, 5 ] ).SetAlign( caLeft ).SetSize( 480, 0 );
 PreviewObj.TB.OnClick := PreviewObj.TBClick;
 PreviewObj.TB.OnTBDropDown := PreviewObj.TBDropDownViewMenu;
 NewMenu( PreviewObj.Form, 0, [ "" ], nil );
 PreviewObj.ViewMenu := NewMenu( PreviewObj.Form, 0,
                     [ "-!Подогнать по &Высоте", "-!Подогнать по &Ширине", "-!&1:1" ],
                     PreviewObj.TBViewMenuClick );
 PreviewObj.LB := NewLabel( Pn, "" ).SetAlign( caClient );
 PreviewObj.LB.TextAlign := taRight;
 PreviewObj.LB.VerticalAlign := vaCenter;
 PreviewObj.Form.OnShow := PreviewObj.AdjustButtons;
 PreviewObj.SB := NewScrollBoxEx( PreviewObj.Form, esLowered ).SetAlign( caClient );
 PreviewObj.PB := NewPaintBox( PreviewObj.SB );
 PreviewObj.PB.OnPaint := PreviewObj.PaintPage;

 //PreviewObj.TB.TBButtonVisible[ TBSetu ] := FALSE;
 PreviewObj.Form.OnResize := PreviewObj.ResizePreviewForm;
end;

Кстати, для создания отчетов необязательно лепить сотни форм как в примере. Можно все компоненты разместить на главной форме, только изменить Visible:=False; При вызове предворительного просмотра Report сам создает форму приведенной выше процедурой.

Осталась только одна проблема связанная с утечкой памяти. Компонент не очищает за собой память. Скорее всего это как то связанно с новой версией KOL. Пытался разобраться, но пока ничего не выходит. В связи с этим, просьба к В. Кладову, как к автору компонента посмотреть в чем может быть причина.


 
Vladimir Kladov   (2007-07-30 18:22) [3]

Я просто давно туда не смотрел, а KOL меняется. Там изначально предполагается, что нужен компонент печати, на выбор, Брандыса или Жарова.

Я дойду до печати в своей программе, тогда и смотреть буду.



Страницы: 1 вся ветка

Текущий архив: 2008.03.16;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.01 c
8-1176981412
Dmitriy_O.
2007-04-19 15:16
2008.03.16
Как сделать BMP файл типа Gluph чтоб он проигрывался AnimateImage


4-1184169587
__Unknown__
2007-07-11 19:59
2008.03.16
TThread


2-1203439928
Рустам
2008-02-19 19:52
2008.03.16
корректное отображение в базе данных


3-1193096147
DimaL
2007-10-23 03:35
2008.03.16
Транзакции в ADO


15-1202215404
Reindeer Moss Eater
2008-02-05 15:43
2008.03.16
Миллион лицензий