欧美日韩亚-欧美日韩亚州在线-欧美日韩亚洲-欧美日韩亚洲第一区-欧美日韩亚洲二区在线-欧美日韩亚洲高清精品

金喜正规买球

汽車業(yè)務(wù)管理系統(tǒng)(VBMS)使用FastReport設(shè)計報表(二)

原創(chuàng)|其它|編輯:郝浩|2012-09-03 14:05:58.000|閱讀 761 次

概述:根據(jù)報表需求的不同,你可以利用多種報表方式完成報表。下面我將結(jié)合VBMS中已經(jīng)實現(xiàn)的報表范例講述各種報表的設(shè)計方法和思路。

# 界面/圖表報表/文檔/IDE等千款熱門軟控件火熱銷售中 >>

汽車業(yè)務(wù)管理系統(tǒng)(VBMS)使用FastReport設(shè)計報表(一)

一、 報表設(shè)計與范例

根據(jù)報表需求的不同,你可以利用多種報表方式完成報表。下面我將結(jié)合VBMS中已經(jīng)實現(xiàn)的報表范例講述各種報表的設(shè)計方法和思路。FastReport

1、簡單報表(Simple list)

*報表格式

一般由報表抬頭、頁首、頁腳(或者欄首、欄尾,或者頭、尾)、主項數(shù)據(jù)組成。

*報表范例

#商品檔案列表

步驟如下

1. 新建數(shù)據(jù)源(FIB Components->FIB Query),起名tblProduct。(修改Name屬性)

2. 獲取所需數(shù)據(jù)(tblProduct->SQL)。

3. 依次添加ReportTitle、PageHeader、MastData、PageFooter區(qū)域。

4. 設(shè)置MastData區(qū)域連接的數(shù)據(jù)源->tblProduct。(雙擊MastData區(qū)域)

5. 在ReportTitle中添加文本對象,錄入報表名稱。

6. 在PageHeader中添加若干文本對象,錄入字段中文名稱。

7. 在MastData中添加若干文本對象,并連接該文本對象至對應(yīng)數(shù)據(jù)字段。(可以從下拉框中選取)

8. 在PageFooter中添加文本對象,錄入頁碼。(使用FastReport中的系統(tǒng)變量 [Page])

SQL語句:

SELECT * FROM TB_PRODUCT;

《備注:一般報表都是從簡單開始構(gòu)建,然后逐步細化后得出的。因此可以利用FastReport報表中的新建報表向?qū)Чδ?菜單->文件->新建…->標準報表向?qū)?快速搭建起一個報表的雛形,而且他會自動將各個字段排列整齊,這樣可以節(jié)約一些時間。

如果希望在報表抬頭打印本公司的名稱以及電話等信息,可以使用自定義變量(Custom)中的相關(guān)變量,該變量內(nèi)容為VBMS在參數(shù)設(shè)置中定義的本公司資料。

在向PageHeader中添加中文欄目和向MastData中添加數(shù)據(jù)字段時,你可以直接用鼠標從右側(cè)的數(shù)據(jù)列表框中拖拽相應(yīng)字段到相應(yīng)的區(qū)域中。你可以將欄目和字段一起建立,當(dāng)然數(shù)據(jù)列表框下方的多選框要打勾。

可以在PageFooter中添加頁碼(Page)和總頁數(shù)(TotalPages)。一般在文本對象中的格式為:共[TotalPages]頁第[Page]頁。但是需要聲明的是,必須將報表設(shè)置成兩遍報表(Double pass)模式后TotalPages變量才起作用否則為0。這很好理解,當(dāng)報表引擎(Engine)執(zhí)行第一遍時并不知道數(shù)據(jù)將充滿幾頁紙,只有當(dāng)?shù)谝槐橥瓿珊蟛庞嬎愕贸觯虼诵枰閳蟊聿拍艽蛴〕隹偟捻摂?shù)。因此兩遍報表在FastReport中是一個重要概念,對于某些特殊報表可能會用到。例如:需要將統(tǒng)計的合計值打印在所有明細之前而不是之后。》

技巧

前面說過,你可以利用字段別名修改英文的字段名稱為中文名稱,這樣對于系統(tǒng)不很熟悉的人也可以看得懂報表。這里介紹另一個方法,使用該方法既可以達到修改中文名稱的目的,又可以令報表制作更加快捷。例如還是上面這張商品檔案列表。我們可以直接在SQL語句中加入中文別名。如下所示:

SQL語句(中文別名需要用雙引號包含)

SELECT PRODUCTNUMBER AS "商品編號",

PRODUCTNAME AS "品名規(guī)格",

PRODUCTUNIT AS "單位",

SELLPRICE AS "零售價"

FROM TB_PRODUCT

這樣做的好處,一是報表中的數(shù)據(jù)字段均為中文容易理解,二是在執(zhí)行上面6、7步驟時,你可以拖拽右側(cè)的數(shù)據(jù)字段同時建立欄目頭和字段,而此時欄目頭中也跟隨著變成了中文,避免了重新修改成中文的麻煩。當(dāng)然由于vbms中的報表數(shù)量龐大,因此并未采用這種方法。

*報表中的變量

FastReport中的變量分為三種。

#系統(tǒng)變量

系統(tǒng)定義的一些與報表打印相關(guān)的變量,這里介紹幾個常用的變量。

  • Date --- 系統(tǒng)當(dāng)前日期
  • Time --- 系統(tǒng)當(dāng)前時間
  • TotalPages --- 總頁數(shù)(必須設(shè)置Double pass)
  • Page --- 當(dāng)前頁碼
  • Line --- 當(dāng)前行序號
  • Line# --- 也是當(dāng)前行序號,但區(qū)別是在一個新的數(shù)據(jù)區(qū)域(Band)內(nèi)該變量將重新計數(shù)。

#自定義變量(Custom)

自定義變量是由VBMS系統(tǒng)傳入到報表系統(tǒng)中的。

#編程(Code)中使用的全局變量

你可以在Code頁的起始處定義一些需要的全局變量。

例如:

var

S: string;

這里S就成了一個全局的字符型變量,你可以對它進行賦值、取值。也可以在文本對象中引用它,格式為:[<S>]。

《備注:其實在FastReport報表系統(tǒng)中,所有對象諸如頁(Page)、區(qū)域(Band)、文本對象(TextObject)、對話框控件、數(shù)據(jù)源字段、系統(tǒng)變量、自定義變量等,你均可以在文本對象中顯示他們的值,只是引用他們的方式不同罷了。

例如:通過文本對象(TextObject)

打印文本編輯框的內(nèi)容可以引用Text屬性,格式:[Edit1.Text]。

打印公司名稱可以引用自定義變量,格式:[CompanyName]。

打印數(shù)據(jù)字段值,格式:[tblProduct."商品編號"]。其實數(shù)據(jù)字段也可以看成變量。

打印自定義的全局變量,格式:[<S>]。這里S需要用尖括號包含,其實一般情況下對于變量而言均需要用尖括號包含,只是FastReport對于非自定義的變量(不是在Code中定義的)有了一個預(yù)先判斷,允許省略尖括號而已,你加上尖括號也不會出錯。但在編程(Code)中所有變量被引用就一定需要有尖括號。

特別提醒:在文本對象中打印所有變量都必須用中括號[]將變量包含起來。》

2、主從報表(Master Detail)

*報表格式

一般由報表抬頭、頁首、頁腳(或者欄首、欄尾,或者頭、尾)、主項數(shù)據(jù)、細項數(shù)據(jù)組成。

*報表范例

#銷售單據(jù)列表

步驟如下

1. 新建2個數(shù)據(jù)源(FIB Components->FIB Query),起名tblOrder、tblItem。

2. 獲取所需數(shù)據(jù)(tblOrder->SQL、tblItem->SQL)。

3. 依次添加ReportTitle、PageHeader、MastData、Header、DetailData、Footer、PageFooter區(qū)域。

4. 設(shè)置MastData區(qū)域連接的數(shù)據(jù)源->tblOrder,DetailData->tblItem。

5. 在ReportTitle中添加文本對象,錄入報表名稱。

6. 在PageHeader中添加若干文本對象,錄入字段中文名稱(單據(jù)頭)。

7. 在MastData中添加若干文本對象,并連接該文本對象至對應(yīng)數(shù)據(jù)字段。

8. 在Header中添加若干文本對象,錄入字段中文名稱(單據(jù)體)。

9. 在DetailData中添加若干文本對象,并連接該文本對象至對應(yīng)數(shù)據(jù)字段。

10. 在Footer中添加System Text對象,用于顯示金額合計。

11. 在PageFooter中添加文本對象,錄入頁碼。(使用FastReport中的系統(tǒng)變量 [Page])

SQL語句:

#tblOrder

SELECT * FROM TB_ORDER WHERE ORDERTYPE='銷售出庫';

#tblItem

SELECT * FROM TB_ITEM WHERE ORDERID=:ORDERID;

