[gelöst]Berichterstellung

25. Juni 2007 11:57

Hallo zusammen,

ich erstelle gerade einen Bericht.

Ich gebe beispielsweise zu einem bestimmten Flurstück Details aus.
Zu jedem Flurstück gibt es verschiedene Objekte die alle beim jeweiligen Flurstück aufgelistet sein sollen, auf diese Art:

Flurstück
Nummer Bezeichnung
Fläche:
...

Objekt:
Nummer Bezeichnung Fläche
Nummer Bezeichnung Fläche

Damit ich die Objekte untereinander bekomme habe ich eine repeatschleife gemacht:

Code:
 IF recObjektgrundbuchzeile.FIND('-') THEN
  REPEAT
    g_Liegenschaftsnr := recObjektgrundbuchzeile."Liegenschaftsnr.";
    recObjektgrundbuchzeile.CALCFIELDS(Objektbezeichnung);
    g_Liegenschaftsbz := recObjektgrundbuchzeile.Objektbezeichnung;
    g_Liegenschaftsfl := recObjektgrundbuchzeile."Fläche (m²)";
 UNTIL recObjektgrundbuchzeile.NEXT = 0;


allerdings schreibt er logischerweise dann nur den letzten Wert hin!
Irgendwie muss ich sagen können das er JEDEN SCHREIBEN soll, wie kann ich das machen?

Ich hab auch schon probiert dafür nen extra Body zu machen aber das geht auch irgendwie nicht?

Danke schon mal,
Grüsse
Silvia
Zuletzt geändert von Silvia am 25. Juni 2007 13:53, insgesamt 1-mal geändert.

25. Juni 2007 12:16

Hallo Sylvia,

ich würde für die Objekte ein eigenes DataItem im Report definieren, welches unterhalb und eins nach rechts gerückt vom DataItem "Flurstück" steht. In dem dazugehörigen Body-Section brauchst du dann nur noch die Felder reinziehen. Programmieren müsstest du dann eigentlich nichts.

Gruß, Marc

25. Juni 2007 12:22

--- EDIT ------- Aufgabenstellung falsch verstanden, unten stehendes kannst du getrost ignorieren! ;-) --------------


Das geht mit einem DataItem vom Typ Integer.
Schau dir mal als Beispiel Report 111, DataItem Integer an.

Sehr wichtig ist dabei dieser Code hier:
Code:
IF Number = 1 THEN BEGIN
  IF NOT DeinRecord.FIND('-') THEN
    CurrReport.BREAK;
END ELSE
  IF DeinRecord.NEXT = 0 THEN
    CurrReport.BREAK;

25. Juni 2007 13:52

ja super mit dem neuen dataitem klappts, dankeschön!