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