/// <summary> /// get all quotationdetail /// <summary> /// <param name=formid>formid</param> /// <param name=out emsg>return error message</param> ///<returns>details of all quotationdetail</returns> public BindingCollection <modQuotationDetail> GetDetail(string formid, out string emsg) { try { BindingCollection <modQuotationDetail> modellist = new BindingCollection <modQuotationDetail>(); //Execute a query to read the categories string sql = string.Format("select form_id,seq,product_id,product_name,specify,brand,unit_no,qty,price,remark from quotation_detail where form_id='{0}' order by form_id,seq", formid); using (SqlDataReader rdr = SqlHelper.ExecuteReader(sql)) { while (rdr.Read()) { modQuotationDetail model = new modQuotationDetail(); model.FormId = dalUtility.ConvertToString(rdr["form_id"]); model.Seq = dalUtility.ConvertToInt(rdr["seq"]); model.ProductId = dalUtility.ConvertToString(rdr["product_id"]); model.ProductName = dalUtility.ConvertToString(rdr["product_name"]); model.Specify = dalUtility.ConvertToString(rdr["specify"]); model.Brand = dalUtility.ConvertToString(rdr["brand"]); model.UnitNo = dalUtility.ConvertToString(rdr["unit_no"]); model.Qty = dalUtility.ConvertToDecimal(rdr["qty"]); model.Price = dalUtility.ConvertToDecimal(rdr["price"]); model.Mny = model.Qty * model.Price; model.Remark = dalUtility.ConvertToString(rdr["remark"]); modellist.Add(model); } } emsg = null; return(modellist); } catch (Exception ex) { emsg = dalUtility.ErrorMessage(ex.Message); return(null); } }
private void toolExport_Click(object sender, EventArgs e) { if (DBGrid.CurrentRow == null) { return; } IList <modExcelRangeData> list = new List <modExcelRangeData>(); modQuotationForm mod = (modQuotationForm)DBGrid.CurrentRow.DataBoundItem; BindingCollection <modQuotationDetail> listdetail = _dal.GetDetail(mod.FormId, out Util.emsg); dalCustomerList dalcust = new dalCustomerList(); modCustomerList modcust = dalcust.GetItem(mod.CustId, out Util.emsg); //list.Add(new modExcelRangeData(clsLxms.GetParameterValue("COMPANY_NAME"), "B1", "J1")); list.Add(new modExcelRangeData("电话/TEL: " + clsLxms.GetParameterValue("COMPANY_TEL") + " 传真/FAX: " + clsLxms.GetParameterValue("COMPANY_FAX") + " 联系人/Contact Person: " + mod.ContactPerson, "A4", "I4")); //list.Add(new modExcelRangeData("公司地址:" + clsLxms.GetParameterValue("COMPANY_ADDR"), "B3", "J3")); list.Add(new modExcelRangeData(modcust.FullName, "B6", "B6")); list.Add(new modExcelRangeData("TEL: " + modcust.Linkman + " " + modcust.Tel, "B7", "B7")); list.Add(new modExcelRangeData("单号Invoice No.: " + mod.No, "H6", "H6")); list.Add(new modExcelRangeData(mod.FormDate.ToString("yyyy/MM/dd"), "I8", "I8")); for (int i = 0; i < listdetail.Count; i++) { modQuotationDetail modd = listdetail[i]; string col = (10 + i).ToString().Trim(); list.Add(new modExcelRangeData((i + 1).ToString(), "A" + col, "A" + col)); list.Add(new modExcelRangeData(modd.ProductName, "B" + col, "B" + col)); list.Add(new modExcelRangeData(modd.Brand, "C" + col, "C" + col)); list.Add(new modExcelRangeData(modd.Qty.ToString(), "D" + col, "D" + col)); list.Add(new modExcelRangeData(modd.UnitNo, "E" + col, "E" + col)); list.Add(new modExcelRangeData(string.Format("{0:C2}", modd.Price), "G" + col, "G" + col)); list.Add(new modExcelRangeData(string.Format("{0:C2}", modd.Mny), "H" + col, "H" + col)); list.Add(new modExcelRangeData(modd.Remark, "I" + col, "I" + col)); } clsExport.ExportByTemplate(list, "报价单", 1, 20, 10, 1); }
private void toolSave_Click(object sender, EventArgs e) { try { this.Cursor = Cursors.WaitCursor; DBGrid.EndEdit(); if (dtpFormDate.Value < Util.modperiod.StartDate) { MessageBox.Show("该日期的数据已锁定,不能更新数据!", clsTranslate.TranslateString("Information"), MessageBoxButtons.OK, MessageBoxIcon.Information); dtpFormDate.Focus(); return; } if (txtCustName.Tag == null) { MessageBox.Show(clsTranslate.TranslateString("Cust Id") + clsTranslate.TranslateString(" can not be null!"), clsTranslate.TranslateString("Information"), MessageBoxButtons.OK, MessageBoxIcon.Exclamation); txtCustName.Focus(); return; } if (string.IsNullOrEmpty(txtCustName.Text)) { MessageBox.Show(clsTranslate.TranslateString("Cust Name") + clsTranslate.TranslateString(" can not be null!"), clsTranslate.TranslateString("Information"), MessageBoxButtons.OK, MessageBoxIcon.Exclamation); txtCustName.Focus(); return; } if (clsLxms.GetParameterValue("NEED_QUOTATION_NO").CompareTo("T") == 0 && string.IsNullOrEmpty(txtNo.Text)) { MessageBox.Show(clsTranslate.TranslateString("No") + clsTranslate.TranslateString(" can not be null!"), clsTranslate.TranslateString("Information"), MessageBoxButtons.OK, MessageBoxIcon.Exclamation); txtNo.Focus(); return; } if (DBGrid.RowCount == 0) { MessageBox.Show("没有明细数据", clsTranslate.TranslateString("Information"), MessageBoxButtons.OK, MessageBoxIcon.Exclamation); return; } for (int i = 0; i < DBGrid.RowCount; i++) { if (DBGrid.Rows[i].Cells[0].Value == null || string.IsNullOrEmpty(DBGrid.Rows[i].Cells[0].Value.ToString())) { MessageBox.Show(clsTranslate.TranslateString("Product id") + clsTranslate.TranslateString(" can not be null!"), clsTranslate.TranslateString("Information"), MessageBoxButtons.OK, MessageBoxIcon.Exclamation); return; } if (DBGrid.Rows[i].Cells[1].Value == null || string.IsNullOrEmpty(DBGrid.Rows[i].Cells[1].Value.ToString())) { MessageBox.Show(clsTranslate.TranslateString("Product name") + clsTranslate.TranslateString(" can not be null!"), clsTranslate.TranslateString("Information"), MessageBoxButtons.OK, MessageBoxIcon.Exclamation); return; } if (DBGrid.Rows[i].Cells[5].Value == null || string.IsNullOrEmpty(DBGrid.Rows[i].Cells[5].Value.ToString())) { MessageBox.Show(clsTranslate.TranslateString("Qty") + clsTranslate.TranslateString(" can not be null!"), clsTranslate.TranslateString("Information"), MessageBoxButtons.OK, MessageBoxIcon.Exclamation); return; } else if (!Util.IsNumeric(DBGrid.Rows[i].Cells[5].Value.ToString())) { MessageBox.Show(clsTranslate.TranslateString("Qty") + clsTranslate.TranslateString(" must be a numeric!"), clsTranslate.TranslateString("Information"), MessageBoxButtons.OK, MessageBoxIcon.Exclamation); return; } else if (Convert.ToDecimal(DBGrid.Rows[i].Cells[5].Value.ToString()) <= 0) { MessageBox.Show(clsTranslate.TranslateString("Qty") + clsTranslate.TranslateString(" must > 0!"), clsTranslate.TranslateString("Information"), MessageBoxButtons.OK, MessageBoxIcon.Exclamation); return; } if (DBGrid.Rows[i].Cells[6].Value == null || string.IsNullOrEmpty(DBGrid.Rows[i].Cells[6].Value.ToString())) { MessageBox.Show(clsTranslate.TranslateString("Price") + clsTranslate.TranslateString(" can not be null!"), clsTranslate.TranslateString("Information"), MessageBoxButtons.OK, MessageBoxIcon.Exclamation); return; } else if (!Util.IsNumeric(DBGrid.Rows[i].Cells[6].Value.ToString())) { MessageBox.Show(clsTranslate.TranslateString("Price") + clsTranslate.TranslateString(" must be a numeric!"), clsTranslate.TranslateString("Information"), MessageBoxButtons.OK, MessageBoxIcon.Exclamation); return; } else if (Convert.ToDecimal(DBGrid.Rows[i].Cells[6].Value.ToString()) <= 0) { MessageBox.Show(clsTranslate.TranslateString("Price") + clsTranslate.TranslateString(" must > 0!"), clsTranslate.TranslateString("Information"), MessageBoxButtons.OK, MessageBoxIcon.Exclamation); return; } } modQuotationForm mod = new modQuotationForm(); mod.FormId = txtFormId.Text.Trim(); mod.FormDate = dtpFormDate.Value; mod.No = txtNo.Text.Trim(); mod.CustId = txtCustName.Tag.ToString(); mod.CustName = txtCustName.Text.Trim(); mod.Remark = txtRemark.Text.Trim(); mod.ContactPerson = txtContactPerson.Text.Trim(); mod.Currency = txtCurrency.Text.Trim(); mod.UpdateUser = Util.UserId; string detaillist = string.Empty; BindingCollection <modQuotationDetail> list = new BindingCollection <modQuotationDetail>(); for (int i = 0; i < DBGrid.RowCount; i++) { modQuotationDetail modd = new modQuotationDetail(); modd.Seq = i + 1; modd.ProductId = DBGrid.Rows[i].Cells[0].Value.ToString(); modd.ProductName = DBGrid.Rows[i].Cells[1].Value.ToString(); modd.Specify = DBGrid.Rows[i].Cells[2].Value == null ? string.Empty : DBGrid.Rows[i].Cells[2].Value.ToString(); modd.UnitNo = DBGrid.Rows[i].Cells[3].Value == null ? string.Empty : DBGrid.Rows[i].Cells[3].Value.ToString(); modd.Brand = DBGrid.Rows[i].Cells[4].Value == null ? string.Empty : DBGrid.Rows[i].Cells[4].Value.ToString(); modd.Qty = Convert.ToDecimal(DBGrid.Rows[i].Cells[5].Value.ToString()); modd.Price = Convert.ToDecimal(DBGrid.Rows[i].Cells[6].Value.ToString()); modd.Remark = DBGrid.Rows[i].Cells[7].Value == null ? string.Empty : DBGrid.Rows[i].Cells[7].Value.ToString(); list.Add(modd); } bool ret = _dal.Save(_action, mod, list, out Util.emsg); if (ret) { ini.IniWriteValue("QUOTATION", "CONTACT_PERSON", txtContactPerson.Text.Trim()); this.DialogResult = DialogResult.OK; this.Dispose(); } else { MessageBox.Show(Util.emsg, clsTranslate.TranslateString("Information"), MessageBoxButtons.OK, MessageBoxIcon.Information); } } catch (Exception ex) { MessageBox.Show(ex.Message, clsTranslate.TranslateString("Information"), MessageBoxButtons.OK, MessageBoxIcon.Information); return; } finally { this.Cursor = Cursors.Default; } }