?? report_public.pas
字號:
{
=========================================================================
WinStar通用報表工具(SReport 1.1.012)
最后修改時間: 2001/03/25
編寫者: 宋立超
聯系方式: songlch@263.net
功能描述:
====================================================================
(一)自定義頁面、邊距、字體;
(二)自定義標題和頁眉頁腳;
(三)在表頭尾可以打印任何相關數據主表中的數據和自定義標簽。
(四)可以定義明細數據中要打印的字段、標題、寬度、對齊方式、字體。
(五)可以定義明細數據是否頁計、是否累計、是否總計、大寫字段;
(六)實現針打中的卷紙打印--打多少內容,走多少紙。(報表和頁面等長)
(七)直接生成文本文件、EXCEL格式文件、HTML網頁格式文件。
(八)用戶可以自己定義是否要打印報表頂端的單位信息標志。
(九)支持同一報表多格式并存,按用戶的選擇輸出不同的報表。
====================================================================
控件目標:No 一兵一卒, Yes 報表
====================================================================
(一)是將(商務管理軟件)開發人員的報表設計工作量降為零;
(二)是為最終用戶提供“簡單易用”、“功能強大”、“靈活方便”的報表
自定義途徑。使用戶也可以輕松的,隨心所欲的設計打印自己的報表。
====================================================================
=========================================================================
}
unit Report_Public;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
Db, DBTables, Grids, DBGrids, ExtCtrls, DBCtrls, StdCtrls, Qrctrls,
QuickRpt, ActnList;
type
TSReport = class(TComponent)
private
{ Private declarations }
FMy_UserFormName : string;
FMy_UserFormCaption : string;
FMy_SubDetailDataSet : TDataSet;
FMy_MainDataSetOne : TDataSet;
FMy_MainDataSetTwo : TDataSet;
FMy_MainDataSetThree : TDataSet;
FMy_MainDataSetFour : TDataSet;
FMy_MainDataSetFive : TDataSet;
FMy_MainDataSetOneCaption : String; //相對應的便于理解的名稱
FMy_MainDataSetTwoCaption : String; //相對應的便于理解的名稱
FMy_MainDataSetThreeCaption : String; //相對應的便于理解的名稱
FMy_MainDataSetFourCaption : String; //相對應的便于理解的名稱
FMy_MainDataSetFiveCaption : String; //相對應的便于理解的名稱
FMy_ModelInfoFilesName : String; //主INI
FMy_SaveDirectory : String; //存儲目錄
FMy_PrintMemoRows : integer;
FMy_BottomMemoString : string; //報表備注。
PrintingOrPreview : boolean;
procedure SRep_PrintOrPreview(Const Print0OrPreview1OrTxt2OrWord3OrHtml4 : integer;
DefaOrSelect : boolean);
Procedure EnaOrDisDataSource(const EnaOrdis : boolean);
procedure SRep_SettingOfVcl;
protected
{ Protected declarations }
public
{ Public declarations }
Constructor create(AOwner : TComponent);Override;
published
{ Published declarations }
property UserFormName : string
read FMy_UserFormName
Write FMy_UserFormName;
property UserFormCaption : string
read FMy_UserFormCaption
Write FMy_UserFormCaption;
property SubDetailDataSet : TDataSet
read FMy_SubDetailDataSet
Write FMy_SubDetailDataSet;
property MainDataSetOne : TDataSet
read FMy_MainDataSetOne
Write FMy_MainDataSetOne;
property MainDataSetTwo : TDataSet
read FMy_MainDataSetTwo
Write FMy_MainDataSetTwo;
property MainDataSetThree : TDataSet
read FMy_MainDataSetThree
Write FMy_MainDataSetThree;
property MainDataSetFour : TDataSet
read FMy_MainDataSetFour
Write FMy_MainDataSetFour;
property MainDataSetFive : TDataSet
read FMy_MainDataSetFive
Write FMy_MainDataSetFive;
property MainDataSetOneCaption : String
read FMy_MainDataSetOneCaption
Write FMy_MainDataSetOneCaption;
property MainDataSetTwoCaption : String
read FMy_MainDataSetTwoCaption
Write FMy_MainDataSetTwoCaption;
property MainDataSetThreeCaption : String
read FMy_MainDataSetTHreeCaption
Write FMy_MainDataSetThreeCaption;
property MainDataSetFourCaption : String
read FMy_MainDataSetFourCaption
Write FMy_MainDataSetFourCaption;
property MainDataSetFiveCaption : String
read FMy_MainDataSetFiveCaption
Write FMy_MainDataSetFiveCaption;
property ModelInfoFilesName : String
read Fmy_ModelInfoFilesName
Write FMy_ModelInfoFilesName;
property SaveDirectory : String
read FMy_SaveDirectory
Write Fmy_SaveDirectory;
Property PrintMemoRows : integer
Read FMy_PrintMemoRows
Write FMy_PrintMemoRows;
Property PrintMemoString : string
Read FMy_BottomMemoString
Write Fmy_BottomMemoString;
Procedure SRep_Setting;
procedure SRep_Print;
procedure SRep_Preview;
procedure SRep_PrintSelect;
procedure SRep_PreviewSelect;
procedure SRep_PrintToTxt;
procedure SRep_PrintToTxtSelect;
procedure SRep_PrintToExecl;
procedure SRep_PrintToExeclSelect;
procedure SRep_PrintToHtml;
procedure SRep_PrintToHtmlSelect;
procedure SRep_AllTasks;
end;
function S_InputQuery(const ACaption, APrompt: string;
var Value: string): Boolean;
procedure Register;
implementation
{$R *.DCR}
uses report_report,Report_Main,Report_Print;
Constructor TSReport.create(AOwner : TComponent);
begin
Inherited Create(AOwner);
if csDesigning in Componentstate then
begin
FMy_UserFormName := AOwner.Name;
end;
end;
procedure TSReport.SRep_Setting;
begin
SRep_SettingOfVcl;
end;
procedure TSReport.SRep_Print;
begin
SRep_PrintOrPreview(0,false);
end;
procedure TSReport.SRep_PrintSelect;
begin
SRep_PrintOrPreview(0,true);
end;
procedure TSReport.SRep_Preview;
begin
SRep_PrintOrPreview(1,false);
end;
procedure TSReport.SRep_PreviewSelect;
begin
SRep_PrintOrPreview(1,true);
end;
procedure TSReport.SRep_PrintToTxt;
begin
SRep_PrintOrPreview(2,false);
end;
procedure TSReport.SRep_PrintToTxtSelect;
begin
SRep_PrintOrPreview(2,true);
end;
procedure TSReport.SRep_PrintToExecl;
begin
SRep_PrintOrPreview(3,false);
end;
procedure TSReport.SRep_PrintToExeclSelect;
begin
SRep_PrintOrPreview(3,true);
end;
procedure TSReport.SRep_PrintToHtml;
begin
SRep_PrintOrPreview(4,false);
end;
procedure TSReport.SRep_AllTasks;
begin
Report_Frm_Print := TReport_Frm_Print.Create(application);
with Report_Frm_Print do
try
if ShowModal = MrOK then
begin
if FPrint0OrPreview1OrTxt2OrWord3OrHtml4 = -1 then
SRep_SettingOfVcl
else
SRep_PrintOrPreview(FPrint0OrPreview1OrTxt2OrWord3OrHtml4,FDefaOrSelect);
end;
finally
free;
end;
end;
procedure TSReport.SRep_PrintToHtmlSelect;
begin
SRep_PrintOrPreview(4,true);
end;
function GetAveCharSize(Canvas: TCanvas): TPoint;
var
I: Integer;
Buffer: array[0..51] of Char;
begin
for I := 0 to 25 do Buffer[I] := Chr(I + Ord('A'));
for I := 0 to 25 do Buffer[I + 26] := Chr(I + Ord('a'));
GetTextExtentPoint(Canvas.Handle, Buffer, 52, TSize(Result));
Result.X := Result.X div 52;
end;
{ Input dialog }
function S_InputQuery(const ACaption, APrompt: string;
var Value: string): Boolean;
var
Form: TForm;
Prompt: TLabel;
Edit: TEdit;
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -