当前位置: 移动技术网 > IT编程>开发语言>.net > FastReport使用方法(C/S版)

FastReport使用方法(C/S版)

2018年12月18日  | 移动技术网IT编程  | 我要评论

天使出更国语,女总统音译歌词,黑龙江11选5任选三技巧-上竤彩玩

 前言

这两天群里一直有群友问一些关于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 "零元整";
      else
        return strtran(strtran(strtran(dx, "亿万", "亿零"), "零整", "整"), "零零", "零");
    }
    #endregion          
   

 

 

fastreport 交流群

554714044

 

如对本文有疑问,请在下面进行留言讨论,广大热心网友会与你互动!! 点击进行留言回复

相关文章:

验证码:
移动技术网