using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Windows.Forms; using Common; using Microsoft.Reporting.WinForms; using System.Reflection; namespace PersonalLaundry { public partial class ReportConsoleForm : Form { public int intCustomerID = 0; public OperatorLogin operatorLogin; public ReportConsoleForm(OperatorLogin operatorLogin) { this.operatorLogin = operatorLogin; InitializeComponent(); } private void ReportConsoleForm_Load(object sender, EventArgs e) { LoadCustomerComboBox(); this.reportViewer1.RefreshReport(); } private void btnViewReport_Click(object sender, EventArgs e) { Cursor.Current = Cursors.WaitCursor; loadReport(); Cursor.Current = Cursors.Default; } private void LoadCustomerComboBox() { using (var db = new DataModel()) { var customers = db.Customers.OrderBy(c => c.Name).ToList(); customers.Insert(0, new Customer() { CustomerId = 0, Name = "- Select -" }); cmbCustomer.DataSource = customers; cmbCustomer.ValueMember = "CustomerId"; cmbCustomer.DisplayMember = "Name"; cmbCustomer.Enabled = true; } } private void loadReport() { if(rbtnOutstandingOrderReport.Checked) { loadOutstandingOrderReport2(); } else if(rbtnBagRecon.Checked) { loadBagReconReport(); } } //Sets the Report datasource public void setDataSources(string dsName, DataTable dt) { //Set processing mode and reset viewer reportViewer1.ProcessingMode = Microsoft.Reporting.WinForms.ProcessingMode.Local; ReportDataSource reportDSDetail = new ReportDataSource(dsName, dt); reportViewer1.LocalReport.DataSources.Add(reportDSDetail); reportViewer1.RefreshReport(); reportViewer1.Visible = true; this.reportViewer1.RefreshReport(); } //REPORTS********************************************************** //private void loadOutstandingOrderReport() //{ // intCustomerID = int.Parse(cmbCustomer.SelectedValue.ToString()); // DataTable dt1 = new DataTable(); // using (var db = new DataModel()) // { // //get result set // //List list = db.rptOutstandingOrders(1).ToList(); // List list = db.rptOutstandingOrders(int.Parse(cmbCustomer.SelectedValue.ToString())).ToList(); //Replace with customer code // //add column to datatable // dt1.Columns.Add("Client"); // //add list rows to datatable // for (var i = 0; i < list.Count; i++) // { // DataRow row = dt1.NewRow(); // row["Client"] = list[i]; // dt1.Rows.Add(row); // } // } // //setup report // reportViewer1.Reset(); // reportViewer1.LocalReport.ReportEmbeddedResource = "PersonalLaundry.rptOutstandingOrderReport.rdlc"; // //Set Data Sources // setDataSources("dsOutstandingOrder", dt1); // //reportViewer1.LocalReport.SubreportProcessing += // // new SubreportProcessingEventHandler(SubreportProcessingEventOutstandingOrderReport); // reportViewer1.LocalReport.Refresh(); // reportViewer1.Visible = true; // reportViewer1.LocalReport.DisplayName = "Outstanding Order Report"; // reportViewer1.SetDisplayMode(Microsoft.Reporting.WinForms.DisplayMode.PrintLayout); // reportViewer1.ZoomMode = ZoomMode.PageWidth; // dt1 = null; // reportViewer1.LocalReport.SubreportProcessing += // new SubreportProcessingEventHandler(SubreportProcessingEventOutstandingOrderReport); //} //public void SubreportProcessingEventOutstandingOrderReport(object sender, SubreportProcessingEventArgs e) //{ // DataTable dt = new DataTable(); // DateTime dtStartDate = Convert.ToDateTime(dtpStartDate.Text); // DateTime dtEndDate = Convert.ToDateTime(dtpEndDate.Text); // //int intCustomerID = int.Parse(cmbCustomer.SelectedValue.ToString()); // using (var db = new DataModel()) // { // //get result set // var ttt = db.rptOutstandingOrders_Items(intCustomerID, dtStartDate.ToString("yyyy-MM-dd 00:00:00"), dtEndDate.ToString("yyyy-MM-dd 23:59:59")); // //add column to datatable // dt.Columns.Add("CustomerId"); // dt.Columns.Add("Pre_List_Number"); // dt.Columns.Add("Item_Description"); // dt.Columns.Add("Size"); // dt.Columns.Add("Customer_Count"); // dt.Columns.Add("Laundry_Count"); // dt.Columns.Add("Clean_Delivery"); // dt.Columns.Add("Stain_Delivery"); // dt.Columns.Add("Returned_Undone"); // dt.Columns.Add("Outstanding_Items"); // //add list rows to datatable // foreach (rptOutstandingOrders_Items_Result t in ttt) // { // DataRow row = dt.NewRow(); // row["CustomerId"] = t.CustomerId; // row["Pre_List_Number"] = t.Pre_List_Number; // row["Item_Description"] = t.Item_Description; // row["Size"] = t.Size; // row["Customer_Count"] = t.Customer_Count; // row["Laundry_Count"] = t.Laundry_Count; // row["Clean_Delivery"] = t.Clean_Delivery; // row["Stain_Delivery"] = t.Stain_Delivery; // row["Returned_Undone"] = t.Returned_Undone; // row["Outstanding_Items"] = t.Outstanding_Items; // dt.Rows.Add(row); // } // } // e.DataSources.Add(new ReportDataSource("dsOutstandingOrderItem", dt)); //} private void loadOutstandingOrderReport2() { DataTable dt = new DataTable(); DateTime dtStartDate = Convert.ToDateTime(dtpStartDate.Text); DateTime dtEndDate = Convert.ToDateTime(dtpEndDate.Text); intCustomerID = int.Parse(cmbCustomer.SelectedValue.ToString()); using (var db = new DataModel()) { //get result set var ttt = db.rptOutstandingOrders_Items(intCustomerID, dtStartDate.ToString("yyyy-MM-dd 00:00:00"), dtEndDate.ToString("yyyy-MM-dd 23:59:59")); //add column to datatable dt.Columns.Add("CustomerId"); dt.Columns.Add("Pre_List_Number"); dt.Columns.Add("Item_Description"); dt.Columns.Add("Size"); dt.Columns.Add("Customer_Count"); dt.Columns.Add("Laundry_Count"); dt.Columns.Add("Clean_Delivery"); dt.Columns.Add("Stain_Delivery"); dt.Columns.Add("Returned_Undone"); dt.Columns.Add("Outstanding_Items"); //add list rows to datatable foreach (rptOutstandingOrders_Items_Result t in ttt.ToList()) { DataRow row = dt.NewRow(); row["CustomerId"] = t.CustomerId; row["Pre_List_Number"] = t.Pre_List_Number; row["Item_Description"] = t.Item_Description; row["Size"] = t.Size; row["Customer_Count"] = t.Customer_Count; row["Laundry_Count"] = t.Laundry_Count; row["Clean_Delivery"] = t.Clean_Delivery; row["Stain_Delivery"] = t.Stain_Delivery; row["Returned_Undone"] = t.Returned_Undone; row["Outstanding_Items"] = t.Outstanding_Items; dt.Rows.Add(row); } } //setup report reportViewer1.Reset(); reportViewer1.LocalReport.ReportEmbeddedResource = "PersonalLaundry.rptOutstandingOrderSubReport2.rdlc"; //Set Data Sources setDataSources("dsOutstandingOrderItem", dt); reportViewer1.LocalReport.Refresh(); reportViewer1.Visible = true; reportViewer1.LocalReport.DisplayName = "Outstanding Order Report"; reportViewer1.SetDisplayMode(Microsoft.Reporting.WinForms.DisplayMode.PrintLayout); reportViewer1.ZoomMode = ZoomMode.PageWidth; dt = null; } private void loadBagReconReport() { DataTable dtPickups = new DataTable(); DataTable dtDeliveries = new DataTable(); DataTable dtCustomer = new DataTable(); DateTime dtStartDate = Convert.ToDateTime(dtpStartDate.Text); DateTime dtEndDate = Convert.ToDateTime(dtpEndDate.Text); intCustomerID = int.Parse(cmbCustomer.SelectedValue.ToString()); using (var db = new DataModel()) { //Customer var customer = db.Customers.Where(c => c.CustomerId == intCustomerID).FirstOrDefault(); if(customer != null) { dtCustomer.Columns.Add("Name"); DataRow rowCustomer = dtCustomer.NewRow(); rowCustomer["Name"] = customer.Name; dtCustomer.Rows.Add(rowCustomer); } //Pickups //get result set var pickups = db.rptBagReconPickups(intCustomerID, dtStartDate.ToString("yyyy-MM-dd 00:00:00"), dtEndDate.ToString("yyyy-MM-dd 23:59:59")); //add column to datatable dtPickups.Columns.Add("DateCreated"); dtPickups.Columns.Add("reference"); dtPickups.Columns.Add("TotalBags"); //add list rows to datatable foreach (rptBagReconPickups_Result pickup in pickups.ToList()) { DataRow rowPickup = dtPickups.NewRow(); rowPickup["DateCreated"] = pickup.DateCreated; rowPickup["reference"] = pickup.reference; rowPickup["TotalBags"] = pickup.TotalBags; dtPickups.Rows.Add(rowPickup); } //Deliveries //get result set var deliveries = db.rptBagReconDeliveries(intCustomerID, dtStartDate.ToString("yyyy-MM-dd 00:00:00"), dtEndDate.ToString("yyyy-MM-dd 23:59:59")); //add column to datatable dtDeliveries.Columns.Add("DateDelivered"); dtDeliveries.Columns.Add("Reference"); dtDeliveries.Columns.Add("DeliveryId"); dtDeliveries.Columns.Add("TotalBags"); //add list rows to datatable foreach (rptBagReconDeliveries_Result delivery in deliveries.ToList()) { DataRow rowDelivery = dtDeliveries.NewRow(); rowDelivery["DateDelivered"] = delivery.DateDelivered; rowDelivery["Reference"] = delivery.Reference; rowDelivery["DeliveryId"] = delivery.DeliveryId; rowDelivery["TotalBags"] = delivery.TotalBags; dtDeliveries.Rows.Add(rowDelivery); } } //setup report reportViewer1.Reset(); reportViewer1.LocalReport.ReportEmbeddedResource = "PersonalLaundry.rptBagReconReport.rdlc"; //set report parameters //ReportParameter p = new ReportParameter(); //p.Name = "rpCustomer"; //p.Values.Add(cmbCustomer.Text); //reportViewer1.LocalReport.SetParameters(p); //Set Data Sources reportViewer1.LocalReport.DataSources.Clear(); setDataSources("dsPickups", dtPickups); setDataSources("dsDeliveries", dtDeliveries); setDataSources("dsCustomer", dtCustomer); reportViewer1.LocalReport.Refresh(); reportViewer1.Visible = true; reportViewer1.LocalReport.DisplayName = "Bag Recon Report"; reportViewer1.SetDisplayMode(Microsoft.Reporting.WinForms.DisplayMode.PrintLayout); reportViewer1.ZoomMode = ZoomMode.PageWidth; dtPickups = null; dtDeliveries = null; } } }