25. März 2009 12:33
25. März 2009 12:58
mpetersen hat geschrieben:Das Problem das ich damit hatte ist, dass ich nicht im OnInsert Trigger programmieren kann, weil das System den Datensatz zu diesem Zeitpunkt ja noch nicht erfasst hat.
25. März 2009 13:05
25. März 2009 13:20
mpetersen hat geschrieben:Das Problem ist, ich hab versucht, die Ressource dort anzulegen. Aber man kann sich im OnInsert Trigger doch nicht auf die eingegebenen Daten beziehen, oder?
[...]
IF NOT Resource.GET("No.") THEN BEGIN
Resource.INIT;
Resource.VALIDATE("No.","No.");
Resource.Type := Resource.Type::Person;
Resource.INSERT(TRUE);
END;
[...]
IF ("First Name" <> xRec."First Name") OR
("Middle Name" <> xRec."Middle Name") OR
("Last Name" <> xRec."Last Name") OR
(Address <> xRec.Address) OR
("Address 2" <> xRec."Address 2")
THEN BEGIN
Resource.GET("No.");
Resource.VALIDATE(Name,FullName);
Resource.Address := Address;
Resource."Address 2" := "Address 2";
Resource.MODIFY;
END;
25. März 2009 13:27
mpetersen hat geschrieben:Aber man kann sich im OnInsert Trigger doch nicht auf die eingegebenen Daten beziehen, oder?
25. März 2009 14:21
Natalie hat geschrieben:Doch, und wie man kann
//Creates the Resource from the Employee
IF NOT TimeJnlSetup.GET() THEN
ERROR(Text007,TimeJnlSetup.FIELDCAPTION(TimeJnlSetup."Worktype Code"),TimeJnlSetup.TABLECAPTION);
TimeJnlSetup.TESTFIELD("Product Posting Group");
IF Employee.GET(EmplNo) THEN BEGIN
IF Res THEN BEGIN
Resource.INIT;
Resource.VALIDATE("No.");
Resource.INSERT(TRUE);
IF Employee."User ID" <> '' THEN BEGIN
CheckResource(Employee."User ID");
Resource."User ID" := Employee."User ID";
END ELSE
ERROR(Text003);
Resource.Type := Resource.Type::Person;
Resource.Name := Employee."First Name" + ' ' + Employee."Last Name";
Resource."Search Name" := Employee."Last Name";
Resource.Address := Employee.Address;
Resource.VALIDATE("Gen. Prod. Posting Group",TimeJnlSetup."Product Posting Group") ;
Resource."Address 2" := Employee."Address 2";
Resource.City := Employee.City;
Resource."Social Security No." := Employee."Social Security No.";
Resource."Job Title" := Employee."Job Title";
Resource."Employment Date" := Employee."Employment Date";
Resource."Global Dimension 1 Code" := Employee."Global Dimension 1 Code";
Resource."Global Dimension 2 Code" := Employee."Global Dimension 2 Code";
IF (TimeJournalSetup.GET) AND (TimeJournalSetup."Worktype Code" <> '') THEN
Resource."Base Unit of Measure" := TimeJournalSetup."Worktype Code"
ELSE
MESSAGE(Text002,TimeJournalSetup.TABLECAPTION,TimeJournalSetup.FIELDCAPTION(TimeJournalSetup."Worktype Code"),
Resource.FIELDCAPTION(Resource."Base Unit of Measure"));
Resource."Last Date Modified" := TODAY;
Resource."Post Code" := Employee."Post Code";
Resource.County := Employee.County;
Resource."Country/Region Code" := Employee."Country/Region Code";
Resource.VALIDATE("Gen. Prod. Posting Group",TimeJournalSetup."Product Posting Group");
Resource.MODIFY;
Employee.VALIDATE(Employee."Resource No.",Resource."No.");
Employee.MODIFY;
ResUnitMeasure.INIT;
ResUnitMeasure."Resource No." := Resource."No.";
ResUnitMeasure.Code := TimeJnlSetup."Worktype Code";
ResUnitMeasure."Qty. per Unit of Measure" := 1;
ResUnitMeasure."Related to Base Unit of Meas." := TRUE;
ResUnitMeasure.INSERT;
END;
END ELSE
ERROR(Text001,EmplNo);
25. März 2009 14:35
mpetersen hat geschrieben:Der Mitarbeiter mit der Nummer ... existiert nicht.
25. März 2009 14:42
25. März 2009 14:48
IF Employee.GET(EmplNo) THEN BEGIN
//
END ELSE // natürlich nicht, den legst du ja gerade erst an
ERROR(Text001,EmplNo);
25. März 2009 14:50
25. März 2009 15:15