Форум: "KOL";
Текущий архив: 2008.03.16;
Скачать: [xml.tar.bz2];
ВнизОтчет Найти похожие ветки
← →
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 вся ветка
Форум: "KOL";
Текущий архив: 2008.03.16;
Скачать: [xml.tar.bz2];
Память: 0.46 MB
Время: 0.006 c