/// <summary> /// 原始数据放入数据库,返回批次ID,由报表窗口调用 /// </summary> /// <returns></returns> public int WriteToDB() { //create BathNUM first BATCH_INFO bi = new BATCH_INFO { BI_IMPORTTIME = DateTime.Now, BI_ISDEL = false, BI_TIID = this.TIID, BI_UIID = SysUtil.CurrentUserID(), }; db.BATCH_INFOs.InsertOnSubmit(bi); db.SubmitChanges(); for (int i = 0; i < dgvSals.SelectedRows.Count; i++) { TEMPLATE_INFO ti = db.TEMPLATE_INFOs.SingleOrDefault(a => a.TI_ID == this.TIID); string cols = string.Format("SI_BIID,{0}", ti.TI_COLSINORDER); var value = new List <string>(); value.Add(bi.BI_ID.ToString()); for (int index = 0; index < ti.TI_COLSCOUNT; index++) { value.Add("'" + dgvSals.SelectedRows[i].Cells[index + 9].Value.ToString() + "'"); } ColumnsDAL cd = new ColumnsDAL(); cd.OpenConnection(System.Configuration.ConfigurationManager.ConnectionStrings["TaxDemo.Properties.Settings.testdbConnectionString"].ConnectionString); cd.WriteRawData(value, cols); cd.CloseConnection(); } return(bi.BI_ID); }
/// <summary> /// 修改模板 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void btnUpdate_Click(object sender, EventArgs e) { try { if (!CheckInput()) { MessageBox.Show("请检查输入项", this.funName, MessageBoxButtons.OK); } int tmpid = 0; if (this.flag == "NEW") //insert { InsertNewTemplate(ref tmpid); //新建 if (tmpid != 0) { MessageBox.Show("添加成功"); this.DialogResult = System.Windows.Forms.DialogResult.OK; this.Close(); } } else if (this.flag == "UPDATE") { TEMPLATE_INFO lti = db.TEMPLATE_INFOs.SingleOrDefault(t => t.TI_ID == this.tiidtmp); //TODO ,should be single or default lti.TI_ISVALID = false; List <TEMPLATE_COLUMN> lTC = db.TEMPLATE_COLUMNs.Where(tc => tc.TC_TIID == lti.TI_ID).Select(a => a).ToList(); foreach (var detail in lTC) { db.TEMPLATE_COLUMNs.DeleteOnSubmit(detail); } db.SubmitChanges(); InsertNewTemplate(ref tmpid); //update ac tmpid to the new one var lac = db.AGENT_COUNTRies.Where(a => a.AC_TIID == lti.TI_ID).Select(l => l); foreach (var d in lac) { d.AC_TIID = tmpid; } db.SubmitChanges(); MessageBox.Show("保存成功", this.funName, MessageBoxButtons.OK); this.DialogResult = System.Windows.Forms.DialogResult.OK; this.Close(); } } catch (Exception ex) { MessageBox.Show(ex.Message, this.funName, MessageBoxButtons.OK, MessageBoxIcon.Error); } }
/// <summary> /// 根据模板建数据表 /// </summary> /// <param name="ti"></param> private void BuildColumns(TEMPLATE_INFO ti) { dgvSals.Rows.Clear(); dgvSals.Columns.Clear(); //是否选中 DataGridViewCheckBoxColumn dtCheck = new DataGridViewCheckBoxColumn(); dtCheck.DataPropertyName = "check"; dtCheck.HeaderText = ""; dgvSals.Columns.Add(dtCheck); dgvSals.Columns[0].Width = 30; dgvSals.Columns.Add("姓名", "姓名"); dgvSals.Columns.Add("月份", "月份"); dgvSals.Columns.Add("应纳税工资", "应纳税工资"); dgvSals.Columns.Add("实发工资", "实发工资(美元)"); dgvSals.Columns.Add("实发工资", "实发工资(RMB)"); dgvSals.Columns.Add("已纳税额", "已纳税额"); dgvSals.Columns.Add("已纳税额", "已纳税额(RMB)"); dgvSals.Columns.Add("年终奖", "年终奖"); string[] s = ti.TI_COLHEADERINORDER.Split(','); for (int i = 0; i < s.Length; i++) { dgvSals.Columns.Add(s[i], s[i]); } for (int i = 0; i < dgvSals.Columns.Count; i++) { if (i != 6 && i != 0) { dgvSals.Columns[i].ReadOnly = true; } } dgvSals.Columns[3].DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleRight; dgvSals.Columns[4].DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleRight; dgvSals.Columns[5].DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleRight; dgvSals.Columns[6].DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleRight; dgvSals.Columns[7].DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleRight; dgvSals.Columns[8].DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleRight; dgvSals.Columns[5].DefaultCellStyle.Format = "F2"; dgvSals.Columns[6].DefaultCellStyle.Format = "F2"; dgvSals.Columns[7].DefaultCellStyle.Format = "F2"; }
/// <summary> /// 国别选中后,更新模板,货币与数据表项 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void cbxAgentCs_SelectedIndexChanged(object sender, EventArgs e) { AGENT_COUNTRY ac = (AGENT_COUNTRY)cbxAgentCs.SelectedItem; // 国别信息 Added by CYQ 2018-07-12 lblCurrent.Text = "1" + ac.AC_CURRENCY + "="; // 设置国别对应的货币 ACID = ac.AC_ID; // 国别ID Added by CYQ 2018-07-12 TIID = (int)db.AGENT_COUNTRies.SingleOrDefault(a => a.AC_ID == ac.AC_ID).AC_TIID; // 国别模板ID Modified by CYQ 2018-07-12 TEMPLATE_INFO ti = db.TEMPLATE_INFOs.SingleOrDefault(a => a.TI_ID == TIID); // 获取国别对应的模板信息 Added by CYQ 2018-07-12 if (ti == null) { MessageBox.Show("此国别尚未设置导入模板", this.funName, MessageBoxButtons.OK); return; } BuildColumns(ti); // 根据模板构建表格显示的列结构 Added by CYQ 2018-07-12 }
/// <summary> /// 删除模板 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void btnDel_Click(object sender, EventArgs e) { if (dgvTemplates.SelectedRows.Count != 1) { MessageBox.Show("请选择一条记录后进行操作", funName, MessageBoxButtons.OK); return; } DialogResult dialogResult = MessageBox.Show("确定删除此列吗", funName, MessageBoxButtons.YesNo); if (dialogResult == DialogResult.Yes) { int tid = (int)dgvTemplates.SelectedRows[0].Cells[0].Value; TEMPLATE_INFO lti = db.TEMPLATE_INFOs.SingleOrDefault(t => t.TI_ID == tid); //TODO ,should be single or default lti.TI_ISVALID = false; List <TEMPLATE_COLUMN> lTC = db.TEMPLATE_COLUMNs.Where(tc => tc.TC_TIID == lti.TI_ID).Select(a => a).ToList(); foreach (var detail in lTC) { db.TEMPLATE_COLUMNs.DeleteOnSubmit(detail); } db.SubmitChanges(); MessageBox.Show("删除成功", funName, MessageBoxButtons.OK); loadTemplates(); } }
private bool InsertNewTemplate(ref int tmpid) { try { List <COLINFO> lRight = lbxColsRight.Items.Cast <COLINFO>().ToList(); var x = lRight.SingleOrDefault(a => a.CI_NAME.IndexOf(txtNameCol.Text.Trim() + "]") == 1); string s = lRight.Where(a => a.CI_NAME.IndexOf(txtNameCol.Text.Trim() + "]") == 1).SingleOrDefault().ToString(); //模板相关信息 TEMPLATE_INFO ti = new TEMPLATE_INFO { TI_NAME = txtTempName.Text.Trim(), TI_ISVALID = true, TI_COLSINORDER = String.Join(",", lRight.Select(o => o.CI_COLNAME)), TI_COLHEADERINORDER = String.Join(",", lRight.Select(o => o.CI_NAME.Substring(o.CI_NAME.IndexOf("]") + 1))), TI_SALF = FormulaC.GetFormula(txtSalF.Text.Trim()), TI_SALFRAW = txtSalF.Text.Trim(), TI_ANNUCOL = txtYearAnnu.Text.Trim(), TI_VERFYFRAW = txtVerify.Text.Trim(), TI_HEARDERROW = cbxHeaderRow.SelectedIndex + 1, TI_DATAROW = cbxDataRow.SelectedIndex + 1, TI_COLSCOUNT = lbxColsRight.Items.Count, TI_NAMECOL = txtNameCol.Text.Trim(), TI_BONUSCOL = txtBonusCol.Text.Trim(), TI_MONTHCOL = txtMonthCol.Text.Trim(), TI_REALCOL = txtRealCol.Text.Trim() }; if (txtVerify.Text.Trim() != string.Empty) { ti.TI_VERFYF = FormulaC.GetFormula(txtVerify.Text.Trim()); } db.TEMPLATE_INFOs.InsertOnSubmit(ti); db.SubmitChanges(); tmpid = ti.TI_ID; //模板列信息 int idex = 0; foreach (var i in lbxColsRight.Items) { idex++; //insert tmplate cols COLINFO ci = (COLINFO)i; TEMPLATE_COLUMN tc = new TEMPLATE_COLUMN { TC_CIID = ci.CI_ID, TC_TIID = ti.TI_ID, TC_ORDER = idex, }; db.TEMPLATE_COLUMNs.InsertOnSubmit(tc); } //update agentcurrcy set tmpID to new ID db.SubmitChanges(); return(true); } catch (Exception ex) { MessageBox.Show(ex.Message, this.funName, MessageBoxButtons.OK); return(false); } }
private void btnImport_Click(object sender, EventArgs e) { btnImport.Enabled = false; //防止误操作 dgvSals.Rows.Clear(); //清空原数据 //检查数据是否填写 if (checkInput() == false) { MessageBox.Show("请检查输入项", this.funName, MessageBoxButtons.OK); btnImport.Enabled = true; return; } if (cbxAgentCs.SelectedItem == null) { MessageBox.Show("请选择国别", this.funName, MessageBoxButtons.OK); btnImport.Enabled = true; return; } //参数缓存保存至文件 TmpData td = new TmpData { Title1 = txtYearTitle1.Text.Trim(), Title2 = txtYearTitle2.Text.Trim(), Annu = txtYearAnnu.Text.Trim(), Rate1 = txtERate1.Text.Trim(), Rate2 = txtERate2.Text.Trim(), Date1 = dtDeclare.Value, Date2 = dtTableOn.Value }; SaveToFile(td); //获取模板 int tmpID = (int)db.AGENT_COUNTRies.SingleOrDefault(a => a.AC_ID == ((AGENT_COUNTRY)cbxAgentCs.SelectedItem).AC_ID).AC_TIID; TEMPLATE_INFO ti = db.TEMPLATE_INFOs.SingleOrDefault(a => a.TI_ID == tmpID); //获取年金限额 decimal YearAnnuLimit = Convert.ToDecimal(txtYearAnnu.Text.Trim()); ExcelHelper excel = new ExcelHelper(); try { excel.OpenFile(txtDir.Text, 1, true); int rowCount = excel.GetDataRowsCount((int)ti.TI_DATAROW); //检查列数是否一致 if (excel.GetColumnsCount() != ti.TI_COLSCOUNT) { MessageBox.Show("文件输入项与模板列数不一致,请检查后再导入"); btnImport.Enabled = true; return; } //检查表头是否一致 if (!cbxNeedCheck.Checked) { if (TemplateUtil.CheckTitle(tmpID, excel.GetHeader((int)ti.TI_HEARDERROW)) == false) { MessageBox.Show("导入文件表头与模板不一致,请检查", this.funName, MessageBoxButtons.OK); btnImport.Enabled = true; return; } } //获取EXCEL薪资数据,姓名为KEY,各月数据LIST Dictionary <string, List <List <string> > > lists = excel.GetRows((int)ti.TI_DATAROW, rowCount, SysUtil.GetExcelColumnIntValue(ti.TI_NAMECOL)); //检查纳税人是否存在 List <string> namenotexsist = new List <string>(); foreach (var name in lists.Keys) { if (namenotexsist.Contains(name) == false) { if (db.TAX_PLAYERs.SingleOrDefault(a => a.TP_NAME == name && a.TP_ACID == this.ACID) == null) { namenotexsist.Add(name); } } } if (namenotexsist.Count > 0) { MessageBox.Show("以下员工信息尚不存在:" + string.Join <string>(";", namenotexsist), this.funName); btnImport.Enabled = true; return; } Names = lists.Keys.ToList(); //需要导入的已纳税人姓名,下述按姓名 TaxAlready = new Dictionary <string, decimal>(); //已纳税数据缓存 decimal rate2 = Convert.ToDecimal(txtERate2.Text); //美元人民币汇率 foreach (var item in lists) //每个纳税人 { string name = item.Key; var value = item.Value; foreach (var v in value) //每个纳税人,每月记录 { var newv = v.ToList(); //每个纳税人,每月每项数据 string sBonus = v[SysUtil.GetExcelColumnIntValue(ti.TI_BONUSCOL) - 1]; //年度奖金 decimal annu = Convert.ToDecimal(v[SysUtil.GetExcelColumnIntValue(ti.TI_ANNUCOL) - 1]); //企业年金 decimal fortax = FormulaC.GetCal(ti.TI_SALF, v); //计算税前 if (Math.Abs(annu) > Math.Abs(YearAnnuLimit)) //企业年金与年金限额比较 { fortax += (Math.Abs(annu) - Math.Abs(YearAnnuLimit)); } newv.Insert(0, name); //姓名 newv.Insert(1, v[SysUtil.GetExcelColumnIntValue(ti.TI_MONTHCOL) - 1]); //月份 newv.Insert(2, fortax.ToString()); //税前 newv.Insert(3, v[SysUtil.GetExcelColumnIntValue(ti.TI_REALCOL) - 1]); //实发美元 newv.Insert(4, (Convert.ToDecimal(newv[3]) * rate2).ToString("")); //实发RMB newv.Insert(5, ""); //已纳税美元 newv.Insert(6, ""); //已纳税RMB newv.Insert(7, v[SysUtil.GetExcelColumnIntValue(ti.TI_BONUSCOL) - 1]); //奖金 object[] oA = new object[] { false }; //首项为是否选中 object[] oB = oA.Concat(newv.ToArray()).ToArray(); dgvSals.Rows.Add(oB.ToArray()); //加入数据表显示 } } //显示数据统计信息 UpdateInfo(); } catch (Exception ex) { MessageBox.Show(ex.Message); } finally { excel.Close(); btnImport.Enabled = true; } }
/// <summary> /// 查看报表 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void toolStripMenuItem1_Click(object sender, EventArgs e) { decimal internalTotal = 0; // 境内合计 Added by CYQ 2018-07-12 decimal externalTotal = 0; // 境外合计 Added by CYQ 2018-07-12 try { if (dgvSals.SelectedRows.Count == 0) { MessageBox.Show("请选择一行记录后进行操作", this.funName, MessageBoxButtons.OK); return; } List <string> months = new List <string>(); for (int i = 0; i < dgvSals.SelectedRows.Count; i++) { months.Add(dgvSals.SelectedRows[i].Cells[2].Value.ToString()); } List <string> mons = months.OrderBy(a => a).ToList(); //修改每月建费用额 string x = string.Empty; frmInput frm = new frmInput(); frm.monthList = mons; if (frm.ShowDialog() != DialogResult.OK) { return; } try { Dictionary <string, decimal> minusList = frm.minusList; //每月减费用额,计算税级时使用 TEMPLATE_INFO ti = db.TEMPLATE_INFOs.SingleOrDefault(a => a.TI_ID == this.TIID); string playerName = (string)dgvSals.SelectedRows[0].Cells[1].Value; // 个税申报人 using (frmReportNew fa = new frmReportNew()) { Report1Wrapper rw1 = new Report1Wrapper(); //报表1数据 Report2Wrapper rw2 = new Report2Wrapper(); //报表2数据 REPORT_INFO ri = new REPORT_INFO(); //报表数据 rw1.ACNAME = ((AGENT_COUNTRY)cbxAgentCs.SelectedItem).AC_NAME; // 国别名称 Added by CYQ 2018-07-12 rw1.TPNAME = rw2.TPNAME = playerName; // 个税申报人姓名 Added by CYQ 2018-07-12 rw1.MINUS = 4800; ri.RI_ACID = this.ACID; // 国别ID Added by CYQ 2018-07-12 decimal bonus = getBonus(); if (bonus == -1) { string s = "年终奖多于1行,请输入年终奖最终值"; if (InputDialog.ShowInputDialog(ref s) == DialogResult.OK) { bonus = Convert.ToDecimal(s); } else { return; } } //报表基础信息 ri.RI_BONUS = bonus; // 年终奖金 ri.RI_DECLARETIME = dtDeclare.Value; // 报税时间 ri.RI_TABLETIME = dtTableOn.Value; // 填表时间 ri.RI_ERATE1 = Convert.ToDecimal(txtERate1.Text); // 汇率 1 ri.RI_ERATE2 = Convert.ToDecimal(txtERate2.Text); // 汇率 2 ri.RI_MOUNTHCOUNT = dgvSals.SelectedRows.Count; // 纳税月数 ri.RI_MONTH = mons[0] + "-" + mons[months.Count - 1]; // 月数说明 ri.RI_CREATETIME = dtTableOn.Value; // 生成时间 ri.RI_UIID = SysUtil.CurrentUserID(); // 操作用户 ri.RI_YEARTITLE1 = txtYearTitle1.Text; // 报表1年度说明 ri.RI_YEARTITLE2 = txtYearTitle2.Text; // 报表2年度说明 ri.RI_AYNAME = AYNAME; // 纳税年度 ri.RI_YEARANNU = Convert.ToDecimal(txtYearAnnu.Text.Trim()); // 年金限额 ri.RI_CURRENTNAME = lblCurrent.Text.Substring(1, lblCurrent.Text.Length - 2); // 币种名称 int tpid = 0; if (SysUtil.GetPlayerID(ACID, playerName, ref tpid)) { ri.RI_TPID = tpid; } for (int i = 0; i < dgvSals.SelectedRows.Count; i++) { //报表1数据 var td = new REPORT1_DETAIL { R1_MONTH = dgvSals.SelectedRows[i].Cells[2].Value.ToString(), // 月份 R1_FORTAX = Convert.ToDecimal(dgvSals.SelectedRows[i].Cells[3].Value.ToString()), // 应纳税工资 R1_REALDOLLOR = Convert.ToDecimal(dgvSals.SelectedRows[i].Cells[4].Value.ToString()), // 实发工资(美元) R1_REALRMB = Convert.ToDecimal(dgvSals.SelectedRows[i].Cells[5].Value.ToString()), // 实发工资(RMB) R1_TAXALREADY = Convert.ToDecimal(dgvSals.SelectedRows[i].Cells[6].Value.ToString()), // 已纳税额 R1_TAXALREADYRMB = Convert.ToDecimal(dgvSals.SelectedRows[i].Cells[7].Value.ToString()), // 已纳税额(RMB) }; td.R1_SALARYRMB = td.R1_FORTAX + td.R1_REALRMB + td.R1_TAXALREADYRMB; // 应纳税工资合计 /* Modified by cyq 20160331 */ /************ Begin *********/ if (minusList[td.R1_MONTH] == 3500) { internalTotal += td.R1_SALARYRMB; } else { externalTotal += td.R1_SALARYRMB; } /************ End *********/ //报表2数据 var td2 = new REPORT2_DETAIL(); td2.R2_MONTH = dgvSals.SelectedRows[i].Cells[2].Value.ToString(); td2.R2_SALARY = td.R1_SALARYRMB; // 应纳税工资(报表2) td2.R2_MINUS = minusList[td2.R2_MONTH]; // 减费用额(报表2) td2.R2_TAXSALARY = td2.R2_SALARY - td2.R2_MINUS; // 应纳税所得额(报表2) TAX_RATE ta = SysUtil.GetTaxRate(td2.R2_SALARY, minusList[td2.R2_MONTH]); td2.R2_TAXRATE = ta.TR_RATE; // 税率(报表2) td2.R2_QUICK = ta.TR_QUICH; // 速算扣除数(报表2) td2.R2_NEED = Convert.ToDecimal((td2.R2_TAXSALARY * td2.R2_TAXRATE / 100 - td2.R2_QUICK).ToString("F2")); // 应纳税额(报表2) rw1.Details.Add(td); rw2.Details.Add(td2); } /* Modified by cyq 20160331 */ /************ Begin *********/ fa.InternalTotal = internalTotal; fa.ExternalTotal = externalTotal; /************ End *********/ decimal min = rw2.Details.Min(a => a.R2_TAXSALARY); if (min > 0) { min = 0; } //*** Modified by CYQ on 2018-07-26 ***// // 根据财通佳鑫要求: // 1.当应纳税工资<=0时 年终奖调整额根据min所在行减费用额,调减3500或4800。 // 2.如果“应纳税所得额”值min不唯一,且“减费用额”列对应数值不唯一,则取值4800对年终奖进行调整。 //*** Begin ***// else { if (min < -3500) { int minTSCnt = rw2.Details.Where(r => r.R2_TAXSALARY == min).Count(); // 应纳税所得额唯一值统计 decimal[] r2_Minus = rw2.Details.Where(r => r.R2_TAXSALARY == min).Select(r => r.R2_MINUS).ToArray(); if (minTSCnt > 1) // 存在重复的应纳税所得额 { if (r2_Minus.Distinct().Count() > 1) { min = -4800; } else { min = (-1) * r2_Minus[0]; } // end else } else // 无重复的应纳税所得额 { min = (-1) * r2_Minus[0]; } } } // end else //*** End ***// TAX_RATE trbonus = SysUtil.GetTaxRate((ri.RI_BONUS + min) / 12, 4800, true); ri.RI_BONUSTAXRATEID = trbonus.TR_ID; // 年终奖金税率 ri.RI_BONUSTAX = Convert.ToDecimal(((ri.RI_BONUS * trbonus.TR_RATE / 100) - trbonus.TR_QUICH).ToString("F2")); // 应纳税额(年终奖) ri.RI_SUMS = rw2.Details.Sum(a => a.R2_SALARY) + ri.RI_BONUS; // 收入额(合计) ri.RI_SUMTAXSALARY = rw2.Details.Sum(a => a.R2_TAXSALARY) + ri.RI_BONUS; // 应纳税所得额(合计) ri.RI_SUMTAXRMB = rw2.Details.Sum(a => a.R2_NEED) + (decimal)ri.RI_BONUSTAX; // 应纳税额(合计) ri.RI_SUMTAXALREADY = TaxAlready[playerName]; ri.RI_SUMTAXALREADYRMB = Convert.ToDecimal((TaxAlready[playerName] * ri.RI_ERATE1 * ri.RI_ERATE2).ToString("F2")); // rw1.Details.Sum(a => a.R1_TAXALREADYRMB); // 境外已纳税额 ri.RI_NEEDPACK = (decimal)ri.RI_SUMTAXRMB - (decimal)ri.RI_SUMTAXALREADYRMB; // 境内应补税额【计算公式:应纳税额(合计) - 境外已纳税额】 ri.RI_USEALL = 0; ri.RI_USE2 = 0; /* Modified by cyq 20160331 */ /* *********** Begin *********/ if (ri.RI_NEEDPACK < 0) { TAX_CREDIT tc = new TAX_CREDIT { TP_ID = tpid, TC_YEAR = AYNAME, TC_CREDITALL = Math.Abs(ri.RI_NEEDPACK), TC_CREDITUSED = 0, TC_CREDITBALANCE = Math.Abs(ri.RI_NEEDPACK) }; fa.AddedTC = tc; } else { TAX_CREDIT tc = new TAX_CREDIT { TP_ID = tpid, TC_YEAR = AYNAME, TC_CREDITALL = 0, TC_CREDITUSED = 0, TC_CREDITBALANCE = 0 }; fa.AddedTC = tc; } /* *********** End *********/ if (ri.RI_NEEDPACK < 0) { ri.RI_NEEDPACKREAL = 0; } else { ri.RI_NEEDPACKREAL = ri.RI_NEEDPACK; // 境内实需补税额 } ri.RI_NOTE1 = string.Format("注:1. {0}{1}{2}元人民币", dtDeclare.Value.ToString("yyyy年MM月dd日"), lblCurrent.Text, (ri.RI_ERATE1 * ri.RI_ERATE2).ToString("f6")); // 备注1 ri.RI_NOTE2 = string.Format("2. {0}年{1}已纳税额 {2} {3},折合人民币 {4} 元", txtYear.Text, rw1.ACNAME, ri.RI_SUMTAXALREADY.ToString("N2"), ((AGENT_COUNTRY)cbxAgentCs.SelectedItem).AC_CURRENCY, ((decimal)ri.RI_SUMTAXALREADYRMB).ToString("N2")); // 备注2 ri.RI_USEALL = 0; // 使用可抵税总额 rw1.Base = rw2.Base = ri; fa.RW1 = rw1; fa.RW2 = rw2; fa.Owner = this; //展示报表 if (fa.ShowDialog() == System.Windows.Forms.DialogResult.OK) { } } } catch (Exception ex) { MessageBox.Show("错误类型:" + ex.GetType().ToString() + "\n" + "错误消息:" + ex.Message + "\n" + "对象名称:" + ex.Source + "\n" + "引发异常的方法:" + ex.TargetSite + "\n" + "调用堆栈:" + ex.StackTrace + "\n"); throw; } } catch (Exception ex) { MessageBox.Show(ex.Message + ";是否已纳税额尚未输入"); return; } }