AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein GUI-Design mit VCL / FireMonkey / Common Controls Delphi Gesetzte Filter im cxdbgrid in andere Views übertragen
Thema durchsuchen
Ansicht
Themen-Optionen

Gesetzte Filter im cxdbgrid in andere Views übertragen

Offene Frage von "Darkchild"
Ein Thema von Darkchild · begonnen am 6. Dez 2006 · letzter Beitrag vom 7. Dez 2006
Antwort Antwort
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, 13: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
Benutzerbild von Union
Union

Registriert seit: 18. Mär 2004
Ort: Luxembourg
3.487 Beiträge
 
Delphi 7 Enterprise
 
#2

Re: Gesetzte Filter im cxdbgrid in andere Views übertragen

  Alt 7. Dez 2006, 09:11
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.
Ibi fas ubi proxima merces
sudo /Developer/Library/uninstall-devtools --mode=all
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 21:05 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz