public static DataTable DanhSachToIn(String MaND, String Nganh, String ToSo, String MaDot, String iID_MaPhongBan) { _data = DuToan_ReportModels.get_dtDuToan_1050000(MaND, Nganh, ToSo, MaDot, iID_MaPhongBan); 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 - 8; i = i + 6) { DataRow R1 = dtToIn.NewRow(); dtToIn.Rows.Add(R1); R1[0] = a; R1[1] = "Tờ " + a; a++; } } return dtToIn; }
public ExcelFile CreateReport(String path, String MaND, String Nganh, String ToSo, String MaDot, String iID_MaPhongBan) { XlsFile Result = new XlsFile(true); DataTable dt = NguoiDungCauHinhModels.LayCauHinh(MaND); String iNamLamViec = DateTime.Now.Year.ToString(), iID_MaNamNganSach = "1", iID_MaNguonNganSach = "1"; if (dt.Rows.Count > 0) { iNamLamViec = Convert.ToString(dt.Rows[0]["iNamLamViec"]); iID_MaNamNganSach = Convert.ToString(dt.Rows[0]["iID_MaNamNganSach"]); iID_MaNguonNganSach = Convert.ToString(dt.Rows[0]["iID_MaNguonNganSach"]); } DataTable dtPB = DuToan_ReportModels.dtPhongBanInBaoDam(); String sTenPB = ""; for (int j = 0; j < dtPB.Rows.Count; j++) { if (iID_MaPhongBan == Convert.ToString(dtPB.Rows[j]["iID"])) { sTenPB = Convert.ToString(dtPB.Rows[j]["sTen"]); } } Result.Open(path); FlexCelReport fr = new FlexCelReport(); fr = ReportModels.LayThongTinChuKy(fr, "rptDuToan_NganSachBaoDam_TungDot"); _data = DuToan_ReportModels.get_dtDuToan_1050000(MaND, Nganh, ToSo, MaDot, iID_MaPhongBan); DataTable data = _data.dtDuLieu; data.TableName = "ChiTiet"; fr.AddTable("ChiTiet", data); data.Dispose(); ArrayList arrMoTa1 = _data.arrMoTa1; ArrayList arrMoTa2 = _data.arrMoTa2; ArrayList arrMoTa3 = _data.arrMoTa3; fr.SetValue("Nam", iNamLamViec); fr.SetValue("ToSo", ToSo); int i = 1; foreach (object obj in arrMoTa1) { fr.SetValue("MoTa1_" + i, obj); i++; } i = 1; foreach (object obj in arrMoTa2) { fr.SetValue("MoTa2_" + i, obj); i++; } i = 1; foreach (object obj in arrMoTa3) { fr.SetValue("MoTa3_" + i, obj); i++; } String sTenDonVi = ""; sTenDonVi = Convert.ToString(CommonFunction.LayTruong("NS_MucLucNganSach_Nganh", "iID", Nganh, "sTenNganh")); ; fr.SetValue("Cap2", sTenDonVi); fr.SetValue("sTenDonVi", sTenDonVi); fr.SetValue("Cap1", ReportModels.CauHinhTenDonViSuDung(1)); fr.SetValue("ngaythang", ReportModels.Ngay_Thang_Nam_HienTai()); fr.SetValue("thang", ReportModels.Thang_Nam_HienTai()); fr.SetValue("ThangNam", ReportModels.Thang_Nam_HienTai()); fr.SetValue("sTenPhongBan", sTenPB); fr.Run(Result); return Result; }
public static dataDuLieu1 get_dtDuToan_1050000(String MaND, String Nganh, String ToSo, String MaDot, String iID_MaPhongBan) { int i = 0; String DSNganh = "", DK = "", DKPB = ""; SqlCommand cmdNG = new SqlCommand(); if (!String.IsNullOrEmpty(MaDot) && MaDot != "-1") { DK += "and iID_MaDotNganSach = @MaDot"; cmdNG.Parameters.AddWithValue("@MaDot", MaDot); } String iID_MaNganhMLNS = Convert.ToString(CommonFunction.LayTruong("NS_MucLucNganSach_Nganh", "iID", Nganh, "iID_MaNganhMLNS")); if (iID_MaPhongBan != "0") { DKPB = " AND iID_MaPhongBanDich=@iID_MaPhongBan"; cmdNG.Parameters.AddWithValue("@iID_MaPhongBan", iID_MaPhongBan); } //DSNganh = " AND sNG IN (" + iID_MaNganhMLNS + ")"; DSNganh = " AND sNG IN (@iID_MaNganhMLNS)"; cmdNG.Parameters.AddWithValue("@iID_MaNganhMLNS", iID_MaNganhMLNS); if (String.IsNullOrEmpty(iID_MaNganhMLNS)) DSNganh = " AND sNG IN (123)"; String SQLNganh = "SELECT distinct sLNS,sL,sK,sM,sTM,sTTM,sNG,sTNG,sMoTa"; SQLNganh += ",sM +'.'+ sTM +'.'+ sTTM +'.'+ sNG AS NG"; SQLNganh += " FROM DT_ChungTuChiTiet_PhanCap WHERE sLNS='1020100' AND MaLoai<>'1' {1} AND iTrangThai=1 {2} {0} {3} {4}"; SQLNganh += " UNION SELECT distinct sLNS,sL,sK,sM,sTM,sTTM,sNG,sTNG,sMoTa"; SQLNganh += ",sM +'.'+ sTM +'.'+ sTTM +'.'+ sNG AS NG"; SQLNganh += " FROM DT_ChungTuChiTiet WHERE sLNS=1040100 AND iKyThuat=1 AND MaLoai=1 {1} AND iTrangThai=1 {2} {0} {3} {4} ORDER BY sM,sTM,sTTM,sNG"; SQLNganh = String.Format(SQLNganh, DSNganh, ReportModels.DieuKien_NganSach_KhongDV(MaND), "", DKPB, DK); cmdNG.CommandText = SQLNganh; DataTable dtNG = Connection.GetDataTable(cmdNG); cmdNG.Dispose(); String SQL; DataTable dtDonVi; String DVT = "1000"; SQL = "SELECT iID_MaDonVi,sLNS,sL,sK,sM,sTM,sTTM,sNG,sTNG,sMoTa"; SQL += ",sM +'.'+ sTM +'.'+ sTTM +'.'+ sNG AS NG"; SQL += ",SUM(rTuChi/{3}) AS rTuChi"; SQL += ",SUM(rHienVat/{3}) AS rHienVat"; SQL += " FROM DT_ChungTuChiTiet_PhanCap WHERE sLNS='1020100' AND MaLoai<>'1' {1} AND iTrangThai=1 {2} {0} {4} {5}"; SQL += " GROUP BY sLNS,sL,sK,sM,sTM,sTTM,sNG,sTNG,iID_MaDonVi,sMoTa"; SQL += " HAVING SUM(rTuChi)>0 OR SUM(rHienVat)>0"; SQL += " UNION SELECT iID_MaDonVi,sLNS,sL,sK,sM,sTM,sTTM,sNG,sTNG,sMoTa"; SQL += ",sM +'.'+ sTM +'.'+ sTTM +'.'+ sNG AS NG"; SQL += ",SUM(rTuChi/{3}) AS rTuChi"; SQL += ",SUM(rHienVat/{3}) AS rHienVat"; SQL += " FROM DT_ChungTuChiTiet WHERE sLNS='1040100' AND iKyThuat=1 AND MaLoai=1 {1} AND iTrangThai=1 {2} {0} {4} {5}"; 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_KhongDV(MaND), "", DVT, DKPB, DK); 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 (SELECT iID_MaDonVi as MaDonVi, sTen FROM NS_DonVi WHERE iTrangThai=1 AND iNamLamViec_DonVi=@iNamLamViec) as NS_DonVi ON NS_DonVi.MaDonVi=CT.iID_MaDonVi"; strSQL = String.Format(strSQL, SQL); SqlCommand cmd = new SqlCommand(strSQL); cmd.Parameters.AddWithValue("@iNamLamViec", NguoiDungCauHinhModels.iNamLamViec); cmd.Parameters.AddWithValue("@iID_MaNganhMLNS", iID_MaNganhMLNS); if (iID_MaPhongBan != "0") { cmd.Parameters.AddWithValue("@iID_MaPhongBan", iID_MaPhongBan); } if (!String.IsNullOrEmpty(MaDot) && MaDot != "-1") { cmd.Parameters.AddWithValue("@MaDot", MaDot); } 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; 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 = 4; TongSoCot = (dtDonVi.Columns.Count - 4) + SoCotCanThem; } else if ((dtDonVi.Columns.Count - 4) <= 4) { int SoCotDu = ((dtDonVi.Columns.Count - 4)) % 4; if (SoCotDu != 0) SoCotCanThem = 4 - SoCotDu; TongSoCot = (dtDonVi.Columns.Count - 4) + SoCotCanThem; } else { int SoCotDu = (dtDonVi.Columns.Count - 4 - 4) % 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 = 4; 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++) { if (i < 0) break; 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++; } } dataDuLieu1 _data = new dataDuLieu1(); _data.dtDuLieu = _dtDonVi; _data.arrMoTa1 = arrMoTa1; _data.arrMoTa2 = arrMoTa2; _data.arrMoTa3 = arrMoTa3; _data.dtdtDuLieuAll = dtDonVi; return _data; }