亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 編程 > Delphi > 正文

Report Machine(RM)報表控件簡單用法-delphi

2019-11-06 08:03:50
字體:
來源:轉載
供稿:網友

RM(Report Machine)是一個功能強大的Delphi報表控件包。使用它可以制作出非常復雜的報表。下面講述最簡單的用法:

在Form上放上兩個數據庫控件:ADOConnection和ADOQuery設置好ADOConnection的ConnectionString。LoginPRompt=False。ADOQuery的Connection指向ADOConnection。ADOQuery的SQL設置好數據查詢語句。

在Form上放上兩個RM報表控件:RMDBDataSet和RMReport。RMDBDataSet的DataSet指向ADOQuery。RMReport的DataSet指向RMDBDataSet。

(如果想使最終生成的應用程序具備報表設計能力,還需要放上RMDesigner控件,不需要設置任何屬性)

雙擊RMReport控件,開始設計報表模板。

對于一般比較規則的報表,只需向模板中加入四個Band對象,分別是:1)、頁標頭:通常用來顯示報表名稱,時間等2)、主項標頭:通常用來顯示欄目名稱。3)、主項數據:用來顯示數據。4)、頁注腳:用來顯示頁號,日期等。

設計好的模板可以保存在DFM中,也可以保存到獨立的模板文件中,擴展名為RMF,運行時調入。下面給出幾個代碼片斷:

procedure TBrowseForm.Button5Click(Sender: TObject);varRMReport:TRMReport;beginif ADOQuery1.IsEmpty thenExit;tryRMReport := TRMReport.Create(Self);RMReport.LoadFromFile('Match.rmf');RMReport.PrepareReport;RMReport.ShowReport;finallyRMReport.Free;end;end;

procedure TForm1.Button1Click(Sender: TObject);beginRMReport1.ShowReport;end;

// 設計報表模板procedure TForm1.Button2Click(Sender: TObject);beginRMReport1.LoadFromFile('TTT.rmf');RMReport1.DesignReport;end;

對于大多數規則的報表,以上知識就足夠了。但這只是RM最簡單的用法,遠遠沒體現出RM功能的強大。

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

1)、數據可以來自數據庫,也可以來自其它任何地方,如文件中、內存中等。2)、不一定需要預先制作好模板,可以在運行時刻通過代碼生成模板,這對于數據中字段個數不定的情況非常有用。

RM雖然功能強大,但用起來并不覺的很復雜,它是我見過的為數不多的報表控件中最好的一個。

