FastReport.Net 經常使用功能總彙

.經常使用控件

 

      文本框:輸入文字或表達式sql

      表格:設置表格的行列數,輸入數字或表達式編輯器

      子報表:放置子報表後,系統會自動增長一個頁面,你能夠在此頁面上設計須要的報表。系統在打印處理時,先按主報表打印,當碰到子報表時會自動轉入子報表的頁面進       行打印處理,完成後繼續執行主報表打印的工做,因此咱們又稱之爲嵌套報表。工具

      複選框:根據布爾表達式是否爲ture來顯示是否 √(如性別男女)學習

      條形碼:綁定掃描碼(如靜滴單),通常TypeCode128 spa

              交叉表:Matrix設計

              頁面設置:設置紙張大小及頁邊距3d

              邊框設置:設置是否顯示上下左右邊框以及邊框線條的設置code

              邊框寬度:下拉三角能夠選擇邊框寬度設置orm

 

.經常使用報表欄

      

報表標題區(ReportTitle):僅在第一頁顯示在紙張的上部。通常用於打印報表的標題等信息。blog

 

報表合計(ReprotSummary):僅顯示在全部數據的最後末尾。通常用於打印統計信息等。

 

頁眉(PageHeader):顯示在每頁的最上部。經過設置你可讓它置於報表擡頭之上或者之下。通常用於打印頁眉信息等。

 

數據區(data):綁定數據源顯示數據。

 

數據首(Header):顯示在全部數據源的最上部,僅打印一次。通常用於顯示相關摘要信息,與頁眉的區別是當該頁無數據時,數據首的內容不顯示且僅顯示一次。

 

數據尾(Footer):顯示在全部數據源的最下部,僅打印一次。通常用於顯示全部數據的合計信息。

 

欄首(ColumnHeader):顯示在每頁數據源的上部,它在每頁均顯示。所以通常用於打印數據源字段的欄目信息。

 

欄尾(ColumnHeader):顯示在每頁數據源的下部,它在每頁均顯示。通常可用於統計顯示每頁數據的頁合計信息。

 

分組頁眉(GroupHeader):用於顯示分組數據,在每個分組開始顯示。

 

分組頁腳(GroupFooter):與羣組首一一對應。通常用於顯示分組數據的統計信息。

 

頁腳(PageFooter):顯示在每頁的最底部。通常用於打印頁序等信息。

 

.經常使用功能

 

1.添加報表欄

 

將光標置於「設置報表攔」彈出「段編輯器」,再選擇添加或刪除段。

 

添加段的時候要注意:

 

     1)選擇添加段的位置,如想添加子數據區,則選中要添加父數據區,點擊添加「數據區」便可,如圖所示:

                   

       

       2)若添加的數據區與原數據區平級,任選段(除數據區外),點擊添加「數據區」便可,如圖所示:

                   

         

2.添加數據源

 

選擇菜單欄的「數據」,在下拉框中選中「選擇數據源」,彈出「選擇報表數據」框,裏面會列出已經傳出的數據源,勾選須要的數據源,點擊肯定,此時界面右邊「數據」列表中即顯示當前所選中的數據源,選中數據源,右鍵選擇「查看數據」,便可顯示當前數據源中所含有的數據:

                  

                 

 

3.添加系統變量

對於部分變量可能取自當前系統,如時間,頁碼,序號等,此時選擇系統變量中相應的變量便可,如圖:

                                                               

4.添加彙總

對於一些報表,須要在數據尾添加合計行,此時須要手動添加合計,彈出彙總項編輯器,再在彙總項編輯器中添加彙總數據源。

                                        

在彙總名稱一欄能夠自命名一個合計名稱;

                                         

在「數據列或公式」中能夠選擇彙總的數據源;

在「計算段中每一列」能夠選擇參與彙總的數據區;

在「計算知足下面條件的行」中能夠作過濾,在寫total時會出現計算某種類型的和,好比計算總人次分在職和退休之和,此時在寫total時就須要寫限制條件進行過濾。如[Table1.GRXZ]=="1";如圖:

                                                         

5.添加過濾、排序、分組

雙擊數據區,彈出「編輯數據段」,能夠進行數據源的選擇、排序、過濾。如圖:

                                           

 

.經常使用屬性

1.頁面設置

用於顯示總的頁數(TotalPages),例如:頁腳顯示 第1頁/共20頁。系統第一遍掃描報表時計算出TotalPages,而後第二遍實際 生成報表。若是不使用Double pass,則TotalPages返回0,因此必須設置report的屬性doublepass爲true;

