/// <summary> /// ‘确定’ /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void simpleButton1_Click(object sender, EventArgs e) { string customerStart = string.IsNullOrEmpty(this.buttonEditCustomerStart.Text) ? "" : this.buttonEditCustomerStart.Text; string customerEnd = string.IsNullOrEmpty(this.buttonEditCustomerEnd.Text) ? "zzzzzzzzz" : this.buttonEditCustomerEnd.Text; DateTime dateStart = this.dateEditStart.DateTime.Year < 1500 ? Convert.ToDateTime("1900-01-01") : this.dateEditStart.DateTime; DateTime dateEnd = this.dateEditEnd.DateTime.Year < 1500 ? Convert.ToDateTime("3000-01-01") : this.dateEditEnd.DateTime; string productStart = this.buttonEditProductStart.Text; string productEnd = this.buttonEditProductEnd.Text; // ConditionXSProductForm f = new ConditionXSProductForm( customerStart, customerEnd, productStart, productEnd, dateStart, dateEnd); IList <Model.InvoiceXS> xsdetail = new BL.InvoiceXSManager().Select(customerStart, customerEnd, productStart, productEnd, dateStart, dateEnd); if (xsdetail.Count == 0) { MessageBox.Show("在此區間無進貨記錄"); return; } Q20 f = new Q20(xsdetail, productStart, productEnd); //if (f.ShowDialog() != DialogResult.OK) return; f.ShowPreviewDialog(); }
public ROHistoryXS() { InitializeComponent(); Query.ConditionXChooseForm f = new Query.ConditionXChooseForm(); if (f.ShowDialog() == DialogResult.OK) { Query.ConditionX con = f.Condition as Query.ConditionX; IList <Model.InvoiceXS> list = new BL.InvoiceXSManager().SelectDateRangAndWhere(con.Customer1, con.Customer2, con.StartDate, con.EndDate, con.Yjri1, con.Yjri2, con.CusXOId, con.Product, con.Product2, con.XOId1, con.XOId2, con.FreightedCompanyId, con.ConveyanceMethodId, con.Employee1, con.Employee2, con.Product_Id, con.ProductCategoryId); if (list == null || list.Count == 0) { MessageBox.Show("無數據", "提示", MessageBoxButtons.OK); } IList <Model.InvoiceXSDetail> listDetail = new List <Model.InvoiceXSDetail>(); foreach (var item in list) { item.Details = detailManager.Select(item); foreach (var detail in item.Details) { detail.Invoice = item; listDetail.Add(detail); } } var group = listDetail.GroupBy(D => D.InvoiceNO); IList <Model.InvoiceXSDetail> details = new List <Model.InvoiceXSDetail>(); if (group != null && group.Count() > 0) { foreach (var item in group) { Model.InvoiceXSDetail detail = new Book.Model.InvoiceXSDetail(); detail = item.First(); //先计算台幣金額,然后加总金额,因为台幣金額=金额*汇率 detail.TaibiAmountForGroup = item.Sum(D => D.TaibiAmount); detail.InvoiceXSDetailMoney = item.Sum(D => D.InvoiceXSDetailMoney); item.Select(D => D.InvoiceXO.CustomerInvoiceXOId).Distinct().ToList().ForEach(F => { detail.CusXOIdForGroup += F + "\r\n"; }); detail.CusXOIdForGroup = detail.CusXOIdForGroup.TrimEnd(new char[] { '\r', '\n' }); details.Add(detail); } } this.DataSource = details; this.lbl_CompanyName.Text = BL.Settings.CompanyChineseName; this.lbl_ReportName.Text = "銷售表 sales report"; this.lbl_ReportDate.Text = con.StartDate.ToString("yyyy-MM-dd") + " ~ " + con.EndDate.ToString("yyyy-MM-dd"); string currenty = Model.ExchangeRate.GetCurrencyENNameAndSign(listDetail[0].Currency); this.xrTableCell9.Text = string.Format("實際請款 ({0})", currenty); this.TCInvoiceDate.DataBindings.Add("Text", this.DataSource, "Invoice." + Model.InvoiceXS.PROPERTY_INVOICEDATE, "{0:yyyy/MM/dd}"); this.TCDeclareDate.DataBindings.Add("Text", this.DataSource, "Invoice." + Model.InvoiceXS.PRO_DeclareDate, "{0:yyyy/MM/dd}"); this.TCShipMethod.DataBindings.Add("Text", this.DataSource, "Invoice.ConveyanceMethod." + Model.ConveyanceMethod.PROPERTY_CONVEYANCEMETHODNAME); this.TCXSCustomer.DataBindings.Add("Text", this.DataSource, "Invoice.XSCustomer." + Model.Customer.PRO_CustomerFullName); this.TCInvoiceNO.DataBindings.Add("Text", this.DataSource, Model.InvoiceXSDetail.PRO_InvoiceNO); this.TCAmount.DataBindings.Add("Text", this.DataSource, Model.InvoiceXSDetail.PRO_InvoiceXSDetailMoney, currenty + "{0:N2}"); this.TCRealAmount.DataBindings.Add("Text", this.DataSource, Model.InvoiceXSDetail.PRO_InvoiceXSDetailMoney, currenty + "{0:N2}"); this.TCExchangeRate.DataBindings.Add("Text", this.DataSource, Model.InvoiceXSDetail.PRO_ExchangeRate); //this.TCTaibiAmount.DataBindings.Add("Text", this.DataSource, "TaibiAmount", "NT${0:N2}"); this.TCTaibiAmount.DataBindings.Add("Text", this.DataSource, "TaibiAmountForGroup", "NT${0:N2}"); this.TCPayTerm.DataBindings.Add("Text", this.DataSource, "Invoice.XSCustomer." + Model.Customer.PRO_PayCondition); //this.TCCusXOId.DataBindings.Add("Text", this.DataSource, "InvoiceXO." + Model.InvoiceXO.PRO_CustomerInvoiceXOId); //this.TCCusXOId.DataBindings.Add("Text", this.DataSource, "CusXOIdForGroup"); this.xrRichText1.DataBindings.Add("Text", this.DataSource, "CusXOIdForGroup"); this.TCTotalAmount.Text = currenty + details.Sum(D => D.InvoiceXSDetailMoney).Value.ToString("N2"); this.TCTotalTaibiAmount.Text = "NT$" + details.Sum(D => D.TaibiAmountForGroup).Value.ToString("N2"); } else { throw new Exception(); } }