当前位置:首页 > Windows程序 > 正文

C# 标签打印示例 1

2021-03-27 Windows程序

技术分享

 

本实例是在Webservice 中通过excel做模板来打印标签。
具体需求是:一个订单一页纸打印4行分录,,如果超过4行,则再次按照原格式换纸打印,如果行数未满4行,则补空行。
一、实现步骤:

1、首先在EXCEL 画好模版 
2、在程序中调用EXCEL 填充数据
3、调用EXCEL打印方法打印  

二、源码重点讲解:
1、List<> 泛型集合保存打印的数据,通过它可以删除已经打印过的数据

 示例:
for (int i = 0; i <= list.Count; i++)

 {

        if (i > 0) i--; //每当执行完下一次的时候,将这个值初始化为0,即i-- 

        if (nindex == Convert.ToInt32(pagesize)) break;  //如果超过指定的行数,则跳出循环

        FitemData model = list[i]; 
        ..........
        list.Remove(model); //移除当前行
}
2、While 循环:当条件为真的时候执行循环体,先判断后执行,循环次数不固定
示例:

 while (list.Count > 0)
 {

        PrintExccel(ref list, damountcount.ToString(), FirstPageText.ToString(), PageCount.ToString(), PageSize.ToString(), ref strmes);

        FirstPageText++;

==================================源码讲解===========================

 /// <summary>

 /// 打印方法

 /// </summary>

 /// <param>打印的数据</param>

 /// <param>bug返回的异常信息</param>

 private void Print(DataTable dt, ref string strmes)

 {

        List<FitemData> list = new List<FitemData>();

        decimal damountcount = 0.00M; //合计小写金额

        try

        {

            foreach (DataRow dr in dt.Rows)

            {

                FitemData model = new FitemData();

                model.F_106 = dr["F_106"].ToString();

                model.FAmount = Convert.ToDecimal(dr["FAmount"].ToString()).ToString("f2");

                model.FPrice = Convert.ToDecimal(dr["FPrice"].ToString()).ToString("f2");

                model.FUnitName = dr["FUnitName"].ToString();

                model.Fdate = dr["fdate"].ToString();

                model.Fbillno = dr["fbillno"].ToString();

                model.FQty = dr["FQty"].ToString();

                damountcount += Convert.ToDecimal((model.FAmount));

                list.Add(model);

            } 

 

            int PageSize = Convert.ToInt32(ConfigurationManager.AppSettings["PageSize"]);    //每页行数

            int PageCount = 0;  //总页数

            int FirstPageText = 1; //首页

            PageCount = list.Count % PageSize > 0 ? list.Count / PageSize + 1 : list.Count / PageSize;

 

            while (list.Count > 0)

            {

                PrintExccel(ref list, damountcount.ToString(), FirstPageText.ToString(), PageCount.ToString(), PageSize.ToString(), ref strmes);

                FirstPageText++;

            }

        }

        catch (Exception ex)

        {

            strmes = ex.Message;

        }

   }

 

/// <summary>

/// excel 打印

/// </summary>
/// <param>总记录数</param>

/// <param>小写金额总计</param>

/// <param>页码数</param>

/// <param>每页行数</param>

温馨提示: 本文由Jm博客推荐,转载请保留链接: https://www.jmwww.net/file/68579.html