Umsetzung in Code

14. Oktober 2011 14:26

Ich benötige mal etwas Hilfe.

Folgende Funktion möchte ich als Code auf ein DataItem in einem Report schreiben.

=> Zeige mir (Artikel auf Ebene 2) und (Resourcen A, B oder C)

Meine Ansätze waren folgende:
Code:
CurrReport.Skip (
(Table.Type = Type <> Item and
Table.Level = 2)
or
(Table.Type = Type <> Resource and
Table."No." = 'A|B|C')
);


und

Code:
if
(Table.Type = Type::Item) and (Table.Level = 2)
or
usw.
 


beides klappt nicht....
Wie mache ich das richtig????

Re: Umsetzung in Code

14. Oktober 2011 15:13

Bringt er dir keinen kompilierfehler bei deinem Code?
Wenn doch, lies dir einmal die Hilfe zu CurrReport.SKIP durch.

Ansonsten zur Bedingung, die würde ich so schrieben, da es dann eher verständlichb ist:
Code:
IF NOT ((Type = Type.ITEM) AND (Level = 2)) OR ((Type = Type::Ressource) AND ("No." IN [A,B,C]))

Re: Umsetzung in Code

14. Oktober 2011 15:15

Danjo hat geschrieben:hier fällt mir gerade der Befehl für in### nicht ein

... in ['A','B','C'] ...

Re: Umsetzung in Code

14. Oktober 2011 15:15

McClane hat geschrieben:
Danjo hat geschrieben:hier fällt mir gerade der Befehl für in### nicht ein

... in ['A','B','C'] ...


Kaum abgeschickt viel es mir ein und hatte es editert :)

Re: Umsetzung in Code

14. Oktober 2011 15:24

Danke für die Hilfestellung.

Ich bekomme mit folgendem Code:
Code:
  IF NOT ((Type = Type.ITEM) AND (Level = 2)) OR ((Type = Type::Ressource) AND ("No." IN ['A','B','C']))
  then CurrReport.SKIP;


Die Fehlermeldung:
Die Variable ist kein Datensatz. 'Variable.Feld' ist ungültig???

Re: Umsetzung in Code

14. Oktober 2011 15:25

Danjo hat geschrieben:Kaum abgeschickt viel es mir ein und hatte es editert :)

Mir fallen die besten Argumente auch immer nach der Diskussion ein :cry:

Re: Umsetzung in Code

14. Oktober 2011 15:26

Type::Item muss da wohl hin ..

Re: Umsetzung in Code

14. Oktober 2011 15:49

Ich weiß ja nicht, wie es euch manchmal so geht, aber manchmal kann man verszweifeln bis es endlich so klappt wie man möchte.....

Jetzt habe ich den Code in das on PreDataItem geschrieben.
Code:
IF NOT ((Type = Type::ITEM) AND (Level = 2)) OR ((Type = Type::Resource) AND ("No." IN ['715','740','730']))
then CurrReport.SKIP;


Das besagt doch genau: Wenn nicht Artikel auf Ebene 2 oder Resource 715, 740 oder 730 dann überspringe.

Leider funzt das nicht....

Bevor ich den ganzen Report hier beschreibe, habe ich ihn mal angehangen. Vielleicht hat ja jemand erbarmen :-) und wirft mal einen Bilck rein und sagt was da los ist...

Ich brauche langsam Wochenende....
Du hast keine ausreichende Berechtigung, um die Dateianhänge dieses Beitrags anzusehen.

Re: Umsetzung in Code

14. Oktober 2011 15:59

Achte mal auf die Klammern. So, wie es da steht, bezieht sich das NOT auf den ersten Klammerausdruck und nicht auf die OR-Verknüpfung der beiden AND-Ausdrücke.

Re: Umsetzung in Code

14. Oktober 2011 16:34

Es hat endlich geklappt....

Jetzt laufen beide Versionen.

1 Version mit dem Code auf den DataItems und 1 Version mit dem Code auf Section Ebene.

Warum läuft der Bericht denn immer noch so langsam. Beide Versionen laufen gleich langsam...

Allen ein schönes Wochenende.

Re: Umsetzung in Code

17. Oktober 2011 11:20

lief der bericht denn vorher überhaupt schneller?