public virtual CrystalDecisions.CrystalReports.Engine.ReportDocument CreateReport() { TempoRegiRyousyuusyo_Receipt rpt = new TempoRegiRyousyuusyo_Receipt(); rpt.Site = this.Site; return(rpt); }
/// <summary> /// レシート出力 /// </summary> /// <param name="data">データ</param> private void OutputReceipt(DataTable data) { var receiptDataSet = new Receipt_DataSet(); for (var index = 0; index < data.Rows.Count; index++) { var row = data.Rows[index]; if (string.IsNullOrWhiteSpace(ConvertDateTime(row["IssueDateTime"], false))) { // 発行日時がないデータは出力対象外 continue; } // 共通データ var salesNO = Convert.ToString(row["SalesNO"]); // 売上番号 var storeReceiptPrint = Convert.ToString(row["StoreReceiptPrint"]); // 店舗レシート表記 var staffReceiptPrint = Convert.ToString(row["StaffReceiptPrint"]); // 担当レシート表記 #region 店舗データ if (receiptDataSet.StoreTable.Rows.Count == 0) { var store = receiptDataSet.StoreTable.NewStoreTableRow(); store.Logo = (byte[])row["Logo"]; store.CompanyName = Convert.ToString(row["CompanyName"]); store.StoreName = Convert.ToString(row["StoreName"]); // 店舗名 store.Address1 = Convert.ToString(row["Address1"]); // 住所1 store.Address2 = Convert.ToString(row["Address2"]); // 住所2 store.TelephoneNO = Convert.ToString(row["TelephoneNO"]); // 電話番号 store.StoreReceiptPrint = Convert.ToString(row["StoreReceiptPrint"]); // 店舗レシート表記 // メッセージ store.Char3 = Convert.ToString(row["Char3"]); store.Char4 = Convert.ToString(row["Char4"]); // receiptDataSet.StoreTable.Rows.Add(store); } #endregion // 店舗データ #region 販売データ var sales = receiptDataSet.SalesTable.NewSalesTableRow(); sales.StoreReceiptPrint = storeReceiptPrint; // 店舗レシート表記 sales.StaffReceiptPrint = staffReceiptPrint; // 担当レシート表記 sales.SalesNO = salesNO; // 売上番号 sales.IssueDate = ConvertDateTime(row["IssueDateTime"], true); // 発行日 sales.IssueDateTime = ConvertDateTime(row["IssueDateTime"], false); // 発行日時 // 再発行日時 var reIssueDateTime = ConvertDateTime(row["ReIssueDateTime"], false); sales.ReIssueDateTime = string.IsNullOrWhiteSpace(reIssueDateTime) ? null : reIssueDateTime + " 再発行"; sales.JanCD = Convert.ToString(row["JanCD"]); // JANCD var kakaku = ConvertDecimal(row["Kakaku"]); // 価格 //数量が0の場合は1として処理、その場合、単価は価格を割り当てる var salesSU = ConvertDecimal(row["SalesSU"]); if (string.IsNullOrWhiteSpace(salesSU)) { sales.SalesSU = "1"; // 数量 sales.SalesUnitPrice = kakaku; // 単価 } else { sales.SalesSU = salesSU; // 数量 sales.SalesUnitPrice = @"@" + ConvertDecimal(row["SalesUnitPrice"]); // 単価 } sales.SalesGaku = kakaku; // 価格 sales.SalesTax = ConvertDecimal(row["SalesTax"]); // 売上消費税額 sales.SalesTaxRate = ConvertDecimal(row["SalesTaxRate"]) == "8" ? "*" : ""; // 税率 sales.TotalGaku = ConvertDecimal(row["TotalGaku"]); // 販売合計額 // 商品名 var encoding = System.Text.Encoding.GetEncoding("Shift_JIS"); var skuShortName = Convert.ToString(row["SKUShortName"]); byte[] skuShortNameBT = encoding.GetBytes(skuShortName); if (skuShortNameBT.Length < SKU_SHORTNAME_LENGTH) { sales.SKUShortName1 = skuShortName; sales.SKUShortName2 = ""; } else { sales.SKUShortName1 = encoding.GetString(skuShortNameBT, 0, SKU_SHORTNAME_LENGTH); sales.SKUShortName2 = encoding.GetString(skuShortNameBT, SKU_SHORTNAME_LENGTH, skuShortNameBT.Length - SKU_SHORTNAME_LENGTH); } #region 合計データ sales.SumSalesSU = ConvertDecimal(row["SumSalesSU"]); // 小計数量 sales.Subtotal = ConvertDecimal(row["Subtotal"]); // 小計金額 sales.TargetAmount8 = ConvertDecimal(row["TargetAmount8"]); // 消費税対象額8% sales.ConsumptionTax8 = ConvertDecimal(row["ConsumptionTax8"]); // 内消費税等8% sales.TargetAmount10 = ConvertDecimal(row["TargetAmount10"]); // 消費税対象額10% sales.ConsumptionTax10 = ConvertDecimal(row["ConsumptionTax10"]); // 内消費税等10% sales.Total = ConvertDecimal(row["Total"]); // 合計 #endregion // 合計データ #region 支払方法 sales.PaymentName1 = Convert.ToString(row["PaymentName1"]); // 支払方法名1 sales.PaymentAmount1 = ConvertDecimal(row["AmountPay1"]); // 支払方法額1 sales.PaymentName2 = Convert.ToString(row["PaymentName2"]); // 支払方法名2 sales.PaymentAmount2 = ConvertDecimal(row["AmountPay2"]); // 支払方法額2 sales.PaymentName3 = Convert.ToString(row["PaymentName3"]); // 支払方法名3 sales.PaymentAmount3 = ConvertDecimal(row["AmountPay3"]); // 支払方法額3 sales.PaymentName4 = Convert.ToString(row["PaymentName4"]); // 支払方法名4 sales.PaymentAmount4 = ConvertDecimal(row["AmountPay4"]); // 支払方法額4 sales.PaymentName5 = Convert.ToString(row["PaymentName5"]); // 支払方法名5 sales.PaymentAmount5 = ConvertDecimal(row["AmountPay5"]); // 支払方法額5 sales.PaymentName6 = Convert.ToString(row["PaymentName6"]); // 支払方法名6 sales.PaymentAmount6 = ConvertDecimal(row["AmountPay6"]); // 支払方法額6 sales.PaymentName7 = Convert.ToString(row["PaymentName7"]); // 支払方法名7 sales.PaymentAmount7 = ConvertDecimal(row["AmountPay7"]); // 支払方法額7 sales.PaymentName8 = Convert.ToString(row["PaymentName8"]); // 支払方法名8 sales.PaymentAmount8 = ConvertDecimal(row["AmountPay8"]); // 支払方法額8 sales.PaymentName9 = Convert.ToString(row["PaymentName9"]); // 支払方法名9 sales.PaymentAmount9 = ConvertDecimal(row["AmountPay9"]); // 支払方法額9 sales.PaymentName10 = Convert.ToString(row["PaymentName10"]); // 支払方法名10 sales.PaymentAmount10 = ConvertDecimal(row["AmountPay10"]); // 支払方法額10 #endregion // 支払方法 #region お釣りデータ sales.Refund = ConvertDecimal(row["Refund"]); // 釣銭 sales.SalesLastPoint = ConvertDecimal(row["SalesLastPoint"]); // 今回ポイント sales.CustomerLastPoint = ConvertDecimal(row["CustomerLastPoint"]); // 合計ポイント sales.CustomerLastPoint = string.IsNullOrWhiteSpace(sales.CustomerLastPoint) ? "0" : sales.CustomerLastPoint; #endregion // お釣りデータ #endregion // 販売データ receiptDataSet.SalesTable.Rows.Add(sales); } var report = new TempoRegiRyousyuusyo_Receipt(); report.SetDataSource(receiptDataSet); report.Refresh(); report.PrintOptions.PrinterName = StorePrinterName; report.PrintToPrinter(0, false, 0, 0); // 発行済更新、ログ更新 bl.D_UpdateDepositHistory(txtSalesNO.Text, true, InOperatorCD, InProgramID, InPcID); }