/// <summary>Step 5: Xây dựng Query Buider cho việc tìm kiếm /// Xây dựng một QueryBuilder từ những chọn lựa trong phần filter. /// Từ QueryBuilder này ta có thể lấy được dữ liệu thỏa điều kiện. /// Nếu hỗ trợ duyệt thì trong câu truy vấn trả về /// phải có cột là DUYET_BIT /// </summary> public override QueryBuilder PLBuildQueryFilter() { try { //if (filterControl1.FilterString != "") // filterControl1.FilterCriteria = PrepairFilter(filterControl1.FilterCriteria); FilterControlHelper fch = new FirebirdFilterToSQLStatement(filterControl1); SQLDATA sqlData = fch.GetSQLFilter(true, true); DataSet ds = null; if (sqlData.Filters != "") { ds = filterCase.DataSetFilterFromDatabase(sqlData); } else ds = HelpDB.getDatabase().LoadDataSet(UpdateRow()); if (ds != null && ds.Tables.Count > 0) { gridControlMaster.DataSource = ds.Tables[0]; // filterControl1.FilterColumns.Remove(filterControl1.FilterColumns[BIEN_MUC.NGAY_PHAT_DAU_TIEN]); //filterControl1.FilterColumns.Remove(filterControl1.FilterColumns[BIEN_MUC.THOI_HAN_BAN_QUYEN_DISPLAY]); } } catch { } return null; }
private void sbApply_Click(object sender, EventArgs e) { try { //Dừng Firebird Query FilterControlHelper fch = new FirebirdFilterToSQLStatement(filterControl1); SQLDATA sqlData = fch.GetSQLFilter(true); DataSet ds = ObjFilter.DataSetFilterFromDatabase(sqlData); if (hook != null) { hook(ds); } gridControlQL.DataSource = ds.Tables[0]; } catch (Exception ex) { PLException.AddException(ex); } }
/// <summary>Step 5: Xây dựng Query Buider cho việc tìm kiếm /// Xây dựng một QueryBuilder từ những chọn lựa trong phần filter. /// Từ QueryBuilder này ta có thể lấy được dữ liệu thỏa điều kiện. /// Nếu hỗ trợ duyệt thì trong câu truy vấn trả về /// phải có cột là DUYET_BIT /// </summary> public override QueryBuilder PLBuildQueryFilter() { if (isAdvance) { try { //if (filterControl1.FilterString != "") // filterControl1.FilterCriteria = PrepairFilter(filterControl1.FilterCriteria); FilterControlHelper fch = new FirebirdFilterToSQLStatement(filterControl1); SQLDATA sqlData = fch.GetSQLFilter(true, true); DataSet ds = null; if (sqlData.Filters != "") { ds = filterCase.DataSetFilterFromDatabase(sqlData, "category, noi_dung"); } else { QueryBuilder query = new QueryBuilder(UpdateRow()); query.addCondition("1=1"); if (this.ASCSortClause != "") query.setAscOrderBy(ASCSortClause); if (this.DESCSortClause != "") query.setDescOrderBy(DESCSortClause); ds = HelpDB.getDatabase().LoadDataSet(query); } if (ds != null && ds.Tables.Count > 0) { gridControlMaster.DataSource = ds.Tables[0]; // filterControl1.FilterColumns.Remove(filterControl1.FilterColumns[BIEN_MUC.NGAY_PHAT_DAU_TIEN]); //filterControl1.FilterColumns.Remove(filterControl1.FilterColumns[BIEN_MUC.THOI_HAN_BAN_QUYEN_DISPLAY]); } } catch { } return null; } else { QueryBuilder filter = null; string sql = UpdateRow(); filter = new QueryBuilder(sql); filter.addSoPhieu("CT." + CHUONG_TRINH.MA_CT, MaCT.Text); filter.addLike("LOWER(CT." + CHUONG_TRINH.NOI_DUNG + ")", NoiDung.Text.ToLower()); AppCtrl.addID(filter, "CT." + CHUONG_TRINH.TIET_MUC, TietMuc); AppCtrl.addFilterFromTo(filter, "PM." + CHUONG_TRINH_POST_MASTER.NGAY_NHAP, ngayNhap); AppCtrl.addID(filter, "PM." + CHUONG_TRINH_POST_MASTER.PHONG_BAN, PhongBan); AppCtrl.addID(filter, "PM." + CHUONG_TRINH_POST_MASTER.NGUOI_NHAP, NguoiNhap); AppCtrl.addID(filter, "PM." + CHUONG_TRINH_POST_MASTER.POST_MASTER_ID, PostMaster); AppCtrl.addID(filter, "PM." + CHUONG_TRINH_POST_MASTER.LOAI_LUU_TRU, LoaiLuuTru); if (!SoDKCBHD._IsNotCheckAnyOrCheckedAll) { filter.addCondition("exists(select chd.ctpm_hd_id from chuong_trinh_post_Master_hd chd where chd.ctpm_id=pm.ctpm_id and chd.so_dkcb_hd in " + SoDKCBHD._getStrSelectedIDs() + ")"); } string w2 = ""; if (TapSoTu.Value > 0) { w2 += " AND bm.tap_so >= " + TapSoTu.Value; } if (TapSoDen.Value > 0) { w2 += " AND bm.tap_so <=" + TapSoDen.Value; } if (TenTap.Text.Trim() != "") { w2 += " AND lower(bm.ten_tap) like '%" + TenTap.Text.Trim().ToLower() + "%'"; } if (w2 != "") { filter.addCondition(string.Format("exists(select bm.bm_id from bien_muc bm where (is_delete='N' or is_delete is null) and bm.ctpm_id=pm.ctpm_id {0})", w2)); } filter.addCondition("1=1"); if (this.ASCSortClause != "") filter.setAscOrderBy(ASCSortClause); if (this.DESCSortClause != "") filter.setDescOrderBy(DESCSortClause); return filter; } }
/// <summary>Step 5: Xây dựng Query Buider cho việc tìm kiếm /// Xây dựng một QueryBuilder từ những chọn lựa trong phần filter. /// Từ QueryBuilder này ta có thể lấy được dữ liệu thỏa điều kiện. /// Nếu hỗ trợ duyệt thì trong câu truy vấn trả về /// phải có cột là DUYET_BIT /// </summary> public override QueryBuilder PLBuildQueryFilter() { error.ClearErrors(); gridViewMaster.ClearGrouping(); GridColumn col1 = null; GridColumn col2 = null; GridColumn col3 = null; foreach (GridSummaryItem item in timkiem.CotNoiDung.SummaryItem.Collection) { item.SummaryType = DevExpress.Data.SummaryItemType.None; } if (TruongCap1.Text != string.Empty || TruongCap2.Text != string.Empty || TruongCap3.Text != string.Empty) { gridViewMaster.OptionsView.ShowFooter = true; } foreach (CheckedListBoxItem item in ckcCotHienThi.Items) { if (!(item.Value is BandedGridColumn)) continue; ((BandedGridColumn)item.Value).Visible = item.CheckState == System.Windows.Forms.CheckState.Checked; } if (TruongCap1.Text != string.Empty) { col1 = gridViewMaster.Columns[(int)TruongCap1._getSelectedID()]; col1.Group(); col1.Visible = true; } if (TruongCap2.Text != string.Empty) { if (TruongCap2.Text != TruongCap1.Text) { col2 = gridViewMaster.Columns[(int)TruongCap2._getSelectedID()]; col2.Group(); col2.Visible = true; } else TruongCap2.SetError(error, "Trường thống kê này đã được sử dụng!"); } if (TruongCap3.Text != string.Empty) { if (TruongCap3.Text != TruongCap1.Text && TruongCap3.Text != TruongCap2.Text) { col3 = gridViewMaster.Columns[(int)TruongCap3._getSelectedID()]; col3.Group(); col3.Visible = true; } else TruongCap3.SetError(error, "Trường thống kê này đã được sử dụng!"); } try { //if (filterControl1.FilterString != "") // filterControl1.FilterCriteria = PrepairFilter(filterControl1.FilterCriteria); FilterControlHelper fch = new FirebirdFilterToSQLStatement(filterControl1); SQLDATA sqlData = fch.GetSQLFilter(true, true); DataSet ds = null; if (sqlData.Filters != "") { ds = filterCase.DataSetFilterFromDatabase(sqlData); } else ds = HelpDB.getDatabase().LoadDataSet(UpdateRow()); if (ds != null && ds.Tables.Count > 0) { gridControlMaster.DataSource = ds.Tables[0]; filterControl1.FilterColumns.Remove(filterControl1.FilterColumns[BIEN_MUC.NGAY_PHAT_DAU_TIEN]); filterControl1.FilterColumns.Remove(filterControl1.FilterColumns[BIEN_MUC.THOI_HAN_BAN_QUYEN_DISPLAY]); } } catch { } SetSumary(col1); SetSumary(col2); SetSumary(col3); return null; }
/// <summary>Step 5: Xây dựng Query Buider cho việc tìm kiếm /// Xây dựng một QueryBuilder từ những chọn lựa trong phần filter. /// Từ QueryBuilder này ta có thể lấy được dữ liệu thỏa điều kiện. /// Nếu hỗ trợ duyệt thì trong câu truy vấn trả về /// phải có cột là DUYET_BIT /// </summary> public override QueryBuilder PLBuildQueryFilter() { //QueryBuilder filter = new QueryBuilder(UpdateRow()); //filter.addCondition("1=1"); //filter.setDescOrderBy(BIEN_MUC.NGAY_CAP_NHAT); //CotTietMuc.GroupIndex = 0; //CotNoiDung.GroupIndex = 1;l // return filter; try { //if (filterControl1.FilterString != "") // filterControl1.FilterCriteria = PrepairFilter(filterControl1.FilterCriteria); FilterControlHelper fch = new FirebirdFilterToSQLStatement(filterControl1); SQLDATA sqlData = fch.GetSQLFilter(true,true); DataSet ds = null; if (sqlData.Filters != "") { ds = filterCase.DataSetFilterFromDatabase(sqlData); } else ds = HelpDB.getDatabase().LoadDataSet(UpdateRow()); if (ds != null && ds.Tables.Count > 0) { gridControlMaster.DataSource = ds.Tables[0]; filterControl1.FilterColumns.Remove(filterControl1.FilterColumns[BIEN_MUC.NGAY_PHAT_DAU_TIEN]); filterControl1.FilterColumns.Remove(filterControl1.FilterColumns[BIEN_MUC.THOI_HAN_BAN_QUYEN_DISPLAY]); } } catch { } return null; }
/// <summary>Step 5: Xây dựng Query Buider cho việc tìm kiếm /// Xây dựng một QueryBuilder từ những chọn lựa trong phần filter. /// Từ QueryBuilder này ta có thể lấy được dữ liệu thỏa điều kiện. /// Nếu hỗ trợ duyệt thì trong câu truy vấn trả về /// phải có cột là DUYET_BIT /// </summary> public override QueryBuilder PLBuildQueryFilter() { if (isAdvance) { try { //if (filterControl1.FilterString != "") // filterControl1.FilterCriteria = PrepairFilter(filterControl1.FilterCriteria); FilterControlHelper fch = new FirebirdFilterToSQLStatement(filterControl1); SQLDATA sqlData = fch.GetSQLFilter(true, true); DataSet ds = null; if (sqlData.Filters != "") { ds = filterCase.DataSetFilterFromDatabase(sqlData, "category, noi_dung"); } else { QueryBuilder query = new QueryBuilder(UpdateRow()); query.addCondition("1=1"); if (this.ASCSortClause != "") query.setAscOrderBy(ASCSortClause); if (this.DESCSortClause != "") query.setDescOrderBy(DESCSortClause); ds = HelpDB.getDatabase().LoadDataSet(query); } if (ds != null && ds.Tables.Count > 0) { gridControlMaster.DataSource = ds.Tables[0]; // filterControl1.FilterColumns.Remove(filterControl1.FilterColumns[BIEN_MUC.NGAY_PHAT_DAU_TIEN]); //filterControl1.FilterColumns.Remove(filterControl1.FilterColumns[BIEN_MUC.THOI_HAN_BAN_QUYEN_DISPLAY]); } } catch { } return null; } else { QueryBuilder filter = null; string sql = UpdateRow(); filter = new QueryBuilder(sql); filter.addLike("LOWER(" + CHUONG_TRINH.NOI_DUNG + ")", NoiDung.Text.ToLower()); filter.addLike("LOWER(" + CHUONG_TRINH.TEN_GOC + ")", TenGoc.Text.ToLower()); filter.addLike("LOWER(" + CHUONG_TRINH.CATEGORY + ")", Category.Text.ToLower()); AppCtrl.addID(filter, CHUONG_TRINH.TIET_MUC, TietMuc); AppCtrl.addID(filter, CHUONG_TRINH.DON_VI_CUNG_CAP, DonViCungCap); AppCtrl.addFilterFromTo(filter, BIEN_MUC.NAM_SAN_XUAT, NamSXTu.Value, NamSXDen.Value); long[] IDs = QuocGia._getSelectedIDs(); if (IDs.Length > 0 && IDs.Length < QuocGia.Properties.GetItems().Count) { string cond = "("; foreach (long id in IDs) { cond += BIEN_MUC.NUOC_SAN_XUAT + " like '%," + id + ",%' or "; } cond = cond.TrimEnd(' ', 'r', 'o'); cond = cond += ")"; filter.addCondition(cond); } AppCtrl.addID(filter, CHUONG_TRINH.BAN_QUYEN_THUOC, BanQuyenThuoc); filter.addDateFromTo(CHUONG_TRINH.BAN_QUYEN_DID_END, BQDTTNEndTu.DateTime, BQDTTNEndDen.DateTime); filter.addDateFromTo(CHUONG_TRINH.BAN_QUYEN_DTNN_END, BQDTNNEndTu.DateTime, BQDTNNEndDen.DateTime); AppCtrl.addFilterFromTo(filter, CHUONG_TRINH.TONG_SO_RUN, TongSoRunTu.Value, TongSoRunDen.Value); AppCtrl.addFilterFromTo(filter, CHUONG_TRINH.SO_LAN_DA_PHAT, SoRunDaDungTu.Value, SoRunDaDungDen.Value); AppCtrl.addFilterFromTo(filter, "(" + CHUONG_TRINH.TONG_SO_RUN + "-" + CHUONG_TRINH.SO_LAN_DA_PHAT + ")", SoRunConLaiTu.Value, SoRunConLaiDen.Value); AppCtrl.addFilterFromTo(filter, CHUONG_TRINH.NGAY_NHAP, ngayNhap); AppCtrl.addID(filter, CHUONG_TRINH.PHONG_BAN, PhongBan); filter.addIn(Alias + CHUONG_TRINH.IS_TRONG_KHO, AppCtrl.GetCheckedValues(TrongKho, true)); string ftTimeslot = AppCtrl.getFilterFromTo("CTNPDT.TIMESLOT", TimeslotTu, TimeslotDen); if (ftTimeslot != "") { filter.addCondition(string.Format(@"exists(select ctnpdt.ct_id from chuong_trinh_npdt ctnpdt where ctnpdt.timeslot is not null and ctnpdt.ct_id= ct.ct_id {0})", ftTimeslot)); } string w1 = ""; if (!LoaiLuuTru._IsNotCheckAnyOrCheckedAll) { w1 += " AND " + CHUONG_TRINH_POST_MASTER.LOAI_LUU_TRU + " in " + LoaiLuuTru._getStrSelectedIDs(); } if (!SoDKCBHD._IsNotCheckAnyOrCheckedAll) { w1 += " AND exists(select chd.ctpm_hd_id from chuong_trinh_post_Master_hd chd where chd.ctpm_id=cp.ctpm_id and chd.so_dkcb_hd in " + SoDKCBHD._getStrSelectedIDs() + ")"; } if (w1 != "") filter.addCondition(string.Format(@"exists(select cp.ctpm_id from chuong_trinh_post_Master cp where (is_delete='N' or is_delete is null) and cp.ct_id = ct.ct_id {0})", w1)); string w2 = ""; if (TapSoTu.Value > 0) { w2 += " AND bm.tap_so >= " + TapSoTu.Value; } if (TapSoDen.Value > 0) { w2 += " AND bm.tap_so <=" + TapSoDen.Value; } if (TenTap.Text.Trim() != "") { w2 += " AND lower(bm.ten_tap) like '%" + TenTap.Text.Trim().ToLower() + "%'"; } if (w2 != "") { filter.addCondition(string.Format("exists(select bm.bm_id from bien_muc bm where (is_delete='N' or is_delete is null) and bm.ct_id=ct.ct_id {0})", w2)); } filter.addCondition("1=1"); if (this.ASCSortClause != "") filter.setAscOrderBy(ASCSortClause); if (this.DESCSortClause != "") filter.setDescOrderBy(DESCSortClause); return filter; } }