0
レポートビューアを含むWindowsフォームがあります。現在のところ、私は印刷アイコンをフォームの上に使用してのみ印刷できます。レポートビューアコントロールの設計時にレポートを.rdlcに設定しました。これは、フォームの読み込みイベントに私のコードです:ショートカットキーを使用して既存のレポートビューアを印刷する
private void BillViewer_Load(object sender, EventArgs e)
{
reportViewer1.SetDisplayMode(DisplayMode.PrintLayout);
reportViewer1.ZoomMode = ZoomMode.PageWidth;
DataTable tempDt = CafePOS.Menu.Model.MenuModel.GetOrderSummary(table_reservation_id);
DataTable billDt = new DataTable();
billDt.Columns.Add("menu_item_name");
billDt.Columns.Add("menu_rate");
billDt.Columns.Add("qty");
billDt.Columns.Add("total");
int numOfCols = 0;
foreach (DataRow dr in tempDt.Rows)
{
billDt.Rows.Add(dr["menu_item_name"], (dr["menu_rate"]), (dr["qty"]), (dr["total"]));
numOfCols++;
}
billDataDT = billDt;
//calculate total
decimal totalCal = 0;
foreach (DataRow drr in tempDt.Rows)
{
totalCal += decimal.Parse(drr["total"].ToString());
}
total = totalCal.ToString();
grandTotal = grandTotal.ToString();
discount = discount.ToString();
received = "0.00";
returnAmt = "0.00";
Main.CommonDataSet.bill_dtDataTable DSbillDt = new Main.CommonDataSet.bill_dtDataTable();
DSbillDt.Clear();
IDataReader idr = DSbillDt.CreateDataReader();
DSbillDt.Load(idr, LoadOption.OverwriteChanges);
ReportDataSource rds = new ReportDataSource("CDS", billDataDT);
reportViewer1.LocalReport.DataSources[0] = rds;
List<ReportParameter> rpc = new List<ReportParameter>();
rpc.Add(new ReportParameter("billDate", DateTime.Now.ToShortDateString()));
rpc.Add(new ReportParameter("companyName", Library.GlobalValue.company_name));
rpc.Add(new ReportParameter("companyAddress", Library.GlobalValue.address));
rpc.Add(new ReportParameter("companyPhone", Library.GlobalValue.phone));
rpc.Add(new ReportParameter("total", total));
rpc.Add(new ReportParameter("grandTotal", grandTotal));
rpc.Add(new ReportParameter("discount", discount));
rpc.Add(new ReportParameter("cashReceived", received));
rpc.Add(new ReportParameter("cashReturned", returnAmt));
reportViewer1.LocalReport.SetParameters(rpc);
this.reportViewer1.RefreshReport();
}
private void BillViewer_KeyDown(object sender, KeyEventArgs e)
{
if (e.KeyCode == Keys.P)
{
//print report
}
}
KeyDownイベントイベントで、私はのReportViewerコントロールにロードされているレポートを印刷したいです。どうすればいいですか? ありがとうございます。
あなたの先生をお願いします。あなたは私の多くの時間と労力を節約しました –