JScript Formular Felder aus verknüpfter ClassBase

Post Reply
Dirk G.
Posts: 9
Joined: 07. Aug 2014, 13:05
Location: Im Norden von Berlin
Contact:

JScript Formular Felder aus verknüpfter ClassBase

Post by Dirk G. » 02. Aug 2017, 18:12

Hallo Zusammen,

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");
}
Hier mein geplantes Produktiv Script: (die ALERTS dienen auch hier nur der Funktionsüberwachung des Scripts!)

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");
}
Das Script liegt hinterm "SPSAssetTypeGenericPeripheralDevice" [Ereignisse] - Beim Laden.
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;"
nicht an das Attribut aus der Relation ran.

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
---------------------------------------------------------------
WPM 8.1.5.1942
https://www.gegenbauer.de

Post Reply

Return to “Customizing und Reporting”

Who is online

Users browsing this forum: No registered users and 3 guests