dynamic cột là tháng
1. Tiền xử lý
public DataTable DMain(DataTable dtColumns, DataRow drReport, FOR0025 formBaoCao)
{
//Viết code dưới dòng này(chỉnh sửa cấu trúc hiển thị báo cáo)
DateTime ngay0 = formBaoCao.TuNgay;
DateTime ngay1 = formBaoCao.TuNgay;
DateTime ngay2 = formBaoCao.DenNgay;
int sothang = ngay2.Year*12 + ngay2.Month - ngay1.Year*12 - ngay1.Month + 1;
DataRow dr;
//
for (int i = 0; i < sothang; i++)
{
ngay0 = ngay1.AddMonths(i);
//MessageBox.Show("ngay0="+ngay0.ToString("dd/MM/yyyy"));
dr = _Vari.FormChinh.dtDynamicReportColumn.NewRow();
dr["ten"] = ngay0.Month.ToString() +"_"+ ngay0.Year.ToString();
dr["giatri"] = ngay0.Month.ToString() +"_"+ ngay0.Year.ToString();
dr["dieukien"] = ngay0.Month.ToString() +"_"+ ngay0.Year.ToString();
_Vari.FormChinh.dtDynamicReportColumn.Rows.Add(dr);
}
return dtColumns;
}
public string dynamicTen(string strTen)
{
strTen = "Tháng " + strTen;
return strTen;
}
// hàm tính giá trị
public string dynamicGiaTri(string strGiaTri)
{
strGiaTri = "(Vr.psno - vr.psco) as TH_"+ strGiaTri.Trim();
return strGiaTri;
}
// hàm tính điều kiện
public string dynamicDieuKien(string strDieuKien)
{
int thang = Convert.ToInt32(strDieuKien.Split('_')[0].ToString());
int nam = Convert.ToInt32(strDieuKien.Split('_')[1].ToString());
strDieuKien = "ngay>='"+ new DateTime(nam, thang , 01).ToString("MM/dd/yyyy")+"'";
strDieuKien += " and ngay<='"+ new DateTime(nam, thang , 01).AddMonths(1).AddDays(-1).ToString("MM/dd/yyyy")+"'";
return strDieuKien;
}
Last updated