ReportMachine中文手冊范本_第1頁
ReportMachine中文手冊范本_第2頁
ReportMachine中文手冊范本_第3頁
ReportMachine中文手冊范本_第4頁
ReportMachine中文手冊范本_第5頁
已閱讀5頁,還剩1頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

./ReportMachine〔RM報表控件簡單用法RM<ReportMachine>是一個功能強大的Delphi報表控件包。使用它可以制作出非常復雜的報表。下面講述最簡單的用法:在Form上放上兩個數(shù)據(jù)庫控件:ADOConnection和ADOQuery

設置好ADOConnection的ConnectionString。LoginPrompt=False。

ADOQuery的Connection指向ADOConnection。

ADOQuery的SQL設置好數(shù)據(jù)查詢語句。在Form上放上兩個RM報表控件:RMDBDataSet和RMReport。

RMDBDataSet的DataSet指向ADOQuery。

RMReport的DataSet指向RMDBDataSet。<如果想使最終生成的應用程序具備報表設計能力,還需要放上RMDesigner控件,不需要設置任何屬性>雙擊RMReport控件,開始設計報表模板。對于一般比較規(guī)則的報表,只需向模板中加入四個Band對象,分別是:

1>、頁標頭:通常用來顯示報表名稱,時間等

2>、主項標頭:通常用來顯示欄目名稱。

3>、主項數(shù)據(jù):用來顯示數(shù)據(jù)。

4>、頁注腳:用來顯示頁號,日期等。設計好的模板可以保存在DFM中,也可以保存到獨立的模板文件中,擴展名為RMF,運行時調入。下面給出幾個代碼片斷:procedureTBrowseForm.Button5Click<Sender:TObject>;

var

RMReport:TRMReport;

begin

ifADOQuery1.IsEmptythen

Exit;

try

RMReport:=TRMReport.Create<Self>;

RMReport.LoadFromFile<'Match.rmf'>;

RMReport.PrepareReport;

RMReport.ShowReport;

finally

RMReport.Free;

end;

end;procedureTForm1.Button1Click<Sender:TObject>;

begin

RMReport1.ShowReport;

end;//設計報表模板

procedureTForm1.Button2Click<Sender:TObject>;

begin

RMReport1.LoadFromFile<'TTT.rmf'>;

RMReport1.DesignReport;

end;對于大多數(shù)規(guī)則的報表,以上知識就足夠了。但這只是RM最簡單的用法,遠遠沒體現(xiàn)出RM功能的強大。RM有兩個吸引人的功能是我目前最需要的:1>、數(shù)據(jù)可以來自數(shù)據(jù)庫,也可以來自其它任何地方,如文件中、存中等。

2>、不一定需要預先制作好模板,可以在運行時刻通過代碼生成模板,這對于數(shù)據(jù)中字段個數(shù)不定的情況非常有用。RM雖然功能強大,但用起來并不覺的很復雜,它是我見過的為數(shù)不多的報表控件中最好的一個。1.對于一紙要兩面打的報表你有什么好辦法?

打印時可以選擇打奇數(shù)頁還是打偶數(shù)頁。

2.怎么能在一個頁面中打印固定的條數(shù),另外最后一頁記錄不夠時怎么打出空白的格子出來啊.

固定條數(shù):設置LinesPerPage

空白格子:設置AutoAppendBlank=True

3.怎樣屏蔽雙擊報表進入設計報表的界面?

RMReport1.ModifyPrepared:=False

4.怎樣在報表中增加表合計???

可以放在標題欄,頁面設置中選"兩遍報表"

匯總框的TotalCalc=True即可

5.我想用代碼把參數(shù)傳遞給報表中的某一個TRMMemoView該怎么做?

RMReport1.FindObject<‘Memo1‘>.Memo.Text:=‘ddddd‘

或者

RMVariables[‘a1‘]:=‘ddddd‘;//這樣就可以在報表中使用變量‘a1‘了。

6.如何能夠不打印重復容?

Suppres=True

7.如何讓打印預覽時雙擊不能進入報表編輯器!

設置RMReport.ModifyPreview=False

8.如何在報表程序中控制MEMO的邊框是否顯示

在delphi中:

memo1.LeftFrame.Visible:=False

memo1.TopFrame.Visible:=False;

memo1.RightFrame.Visible:=False;

memo1.BottomFrame.Visible:=False

在報表的script中

memo1.FrameTyp:=15;//這個參數(shù)多試幾次就知道如何設置了

FrameTyp:=0;//不顯示

9.怎樣改變page的名稱和控制它顯示但不打印

可以,在Page1的OnBeforePrint中

begin

Page1.Visible:=True;

Page1.Visible:=False;//不顯示

end;

10.ReportMachine中,如何強制每3行一個表格

設置主項數(shù)據(jù)欄:LinesPerPage=3

如果三人一行有辦法:設置主項數(shù)據(jù)欄的Columns=3

用分組打印,分組條件:NowLine>3

在分組標頭的OnBeforePrint:

begin

NowLine:=1;

end;

在主項數(shù)據(jù)的OnBeforePrint:

begin

NowLine:=NowLine+1;

end;

11.能否只顯示分組統(tǒng)計值而不顯示分組數(shù)據(jù)?

可以,設置主項數(shù)據(jù)欄:Visible=False

統(tǒng)計框:CalcNoVisible=True

12.能否只對超過長度的單條記錄進行折行?

可以,設置文本框:Stretched=True;wordwrap=True

設置文本框所在的欄:Stretched=True;Breaked=True

13.如何實現(xiàn)打印預覽的問題

RMReport1.LoadFromFile<‘c:1.rmf‘>;//讀入報表

RMReport1.ShowReport;//預覽

RMReport1.PrintReport;//打印

RMReport1.DesignReport;//設計

14.請問如何在程序中控制:1、縱向打印還是橫向打印。2、分組標頭是否每組換頁。

1.RMReport1.Pages[0].ChangePaper<>

2.RMReport1.Pages[0].FindObject<分組標頭欄名>.Prop[‘NewPage‘]:=False;

15.直接打印的方法是什么?

RMReport1.ShowPrintDialog:=False;

RMReport1.PrintReport;

16.頁邊距改變以后,所有控件應該相應的改變位置。

需要在頁面設置中不選"縮放到可打印區(qū)域"頁面居中或

RMReport1.Pages[0].pgMargins:=;//這樣試試

17.如何從導入一個rtf文件作為TRMFormReport的PageHeader

var

TempStream:TMemoryStream;

begin

TempStream:=TMemoryStream.Create;

RichEdit1.Lines.SaveToStream<TempStream>;

TempStream.Position:=0;

RMFormReport1.PageHeader.Caption.LoadFromStream<TempStream>;

TempStream.Free;

end;

18.怎樣確定報表模版目錄?

設置TRMDesigner的TemplateDir

19.我想動態(tài)設"虛擬數(shù)據(jù)集"該怎么設!

<RMReport1.FindObject<‘Band1‘>asTRMBandView>.DataSet:=‘RMDBDataSet1‘;

20.在程序中

RMVariables[‘aaa‘]:=form1.Caption;

在報表中就可以使用變量‘aaa‘

21.左邊距:

CurReport.Pages[0].pgMargins.Left:=Round<RMConvertToPixels<毫米*10,rmsuMM>>

22.RMVariables[‘品牌‘]:=True;

RMVariables[‘品名‘]:=‘計算機‘;

在Page1的OnBeforPrint事件中的代碼如下:

If品牌Then

MessageBox<品名>;

23.每頁只打10條記錄怎么處理?。恐黜棓?shù)據(jù)欄LinePerPage=10

24.怎么實現(xiàn)主項數(shù)據(jù)的統(tǒng)計?????

最好用欄目注腳欄,在上面放統(tǒng)計框,然后設置CalcType即可

25.動態(tài)生成報表時,RM的頁邊距如何設定?

TRMPage.pgMargins:=Rect<30,30,40,40>;

26.如何在程序運行時,在一個預覽或者打印窗口中,一次打開多個報表文件

用TRMCompositeReport,

RMCompositeReport1.Reports.Clear;

RMCompositeReport1.Reports.Add<RMReport1>;

