Seite 1 von 1

Freies Feld in Report

Verfasst: Samstag 24. April 2021, 15:52
von frankkehr
Guten Tag!
Wie kann ich in einem Report einrichten, dass ich beim Drucken des Reports ein Feld manuell ausfüllen kann (ähnlich wie z.B. beim Protokoll bei den Abiturklausuren, wo ich die Klausurzeit beim drucken manuell eingeben kann). Bisher habe ich nur Reports aus der Sammlung benutzt, die diese Funktion beinhalten.

VG!

Re: Freies Feld in Report

Verfasst: Sonntag 25. April 2021, 09:46
von Falko Müller
Hallo,
Sie können eine Variable z.B. mit

Code: Alles auswählen

beispiel := StringInput('Geben Sie den gewünschten Text ein:','Defaultwert');
über eine Eingabe mit Inhalt füllen. Weitere Befehle zu verschiedenen Eingabemöglichkeiten finden Sie im Formulardesigner im Reiter "Berechnungen", wenn Sie unten rechts auf "Sprache" klicken und dann im oberen Teil "Eingabe und Auswahl" anklicken.
Eingabe.jpg
Eingabe.jpg (60.03 KiB) 980 mal betrachtet

Re: Freies Feld in Report

Verfasst: Sonntag 25. April 2021, 11:29
von frankkehr
Vielen Dank!

Re: Freies Feld in Report

Verfasst: Sonntag 25. April 2021, 13:32
von frankkehr
Falko Müller hat geschrieben: Sonntag 25. April 2021, 09:46 Sie können eine Variable z.B. mit

Code: Alles auswählen

beispiel := StringInput('Geben Sie den gewünschten Text ein:','Defaultwert');
über eine Eingabe mit Inhalt füllen. Weitere Befehle zu verschiedenen Eingabemöglichkeiten finden Sie im Formulardesigner im Reiter "Berechnungen", wenn Sie unten rechts auf "Sprache" klicken und dann im oberen Teil "Eingabe und Auswahl" anklicken.
Ich bin wie gesagt noch sehr neu dabei, eigene Reports zu erstellen :lol: - bisher habe ich nur vorhandene überarbeitet und nicht mit Variablen gearbeitet. Ich hatte ihr Beispiel genutzt, eine Variable eingefügt und den Text unter Berechnungen der Variable eingefügt und es hat leider nicht geklappt. Falls sie Zeit haben wäre es super wenn sie ihr Beispiel einmal korrekt in die Kopfzeile des angehängten Reports einfügen könnten.

VG!

Re: Freies Feld in Report

Verfasst: Sonntag 25. April 2021, 14:38
von Falko Müller
Ok, da war meine Erklärung wohl etwas knapp. Ich habe jetzt mal zwei Varianten erstellt. Hier ist die Erklärung:
Ich habe zunächst im Hauptbericht an die Stelle, an der der Text erscheinen soll, ein einfaches Text-Label gesetzt. Das heißt in diesem Fall "Label12". Der Rest findet im Reiter "Berechnungen" statt.
Zunächst muss man eine Variable definieren, die man dann in der Programmierung nutzen kann. Dazu wählt man unter Ansicht "Verwendete Module" und klickt auf "Deklarationen -> Variables" und definiert die Variable "Beispiel":

Code: Alles auswählen

  
var
  beispiel : string; 
An welcher Stelle diese Variable mit Inhalt gefüllt wird, hängt davon ab, ob Sie nur einmal einen Text eingeben wollen, der dann bei allen Schienen erscheint, oder ob für jede Klausurschiene ein eigener Text erscheinen soll.
Im ersten Fall erfolgt die Eingabe im Ereignis "GlobalOnCreate". Das finden Sie in der Ansicht "Verwendete Module" unter Ereignisse->OnCreate:

Code: Alles auswählen

procedure GlobalOnCreate;
begin
  beispiel := StringInput('Gewünschten Text eingeben:','Default');
end;
Im zweiten Fall kommt die Programmierung in das Ereignis "DetailBeforePrint". Das findet man in der Ansicht "Ereignisse" unter Detail->BeforePrint. Hier habe ich die Programmierung so erweitert, dass man bei der Eingabe die Information bekommt, um welche Klausurschiene es geht:

Code: Alles auswählen

procedure DetailBeforePrint;
begin
  beispiel := StringInput('Gewünschten Text für '+ Klausurschienen['Name']+' eingeben:','Default');
end;
In beiden Fällen muss man nun noch den Inhalt der Variable in das Label12 schreiben. In der Ansicht "Ereignisse" klickt man auf Label12->OnGetText:

Code: Alles auswählen

procedure Label12OnGetText(var Text: String);
begin

  Text := beispiel;

end;
Ich hoffe, das hilft Ihnen weiter.

Re: Freies Feld in Report

Verfasst: Sonntag 25. April 2021, 16:09
von frankkehr
Es hat funktioniert!
Ich danke Ihnen

VG!