先看看列印入庫單的效果圖,看如下: 客戶要求合計一行,要求大寫中文數字。XtraReport報表是如何做出以上圖的效果呢?因為是要把數字轉成大寫中文數字,得先準備數字轉大寫中文數字的函數。因網上有很多方法,我這裡就不上傳代碼了。這裡只說一下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一定要修改一下。如下圖: