/// <summary> /// 支持1.2.3级科目查询子科目 /// </summary> /// <param name="subject_id"></param> /// <param name="detail_id"></param> /// <returns></returns> public List<Model_费用明细> GetFeeDetail(string subject_id,string detail_id) { bool flag = true; ComboBox_科目 cb = new ComboBox_科目(); List<string> lst = new List<string>(); lst = cb.GetChildSubjectList("", detail_id, true); string _tempstr = string.Empty; foreach(string i in lst) { _tempstr += ",total(case when t.detail='" + i.Split('\t')[0] + "' then (t.fee1+t.fee2) else '0' end) as '" + i.Split('\t')[1] + "'"; } for (int i = lst.Count; i < 18; i++) { _tempstr += ",0"; } List<Model_费用明细> list = new List<Model_费用明细>(); string sql = "select strftime(time),number,comments,total(fee1),total(fee2)" + _tempstr + " from " + "(select b.op_time as time ,a.voucher_no as number,a.abstract as comments,a.debit as fee1,a.credit as fee2,a.detail as detail from " + DBTablesName.T_VOUCHER_DETAIL + " a left join " + DBTablesName.T_VOUCHER + " b on a.parentid=b.id where a.subject_id='" + subject_id + "' and a.detail in (select subject_id from " + DBTablesName.T_SUBJECT + " where parent_id='" + detail_id + "') and b.delete_mark=0 and b.REVIEW_MARK=1 order by b.op_time)t group by t.time,t.number order by t.time "; //查年初数 string sql2 = "select a.fee*b.borrow_mark from t_yearfee a left join " + DBTablesName.T_SUBJECT + " b on a.subject_id = b.subject_id where a.subject_id='" + subject_id + "' and a.bookid='" + CommonInfo.账薄号 + "'"; string yearfee = db.GetAllData(sql2).Split('\t')[0].Split(',')[0]; string YearStartFee = yearfee; //年初值 String MonthLastValue = "01"; //月合计 List<decimal> MonthList = new List<decimal>(20); List<decimal> YearList = new List<decimal>(20); for (int i = 0; i < 20;i++ ) { decimal childvalue = 0; MonthList.Add(childvalue); YearList.Add(childvalue); } //月累计 DataTable dt = db.Query(sql).Tables[0]; bool isHasData = false; if (dt.Rows.Count > 0) { foreach (DataRow d in dt.Rows) { decimal debit = 0; decimal credit = 0; Model_费用明细 m = new Model_费用明细(); string date = d[0].ToString().Split(' ')[0]; #region 赋值 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; } decimal.TryParse(m.借方金额, out debit); decimal.TryParse(m.贷方金额, out credit); yearfee = (Convert.ToDecimal(yearfee) - credit + debit).ToString(); #region 赋值 List<string> _list = new List<string>(); _list = ut.Turn(d[3].ToString(), 10, 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]; _list = ut.Turn(d[4].ToString(), 10, 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]; _list.Clear(); _list = ut.Turn(yearfee, 10, 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]; _list.Clear(); _list = ut.Turn(d[5].ToString(), 10, flag); m.金额31 = _list[0]; m.金额32 = _list[1]; m.金额33 = _list[2]; m.金额34 = _list[3]; m.金额35 = _list[4]; m.金额36 = _list[5]; m.金额37 = _list[6]; m.金额38 = _list[7]; m.金额39 = _list[8]; m.金额40 = _list[9]; _list.Clear(); _list = ut.Turn(d[6].ToString(), 10, flag); m.金额41 = _list[0]; m.金额42 = _list[1]; m.金额43 = _list[2]; m.金额44 = _list[3]; m.金额45 = _list[4]; m.金额46 = _list[5]; m.金额47 = _list[6]; m.金额48 = _list[7]; m.金额49 = _list[8]; m.金额50 = _list[9]; _list.Clear(); _list = ut.Turn(d[7].ToString(), 10, flag); m.金额51 = _list[0]; m.金额52 = _list[1]; m.金额53 = _list[2]; m.金额54 = _list[3]; m.金额55 = _list[4]; m.金额56 = _list[5]; m.金额57 = _list[6]; m.金额58 = _list[7]; m.金额59 = _list[8]; m.金额60 = _list[9]; _list.Clear(); _list = ut.Turn(d[8].ToString(), 10, flag); m.金额61 = _list[0]; m.金额62 = _list[1]; m.金额63 = _list[2]; m.金额64 = _list[3]; m.金额65 = _list[4]; m.金额66 = _list[5]; m.金额67 = _list[6]; m.金额68 = _list[7]; m.金额69 = _list[8]; m.金额70 = _list[9]; _list.Clear(); _list = ut.Turn(d[9].ToString(), 10, flag); m.金额71 = _list[0]; m.金额72 = _list[1]; m.金额73 = _list[2]; m.金额74 = _list[3]; m.金额75 = _list[4]; m.金额76 = _list[5]; m.金额77 = _list[6]; m.金额78 = _list[7]; m.金额79 = _list[8]; m.金额80 = _list[9]; _list.Clear(); _list = ut.Turn(d[10].ToString(), 10, flag); m.金额81 = _list[0]; m.金额82 = _list[1]; m.金额83 = _list[2]; m.金额84 = _list[3]; m.金额85 = _list[4]; m.金额86 = _list[5]; m.金额87 = _list[6]; m.金额88 = _list[7]; m.金额89 = _list[8]; m.金额90 = _list[9]; _list.Clear(); _list = ut.Turn(d[11].ToString(), 10, flag); m.金额91 = _list[0]; m.金额92 = _list[1]; m.金额93 = _list[2]; m.金额94 = _list[3]; m.金额95 = _list[4]; m.金额96 = _list[5]; m.金额97 = _list[6]; m.金额98 = _list[7]; m.金额99 = _list[8]; m.金额100 = _list[9]; _list.Clear(); _list = ut.Turn(d[12].ToString(), 10, flag); m.金额101 = _list[0]; m.金额102 = _list[1]; m.金额103 = _list[2]; m.金额104 = _list[3]; m.金额105 = _list[4]; m.金额106 = _list[5]; m.金额107 = _list[6]; m.金额108 = _list[7]; m.金额109 = _list[8]; m.金额110 = _list[9]; _list.Clear(); _list = ut.Turn(d[13].ToString(), 10, flag); m.金额111 = _list[0]; m.金额112 = _list[1]; m.金额113 = _list[2]; m.金额114 = _list[3]; m.金额115 = _list[4]; m.金额116 = _list[5]; m.金额117 = _list[6]; m.金额118 = _list[7]; m.金额119 = _list[8]; m.金额120 = _list[9]; _list.Clear(); _list = ut.Turn(d[14].ToString(), 10, flag); m.金额121 = _list[0]; m.金额122 = _list[1]; m.金额123 = _list[2]; m.金额124 = _list[3]; m.金额125 = _list[4]; m.金额126 = _list[5]; m.金额127 = _list[6]; m.金额128 = _list[7]; m.金额129 = _list[8]; m.金额130 = _list[9]; _list.Clear(); _list = ut.Turn(d[15].ToString(), 10, flag); m.金额131 = _list[0]; m.金额132 = _list[1]; m.金额133 = _list[2]; m.金额134 = _list[3]; m.金额135 = _list[4]; m.金额136 = _list[5]; m.金额137 = _list[6]; m.金额138 = _list[7]; m.金额139 = _list[8]; m.金额140 = _list[9]; _list.Clear(); _list = ut.Turn(d[16].ToString(), 10, flag); m.金额141 = _list[0]; m.金额142 = _list[1]; m.金额143 = _list[2]; m.金额144 = _list[3]; m.金额145 = _list[4]; m.金额146 = _list[5]; m.金额147 = _list[6]; m.金额148 = _list[7]; m.金额149 = _list[8]; m.金额150 = _list[9]; _list.Clear(); _list = ut.Turn(d[17].ToString(), 10, flag); m.金额151 = _list[0]; m.金额152 = _list[1]; m.金额153 = _list[2]; m.金额154 = _list[3]; m.金额155 = _list[4]; m.金额156 = _list[5]; m.金额157 = _list[6]; m.金额158 = _list[7]; m.金额159 = _list[8]; m.金额160 = _list[9]; _list.Clear(); _list = ut.Turn(d[18].ToString(), 10, flag); m.金额161 = _list[0]; m.金额162 = _list[1]; m.金额163 = _list[2]; m.金额164 = _list[3]; m.金额165 = _list[4]; m.金额166 = _list[5]; m.金额167 = _list[6]; m.金额168 = _list[7]; m.金额169 = _list[8]; m.金额170 = _list[9]; _list.Clear(); _list = ut.Turn(d[19].ToString(), 10, flag); m.金额171 = _list[0]; m.金额172 = _list[1]; m.金额173 = _list[2]; m.金额174 = _list[3]; m.金额175 = _list[4]; m.金额176 = _list[5]; m.金额177 = _list[6]; m.金额178 = _list[7]; m.金额179 = _list[8]; m.金额180 = _list[9]; _list.Clear(); _list = ut.Turn(d[20].ToString(), 10, flag); m.金额181 = _list[0]; m.金额182 = _list[1]; m.金额183 = _list[2]; m.金额184 = _list[3]; m.金额185 = _list[4]; m.金额186 = _list[5]; m.金额187 = _list[6]; m.金额188 = _list[7]; m.金额189 = _list[8]; m.金额190 = _list[9]; _list.Clear(); _list = ut.Turn(d[21].ToString(), 10, flag); m.金额191 = _list[0]; m.金额192 = _list[1]; m.金额193 = _list[2]; m.金额194 = _list[3]; m.金额195 = _list[4]; m.金额196 = _list[5]; m.金额197 = _list[6]; m.金额198 = _list[7]; m.金额199 = _list[8]; m.金额200 = _list[9]; _list.Clear(); _list = ut.Turn(d[22].ToString(), 10, flag); m.金额201 = _list[0]; m.金额202 = _list[1]; m.金额203 = _list[2]; m.金额204 = _list[3]; m.金额205 = _list[4]; m.金额206 = _list[5]; m.金额207 = _list[6]; m.金额208 = _list[7]; m.金额209 = _list[8]; m.金额210 = _list[9]; m.列名 = lst; decimal dValue = 0; if (MonthLastValue.Equals(m.月)) { for (int i = 0; i < 20; i++) { decimal.TryParse(d[i + 3].ToString(), out dValue); MonthList[i] += dValue; YearList[i] += dValue; } isHasData = true; //f1001 } else { if (isHasData) { Model_费用明细 mm = new Model_费用明细(); mm = GetFeeDetail(MonthList, MonthList[0] - MonthList[1] + decimal.Parse(YearStartFee),flag); mm.摘要 = "本月合计"; list.Add(mm); if (!MonthLastValue.Equals("01")) { Model_费用明细 mmm = new Model_费用明细(); mmm = GetFeeDetail(YearList, YearList[0] - YearList[1] + decimal.Parse(YearStartFee), flag); mmm.摘要 = "本月累计"; list.Add(mmm); } } MonthList = new List<decimal>(20); for (int i = 0; i < 20; i++) { decimal childvalue = 0; MonthList.Add(childvalue); } for (int i = 0; i < 20; i++) { decimal.TryParse(d[i + 3].ToString(), out dValue); MonthList[i] += dValue; YearList[i] += dValue; } } MonthLastValue = m.月; #endregion #endregion list.Add(m); } Model_费用明细 mlast = new Model_费用明细(); mlast = GetFeeDetail(MonthList, decimal.Parse(yearfee),flag); mlast.摘要 = "本月合计"; list.Add(mlast); if (!MonthLastValue.Equals("01")) { Model_费用明细 mmm = new Model_费用明细(); mmm = GetFeeDetail(YearList, decimal.Parse(yearfee),flag); if (MonthLastValue.Equals("12")) { mmm.摘要 = "本年结账"; } else { mmm.摘要 = "本月累计"; } list.Add(mmm); } } return list; }
private Model_费用明细 GetFeeDetail(List<decimal> list,decimal SumFee,bool flag) { Model_费用明细 m = new Model_费用明细(); List<string> _list = new List<string>(); _list = ut.Turn(list[0].ToString(), 10, 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]; _list = ut.Turn(list[1].ToString(), 10, 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]; _list.Clear(); _list = ut.Turn(SumFee.ToString(), 10, 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]; _list.Clear(); _list = ut.Turn(list[2].ToString(), 10, flag); m.金额31 = _list[0]; m.金额32 = _list[1]; m.金额33 = _list[2]; m.金额34 = _list[3]; m.金额35 = _list[4]; m.金额36 = _list[5]; m.金额37 = _list[6]; m.金额38 = _list[7]; m.金额39 = _list[8]; m.金额40 = _list[9]; _list.Clear(); _list = ut.Turn(list[3].ToString(), 10, flag); m.金额41 = _list[0]; m.金额42 = _list[1]; m.金额43 = _list[2]; m.金额44 = _list[3]; m.金额45 = _list[4]; m.金额46 = _list[5]; m.金额47 = _list[6]; m.金额48 = _list[7]; m.金额49 = _list[8]; m.金额50 = _list[9]; _list.Clear(); _list = ut.Turn(list[4].ToString(), 10, flag); m.金额51 = _list[0]; m.金额52 = _list[1]; m.金额53 = _list[2]; m.金额54 = _list[3]; m.金额55 = _list[4]; m.金额56 = _list[5]; m.金额57 = _list[6]; m.金额58 = _list[7]; m.金额59 = _list[8]; m.金额60 = _list[9]; _list.Clear(); _list = ut.Turn(list[5].ToString(), 10, flag); m.金额61 = _list[0]; m.金额62 = _list[1]; m.金额63 = _list[2]; m.金额64 = _list[3]; m.金额65 = _list[4]; m.金额66 = _list[5]; m.金额67 = _list[6]; m.金额68 = _list[7]; m.金额69 = _list[8]; m.金额70 = _list[9]; _list.Clear(); _list = ut.Turn(list[6].ToString(), 10, flag); m.金额71 = _list[0]; m.金额72 = _list[1]; m.金额73 = _list[2]; m.金额74 = _list[3]; m.金额75 = _list[4]; m.金额76 = _list[5]; m.金额77 = _list[6]; m.金额78 = _list[7]; m.金额79 = _list[8]; m.金额80 = _list[9]; _list.Clear(); _list = ut.Turn(list[7].ToString(), 10, flag); m.金额81 = _list[0]; m.金额82 = _list[1]; m.金额83 = _list[2]; m.金额84 = _list[3]; m.金额85 = _list[4]; m.金额86 = _list[5]; m.金额87 = _list[6]; m.金额88 = _list[7]; m.金额89 = _list[8]; m.金额90 = _list[9]; _list.Clear(); _list = ut.Turn(list[8].ToString(), 10, flag); m.金额91 = _list[0]; m.金额92 = _list[1]; m.金额93 = _list[2]; m.金额94 = _list[3]; m.金额95 = _list[4]; m.金额96 = _list[5]; m.金额97 = _list[6]; m.金额98 = _list[7]; m.金额99 = _list[8]; m.金额100 = _list[9]; _list.Clear(); _list = ut.Turn(list[9].ToString(), 10, flag); m.金额101 = _list[0]; m.金额102 = _list[1]; m.金额103 = _list[2]; m.金额104 = _list[3]; m.金额105 = _list[4]; m.金额106 = _list[5]; m.金额107 = _list[6]; m.金额108 = _list[7]; m.金额109 = _list[8]; m.金额110 = _list[9]; _list.Clear(); _list = ut.Turn(list[10].ToString(), 10, flag); m.金额111 = _list[0]; m.金额112 = _list[1]; m.金额113 = _list[2]; m.金额114 = _list[3]; m.金额115 = _list[4]; m.金额116 = _list[5]; m.金额117 = _list[6]; m.金额118 = _list[7]; m.金额119 = _list[8]; m.金额120 = _list[9]; _list.Clear(); _list = ut.Turn(list[11].ToString(), 10, flag); m.金额121 = _list[0]; m.金额122 = _list[1]; m.金额123 = _list[2]; m.金额124 = _list[3]; m.金额125 = _list[4]; m.金额126 = _list[5]; m.金额127 = _list[6]; m.金额128 = _list[7]; m.金额129 = _list[8]; m.金额130 = _list[9]; _list.Clear(); _list = ut.Turn(list[12].ToString(), 10, flag); m.金额131 = _list[0]; m.金额132 = _list[1]; m.金额133 = _list[2]; m.金额134 = _list[3]; m.金额135 = _list[4]; m.金额136 = _list[5]; m.金额137 = _list[6]; m.金额138 = _list[7]; m.金额139 = _list[8]; m.金额140 = _list[9]; _list.Clear(); _list = ut.Turn(list[13].ToString(), 10, flag); m.金额141 = _list[0]; m.金额142 = _list[1]; m.金额143 = _list[2]; m.金额144 = _list[3]; m.金额145 = _list[4]; m.金额146 = _list[5]; m.金额147 = _list[6]; m.金额148 = _list[7]; m.金额149 = _list[8]; m.金额150 = _list[9]; _list.Clear(); _list = ut.Turn(list[14].ToString(), 10, flag); m.金额151 = _list[0]; m.金额152 = _list[1]; m.金额153 = _list[2]; m.金额154 = _list[3]; m.金额155 = _list[4]; m.金额156 = _list[5]; m.金额157 = _list[6]; m.金额158 = _list[7]; m.金额159 = _list[8]; m.金额160 = _list[9]; _list.Clear(); _list = ut.Turn(list[15].ToString(), 10, flag); m.金额161 = _list[0]; m.金额162 = _list[1]; m.金额163 = _list[2]; m.金额164 = _list[3]; m.金额165 = _list[4]; m.金额166 = _list[5]; m.金额167 = _list[6]; m.金额168 = _list[7]; m.金额169 = _list[8]; m.金额170 = _list[9]; _list.Clear(); _list = ut.Turn(list[16].ToString(), 10, flag); m.金额171 = _list[0]; m.金额172 = _list[1]; m.金额173 = _list[2]; m.金额174 = _list[3]; m.金额175 = _list[4]; m.金额176 = _list[5]; m.金额177 = _list[6]; m.金额178 = _list[7]; m.金额179 = _list[8]; m.金额180 = _list[9]; _list.Clear(); _list = ut.Turn(list[17].ToString(), 10, flag); m.金额181 = _list[0]; m.金额182 = _list[1]; m.金额183 = _list[2]; m.金额184 = _list[3]; m.金额185 = _list[4]; m.金额186 = _list[5]; m.金额187 = _list[6]; m.金额188 = _list[7]; m.金额189 = _list[8]; m.金额190 = _list[9]; _list.Clear(); _list = ut.Turn(list[18].ToString(), 10, flag); m.金额191 = _list[0]; m.金额192 = _list[1]; m.金额193 = _list[2]; m.金额194 = _list[3]; m.金额195 = _list[4]; m.金额196 = _list[5]; m.金额197 = _list[6]; m.金额198 = _list[7]; m.金额199 = _list[8]; m.金额200 = _list[9]; _list.Clear(); _list = ut.Turn(list[19].ToString(), 10, flag); m.金额201 = _list[0]; m.金额202 = _list[1]; m.金额203 = _list[2]; m.金额204 = _list[3]; m.金额205 = _list[4]; m.金额206 = _list[5]; m.金额207 = _list[6]; m.金额208 = _list[7]; m.金额209 = _list[8]; m.金额210 = _list[9]; return m; }
private void Button_多栏明细_Click(object sender, RoutedEventArgs e) { string _subjectid = string.Empty; string _detailid = string.Empty; List<Model_费用明细> lm = new List<Model_费用明细>(); if (string.IsNullOrEmpty(TextBox_多栏明细账_一.Text)) { MessageBoxCommon.Show("请选择一级科目!"); this.TextBox_多栏明细账_一.Focus(); return; } if (string.IsNullOrEmpty(TextBox_多栏明细账_二.Text)) { _detailid = TextBox_多栏明细账_一.Text.Split('\t')[0]; } else { if (string.IsNullOrEmpty(TextBox_多栏明细账_三.Text)) { _detailid = TextBox_多栏明细账_二.Text.Split('\t')[0]; } else { _detailid = TextBox_多栏明细账_三.Text.Split('\t')[0]; } } _subjectid = TextBox_多栏明细账_一.Text.Split('\t')[0]; lm = vmk.GetFeeDetail(_subjectid, _detailid); if (lm.Count > 0) { this.Label_费用明细年.Content = lm[0].年 + "年"; int count = 1; if (lm[0].列名.Count > 18) { MessageBoxCommon.Show("该版本软件不支持查询该科目!"); return; } foreach (string s in lm[0].列名) { Label lb = new Label(); lb = FindName("Label_" + count) as Label; lb.Content = s.Split('\t')[1]; count++; } } else { Model_费用明细 m = new Model_费用明细(); m.摘要 = "查询不到数据!"; lm.Add(m); } this.DataGrid_费用明细账.ItemsSource = lm; }