ich habe in der SPSAssetClassBase ein Attribut erstellt (Datum).
In den jeweiligen Dialogseiten von Monitor-CI, Computer-CI und Allgemeines Peripheriegerät-CI zeige ich das neue Attribut mit an auf der Dialogseite "Erwerb"und man kann den Wert dort auch eintragen (Datum setzen).
Jetzt möchte ich aber, das das Datum nur einmalig gesetzt werden kann und dann beim betroffenen Asset nicht mehr geändert werden kann.
Meine Idee war, dies mit einem JScript zu steuern: bei Laden der Dialogseite wird geprüft, ob das Attribut aus der verknüpften Relation zur SPSAssetClassBase leer ist oder nicht. Steht schon ein Datum drin, soll das Feld deaktiviert werden.
Dies funktioniert in einem Test-CI mit einer eigenen Test-Datendefinition auch sehr gut, allerdings sitzt dort das neue DatumsAttribut in der selben Test-ClassBase und nicht in einer via Relation verknüpften ClassBase.
Funktionierendes Test Script mit Test-CI und Test-ClassBase: (die ALERTS dienen nur der Funktionsüberwachung des Scripts!)
Code: Select all
// CI-Formular | Ereignisse "Beim Laden"
var n = g_Ud_Custom_Test_TabelleClassBase_Datum.length;
if (n>0)
{
alert(g_Ud_Custom_Test_TabelleClassBase_Datum+ " - Länge=" + n + " - ungleich NULL");
document.getElementById(Ud_Custom_Test_TabelleClassBaseDatum).disabled=true;
}
else {
alert(g_Ud_Custom_Test_TabelleClassBase_Datum+ " - Länge=" + n + " - gleich NULL");
}
Code: Select all
// CI-Formular | Ereignisse "Beim Laden"
var n = g_SPSAssetClassBase_Ud_LifeCycleStart_extDL.length;
if (n>0)
{
alert(g_SPSAssetClassBase_Ud_LifeCycleStart_extDL+ " - Länge=" + n + " - ungleich NULL");
document.getElementById(SPSAssetClassBaseUd_LifeCycleStart_extDL).disabled=true;
}
else {
alert(g_SPSAssetClassBase_Ud_LifeCycleStart_extDL+ " - Länge=" + n + " - gleich NULL");
}
Ich erhalte allerdings folgende folgende Fehlermeldung:
"function SPS.DateChangeManager.OnLoad:
"SPSAssetClassBaseUd_LifeCycleStart_extDL" ist undefiniert"
Ich bin kein JScript Profi aber ich glaube, ich komme über den Weg des
Code: Select all
"document.getElementById(SPSAssetClassBaseUd_LifeCycleStart_extDL).disabled=true;"
Hat hier jemand einen Tip und kann helfen ?
Eine zweite Frage dazu:
Im funktionierenden Test-CI hat sich gezeigt, das das deaktivierte Attribut wieder aktiv wird, sobald ich im aufgerufenen Asset die Dialog Seite wechsel, z.B. von Erwerb auf Journal und danach wieder zurück auf Erwerb ... dann ist das schon gefüllte DatumsAttribut wieder aktiv.
function OnLoad() greift hier sicherlich beim Dialogseiten Wechsel nicht .... wie kann ich das lösen?
Ich danke vielmals im Voraus für jeden Tip
Beste Grüße
Dirk