Filter ohne Bearbeitung

15. Mai 2012 08:59

Hallo nochmal!
Nachdem mir bei meiner letzten Frage so schnell geholfen wurde, möchte ich gleich noch eine Frage loswerden. Ich habe wohl leider scheinbar noch nicht ganz verstanden, wie ich Filter zu benutzen habe.
Ich habe so eine Tabular-Type Form erstellt, die sich auf eine Tabelle bezieht und deren Inhalte anzeigt. Nun habe ich noch eine Textbox eingebaut, mit der ich ueber einer bestimmten Spalte filtern kann.
Mein Code sieht so aus:

Code:
record.RESET;
record.SETRANGE(Spalte, Filter);
record.SETCURRENTKEY(AndereSpalte);
record.FINDFIRST;


Das Filtern funktioniert auch, jedoch scheine ich so irgendeine Art Editiermodus angestoßen zu haben - jedenfalls erzaehlt mir Navision, dass die SourceTable dort nicht editiert werden duerfe, sobald ich zB in die Tablebox oder auf einen Button klicke (also wenn die selektierte Zeile den Fokus verliert, denke ich). Es kommt aber nur diese Fehlermeldung - sonst scheint es so zu funktionieren. Wenn ich FINDFIRST weglasse, filtert er zwar auch und bringt diese Meldung _nicht_, jedoch wird dann die selektierte Zeile nicht ausgefiltert.

Was mache ich falsch?

Re: Filter ohne Bearbeitung

15. Mai 2012 10:00

Ecc hat geschrieben:Hallo nochmal!
Nachdem mir bei meiner letzten Frage so schnell geholfen wurde, möchte ich gleich noch eine Frage loswerden. Ich habe wohl leider scheinbar noch nicht ganz verstanden, wie ich Filter zu benutzen habe.
Ich habe so eine Tabular-Type Form erstellt, die sich auf eine Tabelle bezieht und deren Inhalte anzeigt. Nun habe ich noch eine Textbox eingebaut, mit der ich ueber einer bestimmten Spalte filtern kann.
Mein Code sieht so aus:

Code:
record.RESET;
record.SETRANGE(Spalte, Filter);
record.SETCURRENTKEY(AndereSpalte);
record.FINDFIRST;


Das Filtern funktioniert auch, jedoch scheine ich so irgendeine Art Editiermodus angestoßen zu haben - jedenfalls erzaehlt mir Navision, dass die SourceTable dort nicht editiert werden duerfe, sobald ich zB in die Tablebox oder auf einen Button klicke (also wenn die selektierte Zeile den Fokus verliert, denke ich). Es kommt aber nur diese Fehlermeldung - sonst scheint es so zu funktionieren. Wenn ich FINDFIRST weglasse, filtert er zwar auch und bringt diese Meldung _nicht_, jedoch wird dann die selektierte Zeile nicht ausgefiltert.

Was mache ich falsch?


Allgemein funktioniert die einfachste Datenverarbeitung in NAV so:

Rec.RESET;
Rec.SETCURRENTKEY(Schlüsselfeld1,2,3...);
Rec.SETRANGE(Feld,Argument);
IF Rec.FINDSET THEN
REPEAT //Schleife mit Anweisungen
Variable_X := Rec."Feld 1";
Variable_Y := Rec."Feld 2";
UNTIL NEXT (+1) = 0;

Sonst empfehle ich: www.navision24.de

Re: Filter ohne Bearbeitung

15. Mai 2012 15:57

Das mache ich ja im Prinzip genauso. Nur dass ich die Ergebniszeilen nicht nochmal durchiteriere. Aber mir ist nun noch etwas seltsames aufgefallen:

Mein Problem besteht nur, wenn ich den Filter beim OnValidate der Textbox setze. Wenn ich den selben C/AL-Code beim OnPush eines Buttons ausführe, funktioniert es, ohne dass er die Meldung bringt. Bei den Textboxes hab ich jeweils die SourceExpr auf eine globale Variable und die TableRelation auf die Spalte der Tabelle mit den möglichen Werten gesetzt.
Sieht Navision evtl meine Eingabe in das Textfeld als irgendetwas, was es irgendwo speichern muesste?

Anbei auch mal ein Screenshot der Meldung. Working Hour ist die Tabelle, die dort angezeigt wird.
nav.png
Du hast keine ausreichende Berechtigung, um die Dateianhänge dieses Beitrags anzusehen.