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

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

ReportMachine(RM)報(bào)表控件簡潔用法

RM(ReportMachine)是一個功能強(qiáng)大的Delphi報(bào)表控件包。運(yùn)用它可以制作出特別困難的報(bào)表。下面講解并

描述最簡潔的用法:

在Form上放上兩個數(shù)據(jù)庫控件:ADOConnection和ADOQuery

設(shè)置好ADOConnection的Connectionstring<>LoginPrompt=Falseo

ADOQuery的Connection指向ADOConnectiono

ADOQuery的SQL設(shè)置好數(shù)據(jù)查詢語句。

在Form上放上兩個RM報(bào)表控件:RMDBDataSet和RMReporto

RMDBDataSet的DataSet指向ADOQueryo

RMReport的DalaSet指向RMDBDataSet,

(假如想使最終生成的應(yīng)用程序具備報(bào)表設(shè)計(jì)實(shí)力,還須要放上RMDesigner及件,不須要設(shè)置任何屬性)

雙擊RMReport控件,起先設(shè)計(jì)報(bào)表模板。

對丁一般比較規(guī)則的報(bào)表,只需向模板中加入四個Band對象,分別是:

1)、頁標(biāo)頭:通常用來顯示報(bào)表名稱,時間等

2)、主項(xiàng)標(biāo)頭:通常用來顯示欄目名稱。

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

4)、頁注腳:用來顯示頁號,日期等。

設(shè)計(jì)好的模板可以保存在DFM中,也可以保存到獨(dú)立的模板文件中,擴(kuò)展名為RMF,運(yùn)行時調(diào)入。下面給

出幾個代碼片斷:

procedureTBrowseForm.Button5Click(Sender:TObject);

var

RMReport:TRMReport;

begin

ifADOQuery1.IsEmptythen

Exit;

try

RMReport:=TRMR叩ort.Create(Self);

RMReport.LoadFromFile('Match.rmf);

RMReport.PrepareReport;

RMReport.ShowRcport;

finally

RMReport.Free;

end;

end;

procedureTForm1.Button1Click(Sender:TObject);

begin

RMReport1.ShowRcport;

end;

//設(shè)計(jì)報(bào)表模板

procedureTForm1.Button2Click(Sender:TObjcct);

begin

RMReportl.LoadFromFile('TTT.rmf);

RMReportl.DesignReport:

end;

對于大多數(shù)規(guī)則的報(bào)表,以上學(xué)問就足夠了。但這只是RM最簡潔的用法,遠(yuǎn)遠(yuǎn)沒體現(xiàn)出RM功能的強(qiáng)大。

RM有兩個吸引人的功能是我目前最須要的:

1)、數(shù)據(jù)可以來自數(shù)據(jù)庫,也可以來自其它任何地方,如文件中、內(nèi)存中等。

2)、不肯定須要預(yù)先制作好模板,可以在運(yùn)行時刻通過代碼生成模板,這對于數(shù)據(jù)中字段個數(shù)不定的狀況特

別有用。

RM雖然功能強(qiáng)大,但用起來并不覺的很困難,它是我見過的為數(shù)不多的報(bào)表控件中最好的一個。

1.對于一張紙要兩面打的報(bào)表你有什么好方法?

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

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

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

空白格子:設(shè)置AutoAppendBlank=True

3.怎樣屏蔽雙擊報(bào)表進(jìn)入設(shè)計(jì)報(bào)表的界面?

RMReportl.ModifyPrepared:=False

4.怎樣在報(bào)表中增加表合計(jì)???

可以放在標(biāo)題欄,頁面設(shè)置中選“兩遍報(bào)表”

匯總框的TotalCaIc=True即可

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

RMReportl.FindObject(4Memor).Memo.Text:=’ddddd'

或者

