Registerkarte deaktivieren
Christoph Roessner
Hi,ich möchte die Registerkarte Buchhaltung im Geschäftspartner deaktivieren (Form:134, Item:4). Dafür nutze ich customize Optimizer mit Eventtyp FormLoad und Form Modus: ALL.
Folgendes ist der Code:
Folder.GetFromUID(pVal.Form,"4").Enabled = false;
Beim Loaden der Form funktioniert es (die Registerkarte ist deaktiviert). Aber wenn ich dann einen Partner suche, ist die Registerkarte wieder aktiv. Es ist genauso mit "visible = false". Welchen Eventtyp soll ich nutzen?
Habt Ihr eine gute Lösung?
Vielen Dank.
Andre
Michael Egloff
Hallo Andre,sobald SAP Daten lädt, werden für visible und enable die SAP Werte geladen.
Wenn du etwas "unsichtbar" machen willst, kannst du es auf ein nicht existierendes PaneLevel setzen.
Gruss Michael
Christoph Roessner
Hallo Michael,wie kann ich ein nicht existierendes PaneLevel finden und dann ein Feld (oder eine Registerkarte) darauf setzen? Es wäre super wenn du ein Beispielcode in C# schreiben würdest.
Gruß
Andre
Michael Egloff
Hallo Andre,die verschiedenen PaneLevels findest du mit dem Assistenten im Modul ItemPlacement raus oder
http://help.coresystems.ch/help/customize/de/index.html?cor_customize_technische_informationen_panelevel.htm
Folder.GetFromUID(pVal.Form,"4").FromPane = 42;
Folder.GetFromUID(pVal.Form,"4").ToPane = 42;
Gruss
Christoph Roessner
Hallo Michael,diese Methode funktioniert nur bei Type "TextEdit", "Button", und "Label".
Bsp:
TextEdit.GetFromUID(pVal.Form,"345").Visible = false; //Gebiet
TextEdit.GetFromUID(pVal.Form,"345").FromPane = 42; TextEdit.GetFromUID(pVal.Form,"345").ToPane = 42;
Egal was ich mache (neue loaden, suchen, aktualisieren), bleibt dieses Feld unsichtbar. Damit bin ich zufrieden.
Bei "Folder" funktioniert das nicht ganz. Nachdem ich ein Geschäftspartnercode eingegeben habe, taucht die Registerkarte "Buchhalt." wieder auf. Und wenn ich darauf klicke, verschwindet nur die Überschrift, aber ich kann alle Felder unter "Buchhalt." noch sehen bzw. zugreifen. Ich will den ganzen Folder (auch die dazugehörigenden Felder) unsichtbar machen.
Hier sind die Codes für die Registerkarte Buchhalt:
Folder.GetFromUID(pVal.Form,"4").Visible = false;// Buchhalt.
Folder.GetFromUID(pVal.Form,"4").FromPane = 42;
Folder.GetFromUID(pVal.Form,"4").ToPane = 42;
Gibt es eine bessere Lösung?
(übrigens, der Eventtyp ist FormLoad)
Gruß
Andre
Michael Egloff
Hallo Andre,du hast absolut Recht. Ich habe das Ganze auf den Einkaufsbelegen getestet und dort hat es funktioniert.
Auf dem Geschäftspartner klappts aber nicht (beschriebenes komisches Verhalten).
Wenn die Registerkarten "nur" nicht anwählbar sein soll, dann kannst du auch den Click darauf unterbinden, indem du eine Regel machst im Optimizer, bei welcher du dich auf den ClickEvent anmeldest. Weitere Parameter:
FormTyp: 134
ItemUID: 4
ClickEvent
Before
Modus: ALL
Typ: CSHARP
und folgender Code:
try
{
SwissAddonFramework.Messaging.StatusBar.WriteError("Dieses Register ist gesperrt!");
return false;
}
catch(System.Exception ex)
{
MessageBox.Show("Unerwarteter Fehler beim Selektieren der Registerkarte: " + ex.Message, "OK");
}
return true;
Hoffe, das hilft dir weiter!
Gruss,
Michael
Christoph Roessner
Hallo Michael,danke für deine Antwort. Ja, so hat es funktioniert. Aber unsichtbar wäre besser, und für uns eine optimale Lösung.
Kommt dieser "Bug" von euch (also coresuite), oder von SAP? Könntet Ihr den Fehler in der näheren Zukunft beseitigen?
Gruß
Andre
Michael Egloff
Hallo Andre,der "Bug" ist ein Zeichnungsfehler von SAP (ist immer einfach, auf andere abzuschieben, aber ist in diesem Fall wirklich so).
Ich denke mal, das wird auch in Zukunft so bleiben, da wird SAP keine Veränderungen machen (gibt ja genug andere Problembereiche) und da die Deaktivierung (zwar nicht optimal) funktioniert, werden wir da auch keinen Druck ausüben können.
Gruss,
Michael
0
Please sign in to leave a comment.
Comments
0 comments