FastReport使用方法(C/S版)

?前言

這兩天群里一直有群友問一些關于FastReport的問題,結合他們的問題,在這里做一個整理,有不明白的可以加

FastReport?交流群

群???號:554714044

工具

VS2017 +FastReport

?

開始

1.新建項目,添加三個按鈕。預覽、設計、打印

?

2.添加FastReport 引用,這里有三個dll文件

3.思路:首先打印要有模板,要有打印的數據,兩者結合呈現出我們想要的打印格式,然后進行各種操作。這個思路一定要清晰,這樣我們才能知道我們需要做什么。

話不多說上代碼:(這里只給出了最簡單的邏輯)

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using FastReport;namespace FastReportTest
{public partial class Form1 : Form{public Form1(){InitializeComponent();}public string Url = "Test.frx";//文件路徑(目前存放在運行目錄下面,方便調試),后續建議做數據庫文件管理,存放在數據庫Report frt = new Report();/// <summary>/// 打印控件事件開始準備工作/// 獲取打印模板文件/// </summary>private void PrintPrepare(){frt.Load(Url);frt.RegisterData(PrintData(), "Tab1");frt.GetDataSource("Tab1").Enabled = true;}private void 預覽_Click(object sender, EventArgs e){PrintPrepare();frt.Show();}private void 設計_Click(object sender, EventArgs e){PrintPrepare();frt.Design();}private void 打印_Click(object sender, EventArgs e){PrintPrepare();frt.PrintPrepared();frt.PrintSettings.ShowDialog = false;frt.Print();}/// <summary>/// 虛擬打印數據源、/// 數據源建議:/// 1.數據源最好在數據庫建立單獨的表管理,這樣每次要修改打印格式,不用編譯代碼,直接修改數據庫即可/// 2.多個數據源的,如果存在主從關系,建議建立視圖,直接查詢視圖,方便數據處理。/// /// </summary>private DataTable PrintData(){DataTable dt = new DataTable();dt.Columns.Add("ID", typeof(int));dt.Columns.Add("Name", typeof(string));dt.Columns.Add("Price", typeof(decimal));for (int i = 0; i < 10; i++){DataRow dr = dt.NewRow();dr["ID"] = i;dr["Name"] = "測試" + i.ToString();dr["Price"] = i * 10;dt.Rows.Add(dr);}return dt;}}
}

?

FastReport 設置

添加好以上的代碼,我們就可以運行看一下效果

File?

?

Save As :另存為,備份用,不多說

Page Setup:頁面設置,常用Paper:設置紙張規格 Margins:頁邊距

其余三個很少用到。

Printer Setup :打印機設置,這個界面我們可以在打印的時候默認不彈出,如果需要制定打印機或者其他信息,

可以把?frt.PrintSettings.ShowDialog = false; 改成?frt.PrintSettings.ShowDialog = true;即可

Edit

此部分不常用,略

View

這個我們經常用得到。F4 顯示屬性,Data 數據源,Toolbars 顯示工具欄

Insert?

插入一些特殊的格式或字體。其中Subreport 特別注意,我們有的時候需要添加側邊欄的時候用得到。BarCode 添加條形碼或者二維碼。

Report

Report 對應的內容 和點擊左邊Configure的效果是一樣的,都可以添加數據區控制部分。

左側Configure

點擊Configure 我們可以添加我們需要的數據分區,頁頭頁尾,行頭行尾,數據區,分組等

右側Data

此區域設置數據源,系統參數,合計,類型轉換。

DataSources 代表我們注冊進來的數據表

Variables 常用的 Row# 行號;Page# 當前頁;TotalPages#總頁數;

Totals 設置合計,計數,平均數,最大值,最小值使用。

Code

添加一些我們特殊處理的代碼,示例中我寫了一個金額大小寫轉換的例子

 #region 人民幣轉換decimal amount=0;private static string StrTran(string s, string oldv, string newv){return s.Replace(oldv, newv);}/// <summary>/// 轉換大寫人民幣/// </summary>/// <param name="r"></param>/// <returns></returns>public static string RMBToString(decimal r){decimal r1;string s1 = "零壹貳叁肆伍陸柒捌玖";string s2 = "分角元拾佰仟萬拾佰仟億拾佰仟萬";string dx, s;r1 = r;dx = "";if (r1 < 0){r1 *= -1;dx = "";}s = String.Format("{0:f0}", r1 * 100);int len = s.Length;for (int i = 0; i < len; i++){dx = dx + s1.Substring(s[i] - '0', 1) + s2.Substring(len - i - 1, 1);}dx = StrTran(StrTran(StrTran(StrTran(StrTran(dx, "零仟", ""), "零佰", ""), "零拾", ""), "零角", ""), "零分", "");dx = StrTran(StrTran(StrTran(StrTran(StrTran(dx, "零零", ""), "零零", ""), "零億", ""), "零萬", ""), "零元", "");if (dx == "")return "零元整";elsereturn StrTran(StrTran(StrTran(dx, "億萬", "億零"), "零整", ""), "零零", "");}#endregion          

?

?

FastReport?交流群

群???號:554714044

?

轉載于:https://www.cnblogs.com/wangyq2016/p/10132839.html

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/276641.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/276641.shtml
英文地址,請注明出處:http://en.pswp.cn/news/276641.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

如何設置Linux時區為東八區

當我們購買美國VPS或服務器的時候&#xff0c;默認情況下是美國時間。對于我們定時執行某些任務會帶來麻煩&#xff0c;所以需要設置時區為東八區。登錄SSH后&#xff0c;執行tzselect命令。我們這里選擇亞洲5.這里選擇china 9。一般選東八區&#xff08;北京&#xff0c;廣東&…

python刪除兩個excel表中的相同元素_python篩選出兩個文件中重復行的方法

查找A文件中&#xff0c;與B文件中內容不重復的內容#!usr/bin/python import sys import os字符串查找函數&#xff0c;使用二分查找法在列表中進行查詢def binarySearch(value, lines): right len(lines) - 1 left 0 a value.strip() while left < right: middle int((…

求解:nhibernate2.0操作oralce提交事務時報錯

代碼如下: Configuration config new Configuration(); config.AddAssembly("TestCleanSnow"); ISessionFactory factory config.BuildSessionFactory(); ISession session f…

python畫楓葉_python-文件的操作

一、異常 程序在運行的過程中&#xff0c;不可避免出現一些錯誤&#xff0c;這些錯誤成為異常 異常以后的代碼都不會被執行 try 語句 代碼塊&#xff08;可能出現錯誤的語句&#xff09; except 異常類型 as 異常名: 代碼塊(出錯以后執行的語句&#xff09; except 異常類型 as…

記2018年技術人一次短暫的創業

背景 2018年8月底&#xff0c;我全職加入了一家創業公司&#xff0c;具體做什么我暫時先不說吧&#xff0c;我是產品和技術負責人&#xff0c;自己出資了50w&#xff0c;大股東&#xff08;下面簡稱T)也就是ceo是早期阿里出身的中供銷售&#xff0c;從2017年11月開始成立此公司…

如何在Apache環境下配置Rewrite規則

原文鏈接&#xff1a;http://faq.comsenz.com/viewnews-12 URL 靜態化是一個利于搜索引擎的設置&#xff0c;通過 URL 靜態化&#xff0c;達到原來是動態的 PHP 頁面轉換為靜態化的 HTML 頁面&#xff0c;當然&#xff0c;這里的靜態化是一種假靜態&#xff0c;目的只是提高搜…

情 人 節 快 樂

我不善于用詞匯修飾我的句子&#xff0c; 我不善于用表情表達我的心情&#xff0c; 我不善于解讀你那黯然的情緒&#xff0c; 我不善于去響應你小小的呼應&#xff0c; 雖然&#xff0c;你了解我&#xff0c; 你寬容于我&#xff0c; 你聽我訴說&#xff0c; 你陪伴著我…

Windows 10系統安裝JDK1.8與配置環境

第一步&#xff1a;下載JDK1.8 地址:https://www.oracle.com/index.html 第二步&#xff1a; 安裝分兩次&#xff0c;第一次是安裝 jdk &#xff0c;第二次是安裝 jre 。安裝jdk默認的安裝地址為C盤&#xff0c;安裝目錄 \java 之前的目錄修改成你想放的目錄&#xff1b;安裝jr…

python3函數調用時間_Python3 time clock()方法

Python3 time clock()方法 描述 Python 3.8 已移除 clock() 方法 可以使用 time.perf_counter() 或 time.process_time() 方法替代。 Python time clock() 函數以浮點數計算的秒數返回當前的CPU時間。用來衡量不同程序的耗時&#xff0c;比time.time()更有用。 這個需要注意&am…

給apache安裝mod_rewrite模塊

給apache安裝mod_rewrite模塊 原文鏈接&#xff1a;http://opkeep.com/system/linux/apache_mod_rewrite.html 只是用來做參考,相關情況可跟據自己的需求進行修改 如果你的服務器apache還沒有安裝&#xff0c;那很簡單&#xff0c;在編譯apache時將mod_rewrite模塊編譯進去就可…

Oracle9i 問題匯總--不斷更新中

1.創建數據表時&#xff0c;用戶表空間不足&#xff0c;解決方法 ALTER USER USERNAME QUOTA UNLIMITED ON USERS 2.避免在On條件上使用字符串串連 或者 函數。 如&#xff1a;ON 0||S.LIST_NOMS.EXTEND_FIELD 以上SQL語句會造成查詢嚴重變慢&#xff0c;如果非要使用請使用&…

武漢區塊鏈軟件公司:區塊鏈游戲和普通的游戲有什么區別?

武漢區塊鏈軟件公司:區塊鏈游戲和普通的游戲有什么區別&#xff1f;最近&#xff0c;各公鏈DAPP的開發呈迸發之勢&#xff0c;其中有虛擬財物使用的游戲就天然有上鏈的優勢。區塊鏈游戲也被認為是繼金融范疇之后第二個取得區塊鏈落地使用場景范疇。為什么游戲類DAPP能得到快速展…

git安裝與配置_git 安裝及基本配置

git 基本上來說是開發者必備工具了&#xff0c;在服務器里沒有 git 實在不太能說得過去。何況&#xff0c;沒有 git 的話&#xff0c;面向github編程 從何說起&#xff0c;如同一個程序員斷了左膀右臂。你對流程熟悉后&#xff0c;只需要一分鐘便可以操作完成原文地址: 服務器 …

Apache偽靜態學習

原文鏈接&#xff1a;http://www.benben.cc/blog/?p305 Apache中有著這樣一個模塊&#xff0c;它默默無聞&#xff0c;卻是URL操作的瑞士軍刀&#xff01;有人這樣評價它&#xff1a;“盡管它的例子和文檔數量可以以噸來計算&#xff0c;但它仍然是巫術&#xff0c;該死的巫術…

不同的容器里實現 RadioButton的單選

請教一個各位牛人一個問題&#xff0c;如圖&#xff1a; &#xff08;問題解決&#xff0c;見后面的解決方案~~&#xff09; 怎么在不同的winform容器(GroupBox)里實現 RadioButton &#xff08;如圖中兩個“詳細照會”&#xff09;的單選&#xff0c;請各位牛人給出實現的思…

html調用接口_搜狗ocr識別接口

詳細情況在代碼中說明&#xff0c;如果不想自己使用TensorFlow&#xff0c;可使用下面接口這是要識別的圖片&#xff1a;最終識別的結果&#xff1a;This is a lot of 12 point text to test theocr code and see if it works on all typesof file format.The quick brown dog …

CSAcademy Or Problem

傳送門 一口大鍋&#xff08; 斜率的確是有單調性 并且可以進行凸優化的 明明是證出來的 為什么自己就不相信呢&#xff08; 我們發現對于當前點作為擴展的右端點 那么他前面至多有20個點會影響到這一段區間的或值 我們可以預處理記錄出來這些節點的位置 很明顯 答案隨著右端點…

apache的rewrite模塊實例操作

原文鏈接&#xff1a;http://blog.5ilinux.com/archives/2006/01/apacherewrite.html 我們的目標是把http://www.bulknews.cn/show.php?id1014700通過rewrite的url重寫&#xff0c;使可以直接http://www.bulknews.cn/1014700.html訪問 1.首先配置apache的httpd.conf&#xf…

哈佛圖書館的二十條訓言

1.此刻打盹&#xff0c;你將做夢;而此刻學習&#xff0c;你將圓夢。 2.我荒廢的今日&#xff0c;正是昨日殞身之人祈求的明日。 3.覺得為時已晚的時候&#xff0c;恰恰是最早的時候。 4.勿將今日之事拖到明日。 5.學習時的苦痛是暫時的&#xff0c;未學到的痛苦是終生的。 6.學…

python截取關鍵字后的字符串_使用正則表達式獲取python中特定字符串之后的所有內容...

如果要使用正則表達式&#xff0c;請使用re.findall&#xff1a;re.findall((?<com/).*$, "www.example.com/thedubaimall") # [thedubaimall] 一些速度測試有DeepSpace的建議&#xff1a;%timeit re.findall((?<com/).*$, "www.example.com/thedubaima…