翻譯|使用教程|編輯:李顯亮|2020-08-24 10:27:50.550|閱讀 641 次
概述:Delphi編程語(yǔ)言,即Turbo Pascal,已經(jīng)成為許多開(kāi)發(fā)者的起點(diǎn)。在本文中,將使用FastReport VCL報(bào)表生成器來(lái)創(chuàng)建收據(jù)本身,并使用用戶(hù)應(yīng)用程序來(lái)打印它。
# 界面/圖表報(bào)表/文檔/IDE等千款熱門(mén)軟控件火熱銷(xiāo)售中 >>
相關(guān)鏈接:
報(bào)表生成器FastReport VCL是用于在軟件中集成商務(wù)智能的現(xiàn)代解決方案。它提供了可視化模板設(shè)計(jì)器,可以訪問(wèn)最受歡迎的數(shù)據(jù)源,報(bào)告引擎,預(yù)覽,將過(guò)濾器導(dǎo)出為30多種格式,并可以部署到云,Web,電子郵件和打印中。
近日,F(xiàn)astReport VCL更新至v6.7,在新版本中,添加了對(duì)最新版本IDE的支持,簡(jiǎn)化了用于付款標(biāo)準(zhǔn)的條形碼的創(chuàng)建,新增從預(yù)覽窗口直接編輯RichView的功能,同時(shí)修復(fù)了多個(gè)Bug問(wèn)題。歡迎下載體驗(yàn)。(點(diǎn)擊下方按鈕下載)
Delphi編程語(yǔ)言,即Turbo Pascal,已經(jīng)成為許多開(kāi)發(fā)者的起點(diǎn)。由于簡(jiǎn)單明了的語(yǔ)法和以程序化風(fēng)格編寫(xiě)的能力,它變得非常容易學(xué)習(xí)。很多人將它與Visual Basic進(jìn)行比較,但在其流行的高峰期,Delphi給了更多的機(jī)會(huì),這要?dú)w功于它的數(shù)據(jù)庫(kù)工作組件和自己的數(shù)據(jù)庫(kù)--Interbase。
盡管C #和.Net平臺(tái)取代了Delphi和VCL,但仍有大量的擁護(hù)者。即使是用這種語(yǔ)言編寫(xiě)的舊應(yīng)用程序也可以使用現(xiàn)代庫(kù)輕松升級(jí),例如FastReport 6 VCL報(bào)表生成器。例如,自動(dòng)化會(huì)計(jì)系統(tǒng)需要報(bào)表。
一個(gè)自動(dòng)化的銷(xiāo)售會(huì)計(jì)系統(tǒng)應(yīng)該允許形成付款單據(jù),如銷(xiāo)售收據(jù)。在本文中,將探討如何從Delphi應(yīng)用程序中創(chuàng)建和打印銷(xiāo)售收據(jù)。我們將使用FastReport VCL報(bào)表生成器來(lái)創(chuàng)建收據(jù)本身,并使用用戶(hù)應(yīng)用程序來(lái)打印它。除了打印之外,還可以簡(jiǎn)單地將收據(jù)顯示在報(bào)表查看窗口中,可以從該窗口中打印收據(jù),將其保存為流行的文檔格式之一,將其作為電子郵件發(fā)送或上傳到云存儲(chǔ)中。
要?jiǎng)?chuàng)建銷(xiāo)售收據(jù),我們需要的信息有:訂單、客戶(hù)、賣(mài)家和訂單內(nèi)容。
在本文中,將使用FastReport VCL發(fā)行版中的demo.mdb數(shù)據(jù)庫(kù)。為了創(chuàng)建應(yīng)用程序,將使用Delphi 7開(kāi)發(fā)環(huán)境。
首先,讓我們?cè)诒韱沃刑砑觾蓚€(gè)按鈕:一個(gè)用于運(yùn)行報(bào)表設(shè)計(jì)器,另一個(gè)用于顯示或打印成品報(bào)表。將OpenDialog組件也添加到表單中--這將允許我們選擇所需的報(bào)表文件來(lái)打開(kāi)。
現(xiàn)在讓我們繼續(xù)為報(bào)表創(chuàng)建一個(gè)數(shù)據(jù)源--銷(xiāo)售收據(jù)。如上所述,我們使用的是demo.mdb數(shù)據(jù)庫(kù),或者更準(zhǔn)確的說(shuō)是表。訂單,客戶(hù),項(xiàng)目,零件和員工。我們將使用ADOConnection組件連接到數(shù)據(jù)庫(kù),并使用ADOTable組件從每個(gè)表中獲取數(shù)據(jù)。Orders表與Customers、Items和Employees表相連。因此,我們需要設(shè)置這些連接。為此,為每個(gè)ADOTable添加一個(gè)DataSource組件,為了使所有這些表在報(bào)表中可用,為每個(gè)表添加frxBDDataSet組件。
因此,要使用一個(gè)表,我們應(yīng)該獲得三個(gè)組件:ADOTable,DataSource,frxDBDataSet。
在ADOConnection中,從FastReport VCL交付創(chuàng)建到demo.mdb數(shù)據(jù)庫(kù)的連接。這些組件設(shè)置(針對(duì)五個(gè)表中的每個(gè))如下所示。
訂單表:
1.對(duì)于ADOTable,設(shè)置屬性:
2.對(duì)于DataSource,設(shè)置屬性:
?數(shù)據(jù)集–訂單。
3.對(duì)于frxDBDataSet,設(shè)置屬性:
?數(shù)據(jù)集–訂單;
?用戶(hù)名–訂單。
客戶(hù)表:
1.對(duì)于ADOTable,設(shè)置屬性:
2.對(duì)于數(shù)據(jù)源,設(shè)置屬性:
?數(shù)據(jù)集–客戶(hù)。
3.對(duì)于frxDBDataSet,設(shè)置屬性:
?數(shù)據(jù)集–客戶(hù);
?用戶(hù)名–客戶(hù)。
項(xiàng)目表:
1.對(duì)于ADOTable,設(shè)置屬性:
2.對(duì)于數(shù)據(jù)源,設(shè)置屬性:
?數(shù)據(jù)集–項(xiàng)目。
3.對(duì)于frxDBDataSet,設(shè)置屬性:
?數(shù)據(jù)集–項(xiàng)目;
?用戶(hù)名–項(xiàng)目。
零件表:
1.對(duì)于ADOTable,設(shè)置屬性:
2.對(duì)于數(shù)據(jù)源,設(shè)置屬性:
?數(shù)據(jù)集–零件。
3.對(duì)于frxDBDataSet,設(shè)置屬性:
?數(shù)據(jù)集–零件;
?用戶(hù)名–零件。
員工表:
1.對(duì)于ADOTable,設(shè)置屬性:
2.對(duì)于數(shù)據(jù)源,設(shè)置屬性:
?數(shù)據(jù)集–員工。
3.對(duì)于frxDBDataSet,設(shè)置屬性:
?數(shù)據(jù)集–員工;
?用戶(hù)名–員工。
客戶(hù)表、項(xiàng)目表和雇員表與DataSource1(第一個(gè)表--訂單)有關(guān)系。它們通過(guò)鍵連接,因此對(duì)于訂單表中的一條記錄,將選擇這些表中的相應(yīng)記錄。
項(xiàng)目表包含了訂單中的項(xiàng)目信息。沒(méi)有關(guān)于項(xiàng)目的具體數(shù)據(jù)--只有一個(gè)到零件表的鏈接。讓我們從零件表中添加兩個(gè)字段--價(jià)格和描述--到物品表的ADOTable中。這樣,我們以后就不需要使用Parts表了。
要將可計(jì)算字段添加到Items表中,雙擊ADOTable對(duì)象,就會(huì)看到一個(gè)包含表字段的窗口。最初它是空的,但你可以從上下文菜單中選擇添加字段......來(lái)加載它們。
價(jià)格和描述字段將從 "零件 "表中提取。在上下文菜單中選擇 "新建字段... "并添加價(jià)格字段。
以同樣的方式添加產(chǎn)品描述(描述字段)。
現(xiàn)在,只要我們創(chuàng)建了數(shù)據(jù)源并配置了表之間的關(guān)系,讓我們?cè)诒韱沃刑?加幾個(gè)按鈕。你可能還記得,第一個(gè)按鈕是啟動(dòng)報(bào)表設(shè)計(jì)器,第二個(gè)按鈕是顯示報(bào)表。不要忘記在表單中添加frxReport組件。
為每個(gè)按鈕添加一個(gè)點(diǎn)擊事件。下面是顯示報(bào)表設(shè)計(jì)器的事件處理程序代碼。
frxReport1.DesignReport();
要打印完成的報(bào)表,可以在表單中添加 "打開(kāi)文件 "對(duì)話(huà)框,選擇在設(shè)計(jì)器中創(chuàng)建的報(bào)表。打印報(bào)表的代碼將是這樣的。
OpenDialog1.Filter := 'FastReport VCL (*.fr3)|*.FR3'; OpenDialog1.Execute(); if Length(OpenDialog1.FileName)>0 then begin frxReport1.LoadFromFile(OpenDialog1.FileName); frxReport1.PrepareReport(); frxReport1.Print(); end
如果需要預(yù)覽報(bào)告,可以將“打印”功能替換為“報(bào)告”顯示:
frxReport1.ShowReport();
現(xiàn)在你可以運(yùn)行該應(yīng)用程序,點(diǎn)擊設(shè)計(jì)報(bào)表按鈕,然后進(jìn)行報(bào)表創(chuàng)建。
首先,選擇報(bào)表數(shù)據(jù)集。
我們?cè)谶@個(gè)報(bào)表中不需要零件表,所以不需要選擇它。我們繼續(xù)創(chuàng)建模板。在我們的報(bào)表中,有兩個(gè)數(shù)據(jù)帶。MasterData和DetailData。在第一個(gè)數(shù)據(jù)帶中,我們輸出的是客戶(hù)的信息。
以及客戶(hù)的其他信息:
該范圍鏈接到“訂單”表。訂單的內(nèi)容信息將顯示在下級(jí)數(shù)據(jù)帶中:產(chǎn)品名稱(chēng),數(shù)量,項(xiàng)目?jī)r(jià)格,指定數(shù)量的價(jià)格。總計(jì)-例如總凈額,稅率,最終金額(含稅)-將顯示在頁(yè)腳中。
行總小計(jì)的計(jì)算方法是將數(shù)量和物料價(jià)格相乘作為單個(gè)表項(xiàng)的一部分:
在這里我們可以說(shuō)我們的報(bào)告已準(zhǔn)備好顯示。將其保存到本地存儲(chǔ),然后關(guān)閉報(bào)表設(shè)計(jì)器。使用表單上的第二個(gè)按鈕,選擇保存的報(bào)告并進(jìn)行打?。ㄈ绻诖a中使用了打印選項(xiàng)),或者如果選擇了報(bào)告預(yù)覽選項(xiàng)– ShowReport(),則對(duì)其進(jìn)行預(yù)覽。
就是這樣,你只需花費(fèi)很少的精力,就可以為你的會(huì)計(jì)系統(tǒng)實(shí)現(xiàn)有用的功能。幾乎不費(fèi)吹灰之力,您就可以為您的會(huì)計(jì)系統(tǒng)實(shí)現(xiàn)有用的功能?,F(xiàn)在,從報(bào)表查看窗口,你可以打印它或保存在流行的文件格式之一。PDF, DOCS, XLSX, XML, RTF和許多其他格式。
還想要更多嗎?您可以點(diǎn)擊閱讀【FastReport 報(bào)表2020最新資源盤(pán)點(diǎn)】,查找需要的教程資源。如果您有任何疑問(wèn)或需求,請(qǐng)隨時(shí)加入FastReport技術(shù)交流群(783996712),我們很高興為您提供查詢(xún)和咨詢(xún)。
本站文章除注明轉(zhuǎn)載外,均為本站原創(chuàng)或翻譯。歡迎任何形式的轉(zhuǎn)載,但請(qǐng)務(wù)必注明出處、不得修改原文相關(guān)鏈接,如果存在內(nèi)容上的異議請(qǐng)郵件反饋至chenjj@fc6vip.cn