Anmelden

View Full Version : SFL-Ctl Problem



tarkusch
06-12-12, 14:54
Hallo,

ich habe im Controller 2 Datumsfelder, wo ein Zeitraum abgefragt werden kann.
Aber sobald einmal ein EMPTY-Format geschrieben wurden, übernimmt er keine Änderungen im Control-Format.

Change(99) ist *ON aber die Daten von C1DATV hat er nicht genommen.

IF (SF#3 = 0);
*IN22 = *OFF;
WRITE FMTC3;
EXFMT EMPTY;
ELSE;
IF SF#3CC = *ZEROS;
SF#3CC = 1;
EndIf;
EXFMT FMTC3;
ENDIF;

IF (SF#3 = 0);
WRITE FMTC3;
ENDIF;


A R FMTC3 SFLCTL(FMTS3)
A SFLSIZ(0014)
A SFLPAG(0013)
A 22 SFLDSP
A N22 SFLCLR
A 23 SFLDSPCTL
A N24 SFLEND
A OVERLAY
A CHANGE(99)
A SF#3CC 4S 0H SFLRCDNBR(CURSOR)
A 4 2'Datum:'
A DSPATR(HI)
A C1DATV 8Y 0B 4 9EDTCDE(4)


A R EMPTY
A CLRL(*NO)
A 10 19'Keine Daten in diesem Zeitraum-
A gefunden.'
A COLOR(RED)
A DSPATR(RI)

Danke

Fuerchau
07-12-12, 11:40
Dein Problem ist natürlich, wenn du das Empty-Format per EXFMT bearbeitest, dass dann im CTL-Format keine Eingabe erlaubt ist.
Beides gleichzeitig geht halt nicht.
Entweder EXFMT CTL-Format oder EXFMT EMPTY-Format.

Vielleicht solltest du kein Empty-Format verwenden sondern eine Nachricht in der Nachrichtenzeile.
Das geht einfach im CTL-Format mittels ERRMSGID und Bezugszahl auf einem Eingabefeld.
Zu Fehlerausgabe ist lediglich zu beachten:

BZxx = *on; // ERRMSGID
Write CTL-Format;
BZxx = *off;
Exfmt CTL-Format;