[Gelöst] - Report Zusatzausgabe

12. Oktober 2006 17:43

Hi,

habe ein Report, DataItem ist Item, habe ein request Form, wo ich ArtikelNr waehle, und noch ein paar Variablen, welche für späteren Gebrauch verwendet werden sollen.

Im Item Trigger OnAfterGetRecord , wird eine Funktion aufgerufen, diese setzt ein filter auf eine tabelle die in Global Vars definiert ist, und fügt einen neuen datensatz in einer anderen tabelle ein die auch in Global Vars definiert ist.


So. Nun möchte ich aber das die neuen Datensaetze, wo der filter drauf basiert , und auch in die neue tabelle eingefügt werden, irgendwie mit im report ausgegeben werden.

Wie kann ich das machen? Muss ich noch ein DataItem Ganzzahl oder so hinzufügen? habe ich versucht, funzt nicht :(

Wisst Ihr was ich meine ? Hoffe jemand hat nen tipp für mich.

Danke
Zuletzt geändert von elTorito am 16. Oktober 2006 14:40, insgesamt 1-mal geändert.

12. Oktober 2006 17:49

Hi Peter,
Falls Du keine temporären Tabellen verwendest könntest Du doch für die Ausgabe der eingefügten Daten ein normales Dataitem verwenden. Sonst musst Du mit Ganzahl arbeiten.

12. Oktober 2006 18:40

Sollen die Daten aus der neuen Tabelle für jeden Item-Datensatz ausgegeben werden oder nach allen Items gesamt?
In Abhängigkeit davon musst Du das Dataitem einrücken oder auch nicht.
Als Beispiel für Ausgabe nach durchlauf aller Datensätze findest du z.B. in der Verkaufsrechnung, da werden in den Positionszeilen die Steuerinfos gesammelt und nach der letzten Positionszeile im Integer Dataitem VATCounter ausgegeben

13. Oktober 2006 10:28

Hi,

danke für eure Antworten, mein COde sieht wie folgt aus:

Item On PreDataItem:

Code:
SETFILTER("No.", BasisItem);


Item OnAfterGetRecord

Code:

IF ZubCode1 <> '' THEN BEGIN
  ZubehoerItem.SETFILTER("Zubehoer Group", ZubCode1);
  ZubehoerItem.SETFILTER("No.", '<>%1', BasisItem);

  IF ZubehoerItem.FIND('-') THEN
  REPEAT
    MakeZLine(ZubehoerItem."No.");
  UNTIL ZubehoerItem.NEXT =0;
END;


MakeZLine{
  ItemSubst.INIT;
  ItemSubst."No." := BasisItem;
  ItemSubst.VALIDATE("Substitute No.","ZNo.");
  ItemSubst.INSERT;
}


"ZNo." möchte ich noch zusaetzlich im Report ausgeben.

Denk schon das ich Temporäre Tabellen verwenden könnte, bin damit aber nicht vertraut :oops: Hab das irgendwie noch nie gemacht.

Danke

13. Oktober 2006 20:03

was ist denn "ZNo." ?
ist das ein Feld im Item-Datensatz? oder ist das eine Variable?
geht aus deinem Code leider nicht hervor.

16. Oktober 2006 10:04

Moin.

"ZNo" Ist ZubehoerItem."No." (welche an die Funktion MakeZLine übergeben wird. )

Danke

16. Oktober 2006 10:29

OK, du solltest dann ein Integer Dataitem nehmen, welches vom Item abhängig ist., also eingerückt.
im onpredataitem ermittelst du die Anzahl der Datensätze in der itemsubst tabelle und machst dann ein setrange(number,1,itemsubst.count)
Schau dir als Beispiel das VATCounter DataItem im Sales Invoice Report an, dann sollte das klar werden.

16. Oktober 2006 12:23

Soweit so gut ... danke ...

Also hab das Ganzzahl Dataitem erstellt und eingerückt, abhängig von Item. Die Ausgabe wird nun beschraenkt auf die gezählten Datensaetze. Für Anzahl X wird aber X mal der gleiche Datensatz ausgegeben (jeweils der letzte).

Wir könnte ich die Anwendung nun dazu bringen "eine Liste" auszugeben?

Hier nochmal was ich hab:

DataItem Item
DataItem Ganzzahl (bezogen auf Item)


In On PreDataItem Ganzzahl habe ich :

Code:
IF (ZubehoerItem1.COUNT = 0) THEN
  CurrReport.BREAK;
SETRANGE(Nummer,1,ZubehoerItem1.COUNT);


ZubehoerItem1 ist eine Record Variable auf Table Item.

Im DataItem - Item OnAfterGetRecord habe ich folgenden COde:

Code:

  ZubehoerItem1.SETFILTER("Zubehoer Group", ZubCode1);
  ZubehoerItem1.SETFILTER("No.", '<>%1', BasisItem);

  IF ZubehoerItem1.FIND('-') THEN
  REPEAT
    MakeZLine(ZubehoerItem1."No.");
  UNTIL ZubehoerItem1.NEXT =0;


Es wird auf Artikel gefiltert welche nicht BasisItem entsprechen, und auf Artikel welche die Eigenschaft ZubCode1 haben.

Falls welche gefunden werden wird folgende Funktion ausgeführt.
Code:
fnc MakeZLine {
  ItemSubst.INIT;
  ItemSubst."No." := BasisItem;
  ItemSubst.VALIDATE("Substitute No.","ZNo.");
  ItemSubst.INSERT;
}


In der Ganzzahl Body Sectioon habe ich ein Feld wo ich folgendes ausgebe:

ZubehoerItem1."No."
Liegts evtl hier dran?

Wollts erst über nen Array lösen, aber peil das irgendwie nicht die werte in den Array hineinzufügen, sowas wie :

Array[i] = XYZ gibbet ja nicht ??? Dimension muss ja vorgegeben werden?

*mal ne runde kaffe gib*

Bild
Du hast keine ausreichende Berechtigung, um die Dateianhänge dieses Beitrags anzusehen.

16. Oktober 2006 13:24

schau dir mal die Trigger in der Rechnung an, da machen die mit dem VATCOunter genau das, was du mit Itemsubst machen willst.
speziell den onaftergetrecord-trigger vom Integer-dataitem

16. Oktober 2006 14:00

Michael Schumacher hat geschrieben:schau dir mal die Trigger in der Rechnung an, da machen die mit dem VATCOunter genau das, was du mit Itemsubst machen willst.
speziell den onaftergetrecord-trigger vom Integer-dataitem


Bild
Bild

Nun funktioniert es so wie ich haben wollte. Vielen Vieln Dank.