Optimizer - Fenster erzeugen
Frank Romeni
Eine allgemeine Frage:Ist ist über den Optimizer mit C# möglich, ein komplett neues Fenster zu erzeugen (unabhängig von vorhandenen SAP-Formen), daß u.a. einfache Ein-/Ausgabe-Felder (z.B. für Artikelcodes, Datumsangaben, die dann in eine Datenbankabfrage eingehen), eine Tabellendarstellung für Ergebnisse und Berechnungen aus einer Datenbankabfrage und Buttons enthält?
Der C#-Code für dieses Fenster soll dann z.B. über eine Funktionsbutton aus einem SAP-Formular aktiviert werden.
Danke!
Frank Romeni
Michael Egloff
Ja, das ist möglich.Wenn es um eine Darstellung von Daten geht, ist das kein Problem.
Wir raten aber davon ab, eigene Fenster mit Logik mit dem customize zu erstellen. Das Handling, wenn Funktionalitäten auf diesem Form hinterlegt sein müssen, wird schnell kompliziert und schwierig für Fehlersuche.
Frank Romeni
Hallo Michael,Danke soweit.
Ich habe mir da auch noch ein paar Gedanken gemacht. Die C#-Codes, die ich im Optimizer schreibe, sind ja wohl hauptsächlich als EventHandler gedacht, für diverse Ereignisse, die in der Form, der ich eine Regel zuordne, auftauchen können.
Wenn ich nun in diesem Code ein eigenes Fenster erzeuge, will ich ja auch auf Ereignisse in diesem Fenster reagieren, und müßte dann hierzu wiederum EventHandler schreiben ... usw.
Ist mein Verständnis von Coresuite in dieser Hinsicht richtig?
Ich habe, mit meinem ersten groben Verständnis von Coresuite, keine Vorstellung, wie ich so etwas in ordentlicher, objektorientierter Art und Weise dort realisieren könnte.
Aber Du schreibst auch, wenn es um die reine Darstellung von Daten geht sei dies möglich. In erster Linie benötige ich etwas, in das ich in tabellarischer Form (Grid) diverse selbst berechnete Ergebnisse ausgeben kann. Kannst Du eine grobe Richtung hierzu vorgeben?
Und eine andere Idee, falls dies einfacher als ein neues Fenster sein sollte: Kann ich in einem neuen Register einer bestehenden Form (dies ist ja leicht anzulegen) so etwas realisieren?
Wäre heilfroh, wenn Du diese Hilfestellung geben könntest! Wir müssen mit einem nagelneuen Werkzeug (Coresuite) ein ziemlich kompliziertes Kundenprojekt erledigen - deshalb meine vielen Anfragen!
Danke und Gruß
Frank Romeni
Michael Egloff
Hallo Frank,es ist so, dass so ziemlich alles auf Events basiert. Mit dem customize ist es möglich, sich beim Auftreten dieser Events zusätzliche Dinge zu machen.
Auch ein einfaches Fenster erstellen ist möglich.
Objektorientiertheit kannst du aber bei customize vergessen. Der erstellte Code wird in Methoden ausgeführt, neue Klassen kannst du nur als InnerClasses erstellen, was das ganze Handling sehr kompliziert und unverwaltbar macht.
Deshalb mein Rat, beim Wunsch von eigenen Fenster mit Logik, dies mittels AddOn und nicht customize zu machen.
Um Daten in einem Grid darzustellen, kannst du die Methode grid.ExecuteQuery() verwenden. Dabei werden die Daten des Queys direkt im Grid angezeigt.
Anstelle eines eigenen Formulars kannst du natürlich auch dieses Grid in einem neuen Register anzeigen. Die Problem betreffend Logik in dieser Tabelle bleiben aber dieselben, ob du ein neues Fenster oder ein neues Register machst!
Hoffe, das hilft dir ein Bisschen weiter.
Gruss,
Michaeö
0
Please sign in to leave a comment.
Comments
0 comments