• XtraReport报表入库单数字转中文大写数字


    先看看打印入库单的效果图,看如下:

    客户要求合计一行,要求大写中文数字。XtraReport报表是如何做出以上图的效果呢?因为是要把数字转成大写中文数字,得先准备数字转大写中文数字的函数。因网上有很多方法,我这里就不上传代码了。这里只说一下XtraReport报表创建以上收货单报表大写数字操作。新建一个XtraReport报表,设置好收货单报表格式。使用的是运行时绑定数据,以下是源码:

     1 public EnterStockRpt(DataSet ds)
     2         {
     3             InitializeComponent();
     4             //绑定主表 
     5             DataSource = ds;
     6             DataMember = "parent";
     7             xlSupplierName.DataBindings.Add("Text", ds, "SupplierName");
     8             xlEnterStockID.DataBindings.Add("Text", ds, "EnterStockID");            
     9             xlEnterDate.DataBindings.Add("Text", ds, "EnterDate","{0:D}");
    10             //绑定从表 
    11             DetailReport.DataSource = ds;
    12             DetailReport.DataMember = "R1";
    13             xtProductID.DataBindings.Add("Text", ds, "R1.ProductID");
    14             xtProductName.DataBindings.Add("Text", ds, "R1.ProductName");
    15             xtProductUnit.DataBindings.Add("Text", ds, "R1.ProductUnit");
    16             xtQuantity.DataBindings.Add("Text", ds, "R1.Quantity");
    17             xtPrice.DataBindings.Add("Text", ds, "R1.Price");
    18             xtAmountMoney.DataBindings.Add("Text", ds, "R1.AmountMoney");
    19             //合计
    20             xrTableCellGroupSumAccount.DataBindings.Add("Text", ds, "R1.AmountMoney");
    21             xrTableCellGroupSumAccount.Summary = new XRSummary(SummaryRunning.Report, SummaryFunc.Sum, string.Empty);
    22             //数字转中文大写数字
    23             xrTableCellGroupSumAccountChina.DataBindings.Add("Text", ds, "EnterStockMoneys");
    24             totalMoney = Convert.ToDecimal(GetCurrentColumnValue("EnterStockMoneys"));
    25         }
    View Code

    假如大写后面的表格名称是:xrTableCellGroupSumAccountChina。添加SummaryGetResult的事件。以下是源码:

    private void xrTableCellGroupSumAccountChina_SummaryGetResult(object sender, SummaryGetResultEventArgs e)
            {
                //这里的全局函数Turn_MoneyToBig(),用作将金额变成中文大写
                e.Result = CmycurD(totalMoney);
                //e.Handled=true;这一行必须
                e.Handled = true;
            }
    View Code

    做完以上操作,如果你现在就测试预览。数字一定不会转成大写数字。原因很简单,xrTableCellGroupSumAccountChina的属性Summary一定要修改一下。如下图:

  • 相关阅读:
    【BZOJ1029】[JSOI2007] 建筑抢修(堆优化贪心)
    【CF799B】T-shirt buying(一道很水的小根堆)
    【BZOJ1076】[SCOI2008] 奖励关(状压DP)
    【BZOJ1087】[SCOI2005] 互不侵犯King(状压DP)
    【BZOJ3209】花神的数论题(数位DP)
    【BZOJ1833】[ZJOI2010] count 数字计数(数位DP)
    【洛谷】CYJian的水题大赛 解题报告
    【洛谷3959】宝藏(随机算法乱搞)
    【洛谷2709】小B的询问(莫队模板题)
    【洛谷2403】[SDOI2010] 所驼门王的宝藏(Tarjan+dfs遍历)
  • 原文地址:https://www.cnblogs.com/herojy886/p/11267162.html
Copyright © 2020-2023  润新知