20. August 2009 09:44
20. August 2009 10:36
Rec2.COPY(Rec)
FilterText := Rec.GETFILTERS;
FilterText := Rec.GETFILTER(Feld1);
20. August 2009 10:42
ItemFilter := Item.GETFILTER("No.");
DeineFunktion(ItemFilter);
Währungscode := Tools.HoleWährungsCode(VerkaufsZeileRec);
// Artikelkarte wurde als Variable vom Typ Form deklariert (Form 30)
LItemRec.SETRANGE(LItemRec."No.",DeinFilter);
Artikelkarte.SETTABLEVIEW(LItemRec);
Artikelkarte.RUNMODAL;
20. August 2009 10:45
CurrForm.SETSELECTIONFILTER(ZielRec);
20. August 2009 13:34
20. August 2009 13:44
20. August 2009 13:46
rom hat geschrieben:Danke für die vielen Antworten. Ich glaube aber, nachdem ich diese ausprobiert habe, dass diese bei mir nicht funktionieren. Es werden immer noch alle Datensätze verändert, nicht nur die, die geflitert sind.
20. August 2009 13:48
Natalie hat geschrieben:Ich glaube eher, dass an deinem Quelltext etwas faul ist - zeig doch mal her
IF CONFIRM(TEXT001,FALSE,gcoResourceNo) THEN BEGIN
RESET;
SETFILTER("Resource No.",gcoResourceNo);
SETRANGE("Document closed",FALSE);
// Setrange("Posting Date"
IF FINDFIRST THEN BEGIN
REPEAT
greWorkTime.RESET;
//greWorkTime.SETFILTER("Resource No.",gcoResourceNo);
//greWorkTime.SETRANGE("Document closed",FALSE);
CurrForm.SETSELECTIONFILTER(greWorkTime);
greWorkTime.MARKEDONLY;
IF greWorkTime.FINDSET THEN BEGIN
greWorkTime."Document closed" := TRUE;
greWorkTime."Approval Status Responsible" := greWorkTime."Approval Status Responsible"::Released;
greWorkTime."Approval Date Responsible" := TODAY;
greWorkTime.MODIFY;
END;
UNTIL NEXT = 0;
END;
END;
20. August 2009 14:44
RESET;
SETFILTER("Resource No.",gcoResourceNo);
SETRANGE("Document closed",FALSE);
20. August 2009 14:45
rom hat geschrieben:
- Code:
IF CONFIRM(TEXT001,FALSE,gcoResourceNo) THEN BEGIN
RESET; // Falls es hier um das rec der Form handelt: von hier ...
SETFILTER("Resource No.",gcoResourceNo); // SetRange wäre schöner ;)
SETRANGE("Document closed",FALSE);
// Setrange("Posting Date"
IF FINDFIRST THEN BEGIN // .. bis hier schränkst du den Filter auf die Zeilen noch weiter ein (FINDSET wäre übrigens besser), den du ..
REPEAT
greWorkTime.RESET;
//greWorkTime.SETFILTER("Resource No.",gcoResourceNo);
//greWorkTime.SETRANGE("Document closed",FALSE);
CurrForm.SETSELECTIONFILTER(greWorkTime); // hier setzt. Nun dürften in greWorkTime nur noch die DS übrig sein, die in der Form UND durch SetRange/-Filter gefiltert wurden
greWorkTime.MARKEDONLY; // diese Zeile wäre überflüssig (das macht setselectionfilter sowieso)
IF greWorkTime.FINDSET THEN BEGIN // Sind greWorkTime und rec Instanzen derselben Tabelle? (Hier wäre allerdings FINDFIRST besser)
greWorkTime."Document closed" := TRUE;
greWorkTime."Approval Status Responsible" := greWorkTime."Approval Status Responsible"::Released;
greWorkTime."Approval Date Responsible" := TODAY;
greWorkTime.MODIFY;
END;
UNTIL NEXT = 0;
END;
END;
20. August 2009 14:49
Natalie hat geschrieben:Aber dein Konstrukt macht ohnehin keinen Sinn, wenn du Rec (bzw. dessen von dir gesetzten Filter) zuerst mit
Code: Alles auswählen
RESET;
SETFILTER("Resource No.",gcoResourceNo);
SETRANGE("Document closed",FALSE);
"kaputt machst" um ihn DANACH mit CurrForm.SETSELECTIONFILTER(greWorkTime); wieder auszulesen.
Natalie hat geschrieben:Mir ist so nicht klar, was du eigentlich erreichen willst?
20. August 2009 14:54
McClane hat geschrieben:Sicher? Ich meine, dass sich das nun addiert (Filter+SelectionFilter)
20. August 2009 14:57
20. August 2009 15:09
rom hat geschrieben:Das Form dient dazu, Zeiterfassungsdatensätze einer Ressource freiszugeben. Das mache ich, in dem ich bei den Datensätze der Wert bei Document closed auf true setze. Ich möchte nun die Filter weiterverwenden, die ich im Form setzen kann. (f7 oder Button) Wenn dort Filter gesetzt sind, sollen diese bei der Freigabefunktion mit übernommen werden.
20. August 2009 15:33
20. August 2009 15:45
rom hat geschrieben:übernimmt den Copyfilters diese Filter mit?
20. August 2009 16:34
20. August 2009 16:38