《備注:主從報表的關(guān)鍵是需要關(guān)聯(lián)主數(shù)據(jù)源和從數(shù)據(jù)源。一般情況需要通過以下方式關(guān)聯(lián):

#從數(shù)據(jù)源的SQL語句中一般需要有用于關(guān)聯(lián)的關(guān)鍵字段(外鍵)。例如上例中的ORDERID=:ORDERID。前面的ORDERID為tblItem的外鍵,即明細數(shù)據(jù)通過ORDERID與某一條主項數(shù)據(jù)關(guān)聯(lián)。而:ORDERID為一個變量(在SQL語句中使用<冒號+變量名稱>表示一個變量)。而一般這個變量的名稱(ORDERID)的定義與tblOrder(主項數(shù)據(jù))中的主鍵的名稱相同,即變量名稱定義為:ORDERID而不是:O或者其他。這樣做的目的是系統(tǒng)可以自動進行匹配。

#定義tblItem的屬性Master等于tblOrder。這樣明細數(shù)據(jù)就被主項數(shù)據(jù)所控制了。

#定義tblItem的屬性Params中的變量ORDERID的類型為整型(Integer),值為變量<tblOrder."ORDERID">。當(dāng)你打開Params時,ORDERID變量已經(jīng)默認存在了,這是因為你在tblItem的SQL中定義了這個變量的緣故。將來你可能會在一個數(shù)據(jù)源中定義多個變量,操作方法是相同的。設(shè)置值等于<tblOrder.&quot;ORDERID">表示當(dāng)需要獲取:ORDERID變量的值時,將會從主項數(shù)據(jù)中獲取。這樣當(dāng)主項數(shù)據(jù)的ORDERID發(fā)生變化時,明細數(shù)據(jù)也隨之變化。這個值的選取你可以通過按鈕(fx)更方便的獲取》

*SystemText對象

該對象與文本對象(TextObject)基本上相同,區(qū)別在于使用SystemText可以更加方便的對一個數(shù)據(jù)集進行求和或者其他的操作。雖然你也可以直接在文本對象(TextObject)中使用求和函數(shù)對數(shù)據(jù)集進行求和,不過使用SystemText可以令你不需要記憶許多函數(shù),因為它幫你做了,基本上它就是一個構(gòu)建函數(shù)向?qū)У墓ぞ摺.?dāng)然如果你對FastReport中的函數(shù)比較熟悉,完全可以不必使用SystemText而直接使用TextObject更加快捷。

SystemText的用法如下:

#放置一個SystemText對象到Footer中,用于對銷售明細數(shù)據(jù)中的金額進行求和。

#系統(tǒng)會立即彈出一個對話向?qū)Э颉D憧梢赃x擇三種方式中的一種:系統(tǒng)變量、求和、文本。這里主要將求和,另外兩種方式很好理解(系統(tǒng)變量用于打印時間、頁碼等,而文本與TextObject中一樣)。

#選擇求和(Ageregate value)。選擇函數(shù)->SUM(其他為最大值、最小值、平均值、數(shù)量),數(shù)據(jù)Band->DetailData1(設(shè)置你需要求和的數(shù)據(jù)區(qū)域,這里當(dāng)然是明細數(shù)據(jù)),數(shù)據(jù)庫->tblItem(上一步選擇好后,系統(tǒng)自動會設(shè)定為該數(shù)據(jù)區(qū)域連接的數(shù)據(jù)源),下一步你可以從數(shù)據(jù)字段中選擇需要求和的字段(例如:TotalTaxSum)。或者在表達式中構(gòu)造更為復(fù)雜的求和內(nèi)容(這里暫不講述)。

#按確定后,SystemText中的文本自動生成為[SUM(<tblDetail."TOTALTAXSUM">;,MasterData2)]。當(dāng)你再次雙擊該SystemText,你會發(fā)現(xiàn)對話框中系統(tǒng)默認為文本,而文本內(nèi)容就是上面的內(nèi)容。由此可見,SystemText其實就是TextObject加上函數(shù)向?qū)А?/p>

《備注:大家如果仔細會發(fā)現(xiàn)在求和向?qū)υ捒蛑杏袃蓚€選項,一個是";計算不可見Band的數(shù)據(jù)",一個是"執(zhí)行總數(shù)"。這兩個選項是做什么用的呢?

"計算不可見Band的數(shù)據(jù)":有時候在報表中我們會對數(shù)據(jù)源做一些設(shè)置,例如滿足某些條件的數(shù)據(jù)不顯示出來(例如:維修結(jié)算單打印中僅打印自付內(nèi)容)。那么這個選項可以使得系統(tǒng)在求和時只計算可見的數(shù)據(jù)。

"執(zhí)行總數(shù)":我們知道,對于主從報表中明細的求和,例如銷售明細中商品的銷售金額。該金額是表示本單據(jù)的合計。當(dāng)單據(jù)變化時,這個合計值也隨之變化。而有些時候,我們可能不希望這樣,而是希望有一個值一直在累加合計金額,而不是隨著單據(jù)的變化這個合計值被重置。那么這個選項可以使得系統(tǒng)一直累計合計值直到最后一張單據(jù)。

上面兩個選項對于很多報表是很有用處的。》

*SUM函數(shù)

完整定義:SUM(Expr,Band,Flags);

  • Expr:你需要求和的變量或者更加復(fù)雜的函數(shù),例如:<tblItem."TOTALTAXSUM">。
  • Band:你需要求和的數(shù)據(jù)區(qū)域名稱,例如:DetailData1。
  • Flags:默認為0,可以省略。

1 --- 計算不可見Band數(shù)據(jù)

2 --- 執(zhí)行總數(shù)

3 --- 1 并且2(計算不可見Band數(shù)據(jù) 并且 執(zhí)行總數(shù))

3、分組報表(Group)

*報表格式

一般由報表抬頭、群組首、主項數(shù)據(jù)、群組尾組成。

*報表范例

#商品檔案報表(按商品分類分組)

步驟如下

1. 新建1個數(shù)據(jù)源(FIB Components->FIB Query),起名tblProduct。

2. 獲取所需數(shù)據(jù)(tblProduct->SQL)。

3. 依次添加ReportTitle、GroupHeader、MastData、GroupFooter區(qū)域。

4. 設(shè)置MastData區(qū)域連接的數(shù)據(jù)源->tblProduct。

5. 在ReportTitle中添加文本對象,錄入報表名稱。

6. 雙擊GroupHeader,設(shè)置分組條件,選擇數(shù)據(jù)字段tblProduct->PRODUCTSORT。

7. 在MastData中添加若干文本對象,并連接該文本對象至對應(yīng)數(shù)據(jù)字段。

8. 在GroupHeader中添加若干文本對象,錄入字段中文名稱。

9. 在GoupHeader中添加一個文本對象,錄入<tblProduct."PRODUCTSORT">。用于顯示商品分類名稱。

10. 在GroupFooter中添加System Text對象,用于顯示合計數(shù)。

11. 在PageFooter中添加文本對象,錄入頁碼。(使用FastReport中的系統(tǒng)變量 [Page])

SQL語句:

SELECT * FROM TB_PRODUCT ORDER BY PRODUCTSORT;

《所謂分組報表,就是按某一個字段進行分組顯示,該字段具有相同的值的數(shù)據(jù)記錄將被歸類顯示在一起。例如:上例中將商品檔案按照商品分類歸類顯示。

要達到分組的目的,其中一個關(guān)鍵是該數(shù)據(jù)集必須按分組條件排序。即SQL語句中一定要有ORDER BY這樣的排序語句,而排序字段就是分組的字段。

分組是可以多級的,也就是可以嵌套分組。例如:商品檔案定義時可能用商品分類表示大類,商品類型表示小類。分組顯示時希望按大類包含小類這樣嵌套方式顯示。那你可以讓數(shù)據(jù)集按ORDER BY PRODUCTSORT,PRODUCTSTYLE這樣來排序。排序時,排在前面的字段首先被排序,在相同的條件下,對排在后面的字段再進行排序。同樣的這種情況下,你需要增加兩個群組首尾,讓他們嵌套排列。居于外層的設(shè)置分組條件為商品分類,居于內(nèi)層的設(shè)為商品類型。》

*分組條件設(shè)置中的選項

在你設(shè)置GroupHeader的分組條件時,有以下幾個選項,他們的用途如下:

#保持與群組在一起 --- 這個選項表示,F(xiàn)astReport報表系統(tǒng)總是試圖將一個群組的內(nèi)容打印在一張紙上而不做分割。例如:有一個群組的內(nèi)容比較多,而這個群組的開始打印位置居于紙的中部,因此本頁將無法將全部該群組的內(nèi)容顯示完畢。那么FastReport將把這個群組打印在新的一頁上,這樣上頁紙的底部將會留出空白。當(dāng)然如果這個群組在新的一頁仍然無法顯示完畢,那FastReport就接著顯示,不再做其他處理了。

#換頁 --- 這個選項與上面這個選項基本概念相同,只是他總是將新的分組內(nèi)容打印在新的一頁上,而不管這個分組的內(nèi)容有多少。當(dāng)然這樣紙張的空白也更多更浪費。但這種方式對于某些客戶來說仍然可能是需要的。