設置方法:點擊報表樹,單擊報表樹最頂端圖標,點擊屬性,選擇doublepass爲true;也可直接在屬性框中選擇report,進行相關屬性設置!如圖:

                                          

2.打印設置

對於套打模板,樣式在紙張上已經固定了(如處方箋、收費發票),只須要按照原定的樣張將數據填充進去,在繪製的時候,須要用直尺良好尺寸,爲了可以有一個更好的效果,通常把頁面上已經存在不須要再打印出來的也畫出來,可是須要設置屬性「printable」爲false:表示打印不顯示,若想在預覽的時候就不要看到那些不須要打印的,則需設置屬性「Visible」爲false:表示預覽不顯示。

3.格式設置

報表中有的數據須要按照規定的格式去顯示,如須要把時間的格式改變一下,選中當前數據,右鍵單擊,點擊format(或在屬性欄中選擇 format),在彈出的選擇格式框中選擇須要的格式。若format中沒有須要的格式,則須要在custom中自定義,好比我須要把時間設置爲 2012-09-09 11:22:23,此時能夠在custom中填時間顯示格式:yyyy-MM-dd HH:mm:ss。注意有的須要顯示上午仍是 下午,表示上午下午的格式是tt,具體相關設置能夠參照已存在的format進行編輯!如圖:

                                                  

              

4.顯示設置

對於有些數據,名稱較長,在行高固定的狀況下,系統默認爲自動換行,此時二者均不能徹底顯示不能徹底顯示,好比,此時按照客戶的需求,若要求自動截斷,則設置「WordWrap」爲false(即不自動換行),若要求所有顯示,則須要讓該數據有按照單元格大小自動縮放功能,設置屬性「AutoShrink」爲fontsize或者fontwith

5.邊框設置

邊框能夠經過工具欄設置,此時設置邊框是根據外界框的大小來顯示,下邊框的設置也能夠經過設置下劃線,此時下邊框的長度是根據數據顯示的長度來決定,還能夠設置屬性「underline」爲true,此時也是根據邊框的大小來顯示的。

6.表格設置

1)表格的行列數:經過屬性設置ColumnCount(列)和RowCount(行)設置。

2)合併/分割單元格:選中須要合併/分割的單元格,右鍵單擊,選擇「合併單元格」/「分割單元格」,如圖:

                                               

 

3)插入行列:選中某行、某列,右鍵單擊,選擇須要插入的位置,如圖:

                                    

 

.經常使用代碼

 

1.在文本編輯器中編寫

 

Fastreport軟件自身帶了不少功能實現數據的轉換,直接在編輯框中便可實現。

                             

 

經常使用的功能有:              

                                        選擇語句IFF;控制語句Switch

                             截取字符串語句SubString,在text列表中選擇SubString

                                 截取時間語句Date&Time

                                         算數運算語句Mathematical:經常使用的有Abs(取絕對值)。

 

注意,在運用這些function的時候,在文本編輯器右下角會顯示當前功能的用法規則,如圖:

 

若當前數據類型不知足規則,則須要利用上面的轉換語句,將其轉換成與規則相符的數據類型,才能利用這些function,不然會報錯。

 

2.code區編寫

 

有些數據的轉換在編輯器中不能直接實現,須要在code區域編寫代碼。寫代碼以前須要定義到相應的事件上:選中須要寫代碼的數據所在的報表攔,在屬性設置中點擊,在事件中雙擊須要用到的事件,自動跳轉到code區,且會出現一行代碼,相似於private void GroupHeader1_BeforePrint(object sender, EventArgs e)

 

    {

 

    }

 

報表中經常使用事件有BeforePrint,AfterPrint。

 

3.經常使用代碼

 

1)Data1.InitDataSource();//數據初始化,用於數據跑兩遍

 

2)有的須要把年月日進行分離顯示,此時須要選取時間並選擇只顯示時間的某部分,好比某個DateTime2類型的參數值爲20120919,現需 要將其年月日分開,分別以__年__月__日顯示,須要利用fastreport提供的功能進行分離,即1中的方法,可是注意此種方法只能用於數據類型爲 datetime的數據;對於非datetime型的數據,能夠寫代碼取位數或者進行強制轉換,以string爲例:

 

private void ColumnFooter1_BeforePrint(object sender, EventArgs e)

 

    {

 

      string  tbrq=  ((String)Report.GetColumnValue("Table1.TBRQ"));

 

      if (!String.IsNullOrEmpty(tbrq))

 

      {

 

        Text9.Text = tbrq.Substring(0,4) + "年" + tbrq.Substring(4,2) + "月"+tbrq.Substring(6,2)+"日";

 

      }//字符串型用SubString,Substring(0,4)表示從第0位開始,取出四位做爲年。

 

3)小數位的控制:能夠用format對全部數據的小數位進行控制,但只對於數值型的數據纔有效,可是對於string型的則須要用語句進行實現,如:

 

