Dynamische Texte für Dynproelemente

Benutzeroberflächen in SAP®-Systemen.
14 Beiträge • Seite 1 von 1
14 Beiträge Seite 1 von 1

Dynamische Texte für Dynproelemente

Beitrag von KeinZufall (ForumUser / 7 / 1 / 0 ) »
salve!
ich hoffe ihr könnt mir helfen, nachdem tagelanges google-suchen und sap-debuggen nix gebracht hat....

Ausgangssituation:
Ich habe eine Datenbank, in der ich für jedes Element, welches ich auf irgendwelchen Dynpros hab (sprich textfelder, buttons, aber auch menüs usw.), den text der angezeigt werden soll, hinterlege. Primärschlüssel ist eine Kombination aus Programmname, Dynpronr, Sprache und Elementname.
Alle Texte liegen in verschiedenen sprachen vor.
Dadurch kann ich im PBO eines Dynpros alle Texte zu diesem Dynpro mit der Sprache, mit der man sich angemeldet hat, holen. Ziel dieser Tabelle ist also mehrsprachigkeit der Programme.
Mein wunsch ist folgender:
Der entwickler eines Programms soll im PBO nur noch eine Methode meiner "Text"-Klasse aufrufen müssen. Diese holt sich dann automatisch die dazugehörigen Texte in der richtigen sprache, und beschriftet dann automatisch die Dynproelemente.

Da genau ist mein problem:
wie kann ich jetzt die texte der elemente setzen?!?

Bisher habe ich dynamische texte immer so gemacht:
- z.B. button im ScreenPainter den namen lf_btn geben
- im Programm eine variable lf_btn deklarieren
- diese dann mit dem text füllen, den man halt haben will

Das hat bisher auch wunderbar geklappt, allerdings soll die dynamsiche beschriftung jetzt nicht mehr im Programm, sondern in der Klasse stattfinden. Daher gibt es hier auch keine "verknüpfung" zwischen var_namen und dynproelement.

LOOP AT SCREEN kann ich ja auch nicht verwenden, da man hier keine Texte ändern kann.

Ich kenne aber den Fuba RPY_DYNPRO_READ, daher dachte ich mir, dass es bestimmt auch eine rpy_dynpro_insert oder _update oder so gibt. Eine insert gibt es zwa, die kann ich allerdings nicht verwenden, da sie, wie der name schon sagt, nur neue felder hinzufügen kann, allerdings keine verändern.
Daher jetzt zu meiner eigentlichen Frage:
Gibt es irgendwelche Fuba's, mit den man die Dynproelemente verändern kann?
Diese Fuba's sollen keine neuen Fenster oder sowas öffnen, sondern im hintergrund laufen.

Ich hoffe ich konnt mein problem einigermaßen gut erklären, und das ihr mir helfen könnt.

Grüße,
KeinZufall
Der Klügere gibt nach! Eine traurige Wahrheit, sie begründet die Weltherrschaft der Dummheit.
- Marie von Ebner-Eschenbach

gesponsert
Stellenangebote auf ABAPforum.com schalten
kostenfrei für Ausbildungsberufe und Werksstudenten


Re: Dynamische Texte für Dynproelemente

Beitrag von Unit605 (Expert / 975 / 37 / 93 ) »
Ziel dieser Tabelle ist also mehrsprachigkeit der Programme.
Warum benutzt ihr nicht SAP Standard? SAP ist fuer Mehrsprachigkeit ausgelegt.

Re: Dynamische Texte für Dynproelemente

Beitrag von KeinZufall (ForumUser / 7 / 1 / 0 ) »
weil wir eine schönere und einfacher zu verwendene lösung wollen
Der Klügere gibt nach! Eine traurige Wahrheit, sie begründet die Weltherrschaft der Dummheit.
- Marie von Ebner-Eschenbach

Re: Dynamische Texte für Dynproelemente

Beitrag von ewx (Top Expert / 4849 / 313 / 642 ) »
Meiner Meinung nach tauschst du damit Pest gegen Cholera...

Re: Dynamische Texte für Dynproelemente

Beitrag von casman (Specialist / 420 / 1 / 63 ) »
Also ich muss zugeben, ich verstehe auch nicht ganz, was du damit eigentlich gewinnen willst? Hast du mal ein Beispiel?

Re: Dynamische Texte für Dynproelemente

Beitrag von KeinZufall (ForumUser / 7 / 1 / 0 ) »
Da ich nicht über sinn und unsinn meiner aufgabe diskutieren will, frag ich mal anders:
Kennt irgendwer, irgendwelche Fubas, um Dynproelemente zu verändern(den Text)?
Der Klügere gibt nach! Eine traurige Wahrheit, sie begründet die Weltherrschaft der Dummheit.
- Marie von Ebner-Eschenbach

Re: Dynamische Texte für Dynproelemente

