#region Kiểm tra Trùng tên tài liệu và Tên tài liệu trống trên GridView
///////////////////////////////////////////////////////////////////////////
private TrungNoiDung KiemTraTrungLap(string p, int id)
{
foreach (tbTaiLieu obj in tbTaiLieuBindingSource)
{
if (obj.TenTaiLieu == p && id != obj.IdTaiLieu)
{
return TrungNoiDung.Trung;
}
}
return TrungNoiDung.KhongTrung;
}
//////////////////////////////////////////////////////////////////////////////
private void gridView2_ValidateRow(object sender, DevExpress.XtraGrid.Views.Base.ValidateRowEventArgs e)
{
try
{
GridView view = sender as GridView;
int rowHandle = e.RowHandle;
e.ErrorText = "CÓ: Bổ sung thông tin.\r\nKHÔNG: Hủy thao tác không bổ sung thêm thông tin.\r\n";
if (Convert.ToString(view.GetRowCellValue(rowHandle, this.colTenTaiLieu)).ToString() == string.Empty)
{
e.Valid = false;
view.SetColumnError(this.colTenTaiLieu, "Nhập tên tài liệu!");
}
}
catch (Exception)
{
}
}
/////////////////////////////////////////////////////////////////////////////////////////////////////////
private void gridView2_ValidatingEditor(object sender, BaseContainerValidateEditorEventArgs e)
{
int id = ((tbTaiLieu)tbTaiLieuBindingSource.Current).IdTaiLieu;
if (gridView2.FocusedColumn.Name == "colTenTaiLieu")
{
if (e.Value.ToString() == "" || KiemTraTrungLap(e.Value.ToString(), id) == TrungNoiDung.Trung)
{
if (id == 0)
{
tbTaiLieuBindingSource.RemoveCurrent();
tbTaiLieuBindingSource.EndEdit();
}
e.Valid = false;
}
}
}
////////////////////////////////////////////////////////////////////////////////////////////
private void gridView2_InvalidValueException(object sender, InvalidValueExceptionEventArgs e)
{
gridView2.SetColumnError(gridView2.FocusedColumn, "Không được để trống ô này hoặc tên vừa nhập đã tồn tại. Vui lòng nhập tên khác!!", ErrorType.Critical);
e.ExceptionMode = ExceptionMode.NoAction;
e.WindowCaption = "Thông báo!";
e.ErrorText = "Không được để trống ô này!\n\rHoặc tên vừa nhập đã tồn tại.\n\rVui lòng nhập tên khác!";
// Destroying the editor and discarding the changes made within the edited cell
gridView2.HideEditor();
}
#endregion Kiểm tra Trùng tên tài liệu và Tên tài liệu trống trên GridView
Thứ Tư, 12 tháng 8, 2015
Kiểm tra trống và Trùng dữ liệu trên các form thêm mới
// Trên các control như textbox...
private void txtTenTaiLieu_Validating(object sender, CancelEventArgs e)
{
if (CheckTenTaiLieu(txtTenTaiLieu.Text) || txtTenTaiLieu.Text == "")
e.Cancel = true;
}
private void txtTenTaiLieu_InvalidValue(object sender, InvalidValueExceptionEventArgs e)
{
e.ExceptionMode = DevExpress.XtraEditors.Controls.ExceptionMode.NoAction;
ThongBao.BaoLoi("Tên tài liệu này đã tồn tại hoặc đang để trống.\r\nVui lòng nhập tên khác!");
}
bool CheckTenTaiLieu(string tentailieu)
{
return dbTaiLieu.tbTaiLieux.Where(t=>(t.TenTaiLieu == tentailieu && t.IdTieuMuc == (int)trvDanhMuc.SelectedNode.Tag && t.NamLuuTru == DateTime.Now.Year)).Count() > 0;
}
// Trên girdView
private TrungNoiDung KiemTraTrungLap(string p, int id)
{
tbTaiLieuBindingSource.EndEdit();
// Kiểm tra trên CSDL
if (CheckTenTaiLieu(p)) return TrungNoiDung.Trung;
foreach (tbTaiLieu obj in tbTaiLieuBindingSource)
{
// Kiểm tra trên các Tài liệu chưa thêm vào
if (obj.TenTaiLieu == p && id != obj.IdTaiLieu)
{
return TrungNoiDung.Trung;
}
}
return TrungNoiDung.KhongTrung;
}
/////////////////////////////////////////////////////////////////////////
private void gridView19_ValidateRow(object sender, DevExpress.XtraGrid.Views.Base.ValidateRowEventArgs e)
{
try
{
GridView view = sender as GridView;
int rowHandle = e.RowHandle;
e.ErrorText = "CÓ: Bổ sung thông tin.\r\nKHÔNG: Hủy thao tác không bổ sung thêm thông tin.\r\n";
if (Convert.ToString(view.GetRowCellValue(rowHandle, this.colTenTaiLieu)).ToString() == string.Empty)
{
e.Valid = false;
view.SetColumnError(this.colTenTaiLieu, "Nhập tên tài liệu!");
}
}
catch (Exception)
{
}
}
private void gridView19_ValidatingEditor(object sender, BaseContainerValidateEditorEventArgs e)
{
int id = ((tbTaiLieu)tbTaiLieuBindingSource.Current).IdTaiLieu;
if (gridView19.FocusedColumn.Name == "colTenTaiLieu")
{
this.tbTaiLieuBindingSource.EndEdit();
if (e.Value.ToString() == "" || KiemTraTrungLap(e.Value.ToString(), id) == TrungNoiDung.Trung)
{
if (id == 0)
{
tbTaiLieuBindingSource.RemoveCurrent();
tbTaiLieuBindingSource.EndEdit();
}
e.Valid = false;
}
}
}
/////////////////////////////////////////////////////////
private void gridView19_InvalidValueException(object sender, InvalidValueExceptionEventArgs e)
{
gridView19.SetColumnError(gridView19.FocusedColumn, "Không được để trống ô này hoặc tên vừa nhập đã tồn tại. Vui lòng nhập tên khác!!", ErrorType.Critical);
e.ExceptionMode = ExceptionMode.NoAction;
e.WindowCaption = "Thông báo!";
e.ErrorText = "Không được để trống ô này!\n\rHoặc tên này đã tồn tại.\n\rVui lòng nhập tên khác!";
// Destroying the editor and discarding the changes made within the edited cell
gridView19.HideEditor();
}
private void txtTenTaiLieu_Validating(object sender, CancelEventArgs e)
{
if (CheckTenTaiLieu(txtTenTaiLieu.Text) || txtTenTaiLieu.Text == "")
e.Cancel = true;
}
private void txtTenTaiLieu_InvalidValue(object sender, InvalidValueExceptionEventArgs e)
{
e.ExceptionMode = DevExpress.XtraEditors.Controls.ExceptionMode.NoAction;
ThongBao.BaoLoi("Tên tài liệu này đã tồn tại hoặc đang để trống.\r\nVui lòng nhập tên khác!");
}
bool CheckTenTaiLieu(string tentailieu)
{
return dbTaiLieu.tbTaiLieux.Where(t=>(t.TenTaiLieu == tentailieu && t.IdTieuMuc == (int)trvDanhMuc.SelectedNode.Tag && t.NamLuuTru == DateTime.Now.Year)).Count() > 0;
}
// Trên girdView
private TrungNoiDung KiemTraTrungLap(string p, int id)
{
tbTaiLieuBindingSource.EndEdit();
// Kiểm tra trên CSDL
if (CheckTenTaiLieu(p)) return TrungNoiDung.Trung;
foreach (tbTaiLieu obj in tbTaiLieuBindingSource)
{
// Kiểm tra trên các Tài liệu chưa thêm vào
if (obj.TenTaiLieu == p && id != obj.IdTaiLieu)
{
return TrungNoiDung.Trung;
}
}
return TrungNoiDung.KhongTrung;
}
/////////////////////////////////////////////////////////////////////////
private void gridView19_ValidateRow(object sender, DevExpress.XtraGrid.Views.Base.ValidateRowEventArgs e)
{
try
{
GridView view = sender as GridView;
int rowHandle = e.RowHandle;
e.ErrorText = "CÓ: Bổ sung thông tin.\r\nKHÔNG: Hủy thao tác không bổ sung thêm thông tin.\r\n";
if (Convert.ToString(view.GetRowCellValue(rowHandle, this.colTenTaiLieu)).ToString() == string.Empty)
{
e.Valid = false;
view.SetColumnError(this.colTenTaiLieu, "Nhập tên tài liệu!");
}
}
catch (Exception)
{
}
}
private void gridView19_ValidatingEditor(object sender, BaseContainerValidateEditorEventArgs e)
{
int id = ((tbTaiLieu)tbTaiLieuBindingSource.Current).IdTaiLieu;
if (gridView19.FocusedColumn.Name == "colTenTaiLieu")
{
this.tbTaiLieuBindingSource.EndEdit();
if (e.Value.ToString() == "" || KiemTraTrungLap(e.Value.ToString(), id) == TrungNoiDung.Trung)
{
if (id == 0)
{
tbTaiLieuBindingSource.RemoveCurrent();
tbTaiLieuBindingSource.EndEdit();
}
e.Valid = false;
}
}
}
/////////////////////////////////////////////////////////
private void gridView19_InvalidValueException(object sender, InvalidValueExceptionEventArgs e)
{
gridView19.SetColumnError(gridView19.FocusedColumn, "Không được để trống ô này hoặc tên vừa nhập đã tồn tại. Vui lòng nhập tên khác!!", ErrorType.Critical);
e.ExceptionMode = ExceptionMode.NoAction;
e.WindowCaption = "Thông báo!";
e.ErrorText = "Không được để trống ô này!\n\rHoặc tên này đã tồn tại.\n\rVui lòng nhập tên khác!";
// Destroying the editor and discarding the changes made within the edited cell
gridView19.HideEditor();
}
Thứ Ba, 4 tháng 8, 2015
GridLookupEdit Get Select Value
vb.IdNguoiThucHien = (int)cbbThucHien.Properties.View.GetFocusedRowCellValue("IdNguoiDung");
Chủ Nhật, 26 tháng 7, 2015
TreeNode Selected BackColor while TreeView not focused
- Set the
TreeView.DrawModetoTreeViewDrawMode.OwnerDrawText:treeView.DrawMode = TreeViewDrawMode.OwnerDrawText; - Set the
Treview.HideSelectiontofalse, so that the node states will be kept as selected:treeView.HideSelection= false; - Add
DrawNodeevent handler to draw the background usingSystemColors.Highlightcolor:private void treeView_DrawNode(object sender, DrawTreeNodeEventArgs e) { if (e.Node == null) return; // if treeview's HideSelection property is "True", // this will always returns "False" on unfocused treeview var selected = (e.State & TreeNodeStates.Selected) == TreeNodeStates.Selected; var unfocused = !e.Node.TreeView.Focused; // we need to do owner drawing only on a selected node // and when the treeview is unfocused, else let the OS do it for us if (selected && unfocused) { var font = e.Node.NodeFont ?? e.Node.TreeView.Font; e.Graphics.FillRectangle(SystemBrushes.Highlight, e.Bounds); TextRenderer.DrawText(e.Graphics, e.Node.Text, font, e.Bounds, SystemColors.HighlightText, TextFormatFlags.GlyphOverhangPadding); } else { e.DrawDefault = true; } }
Thứ Tư, 29 tháng 4, 2015
GridView DoubleClick
private void gridView1_DoubleClick(object sender, EventArgs e)
{
GridView view = (GridView)sender;
Point pt = view.GridControl.PointToClient(Control.MousePosition);
DoRowDoubleClick(view, pt);
}
private static void DoRowDoubleClick(GridView view, Point pt)
{
GridHitInfo info = view.CalcHitInfo(pt);
if (info.InRow || info.InRowCell)
{
string colCaption = info.Column == null ? "N/A" : info.Column.GetCaption();
MessageBox.Show(string.Format("DoubleClick on row: {0}, column: {1}.", info.RowHandle, colCaption));
}
}
{
GridView view = (GridView)sender;
Point pt = view.GridControl.PointToClient(Control.MousePosition);
DoRowDoubleClick(view, pt);
}
private static void DoRowDoubleClick(GridView view, Point pt)
{
GridHitInfo info = view.CalcHitInfo(pt);
if (info.InRow || info.InRowCell)
{
string colCaption = info.Column == null ? "N/A" : info.Column.GetCaption();
MessageBox.Show(string.Format("DoubleClick on row: {0}, column: {1}.", info.RowHandle, colCaption));
}
}
Thứ Tư, 22 tháng 4, 2015
Tạo file excel và xuất ra máy in
MemoryStream ms = new MemoryStream();
Workbook workbook = new Workbook(@"TenFile.xlsx");
void TaoFileVaIn(bool xuatBan)
{
// Lấy sheet mẫu
Worksheet worksheet = workbook.Worksheets[0];
worksheet.PageSetup.PaperSize = PaperSizeType.PaperA4;
worksheet.PageSetup.Orientation = PageOrientationType.Landscape;
// Chuyển worksheet mẫu về đầu
worksheet.Move(0);
// Chỉ định sheet đang hoạt động là sheet đầu tiên
workbook.Worksheets.ActiveSheetIndex = 0;
// Không hiển thị đầy đủ lưới
// worksheet.IsGridlinesVisible = false;
int stt = 1;
int sohang = 17;
string now = "Tháng " + cbbThang.Text + " năm " + cbbNam.Text;
worksheet.Cells["A8"].Value = now;
for (int i = 0; i < listBKTH01.Count; i++)
{
worksheet.Cells.InsertRow(17);
}
//Style cellA = worksheet.Cells["A16"].GetStyle();
for (int i = 0; i < listBKTH01.Count ;i++ )
{
worksheet.Cells["A" + sohang].Value = stt;
worksheet.Cells["B" + sohang].Value = "GiaTri";
stt++;
sohang++;
}
worksheet.Cells["C" + sohang].Formula = "=SUM(C17:C" + (sohang - 1) + ")";
if (xuatBan)
{
try
{
Aspose.Cells.Rendering.ImageOrPrintOptions options = new Aspose.Cells.Rendering.ImageOrPrintOptions();
options.PrintingPage = PrintingPageType.Default;
worksheet.PageSetup.FitToPagesTall = 1;
//Setting the number of pages to which the width of the worksheet will be spanned
worksheet.PageSetup.FitToPagesWide = 1;
//Setting the paper size to A4
worksheet.PageSetup.PaperSize = PaperSizeType.PaperA4;
SheetRender sr = new SheetRender(worksheet, options);
sr.ToPrinter(Properties.Settings.Default.TenMayIn);
}
catch
{
ThongBao.BaoLoi("Không tìm thấy máy in đã chỉ định!");
}
}
// Truyền dữ liệu vào luồng excel để hiển thị trên form excel
else
{
workbook.Save(ms, SaveFormat.Xlsx);
}
}
private void btnXemDuLieu_Click(object sender, EventArgs e)
{
TaoFileVaIn(false);
frmXemTruoc f = new frmXemTruoc(ms);
f.Show();
}
Workbook workbook = new Workbook(@"TenFile.xlsx");
void TaoFileVaIn(bool xuatBan)
{
// Lấy sheet mẫu
Worksheet worksheet = workbook.Worksheets[0];
worksheet.PageSetup.PaperSize = PaperSizeType.PaperA4;
worksheet.PageSetup.Orientation = PageOrientationType.Landscape;
// Chuyển worksheet mẫu về đầu
worksheet.Move(0);
// Chỉ định sheet đang hoạt động là sheet đầu tiên
workbook.Worksheets.ActiveSheetIndex = 0;
// Không hiển thị đầy đủ lưới
// worksheet.IsGridlinesVisible = false;
int stt = 1;
int sohang = 17;
string now = "Tháng " + cbbThang.Text + " năm " + cbbNam.Text;
worksheet.Cells["A8"].Value = now;
for (int i = 0; i < listBKTH01.Count; i++)
{
worksheet.Cells.InsertRow(17);
}
//Style cellA = worksheet.Cells["A16"].GetStyle();
for (int i = 0; i < listBKTH01.Count ;i++ )
{
worksheet.Cells["A" + sohang].Value = stt;
worksheet.Cells["B" + sohang].Value = "GiaTri";
stt++;
sohang++;
}
worksheet.Cells["C" + sohang].Formula = "=SUM(C17:C" + (sohang - 1) + ")";
if (xuatBan)
{
try
{
Aspose.Cells.Rendering.ImageOrPrintOptions options = new Aspose.Cells.Rendering.ImageOrPrintOptions();
options.PrintingPage = PrintingPageType.Default;
worksheet.PageSetup.FitToPagesTall = 1;
//Setting the number of pages to which the width of the worksheet will be spanned
worksheet.PageSetup.FitToPagesWide = 1;
//Setting the paper size to A4
worksheet.PageSetup.PaperSize = PaperSizeType.PaperA4;
SheetRender sr = new SheetRender(worksheet, options);
sr.ToPrinter(Properties.Settings.Default.TenMayIn);
}
catch
{
ThongBao.BaoLoi("Không tìm thấy máy in đã chỉ định!");
}
}
// Truyền dữ liệu vào luồng excel để hiển thị trên form excel
else
{
workbook.Save(ms, SaveFormat.Xlsx);
}
}
private void btnXemDuLieu_Click(object sender, EventArgs e)
{
TaoFileVaIn(false);
frmXemTruoc f = new frmXemTruoc(ms);
f.Show();
}
Đọc dữ liệu từ file Excel
// Chọn file Excel
OpenFileDialog f = new OpenFileDialog();
f.Filter = "Excel files (*.xlsx)|*.xlsx|All files (*.*)|*.*";
f.FilterIndex = 1;
f.RestoreDirectory = true;
if (f.ShowDialog() == DialogResult.OK)
{
SplashScreenManager.ShowForm(typeof(frmLoading));
FileInfo newFile = new FileInfo(f.FileName);
Workbook workbook = new Workbook(f.FileName);
Worksheet wordsheet = workbook.Worksheets[0];
workbook.Worksheets.ActiveSheetIndex = 0;
for (int i = 18; i <= wordsheet.Cells.Rows.Count; i++)
{
if (wordsheet.Cells["B"i].Value.ToString().ToUpper() == "TỔNG CỘNG:")
{
break;
}
string d = wordsheet.Cells["D"+i].Value.ToString();
}
}
OpenFileDialog f = new OpenFileDialog();
f.Filter = "Excel files (*.xlsx)|*.xlsx|All files (*.*)|*.*";
f.FilterIndex = 1;
f.RestoreDirectory = true;
if (f.ShowDialog() == DialogResult.OK)
{
SplashScreenManager.ShowForm(typeof(frmLoading));
FileInfo newFile = new FileInfo(f.FileName);
Workbook workbook = new Workbook(f.FileName);
Worksheet wordsheet = workbook.Worksheets[0];
workbook.Worksheets.ActiveSheetIndex = 0;
for (int i = 18; i <= wordsheet.Cells.Rows.Count; i++)
{
if (wordsheet.Cells["B"i].Value.ToString().ToUpper() == "TỔNG CỘNG:")
{
break;
}
string d = wordsheet.Cells["D"+i].Value.ToString();
}
}
Checkbox trên GridControl Devexpress
1. Thêm một cột trên girdview.
UnboundType = Boolean
2. Thêm sự kiện CustomUnboundColumnData trên gridView
3. Code như sau:
Khai báo biến:
ArrayList chon = new ArrayList();
Sự kiện FormLoad:
private void frm_Load(object sender, EventArgs e)
{
for (int i = 0; i < BindingSource.Count; i++)
{
chon.Add(false);
}
}
Sự kiện CustomUnboundColumnData
private void gridView1_CustomUnboundColumnData(object sender, DevExpress.XtraGrid.Views.Base.CustomColumnDataEventArgs e)
{
try
{
if (e.Column == colChon)
{
if (e.IsGetData)
{
e.Value = chon[e.ListSourceRowIndex];
}
else
{
chon[e.ListSourceRowIndex] = e.Value;
}
}
}
catch(Exception)
{
}
}
Sử dụng:
for (int i = 0; i < BindingSource.Count; i++)
{
if (Convert.ToBoolean(chon[i]))
{
// Thủ tục;
}
}
UnboundType = Boolean
2. Thêm sự kiện CustomUnboundColumnData trên gridView
3. Code như sau:
Khai báo biến:
ArrayList chon = new ArrayList();
Sự kiện FormLoad:
private void frm_Load(object sender, EventArgs e)
{
for (int i = 0; i < BindingSource.Count; i++)
{
chon.Add(false);
}
}
Sự kiện CustomUnboundColumnData
private void gridView1_CustomUnboundColumnData(object sender, DevExpress.XtraGrid.Views.Base.CustomColumnDataEventArgs e)
{
try
{
if (e.Column == colChon)
{
if (e.IsGetData)
{
e.Value = chon[e.ListSourceRowIndex];
}
else
{
chon[e.ListSourceRowIndex] = e.Value;
}
}
}
catch(Exception)
{
}
}
Sử dụng:
for (int i = 0; i < BindingSource.Count; i++)
{
if (Convert.ToBoolean(chon[i]))
{
// Thủ tục;
}
}
Đăng ký:
Bài đăng (Atom)