Show TOC Anfang des Inhaltsbereichs

Hintergrunddokumentation FormattedTextView Dokument im Navigationsbaum lokalisieren

Dieses Oberflächenelement dient der Ausgabe von formatiertem Text mittels einer einfachen, an XML angelehnten Syntax. Sie können ein FormattedTextView verwenden, um schnell und einfach größere Textabschnitte zu formatieren, beispielsweise eine Einleitung oder Copyright-Informationen. Der Text kann z.B. Links, Bilder und geordnete Listen enthalten.

Das XML-Format des FormattedTextView unterstützt eine XHTML-Untermenge sowie einige SAP-spezifische Tags (siehe Unterstützte Tags). Die XHTML-Tags dürfen keine Attribute enthalten.

Für die Verwendung von FormattedTextView gibt es die Service-Klases CL_WD_FORMATTED_TEXT. Eine Instanz dieser Klasse repräsentiert einen formatierten Text.

Hinweis

Um die Entwicklung barrierefreier Anwendungen zu ermöglichen, wird im Rahmen des Syntaxchecks die Eigenschaft tooltip nicht überprüft.

Ein gesetzter Tooltip ist bei diesem Oberflächenelement nicht zwingend erforderlich, könnte aber – wenn er detaillierte semantische Informationen enthält – durchaus Sinn machen.

 

Laufzeit-Klasse

CL_WD_FORMATTED_TEXT_VIEW

 

Eigenschaften im View Designer

Name

Typ

Anfangswert

Bindbar

id

STRING

(automatisch)

nein

dataSource

Context-Knoten

 

ja

enabled

WDY_BOOLEAN

true

ja

hAlign

WDUI_INPUT_FIELD_ALIGNMENT

auto

ja

text

Übersetzbarer Text

 

ja

textDirection

WDUI_TEXT_DIRECTION

inherit

ja

tooltip

Übersetzbarer Text

 

ja

visible

WDUI_VISIBILITY

visible

ja

 

Events im View Designer

Name

onAction

Hinweis

Weitere Eigenschaften, die über Vererbung zur Verfügung stehen, sind in den dazugehörigen übergeordneten Klassen definiert. Die dazugehörigen Oberflächenelemente sind:

        UIElement

        ViewElement

Dynamische Programmierung

Für die dynamische Programmierung stehen dieselben Eigenschaften, Ereignisse und Aggregationen zur Verfügung wie im View Designer. Beachten Sie dabei die unterschiedlichen Schreibweisen.

Dynamische Programmierung der Eigenschaften

View Designer Name

Laufzeitname

Typ

dataSource

DATA_SOURCE

OBJECT

enabled

ENABLED

WDY_BOOLEAN

hAlign

H_ALIGN

WDUI_INPUT_FIELD_ALIGNMENT

 hAlign: auto

CL_WD_FORMATTED_TEXT_VIEW=>E_H_ALIGN-AUTO

 hAlign: beginOfLine

CL_WD_FORMATTED_TEXT_VIEW=>E_H_ALIGN-BEGIN_OF_LINE

 hAlign: center

CL_WD_FORMATTED_TEXT_VIEW=>E_H_ALIGN-CENTER

 hAlign: endOfLine

CL_WD_FORMATTED_TEXT_VIEW=>E_H_ALIGN-END_OF_LINE

 hAlign: forcedLeft

CL_WD_FORMATTED_TEXT_VIEW=>E_H_ALIGN-FORCED_LEFT

 hAlign: forcedRight

CL_WD_FORMATTED_TEXT_VIEW=>E_H_ALIGN-FORCED_RIGHT

text

TEXT

WDY_MD_TRANSLATABLE_TEXT

textDirection

TEXT_DIRECTION

WDUI_TEXT_DIRECTION

 textDirection: inherit

CL_WD_FORMATTED_TEXT_VIEW=>E_TEXT_DIRECTION-INHERIT

 textDirection: ltr

CL_WD_FORMATTED_TEXT_VIEW=>E_TEXT_DIRECTION-LTR

 textDirection: rtl

CL_WD_FORMATTED_TEXT_VIEW=>E_TEXT_DIRECTION-RTL

tooltip

