![]() |
Gesetzte Filter im cxdbgrid in andere Views übertragen
Liste der Anhänge anzeigen (Anzahl: 1)
Hallo @all,
ich habe ein cxdbGrid welches z.B. in der Columne Datum zusätzliche Filter von mir erhalten hat, jetzt habe ich aber in diesem Grid gesamt 3 Level mit den zugehörigen Views (pro Level 1 View). Also cxdbGridLevel1 + cxdbgridview1 oder auch cxdbgridlevel2 + cxdbgridview2 usw. Jetzt startet das Grid mit Level 1 und View 1 dort können dann z.B. in der Columne Datum die Filter wie "Aktuelle Woche" und so gesetzt werden, unter dem Grid gibt es 2 Buttons die dann die Ansicht verändern in dem dann z.B. Level 2 + View 2 aufgrufen wird, dort ist der vorher gesetzte Filter nicht mehr aktiv, jetzt hätte ich aber gerne das wenn ich in der Start View einen Filter setzte der auch in den anderen Views aktiv ist, ich weis aber leider nicht wie ich diesen übertragen kann. Für die bessere Verständlichkeit lege ich mal den Quellcode bei der Zeigt wie die Filter geniert und eingetragen werden, so wie das aktiv schalten in der Start View und anbei ein ScreenShot von der Form in der sich alles abspielt zwecks dartellung der Buttons für die Umschaltung der Ansicht.
Delphi-Quellcode:
Hoffe das verdeutlicht meine Frage und das was ich möchte ?
var
const filterHeuteID = 0; filterGesternID = 1; filterAktuellerMonatID = 2; filterLetzterMonatID = 3; filterAktuelleWocheID = 4; implementation ........................ uses DataModulUnit, DateUtils, ShellApi; ........................................... procedure Tfrmzeiterfassunguebersicht.cxgridzeiterfassungansichtDBTableView1DATUMGetFilterValues( Sender: TcxCustomGridTableItem; AValueList: TcxDataFilterValueList); begin AValueList.Add(fviUser, filterAktuellerMonatID, '(Aktueller Monat)', True); AValueList.Add(fviUser, filterHeuteID, '(Heute)', True); AValueList.Add(fviUser, filterAktuelleWocheID, '(Aktuelle Woche)', True); AValueList.Add(fviUser, filterGesternID, '(Gestern)', True); AValueList.Add(fviUser, filterLetzterMonatID, '(Letzter Monat)', True); end; procedure Tfrmzeiterfassunguebersicht.cxgridzeiterfassungansichtDBTableView1DATUMUserFiltering( Sender: TcxCustomGridTableItem; const AValue: Variant; const ADisplayText: string); var ADate: TDateTime; ADateStr: string; Jahr,Monat,Tag : word; OperatorKind : TcxFilterOperatorKind ; begin case AValue of filterHeuteID: begin ADate := Today; ADateStr := 'Heute'; OperatorKind := foEqual; end; filterGesternID: begin ADate := Yesterday; ADateStr := 'Gestern'; OperatorKind := foEqual; end; filterAktuellerMonatID: begin DecodeDate(Today,Jahr,Monat,Tag); ADate := strtodate('01.'+inttostr(Monat)+'.'+inttostr(Jahr)); ADateStr := 'Aktueller Monat'; OperatorKind := foGreaterEqual; end; filterLetzterMonatID: begin DecodeDate(Today,Jahr,Monat,Tag); if monat = 1 then ADate := strtodate('01.'+inttostr(Monat - 1) + '.' + inttostr(Jahr - 1)) else ADate := strtodate('01.'+inttostr(Monat - 1) + '.' + inttostr(Jahr)); ADateStr := 'Letzter Monat'; OperatorKind := foGreaterEqual; end; filterAktuelleWocheID: begin ADate := StartOfTheWeek(today); ADateStr := 'Aktuelle Woche'; OperatorKind := foGreaterEqual; end; end; //Ich denke hier in der ecke muss dann auch die Zuweisung für die anderen Views hin. Nur wie ? Sender.DataBinding.AddToFilter(nil, OperatorKind, ADate, ADateStr, True); end; Bestimmte Elemente musste ich aus dem Screenshot leider entfernen betreff Datenschutz und die Buttons die ich meine sind die beiden unten links "Detailansicht" und "Buchhaltung Ansicht" betreff der verschiedenen Ansichten die ich meine. Gruss Darkchild |
Re: Gesetzte Filter im cxdbgrid in andere Views übertragen
Statt alles auf den Sender anfzuwenden, bräuchstest Du eine Schleife die dies für alle Levels und Views durchführt. Und wenn Du auf cxGrid6 upgradest hast Du das ganze spezielle Datehandling (letzte Woche, Letzter Monat etc.) schon eingebaut - musst Du nur noch über cxSetResourceString ins Deutsche übertragen.
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 23:13 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz