CODE NÚT CHỨC NĂNG GÁN DỮ LIỆU XUỐNG LƯỚI

Yêu cầu

  • Tạo nút chức năng trên lưới

  • Code nút gán dữ liệu nhiều dòng xuống lưới

Hướng dẫn thao tác

  • Chuột phải vào 1 object có sẵn của hàng nút chức năng trên lưới/ chọn nhân đôi

  • chuột phải properties/ sửa name, text

  • code chức năng. ở dưới là 2 ví dụ

Ví dụ 1: code nút nhập số tiền CIF rồi phân bổ xuống lưới

/*
		- phân bổ giá cif: bản chất là phí vận chuyển + bảo hiểm do người bán cung cấp. nên cần phân bổ để tính thuế nhập khẩu. 
		- bấm vào nút, hiển thị ô nhập tiền (format kiểu vnd)
		- bấm chấp nhận, thì phân bổ xuống cột cif ở dưới lưới. Theo tỷ lệ: cif_tong * psno / sum(psno) ở dưới lưới.
			+ lưu ý làm tròn số tiền lần cuối cùng.
		- tính lại psnoTinhthueHQ
			+ sau khi soluong*dongia*tygiaHQ
			+ kiểm tra xem hình như còn chi phí phân bổ trước hải quan. nếu có thì cif sau cả đoạn này
			+ cộng thêm cif vừa được phân bổ vào.
		- tính lại các cột liên quan
			+ các loại thuế phía sau thuexnk
		*/
		try
		{
		bool confirm = false; 
		decimal cif = 0;
		//tính tổng lại giá trị cif đã bổ nếu có
		// DataRow dr = _Func.GetFormValues(new Size(300, 400), _Func.DichNN("Nhập số dòng thêm"), 1, out confirm, "N", "Số dòng:#3#0#10");
		if(myform.DTG0001.dvSource.Table.Columns.Contains("CIF"))
		{
			cif = Convert.ToDecimal(myform.DTG0001.dvSource.Table.Compute("Sum(CIF)",""));
			DataRow dr1 = _Func.GetFormValues(new Size(300, 400), "Phân bổ giá CIF", 1, out confirm , "N"
		, "Tiền cif bổ: #18#0#"+ cif.ToString().Trim());
			if(confirm)
			{
				decimal cifbo = Convert.ToDecimal(dr1[0]);
				_Func.EditTable(myform.DTG0001.dvSource.Table,"CIF",0,"");
				if(cifbo >0)
				{
					decimal tongtieuthuc = 0;
					object resul = myform.DTG0001.dvSource.Table.Compute("Sum(PsNo)","PsNo>0");
					if(resul != DBNull.Value)
						tongtieuthuc = Convert.ToDecimal(resul);
					if(tongtieuthuc<=0)
					{
						_Func.ThongBaoLoi("Phí cif bổ theo tiền nên vui lòng nhập tiền của các dòng chi tiết trước khi bổ.");
						return;
					}
					DataRow[] drbo = myform.DTG0001.dvSource.Table.Select("PsNo>0");
					decimal conlai = cifbo;
					for(int i =0 ;i< drbo.Length; i++)
					{
						if(i== drbo.Length-1)
							drbo[i]["CIF"] = conlai;
						else
						{
							decimal gtbo = Math.Round(cifbo* Convert.ToDecimal(drbo[i]["PsNo"])/tongtieuthuc, 0, MidpointRounding.AwayFromZero);
							drbo[i]["CIF"] = gtbo;
							conlai -= gtbo;
						}
					}
				}
				//Chạy lại tính thuexnk cộng thêm phí CIf
				myform.CodeChungNL("ptthuexnk",true);
			}

		}
		
		}catch(Exception ex){MessageBox.Show(ex.Message);}

Ví dụ 2: code nút Xuất vật tư theo báo cáo

Last updated