RMVariables['a-]:=Pdddd,;〃這樣就可以在報(bào)表中運(yùn)用變量匕1,了。

6.如何能夠不打印重復(fù)內(nèi)容?

Suppres=Truc

7.如何讓打印預(yù)覽時雙擊不能進(jìn)入報(bào)表編輯器!

設(shè)置RMRcport.ModifyPreview=False

8.如何在報(bào)表程序中限制MEMO的邊框是否顯示

在delphi中:

memo1.LeftFrame.Visible:=False

memo1.TopFrame.Visible:=False;

memo1.RightFrame.Visible:=False;

memo1.BottomFrame.Visible:=False

在報(bào)表的script中

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

FrameTyp:=0;〃不顯示

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

可以,在Page1的OnBeforePrint中

begin

Pagel.Visible:=True;

Pagel.Visible:=False;〃不顯示

end;

10.ImportMachine中,如何強(qiáng)制每3行一個表格

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

假如三人一行有方法:設(shè)置主項(xiàng)數(shù)據(jù)欄的Columns=3

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

在分組標(biāo)頭的OnBeforePrint:

begin

NowLine:=1;

end;

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

begin

NowLine:=NowLine+1;

end;

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

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

統(tǒng)計(jì)框:CalcNoVisible:True

12.能否只對超過長度的單條記錄進(jìn)行折行?

可以,設(shè)置文本框:Stretched=True;wordwrap=True

設(shè)置文本框所在的欄:Slrelched=True;Breaked=True

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

RMReportLLoadFromFHe('c:l.rmP);//讀入報(bào)表

RMR叩ortl.ShowReport;//預(yù)覽

RMReport!.PrintRcport;〃打印

RMReport1.DesignReport;〃設(shè)計(jì)

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

1.RMReport1,Pages[01.ChangePaper()

2.RMReportl.Pages[0].FindObject(分組標(biāo)頭欄名).Prop「NewPagc[:=False;

15.干脆打印的方法是什么?

RMReport1.ShowPrintDialog:=False;

RMReportI.PrintReport;

16.頁邊距變更以后,全部控件應(yīng)當(dāng)相應(yīng)的變更位置。

須要在頁面設(shè)置中不選”縮放到可打印區(qū)域”頁面居中或

RMReport1.Pages[01.pgMargins:=;〃這樣式試

17.如何從導(dǎo)入一個rtf文件作為TRMFonnRcport的PageHeader

var

TempStream:TMemoryStream;

begin

TempStream:=TMemoryStream.Create;

RichEdit1.Lines.SaveToStream(TempStream);

TempStream.Position:=0;

RMFormReportLPageHeadcr.Caption.LoadFromStream(TempStream);

TempStream.Free;

end;

18.怎樣確定報(bào)表模版書目?

設(shè)置TRMDesigner的TemplateDir

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

(RMReportl.FindObject('Bandl')asTRMBandView).DataSet:=tRMDBDataSet14;

20.在程序中

RMVariables[*aaa4]:=form1.Caption;

在報(bào)表中就可以運(yùn)用變量'aaa'

21.左邊距:

CurReport.Pages[0].pgMargins.Left:=Round(RMConvertToPixels(亳米*10,rmsuMM))

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

RMVariables「品名]:=,計(jì)算機(jī)二

在Pagel的OnBeforPrint事務(wù)中的代碼如下:

If品牌Then

MessageBox(品名);

23.每頁只打10條記錄怎么處理???主項(xiàng)數(shù)據(jù)欄LinePerPage=10

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

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

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

TRMPagc.pgMargins:=Rect(30,30,40,40);

26.如何在程序運(yùn)行時,在一個預(yù)覽或者打印窗口中,一次打開多個報(bào)表文件

用TRMCompositeReport,

RMCompositeReport1.Reports.Clear;

RMCompositcRcport1.Reports.Add(RMRcport1);

RMCompositeReport1.Reports.Add(RMReport2);

RMCompositeReport1.ShowReport;

27.rm如何進(jìn)行套打

Pagel不是有個BackGroundPic屬性嗎,這個就是特地做套打的

28.GridViewl能象MicrosoftExcel

實(shí)現(xiàn)a3=al+a2嗎?

可以,a3內(nèi)容

(memol.CalcValue+memo2.CalcValue]

29.

運(yùn)用總頁數(shù),將CalcMemoView放在頁頭,組頭,欄目頭時須要選擇“兩遍報(bào)表",對打印沒影響,只打印一遍.

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

在memoview的OnBeforePrint中

begin

memo:=[2023]';

end;

或者把下,丁定義成變量:

RMVariables[*ar]:=4[\

RMVariables[ta2t

reportmachine開發(fā)運(yùn)用手冊-創(chuàng)建報(bào)表2023-02-1013:08

創(chuàng)建報(bào)表:

創(chuàng)建一個報(bào)表由下面幾步組成:

1、選擇數(shù)據(jù):選擇報(bào)表中用到的數(shù)據(jù)源

2、設(shè)計(jì)報(bào)表模板:利用區(qū)域(稱為Band)將報(bào)表分布不同的部分,確定報(bào)表樣式。

3、處理:用報(bào)表內(nèi)置腳本語言或在delphi中對報(bào)表中用的的數(shù)據(jù),報(bào)表模板等進(jìn)行處理

4、生成報(bào)表:依據(jù)報(bào)表模板+數(shù)據(jù)源,生成最終的報(bào)表。

選擇數(shù)據(jù)源:

大多數(shù)報(bào)表須要的數(shù)據(jù)都是來自數(shù)據(jù)庫。TTable和TQuery組件可以作為報(bào)表的數(shù)據(jù)源??偟膩碚f它可以

運(yùn)用任何一個從TDataSet組件繼承的子類。每個報(bào)表中用到的TDataSet都要有一個與之對應(yīng)的

TRMDBDataSeto

除了TDataSet,ReportMachine頁可以運(yùn)用任何數(shù)據(jù)源(數(shù)組,文件,字符網(wǎng)格等等).在這種狀況下,

程序必需自己限制非數(shù)據(jù)庫源的存取。你可以用TRMUserDataSet便利地把數(shù)據(jù)傳送到報(bào)表中。

設(shè)計(jì)報(bào)表模板:

報(bào)表模板本身就是描述怎樣可以看到正確的報(bào)表。每個報(bào)表模板由多個區(qū)域組成,ReportMachine把這些

區(qū)域稱為“Band”。有兩種類型的Band:固定區(qū)域Band(比如報(bào)表標(biāo)題,頁標(biāo)頭,頁注腳等等)和用于顯示數(shù)

據(jù)集中全部記錄的Band(比如主項(xiàng)數(shù)據(jù)欄)。數(shù)據(jù)Band須要聯(lián)接到數(shù)據(jù)源,內(nèi)容是數(shù)據(jù)源中的記錄。

在ReportMachine中供應(yīng)了報(bào)表開發(fā)的可視化環(huán)境(報(bào)表設(shè)計(jì)器,這個設(shè)計(jì)器也可以供應(yīng)應(yīng)你的EndUser,

以便利你的EndUser自己修改報(bào)表模板)用于創(chuàng)建報(bào)表。報(bào)表設(shè)計(jì)器功能強(qiáng)勁,簡潔又易于運(yùn)用。報(bào)表設(shè)計(jì)器

的界面由帶有浮動的工具欄,可以自由地變更它們的位置,運(yùn)用對象視察器(ObjectsInspector)可以限制對

象的屬性,類似于DelphiIDE中的那個。

處理:

在生成報(bào)表的時候,須要對輸入的數(shù)據(jù)進(jìn)行某種處理(比如格式化),:艮表模板須要某些修改(比如報(bào)

表模板中某個文本框須要變更字體)。

實(shí)現(xiàn)這個處理可以在Delphi中的TRMRepon的事務(wù)處理中編寫代碼,這個方法并不通用,因?yàn)樗辉试S

在Delphi外創(chuàng)建報(bào)表而無需重新編譯。這就是為什么在ReportMachinet中內(nèi)置腳本語言,ReportMachine的內(nèi)

置腳本語言特別類似于ObjeciPascal,功能強(qiáng)大。用這個腳本語言編寫事務(wù)處理代碼,這就可以讓你創(chuàng)建困難

的處理而無需在Delphi中編寫代碼,協(xié)作報(bào)表設(shè)計(jì)器,不須要修改某個報(bào)表而重新編譯項(xiàng)目??梢詫?shí)現(xiàn)報(bào)表

于你的項(xiàng)目分別。

報(bào)表腳本例子:

unitReport;

interface

procedureMemo1OnBeforePrint(Sender:TObject);

implementation

procedureMemo1OnBeforePrint(Sender:TObject);

begin

Memo1.Text:='test';

end;

procedureMain;

begin

end;

end.

生成報(bào)表:

生成報(bào)表是ReportMachine依據(jù)報(bào)表模板,對數(shù)據(jù)源進(jìn)行加工處理生成最終的報(bào)表并能在點(diǎn)擊“預(yù)覽”按鈕

后進(jìn)行預(yù)覽的過程。在ReportMachine中打算好的報(bào)表是一組對象的集合,描述報(bào)表處理后各頁面所包含的內(nèi)

容。這允許你可以修改生成的報(bào)表頁面,通過在設(shè)計(jì)器中調(diào)用所需的頁面。除此之外,還可以描述在預(yù)覽窗

口中鼠標(biāo)點(diǎn)擊對象的反應(yīng)。這將讓你更簡潔地組織你的工作(在一個報(bào)表對象點(diǎn)擊可以產(chǎn)生一個更具體的新

報(bào)表)。

4ReportMachine的預(yù)覽窗口類似于MicrosoftWord:在一個窗口中可以看到多個頁面,并且可用用鼠標(biāo)

拖動,須要的話,可以通過雙擊調(diào)出編輯器修改當(dāng)前頁。

職工工資發(fā)放一覽表

打印日煙:2002-1-21

旗底發(fā)

姓名初'7出生年月總性

招其它

溫馨提示

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

最新文檔

評論

0/150

提交評論