TOOLTIP

WDY_MD_TRANSLATABLE_TEXT

visible

VISIBLE

WDUI_VISIBILITY

 visible: blank

CL_WD_FORMATTED_TEXT_VIEW=>E_VISIBLE-BLANK

 visible: none

CL_WD_FORMATTED_TEXT_VIEW=>E_VISIBLE-NONE

 visible: visible

CL_WD_FORMATTED_TEXT_VIEW=>E_VISIBLE-VISIBLE

 

Dynamische Programmierung der Ereignisse

View Designer Name

Laufzeitname

onAction

ON_ACTION

 

Konvertierung von SAPscript-Texten in formatierte Texte

Sie können SAPscript-Texte in formatierte Texte konvertieren, indem Sie die statische Methode CL_WD_FORMATTED_TEXT=> CREATE_FROM_SAPSCRIPT aufrufen.

Beispiel

data formatted_text type ref to cl_wd_formatted_text.

" convert from context
formatted_text = cl_wd_formatted_text=> create_from_sapscript(
  sapscript_head  = sapscript_head
  sapscript_lines = sapscript_lines
).

" set it into the context
wd_context->set_attribute(
  name  = my_formatted_text_attr

  value = formatted_text->m_xml_text ).

cl_wd_formatted_text=>write_sapscript_tokens( ).

Beachten Sie, dass nicht alle SAPscript-Eigenschaften und Formate beim FormattedTextView gültig sind. Die folgende Liste ist eine Zusammenstellung darüber, wie SAPscript-Escape-Sequenzen in formatierten Text übersetzt werden.

 

Typ

Subtyp

Ersetzung

Beschreibung

PARAGRAPH_BEGIN

U1

<h1>

U1 Header

PARAGRAPH_BEGIN

U2

<h2>

U2 Header

PARAGRAPH_BEGIN

U3

<h3>

U3 Header

PARAGRAPH_BEGIN

U4

<h4>

U4 Header

PARAGRAPH_BEGIN

U5

<h5>

U5 Header

PARAGRAPH_BEGIN

UT

<h6>

UT Header

PARAGRAPH_BEGIN

AS

<p>

AS Default Paragraph

PARAGRAPH_BEGIN

*

<p>

* Default Paragraph

PARAGRAPH_BEGIN

PE

<pre>

PE Default Paragraph

PARAGRAPH_BEGIN

B1

<ul>

B1 Bullet List Item

PARAGRAPH_BEGIN

B2

<ul>

B2 Bullet List Item (2)

PARAGRAPH_BEGIN

BL

<dd>

BL Bullet / List Comment

PARAGRAPH_BEGIN

D1

<dl>

D1 Definition list

PARAGRAPH_BEGIN

N1

<ol>

N1 Numbered list item

PARAGRAPH_BEGIN

N2

<ol>

N2 Numbered list item (2)

CTAG_BEGIN

AB

<code>

AB ABAP language

CTAG_BEGIN

DS

<acronym>

DS DSYS reference

CTAG_BEGIN

EX

<samp>

EX ABAP example

CTAG_BEGIN

GL

<dfn>

GL glossary reference

CTAG_BEGIN

LB

<kbd>

LB User input

CTAG_BEGIN

LS

<var>

LS screen element

CTAG_BEGIN

NP

<code>

NP fixed width font

CTAG_BEGIN

PF

<strong><kbd>

PF function key

CTAG_BEGIN

SE

<em>

SE SAP expression

CTAG_BEGIN

ZG

 

ZG protected

CTAG_BEGIN

ZH

<strong>

ZH emphasized

CTAG_BEGIN

ZK

<em>

ZK italic

CTAG_BEGIN

ZU

<em>

ZU underlined (not supported!)

CTAG_BEGIN

ZV

 

ZV hidden

COMMENT

 

 

Comment

ELEMENT_BEGIN

 

 

Element

LINE_BEGIN

 

 

Line

STRING

 

 

String

OPTION

 

 

Option -> Not supported (just printed)

SAP_CHAR

 

 

SAPChar -> Not supported (just printed)

TEMPLATE_STRING

 

 

Template String -> Not supported (just printed)

TAB

 

