private Model_科目明细账 GetModel_Subject(decimal a,decimal b,decimal c,bool flag) { Model_科目明细账 m = new Model_科目明细账(); List<string> _list = new List<string>(); _list = ut.Turn(a.ToString(), 12, flag); m.借方金额1 = _list[0]; m.借方金额2 = _list[1]; m.借方金额3 = _list[2]; m.借方金额4 = _list[3]; m.借方金额5 = _list[4]; m.借方金额6 = _list[5]; m.借方金额7 = _list[6]; m.借方金额8 = _list[7]; m.借方金额9 = _list[8]; m.借方金额10 = _list[9]; m.借方金额11 = _list[10]; m.借方金额12 = _list[11]; _list.Clear(); _list = ut.Turn(b.ToString(), 12, flag); m.贷方金额1 = _list[0]; m.贷方金额2 = _list[1]; m.贷方金额3 = _list[2]; m.贷方金额4 = _list[3]; m.贷方金额5 = _list[4]; m.贷方金额6 = _list[5]; m.贷方金额7 = _list[6]; m.贷方金额8 = _list[7]; m.贷方金额9 = _list[8]; m.贷方金额10 = _list[9]; m.贷方金额11 = _list[10]; m.贷方金额12 = _list[11]; _list.Clear(); _list = ut.Turn(c.ToString(), 12); m.余额1 = _list[0]; m.余额2 = _list[1]; m.余额3 = _list[2]; m.余额4 = _list[3]; m.余额5 = _list[4]; m.余额6 = _list[5]; m.余额7 = _list[6]; m.余额8 = _list[7]; m.余额9 = _list[8]; m.余额10 = _list[9]; m.余额11 = _list[10]; m.余额12 = _list[11]; return m; }
/// <summary> /// 科目明细账查询方法 /// </summary> /// <param name="subject_id">一级科目</param> /// <param name="detail">二级科目</param> /// <reut.Turns></reut.Turns> public List<Model_科目明细账> GetSubjectDetail(string subject_id,string detail) { List<Model_科目明细账> list = new List<Model_科目明细账>(); List<string> _list = new List<string>(); bool flag = true; subject_id = subject_id.Split('\t')[0]; detail = detail.Split('\t')[0]; string sql = "select strftime(b.op_time),a.voucher_no,a.abstract,a.debit,a.credit from " + DBTablesName.T_VOUCHER_DETAIL + " a left join " + DBTablesName.T_VOUCHER + " b on a.parentid=b.id where a.subject_id='" + subject_id + "'" + " and b.delete_mark=0 and b.REVIEW_MARK=1 and a.detail='" + detail + "' order by b.op_time"; //查年初数 string sql2 = "select case when b.borrow_mark=1 then '借' else '贷' end,a.fee*b.borrow_mark from " + DBTablesName.T_YEAR_FEE + " a left join " + DBTablesName.T_SUBJECT + " b on a.subject_id=b.subject_id where " + " a.subject_id='" + detail + "' and a.bookid='" + CommonInfo.账薄号 + "'"; DataRow dr = db.Query(sql2).Tables[0].Rows[0]; Model_科目明细账 firstRow = new Model_科目明细账(); firstRow.摘要 = "承上年结余"; firstRow.借或贷 = dr[0].ToString(); firstRow.余额 = dr[1].ToString(); _list = ut.Turn(firstRow.余额, 12); firstRow.余额1 = _list[0]; firstRow.余额2 = _list[1]; firstRow.余额3 = _list[2]; firstRow.余额4 = _list[3]; firstRow.余额5 = _list[4]; firstRow.余额6 = _list[5]; firstRow.余额7 = _list[6]; firstRow.余额8 = _list[7]; firstRow.余额9 = _list[8]; firstRow.余额10 = _list[9]; firstRow.余额11 = _list[10]; firstRow.余额12 = _list[11]; list.Add(firstRow); decimal yearfee = 0; decimal.TryParse(firstRow.余额,out yearfee); DataTable dt = db.Query(sql).Tables[0]; String MonthLastValue = "01"; //月合计 decimal MonthDebit = 0; decimal MonthCredit = 0; //月累计 decimal YearDebit = 0; decimal YearCredit = 0; if (dt.Rows.Count > 0) { bool isHasData = false;//这个月是否有数据,有才打印合计累计 foreach (DataRow d in dt.Rows) { Model_科目明细账 m = new Model_科目明细账(); string date = d[0].ToString().Split(' ')[0]; m.年 = date.Split('-')[0]; m.月 = date.Split('-')[1]; m.日 = date.Split('-')[2]; m.号数 = d[1].ToString(); m.摘要 = d[2].ToString(); m.借方金额 = d[3].ToString(); m.贷方金额 = d[4].ToString(); if (m.借方金额.Contains("-") || m.贷方金额.Contains("-")) { m.红字标记 = 1; flag = false; } else { flag = true; } yearfee -= Convert.ToDecimal(m.贷方金额) - Convert.ToDecimal(m.借方金额); string tempvalue = yearfee.ToString(); _list.Clear(); _list = ut.Turn(m.贷方金额, 12); m.贷方金额1 = _list[0]; m.贷方金额2 = _list[1]; m.贷方金额3 = _list[2]; m.贷方金额4 = _list[3]; m.贷方金额5 = _list[4]; m.贷方金额6 = _list[5]; m.贷方金额7 = _list[6]; m.贷方金额8 = _list[7]; m.贷方金额9 = _list[8]; m.贷方金额10 = _list[9]; m.贷方金额11 = _list[10]; m.贷方金额12 = _list[11]; _list.Clear(); _list = ut.Turn(m.借方金额, 12, flag); m.借方金额1 = _list[0]; m.借方金额2 = _list[1]; m.借方金额3 = _list[2]; m.借方金额4 = _list[3]; m.借方金额5 = _list[4]; m.借方金额6 = _list[5]; m.借方金额7 = _list[6]; m.借方金额8 = _list[7]; m.借方金额9 = _list[8]; m.借方金额10 = _list[9]; m.借方金额11 = _list[10]; m.借方金额12 = _list[11]; _list.Clear(); _list = ut.Turn(tempvalue, 12); m.余额1 = _list[0]; m.余额2 = _list[1]; m.余额3 = _list[2]; m.余额4 = _list[3]; m.余额5 = _list[4]; m.余额6 = _list[5]; m.余额7 = _list[6]; m.余额8 = _list[7]; m.余额9 = _list[8]; m.余额10 = _list[9]; m.余额11 = _list[10]; m.余额12 = _list[11]; _list.Clear(); decimal dValue = 0; if (MonthLastValue.Equals(m.月)) { decimal.TryParse(m.借方金额, out dValue); MonthDebit += dValue; YearDebit += dValue; decimal.TryParse(m.贷方金额, out dValue); MonthCredit += dValue; YearCredit += dValue; isHasData = true; } else { if (isHasData) { Model_科目明细账 mm = new Model_科目明细账(); mm = GetModel_Subject(MonthDebit, MonthCredit, MonthDebit - MonthCredit + decimal.Parse(firstRow.余额),flag); mm.摘要 = "本月合计"; mm.借或贷 = GetMark(yearfee); list.Add(mm); if (!MonthLastValue.Equals("01")) { Model_科目明细账 mmm = new Model_科目明细账(); mmm = GetModel_Subject(YearDebit, YearCredit, MonthDebit - MonthCredit + decimal.Parse(firstRow.余额),flag); mmm.摘要 = "本月累计"; mmm.借或贷 = GetMark(yearfee); list.Add(mmm); } } MonthDebit = 0; MonthCredit = 0; decimal.TryParse(m.借方金额, out dValue); MonthDebit += dValue; YearDebit += dValue; decimal.TryParse(m.贷方金额, out dValue); MonthCredit += dValue; YearCredit += dValue; } MonthLastValue = m.月; list.Add(m); } Model_科目明细账 mlast = new Model_科目明细账(); mlast = GetModel_Subject(MonthDebit, MonthCredit, yearfee,flag); mlast.摘要 = "本月合计"; mlast.借或贷 = GetMark(yearfee); list.Add(mlast); if (!MonthLastValue.Equals("01")) { Model_科目明细账 mmm = new Model_科目明细账(); mmm = GetModel_Subject(YearDebit, YearCredit, yearfee,flag); if (MonthLastValue.Equals("12")) { mmm.摘要 = "本年结账"; } else { mmm.摘要 = "本月累计"; } mmm.借或贷 = GetMark(yearfee); list.Add(mmm); } } return list; }
private void Button_查询_Click(object sender, RoutedEventArgs e) { if (string.IsNullOrEmpty(TextBox_一级科目.Text)) { MessageBoxCommon.Show("请选择一级科目"); TextBox_一级科目.Focus(); return; } else if (string.IsNullOrEmpty(TextBox_二级科目.Text)) { MessageBoxCommon.Show("请选择二级科目"); TextBox_二级科目.Focus(); return; } else { string a = TextBox_一级科目.Text.ToString(); string b = TextBox_二级科目.Text.ToString(); List<Model_科目明细账> lm = vmk.GetSubjectDetail(a, b); if (lm.Count > 0) { this.Label_年.Content = lm[0].年 + "年"; } else { Model_科目明细账 m = new Model_科目明细账(); m.摘要 = "查询不到数据!"; lm.Add(m); } this.DataGrid_科目明细.ItemsSource = lm; } }