Beitrag von ewx (Top Expert / 4849 / 313 / 642 ) »
KeinZufall hat geschrieben:Da ich nicht über sinn und unsinn meiner aufgabe diskutieren will, frag ich mal anders:
Kennt irgendwer, irgendwelche Fubas, um Dynproelemente zu verändern(den Text)?
In dem Fall wären so manche Diskussionen hier deutlich länger geworden...:)
Das soll aber normalweise weniger die Dikussion über Sinn und Unsinn sein als vielmehr der Hinweis darauf, dass es vielleicht noch bessere Alternativen gibt...

Es gibt die Bausteine SELECTION_TEXTS_MODIFY_DTEL und SELECTION_TEXTS_MODIFY. Die funktionieren allerdings - glaube ich - nur für SELECTION SCREENS. Ich habe mal kurz reingeschaut und glaube auch nicht, dass man das Coding für normale Dynpros verwenden kann. Wäre aber evtl. einen Versuch wert.

Ansonsten gibt es keine syntaktische Verbindung zwischen einem Dynpro und dem Programm, in dem es aufgerufen wird. Du kannst das nutzen und als Dynproelement ZCL_TEXTKLASSE=>FELD01 oder GREF_TEXTKLASSE->FELD01 eintragen und das dann innerhalb deiner Klasse auch füllen...

Re: Dynamische Texte für Dynproelemente

Beitrag von black_adept (Top Expert / 4099 / 128 / 941 ) »
Hallo KeinZufall,

mach doch einfach einen dirty assign - damit sollte das gehen.

Allerdings kann ich ewx Pest-Cholera Statement nur zustimmen.
live long and prosper
Stefan Schmöcker

email: stefan@schmoecker.de

Re: Dynamische Texte für Dynproelemente

Beitrag von KeinZufall (ForumUser / 7 / 1 / 0 ) »
um pest und cholera mal einhalt zu gebieten, sei folgendes gesagt: :)
die von mir beschriebene situation ist nur ein teil eines größeren produkts/programms/wie auch immer.
Betrachtet man das gesamtkonstrukt, macht es durchaus sinn, die texte so zu setzen, wie ich es geplant hab, und nicht den SAP-Standard zu verwenden. Aber das sei jetzt mal dahingestellt.
ewx hat geschrieben: Es gibt die Bausteine SELECTION_TEXTS_MODIFY_DTEL und SELECTION_TEXTS_MODIFY. Die funktionieren allerdings - glaube ich - nur für SELECTION SCREENS. Ich habe mal kurz reingeschaut und glaube auch nicht, dass man das Coding für normale Dynpros verwenden kann. Wäre aber evtl. einen Versuch wert.
Danke für die bausteine, werd sie gleich mal ausprobiern...
black_adept hat geschrieben: mach doch einfach einen dirty assign - damit sollte das gehen.
"dirty assigns" warn mir bis dato nich bekannt, klingen aber durchaus interessant, und würden mein problem unter umständen sogar lösen. Allerdings glaub ich, dass dirty assigns, wie der name schon sagt, nicht unbedingt die schönste lösung sind, und wirklich nur im fall der fälle verwendet werden sollten... Also is das wohl leider eher eine notfallstrategie...
aber was sind denn eig genau die gefahren bei dirty assigns?

mfg
keinzufall
Der Klügere gibt nach! Eine traurige Wahrheit, sie begründet die Weltherrschaft der Dummheit.
- Marie von Ebner-Eschenbach

Re: Dynamische Texte für Dynproelemente

Beitrag von KeinZufall (ForumUser / 7 / 1 / 0 ) »
hab die bausteine jetzt mal ausprobiert, aber wie ewx schon befürchtet hat, funktionieren die leider nicht...
Der Klügere gibt nach! Eine traurige Wahrheit, sie begründet die Weltherrschaft der Dummheit.
- Marie von Ebner-Eschenbach

Re: Dynamische Texte für Dynproelemente

Beitrag von black_adept (Top Expert / 4099 / 128 / 941 ) »
Hi KeinZufall,

Gefahren bei "Dirty assign" sind halt immer, dass man damit Variablen im rufenden Programm ändern kann, und dieses das eigentlich gar nicht mitbekommt bzw. nicht damit rechnet.

Für deinen Fall halte ich das aber für unproblematisch. Du hattest geschrieben, dass du bisher immer eine Variable definiert hattest, die den Beschrifungstext aufgenommen hatte und die dann in deinem Programm irgendwie zu PBO gefüllt hattest.
In der Klasse hingegen ist dir der Bezug zu der Variablen aber jetzt abhanden gekommen und der dirty assign stellt nun genau diesen Bezug wieder her.

Über die Systemvariable SY-CPROG hast du in der Klasse schon mal einen Hinweis darauf, welches Programm die Klasse grade aufruft ( zur Not den Callstack zu Hilfe nehmen, falls du tiefer schachtelst bevor du die Klasse rufst ). Desweiteren hast du ja deine Tabelle mit den zu beschriftenden Dynproelementen (die im Programm ja durch die Beschriftungsvariablen reflektiert werden).