#顯示在大綱 --- 如果選擇本選項,那么在你預(yù)覽報表時,你可以使用綱要功能(有一個綱要按鈕)。他可以將分組的名稱顯示在左邊的樹型框中,這樣你可以更加方便的定位到相應(yīng)的分組。

《如果你想預(yù)覽時總是顯示綱要(不需要總是按綱要按鈕)。你可以選擇左側(cè)Page1中的Report對象,在屬性PreviewOptions->OutlineVisibe設(shè)置為True。》

*Reprint On NewPage

如果你選擇GroupHeader區(qū)域,然后點擊鼠標右鍵彈出菜單(Context PopupMenu)。你會發(fā)現(xiàn)有一個選項Reprint On NewPage,這個在其他區(qū)域的右鍵菜單中是沒有的。他是起什么作用呢?

我們知道,一般分組報表設(shè)計時,總是將分組條件和中文字段名稱顯示在群組首。這樣打印時,碰到一個新的分組,F(xiàn)astReport先是打印群組首中的內(nèi)容,例如:商品分類的名稱等。然后再打印該分組的數(shù)據(jù)。但如果數(shù)據(jù)較多時不能在一頁中顯示,那么剩余內(nèi)容將打印在后面的一頁中。這帶來一個問題就是,如果獨立看待后面一頁紙,上面顯示的數(shù)據(jù)我們不知道是屬于哪一個商品分類的(分組),必須返回去查看上一頁中的群組首才知道。而使用Reprint On NewPage,則FastReport將在新的一頁中將群組首中的內(nèi)容再打印一遍(Reprint)。這樣你就可以清楚知道本組數(shù)據(jù)的歸屬了。當(dāng)然這樣的話,群組首中的內(nèi)容將可能會被打印超過一遍,這取決于數(shù)據(jù)的多少。

分欄報表、多列報表、子報表、交叉報表就不詳講了

二、 常用功能及函數(shù)

常用功能列舉如下:

*報表設(shè)置

什么時候需要兩遍報表(Double pass)?

應(yīng)用1 用于顯示總的頁數(shù)(TotalPages),例如:頁腳顯示第1頁/共20頁。系統(tǒng)第一遍掃描報表時計算出TotalPages,然后第二遍實際生成報表。如果不使用Double pass,則TotalPages返回0。

應(yīng)用2 用于將明細項的合計值打印在報表起始位置,而不是在末尾。這需要在第一遍掃描報表時計算出然后在第二遍生成報表時顯示在起始位置。

密碼 --- 用于將報表加密,這樣在設(shè)計或者顯示報表時需要輸入密碼。

*頁面設(shè)置

分欄 --- 可以將報表在一張紙上分成若干列來打印,比較利于節(jié)省紙張。這與在主項數(shù)據(jù)的Band中設(shè)置多個列(Column)不同,分欄打印順序是從上往下,然后從左往右。多列打印順序是從左往右,再從上往下。

函數(shù)

ListValue --- 根據(jù)SQL語句自動填充一個列表的值;

procedure ListValue(ASQL: string;AList: TStrings);

begin

tblList.Close;

tblList.SQL.Text := ASQL;

tblList.Open;

tblList.First;

while not tblList.Eof do

begin

AList.Add(tblList.Fields[0].AsString);

tblList.Next;

end;

end;

ShowLoginSector --- 登陸分公司列表自動選擇,如果不是管理部門則不允許選擇;

procedure ShowLoginSector(L: TfrxComboBoxControl);

var

S: string;

begin

S := VarToStr(Get('LoginSector'));

if S = '' then S := '管理部門';

L.ItemIndex := L.Items.IndexOf(S);

L.Enabled := S = '管理部門';

end;

報表設(shè)計中常用技巧:

A 為系統(tǒng)數(shù)據(jù)源增加自定義數(shù)據(jù)源,達到擴展數(shù)據(jù)的目的

在VBMS中的報表中心我們可以自己設(shè)計數(shù)據(jù)源然后設(shè)計自己需要的報表。其實,我們在其他的模塊中一樣可以自己設(shè)計數(shù)據(jù)源(原來以為不可以)。

設(shè)計方法與報表中心中是一樣的。

下面我舉一個例子:

在客戶檔案模塊中的打印報表中,增加每個客戶的對應(yīng)的車輛資料的顯示。

原報表中已經(jīng)有了一個系統(tǒng)傳入的數(shù)據(jù)源dsCustomer。

1. FIB->FIB Query,新增一個數(shù)據(jù)源 dsVehicle。

SQL語句為:

SELECT * FROM TB_VEHICLE WHERE CLIENTID=:CLIENTID;

其中:CLIENTID為變量,是隨著dsCustomer的變化而變化的。

(注意:如果你希望這個變量由主數(shù)據(jù)源來控制,則該變量的命名必須與主數(shù)據(jù)源中的字段名稱一致。)

2. 設(shè)置dsVehicle的如下屬性:

Master -> dsCustomer;(設(shè)置主數(shù)據(jù)源)

Params -> CLIENTID,數(shù)據(jù)類型 Integer,值 <dsCustomer."CLIENTID">;

(設(shè)置參數(shù):設(shè)置值時可以選擇按鈕fx來選擇)

3. 插入一個Band(明細數(shù)據(jù))。

設(shè)置連接數(shù)據(jù)庫為dsVehicle。然后放入相關(guān)的字段(Text Object)。

4. 鼠標右鍵設(shè)置MastData1的 Print if Detail Empty。目的是如果該客戶沒有車輛依然需要打印出來。

總結(jié):

現(xiàn)在,我們既可以在報表中心,也可以在任何位置的打印報表中設(shè)計自己的數(shù)據(jù)源,并且可以將自己的數(shù)據(jù)源與vbms系統(tǒng)傳入的數(shù)據(jù)源進行關(guān)聯(lián)。這樣的應(yīng)用可以使報表設(shè)計更加靈活、更加強大。

B 為報表增加分組顯示功能

在vbms系統(tǒng)的設(shè)計報表功能中,有一個群組頭、群組尾的功能。

如果將群組頭和群組尾分別置于主項數(shù)據(jù)的上面和下面,則可以對該主項數(shù)據(jù)進行分組統(tǒng)計功能,設(shè)置群組頭時,系統(tǒng)會詢問對哪一個字段進行分組。然后你可以在該群組頭上放置一個該字段的TextObject來顯示分組內(nèi)容,在群組尾放置一個用于求和的SystemText。這樣就可以按照該字段來分組統(tǒng)計了。

注意:要讓相同組別的記錄顯示在一起,必須使數(shù)據(jù)源按該字段排序。因此,在一般報表中,如果你希望按照某個字段來分組統(tǒng)計,必須在打印所在的窗體上點擊數(shù)據(jù)列表的該字段項(即排序,可以正排和逆排),然后再進入打印對話框來打印;如果是在報表中心中設(shè)計的報表,則在SQL中必須加上ORDER BY語句來排序。

另外,在群組頭的屬性中有一個OutLine,如果等于True。則可以在預(yù)覽中使用列表導(dǎo)航。

C 將對話框(DialogForm)中的信息顯示在報表中。

例如:對話框中錄入開始日期和結(jié)束日期,你希望將該時間范圍顯示在報表頭上。

方法是,在報表頭上加一個Text Object,然后錄入[edtBD.Text];edtBD就是開始日期編輯框的Name,記住要用中括號括起來。其他的類推。

*在對話框中的下拉框中顯示一個列表。

例如,在對話框中你可能需要用一個下拉框讓用戶選擇某一個供應(yīng)商,下拉框中存儲了所有供應(yīng)商。

方法是,首先建一個數(shù)據(jù)源(tblProvider),該數(shù)據(jù)源返回了所有供應(yīng)商。在對話框中放一個下拉框(cmbClientName),在對話框的OnShow事件中編寫如下代碼:

tblProvider.Open;

tblProvider.First;

while not tblProvder.Eof do

begin

cmbClientName.Items.Add(tblProvider.FieldByName('CLIENTNAME').AsString);

tblProvder.Next;

end;

該方法通用,只需要替換相應(yīng)的數(shù)據(jù)源就可以實現(xiàn)其他的內(nèi)容。

D 在分組腳或者欄尾顯示多個數(shù)據(jù)項的合計。

例如,對于導(dǎo)購人員統(tǒng)計表,有銷售金額、項目金額、其他金額三項,我希望在欄尾顯示三項的合計值(不是每一項的合計)。

如果要分別統(tǒng)計每一項的合計,你只需這樣。

SUM(<tblBMAccount."SELLSUM"&gt;)就可以統(tǒng)計銷售金額了。

將三項加起來,則寫如下代碼

