public static DataTable DanhSachToIn(String MaND,String iID_MaTrangThaiDuyet,String ToSo) { _data = get_dtDuToan_PhuLuc1B(MaND,iID_MaTrangThaiDuyet, ToSo); DataTable dtToIn = new DataTable(); dtToIn.Columns.Add("MaTo", typeof(String)); dtToIn.Columns.Add("TenTo", typeof(String)); DataRow R = dtToIn.NewRow(); dtToIn.Rows.Add(R); R[0] = "1"; R[1] = "Tờ 1"; if (_data.dtdtDuLieuAll != null) { int a = 2; for (int i = 0; i < _data.dtdtDuLieuAll.Columns.Count - 10; i = i + 6) { DataRow R1 = dtToIn.NewRow(); dtToIn.Rows.Add(R1); R1[0] = a; R1[1] = "Tờ " + a; a++; } } return dtToIn; }
public static dataDuLieu get_dtDuToan_PhuLuc1B(String MaND, String iID_MaTrangThaiDuyet, String ToSo) { if (iID_MaTrangThaiDuyet == "0") { iID_MaTrangThaiDuyet = "AND iID_MaTrangThaiDuyet='" + LuongCongViecModel.Get_iID_MaTrangThaiDuyet_DaDuyet(PhanHeModels.iID_MaPhanHeDuToan) + "'"; } else { iID_MaTrangThaiDuyet = " "; } int cs = 0, i = 0; String DSNganh = ""; DSNganh = " AND sNG IN (00)"; String SQLNganh = "SELECT distinct sLNS,sL,sK,sM,sTM,sTTM,sNG,sTNG,sMoTa"; SQLNganh += ",sM +'.'+ sTM +'.'+ sTTM +'.'+ sNG AS NG"; SQLNganh += " FROM DT_ChungTuChiTiet WHERE sLNS='1020500' {0} AND iTrangThai=1 {0} {1}"; SQLNganh = String.Format(SQLNganh, DSNganh, ReportModels.DieuKien_NganSach(MaND),iID_MaTrangThaiDuyet); SqlCommand cmdNG = new SqlCommand(SQLNganh); DataTable dtNG = Connection.GetDataTable(cmdNG); cmdNG.Dispose(); String SQL; DataTable dtDonVi; //SQL= "SELECT DISTINCT iID_MaDonVi"; //SQL += " FROM DT_ChungTuChiTiet WHERE sNG IN ({0})"; //SQL += " GROUP BY iID_MaDonVi"; //SQL += " HAVING SUM(rTuChi)>0 OR SUM(rHienVat)>0"; //SQL = String.Format(SQL, DSNganh); //dtDonVi = Connection.GetDataTable(SQL); // String SQL1 = "SELECT iID_MaNganhMLNS FROM NS_MucLucNganSach_Nganh WHERE iTrangThai=1 AND iID_MaNganh=@iID_MaNganh"; SQL = "SELECT iID_MaDonVi,sLNS,sL,sK,sM,sTM,sTTM,sNG,sTNG,sMoTa"; SQL += ",sM +'.'+ sTM +'.'+ sTTM +'.'+ sNG AS NG"; SQL += ",SUM(rTuChi) AS rTuChi"; SQL += ",SUM(rHienVat) AS rHienVat"; SQL += " FROM DT_ChungTuChiTiet WHERE sLNS='1020500' AND iTrangThai=1 {0} {1} {2}"; SQL += " GROUP BY sLNS,sL,sK,sM,sTM,sTTM,sNG,sTNG,iID_MaDonVi,sMoTa"; SQL += " HAVING SUM(rTuChi)>0 OR SUM(rHienVat)>0"; SQL = String.Format(SQL, DSNganh, ReportModels.DieuKien_NganSach(MaND),iID_MaTrangThaiDuyet); String strSQL = "SELECT CT.iID_MaDonVi,CT.iID_MaDonVi +' - '+ NS_DonVi.sTen AS TenDonVi"; strSQL += ",sLNS,sL,sK,sM,sTM,sTTM,sNG,sTNG,CT.sMoTa"; strSQL += ",sM +'.'+ sTM +'.'+ sTTM +'.'+ sNG AS NG"; strSQL += ",rTuChi,rHienVat"; strSQL += " FROM ({0}) CT "; strSQL += " INNER JOIN NS_DonVi ON NS_DonVi.iID_MaDonVi=CT.iID_MaDonVi"; strSQL = String.Format(strSQL, SQL); SqlCommand cmd = new SqlCommand(strSQL); // cmd.Parameters.AddWithValue("@iID_MaTrangThaiDuyet", LuongCongViecModel.Get_iID_MaTrangThaiDuyet_DaDuyet(PhanHeModels.iID_MaPhanHeDuToan)); DataTable dt = Connection.GetDataTable(cmd); cmd.Dispose(); dtDonVi = HamChung.SelectDistinct("dtDonVi", dt, "iID_MaDonVi", "iID_MaDonVi,TenDonVi"); i = 0; //cs = 3;//tờ 1 4 cột dtDonVi.Columns.Add("TongTuChi", typeof(Decimal)); dtDonVi.Columns.Add("TongHienVat", typeof(Decimal)); while (i < dtNG.Rows.Count) { if (dtDonVi.Columns.IndexOf(dtNG.Rows[i]["NG"].ToString() + "_TuChi") < 0) dtDonVi.Columns.Add(dtNG.Rows[i]["NG"].ToString() + "_TuChi", typeof(Decimal)); if (dtDonVi.Columns.IndexOf(dtNG.Rows[i]["NG"].ToString() + "_HienVat") < 0) dtDonVi.Columns.Add(dtNG.Rows[i]["NG"].ToString() + "_HienVat", typeof(Decimal)); i = i + 1; } i = 0; cs = 0; String MaDonVi, MaDonVi1, TenCot; for (i = 0; i < dtDonVi.Rows.Count; i++) { MaDonVi = Convert.ToString(dtDonVi.Rows[i]["iID_MaDonVi"]).Trim(); for (int j = 0; j < dt.Rows.Count; j++) { MaDonVi1 = Convert.ToString(dt.Rows[j]["iID_MaDonVi"]).Trim(); TenCot = Convert.ToString(dt.Rows[j]["NG"]).Trim(); if (MaDonVi == MaDonVi1 && dtDonVi.Columns.IndexOf(TenCot + "_TuChi") >= 0) { dtDonVi.Rows[i][TenCot + "_TuChi"] = dt.Rows[j]["rTuChi"]; dtDonVi.Rows[i][TenCot + "_HienVat"] = dt.Rows[j]["rHienVat"]; dt.Rows.RemoveAt(j); j = j - 1; } } } i = 0; //j=4 vì trừ cột madv, đơn vị và 2 cột tổng cộng Double Tong = 0; for (int j = 4; j < dtDonVi.Columns.Count; j++) { Tong = 0; for (i = 0; i < dtDonVi.Rows.Count; i++) { if (dtDonVi.Rows[i][j] != DBNull.Value) { Tong = Tong + Convert.ToDouble(dtDonVi.Rows[i][j]); } } if (Tong == 0) { dtDonVi.Columns.RemoveAt(j); if (j == 1) j = 1; else j = j - 1; } } Double TongHienVat = 0, TongTuChi = 0; for (i = 0; i < dtDonVi.Rows.Count; i++) { TongHienVat = 0; TongTuChi = 0; //j=4 vì trừ cột MaDV, đơn vị và 2 cột tổng cộng for (int j = 4; j < dtDonVi.Columns.Count; j++) { if (dtDonVi.Rows[i][j] != DBNull.Value) { if (dtDonVi.Columns[j].ColumnName.IndexOf("_HienVat") >= 0) { TongHienVat = TongHienVat + Convert.ToDouble(dtDonVi.Rows[i][j]); } else { TongTuChi = TongTuChi + Convert.ToDouble(dtDonVi.Rows[i][j]); } } } dtDonVi.Rows[i]["iID_MaDonVi"] = (i + 1).ToString(); dtDonVi.Rows[i]["TongHienVat"] = TongHienVat; dtDonVi.Rows[i]["TongTuChi"] = TongTuChi; } DataTable _dtDonVi = new DataTable(); DataTable _dtDonVi1 = new DataTable(); int TongSoCot = 0; int SoTrang = 1; int SoCotCanThem = 0; if ((dtDonVi.Columns.Count - 4) == 0) { SoCotCanThem = 6; TongSoCot = (dtDonVi.Columns.Count - 4) + SoCotCanThem; } else if ((dtDonVi.Columns.Count - 4) <= 6) { int SoCotDu = ((dtDonVi.Columns.Count - 4)) % 6; if (SoCotDu != 0) SoCotCanThem = 6 - SoCotDu; TongSoCot = (dtDonVi.Columns.Count - 4) + SoCotCanThem; } else { int SoCotDu = (dtDonVi.Columns.Count - 4 - 6) % 6; if (SoCotDu != 0) SoCotCanThem = 6 - SoCotDu; TongSoCot = (dtDonVi.Columns.Count - 4) + SoCotCanThem; SoTrang = 1 + (TongSoCot - 4) / 6; } for (i = 0; i < SoCotCanThem; i++) { dtDonVi.Columns.Add(); } int _ToSo = Convert.ToInt16(ToSo); int SoCotTrang1 = 6; int SoCotTrangLonHon1 = 6; _dtDonVi = dtDonVi.Copy(); int _CS = 0; String BangTien_HienVat = ""; //Mổ tả xâu nối mã ArrayList arrMoTa1 = new ArrayList(); //Mỏ tả ngành ArrayList arrMoTa2 = new ArrayList(); //Bằng Tiền hay bằng hiện vật ArrayList arrMoTa3 = new ArrayList(); if (ToSo == "1") { for (i = 4; i < 4 + SoCotTrang1; i++) { TenCot = _dtDonVi.Columns[i].ColumnName; _CS = TenCot.IndexOf("_"); //Thêm dữ liệu arrMota1 va 2 if (_CS == -1) { arrMoTa1.Add(""); arrMoTa2.Add(""); } else { arrMoTa1.Add(Convert.ToString(TenCot.Substring(0, _CS))); DataRow[] R = dtNG.Select("NG='" + TenCot.Substring(0, _CS) + "'"); arrMoTa2.Add(Convert.ToString(R[0]["sMoTa"])); } //Thêm dữ liệu arrmota 3 if (TenCot.IndexOf("_TuChi") >= 0) BangTien_HienVat = "Bằng tiền"; else if (TenCot.IndexOf("_HienVat") >= 0) BangTien_HienVat = "Bằng hiện vật"; else BangTien_HienVat = ""; arrMoTa3.Add(BangTien_HienVat); //Đổi tên cột _dtDonVi.Columns[i].ColumnName = "Cot" + (i - 3); } } else { int tg = 4 + SoCotTrang1 + SoCotTrangLonHon1 * (_ToSo - 2); int dem = 1; for (i = 4 + SoCotTrang1 + SoCotTrangLonHon1 * (_ToSo - 2); i < 4 + SoCotTrang1 + SoCotTrangLonHon1 * (_ToSo - 1); i++) { TenCot = _dtDonVi.Columns[i].ColumnName; _CS = TenCot.IndexOf("_"); //Thêm dữ liệu arrMota1 va 2 if (_CS == -1) { arrMoTa1.Add(""); arrMoTa2.Add(""); } else { arrMoTa1.Add(Convert.ToString(TenCot.Substring(0, _CS))); DataRow[] R = dtNG.Select("NG='" + TenCot.Substring(0, _CS) + "'"); arrMoTa2.Add(Convert.ToString(R[0]["sMoTa"])); } //Thêm dữ liệu arrmota 3 if (TenCot.IndexOf("_TuChi") >= 0) BangTien_HienVat = "Bằng tiền"; else if (TenCot.IndexOf("_HienVat") >= 0) BangTien_HienVat = "Bằng hiện vật"; else BangTien_HienVat = ""; arrMoTa3.Add(BangTien_HienVat); //Đổi tên cột _dtDonVi.Columns[i].ColumnName = "Cot" + dem; dem++; } } dataDuLieu _data = new dataDuLieu(); _data.dtDuLieu = _dtDonVi; _data.arrMoTa1 = arrMoTa1; _data.arrMoTa2 = arrMoTa2; _data.arrMoTa3 = arrMoTa3; _data.dtdtDuLieuAll = dtDonVi; return _data; }