25. August 2009 15:00
Hallo
Ich bin mal wieder an einem Report bei dem ich etwas Hilfe benötige.
Ausgangslage:
Wir möchten für jeden Produktionsauftrag nur die Ressourcen ausgegeben haben, dies aber nicht wie üblich untereinander sondern nebeneinander. Ist dies mit Nav möglich?
gruss
maesi
Hab gerade noch ein Proglem mit einem Titel. Wie kann ich für jeden Status nur ein Titel ausgeben lassen?
Zuletzt geändert von maesi am 26. August 2009 16:24, insgesamt 2-mal geändert.
25. August 2009 15:23
Nur so´ne Idee:
Erstelle einen neuen Report auf irgendeine Tabelle (z.B. Artikel) mit dem Wizard und wähle "Label - Type Report Wizard" aus.
Nun schau dir den Code auf dem DataItem an (Trigger OnPreDataItem und OnAfterGetRecord) und wie die Sections Formatiert sind. So sollte es mit jeder tabelle funktionieren.
26. August 2009 07:17
Hi Mikka
Dies sieht nicht schlecht aus, jedoch nicht ganz das was ich suche. Ich möchte nicht pro Record mehrere Zeilen sondern mehrere Colums und dies auch dynamisch da sich ja die Anzahl der Ressourcen verändern kann.
Da sich im ersten Record 6 Ressourcen befinden fällt er aus der Addr mit der Fehlermeldung "Der Index 6 in dem Array ist ausserhalb des zulässigen Bereichts". Ich benötige max. 10 Ressourcen und desshalb habe ich auch 10 Addr. erstellt.
gruss
maesi
26. August 2009 08:57
Jetzt bin ich verwirrt
Diese Programmierung fasst doch mehrere Records zusammen, bis die gewünschte Anzahl Felder gefüllt werden kann. Erst dann wird die nächste Zeile erzeugt.
Dynamisch? Nur so geraten --> NoOfColumns = COUNT auf die Anzahl anzuzeigende Felder
Array zu klein?! Klar es muss so groß definiert sein, wie du Felder anzeigen möchtest.
Gibt es einen Standardreport auf den du dich beziehst?
(Das würde es für mich wesentlich einfacher machen, zu verstehen wo es "hinkt")
26. August 2009 09:25
Hallo Mikka
Es hinkt wahrscheinlich an meiner Erklärung was ich möchte.
Also ich versuche es nochmals.
Wir möchten zu einem Produktionsauftragskopf die dazugehörigen Produktionsauftragszeilen Bezeichnung (Ressourcen) in einer Zeile ausgeben.
Bsp.
PA-Nummer, PA-Bezeichnung, dann alle dazugehörigen Ressourcen (Ressource1, Ressource2, Ressource n)
Wenn ich nun dein vorgeschlagenen Report erstelle ergibt dieser Mehrere Spalten, was wir nicht möchten. Wir möchten alles lauf einer Zeile ausgeben. Normal verschiebt NAV pro Ressource eine Zeile, dies möchten wir unterbinden.
Wir verwenden kein Vorlage!
Gruss
Maesi
26. August 2009 09:48
Ok, jetzt macht es klick.
Das Problem ist, das die Daten in zwei Tabellen sind.
Folgendes Vorgehen würde ich Vorschlagen:
1. Versuche die Vorgeschlagene Programmierung auf die Produktionsauftragszeilen umzusetzten (das sollte eigntlich das gewünschte Ergebnis ohne die PA-Nummer, PA-Bez usw. in der Zeile ergeben) (Die Reihenfolge der DataItem kann bleiben -->Kopf und dann die Zeilen)
2. Nun musst du 'nur noch' aus dem Produktionsauftragskopf die entsprechenden Felder in den Zeilen mit übernehmen
3. In den Sections den Produktionsauftragskopf Body (oder was auch sonst noch da ist löschen)
26. August 2009 13:35
Das habe ich bereits beim ersten mal gemacht.
Ich habe nun versucht die Sache selbst in die Hand zu nehmen was nur schmäliche Ergebnisse hervorbrint, da ich mühe habe mit Arrays. Kannst du mir da weiterhelfen?
- Code:
IF i <= ARRAYLEN(NoOfRecords) THEN
Addr[RecordNo,i]:= Bezeichnung;
i := i + 1;
Die Ausgabe gibt nun nur die erste Ressource aus, aus welchem grund kann ich nicht nachvollziehen. Ich kann ebenfalls wie in der Dokumentaion nicht nur Addr[RecordNo] für eindimensionale Arrays brauchen, weil er da beim Speichern einen Fehler bringt mit ":= kann nicht auf Arrays ausgeführt werden. Wählen Sie einen einzelenen Array-Wert, indem Sie einen Ausdruck benutzen Wie ... MeinArray[..]. Was ich ja gemacht habe, aber eben dies nicht funktioniert.
Gruss
maesi
26. August 2009 14:27
Habe herausgefunden warum es nicht ging. Ich habe unter den Globals den Diemensionswert unter Propertis nicht eingegeben.
Nun gibt er mir wider alle Ressouren aus, aber immen noch untereinander und nicht nebeneinander. Ich befürchte, dass dies mit NAV nicht möglich ist.
Gruss
maesi
26. August 2009 14:31
Doch, müsste gehen. Du müsstest nur die Ressourcen vorher alle auslesen und beispielsweise kommagetrennt hintereinander in eine Textvariable, die in ihrer Länge in etwa einer Zeile des Ausdrucks entspricht, schreiben (oder mehrere, falls eine Zeile nicht ausreicht).
26. August 2009 14:36
McClane hat geschrieben:Doch, müsste gehen. Du müsstest nur die Ressourcen vorher alle auslesen und beispielsweise kommagetrennt hintereinander in eine Textvariable, die in ihrer Länge in etwa einer Zeile des Ausdrucks entspricht, schreiben (oder mehrere, falls eine Zeile nicht ausreicht).
Sollte eigentlich nicht nötig sein!
So, ich habe ein wenig Experimentiert (bei mir mit Verkaufskopf (T_36) und Zeile(T_37), sollte sich analog bei dir übertragen lassen):
1. Ich habe mit dem Wizard mir eine Label-Report mit 10 Feldern erstellt. Ergebnis: es werden die Zeilen wie gewünscht angezeigt, es fehlen nur noch die Kopfinformationen
2. Über dem DataItem den Verkaufskopf einfügen, das (jetzt untere) einrücken und mit "DataItemLink" verliken. Ggf. noch per "DataItemTableView" die Ansicht einschränken.
3. Nun noch einen Header einfügen mit den gewünschten Labels und die Kopfinformationene in der Zeile einfügen. Ergebnis: Eine Zeile mit allen Informationen.
Evtl. wird noch ein wenig Code erforderlich falls doch mehr als 10 Ressoucen angezeigt werden sollen.
So sieht der Code aus (Auf den Zeilen!):
- Code:
// OnPreDataItem
NoOfRecords := COUNT;
NoOfColumns := 10;
// OnAfterGetrecord
RecordNo := RecordNo + 1;
ColumnNo := ColumnNo + 1;
Addr[ColumnNo][1] := FORMAT("Nr.");
COMPRESSARRAY(Addr[ColumnNo]);
IF RecordNo = NoOfRecords THEN BEGIN
FOR i := ColumnNo + 1 TO NoOfColumns DO
CLEAR(Addr[i]);
ColumnNo := 0;
END ELSE BEGIN
IF ColumnNo = NoOfColumns THEN
ColumnNo := 0;
END;
Du hast keine ausreichende Berechtigung, um die Dateianhänge dieses Beitrags anzusehen.
26. August 2009 15:06
Hallo Mikka
Das Funktioniert aber nicht ganz richtig was du da darstellst. Er erstellt nun immer eine Leerzeile und fügt auf der nächsten die nächste Ressource hinzu, bis er am ende ist. Wie erstellst du es, dass er dier pro PA nur eine Zeile erstellt. (oder bei deinem Beispiel Verkaufsauftrag)
Gruss
Maesi
26. August 2009 15:15
Hier meine Darstellung nach dem ausführen
Du hast keine ausreichende Berechtigung, um die Dateianhänge dieses Beitrags anzusehen.
26. August 2009 15:24
Was steht den im Code der Section drin?
das hat der Wizard bei mir geschrieben:
- Code:
CurrReport.SHOWOUTPUT(ColumnNo = 0);
Welcher Code ist bei dir auf den beiden Triggern?
(Bitte posten, das macht es einfacher)
Falls der Code OK ist, wird an anderer Stelle etwas im Code gemacht?
26. August 2009 15:37
Habe den Code nicht gesehen. Sorry
Aber es ist immer noch was falsch, da er nun plötzlich weiter unten nicht mehr aufhört wenn er auf dem PA keine Ressource mehr hat. Er sollte immer mit AVOR beginnen.
gruss
maesi
Du hast keine ausreichende Berechtigung, um die Dateianhänge dieses Beitrags anzusehen.
26. August 2009 15:57
Das sieht ja schon nicht schlecht aus.
Wird der Header in der Zeile oder im Kopf angedruckt?
Ich hatte ein ähnliches Phänomen als ich versehentlich den Header der Zeilen angezeigt hatte.
Warum der Report nicht aufhört ist mir unklar?!
Evtl. falscher Filter oder falsche Bedinung gesetzt.
26. August 2009 16:22
Hallo Mikka
Ein langer Tag geht zu Ende und ich habs doch noch geschafft diesen Report zu bauen.
Lösung : Die ColumnNo weiss nicht wann sie aufhören muss, deshalb Z = NoOfRecords da in dieser ja die Anzahl an ColumnNo enthält. Zusätzlich wird die ArrayVariable Addr nicht richtig gelöscht bevor sie wieder verwendet wird.
- Code:
NoOfRecords := COUNT;
z := NoOfRecords;
NoOfColumns := z;
ColumnNo := 0;
CLEAR(Addr);
Besten Dank für deine Bemühungen. Ist immer wieder toll hier im Forum wie einem geholfen wird.
Gruss
maesi
27. August 2009 07:33
Freut mich, das ich dir helfen konnte.
Ich habe dieses Forum auch schon intensiv für meine Zwecke genutzt, eine ware Goldgrube.
Daher richte ich den Dank an alle anderen hier im Forum weiter, schliesslich opfern viele hier Ihre Zeit um etwas zu der Community beizutragen.
Powered by phpBB © phpBB Group.
phpBB Mobile / SEO by Artodia.