Datumsfilter

13. Oktober 2011 08:18

Mal wieder eine kleine Frage.
Wenn ich eine Section nun anzeigen lassen möchte, falls ein Datum gesetzt ist, d.h. das Datumsfeld leer ist, mache ich das doch über:
Code:
CurrReport.SHOWOUTPUT("Ending Date" <> 0D);


Wie mache ich das auf einem DataItem?

Re: Datumsfilter

13. Oktober 2011 08:27

In wie fern meinst du ein DataItem nicht anzeigen?
Alle Sections aus dem DataItem? Order das ganze DataItem überspringen?

Pauschal kann ich schonmal folgende Befehle empfehlen:
CurrReport.SKIP
CurrReport.BREAK

Re: Datumsfilter

13. Oktober 2011 08:39

Danke für die Befehle.

Ich möchte nur einige Header überspringen aber nicht das ganze DataItem.

Daher dachte ich, es sollte mit
Code:
CurrReport.SKIP("Ending Date" <> 0D);


funktionieren.

Es erscheint jedoch eine Fehlermeldung:
---------------------------
Microsoft Dynamics NAV
---------------------------
Sie dürfen maximal 0 Parameter verwenden, um diese Funktion aufzurufen. Zum Beispiel:

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


Was nun?

Re: Datumsfilter

13. Oktober 2011 08:42

Bitte mal in die C/AL-Hilfe zu diesem Befehl schauen :wink:


Gruß, Fiddi

Re: Datumsfilter

13. Oktober 2011 08:56

Danke fiddi, die Hilfe hat mir da echt geholfen.

Nun bekomme ich zwar keine Fehlermeldung mehr, aber scheinbar greif es nicht mit diesem Code.

Code:
If "Ending Date" = 0D then
CurrReport.SKIP;


=> d.h. doch blende mir alle Header, und auch die Section(s) die danach eine Ebene weiter rechts eingerückt sind, aus, die keinen Datumseintrage haben, oder????

Ich beschreibe mal kurz meinen recht kleinen Report, vielleicht liegt es woanders darn.

Kurz zum Aufbau.

Ich habe 3 DataItems, von denen das nächste immer eine Ebene nach rechts gerückt ist.
Den zuvor beschriebenen SKIP Befehl verwende ich auf dem zweiten Data Item, welches dann aber keine Section hat, sondern nur den Zusammenhang zwischen Header und Line darstellt um entsprechend filtern zu können.

Was kann ich noch versuchen?

Re: Datumsfilter

13. Oktober 2011 09:16

misterelektro1981 hat geschrieben:=> d.h. doch blende mir alle Header, und auch die Section(s) die danach eine Ebene weiter rechts eingerückt sind, aus, die keinen Datumseintrage haben, oder????
Meinst du, dass dieser Filter auch auf die DataItems greifen soll, die an dieses angehängt sind?

Re: Datumsfilter

13. Oktober 2011 09:23

Davon bin ich ausgegangen.

Ich habe den Pr. Strukturkopf und danach ie zugehörigen Zeilen.

Nun bin ich davon ausgegenagen, wenn ich den Header nicht einblende, das mir automatisch die Zeilen auch nicht eingeblendet werden.

Kurz zum Hintergrund.

Wir haben zu einem Projekt immer mehrer Projektstrukturen. Für mich sind aber immer nur die interessant, die ein Enddatum auf Kopfebene besitzen.

War die Lösung/Ansatz so falsch bitte verbessere mich...

Re: Datumsfilter

13. Oktober 2011 09:32

Alle Köpfe ohne Enddatum überspringst du ja nun. Oder was passiert stattdessen?

Re: Datumsfilter

13. Oktober 2011 10:44

Ja das schon, aber ich dachte, das mir die zugehörigen Zeilen auch übersprugen wäre.

Ich habe jetzt mal alles auf Section Ebene programiert mit diesem Code:
Code:
CurrReport.SHOWOUTPUT(
  (
  ("Job Structure Line".Type = Type::Item) AND
  ("Job Structure Line".Level = 2)AND
  ("Job Structure Header"."Ending Date" <> 0D)
  )
  OR
  (
  ("Job Structure Line".Type = Type:: Resource) AND
  ("Job Structure Line"."No." = '715')AND
  ("Job Structure Header"."Ending Date" <> 0D)
  )
  );


Damit passiert genau das, was ich erreichen wollte, jedoch ist der Bericht richtig langsam :-(

Das wollte ich halt auf DataItem Ebene machen, aber da klappte es nicht....

Re: Datumsfilter

13. Oktober 2011 11:46

Ist ja auch richtig gedacht: alle dem DataItem zugehörigen DataItems werden dann ebenfalls übersprungen. Wenn es nun der Fall sein sollte, dass da Zeilen eines Kopfes mit leerem Enddatum auftauchen, ist irgendwas im Report durcheinander.

Re: Datumsfilter

14. Oktober 2011 13:44

Jetzt weiß ich woran es liegt....

Ich habe folgenden Aufbau der DataItems.

DataItem:
1)Job
2) Job Structure Header
3) Job Structure Line

Im Bereicht selbst stelle ich jedoch nur Infos von Job und Job Structure Line dar.

Jetzt die Frage.

Ich möchte eine Bedingung aus Job Structure Header für Job geltend machen. Nur dann sollen Infos aus Job gezogen werden.
Bisher hatte ich diesen Befehl auf dem falschen, nämlich dem 2ten DataItem gezogen, daher auch keine Funktion, da das erste DataItem bereits durchlaufen war.
D.h. also, die Daten aus Job Structure Header müssen früher geholt werden, um dann auf Job angewendet zu werden.

Wie mache ich das????? Eine Record Variable auf Job Structure Header mit einem Get Befehl zu Anfang des Report funzt nicht....

Ist meine Denkweise so richtig???

Re: Datumsfilter

14. Oktober 2011 15:09

Dann lass doch das DataItem Job weg und mach im Job Structure Header ein get darauf.