Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "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.005 c
15-1202407839
Human
2008-02-07 21:10
2008.03.16
IRC


4-1184719046
Cj
2007-07-18 04:37
2008.03.16
CommandLine...in ReadProcessMemory???


8-1177042797
Dmitriy_O.
2007-04-20 08:19
2008.03.16
Как сделать "вспышку" тоесть чтобы картинка засветилась яркими цв


15-1202197190
Шмелъ
2008-02-05 10:39
2008.03.16
Оффтоп. Linux. /dev/null


2-1203422471
Tzw
2008-02-19 15:01
2008.03.16
Перехват ReadFile





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский