Keiner eine Idee? Hier noch mal eine komplette Beschreibung. Vielleicht habe ich mich ja unverständlich ausgedrückt.
Report
DataItem: Beitragstabelle
Recordvariablen: DTA_Header + DTA_Lines (diese sollen mit Beitragsdaten befüllt werden)
Auf der Requestform wird ein Optionsfeld "Diskettennummer" eingeblendet. Klickt der User hier drauf, soll eine neue "freie" Nummer aus der entsprechenden Nummerserie gezogen werden.
In Recordvariable DTA_Header ist folgende Funktion hinterlegt:
- Code:
IF AssistEdit(xRec) THEN
CurrForm.UPDATE;
WITH DTAUS DO BEGIN
DTAUS := Rec;
GLSetup.GET;
GLSetup.TESTFIELD("DTAUS Beitrag Nummern");
IF NoSeriesMgt.SelectSeries(GLSetup."DTAUS Beitrag Nummern",DTAUS_Alt.Nummernserie,Nummernserie) THEN BEGIN
NoSeriesMgt.SetSeries(Diskettennummer);
Rec := DTAUS;
EXIT(TRUE);
END;
END;
Im OnValidate Trigger des Feldes "Diskettenummer" der Recordvariable DTA_Header steht folgendes:
- Code:
IF Diskettennummer <> xRec.Diskettennummer THEN BEGIN
GLSetup.GET;
NoSeriesMgt.TestManual(GLSetup."DTAUS Beitrag Nummern");
Diskettennummer := '';
END;
Im Moment hänge ich total. Wie schon beschrieben funktioniert der Aufruf der Funktion "AssistEdit" in einem normalen Formular einwandfrei. Hierfür habe ich im OnValidate Trigger des Feldes "Diskettennummer" auf dem Testformular folgenden Code hinterlegt:
- Code:
IF AssistEdit(xRec) THEN
CurrForm.UPDATE;
Auf der Requestform kann ich die Funktion nicht mit "AssistEdit(xRec)" aufrufen. Also vielleicht sehe ich Wald vor lauter Bäumen nicht
ERGÄNZUNG:
Ich habe ja total vergessen den Code des OnInsert Triggers zu erwähnen:
- Code:
IF Diskettennummer = '' THEN BEGIN
GLSetup.GET;
GLSetup.TESTFIELD("DTAUS Beitrag Nummern");
NoSeriesMgt.InitSeries(GLSetup."DTAUS Beitrag Nummern",xRec.Nummernserie,0D,Diskettennummer,Nummernserie);
END;