decimal sl= ((Decimal)Report.GetColumnValue("dtfee.Quantity");

 

Cell51.Text=sl.ToString("0.00");// "0.00"若不填則按照默認值顯示,後面多少個零顯示出來的數據即爲有 多少個小數;對於數量,有時要求要求有小數時則顯示小數,無小數時則顯示整數,此時只須要將"0.00"改成"0.##"便可,##的個數也是能夠自定義 的,表示顯示的最多的小數位。

 

特殊功能彙總

 

.打印中實現空表格填滿剩餘的空行,達到指定的行數。

 

1.單頁顯示指定行數

 

爲了能讓數據在未填滿的前提下,該頁也能顯示指定的行數N,須要在數據區(data)添加子報表(child),且須要設置其屬性最少數據行(CompleteToNRows)爲N。

 

 

 

 

                             

2.按照數據行數顯示指定行數

 

按照1的設置,預覽的時候會發現該操做只會控制首頁知足條件,當數據的行數超過一頁時,後面頁均按照有多少數據顯示多少行,此時須要寫代碼控制。

 

如:

 

private void PageHeader1_AfterPrint(object sender, EventArgs e)

 

{      if (Engine.FinalPass)

 

      {

 

        Child1.CompleteToNRows = ((Int32)Report.GetVariableValue("TotalPages")) * 20;

 

      }//按照總頁數*20來控制CompleteToNRows。

 

}

 

此時報表攔中的child區CompleteToNRows設置爲1,如圖:

.本頁合計和本期合計

1.本頁合計

在每頁均會顯示,且統計當前頁相關數據的和。此時勾選「打印後重置」項,再將合計項移到相應的位置便可。如圖:

 

 

 

2.本期小計

在每頁均會顯示,可是指在數據的最後一頁顯示合計的數據,統計當前報表的全部數據和;須要寫total來計算當前值,只是本期小計中打印後重置這個屬性不勾選,因爲本期小計只在最後一頁顯示數據,其餘頁面上數據區均爲空,須要代碼控制,例如:

private void ColumnFooter1_BeforePrint(object sender, EventArgs e)

    {

      if(((Int32)Report.GetVariableValue("Page"))!= ((Int32)Report.GetVariableValue("TotalPages")))//設置顯示本期小計須要的條件,即當前頁與總頁數相 一致的時候,開始顯示數據,不然爲空。

.交叉表的用法 (演示)

參照模板    收費員結帳彙總報表.frx

注意交叉表的行列寬度不需設置,自動按照數據長短進行設置。

.套打模板(演示)

參照模板   門診掛號發票(套打).frx,處方箋(綜合).frx

掛號發票的模板

注意,在周浦項目中,因爲處方箋模板不同,在醫生工做站會根據選擇調用不一樣的模板,此時是將幾種不一樣的模板組合在一塊,再根據標誌調用相應的模板。

.超連接模板(演示)

報表&單據導入

一. 單據導入

單據即由開發直接傳入數據源,在模塊中實現單據的繪製。

步驟:找到相對應的模塊,點擊打印,進入空白模板,再進行設計。對於已經繪製好的模板,能夠直接導入,但注意,必須在本地把數據源清空,再導入,不然將會出現data區重複,致使命名出現異樣,如data11

有些模板即便清空數據源導入到模板,仍然會報錯,則須要從新新建一個模板,再將原模板的東西複製進去便可。

相關聯的表有:select * from Common.ReportTemplate

.報表導入

報表即由存儲過程實現,而後再對應到相應的存儲過程,去存儲過程當中的數據。

步驟:報表管理à新建報表à填寫相應的信息後保存(演示)à繪製模板

注意:填寫信息時要綁定正確的存儲過程,同時經過前臺改變相應的界面顯示效果。

添加數據源:選擇sql,再選擇相應的存儲過程,肯定便可,對於新建的模板,模板一欄不須要選擇,若選擇了則會調用之前存在的模板,同時改動的話也會影響之前的模板。

相關聯的表有:

select * from Common.Report 

select * from Common.ReportDataSource

select * from Common.ReportTemplate

select * from Common.ReportFolder

select * from Common.ReportParameter

 

說明:fastreport自身帶有Demo,裏面不少功能都是能夠供你們學習參考的。

相關文章
相關標籤/搜索