1.對于一張紙要兩面打的報表你有什么好辦法?打印時可以選擇打奇數頁還是打偶數頁。2.怎么能在一個頁面中打印固定的條數,另外最后一頁記錄不夠時怎么打出空白的格子出來啊.固定條數:設置LinesPerPage空白格子:設置AutoAppendBlank=True3.怎樣屏蔽雙擊報表進入設計報表的界面?RMReport1.ModifyPrepared := False4.怎樣在報表中增加表合計???可以放在標題欄,頁面設置中選"兩遍報表"匯總框的TotalCalc=True即可5.我想用代碼把參數傳遞給報表中的某一個TRMMemoView該怎么做?RMReport1.FindObject(‘Memo1‘).Memo.Text := ‘ddddd‘或者RMVariables[‘a1‘] := ‘ddddd‘; //這樣就可以在報表中使用變量‘a1‘了。6.如何能夠不打印重復內容?Suppres=True7.如何讓打印預覽時雙擊不能進入報表編輯器!設置RMReport.ModifyPreview=False8.如何在報表程序中控制MEMO的邊框是否顯示在delphi中:memo1.LeftFrame.Visible := Falsememo1.TopFrame.Visible := False;memo1.RightFrame.Visible := False;memo1.BottomFrame.Visible := False在報表的script中memo1.FrameTyp := 15; //這個參數多試幾次就知道如何設置了FrameTyp := 0; //不顯示9.怎樣改變page的名稱和控制它顯示但不打印可以,在Page1的OnBeforePrint中beginPage1.Visible := True;Page1.Visible := False; //不顯示end;10.Report Machine中,如何強制每3行一個表格設置主項數據欄:LinesPerPage=3如果三人一行有辦法:設置主項數據欄的Columns=3用分組打印,分組條件: NowLine > 3在分組標頭的OnBeforePrint:beginNowLine := 1;end;在主項數據的OnBeforePrint:beginNowLine := NowLine + 1;end;11.能否只顯示分組統計值而不顯示分組數據?可以,設置主項數據欄:Visible=False統計框:CalcNoVisible=True12.能否只對超過長度的單條記錄進行折行?可以,設置文本框:Stretched=True; Wordwrap=True設置文本框所在的欄:Stretched=True; Breaked=True13.如何實現打印預覽的問題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.頁邊距改變以后,所有控件應該相應的改變位置。需要在頁面設置中不選"縮放到可打印區域"頁面居中或RMReport1.Pages[0].pgMargins := ; //這樣試試17.如何從導入一個rtf文件作為TRMFormReport的PageHeadervarTempStream : TMemoryStream;beginTempStream := TMemoryStream.Create;RichEdit1.Lines.SaveToStream(TempStream);TempStream.Position := 0;RMFormReport1.PageHeader.Caption.LoadFromStream( TempStream);TempStream.Free;end;18.怎樣確定報表模版目錄?設置TRMDesigner的TemplateDir19.我想動態設"虛擬數據集"該怎么設!(RMReport1.FindObject(‘Band1‘) as TRMBandView).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 品牌 ThenMessageBox(品名);23.每頁只打10條記錄怎么處理?。恐黜棓祿贚inePerPage=1024.怎么實現主項數據的統計?。???最好用欄目注腳欄,在上面放統計框,然后設置CalcType即可25.動態生成報表時,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 能象Microsoft Excel實現 a3=a1+a2嗎?可以,a3內容[memo1.CalcValue + memo2.CalcValue]29.使用總頁數,將CalcMemoView放在頁頭,組頭,欄目頭時需要選擇"兩遍報表",對打印沒影響,只打印一遍.30.如何打印中括號如: [2002]在memoview的OnBeforePrint中beginmemo := ‘[2002]‘;end;或者把‘[‘,‘]‘定義成變量:RMVariables[‘a1‘] := ‘[‘;

RMVariables[‘a2‘

report machine開發使用手冊-創建報表2010-02-10 13:08

創建報表:

創建一個報表由下面幾步組成:

1、選擇數據:選擇報表中用到的數據源

2、設計報表模板:利用區域(稱為Band)將報表分布不同的部分,決定報表樣式。

3、處理:用報表內置腳本語言或在delphi中對報表中用的的數據,報表模板等進行處理

4、生成報表:根據報表模板+數據源,生成最終的報表。

選擇數據源:

大多數報表需要的數據都是來自數據庫。TTable和TQuery組件可以作為報表的數據源??偟膩碚f它可以使用任何一個從TDataSet組件繼承的子類。每個報表中用到的TDataSet都要有一個與之對應的TRMDBDataSet。

除了TDataSet,ReportMachine頁可以使用任何數據源(數組,文件,字符網格等等)。在這種情況下,程序必須自己控制非數據庫源的存取。你可以用TRMUserDataSet方便地把數據傳送到報表中。

設計報表模板:

報表模板本身就是描述怎樣可以看到正確的報表。每個報表模板由多個區域組成,ReportMachine把這些區域稱為"Band"。有兩種類型的Band:固定區域Band(比如報表標題,頁標頭,頁注腳等等)和用于顯示數據集中所有記錄的Band(比如主項數據欄)。數據Band需要聯接到數據源,內容是數據源中的記錄。

在ReportMachine中提供了報表開發的可視化環境(報表設計器,這個設計器也可以提供給你的End User,以方便你的End User自己修改報表模板)用于創建報表。報表設計器功能強勁,簡單又易于使用。報表設計器的界面由帶有浮動的工具欄,可以自由地改變它們的位置,使用對象觀察器(Objects Inspector)可以控制對象的屬性,類似于Delphi IDE中的那個。

處理:

在生成報表的時候,需要對輸入的數據進行某種處理(比如格式化),報表模板需要某些修改(比如報表模板中某個文本框需要改變字體)。

實現這個處理可以在Delphi中的TRMReport的事件處理中編寫代碼,這個方法并不通用,因為它不允許在Delphi外創建報表而無需重新編譯。這就是為什么在ReportMachinet中內置腳本語言,ReportMachine的內置腳本語言非常類似于Object Pascal,功能強大。用這個腳本語言編寫事件處理代碼,這就可以讓你創建復雜的處理而無需在Delphi中編寫代碼,配合報表設計器,不需要修改某個報表而重新編譯項目??梢詫崿F報表于你的項目分離。

報表腳本例子:

unit Report;

interface

procedure Memo1OnBeforePrint(Sender: TObject);implementation

procedure Memo1OnBeforePrint(Sender: TObject);beginMemo1.Text := 'test';end;

procedure Main;begin

end;

end.

生成報表:

生成報表是ReportMachine根據報表模板,對數據源進行加工處理生成最終的報表并能在點擊“預覽”按鈕后進行預覽的過程。在ReportMachine中準備好的報表是一組對象的集合,描述報表處理后各頁面所包含的內容。這允許你可以修改生成的報表頁面,通過在設計器中調用所需的頁面。除此之外,還可以描述在預覽窗口中鼠標點擊對象的反應。這將讓你更容易地組織你的工作(在一個報表對象點擊可以產生一個更詳細的新報表)。

在ReportMachine的預覽窗口類似于Microsoft Word:在一個窗口中可以看到多個頁面,并且可用用鼠標拖動,需要的話,可以通過雙擊調出編輯器修改當前頁。


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表

圖片精選

亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
国产精品久久久久久久久久小说| 国产97色在线|日韩| 国产精品免费视频xxxx| 精品国模在线视频| 欧美在线播放视频| 国产精品第2页| 欧美精品一区二区免费| 久久久精品久久久| 国产精品视频白浆免费视频| 亚洲丁香婷深爱综合| 日韩免费av在线| 久久久视频免费观看| 色先锋资源久久综合5566| 亚洲天堂日韩电影| 日韩中文在线不卡| 国产精品久久久久久久久影视| 久久精品亚洲热| 国产精品户外野外| 日韩成人黄色av| 岛国视频午夜一区免费在线观看| 在线播放精品一区二区三区| 亚洲最大中文字幕| 国产成人一区二区三区电影| 国产精品久久久久久久久久小说| 在线丨暗呦小u女国产精品| 日韩中文字幕在线播放| 亚洲人精品午夜在线观看| 日韩高清电影好看的电视剧电影| 欧美综合一区第一页| 2020欧美日韩在线视频| 欧美日韩精品国产| 一区二区三区精品99久久| 亚洲精品自拍偷拍| 黑人巨大精品欧美一区免费视频| 午夜欧美不卡精品aaaaa| 国产裸体写真av一区二区| 亚洲欧美一区二区三区四区| 91sao在线观看国产| 久久91亚洲人成电影网站| 日韩一区二区av| 久久久久久久久久久免费精品| 欧美日韩亚洲网| 欧美日本亚洲视频| 国产成人jvid在线播放| 久久精品久久久久| 久久人人爽亚洲精品天堂| 久久久久成人网| 午夜剧场成人观在线视频免费观看| 国自产精品手机在线观看视频| 亚洲精品美女免费| 日韩精品视频在线| 九色精品免费永久在线| 欧美成人精品在线播放| 精品国内产的精品视频在线观看| 日韩激情第一页| 国产欧美精品一区二区三区-老狼| 亚洲免费人成在线视频观看| 57pao精品| 97在线观看免费| 国产精品久久久久久久app| 欧美大片在线影院| 黑人巨大精品欧美一区二区一视频| 国产不卡av在线免费观看| 日韩欧美在线第一页| 亚洲性生活视频在线观看| 亚洲免费视频在线观看| 久久久999精品| 91情侣偷在线精品国产| 丝袜亚洲另类欧美重口| 中文字幕亚洲在线| 亚洲自拍在线观看| 亚洲国产中文字幕久久网| 国产精品久久久久久久久男| 欧美性生交xxxxx久久久| 亚洲国产精品大全| 国产ts一区二区| 国产精品私拍pans大尺度在线| 精品亚洲国产成av人片传媒| 久久久久久高潮国产精品视| 欧洲美女7788成人免费视频| 日韩精品视频在线观看网址| 亚洲四色影视在线观看| 日韩成人黄色av| 精品视频在线观看日韩| 国产精品黄视频| 日韩欧美精品免费在线| 欧洲亚洲在线视频| 亚洲男人第一av网站| 成人国产精品久久久久久亚洲| 日韩av影院在线观看| 国产精品精品久久久| 色婷婷综合久久久久| 国产丝袜高跟一区| 欧美日韩亚洲天堂| 精品亚洲一区二区三区在线观看| 欧美成人精品h版在线观看| 欧美丝袜一区二区| 精品性高朝久久久久久久| 欧美重口另类videos人妖| 亚洲美女中文字幕| 亚洲黄页视频免费观看| 国产精品久久久久久影视| 夜夜躁日日躁狠狠久久88av| 日韩一区二区三区在线播放| 久久影院中文字幕| 欧美成人剧情片在线观看| 久久6免费高清热精品| 国产精品亚洲一区二区三区| 欧美日韩激情网| 亚洲在线www| 国产欧美亚洲视频| 911国产网站尤物在线观看| 疯狂做受xxxx欧美肥白少妇| 久久久在线观看| 国产69精品久久久| 青草青草久热精品视频在线观看| 国产亚洲精品成人av久久ww| 91免费精品国偷自产在线| 欧美日韩免费观看中文| 久热精品视频在线| 精品国产一区二区三区久久狼黑人| 日韩激情av在线播放| 91麻豆国产精品| 精品欧美激情精品一区| 国产精品成人av性教育| 亚洲高清福利视频| 色阁综合伊人av| 欧美最猛性xxxx| 97av在线视频| 日韩在线免费观看视频| 91色琪琪电影亚洲精品久久| 日韩视频在线免费观看| 欧美激情区在线播放| 啊v视频在线一区二区三区| 亚洲人成绝费网站色www| 91成人在线观看国产| 欧美黑人xxx| 精品动漫一区二区| 欧美激情亚洲自拍| 在线播放日韩专区| 亚洲爱爱爱爱爱| 欧美特黄级在线| 国产精品入口夜色视频大尺度| 日韩欧亚中文在线| 日韩精品极品在线观看| 日韩欧美福利视频| 欧美日韩免费观看中文| 中文字幕亚洲无线码在线一区| 日韩精品极品在线观看播放免费视频| www.欧美三级电影.com| 亚洲国产精品成人一区二区| 欧美裸体xxxx极品少妇软件| 日韩中文在线观看| 亚洲影视中文字幕| 国产99久久精品一区二区| 久久久亚洲福利精品午夜| 日韩欧美精品网址| 日韩电视剧免费观看网站| 国产精品福利在线观看| 欧美性感美女h网站在线观看免费| 一本一道久久a久久精品逆3p| 91中文在线观看| 国产精品久久久一区| 国产999在线|