Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "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.045 c
15-1215553340
Маэстро
2008-07-09 01:42
2008.09.14
Вопрос....


3-1205766628
dest81
2008-03-17 18:10
2008.09.14
dbgrideh и фильтрация


2-1217469118
Vitaliy____
2008-07-31 05:51
2008.09.14
Нетипизированные указатели


15-1216620114
Vlad Oshin
2008-07-21 10:01
2008.09.14
Постоянно в памяти висит процесс WinWord.exe


2-1217529981
Noobik
2008-07-31 22:46
2008.09.14
Вопрос по скрипиту на delphi





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский