Re: Befehle für Daten holen und setzen

23. Mai 2011 13:37

Hast du der Variable Test auch eine Tabelle zugewiesen?

Diese muss eine RecordVariable auf eine Tabelle im Report sein.

Re: Befehle für Daten holen und setzen

23. Mai 2011 13:48

Ja, das hatte ích erst so gemacht, dann kam folgenden Meldung:
---------------------------
Microsoft Dynamics NAV
---------------------------
Es sollte eine Mindestanzahl von Parametern angegeben werden, wenn Sie diese Funktion aufrufen. Zum Beispiel:

MeineFunktion( .. , .. , .. )
ROUND(MeineVariable)
ROUND(MeineVariable,0.05)

---------------------------
OK
---------------------------

Re: Befehle für Daten holen und setzen

23. Mai 2011 13:56

Nur um sicher zu gehen,

kannst du noch deine globalen/lokalen Variablen als Screenshot hochladen?

Re: Befehle für Daten holen und setzen

23. Mai 2011 14:30

Code:
Test.SETFILTER("Due Date"); // Hier fehlt noch der zweite Parameter, du willst ja einen Filter setzen und nicht lösen
Test2.SETTABLEVIEW(Test);
Test2.RUNMODAL;
CLEAR(Test); // Du sollst nicht den Record, sondern den Report löschen.


Hat deine Variable "Test" die gleiche Tabelle im Hintergrund wie das erste DataItem des Reports?

Re: Befehle für Daten holen und setzen

23. Mai 2011 14:39

Meine Variabel Test hat nicht die gleiche Tabelle im Hintergrund wie die des ersten DatItem im Report.

Hier nochmal der Code:
Code:
Test.SETFILTER("Due Date",TODAY,CALCDATE('<+10D>',TODAY));
Test2.SETTABLEVIEW(Test2);
Test2.RUNMODAL;
CLEAR(Test2);


Ist das denn überhaupt so richtig geschrieben?

Re: Befehle für Daten holen und setzen

23. Mai 2011 14:53

Code:
CLEAR(Test2); // Ich habe den CLEAR an den Anfang gesetzt (siehe Hilfe zu RUNMODAL)
Test.SETRANGE("Due Date",TODAY,CALCDATE('<+10D>',TODAY)); // kein SETFILTER, sondern ein SETRANGE
Test2.SETTABLEVIEW(Test); // Test und nicht Test2
Test2.RUNMODAL;


Das ist das Problem. Meines Wissens nach muss das DataItem die gleiche Tabelle haben, wie im SETTABLEVIEW verwendet. Dementsprechend solltest du im Report einen Dummy-DataItem einsetzen (ganz oben) und alle Filter zu gegebener Zeit auf den untergeordneten DataItem setzen.

Re: Befehle für Daten holen und setzen

23. Mai 2011 15:05

Vielen Dank für eure Antworten, aber das wird mir etwas zu umständlich..... Nun ruft sich der Bericht doppelt auf.... Und da ich keine Vorkenntnisse über die Nav Programmierung habe ist es schwer das für mich umzusetzen. Für euch hört sich das wahrscheinlich sehr easy an ein Dummy DataItem einzusetzen mit den Filtern, für mich leider nicht.

Gibt es nicht einen Weg, der nicht etliche mal überarbeitet werden muss, dass mir diesen Filter realisiert (Fälligkeitsdatum nur von heute bis in 10 Tagen)?

Re: Befehle für Daten holen und setzen

23. Mai 2011 15:52

Kannst du uns nicht noch einmal zeigen (in Form von Screenshots und ein paar wenigen Worten) was du eigentlich willst?

Beispiel: Klick auf Berichte im Menü "SoUndSo" ruft die RequestForm des Berichts "XY" auf und zeigt per Standard den Filter "Heute .. 10 Tage". Dieser Filter kann editiert werden und wird bei Klick auf "OK" umgesetzt.

Re: Befehle für Daten holen und setzen

23. Mai 2011 16:17

Sebastian Pfliegel hat geschrieben:Kannst du uns nicht noch einmal zeigen (in Form von Screenshots und ein paar wenigen Worten) was du eigentlich willst?

Beispiel: Klick auf Berichte im Menü "SoUndSo" ruft die RequestForm des Berichts "XY" auf und zeigt per Standard den Filter "Heute .. 10 Tage". Dieser Filter kann editiert werden und wird bei Klick auf "OK" umgesetzt.


Kann ich gerne machen.
Im Report 121 habe ich einige Felder hinzugefügt. Jetzt möchte ich nach dem Aufruf des Druckmenü einen Filter auf das Feld Fälligkeitsdatum (aus Cust. Ledg. Entry) automatisch vorbelegt haben, der dann aber noch überschrieben werden kann. Dies ist im Bild im Anhang zu erkennen. dementsprechende sollen nur die Daten innerhalb des Filters angezeigt werden.

Wenn das zu umständlich ist, würde es auch ausreichen, diesen Filter fest im Report zu haben.
Du hast keine ausreichende Berechtigung, um die Dateianhänge dieses Beitrags anzusehen.

Re: Befehle für Daten holen und setzen

24. Mai 2011 09:40

Gut, dann hab ich es richtig verstanden.

Im Tab Debitorenposten wirst du das nicht realisieren können. Daher ist es geschickter den Tab Optionen dafür herzunehmen. Du könntest eine Textvariable im OnInitReport-Trigger vorfüllen (welche natürlich auf der RequestForm angezeigt wird) und auf das Fälligkeitsdatum im OnPreReport filtern. Mehr ist es nicht.

Re: Befehle für Daten holen und setzen

24. Mai 2011 15:15

Vielen Dank für die Antwort. Ich hatte das mal, vor langer Zeit, so ählich gemacht um nach Auswahl über die Optionen im Druckmenü Sections im Report anzusteuern (das waren Boolsche Variablen).

Kannst du das vielleicht etwas ausführlich beschreiben, was ich da genau amchen muss? Verstehe nicht wie das funktionieren soll.

Re: Befehle für Daten holen und setzen

24. Mai 2011 16:09

RequestForm kriegt neues Feld und als Source deine neue Variable (Text!). Diese wird im OnInitReport gefüllt (darin sollte dann stehen '24.05.11..03.05.11' als Beispiel). Im OnPreReport nimmst du dann den Wert der Variable und filterst damit über einen SETFILTER auf dein Feld.

Alternativ könntest du statt der Text-Variable zwei Datums-Variablen auf die Form legen und dann mit SETRANGE filtern.

Re: Befehle für Daten holen und setzen

25. Mai 2011 08:36

Jetzt gebe ich das mal so wieder, wie ich es verstanden habe:

Textvariable anlegen.

Im OnInitReport Trigger => Textvariable := '';

Im OnPreReport Trigger => Textvariable.SETRANGE("Due Date");

Das funktioniert so nicht, was ist denn falsch?

EDIT: Kann ich denn das Textfeld überhaupt vorbelegen mit der Info: heute + 10 tage????

Re: Befehle für Daten holen und setzen

25. Mai 2011 09:23

misterelektro1981 hat geschrieben:Jetzt gebe ich das mal so wieder, wie ich es verstanden habe:

Textvariable anlegen.

Im OnInitReport Trigger => Textvariable := '';

Im OnPreReport Trigger => Textvariable.SETRANGE("Due Date");

Das funktioniert so nicht, was ist denn falsch?

EDIT: Kann ich denn das Textfeld überhaupt vorbelegen mit der Info: heute + 10 tage????


Ich empfehle dir dringend die Schulung "Developer I" :-)

Re: Befehle für Daten holen und setzen

25. Mai 2011 10:01

misterelektro1981 hat geschrieben:Jetzt gebe ich das mal so wieder, wie ich es verstanden habe:

Textvariable anlegen.

Im OnInitReport Trigger => Textvariable := '';

Im OnPreReport Trigger => Textvariable.SETRANGE("Due Date");

Das funktioniert so nicht, was ist denn falsch?

EDIT: Kann ich denn das Textfeld überhaupt vorbelegen mit der Info: heute + 10 tage????


Textvariable anlegen
Feld auf RequestForm mit Source der Textvariable
OnInitReport => Textvariable := FORMAT(TODAY) + '..' + FORMAT(CALCDATE('<10D>',TODAY));
OnPreReport => MeinRecord.SETFILTER("Due Date",Textvariable);

Re: Befehle für Daten holen und setzen

25. Mai 2011 10:23

Danke, ich glaube wir nähern uns :-)

Der Report läuft jetzt zwar, jedoch hat der vorbelegte Filter keine Auswirkung.

Hier mal ein Bild mit dem Code, wieso greift der Filter nicht?
Du hast keine ausreichende Berechtigung, um die Dateianhänge dieses Beitrags anzusehen.

Re: Befehle für Daten holen und setzen

25. Mai 2011 10:42

Du musst keine Recordvariable anlegen, auf der du den Filter anwendest. Du solltest den Filter auf das DataItem anwenden. In deinem Fall dann wohl "CustLedgEntry3".

Re: Befehle für Daten holen und setzen

25. Mai 2011 11:15

meto89 hat geschrieben:Du musst keine Recordvariable anlegen, auf der du den Filter anwendest. Du solltest den Filter auf das DataItem anwenden. In deinem Fall dann wohl "CustLedgEntry3".

Danke, genau so war es gemeint :)

Der Filter greift schon, nur auf eine Record-Variable, die nirgendwo genutzt wird. Du musst eben auf den Record filtern, welcher auch genutzt wird. Und das ist eben mal in deinem Fall das DataItem (CustLedgEntry3).

Re: Befehle für Daten holen und setzen

25. Mai 2011 12:45

Das habe ich jetzt gemacht, siehe Bild. Der Filter greift jedoch immer noch nicht...
Du hast keine ausreichende Berechtigung, um die Dateianhänge dieses Beitrags anzusehen.

Re: Befehle für Daten holen und setzen

25. Mai 2011 13:08

Wird irgendwo im Report der Filter gelöst (am DataItem in den Properties; im Code; in den Sections ...)? Debugge doch einfach mal und suche den Grund. Dabei solltest du den Record und seine Filter sowie die Filtervariable beobachten.

Re: Befehle für Daten holen und setzen

25. Mai 2011 13:11

Muss die Zeile zum Filtern nicht ins OnPreDataItem?¿

Re: Befehle für Daten holen und setzen

25. Mai 2011 13:44

Danke McClane, so klappt es. A´ber auch danke an den Rest fürs Durchhalten :-)

Re: [gelöst] Befehle für Daten holen und setzen

25. Mai 2011 14:12

... hat auch nur 71 Beiträge gebraucht! :D

Re: [gelöst] Befehle für Daten holen und setzen

25. Mai 2011 14:22

Man kann ja nur mithelfen ein Problem zu lösen, wenn man das genaue Problem kennt.

Am Anfang wurden ja auch zunächst ganz andere Probleme/Ansätze betrachtet. :wink:

Ich würde empfehlen bei deinem nächsten Thema gleich strukturiert das Problem mit Screenshot usw. zu beschreiben, dann dauert der Lösungsweg vielleicht nicht ganz so lange. Vorallem solltest du beschreiben was du eigentlich erreichen willst. Das war ja auch bei diesem Problem hier der Weg zum Erfolg.

Mit freundlichen Grüßen,
winfy

Re: [gelöst] Befehle für Daten holen und setzen

26. Mai 2011 13:13

Jetzt habe ich doch noch eine Frage:

Das Feld beim starten des Reports wird auf dem Druckmenü vorgefüllt. Wenn ich nun diesen Eintrag lösche und den Report erneut starte, dann wird das Feld nicht automatisch gefüllt.
Wie bekomme ich das in den Griff?