&nbsp;&nbsp;&nbsp; 

Tab (rendered as 4 spaces)

SYMBOL_BEGIN

 

&amp;

Symbol Begin & End

SYMBOL_BEGIN

 

 

Symbol

CTAG_BEGIN

 

 

Comment

PARAGRAPH_BEGIN

 

<p>

Generic paragraph

LTAG_BEGIN

 

 

Link (<a>)

URL_BEGIN

 

 

URL (<a>)

PREFIX_BEGIN

 

 

Prefix -> Not supported (just printed)

SUFFIX_BEGIN

 

 

Suffix -> Not supported (just printed)

COMMAND_BEGIN

 

 

Command -> Not supported (ignored)

TEXT_END

 

 

Text end -> Not supported (ignored)

COMMAND

 

 

Command -> Not supported (just printed)

PARAGRAPH_BEGIN

U1

<h1>

U1 Header

 

Validierung von formatiertem Text

Sie können die Methode VALIDATE für ein formatiertes Text-Objekt aufrufen, um seine Gültigkeit zu überprüfen. Im Fehlerfall wird die Ausnahme CX_WD_GENERAL ausgelöst. Der Fehlertext ist im Attribut MSG der Ausnahme enthalten.

Beispiel

  try.
      formatted_text->validate( ).
    
catch cx_wd_general into ex.
      … ex->msg …

   endtry.

Dynamische Erzeugung von formatiertem Text

Es gibt eine Schnittstelle für die dynamische Erstellung von formatierten Texten.

Hinweis

FORMATTED_TEXT-Parameter benötigen ein Objekt vom Typ CL_WD_FORMATTED_TEXT.

TEXT-Parameter setzen voraus, dass der Text mit Umschaltzeichen für Code-Wechsel versehen ist („escaped text“).

XML_TEXT-Parameter benötigen eine gültig formatierten Text (mit Markups etc.).

Beispiel

  data f1 type ref to cl_wd_formatted_text.
  
data f2 type ref to cl_wd_formatted_text.
  
data f3 type ref to cl_wd_formatted_text.
  
data f  type ref to cl_wd_formatted_text.

  f1 = cl_wd_formatted_text=>make_text(
    inner_text = 
'available' "#EC NOTEXT
    tag        = cl_wd_formatted_text=>e_tag-em
  ).
  f2 = cl_wd_formatted_text=>make_sap_field( name = 
'CONNID' ).
  f2 = cl_wd_formatted_text=>make_text(
    inner_formatted_text = f2
    tag = cl_wd_formatted_text=>e_tag-
code ).
  f3 = cl_wd_formatted_text=>make_sap_field( name = 
'CARRID' ).

  f = cl_wd_formatted_text=>make_text( inner_text = 
'Places &STATE& for flight &CONNID& of line &CARRID&' ). "#EC NOTEXT
  f->replace_placeholder( name = 
'STATE'  formatted_text = f1 ).
  f->replace_placeholder( name = 
'CONNID' formatted_text = f2 ).
  f->replace_placeholder( name = 
'CARRID' formatted_text = f3 ).

  wd_context->set_attribute( name = 
'TEXT' value = f->m_xml_text ).

 

Ergebnis

Places <em>available</em> for flight <code><sap:field name="CONNID"/></code> of line <sap:field name="CARRID"/>

 

Hinweis

Beachten Sie, dass in produktiven Applikationen die Texte „available“ und „Places...“ aus einer übersetzbaren Quelle stammen müssen. Diese Texte sind im vorliegenden Beispiel nur aus Gründen der besseren Lesbarkeit hart kodiert.

Verwenden Sie die Methode REPLACE_PLACEHOLDER, um Platzhalter in formatierten Texten mit einem Text oder einem formatierten Text zu ersetzen. Diese Methode hilft bei der Einbettung von formatiertem Text in „normalen“ Text. Hier besteht außerdem keine Gefahr, das XML durch die Übersetzung zu verfälschen.

Beispiel

Beispiele für dieses Oberflächenelement finden Sie im System in der Web-Dynpro-Applikation WDR_TEST_UI_ELEMENTS und WDR_TEST_MISC.

 

Ende des Inhaltsbereichs