RMCompositeReport1.Reports.Add<RMReport2>;

RMCompositeReport1.ShowReport;

27.rm如何進行套打

Page1不是有個BackGroundPic屬性嗎,這個就是專門做套打的

28.GridView1能象MicrosoftExcel

實現(xiàn)a3=a1+a2嗎?

可以,a3容

[memo1.CalcValue+memo2.CalcValue]

29.

使用總頁數(shù),將CalcMemoView放在頁頭,組頭,欄目頭時需要選擇"兩遍報表",對打印沒影響,只打印一遍.

30.如何打印中括號如:[2002]

在memoview的OnBeforePrint中

begin

memo:=‘[2002]‘;

end;

或者把‘[‘,‘]‘定義成變量:

RMVariables[‘a1‘]:=‘[‘;

RMVariables[‘a2‘reportmachine開發(fā)使用手冊-創(chuàng)建報表2010-02-1013:08創(chuàng)建報表:創(chuàng)建一個報表由下面幾步組成:1、選擇數(shù)據(jù):選擇報表中用到的數(shù)據(jù)源2、設計報表模板:利用區(qū)域〔稱為Band>將報表分布不同的部分,決定報表樣式。3、處理:用報表置腳本語言或在delphi中對報表中用的的數(shù)據(jù),報表模板等進行處理4、生成報表:根據(jù)報表模板+數(shù)據(jù)源,生成最終的報表。選擇數(shù)據(jù)源:大多數(shù)報表需要的數(shù)據(jù)都是來自數(shù)據(jù)庫。TTable和TQuery組件可以作為報表的數(shù)據(jù)源。總的來說它可以使用任何一個從TDataSet組件繼承的子類。每個報表中用到的TDataSet都要有一個與之對應的TRMDBDataSet。除了TDataSet,ReportMachine頁可以使用任何數(shù)據(jù)源〔數(shù)組,文件,字符網(wǎng)格等等。在這種情況下,程序必須自己控制非數(shù)據(jù)庫源的存取。你可以用TRMUserDataSet方便地把數(shù)據(jù)傳送到報表中。設計報表模板:報表模板本身就是描述怎樣可以看到正確的報表。每個報表模板由多個區(qū)域組成,ReportMachine把這些區(qū)域稱為"Band"。有兩種類型的Band:固定區(qū)域Band〔比如報表標題,頁標頭,頁注腳等等和用于顯示數(shù)據(jù)集中所有記錄的Band〔比如主項數(shù)據(jù)欄。數(shù)據(jù)Band需要聯(lián)接到數(shù)據(jù)源,容是數(shù)據(jù)源中的記錄。在ReportMachine中提供了報表開發(fā)的可視化環(huán)境<報表設計器,這個設計器也可以提供給你的EndUser,以方便你的EndUser自己修改報表模板>用于創(chuàng)建報表。報表設計器功能強勁,簡單又易于使用。報表設計器的界面由帶有浮動的工具欄,可以自由地改變它們的位置,使用對象觀察器〔ObjectsInspector可以控制對象的屬性,類似于DelphiIDE中的那個。處理:在生成報表的時候,需要對輸入的數(shù)據(jù)進行某種處理〔比如格式化,報表模板需要某些修改〔比如報表模板中某個文本框需要改變字體。實現(xiàn)這個處理可以在Delphi中的TRMReport的事件處理中編寫代碼,這個方法并不通用,因為它不允許在Delphi外創(chuàng)建報表而無需重新編譯。這就是為什么在ReportMachinet中置腳本語言,ReportMachine的置腳本語言非常類似于ObjectPascal,功能強大。用這個腳本語言編寫事件處理代碼,這就可以讓你創(chuàng)建復雜的處理而無需在Delphi中編寫代碼,配合報表設計器,不需要修改某個報表而重新編譯項目??梢詫崿F(xiàn)報表于你的項目分離。報表腳本例子:unitReport;interfaceprocedureMemo1OnBeforePrint<Sender:TObject>;

implementationprocedureMemo1OnBeforePrint<Sender:TObject>;

begin

Memo1.Text:='test';

end;procedureMain;

beginend;end.生成

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論