Einzelnen Beitrag anzeigen

Darkchild

Registriert seit: 13. Okt 2006
Ort: NRW
169 Beiträge
 
Delphi 2006 Enterprise
 
#1

Gesetzte Filter im cxdbgrid in andere Views übertragen

  Alt 6. Dez 2006, 14:28
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:
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;
Hoffe das verdeutlicht meine Frage und das was ich möchte ?
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
Miniaturansicht angehängter Grafiken
zeiterfassungscreenshot_122.jpg  
Ich bin der Geist der stets verneint und das mit recht, denn alles was entsteht ist wert das es zugrunde geht, drum besser wär das nichts entstünde, so ist denn alles was ihr Sünde, Zerstörung, kurz das Böse nennt, mein eigendliches Element.
  Mit Zitat antworten Zitat