版權(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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024年版高校專利技術(shù)轉(zhuǎn)讓合同
- 2024-2030年中國大棗飲料行業(yè)銷售模式及投資盈利預(yù)測報(bào)告
- 2024-2030年中國城市電視臺行業(yè)發(fā)展策略及投資運(yùn)作模式分析報(bào)告
- 2024年農(nóng)業(yè)產(chǎn)業(yè)投資合同擔(dān)保協(xié)議3篇
- 2024年校園水電設(shè)施改造與維護(hù)服務(wù)合同3篇
- 馬鞍山師范高等??茖W(xué)校《物聯(lián)網(wǎng)應(yīng)用概論》2023-2024學(xué)年第一學(xué)期期末試卷
- 2024年創(chuàng)新創(chuàng)業(yè)項(xiàng)目投資評估與咨詢服務(wù)協(xié)議3篇
- 2024年度自動駕駛汽車勞動合同與聘用合同3篇
- 2024年標(biāo)準(zhǔn)化信息技術(shù)外包服務(wù)合同一
- 2024年度行政合同科技創(chuàng)新合同糾紛救濟(jì)與保障協(xié)議2篇
- 《景點(diǎn)導(dǎo)游》教案
- 德勤公司概況簡介
- DB32∕T 2156-2012 電梯能耗測試及能效分級
- 瀝青路面日常養(yǎng)護(hù)及維修施工要點(diǎn)(大量附圖共143頁)
- 《色彩基礎(chǔ)知識》PPT課件(詳解)
- 《保健按摩師》(二級)理論知識鑒定要素細(xì)目表
- 甘蔗制糖簡介
- 三秦出版社五年級上冊綜合實(shí)踐教案
- 屋頂分布式光伏項(xiàng)目安全文明施工控制措施
- 水泥保證供應(yīng)實(shí)施方案及服務(wù)承諾書
- 2022機(jī)要密碼工作總結(jié)機(jī)要室工作總結(jié).doc
評論
0/150
提交評論