17. Juli 2013 10:23
Der OnFormat-Trigger steuert nur, wie und was in einem Textfeld angezeigt wird, d. h. dort kann man den dargestellten Feldwert sowie die Schriftfarbe und fett/normal übersteuern.
Um ganze Datensätze zu überspringen müsste man die Trigger OnFindRecord
und OnNextRecord entsprechend ausprogrammieren, was - wie Jens schon schrieb - nicht ganz ohne ist.
In deinem konkreten Fall würde ich eher dazu neigen, die entsprechenden Felder aus der Artikeltabelle mit in deine Tabelle (z. B. Sales Line) zu übertragen, sobald die Artikelnr. eingetragen wird.
Dann kannst du mit normalen Filtern deine Zeilen bedarfsgerecht herausfiltern.
Irgendwie mussten die Artikel ja in die Tabelle eingetragen worden sein, somit muss es logischerweise auch eine Bedingung geben, wann solche Zeilen trotzdem zu sehen sind.
Beispiel-Pseudocode:
Auf der Tabelle:
- Code:
Item No. - OnValidate()
Item.GET("Item No.");
<DeinFeld> := Item.<DeinFeld>;
Auf der Form:
- Code:
OnOpenForm()
UserSetup.GET(USERID);
IF UserSetup."Limited Item View" THEN BEGIN
FILTERGROUP(2); SETFILTER(<DeinFeld>,<DeinFilter>);
FILTERGROUP(0);
END;
Um die bereits bestehenden Daten ebenfalls so filtern zu können, schreibst du dir einen kurzen Report (ProcessingOnly=Yes), welcher die Werte gemäß dem OnValidate() aus der Artikeltabelle in deine Tabelle nachträgt.