RightClick-Menu
Rafael Stalder
Hallo Zusammenweiss jemand wie man im SAP auf einer Form ein RightClick Menu hinzufügt oder zumindest einen weiteren Punkt dabei hizufügt?
Gibt es dafür ein Sample?
Danke & Gruss
Rafael
Heiko Szendeleit
Moin,das ist eigentlich genau die Funktion die über coresuite customize - > "Function Button" zur Verfügung gestellt wird.
Mit nachstehendem Code kann beispielsweise aus der GP-Stammdatenmaske per Rechtsklick direkt in die Eingangszahlung gesprungen und die Kundennummer als Parameter mit übergeben werden.
Einstellungen im "Functions Button" Bereich:
Beschreibung: "Zahlungseingänge vom GP-Stamm aus"
Typ: CSCODE
Name: Zahlungseingänge verbuchen (dies ist dann der Menüeintrag)
FormTyp: 134 (dies ist die Verknüpfung mit dem Formular)
Kein Knopf: (hier ist bei mir der Haken gesetzt, da ich nur den Rechtsklick will)
string formType = "170"; // Eingabemaske Eingangszahlung
string menuId = "2817"; // MenuObjekt Eingangszahlung
SwissAddonFramework.UI.EventHandling.ItemEvents.FormLoadEventHandler del = null;
del = delegate (SwissAddonFramework.UI.EventHandling.ItemEvents.FormLoad ev)
{
SwissAddonFramework.UI.Components.Form.RemoveHandler(formType, SwissAddonFramework.UI.Components.ModeComponent.FormModes.ALL, del);
ev.Form.Select();
ev.Form.Mode = SwissAddonFramework.UI.Components.ModeComponent.FormModes.ADD;
((SwissAddonFramework.UI.Components.TextEdit)ev.Form.Items["5"]).Value = ((SwissAddonFramework.UI.Components.TextEdit)pVal.Form.Items["5"]).Value;
};
SwissAddonFramework.UI.Components.Form.AddHandler_Load(formType, SwissAddonFramework.UI.Components.ModeComponent.FormModes.ALL, del);
SwissAddonFramework.UI.Components.MenuItem.GetFromUID(menuId).Activate();
Kleine Anmerkung bzw. "Falle" in diesem Beispielscript, da sowohl die "Quelle" als auch das "Ziel" des Parameters (in diesem Beispiel die Kundennummer) in beiden Formularen das Item "5" ist. Der erste Eintrag ist das Ziel, der zweite das Ursprungsfeld.
Ich hoffe die Frage richtig verstanden zu haben und das Beispiel hilft bei Lösungssuche.
Viel Erfolg und viele Güße aus dem hohen Norden
Heiko Szendeleit
Sascha Balke
Hallo Rafael,wie Heiko schon geschrieben hat, ist an dieser Stelle "Function Button" dein Freund. Wenn du einen "Function Button" angelegst, kannst du bestimmen ob dieser der Eintrag tatsächlich via FC oder nur via Kontextmenüeintrag angezeigt werden soll.
Bitte achte aber darauf, dass du innerhalb einer Form nicht beide Arten der Anzeige drin hat, denn ansonsten zeigt er dir alles unterhalb vom FC und im Kontextmenü an.
Ich habe auch schon via Customize einen FC angelegt, nur habe ich dort keine Möglichkeit gefunden die gewünschten Punkte nur im Kontextmenü und nicht im FC anzeigen.
hth
Rafael Stalder
Hallo Zusammendanke für eure Tips.
Ich hab es mal die Variante mit dem FunctionButton ausprobiert, das funktioniert.
Nun habe allerdings noch zur Laufzeit einen weiteren Punkt zum Menü hinzugefügt, bzw. über einen Event im Optimizer einen weiteren Punkt hinzugefügt.
Dazu habe ich die Klasse RightClickMenu verwendet. Das ganze hat so geklappt.
Danke für eure Hilfe!
Gruss Rafael
0
Please sign in to leave a comment.
Comments
0 comments