在水晶报表中如何将Boolean类型转换为string类型

有时你会不会有这种感觉,就是有对类型转换的烦恼,其中我有就在做水晶报表的时候对Bolean类型烦恼过,因为在数据库中有个字段是bit类型,bit类型只认true或者false,所以在打印水晶报表的时候,要是从数据库中找出数据,那么那个字段就会被打印出true或者false,那问题又来了,怎样让它打印出来是字符串类型呢?
做法挺简单,来看一下吧,先看一下效果图:
在这里插入图片描述
在这里我的处理状态在数据库中就是bit类型,在C#中是Boolean类型,在打印的时候,处理状态就是true或者false,而我需要的效果就是,打印出来是我想要的汉字,那就得是字符串String类型。
1、首先需要创建一个类,在类里面写入字符串形式的处理状态:

public string strSaleLndentState { get; set; }

2、然后再到控制器中在查询打印的数据里面将定义好的处理状态设置为空:
strSaleLndentState = “”
3、最后利用foreach循环将数据判断以便,假如在数据库中的处理状态为true,那么就设置
strSaleLndentState为已审核未转销售,为false的话就设置为未审。

思路就是这样,接下来看一下完整的代码:

public ActionResult PrintSaleLndent()
{ 
     //数据查询&条件筛选(SellVo是我创建的一个类)
      List<SellVo> listSellIndent = (from tbSellIndent in myModels.PW_SaleLndent
                                     select new SellVo{
                                   SaleLndentID = tbSellIndent.SaleLndentID,
            strSaleLndentDeta = tbSellIndent.SaleLndentDeta.ToString(),//业务日期
            SaleLndentNum = tbSellIndent.SaleLndentNum, //单据编号
            SaleLndentState = tbSellIndent.SaleLndentState, //bool类型的处理状态
            strSaleLndentState = "",   //string类型的处理状态
       }).ToList();
       //遍历循环
       foreach (var item in listSellIndent)
        {
                if (item.SaleLndentState == false)
                {
                    item.strSaleLndentState = "未审核";
                }
                else
                {
                    item.strSaleLndentState = "已审核未转销售";
                }
         } 
            //将查询出来的数据转化为DataTable的格式
            DataTable dtResult = LINQToDataTable(listSellIndent);
            //1、将数据集实例化
            PrintReport.ReportDB dbReport = new PrintReport.ReportDB();
            //2、将dtResult放入数据集中名为“tbSaleLndent”的表格中
            dbReport.Tables["tbSaleLndent"].Merge(dtResult);
            //3、将数据报表实例化
            PrintReport.SaleLndentReport report = new PrintReport.SaleLndentReport();
            //4、获取报表的物理文件路径(就是存放文件的路径)
            string strRpPath = Server.MapPath("~/")+ "Areas\\HuiGuanHuo\\PrintReport\\SaleLndentReport.rpt";
            //5、将报表数据加载到报表模板中
            report.Load(strRpPath);
            //6、设置报表的数据源
            report.SetDataSource(dbReport);
            //7、将报表转化为文件流输出
            Stream dbStream = report.ExportToStream(CrystalDecisions.Shared.ExportFormatType.PortableDocFormat);
            return File(dbStream, "application/pdf");
}

这里还要说一下注意事项,因为打印出来的处理状态是字符串,所以在数据集中的表格里面处理状态的字段就要写成SellVo中设置为字符串的那个处理状态(strSaleLndentState),所以数据集里面的那个字段的数据类型就要设置为System.String,
这样打印出来的处理状态才是字符串形式,才能实现你想要的效果。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值