wäre es möglich im nächsten Release der AvERP.EXE die TIB_Event-Komponente zu integrieren
Ich habe das vorab schon mal gemacht und muss sagen, dass diese Komponente wesentlich besser dazu geeignet ist ein Formular zu aktualisieren als es mit der TTimer Komponente möglich ist.
Die Eigenschaft Events hat folgende Einträge:
Code: Alles auswählen
Orderwechsel
FreigabeQS
Ich habe eine Tabelle gebaut in der pro Produktionsmaschine jeweils der Ein- sowie der Ausbau der Aufträge eingegeben werden.
Im Insert- bzw. Update-Trigger wird jeweils ein Post_Event generiert.
Code: Alles auswählen
CREATE OR ALTER TRIGGER BHERSTELLUNG_AI0 FOR BHERSTELLUNG
ACTIVE AFTER INSERT POSITION 0
as
begin
/* LETZTER STAND: 17.09.2008 06:42:52 BY KDP */
/* Protokollieren, dass Aktion hier durchgelaufen ist */
IF (GEN_ID(GEN_ENTWICKLUNG,0) = 0) THEN
INSERT INTO A_WASMACHTIB (PROGRAMMTEIL) VALUES ('BHERSTELLUNG_AI0');
Post_Event 'Orderwechsel';
end
Code: Alles auswählen
CREATE OR ALTER TRIGGER BHERSTELLUNG_AU10 FOR BHERSTELLUNG
ACTIVE AFTER UPDATE POSITION 10
as
begin
/* LETZTER STAND: 17.09.2008 06:31:39 BY KDP */
/* Protokollieren, dass Aktion hier durchgelaufen ist */
IF (GEN_ID(GEN_ENTWICKLUNG,0) = 0) THEN
INSERT INTO A_WASMACHTIB (PROGRAMMTEIL) VALUES ('BHERSTELLUNG_AU10');
IF (((old.EINBAUZEIT <> new.EINBAUZEIT) OR
(old.AUSBAUZEIT <> new.AUSBAUZEIT)) OR
((old.AUSBAUZEIT is NULL) AND (new.AUSBAUZEIT is NOT NULL))) Then
Post_Event 'Orderwechsel';
end
Code: Alles auswählen
CREATE OR ALTER TRIGGER BQSDATEN_AU10 FOR BQSDATEN
ACTIVE AFTER UPDATE POSITION 10
as
begin
/* LETZTER STAND: 18.09.2008 08:20:36 BY KDP */
/* Protokollieren, dass Aktion hier durchgelaufen ist */
IF (GEN_ID(GEN_ENTWICKLUNG,0) = 0) THEN
INSERT INTO A_WASMACHTIB (PROGRAMMTEIL) VALUES ('BQSDATEN_AU10');
IF ((old.DATUM_ELKONTROLLE is NULL) and (new.DATUM_ELKONTROLLE is not NULL))
THEN Post_Event 'FreigabeQS';
end
Eine andere Maske reagiert auf dieses Events, und die entsprechenden Aktionen werden ausgeführt.
Der Farbhintergund hat folgende Bedeutung:
Grün: Auftrag ist eingebaut, Freigabe QS ist erfolgt
Gelb: Auftrag ist eingebaut, Freigabe QS fehlt
Rot: Auftrag ist ausgebaut, aber noch kein neuer eingebaut
Das OnEventScript sieht so aus:
Code: Alles auswählen
Begin
q_2.First;
For X := 1 To q_2.RecordCount do Begin
SuchQuery := 'Q_Maschine' + IntToStr(X); // Ergibt Q_Maschine1,Q_Maschine2 usw
PanelMaschine := 'PANEL_Maschine' + IntToStr(X);
A := Self.FindComponent(SuchQuery);
P := Self.FindComponent(PanelMaschine);
If A > 0 Then Begin
A.Refresh;
If P > 0 Then Begin
Include(PROC0001); // Farbe des Panels schalten
End;
End;
q_2.Next;
End;
End;
Code: Alles auswählen
Begin
M1 := A.FieldByName('AUSBAUZEIT');
M2 := A.FieldByName('FREIGABEQS');
If ((M1.IsNull) and (M2.IsNotNull)) Then P.Color := 65280; // Grün
If ((M1.IsNull) and (M2.IsNull)) Then P.Color := 65535; // Gelb
If ((M1.IsNotNull)) Then P.Color := 255; // Rot
End;