Skip to main content

Button

Comments

8 comments

  • Lothar Hasenkämper

    Hi Sven,

    schau mal hier:

    Da kannst du einen Button hinzufügen. Es sollten auch Beispiele da sein. Wenn nicht kannst du sie über den Import nachinstallieren

    Gruß Lothar

     

    0
  • Sven Neuelmann

    Moin Lothar,

    danke für die Info. Die "Buttons" tauchen dann aber unter dem Button "Funktionen" gruppiert auf. Das klappt auch.

    Allerdings hätte ich gerne einen Button, eigenständig, rechts neben "Funktionen".

    Und dazu habe ich leider noch kein Beispiel gefunden.


    Gruß
    Sven

     

     

    0
  • Lothar Hasenkämper

    Hi Sven,

    wenn du das möchtest musst du den Optimizer nehmen. 

    Du musst erst die Form ermitteln, einen Button erstellen und diesen dann positionieren.

    Für die Position kannst du einen festen Wert nehmen oder ein Feld als Referenz

    // Füge einen OK-Button der Form hinzu             
    SwissAddonFramework.UI.Components.Button buttonOK = SwissAddonFramework.UI.Components.Button.CreateNew("1");
    buttonOK.Value = "OK";
    form.DefButton = "1";
    form.AddItem(buttonOK);

    // OK-Button - POSITION             
    buttonOK.SetPosition(10, grid.Top + grid.Height + 5);

    Im Anschluss dann die Funktion des Button bestimmen.

    zum Beipiel:
    https://helpdesk.coresystems.ch/hc/en-us/articles/201972421-DOC-Search-Item-in-document-rows 

    gruß Lothar

    0
  • Sven Neuelmann

    Hi, sorry, da kann ich nicht ganz folgen.

    Du musst erst die Form ermitteln, einen Button erstellen und diesen dann positionieren.

    Form wäre 139 (Auftrag), aber wo und wie muss ich das angeben?

    Und wie erstelle ich dann einen Button?

    0
  • Lothar Hasenkämper

    Hi Sven,

    das sollte gehen.

    string ruleName = pVal.RuleInfo.RuleName.ToString();
    string errorMessage = "Error in Optimizer Rule '" + ruleName + "'";
     
    string buttonUID = "BUID";
    string buttonLable = "Klick mich";
    try
    {
    // Hinzufügen 
    Button button = Button.CreateNew(buttonUID);
    button.SetSizeAndPosition(Button.GetFromUID(pVal.Form, "2"));
    button.Width = 80;
    button.Value = buttonLable;
    button.Left += 80;
     
    pVal.Form.AddItem(button);
    pVal.Form.Update();
     
    //Funktion des Button 
    button.AddHandler_ItemPressed(
    SwissAddonFramework.UI.Components.ModeComponent.FormModes.ALL, 
    null, 
    delegate (SwissAddonFramework.UI.EventHandling.ItemEvents.ItemPressed eventVal)
    {
    MessageBox.Show("Hat geklappt", "OK");
    });
    }
     
    catch(System.Exception ex)
    {
    Debug.WriteMessage(errorMessage + ": " + ex.Message, Debug.DebugLevel.Exception);
    }
    return true;
     
     

    Gruß Lothar

    0
  • Sven Neuelmann

    Mega! Ich danke dir!
    Funktioniert nun genau so, wie ich mir das vorgestellt habe :-)

    Vielleicht noch eine Nebenfrage dbzgl.; kann man eine Optimizer Regel per Tastenkürzel starten? Also zB F4, oder jeglicher anderer Tastenkombi?

    Schönen Tag noch

    0
  • Lothar Hasenkämper

    Moin Sven,

    die F-Tasten sind SAP vorbehalten (öffnen von Fenstern). Ein Tastenkombination oder so habe ich noch nicht gemacht. Das müsste irgendwie mit keypressed gehen als before event.

    So wie hier:
    https://helpdesk.coresystems.ch/hc/en-us/community/posts/360034984153-Text-event-on-main-form 

    Das Forum ist sehr kostbar. Viele Fragen die so mit der Zeit kommen, sind schon gestellt worden. Man muss nur manchmal ein paar Frösche küssen um die "Prinzessin" zu finden

    gruß Lothar

    0
  • Sven Neuelmann

    Moin,

    ich war vorher schon auf der Suche nach der Prinzessin, habe aber nichts passendes gefunden - daher meine Nachfrage hier :-).

    Dein Link klang vielversprechend - ich habe den Beispielcode genommen und in einen neue Regel gepackt, mit dem Evten Typ "Start Up".

    Allerdings erhalte ich, sobald ich diese Regel aktiviere, im Editor die Fehlermeldungen (auch in anderen Regelen ab dann):

    • Der Zugriff auf "Cor_Utility.Global" ist aufgrund der Sicherheitsebene nicht möglich (CS0122)
    • Der Typnae "ItemEventHandler" ist im Typ "COR_Utility.Global" nicht vorhanden, (CS0426)

    Vielleicht interessiert dich die Prizessin ja auch, dann freue ich mich auf weiteren austausch der Frösche.


    Bis dann
    Sven

    0

Please sign in to leave a comment.