[Gelöst] "Variable mit weniger Dimensionen definiert"

14. Oktober 2008 19:31

Hallo,

ich habe den Report 112 Sales Statistic für eine eigene Auswertung herangezogen. DataItem ist statt "Customer" jetzt "Item". Die globalen Variablen habe ich teilweise übernommen. Z.B. "PeriodLength", "PeriodStartDate" und "i".

Außerdem habe ich die Trigger übernommen:
______________________________________________________________
Report - OnPreReport()
FOR i := 2 TO 4 DO
PeriodStartDate[i+1] := CALCDATE(PeriodLength,PeriodStartDate[i]);
PeriodStartDate[6] := 31129999D;


Item - OnPreDataItem()
CurrReport.CREATETOTALS(ItemPurch);

Item - OnAfterGetRecord()
FOR i := 1 TO 5 DO BEGIN
SETRANGE("Date Filter",PeriodStartDate[i],PeriodStartDate[i+1] - 1);
CALCFIELDS("Purchases Qty. NI");
ItemPurch := "Purchases Qty. NI";
END;
____________________________________________________________

Beim Kompelieren bekomme ich aber folgende Fehlermeldung:
"Die Variable ist mit weniger Dimensionen definiert."
Die Meldung bezieht sich schon gleich auf den OnPreReportTrigger: "PeriodStartDate[i+1]"

Mit meinem mageren Halbwissen und wahrscheinlich weit hergeholten Vermutungen komme ich leider nicht weiter.

Kann mir jemand sagen, was das Problem sein könnte.

Gruß
Sandra

=============================================

Das war die Lösung! Danke Euch.
Zuletzt geändert von Frova am 14. Oktober 2008 22:59, insgesamt 1-mal geändert.

Re: "Variable mit weniger Dimensionen definiert"

14. Oktober 2008 20:16

Ich denke du solltest alle Variablen mit mehreren Dimensionen ([]) auch so definieren. Auf der Variablendefinition einfach in die Eigenschaften gehen (Groß+F4) und unter Dimensions die entsprechende Menge an Dimensionen eintragen. Also für PeriodStartDate wohl 6 soweit ich das sehe.

Re: "Variable mit weniger Dimensionen definiert"

14. Oktober 2008 20:18

Eckige Klammern werden verwendet, wenn du eine bestimmte Dimension einer Variable ansprichst.
Eine Stringvariable hat automatisch so viele Dimensionen, wie lang sie definiert worden ist.
Bei allen anderen Variablen musst du, um [i+1] verwenden zu können, die Variable PeriodStartDate mit einer bestimmten Anzahl von Dimensionen versehen. Dies geht, in dem du die Eigenschaft Dimensions der Variable setzt.
So wie ich dein Beispiel verstanden habe, brauchst du 6 Dimensionen.