SUM(<tblBMAccount.&quot;SELLSUM";>+<tblBMAccount."SERVICESUM">+<tblBMAccount."OTHERSUM">)

*這里講一下一些語法格式。

取一個字段的格式,

格式:TableName."FieldName"

表名+逗號+字段名,字段名用雙引號引起來。

如果你希望在一個TextObject中顯示某一個字段內(nèi)容,

格式是:[TableName."FieldName"]

用中括號括起來,中間是字段。

如果該字段內(nèi)容作為參數(shù)參加運算或者作為一個函數(shù)的參數(shù),則需要用<>尖括號將字段括起來。

格式:SUM(<TableName."FieldName">)

比如:SUM(<tblBMAccount."SELLSUM">);

或者 <tblBMAccount.";SELLSUM">+<tblBMAccount."SERVICESUM">;

同樣的,如果希望將他們放在Text Object中顯示,還必須加上中括號。

例如:[SUM(<TableName."FieldName">)]

這里關(guān)鍵記住,如果想在TextObject中顯示要用[]中括號,要在函數(shù)的參數(shù)中引用字段或者使用字段進行運算,需要用<>尖括號將字段括起來。

E 如何將報表底部的合計顯示在報表頭

如果直接將合計的TextObject放在主項數(shù)據(jù)的前面,將不能統(tǒng)計值,因為此時尚未解析出所有數(shù)據(jù)。

利用FastReport的兩遍報表和臨時變量功能實現(xiàn)。

首先設(shè)置該報表為兩遍報表(Double Pass)。

在底部的某一個Band中的OnBeforePrint事件中加入以下代碼:

例如:

Set(<tblBMAccount."BM">,SUM(<tblBMAccount."SELLSUM">+<tblBMAccount."SERVICESUM">;+<tblBMAccount."OTHERSUM">));

說明:Set是一個函數(shù),他將一個值存入了一個變量中。

Set(var,value);其中變量var可以利用數(shù)據(jù)表中的某一個字段,Value是你的合計值。

在主項數(shù)據(jù)(MastData)的上面的某一個Band中放一個TextObject(例如:memTotal)

然后在該TextObject的OnBeforePrint事件中加入如下代碼:

例如:

if Engine.FinalPass then

memTotal.Text := Format('%8.2f',[Get(<tblBMAccount."BM">)]);

說明:Engine是FastReport管理報表的對象,F(xiàn)inalPass表示最后一遍報表。

Get(var)將變量var的值返回。Format是一個格式化數(shù)字的函數(shù)。

F 在底部顯示多個數(shù)據(jù)源某個字段的合計值

例如:將三個明細的合計相加后顯示總的合計。

方法一:

公式如下:

[SUM(<dsServiceItem."TOTALTAXSUM">,MasterData1)+SUM(&lt;dsProductItem."TOTALTAXSUM">,MasterData2)+SUM(<dsOtherItem."TOTALTAXSUM">,MasterData3)]

但有一個問題是,當(dāng)三個明細不是全部存在時,打印時會發(fā)生Variant Operate操作錯誤。

我分析該錯誤產(chǎn)生的的原因是當(dāng)其中一個明細不存在時,此時SUM后的結(jié)果為NULL(空值)而不是0,所以當(dāng)一個NULL值與其他一個數(shù)值相加時會發(fā)生上述錯誤。

解決的方法是,判斷一下:如果SUM后為NULL,則給它賦值0。恰好FastReport中有一個函數(shù)IIF(Expression,TureValue,FalseValue);該函數(shù)可以通過判斷條件,如果條件為True,則返回True值,為False則返回False值。

所以將上述表達式進行一些改造。

IIF(SUM(<dsServiceItem."TOTALTAXSUM&quot;>,MasterData1)<>null,SUM(<dsServiceItem."TOTALTAXSUM">,MasterData1),0)

上面這個表達式表示:如果合計值不為空,則返回合計值,否則返回0。

因此,整個表達式如下:

[IIF(SUM(<dsServiceItem."TOTALTAXSUM">,MasterData1)<>null,SUM(<dsServiceItem."TOTALTAXSUM">,MasterData1),0)+IIF(SUM(<dsProductItem."TOTALTAXSUM">,MasterData2)<>null,SUM(<dsProductItem."TOTALTAXSUM">,MasterData2),0)+IIF(SUM(<dsOtherItem."TOTALTAXSUM">,MasterData3)<;>null,SUM(<dsOtherItem."TOTALTAXSUM">,MasterData3),0)]

方法二:

在Code頁的最頂部定義三個變量,例如:

var

V1,V2,V3: Double;

在每個數(shù)據(jù)源的主項腳的OnBeforePrint的事件中分別錄入:

主項腳1的OnBeforePrint:

V1 := SUM(<dsServiceItem.&quot;TOTALTAXSUM">,MasterData1);

主項腳2的OnBeforePrint:

V2 := SUM(<dsProductItem."TOTALTAXSUM">,MasterData2);

主項腳3的OnBeforePrint:

V3 := SUM(<dsOtherItem."TOTALTAXSUM">,MasterData3);

在需要顯示合計的TextObject中使用:

[<V1>]或者[<V2>]或者[<V3>]或者[<V1+V2+V3>]即可。

G 在報表中引入自己的數(shù)據(jù)源

有客戶需求:希望打印條碼時同時打印出商品的品名規(guī)格和零售價(或其它商品相關(guān)信息),但條碼庫數(shù)據(jù)表中沒有相應(yīng)的數(shù)據(jù)字段。如何進行設(shè)計呢?

其實利用條碼庫數(shù)據(jù)表中的商品序號(ProductID),可以自己增加一個數(shù)據(jù)源(dsBarCodeEx),通過ProductID作為主鍵來連接數(shù)據(jù)表TB_BARCODE和TB_PRODUCT,將TB_PRODUCT表中的某些字段引入(根據(jù)需要)。

數(shù)據(jù)源可能是如下內(nèi)容:

SELECT

TB_BARCODE.PRODUCTID,

TB_BARCODE.BARCODE,

TB_PRODUCT.PRODUCTNUMBER,

TB_PRODUCT.PRODUCTNAME,

TB_PRODUCT.SELLPRICE

FROM

TB_BARCODE

LEFT JOIN TB_PRODUCT

ON TB_PRODUCT.PRODUCTID=TB_BARCODE.PRODUCTID

這樣,你可以利用自己設(shè)計的數(shù)據(jù)源(原來的數(shù)據(jù)源dsBarCode不去管他)設(shè)計出相應(yīng)的條碼打印報表(可以打印零售價等)。

H 在報表中實現(xiàn)可變數(shù)據(jù)源

在報表中可以根據(jù)對話框中的條件實時調(diào)整數(shù)據(jù)源中的參數(shù)。

例如:在庫存狀況表中導(dǎo)出到條碼庫后(所有商品均導(dǎo)出),有時需要只打印某些商品的條碼。你可以設(shè)計一個對話框,可以按照商品編號篩選,如果篩選條件為空,則打印所有商品,否則打印篩選出的商品。

設(shè)計數(shù)據(jù)源如下:

SELECT

BA.PRODUCTID,

BA.BARCODE,

PR.PRODUCTNUMBER,

PR.PRODUCTNAME,

PR.SELLPRICE

FROM

TB_BARCODE BA

LEFT JOIN TB_PRODUCT PR

ON PR.PRODUCTID=BA.PRODUCTID

WHERE PR.PRODUCTNUMBER = :N

然后在數(shù)據(jù)源的Params中設(shè)置N的參數(shù)。

此時,如果篩選條件為空,則查詢出來的數(shù)據(jù)也為空。

這是因為條件 WHERE PR.PRODUCTNUMBER = :N 導(dǎo)致的。

篩選條件為空時,數(shù)據(jù)源應(yīng)該去掉該條件。此時需要根據(jù)條件動態(tài)調(diào)整數(shù)據(jù)源。

在btnOK(對話框中的確定按鈕)的OnClick事件中加入以下代碼:

procedure btnOKOnClick(Sender: TfrxComponent);

var

S: string;

begin

S := 'SELECT BA.PRODUCTID,BA.BARCODE,PR.PRODUCTNUMBER,PR.PRODUCTNAME,PR.SELLPRICE'+

' FROM TB_BARCODE BA'+

' LEFT JOIN TB_PRODUCT PR'+

' ON PR.PRODUCTID=BA.PRODUCTID';

if edtProductNumber.Text<>'' then

begin

S := S + ' WHERE PR.PRODUCTNUMBER = :N';

dsBarCodeEx.ParamByName('N').Value := edtProductNumber.Text;

end;

dsBarCodeEx.SQL.Text := S;

end;

該代碼根據(jù)篩選條件不同,對數(shù)據(jù)源的SQL語句進行不同的設(shè)置。

這樣就可以達到要求了。

I 在對話框中,顯示開始日期和結(jié)束日期。

在DialogPage1的OnShow事件中加入以下代碼:

方式1:

procedure DialogPage1OnShow(Sender: TfrxComponent);

begin

edtBD.Text := DateToStr(Date);

edtED.Text := DateToStr(Date);

end;

說明:

edtBD,edtED為開始日期、結(jié)束日期的編輯框。

DateToStr()函數(shù)將日期型變量轉(zhuǎn)為字符串。

現(xiàn)在,開始日期和結(jié)束日期默認為今日。

方式2:

procedure DialogPage1OnShow(Sender: TfrxComponent);

var

Y,M,D: Integer;

begin

Y := YearOf(Date);

M := MonthOf(Date);

D := DaysInMonth(Y,M);

edtBD.Text := DateToStr(EnCodeDate(Y,M,1));

edtED.Text := DateToStr(EnCodeDate(Y,M,D));

end;

說明:

YearOf()函數(shù)返回某個日期的年份;

MonthOf()函數(shù)返回某個日期的月份;

DaysInMonth()函數(shù)返回某月的天數(shù);

EnCodeDate()函數(shù)將年、月、日整型數(shù)轉(zhuǎn)為日期型;

現(xiàn)在,開始日期為本月的1號,結(jié)束日期為本月的最后一天。

J 在對話框DialogPage1中使用警告框提醒輸入相關(guān)內(nèi)容

例如:你可能需要用戶必須錄入某些查詢內(nèi)容,否則提醒用戶輸入。

在btnOK(確定按鈕)的OnClick事件中加入以下代碼:

procedure btnOKOnClick(Sender: TfrxComponent);

begin

if edtDepotName.Text = '' then

begin

ShowMessage('請輸入倉庫!');

edtDepotName.SetFocus;

DialogPage1.ModalResult := mrNone;

Exit;

end else

DialogPage1.ModalResult := mrOK;

end;

說明:

ShowMessage()函數(shù)用于顯示一條警告信息。

edtDepotName.SetFocus 表示該編輯框獲取輸入焦點;

DialogPage1.ModalResult := mrOK 表示通過;

DialogPage1.ModalResult := mrNone 表示不通過;

K 單據(jù)打印中如何實現(xiàn)空表格填滿剩余的空行,達到指定的行數(shù)。

在原來的報表基礎(chǔ)上,增加一個子Band(Child1),在這個Band上設(shè)計空白行。

可以將Footer1的高度Height設(shè)置為0;

在Code頁中錄入以下代碼:

var

PageLine: Integer; //在現(xiàn)在頁打印到第幾行

PageMaxRow: Integer = 8; //指定的每頁固定行數(shù) 你可以修改

//在MasterData1的OnBeforePrint事件中加入以下內(nèi)容

procedure MasterData1OnBeforePrint(Sender: TfrxComponent);

begin

PageLine := <Line#> mod PageMaxRow;

if (PageLine = 1) and (<Line#> > 1) then

Engine.NewPage;

end;

//在Footer1的OnBeforePrint事件中加入以下內(nèi)容

procedure Footer1OnBeforePrint(Sender: TfrxComponent);

var

i: Integer;

begin

i := iif(PageLine=0,PageMaxRow,PageLine);

while i < PageMaxRow do

begin

i := i + 1;

Engine.ShowBand(Child1); //增加一個子Band,在該Band上設(shè)計空白的行

end;

end;

L 在報表中使用金額大寫

在FastReport的設(shè)計模式下,在Code頁中加入以下函數(shù):

function SumToCaps(const Value : Double): string;

const

d = '零壹貳叁肆伍陸柒捌玖分角元拾佰仟萬拾佰仟億';

var

m,k : string;

j : Integer;

begin

k :='';

m :=FloatToStr(int(Value*100));

for j:=length(m) downto 1 do

k := k+d[(strtoint(m[Length(m)-j+1])+1)*2-1]+

d[(strtoint(m[Length(m)-j+1])+1)*2]+d[(10+j)*2-1]+d[(10+j)*2];

result := k;

end;

當(dāng)你需要將一個金額轉(zhuǎn)換為金額大寫時可以如下操作:

1、在Code頁的開始處定義一個字符串。

Var

TOTALSUM_CAPS: string;

2、在相應(yīng)的事件(可能是OnBeforePrint)中加入

TOTALSUM_CAPS := SumToCaps(TOTALSUM);

注:這里的TOTALSUM可能是一個變量,也可以是數(shù)據(jù)源中的字段或者合計值。例如:

<tblMaster."TOTALSUM">或者SUM(<tblMaster."TOTALSUM",MasterData1,1>)。

3、在需要顯示大寫金額的TextObject中鍵入[<TOTALSUM_CAPS>]。

M 如何隱藏某些主項數(shù)據(jù)記錄

通常當(dāng)某個數(shù)值為零時,我們不希望這條記錄被打印或者顯示。

步驟如下:

1、選擇主項數(shù)據(jù)MastData1的OnBeforePrint時間。

2、在OnBeforePrint事件中填寫代碼

if <tblMaster."TotalSum">=0 then

MastData1.Visible := False else

MastData1.Visible := True;

其中<tblMaster."TotalSum">=0是條件,你可以定義為自己的條件。

N 如何強調(diào)某些主項數(shù)據(jù)的內(nèi)容

有時我們希望當(dāng)滿足一定條件時,某些數(shù)據(jù)的字體或者顏色顯示不同,以達到強調(diào)的目的。

步驟如下:

1 選擇需要強調(diào)的TextObject。

2 選擇工具欄中的強調(diào)按鈕。

3 在對話框中錄入需要強調(diào)時的條件。例如:<tblMasterData.";TotalSum"> >= 1000

4 選擇強調(diào)的字體,顏色。


標簽:

本站文章除注明轉(zhuǎn)載外,均為本站原創(chuàng)或翻譯。歡迎任何形式的轉(zhuǎn)載,但請務(wù)必注明出處、不得修改原文相關(guān)鏈接,如果存在內(nèi)容上的異議請郵件反饋至chenjj@fc6vip.cn

文章轉(zhuǎn)載自:網(wǎng)絡(luò)轉(zhuǎn)載

為你推薦

  • 推薦視頻
  • 推薦活動
  • 推薦產(chǎn)品
  • 推薦文章
  • 慧都慧問
相關(guān)產(chǎn)品
控件
  • 產(chǎn)品功能:報表
  • 源 碼:非開源
  • 產(chǎn)品編號:10233
  • 當(dāng)前版本:v25.2.2 [銷售以商家最新版為準,如需其他版本,請來電咨詢]
  • 開 發(fā) 商: Fast Reports 正式授權(quán)
  • ">FastReport VCL

    用于快速高效地生成報表的附加組件

    控件
  • 產(chǎn)品功能:報表
  • 源 碼:非開源
  • 產(chǎn)品編號:10235
  • 當(dāng)前版本:v2.3 [銷售以商家最新版為準,如需其他版本,請來電咨詢]
  • 開 發(fā) 商: Fast Reports 正式授權(quán)
  • ">FASTREPORT SERVER

    FastReport Server是一個全方位的公司報表解決方案,它包括所有創(chuàng)建和提供報表的必要工具。

    控件
  • 產(chǎn)品功能:報表
  • 源 碼:非開源
  • 產(chǎn)品編號:10732
  • 當(dāng)前版本:v4.9 [銷售以商家最新版為準,如需其他版本,請來電咨詢]
  • 開 發(fā) 商: Fast Reports 正式授權(quán)
  • ">FASTREPORT for COM/ActiveX

    FastReport Studio是一款功能強大的報表設(shè)計方案并包含眾多報表事例的控件。

    控件
  • 產(chǎn)品功能:報表
  • 源 碼:非開源
  • 產(chǎn)品編號:11861
  • 當(dāng)前版本:v2025.2 [銷售以商家最新版為準,如需其他版本,請來電咨詢]
  • 開 發(fā) 商: Fast Reports 正式授權(quán)
  • ">FastReport .Net

    一款全功能的Windows Forms、ASP.NET和MVC報表分析解決方案。

    掃碼咨詢


    添加微信 立即咨詢

    電話咨詢

    客服熱線
    023-68661681

    TOP
    姐妹5中国版 | 观看国产色 | 中文有码vs| 国产又色又爽又黄又刺激的视 | 夫妇交换 | 国产综合一区二区在线观看 | 欧美日韩国产一级 | 免费在线电影网站 | 国产一区二区三区精品专区 | 国产一级特黄aaa大片在线观 | 婷婷综合缴情亚洲狠狠尤物 | 国产网站在线免费 | 亚洲三区在| 国产熟女一 | yin荡护士揉捏乱p办公室视 | 区三区影院视频 | 免费观看又黄又硬又爽的视频 | 日韩在线观看91精品免费 | 海量资源每| 日本免码v?| 国产美女视频免费 | 国产中文字幕免费不卡 | 大片在线观看免费 | 国产人成激情视频在线观看 | 57pao视频国产在线观看 | 国产喷水在线观看 | 国产69精品| 国产男女猛烈无 | 专区中文字幕视频专区 | 色哟哟www视频在线观看高清 | 欧美亚洲自拍日韩在线 | 久99久精品 | 欧美伊人影院 | 国产精品自产精品在线观看 | 国产欧美一区二区精品婷婷 | 欧美又粗又大一区二区 | 亚洲日本国产一区二区精品成人 | 国产一级特黄aa大片免费 | 欧美日韩精品一区二区在线 | 老牛影视文化传媒有限公司官方 | 老熟女乱一区二区三区视频 | 国产强伦姧在线观看 | 勃起又长又黑又粗毛又多 | 日本精品一区二区三区在线 | 中文字幕日韩精品一区二区三区 | 国产精品视频免费一区二区三区 | 久热官网 | 日韩电影免费在线观看中文字幕 | 欧美日韩亚洲国产一区二区三区 | 日韩精品中文字幕一区 | 91精品视频在线 | 欧美亚洲精品一区二区在线观看 | 国产精品大战 | 亚洲国产专区一区 | 视频一二亚洲国产二区 | 亚洲中文字幕在线一区 | 欧美三级极品视频在线观看 | 国产在线精品一区二区夜色 | 一本大道熟 | 成在人线 | 国产精品区二区三区日本 | 视频精品全部国 | 97天堂nba永久 | 国产性猛交╳xxx乱大交 | 337p日本欧洲亚洲 | 日韩精品在线视频直播 | 精品性影院一区二区三区 | 精品国产品国语 | 不卡日韩中文字幕在线观看 | 国产精品偷伦费 | 国产一级特黄aa大片免费 | 99视频免费| 国产高清在线a视频大全 | 成年入口无 | 无人在线视频高清免费观看 | 国产精品广西柳州 | 欧美日韩中文字幕免 | 久产久精九国品在线 | 人人狠狠综合99综合久 | 视频一二三区 | 欧美的高清视频在线 | 国精产品一二二线网站 | 亚洲日韩欧美一区二区在线 | 无人区一线二线三线乱码 | 视频免费热播在线观看 | 日韩欧美另类一区二区三区 | 亚洲理论中字在线观 | 欧美一区二区三区免费 | 亚洲精品影院在 | 最近的中文字幕 | 国产精品三级在线观看 | 超薄丝袜足j | 小草青青手机免费视频影院 | 伊人亚洲日韩欧美一区、二区 | 精品免费美剧网排行榜在线看 | 国产免费爽爽视频 | 91国语精品自产拍在线观看一 | 婷婷亚洲久悠悠色在线播放 | 国产在线成观看视频播放 | 亚洲欧美日韩在线香蕉 | 中文字幕在线不卡精品视频99 | 看片免费人成视频 | 国产欧美精品亚洲日本一区 | 国产全黄三级国产全黄三级书 | 牛牛视频一区二区三区 | 天美麻花果冻苏蜜清歌 | 欧美日韩精品一区二区在线观看 | 宅男噜噜噜一区二 | www.五月婷婷.com | 国产欧美日韩一区 | 成年人在线播放视频 | 国产精品国语对白一区二区 | 国产免费无遮 | 欧美视频在线 | 欧美亚洲综合卡通另类区 | 一区国产二区亚洲三区另类 | 国产情侣一区二区 | 激情亚洲一区国产精品 | 午夜福利免费院 | 黄页网址大全免费观看 | 日韩高清 | 三年片大全在线观看免费观看大全 | 中文字幕等等 | 日韩视频中文字幕 | 九九热线精品视频在线观看 | 一区二区三区在线观看免费 | 在线不卡视频 | 91丝袜诱惑一 | 精品国产一区二区三区四区色 | 九九在线免费视频 | 欧美高清一区二区三区不卡视频 | 亚洲无线 | 国产亚洲精品午夜福利 | 亚洲久热 | 宅男色影视亚洲 | 91网视频网 | 国产亚洲午夜高清亚洲精品 | 国产玖玖在线观看 | 亚洲日韩国产一本视频 | 日本高清色本在线www | а√天堂8资源中文在线 | 综合久青草视频 | 中文字幕精品一二三四五六七八 | 亚洲国产日韩在线人成电影 | 免费国产黄频在线观看视频 | 五十路息与子在线观看 | 国产综合色产在线视 | 九九热在线视频观看 | 最刺激黄a大片免 | 免费动漫| 日本一点不卡高清 | 亚洲人成在线中文字幕 | 不一样的国产爽歪歪视频 | 综合亚洲欧美日韩一区二区 | 护士精品一区二区三区 | 亚洲精品国产自在在线观看 | 免费特级欧美片 | 亚洲精品1区2区3区4区 | 一区二区三区国产精华护肤品 | 中文字幕乱 | 视频一二亚洲国产二区 | 韩国专区福利一区二区 | 全黄裸片一29分钟免费真人版 | 亚洲视频欧美视频在线视频 | 日本免费在线 | 亚洲人成色4444在线观看 | 精品在线一区二区 | 人人鲁免费 | 欧美日韩国产色 | 欧美成本人动漫在线观看 | 欧美日本一区二区三区道 | 亚洲成熟女人毛毛耸耸多 | 欧美日韩国产一区二区三区欧 | 暖暖视频在 | 91电影天堂nba国产 | 亚洲愉拍99热成人精品 | 亚洲国产一区二区三区亚瑟 | 国产盗摄在线观看 | 91精品全国免费观看老司机 | 国产亚洲一区二区手机在线观看 | 亚洲va国产日韩欧美精品 | 国产99精品 | 老熟女乱一区二区三区视频 | 午夜影视 | 一本大道 | 高清在线观看视频 | 欧美国产日韩1区俺去了 | 香蕉精品亚洲二区在线观看 | 把你的香肠放入我的扇贝里 | 日本x片成年免费观看视频 性开放的欧美大片黑白配 欧美激合综图片区小说 | 国产香港日本三级在线观看 | 日本亚洲国产一区二区三区 | 色偷偷888 | 三三影视 | 日本免费一区二区在线看片 | 日韩欧美国产一区二区三 | 破女全过程完整版 | 2025精品国产自在现线看 | 国产亚洲精品精品国产亚洲综合l | 中文字幕亚洲欧美在线不卡 | 日本视频一区二区三区 | 三级全黄的视频在线观看 | 亚洲欧洲日产国码在线 | 中文字幕一区二区三区四区在线 | 日本黄页网站免费观看 | 精品视频一区二区三区在线观看 | 扒开女人内裤猛 | 亚洲国产精品网站在线播放 | 中文字幕免 | 午夜视频在线观 | 一区二区三区亚洲高清 | 亚洲天堂 | 午夜电影网在 | 高清在线观看 | a亚洲欧美中文日韩在线v日本 | 国产午夜免费视频 | 动漫精品无| 亚洲小说一 | 国产国产裸模裸模私拍视频 | 青青草91 | 两性色午夜视频免费国产 | 日本高清激情乱一区二区三区 | 成人精品视频一区二区三区尤物 | 乱码一线二线三线新区破解欧 | 911亚洲 | a在线视频播放观看免费观看 | 四川w搡bbb搡wbbb搡按摩 | 玩成熟老熟女视频 | 日韩欧美在线综合网高清 | 国产精品精华液网站 | 国产中文字幕永久 | 特级国产午夜理论不卡 | 娇小bbw搡bbbb搡bbbb | 在线视频一区二区三区三区不卡 | 99精品热这里只有精品 | 国产精品无内丝袜高跟鞋 | 国产伊人| 精品亚洲一区二区三区在线观看 | 国产福利在线观看免费第一福利 | 欧美日韩国产无线码无毒 | 国产精品人妇一区二区三区 | 欧美综合视频在线 | 日本一区二区三区在线观看不卡 | 午夜a级理论片在线播放不卡 | 午夜网站免费 | 国产精品日韩一区 | 国产又粗又长又黄又猛又爽视 | 日韩欧美在线一区二区不卡 | 成人午夜视频精品一区 | 亚洲电影免费看 | 欧美一区二区制服在线 | 亚洲福利中文字幕在线网址 | 午夜人成影视免费 | 亚洲制服 | 国产精品国产午夜免费看福利 | 精品国产伦一区二区三区在线 | 最近最新中文字幕 | 视频二区在线 | 国产情侣在线视频播放 | 欧美巨大巨粗黑人性aaaaaa | 91日本在线观看亚洲精品 | 中文字幕视频区 | 99精品视频在 | 欧美国产日韩一区二区三区综合视 | 免费人成在线观看视频播放 | 欧美日韩一区二区精美视频 | 国产精品精品国产一区二区 | 国语在线看免费观 | 免费三级在线 | 电视剧大全手机 | 日韩欧美综合欧美日韩综合 | 国产精品人成在线播放 | 成人国产精品高清 | 国产3区 | 中文字幕精品视频在线 | 国产日本一线在线观看免费 | 国产日韩欧美亚洲 | 成人性开放网 | 啪啦完整高清观看视频 | 精品一4区 | 中文字幕自拍偷拍 | 国产精品国产自线拍免费不卡 | 国产精品偷伦视频 | 精品综合国产一区二区三区码码 | 精品国产日韩一区三区 | 欧美亚洲一区电影 | 极品女神 | 91免费伊人 | 91精品乱码一区二区三区 | 亚洲愉拍自拍欧美精品app | 精品外国呦系列在线观看 | 国产91视频在线观看 | 国产一卡二卡三卡四卡在线看 | 日韩欧美色综合网站免费 | 国产一区二区三区在线免费 | 国产欧美自拍偷怕日韩亚洲 | 中文字幕制服丝袜在线观看 | 国产亚洲久一区二区 | 中文字幕夫妇交换乱叫 | 亚洲亚洲人 | 国产性午夜视频在线观 | 国产亚洲成aⅴ人片在线奶水 | 国色一卡2卡二卡4卡乱码 | 国产亚洲一区二区三区日本 | 2025最新电视剧| 国产精品天天看特色大片 | 五月天婷婷网亚洲综合在线 | 国产伦精品一区二区三区男技 | 国产精品1024在线永久免费 | 欧美日韩免费专区在线 | 亚洲精品在线中文字幕 | 国产在线精品一区二区不卡 | 成人app破解不限次数 | 日本三级韩国三 | 日本高清中文字幕高清在线 | 舌奴ⅴk| 欧美综合在线激情专区 | 日本成本人片视频免费 | 大地影院mv在线观看高清 | 97色伦午夜国产亚洲精品 | 国产视频99kai| 113美女写真 | 欧美日韩在大午夜爽爽影院 | 91中文字 | 欧美日韩中文字幕日韩欧美 | 片视频免费观看 | 最新国产99热这里只有精品 | 国产又猛又黄又爽在线视频无 | 天堂mv在线mv免费mv香蕉 | 91精品国产闺 | 韩国午夜理 | 台湾swag在线 | 中文字幕午夜福利片亚洲 | 欧美精品视频一区二区三区 | 国产网站免费精品网站 | 日本不卡一二三区视频免费 | 91黑料在线观看 | 国产高清国内精品 | 激烈网站| 欧美一区二区不卡高 | 俺去啦不卡 | 在线观看精品自拍视频 | 国产精品主播在线 | 免费看高视频hh网站免费 | 国产精产国品一二三在观看 | 国产黄在线播放免费观看 | 97韩剧网首页 | 国产91蜜芽在线观看 | 国产精品兄 | 欧美交换 | 国内精品视频免费观看 | 一本大道香蕉中文在线视频 | 亚洲精品aⅴ中文字幕乱码 国产在线ts | 午夜福利理论片高清在线观看 | 亚洲精品一品区二品区三品区 | 国产69公社在线视频 | 极品女神 | 午夜福利国产主播露出 | 又大又粗又黄又硬又爽又免费视 | 欧美日韩在线一区二区三区 | 日韩一本之道一 | 韩国在线观看日韩免費資訊 | 美女丰满精品 | 91草莓视频在线观看 | 日韩在线视频www色 午夜福利在线观看亚洲一区二区 | 中文字幕人 | 影视大全电视剧在线播放 | 最新中文字幕在线观 | 国产在线精品一区二区 | 非洲一级婬片免费放天天 | 国产专区日韩专区 | 国语对白精品视频在 | 免费国产黄线在线观 | 国产精品一区二区三区 | 亚洲国产在线精品国自产拍 | 国产视频欧美综合 | 日韩一级一欧美一级国产 | 天天躁日日躁狠狠很躁 | 亚洲xxxx在线播放 | 精品国产综合成人亚洲区 | 国产大片51精品免费观看 | 津渝完整视频线上观看 | 在线播放成人高 | 国产一区二区三区日韩精品 | 亚洲欧美精品福利一区二区 | 成人三级 | 97超级碰碰碰碰精品 | 国产精品午夜自在在线精品 | 国产在在| 亚洲国产中文国产一区二区三区 | 97涩涩| 国产女主播在线观看免费观看 | 日本精品大胆 | 亚洲国产精品无 | 欧美成a人片在线观看久 | 国产精品福利社 | 91制片厂一样的应用 | 欧美日韩三区 | a亚洲欧美中文日韩在线v日本 | 国产91蜜芽在线观看 | 亚洲精品一区二区三区人妖 | 国产蝌蚪视频一区二区三区 | 国产精品自产拍在线观看网站 | 亚洲精品偷 | 国产精品va在线 | 看片天堂 | 午夜视频在线观看国产 | 热门电影、电视剧、动 | 91精品丝袜国产在线一区 | 一区二区三区免费 | 精品国产99国产精偷国产黄在线 | 国产一级二级三级 | 欧美日韩国产高清一区二区三区 | 日产中文字幕在线精品一区 | 日韩大胆视频 | 中文字幕一冢本 | 亚洲综合激情另类小说区 | 国产专区免费资源网站 | 善良的岳hd中字伦理 | 伊人影视在线观看日韩 | 欧美一区二区三区播放 | 91精品一区二区 | 国产午夜福 | 欧美综合自拍亚洲综合图区 | 亚州成人高清国产a | 亚洲精品影视亚州色区 | 国产精品网红尤物福利在 | 手机看片102 | 日本不卡一区二区三区 | 午夜成人爽爽爽视频在线观看 | 日本特大a级猛片在线观看 国精产品999国精产 | 色偷偷中文字 | 国语精品91自产拍在 | 在线成人国产公开视 | 在线视频一区二区三区不卡 | 国产精品高清全国免费观看 | 尤物国产精品福利三区 | 国产经典三级在线播放 | 亚洲人午夜射 | 你懂得视频在线 | 秋霞电影院yy2933| 国产精品v亚洲精品v日韩精品 | 成人人电影 | 国产欧美日韩综合精品一区二区 | 国产亚洲色 | 免费电影在线看 | 亚洲国产欧洲在线一区 | 国产精品一品二区三区的使用体验 | 手机在线看电影的网站 | 偷妇激情www色色五月丁香婷 | 日本大香伊蕉一区二区 | 午夜福利不卡片在线播放免费 | 日韩精品一线二线三线优势 | 日本丶国产 | 欧洲精品免费高清在线视频 | 亚洲日韩在线中文字幕第一页 | 韩国漂亮美女三级在线观看 | 免费在线观看最新高清电影 | 日韩国产在线观看 | 真实国产普通话对白乱子子伦视频 | 首播电影网 | 亚洲精品国产制服丝袜美腿 | 国内一区 | 日本免费a视频 | 91极品反差婊在线观看 | 97蜜桃网欧美无吗v 国产在线愉拍视频 | 在线观看国产高清免费不卡黄 | 欧美亚洲自拍日韩在线 | 又色又爽又黄的视频 | 99这里只有精品在线观看视频播 | 国产啪视频免费观看视频 | 看全色黄大色黄大片女爽一黄 | 亚洲人成在线观看 | 国产精品成人一区二区不卡 | 综合永久入口 | 免费在线视频 | 八戒成年私人影院 | 国产精品不卡片视频免费观 | 在线精品亚洲一区二区绿巨人 | 无人一码二码三码4码免费 91网首页 | 国产va免 | 一区二区三区在线日 | 精品国产一区二区三区不卡在 | 电影网在线好看 | 国产未成女年一区二区 | 在线精品国产第一页 | 99久热| 精品国产综合色在线 | 国产高清精品自在线看 | 2025国产精品手机在线观看 | 午夜理论电影在线观看亚洲 | 国产又粗又硬又长又爽 | 国产视频一区在线观看 | 国产极品视频一区二区三区 | 为您呈现最新最热的电影力作 | 国产精品亚洲午夜不卡 | 亚洲区日韩精品中文字暮 | 国产丝袜视频在 | 老熟女高 | 免费国产h视频在 | 丰满岳妇乱一区二区三区 | 亚洲宅男精品一区在线观看 | www.99re6这里有精品 | 97在线视频观看在线观看视频 | 门卫老头吮她 | 成人影院yy111111在线 | 国产又色又爽又黄又刺激的视 | 精品国产一区二区一区二 | 国产亚洲精品a在线看 | 午夜神马 | 欧美二区在线观看 | 美国十次狠狠 | 在线欧美日韩精品一区二区 | ady中文字幕 | 国产午夜在线视频 | 国产亚洲精品bt天堂精选 | 国产自产亚洲 | 日本三级网站网址 | 欧美日韩一本到手机视频观看一区 | 青青草原亚洲之五月婷 | 精品国产不 | 中文国产日韩欧美视频 | 免费国产在线观看 | 国产精品进线69影院在线 | 国内精品一区 | 日本高清视频一区二区 | 日韩欧美在线视频一区二区 | 丰满成熟亚洲人毛茸茸 | 无毒不卡在线观看无需下载 | 国产免费一区二区三区免费视频 | 欧美日韩国产一区二区三区在 | 日产无人区一线二线三线最新版 | 日本国产性爱观看视频 | 国产一区二区视频免费 | 日本一本在 | 话务耳麦 | www.五月天激情 | 国产高清a | 欧美日韩国产在线激情 | 国产精品亚洲日日摸夜夜添 | 一级风流片a级在线播放 | 91视频国产一区 | 成人精品综合免费视频 | 国产剧情对白刺激在线 | 国产老熟女狂 | 欧美国产日韩一区二区 | 亚洲欧美综合乱伦一区 | 日本欧美高清乱码一区二区 | 三级综合精品乱伦 | 欧美一区二区三区婷婷月色 | 一级a性色生活片久 | 欧美在线色 | 白色丝袜 | 噼里啪啦国语在线观看高清资源 | 日韩欧美a级 | 成人国产亚洲精品a区天堂 激情五月天深爱网 | 国产网友愉拍精品视频手机 | 成人午夜福利短视频在线观 | 国产一级做a爱免费 | 亚洲视频福利 | 国产免费不卡一区在线视频 | 电话耳机 | 神马影院| 国产经典三级在线播放 | 男女超爽视频免费播放 | 午夜福利蜜桃青 | 亚洲最大激情中文字幕 | 中文字幕日韩一区二区三区不卡 | 熟女露脸一区二区三区 | 中国免费xxxx视频在线观看 | 午夜一区二区三区 | 免费午夜无 | 麻花星空影视传 | 国产一区二区三区 | 夜鲁鲁鲁夜夜综合视频欧美 | 国产伦一区二区三区蜜桃 | 日本三级韩国三 | 国产在线精品一区二区在线观看 | 又硬又粗又长又爽免费看 | 国产精品9| 中文字幕在线永久免费精品 | 另类专区亚洲 | 中文字幕日本αv一区二区 乱伦国产精品日本 | 国产厨房一区二区三区 | 黄频国产免费观看 | 日韩欧美在线观看一区 | 天美麻花星空大全在线观看免费 | 精品一区二区 | 亚洲精品第五页 | 国产亚洲人成网站在线观看不卡 | 亚洲性线免费观看 | 亚洲欧美日韩一区高清中文字幕 | 国产家教老 | 在线精品一区二区三区 | 日韩欧美国产精品专区 | 亚洲一区二区三 | 日本一区二区三区四区不卡 | 手机韩剧天天更新韩剧免费看 | 天天综合网网欲色 | 国女精品爽爽一区二区 | 国产香蕉 | 97人人超 | 一区二区三区免费视频 | 午夜插插插 | 8x8x精品一区二区 | 日本激情在线观看免费观看 | 免费成年人看的视频品爱网 | bt在线天堂中文最新版 | 天堂亚洲国产日韩在线看 | 国产黑色丝袜在线观看下 | 日本爽p大片免费观看 | 99精产国品一二三产品香蕉 | 91福利 | 日韩经典欧美一区二区三区 | 日本亚洲欧美国产电影在线观看 | 国产日本欧美三区 | 亚洲第一| 无尽动漫性视频╳╳╳3d | 欧美日韩国产免费一区二区三区 | 亚洲va在线观看日本 | 2025最新电视剧免费观看 | 激情国产原创在线观看 | 免费看美女部位隐私网站 | 60分钟床色大片在线观看免费 | 国产精品高清自在线 | 国产激情免费视频在线观看 | 午夜福利精品在线播放 | 天美麻花 | 黑人巨茎大战亚洲白妇 | 99视频精品全部国产盗摄 | 亚洲国产欧美日韩精品 | 亚洲精品r级在线观看网站 国产黄大片在线观看画质 欧美无砖专区一中文字幕 欧美亚日韩国产aⅴ精品中极品 | 国产精品亲子乱子伦xxxx裸 | 电影在线观看 | 成人欧美一区二区三区的电影 | 三级高清精品国产 | 日本阿v免费观看网站 | 日日夜人人澡人人澡人人看免 | 18岁禁止入内 | 午夜亚洲中文电影 | 网友自拍露脸国语对白 | 最近高清中文在线字幕在线观看 | 中文字幕欧美 | 性色生活片在 | 风流老熟女一区二区三区 | 性激烈的欧美三级视频 | 熟女视频一区二区在线观看 | 精品国产一区二区三区四 | 精品欧乱仑在线 | 国产人妖的免 | 亚洲一区不卡视频 | 国产97盗摄视频一区二区三区 | 国产日韩欧美激情视频不卡 | 一个人看的视频在线观看www | 国产午夜福利短视频在线观看 | 精品一区二区视频免费看 | 亚洲午夜国产精 | 国产人成视频在线免费观看 | 午夜老司机永久免费看片 | 在线鲁鲁视频免费观看 | 青青在线观看国产大片 | 日本在线 | 日本美女一级视频 | 亚洲熟女精品一区二区成人 | a级高清观看视频在线看 | 性欧美高清| 日本三级在线 | a级粗大硬长爽猛视频免费 视频二区日韩 | 亚洲欧洲自拍偷拍 | 亚洲精品人体大胆 | 亚洲国产精品va在线观看香蕉 | 九九热线有精品视频 | 韩国三级高清手机在线版 | 五十路息与子在线观看 | 青苹果乐园影院在线播放 | 水蜜桃成视频人在线看 | 国产精品色内内在线播放 | 91秒拍国产福利在线观看 | 精品国产一区二区一区二 | 国产午夜福利在线永久视频 | 亚洲欧美国产日韩精 | 不要播放器看在线播放a国产 | 国产私拍福利精 | 亚洲第一香蕉 | 一区二区视频在线 | 精品国产一区二区三区 | 99re国产精品视频首页 | 三区在线观看不卡 | 国产另类在线欧美日韩 | 羞羞影院午夜男女爽爽影视大全 | 青青草色| 精品亚洲永久免费精品9 | 亚洲一级a大片一级 | 成视频在线播放免费人成 | 国产精品一卡 | 日本a∨网 | 国产精品白拍三级 | 资源视频在线观看 | 国产精品免费观看网站 | 银杏影院| 欧美综合自拍亚洲综合 | 欧美a级情欲片在线观看免费 | 乱伦国产欧美三级 | 永久免费精品影视网站 | 色撸撸在线视频 | 亚洲欧美日韩国产另例 | 精品国产福利第一区二 | 97视频精品全国免费观看 | 想要大鸡 | 三级中文字幕永久在线视频 | 国内自拍视频一区二区三区 | 日韩一区国产二区欧美三 | 一区二区三区日本在线视频免费 | 91影院在| 五月天婷婷在线观看免费 | 日韩欧美在线不卡 | 性荡视频播放在线视频 | 神马影院手机影 | 精品中文 | 午夜福利影院 | 欧美综合自拍亚洲综合百度 | 欧美精品一区二区三区中文 | 中文字幕精品乱码亚洲一区 | 色琪琪原网站亚洲香蕉 | 国内外成人激情免费在线视频 | 欧美日韩国产免费一区二 | 欧美曰韩 | 欧美精品高清乱伦 | 国产日韩精品一区二区在线播放 | 国产亚洲欧美日韩综合另类 | 国产情侣自拍片在线视频 | 欧美在线一级va免费 | 另类国产女王 | 亚洲精品综合在线影院 | 乱色熟女综合一区二区三区 | 国产在线不卡精品网站互動交 | 日韩精品极品视频在线观看免 | 日本护士视频欧美无砖专区 | 最新欧美精品一区二区三区不卡 | 神马未来手机 | 青青视频免 | 在线观看三缀片免费视频电 | 欧美国产综合欧美视频 | 国产一区二区三区影院 | 国产真实自在自线免费精品 | 亚洲综合| 国产va免费精品高清在线 | 美女视频性感网站 | 国产国语一级在线播放视频 | 激情视频一区二区三 | 国产一区二区三区在线免费 | 国产又黄的a级鬼片在线观看 | 小小的日本高清在 | 亚洲高清国产拍精品动图 | 久操电影网 | 日韩精品高清在线亚洲天堂 | 男男做肉爱视频在线观看 | 日韩精品视频网站在线 | 色吊丝*性观看网站大全 | 最好看的日本电影免费 | 真实国产乱子伦精品 | 中文在线资源天堂www | 美女被男人桶到爽免费网站 | 最近最好的2025中文日本字幕 | 亚洲精品自有码中文字 | 午夜性影院在线观看视频播放 | 亚洲熟女综合 | 国产99视频精品免费看 | 羞羞视频在线观看 | aⅴ不卡国产在线观看 | 尚好影视 | 国产高清精品一 | 九九视频在线观看视频6 | 国产一区二区三区在 | 在线精品亚洲欧洲第一页 | 国产中文字 | 引领不用下载播放器的影视站 | 91精品国产品国语在线 | 亚洲欧美在线观看视频 | 九操中文字幕在线观看 | 国内精品免费久 | 天天看片在线观看 | 国产91丝袜高跟系列 | 成人激情视 | 国产色综合免费观看 | 国产亚洲精品一级在线观看 | 欧美日韩精品 | 亚洲一级淫片免费在线观看 | 老司机成人亚洲精品影院 | 五月丁香六月综合激情在线观看 | 中国特级黄大片视频 | 国产网站在线免费 | 91天天综合免费看国产 | 美女视频黄 | 成人免费观看网欧美片 | 一本大道香蕉中文在线视频 | 综合精品欧美乱伦 | 国产精品亚洲 | 在线观看国产日韩欧美 |