[Gelöst] Zuweisung von Werten bei globalen Variablen

28. März 2008 10:00

Hallo,
ich habe einen Report, in dem eine Fehlerauswertung stattfinden soll. Dazu werden, nachdem die Datensätze nach Zeit gefiltert sind, die Fehler pro Schicht gezählt und dann in einer Art Matrix ausgegeben (Zeilen: Fehlerart, Spalten: Schichten). Da die Zahlen im ausgerechneten Report nicht stimmen (es werden nicht alle Fehlerarten ausgewertet) , suche ich nun den Fehler:

Zur Berechnung der Fehleranzahl wurden mehrere globale Variablen bestimmt, unter anderem auch Arrays. Die meisten sind Integer-Arrays und denen wird im Code auch ein Wert zugewiesen. Soweit ist alles klar.

Was mir zum Verständnis fehlt, ist die Zuweisung von Werten zur globalen Variable "ShiftArray". Dieser Array vom Typ Code hat die Dimension 10. Seine Werte sind "Shift1" bis "Shift8" plus "ShiftTotal", nehme ich an. Ich weiss leider nicht, WO diese Werte festgelegt wurden.

Kann mir da jemand helfen?
Zuletzt geändert von MariaNav am 28. März 2008 14:34, insgesamt 1-mal geändert.

Re: Zuweisung von Werten bei globalen Variablen

28. März 2008 11:12

MariaNav hat geschrieben:Was mir zum Verständnis fehlt, ist die Zuweisung von Werten zur globalen Variable "ShiftArray". Dieser Array vom Typ Code hat die Dimension 10. Seine Werte sind "Shift1" bis "Shift8" plus "ShiftTotal", nehme ich an. Ich weiss leider nicht, WO diese Werte festgelegt wurden.

Kann mir da jemand helfen?


Ich würde folgendermaßen vorgehen:

1) Durchsuche den Report nach Stellen, an denen ShiftArray gefüllt wird (einfaches Suchen nach dem Namen).
Eventuell könnte es notwendig sein, dass du den Report als Text exportierst und dort nach dem Namen suchst, damit dir keine Stelle entgeht.

2) Brachte 1) keinen Erfolg, heißt das, dass die Variable in einer Funktion außerhalb des Reports gefüllt wird, die vom Report aufgerufen wird.
Auch diese müsstest du finden, indem du nach ShiftArray suchst. Du müsstest dann eine Stelle finden, die so oder ähnlich aussieht: Funktionsname(ShiftArray).

28. März 2008 11:56

Ich hab eigentlich sämtliche Stellen mit Code (also vom Report Designer und dem Section Designer aus) nach der Zuweisung durchsucht.

Eventuell könnte es notwendig sein, dass du den Report als Text exportierst und dort nach dem Namen suchst, damit dir keine Stelle entgeht.


Wie geht das? Gibt es irgendwo eine Ansicht sämtlicher den Report betreffender Code-Stellen?

28. März 2008 12:00

Rufe den Object Designer auf
wähle Reports
markiere die Zeile mit deinem Report
wähle nun Datei -> Export ...
Stelle unten den Dateityp auf *.txt um
Wähle einen passenden Dateinamen (und entferne ggf. das .fob im Namen).

Öffne die so entstandene txt-Datei und durchsuche sie noch einmal.
Zuletzt geändert von Natalie am 28. März 2008 14:37, insgesamt 1-mal geändert.

28. März 2008 12:42

Tolle Sache, das Exportieren! :idea:
Hab die Zuweisung in der txt-Datei gefunden. Kannst Du mir vielleicht noch verraten, wo ich dieselbe in der Navision-Umgebung ansehen kann? Vielleicht hilft der Kopf der exportierten Datei:

OBJECT Report 50090 Item defect list per shift
{
OBJECT-PROPERTIES
{
Datum=08-03-27;
Zeit=10:11:54;
Ge„ndert=Ja;
Versions Liste=TDD;
}
PROPERTIES
{
TopMargin=1000;
BottomMargin=1000;
OnPreReport=BEGIN
UserSetup.SETRANGE("Shift company", UserSetup."Shift company"::GPV);
IF UserSetup.FIND('-') THEN REPEAT
ctr += 1;
ShiftArray[ctr] := UserSetup."User ID";
UNTIL (UserSetup.NEXT = 0) OR (ctr = 10);
END;

Orientation=Landscape;
PaperSize=A4 210 x 297 mm;
}

28. März 2008 14:04

Stelle dich unten auf das erste DataItem, das leer ist, und drücke F9.
Dort findest du den Trigger OnPreReport.

28. März 2008 14:33

Daaaaanke!

28. März 2008 14:36

Biiiiiiiiiiitte :-)

(Übrigens, das [Gelöst] gehört eigentlich an den Anfang des Thementitels statt ans Ende, aber halb so wild)