--> etwa so müsste dann das Coding aussehen

Code: Alles auswählen.

  DATA: fieldname TYPE string.
DATA: wa like line of (deineBeschriftungstabelle).
  FIELD-SYMBOLS: <fs> TYPE ANY.

  LOOP AT (deineBeschriftungstabelle) into wa.
    CONCATENATE '(' sy-cprog ')' (wa-beschriftungsvariablenname) INTO fieldname.
    ASSIGN (fieldname) TO <fs>.
    CHECK sy-subrc = 0.
    <fs> = (wa-beschriftungsvariablentext).
  ENDLOOP.

Folgende Benutzer bedankten sich beim Autor black_adept für den Beitrag:
KeinZufall

live long and prosper
Stefan Schmöcker

email: stefan@schmoecker.de

Re: Dynamische Texte für Dynproelemente

Beitrag von casman (Specialist / 420 / 1 / 63 ) »
Wie ewx es bereits gesagt hat, will ich nicht über Sinn und Unsinn diskutieren, sondern eine möglichst passende Lösung für dein Problem vorschlagen. Wenn du das nicht willst, seis drum.

Ein Vorschlag: Setze anstatt des Textes ein Feldsymbol auf den Screen, z.B. <g_text1>. Dann weißt du vor Aufruf deines Dynpros diesem Feldsymbol einfach per ASSIGN einen Text deiner Nachrichtenklasse zu.
Das Feldsymbol muss natürlich als globale Programmvariable existieren.

Re: Dynamische Texte für Dynproelemente

Beitrag von KeinZufall (ForumUser / 7 / 1 / 0 ) »
Hi black_adept,
vielen dank für dein beitrag. klingt eig ganz cool mit den dirty assings...
ich probier das jetzt auf alle fälle mal aus und gib dann nochmal bescheid ;)

mfg
keinzufall
Der Klügere gibt nach! Eine traurige Wahrheit, sie begründet die Weltherrschaft der Dummheit.
- Marie von Ebner-Eschenbach

Re: Dynamische Texte für Dynproelemente

Beitrag von KeinZufall (ForumUser / 7 / 1 / 0 ) »
Wie versprochen melde ich mich nochmal...
Das mit den dirty-assigns hat wunderbar funktioniert.
Wir verwenden das jetzt auch so. Nochmal recht herzlichen dank.

MfG

KeinZufall
Der Klügere gibt nach! Eine traurige Wahrheit, sie begründet die Weltherrschaft der Dummheit.
- Marie von Ebner-Eschenbach

Seite 1 von 1

Vergleichbare Themen

1
Antw.
989
Views
Dynproelemente mit Abap ver�ndern!? Text, Visible, etc ...
von npmd » 27.02.2006 22:11 • Verfasst in ABAP® für Anfänger
17
Antw.
13441
Views
SAPMV45A USEREXIT Itab Pos.Texte / Head Texte
von Luigi91 » 31.01.2014 09:31 • Verfasst in ABAP® für Anfänger
6
Antw.
2855
Views
ALV grid texte
von kostonstyle » 26.02.2007 09:25 • Verfasst in ABAP® für Anfänger
4
Antw.
4497
Views
Texte aus Materialstamm
von Fredi » 02.05.2005 16:22 • Verfasst in ABAP® Core
1
Antw.
1884
Views
PO Texte löschen
von teerock » 24.12.2005 11:00 • Verfasst in Sonstige Module

Aktuelle Forenbeiträge

Regex in where
vor 15 Stunden von tar 8 / 345
Daten an Tabelle binden
Gestern von Bright4.5 3 / 1625
Programm anlegen mit Vorlage
vor 2 Tagen von DeathAndPain 2 / 271
IT0024 Qualifikationen CP-ID
vor 2 Tagen von DeathAndPain 2 / 514

Newsletter Anmeldung

Keine Beiträge verpassen! Wöchentlich versenden wir lesenwerte Beiträge aus unserer Community.
Die letzte Ausgabe findest du hier.
Details zum Versandverfahren und zu Ihren Widerrufsmöglichkeiten findest du in unserer Datenschutzerklärung.

Aktuelle Forenbeiträge

Regex in where
vor 15 Stunden von tar 8 / 345
Daten an Tabelle binden
Gestern von Bright4.5 3 / 1625
Programm anlegen mit Vorlage
vor 2 Tagen von DeathAndPain 2 / 271
IT0024 Qualifikationen CP-ID
vor 2 Tagen von DeathAndPain 2 / 514

Unbeantwortete Forenbeiträge

BUSOBJEKT zu CMIS PHIO ermitteln
vor 2 Tagen von snooga87 1 / 208
aRFC im OO-Kontext
letzen Monat von ralf.wenzel 1 / 3390
Hilfe bei SWEC/SWE2
September 2024 von retsch 1 / 9941