Форум: "KOL";
Текущий архив: 2008.09.14;
Скачать: [xml.tar.bz2];
ВнизПечать отчета по базе данных из KOL&MCK Найти похожие ветки
← →
Алекс ей Долгов (2007-09-27 15:46) [0]Разобрался с KOLEDB - все нахожу, фильтрую и отображаю.
Остановился на создании отчетов. На родном сайте ничего хорошего не нашел, или не разобрался - помогите
← →
Vladimir Kladov © (2007-09-27 17:40) [1]KOLReport, аналог для VCL NormalReport, только его и использую. Говорят, с KOLReport были какие-то проблемы. Скоро до него доберусь, гляну, что там случилось.
← →
Алексей Долгов (2007-09-28 09:35) [2]Пытался я его поставить на Delphi 7 с установленным KOL&MCK - получал сообщение о устаревшем коде....там есть пакеты только до 5-го..... плиз помогите
← →
Vladimir Kladov © (2007-09-28 15:57) [3]Пакет сами сделайте.
Добавьте прямо в код юнита (ов) в начало {$I KOLDEF.inc}, поменьше дурных предупреждний будет.
← →
misha_shar © (2007-09-28 16:55) [4]KOLReport я не смог поставить ни на 7 ни на 5 версии так что я думаю. Не ставится пакет 5 версии ругается на директиву ALIGN говорит что такую не знает. Так что советую делать под чистым KOL. С UNICODOM была мелкая проблема в модуле Printers а без него вроде работает. Чтобы разобраться возьми Demo и перепиши его в KOL. Тогда поймешь как работает. Модуль мне очень понравился это то что мне было нужно. Но не все работает правильно в установках принтера. Валится. Я сейчас все это смотрю. Если разбирусь подскажу.
← →
Долгов Алексей (2007-10-01 13:08) [5]Я не крутой спец по KOL..
Хотел просто переделать свой старый проект из под 7-го....
Там пользовался FreeReport - мне его хватало.....
Хотел и под Kol&MCK заиметь что-то подобное
← →
misha_shar © (2007-10-01 16:34) [6]Сильным спецом там быть ненадо. Паскаль я думаю тебе знаком. Сначала создается форма которая даже не выводится на экран. Затем на ней создаются поля Band для строк таблицы создаешь набор полей. Заполняешь эти поля значениями. Для таблицы поля заполняешь в цикле. Форма фактически служит шаблоном.
← →
Долгов Алексей (2007-10-03 08:05) [7]Пришли примерчик плиз........с коментами
← →
misha_shar © (2007-10-05 17:18) [8]//вызов отчета
procedure TfGL.bnRepClick(Sender: PObj);
var F: PForm3;
begin
NewForm3( F, Applet );
try
F.Form.Visible:=True;
F.Report1.PreviewModal;
finally
F.Form.Free;
end;
end;
//
unit Unit2;
interface
uses Windows, Messages, ShellAPI, KOL, KOLReport ;
type
PForm3 = ^TForm3;
TForm3 = object(TObj)
Form: PControl;
Report1: TKOLReport;
BandTitle: TKOLBand;
ReportLabel1: TKOLReportLabel;
BandColumns: TKOLBand;
BandCompany: TKOLBand;
BandDetail: TKOLBand;
DetailFName: TKOLReportLabel;
DetailLName: TKOLReportLabel;
ReportLabel2: TKOLReportLabel;
DetailN: TKOLReportLabel;
ReportLabel3: TKOLReportLabel;
procedure Report1Print(Sender: PObj);
procedure Report1NewPage(Sender: PObj);
private
PrintingDetail: Boolean;
end;
procedure NewForm3( var Result: PForm3; AParent: PControl );
implementation
procedure NewForm3( var Result: PForm3; AParent: PControl );
begin
New( Result, Create );
Result.Form := NewForm( AParent, "Form3" ).SetPosition( 262, 112 );
Result.Form.Add2AutoFree( Result );
Result.Form.Visible := False;
Result.Form.SetClientSize( 688, 438 );
Result.Form.Font.Color := clBlack;
//Создаем шаблон формы
Result.Report1 := NewReport;
Result.Report1.DoubleBufferedPreview := TRUE;
Result.Report1.DocumentName := "Test";
Result.Form.Add2AutoFree( Result.Report1 );
Result.Report1.OnPrint := Result.Report1Print;
Result.Report1.OnNewPage := Result.Report1NewPage;
// панель Заголовока отчета
Result.BandTitle := NewBand( Result.Form, [frLeft,frTop,frRight,frBottom] ).SetPosition( 112, 40 ).SetSize( 393, 89 );
Result.BandTitle.Border := 0;
Result.BandTitle.Color := clWhite;
// Заголовок Отчета
Result.ReportLabel1:=NewWordWrapReportLabel(
Result.BandTitle, "Sample Report to see what can be done with KOLReport", [] )
.SetAlign ( caClient ).MakeWordWrap.AutoSize( FALSE );
Result.ReportLabel1.Font.FontStyle := [ fsBold ];
Result.ReportLabel1.Font.FontHeight := 32;
Result.ReportLabel1.TextAlign := KOL.taCenter;
Result.ReportLabel1.Border := 1;
// панель заголовока таблицы
// Панель шапки_1 таблицы
Result.BandColumns := NewBand( Result.Form, [frLeft,frTop,frRight,frBottom] )
.SetPosition( 16, 216 ).SetSize( 625, 25 );
Result.BandColumns.Border := 1;
Result.BandColumns.Color := clWhite;
// 1-й столбец шапки таблицы
Result.ReportLabel2 := NewReportLabel( Result.BandColumns, "#", [] )
.SetAlign ( caLeft ).SetSize( 24, 0 ).AutoSize( FALSE );
Result.ReportLabel2.TextAlign := KOL.taCenter;
Result.ReportLabel2.VerticalAlign := KOL.vaCenter;
Result.ReportLabel2.Color := clWhite;
// 2-й столбец шапки таблицы
Result.ReportLabel3:=NewReportLabel(Result.BandColumns,"First Name",[frLeft])
.SetAlign ( caLeft ).SetSize( 165, 0 ).AutoSize( FALSE );
Result.ReportLabel3.TextAlign := KOL.taCenter;
Result.ReportLabel3.VerticalAlign := KOL.vaCenter;
Result.ReportLabel3.Color := clWhite;
//
// Панель шапки_2 таблицы
Result.BandCompany := NewBand(Result.Form,[frLeft,frRight,frBottom])
.SetPosition( 16, 246 ).SetSize( 625, 25 );
Result.BandCompany.Font.FontName := "Arial";
Result.BandCompany.VerticalAlign := KOL.vaCenter;
Result.BandCompany.Border := 1;
Result.BandCompany.Color := clWhite;
Result.BandCompany.Caption := " Company name";
// Панель таблицы
Result.BandDetail:=NewBand( Result.Form, [] )
.SetPosition( 17, 279 ).SetSize( 625, 25 );
Result.BandDetail.Font.FontName := "Arial";
Result.BandDetail.Border := 0;
Result.BandDetail.Color := clWhite;
//
// столбец_3 таблицы
// Result.DetailLName.TabOrder = -1
Result.DetailLName:=NewReportLabel(Result.BandDetail,"Last Name",[frLeft,frBottom])
.SetAlign ( caClient ).AutoSize( FALSE );
{$IFDEF UNICODE_CTRLS}
Result.DetailLName.SetUnicode(TRUE);
{$ENDIF UNICODE_CTRLS}
Result.DetailLName.VerticalAlign := KOL.vaCenter;
Result.DetailLName.Border := 1;
Result.DetailLName.Color := clWhite;
//
// столбец_1 таблицы
// Result.DetailN.TabOrder = -1
Result.DetailN:=NewReportLabel(Result.BandDetail,"#",[frLeft,frBottom])
.SetAlign ( caLeft ).SetSize( 24, 0 ).AutoSize( FALSE );
{$IFDEF UNICODE_CTRLS}
Result.DetailN.SetUnicode(TRUE);
{$ENDIF UNICODE_CTRLS}
Result.DetailN.TextAlign := KOL.taCenter;
Result.DetailN.VerticalAlign := KOL.vaCenter;
Result.DetailN.Border := 1;
Result.DetailN.Color := clWhite;
//
// столбец_2 таблицы
// Result.DetailFName.TabOrder = -1
Result.DetailFName := NewReportLabel(Result.BandDetail,"First Name",[frLeft,frBottom])
.SetAlign ( caLeft ).SetSize( 165, 0 ).AutoSize( FALSE );
{$IFDEF UNICODE_CTRLS}
Result.DetailFName.SetUnicode(TRUE);
{$ENDIF UNICODE_CTRLS}
Result.DetailFName.VerticalAlign := KOL.vaCenter;
Result.DetailFName.Border := 1;
Result.DetailFName.Color := clWhite;
end;
//вывод на печать формы
procedure TForm3.Report1Print(Sender: PObj);
const
FirstNames: array[ 0..9 ] of String = ( "Abraham", "Bobby", "Dennis",
"Harold", "Iven", "Jack", "Jim",
"John", "Kevin", "Peter" );
LastNames: array[ 0..9 ] of String = ( "Benson", "Darkson", "Firson", "Henson",
"Jayson", "Larson", "Pirson", "Smithson", "Veyson", "Zigfridson" );
var I, J, N, C: Integer;
begin
//заголовок формы
Report1.AddBandEx( BandTitle, blCenter );
N := 0;
C := 0;
for I := 0 to 3 do
begin
Report1.AddBandEx( BandColumns, blExpandRight );
PrintingDetail := TRUE;
//строки отчета
for J := 0 to Random( 10 ) do
begin
if (J = 0) or (Random(10) = 0) then
begin
Inc( C );
BandCompany.Caption := " Company number " + Int2Str( C );
if BandCompany.Height + BandDetail.Height > Report1.HeightAvailable then
Report1.NewPage;
Report1.AddBandEx( BandCompany, blExpandRight );
end;
Inc( N );
DetailN .Caption := Int2Str( N );
DetailFName .Caption := FirstNames[ Random( 10 ) ];
DetailLName .Caption := LastNames[ Random( 10 ) ];
Report1.AddBandEx( BandDetail, blExpandRight );
end;
PrintingDetail := FALSE;
end;
end;
procedure TForm3.Report1NewPage(Sender: PObj);
begin
//Вывод шапки таблицы
if PrintingDetail then
Report1.AddBandEx( BandColumns, blExpandRight );
end;
end.
← →
Долгов Алексей (2007-10-11 08:22) [9]Как только цепляю в uses KOLPrinters он не нахидит модули *.dcu - они ведь образуются при нормальной компиляции KOLPrinters - что мне делать?????
← →
Долгов Алексей (2007-10-12 08:05) [10]ПОМОГИТЕ !!!!!!
Дайте KOLReport для 7-го Delphi !!!!!!!!!!!!!!!!!!!!!!!!!!!
← →
Долгов Алексей (2007-10-16 08:09) [11]НЕ хочу переходить на 5-й только для того чтобы печатать отчет
← →
ANTPro © (2007-10-17 00:01) [12]Ребилдол делал? Я ставил какой-то KOLReport на D7
← →
Vladimir Kladov © (2007-10-17 15:11) [13]Обновил у себя KOLReport + KOLPrintDialogs, и зодно ToGRush. Проверял, что ставится (теперь), на D6. Ошибка-то 3 буквы всего ClassName -> SubClassName, изменилось года 2 по-моему как. Можно было и самим найти, если сильно хочется.
← →
misha_shar © (2007-10-19 16:45) [14]Где у тебя размещены модули KOLReport и KOLPrintDialogs? Запиши их
в свой каталог.
Владимиру - по моему были еще проблемы при использовании UNICODA.
Где взять изменения?
← →
Vladimir Kladov © (2007-10-20 09:00) [15]Я с unicode не смотрел. Сами знаете, что поправлять. String -> KOLString, в событиях -> KOL_String.
← →
misha_shar © (2007-10-24 07:00) [16]Я то исправлю там надо то исправить в 1 или 2 местах. Скажи где взять последние исправления модулей KOLReport я не нашел свежих версий.
← →
Vladimir Kladov © (2007-10-24 15:39) [17]буквально пару дней назад выкладывал. Нужен еще KOLPrintDialogs от Brandys"а, я его тоже выкладывал обновленный. В топ-10 даже занёс.
← →
Долгов Алексей (2007-10-24 16:58) [18]Скачал - спасибо..... Вот только пока один вопрос - как изменить размер страницы по умолчанию - например А5? Пробовал по всякому - хрен. Только если сам принтер настроен на такой формат - тогда пожалуйста. Пока обойдусь но......
← →
Vladimir Kladov © (2007-10-24 22:18) [19]Есть там такое средство. Только размер страницы надо указывать в 0.1 миллиметра, кажется. Printer.PageWidth и PageHeight. Я в своём проекте, кстати, сам KOLReport для печати использовать не стал. Того что есть в KOLPrintDialogs + техника работы с метафайлами, содранная (всё-таки) из моего же KOLReport, и этого хватило. И там вообще все параметры задаются из программы, и диалог вызывается в основном чтобы принтер выбрать не по умолчанию (и убедиться, что прога его видит).
Страницы: 1 вся ветка
Форум: "KOL";
Текущий архив: 2008.09.14;
Скачать: [xml.tar.bz2];
Память: 0.51 MB
Время: 0.054 c