*&---------------------------------------------------------------------*
*& Report  ZSOFTCOPY_R3_46                                             *
*&                                                                     *
*&---------------------------------------------------------------------*
*&                                                                     *
*& This program is free software: you can redistribute it and/or       *
*& modify it under the terms of the GNU General Public License as      *
*& published by the Free Software Foundation, either version 3 of the  *
*& License, or any later version.                                      *
*&                                                                     *
*& This program is distributed in the hope that it will be useful,     *
*& but WITHOUT ANY WARRANTY; without even the implied warranty of      *
*& MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.                *
*& See the GNU General Public License for more details.                *
*&                                                                     *
*& You should have received a copy of the GNU General Public License   *
*& along with this program. If not, see <http://www.gnu.org/licenses/>.*
*&                                                                     *
*&---------------------------------------------------------------------*
*&                                                                     *
*&  Author:     Ruediger von Creytz     ruediger.creytz@globalbit.net  *
*&  Copyright:  globalBIT, LLC          http://www.globalbit.net       *
*&  Version:    20210302                                               *
*&                                                                     *
*&---------------------------------------------------------------------*
REPORT zsoftcopy_r3_46. TYPE-POOLS: abap. TYPES: it_abapsource TYPE
STANDARD TABLE OF abapsource, BEGIN OF st_abaptxt255, line(255) TYPE c,
END OF st_abaptxt255, it_abaptxt255 TYPE STANDARD TABLE OF
st_abaptxt255, BEGIN OF st_access, checked TYPE flag, ddtext TYPE
string, sub TYPE n, END OF st_access, it_access TYPE STANDARD TABLE OF
st_access, BEGIN OF st_attributes, descript TYPE string,
space_after_descript TYPE flag, person_responsible TYPE as4user,
person_responsible_text TYPE ad_namtext, author TYPE bname, author_text
TYPE ad_namtext, date_created TYPE string, bname TYPE bname, name_text
TYPE ad_namtext, date_last_changed TYPE string, time_last_changed TYPE
string, date_last_generation TYPE string, time_last_generation TYPE
string, devclass TYPE devclass, devclass_descr TYPE as4text, laiso TYPE
laiso, sptxt TYPE sptxt, display_appview TYPE flag, appview TYPE
string, is_bsp_appl TYPE flag, internal_name TYPE string, initial_bsp
TYPE string, application_class TYPE string, theme TYPE string, stateful
TYPE flag, supports_portal_integration TYPE flag, display_rfcenable
TYPE flag, rfcenable TYPE flag, application_component TYPE akhkompo,
END OF st_attributes, BEGIN OF st_component, component TYPE dlvunit,
release TYPE saprelease, level TYPE num4, high_package TYPE patch,
desc_text TYPE comp_desc, END OF st_component, it_component TYPE
STANDARD TABLE OF st_component, BEGIN OF st_contflag_range, sign(1)
TYPE c, option(2) TYPE c, low TYPE contflag, high TYPE contflag, END OF
st_contflag_range, it_contflag_range TYPE STANDARD TABLE OF
st_contflag_range, it_d021s TYPE STANDARD TABLE OF d021s, BEGIN OF
st_data_type, domname TYPE domname, domdescr TYPE as4text, datatype
TYPE datatype_d, datadescr TYPE val_text, dataleng TYPE ddleng,
datadeci TYPE decimals, refkind TYPE typekind, reftype(1) TYPE c, END
OF st_data_type, BEGIN OF st_definition_1, datatype TYPE datatype_d,
datadescr TYPE string, dataleng TYPE ddleng, datadeci TYPE decimals,
outputlen TYPE outputlen, convexit TYPE convexit, signflag TYPE
signflag, lowercase TYPE lowercase, END OF st_definition_1, BEGIN OF
st_definition_2, selmethod TYPE selmethod, texttab TYPE selmethtxt,
dialogtype TYPE ddshdiatyp, hotkey TYPE ddshhotkey, selmexit TYPE
ddshselext, END OF st_definition_2, BEGIN OF st_deliv_maint,
display_cont TYPE flag, contflag TYPE contflag, contflag_text TYPE
string, display_main TYPE flag, mainflag_text TYPE string, sqltab TYPE
sqlappdtab, END OF st_deliv_maint, BEGIN OF st_dom_value, text TYPE
val_text, value TYPE domvalue_l, END OF st_dom_value, it_dom_value TYPE
STANDARD TABLE OF st_dom_value, BEGIN OF st_dynpro_function_new,
type(1) TYPE c, code TYPE tcode, END OF st_dynpro_function_new, BEGIN
OF st_dynpro_function_old, code(4) TYPE c, type(1) TYPE c, END OF
st_dynpro_function_old, BEGIN OF st_dynpro_name, prog LIKE d020s-prog,
dnum LIKE d020s-dnum, END OF st_dynpro_name, BEGIN OF
st_dynpro_release, rel(1) TYPE c, dot(1) TYPE c, version(2) TYPE c, END
OF st_dynpro_release, it_feld TYPE STANDARD TABLE OF feld, BEGIN OF
st_feld_redef, dropdown TYPE string, fobl TYPE string, END OF
st_feld_redef, it_feld_redef TYPE STANDARD TABLE OF st_feld_redef,
BEGIN OF st_field_label, scrlen_s TYPE scrlen_s, scrtext_s TYPE
scrtext_s, scrlen_m TYPE scrlen_m, scrtext_m TYPE scrtext_m, scrlen_l
TYPE scrlen_l, scrtext_l TYPE scrtext_l, headlen TYPE headlen, reptext
TYPE reptext, END OF st_field_label, BEGIN OF st_further_char, shlpname
TYPE shlpname, shlpfield TYPE shlpfield, memoryid TYPE memoryid,
deffdname TYPE deffdname, logflag TYPE logflag, END OF st_further_char,
st_guid(32) TYPE c, it_guid TYPE STANDARD TABLE OF st_guid, BEGIN OF
st_init_access, info1 TYPE string, info2 TYPE string, occurs(5) TYPE n,
unknown TYPE flag, END OF st_init_access, BEGIN OF st_join_conditions,
tabname_l TYPE tabname, fieldname_l TYPE fieldname, operator TYPE
string, tabname_r TYPE tabname, fieldname_r TYPE fieldname, END OF
st_join_conditions, it_join_conditions TYPE STANDARD TABLE OF
st_join_conditions, BEGIN OF st_key, info TYPE string, END OF st_key,
BEGIN OF st_last_logon, date TYPE sydatum, time TYPE syuzeit, date_now
TYPE sydatum, time_now TYPE syuzeit, END OF st_last_logon, BEGIN OF
st_line, line(255) TYPE c, END OF st_line, it_line TYPE STANDARD TABLE
OF st_line, BEGIN OF st_line_type, info TYPE string, rowkind TYPE
string, rowtype TYPE string, rowdescr TYPE string, datatype TYPE
datatype_d, dataleng TYPE ddleng, datadeci TYPE decimals, reftype(1)
TYPE c, refdescr TYPE string, range_ctyp TYPE string, ctdatatype TYPE
datatype_d, ctleng TYPE ddleng, ctdecimals TYPE decimals, END OF
st_line_type, BEGIN OF st_link, descript TYPE as4text, title TYPE
string, href TYPE string, onclick TYPE string, END OF st_link, it_link
TYPE STANDARD TABLE OF st_link, BEGIN OF st_mime, key(4096) TYPE c,
name(4096) TYPE c, mimetype(128) TYPE c, mimetype_descript(64) TYPE c,
objtype TYPE c, class(10) TYPE c, objid(32) TYPE c, END OF st_mime,
it_mime TYPE STANDARD TABLE OF st_mime, BEGIN OF st_o2class_filter,
re_class(10) TYPE c, prtn_class(10) TYPE c, END OF st_o2class_filter,
it_o2class_filter TYPE STANDARD TABLE OF st_o2class_filter, BEGIN OF
st_o2content_ascii, line TYPE sdok_sdat, END OF st_o2content_ascii,
it_o2content_ascii TYPE STANDARD TABLE OF st_o2content_ascii, BEGIN OF
st_o2content_binary, line TYPE sdok_sdatx, END OF st_o2content_binary,
it_o2content_binary TYPE STANDARD TABLE OF st_o2content_binary, BEGIN
OF st_o2file_info, file_size(12) TYPE n, binary_flg(1) TYPE c,
first_line(12) TYPE n, last_line(12) TYPE n, file_name(255) TYPE c,
mimetype(128) TYPE c, property(4) TYPE c, END OF st_o2file_info,
it_o2file_info TYPE STANDARD TABLE OF st_o2file_info, BEGIN OF
st_o2navigation, start(70) TYPE c, navrequest(30) TYPE c, target(70)
TYPE c, END OF st_o2navigation, it_o2navigation TYPE STANDARD TABLE OF
st_o2navigation, BEGIN OF st_o2pageattr, aliasname(30) TYPE c,
pardecltyp(1) TYPE n, typtype(1) TYPE n, type TYPE rs38l_typ, text(60)
TYPE c, pardecltyp_flag TYPE flag, typtype_txt TYPE string, END OF
st_o2pageattr, it_o2pageattr TYPE STANDARD TABLE OF st_o2pageattr,
BEGIN OF st_o2pageline, line TYPE char255, END OF st_o2pageline,
it_o2pageline TYPE STANDARD TABLE OF st_o2pageline, BEGIN OF
st_o2pagpars, applname(30) TYPE c, pagekey(70) TYPE c, compname(30)
TYPE c, version TYPE r3state, pardecltyp(1) TYPE n, typtype(1) TYPE n,
type(132) TYPE c, aliasname(30) TYPE c, parvalue(132) TYPE c, text(60)
TYPE c, mark TYPE c, END OF st_o2pagpars, it_o2pagpars TYPE STANDARD
TABLE OF st_o2pagpars, BEGIN OF st_o2relation, objtype(1) TYPE c,
reio_id(32) TYPE c, re_class(10) TYPE c, prtn_id(32) TYPE c,
prtn_class(10) TYPE c, END OF st_o2relation, it_o2relation TYPE
STANDARD TABLE OF st_o2relation, BEGIN OF st_o2tagatt, attid(30) TYPE
c, required TYPE flag, rtexpr TYPE flag, byref TYPE flag, typtype_txt
TYPE string, type(132) TYPE c, defval(30) TYPE c, bindable TYPE flag,
descript(60) TYPE c, END OF st_o2tagatt, it_o2tagatt TYPE STANDARD
TABLE OF st_o2tagatt, BEGIN OF st_pack_intf, intf_name TYPE scomifnam,
forsys TYPE as4text, descript TYPE as4text, END OF st_pack_intf,
it_pack_intf TYPE STANDARD TABLE OF st_pack_intf, BEGIN OF
st_pack_perm, pack_name TYPE packname, intf_name TYPE scomifnam,
err_sever TYPE as4text, END OF st_pack_perm, it_pack_perm TYPE STANDARD
TABLE OF st_pack_perm, BEGIN OF st_pack_sub, devclass TYPE packname,
ctext TYPE as4text, END OF st_pack_sub, it_pack_sub TYPE STANDARD TABLE
OF st_pack_sub, BEGIN OF st_parameter, name TYPE string, typing TYPE
string, structure TYPE string, defvalue TYPE string, optional TYPE
flag, passvalue TYPE flag, stext TYPE string, ltext TYPE string,
ltext_onclick TYPE string, ltext_doku_obj TYPE doku_obj, END OF
st_parameter, it_parameter TYPE STANDARD TABLE OF st_parameter, BEGIN
OF st_prop, name(5) TYPE c, value(40) TYPE c, END OF st_prop, it_prop
TYPE STANDARD TABLE OF st_prop, BEGIN OF st_properties, superclass TYPE
seoclsref, check_model_inh TYPE seostatf1c, descript TYPE seodescr,
creatable TYPE ddtext, clsfinal TYPE seofinal, END OF st_properties,
BEGIN OF st_ref_seoalias, cpdname TYPE seocpdname, cmptype TYPE
seocmptype, type TYPE string, refcmpname TYPE seocmpname, exposure TYPE
string, owner TYPE seoclsname, END OF st_ref_seoalias, it_ref_seoalias
TYPE STANDARD TABLE OF st_ref_seoalias, BEGIN OF st_ref_seoattrib,
cpdname TYPE seocpdname, inherited TYPE flag, exposure TYPE string,
check_model TYPE flag, decltype TYPE string, attrdonly TYPE seordonly,
typtype TYPE string, type TYPE rs38l_typ, onclick TYPE string, typelink
TYPE string, descript TYPE seodescr, attvalue TYPE seovalue, owner TYPE
seoclsname, END OF st_ref_seoattrib, it_ref_seoattrib TYPE STANDARD
TABLE OF st_ref_seoattrib, BEGIN OF st_ref_seoevent, cpdname TYPE
seocpdname, inherited TYPE flag, type TYPE string, exposure TYPE
string, check_model TYPE flag, descript TYPE seodescr, owner TYPE
seoclsname, END OF st_ref_seoevent, it_ref_seoevent TYPE STANDARD TABLE
OF st_ref_seoevent, BEGIN OF st_ref_seofriends, refclsname TYPE
seoclsname, check_model TYPE boolean, descript TYPE seodescr, END OF
st_ref_seofriends, it_ref_seofriends TYPE STANDARD TABLE OF
st_ref_seofriends, BEGIN OF st_ref_seointerface, refclsname TYPE
seoclsname, hierlevel TYPE i, inherited TYPE flag, impfinal TYPE flag,
impabstrct TYPE flag, check_model TYPE flag, descript TYPE seodescr,
owner TYPE seoclsname, END OF st_ref_seointerface, it_ref_seointerface
TYPE STANDARD TABLE OF st_ref_seointerface, BEGIN OF st_ref_seomethod,
cpdname TYPE seocpdname, inherited TYPE flag, active TYPE string,
onclick TYPE string, redefin TYPE flag, type TYPE string, exposure TYPE
string, check_model TYPE flag, methodtype TYPE string, descript TYPE
seodescr, owner TYPE seoclsname, END OF st_ref_seomethod,
it_ref_seomethod TYPE STANDARD TABLE OF st_ref_seomethod, BEGIN OF
st_ref_seosignature, declaration TYPE string, parameter TYPE string,
type TYPE string, descript TYPE string, END OF st_ref_seosignature,
it_ref_seosignature TYPE STANDARD TABLE OF st_ref_seosignature, BEGIN
OF st_ref_seotype, cpdname TYPE seocpdname, inherited TYPE flag,
typtype TYPE string, type TYPE rs38l_typ, exposure TYPE string,
check_model TYPE flag, onclick TYPE string, typelink TYPE string,
descript TYPE seodescr, owner TYPE seoclsname, END OF st_ref_seotype,
it_ref_seotype TYPE STANDARD TABLE OF st_ref_seotype, BEGIN OF
st_seo_super_class, clsname TYPE seoclsname, hierlevel TYPE i, END OF
st_seo_super_class, it_seo_super_class TYPE STANDARD TABLE OF
st_seo_super_class, BEGIN OF st_skwf_error, id(20) TYPE c, type TYPE c,
no(3) TYPE n, v1(50) TYPE c, v2(50) TYPE c, v3(50) TYPE c, v4(50) TYPE
c, END OF st_skwf_error, BEGIN OF st_skwf_io, objtype TYPE c, class(10)
TYPE c, objid(32) TYPE c, END OF st_skwf_io, it_skwf_io TYPE STANDARD
TABLE OF st_skwf_io, it_string TYPE STANDARD TABLE OF string, BEGIN OF
st_t100ext, name TYPE syuname, name_text TYPE ad_namtext, datum TYPE
sydatum, datum_text TYPE string, object_name TYPE doku_obj, selfdef
TYPE doku_selfd, no_docu TYPE flag, ltext TYPE string, ltext_onclick
TYPE string, END OF st_t100ext, it_t100ext TYPE STANDARD TABLE OF
st_t100ext, BEGIN OF st_table_structure, id TYPE char10, row_nr(3) TYPE
n, fieldname TYPE fieldname, title_elem TYPE fieldname, link_row TYPE
fieldname, row_def TYPE char1, colored_row TYPE fieldname, comparator
TYPE char2, comp_value TYPE char30, title TYPE as4text, END OF
st_table_structure, it_table_structure TYPE STANDARD TABLE OF
st_table_structure, BEGIN OF st_tables, primary TYPE flag, tabname TYPE
tabname, enqmode TYPE string, END OF st_tables, it_tables TYPE STANDARD
TABLE OF st_tables, BEGIN OF st_tabname, tabname TYPE tabname, END OF
st_tabname, it_tabname TYPE STANDARD TABLE OF st_tabname, BEGIN OF
st_tabstrip, form TYPE fieldname, id(100) TYPE c, parent_id(100) TYPE
c, tab_nr(2) TYPE n, firstrow TYPE flag, active_order(1) TYPE n,
text_elem TYPE char30, comparator TYPE char2, comp_value TYPE char30,
active TYPE flag, disabled TYPE flag, hidden TYPE flag, empty TYPE
flag, text TYPE as4text, END OF st_tabstrip, it_tabstrip TYPE STANDARD
TABLE OF st_tabstrip, BEGIN OF st_text_element, fieldname TYPE
fieldname, txt_prefix TYPE char30, dtel_rollname TYPE rollname,
dtel_field TYPE c, domname TYPE char30, domvalue(10) TYPE c, icon_id
TYPE icon_d, icon_field TYPE c, conc_v1 TYPE fieldname, conc_copula(20)
TYPE c, conc_v2 TYPE fieldname, conc_sep_space TYPE flag, msg_id(20)
TYPE c, msg_nr(3) TYPE n, msg_v1 TYPE fieldname, msg_v2 TYPE fieldname,
msg_v3 TYPE fieldname, msg_v4 TYPE fieldname, is_set TYPE flag, END OF
st_text_element, it_text_element TYPE STANDARD TABLE OF
st_text_element, BEGIN OF st_text_element_t, fieldname TYPE fieldname,
spras TYPE spras, text TYPE as4text, END OF st_text_element_t,
it_text_element_t TYPE STANDARD TABLE OF st_text_element_t, BEGIN OF
st_textinput, space TYPE flag, name TYPE string, name_suffix TYPE
string, no_name TYPE flag, value TYPE string, value_text TYPE string,
value_double_length TYPE flag, value_ext TYPE string, value_ext_space
TYPE flag, value_ext_text TYPE string, description TYPE string, flag
TYPE flag, input TYPE flag, has_value_ext TYPE flag, flag_col TYPE i,
END OF st_textinput, it_textinput TYPE STANDARD TABLE OF st_textinput,
it_textpool TYPE STANDARD TABLE OF textpool, BEGIN OF
st_textpool_addons, entry TYPE textpooltx, strlen TYPE i, dict_ref TYPE
flag, END OF st_textpool_addons, it_textpool_addons TYPE STANDARD TABLE
OF st_textpool_addons, it_seotypepls TYPE STANDARD TABLE OF seotypepls,
BEGIN OF st_transaction, ttype TYPE c, ttext TYPE ttext_stct, classname
TYPE seoclsname, method TYPE seocpdname, pgmna TYPE program_id, dypno
TYPE dynpronr, repo_vari TYPE raldb_vari, objct TYPE xuobject, trframe
TYPE eusel_frm, local TYPE eusel_loc, ind_vari TYPE tv_flag_ci,
trans_var TYPE eu_trans_v, def_call_tcode TYPE tcode, def_skip_1 TYPE
eusel_skip, clf_inhe TYPE s_gui_inhe, clf_ewt TYPE s_ewt, clf_profi
TYPE s_prof, clf_pervas TYPE s_pervas, clf_service TYPE iacservic_,
variant TYPE tcvariant, END OF st_transaction, BEGIN OF
st_transaction_para, para_field TYPE eu_para_fn, para_value TYPE
eu_para_vl, END OF st_transaction_para, it_transaction_para TYPE
STANDARD TABLE OF st_transaction_para, BEGIN OF st_value_range,
domvalue_l TYPE domvalue_l, domvalue_h TYPE domvalue_h, ddtext TYPE
ddtext, END OF st_value_range, it_value_range TYPE STANDARD TABLE OF
st_value_range, BEGIN OF st_varid, report TYPE vari_reprt, vari TYPE
variant, END OF st_varid, it_varid TYPE STANDARD TABLE OF st_varid,
BEGIN OF st_variant, program TYPE syrepid, variant TYPE syslset,
selname TYPE rsscr_name, text TYPE sychar30, kind TYPE string, sign
TYPE string, option TYPE string, low TYPE tvarv_val, high TYPE
tvarv_val, END OF st_variant, it_variant TYPE STANDARD TABLE OF
st_variant, BEGIN OF st_version_info, type(21) TYPE c, value(59) TYPE
c, END OF st_version_info, it_version_info TYPE TABLE OF
st_version_info, BEGIN OF st_zdd03p_ext, shlporigin_f TYPE flag,
shlporigin_p TYPE flag, shlporigin_ddtext TYPE string, END OF
st_zdd03p_ext, it_zdd03p_ext TYPE STANDARD TABLE OF st_zdd03p_ext,
BEGIN OF st_zseomethod, pgmid TYPE pgmid, object TYPE trobjtype,
devclass TYPE devclass, clsname TYPE seoclsname, cpdname TYPE
seocpdname, active TYPE string, downloaded TYPE flag, subrc TYPE
sysubrc, END OF st_zseomethod, it_zseomethod TYPE STANDARD TABLE OF
st_zseomethod, BEGIN OF st_ztadir, pgmid TYPE pgmid, object TYPE
trobjtype, subc TYPE subc, obj_name TYPE sobj_name, devclass TYPE
devclass, progname TYPE progname, futype TYPE char1, funcname TYPE
rs38l_fnam, o2type TYPE char1, o2name TYPE string, o2pagekey TYPE
string, o2pagename TYPE string, mime_objtype TYPE c, mime_class(10)
TYPE c, mime_objid(32) TYPE c, dynpronr TYPE dynpronr, descript TYPE
string, tabclass TYPE tabclass, aggtype TYPE aggtype, masterlang TYPE
masterlang, downloaded TYPE flag, subrc TYPE sysubrc, END OF st_ztadir,
it_ztadir TYPE STANDARD TABLE OF st_ztadir. constants gc_version type
sydatum value '20210302'. data: TPT_DDIC_DOMA type string,
TPT_DDIC_DTEL type string, TPT_DDIC_ENQU type string, TPT_DDIC_SHLP
type string, TPT_DDIC_STRU type string, TPT_DDIC_TABL type string,
TPT_DDIC_TTYP type string, TPT_DDIC_TYPE type string, TPT_DDIC_VIEW
type string, TPT_FUGR_FUBA type string, TPT_FUGR_FUGR type string,
TPT_FUGR_INCL type string, TPT_FUGR_SCR type string, TPT_MSAG type
string, TPT_O2_WAPA type string, TPT_O2_WAPA_CTRL type string,
TPT_O2_WAPA_PAGE type string, TPT_O2_WTAG type string, TPT_O2_XSLT type
string, TPT_PACK_DEVC type string, TPT_PARA type string, TPT_PROG_INCL
type string, TPT_PROG_REPO type string, TPT_SEO_CLAS type string,
TPT_SEO_INTF type string, TPT_TOBJ type string, TPT_TRAN type string,
TPT_TRAN_DIALOG type string, TPT_TRAN_OBJ type string, TPT_TRAN_PARAM
type string, TPT_TRAN_REPO type string, TPT_TRAN_VARI type string,
TXTT_BSP_EXTENSION_NAME_VALUE type string, TXTT_CLASS_NAME_VALUE type
string, TXTT_CONTEXT_MENU_FORM_ON_CTME type string,
TXTT_CONTROLLER_OF_NAME_VALUE type string, TXTT_CURRENCY_QUANTITY_FIELD
type string, TXTT_ENTRY_HELP_CHECK type string, TXTT_INCLUDE_NAME_VALUE
type string, TXTT_INTERFACE_NAME_VALUE type string, TXTT_LINES_COLUMNS
type string, TXTT_PAGE_NAME_VALUE type string, TXTT_REPORT_NAME_VALUE
type string, TXTT_SCREEN_FOR_NAME_VALUE type string,
TXTT_TABLES_JOIN_CONDITIONS type string, TXTT_TRANSFORMATION_NAME_VALUE
type string, TXTT_TYPE_GROUP_OBJECT_TYPE type string,
TXTT_UNICODE_CHECKS_ACTIVE type string, TXT_2_DIMENSIONAL type string,
TXT_ABAP_LOAD type string, TXT_ABOUT type string, TXT_ABSTRACT type
string, TXT_ACCESS type string, TXT_ACCESS_TYPE_IS_GIVEN_FOR_A type
string, TXT_ACTIVATED type string, TXT_ACTIVE___1 type string,
TXT_ACTIVE___2 type string, TXT_ACTIVITIES type string, TXT_ACTIVITY
type string, TXT_ALIAS type string, TXT_ALIASES type string,
TXT_ALLOWED_OBJECT_TYPES type string, TXT_ALLOW_RFC type string,
TXT_ALL_RIGHTS_RESERVED type string, TXT_AND_OR type string,
TXT_APPENDING_VIEW type string, TXT_APPLICATION type string,
TXT_APPLICATION_CLASS type string, TXT_APPLICATION_COMPONENT type
string, TXT_ASSIGNED_ERROR_PAGE type string, TXT_ASSOCIATED_TYPE type
string, TXT_ASSOCIATED_TYPE_FOR_LOW_HI type string, TXT_AS_LABEL_LEFT
type string, TXT_AS_LABEL_RIGHT type string, TXT_ATTRIBUTE type string,
TXT_ATTRIBUTES___1 type string, TXT_ATTRIBUTES___2 type string,
TXT_AUTHORIZATION_FIELDS type string, TXT_AUTHORIZATION_GROUP type
string, TXT_AUTHORIZATION_OBJECT___1 type string,
TXT_AUTHORIZATION_OBJECT___2 type string, TXT_AUTO type string,
TXT_AUTOR type string, TXT_BINDABLE type string, TXT_BLANK type string,
TXT_BRG type string, TXT_BROWSER_CACHE type string,
TXT_BROWSER_SPECIFIC type string, TXT_BSP_APPLICATION type string,
TXT_BSP_APPLICATIONS type string, TXT_BSP_ELEMENT type string,
TXT_BSP_ELEMENTS_AND_STATIC_HT type string, TXT_BSP_ELEMENTS_ONLY type
string, TXT_BSP_ELEMENT_BASIS_CLASS type string, TXT_BSP_EXTENSION type
string, TXT_BSP_EXTENSIONS type string, TXT_BSP_EXTENSION_CLASS type
string, TXT_BSP_LIBRARY type string, TXT_BUFFERING type string,
TXT_BUFFERING_TYPE type string, TXT_BUILT_IN_TYPE type string,
TXT_CACHING type string, TXT_CALL_BY_REF type string, TXT_CATEGORY type
string, TXT_CHANGED_ON type string, TXT_CHANGES_ARE_RECORDED type
string, TXT_CHANGE_DOCUMENT type string, TXT_CHANGING type string,
TXT_CHECK type string, TXT_CHECK_TABLE type string, TXT_CLASS type
string, TXT_CLASSES type string, TXT_CLASSIFICATION type string,
TXT_CLASS_DOCUMENTATION type string, TXT_CLASS_LIBRARY type string,
TXT_CLASS_NAME type string, TXT_CLIENT type string, TXT_CLUSTER_TABLE
type string, TXT_COLL_RUN type string, TXT_COLUMN type string,
TXT_COLUMNS type string, TXT_COLUMN_HEADING type string,
TXT_COMPARE_FLAG type string, TXT_COMPARISON_VALUE type string,
TXT_COMPILATION type string, TXT_COMPLETE type string, TXT_COMPLETED
type string, TXT_COMPONENT type string, TXT_COMPONENTS type string,
TXT_COMPONENT_INFORMATION type string, TXT_COMPONENT_TYPE type string,
TXT_COMPONENT_VERSION type string, TXT_COMPRESSED type string,
TXT_COMPRESSION type string, TXT_CONTEXT_MENU type string,
TXT_CONTROLLER type string, TXT_CONTROLLER_CLASS type string,
TXT_CONTROL_COMPOSITE_NAME type string, TXT_CONVERSION_EXIT type
string, TXT_CONVERSION_FOR_AUTHORIZATI type string, TXT_CONVERS_ROUTINE
type string, TXT_CREATED type string, TXT_CREATED_BY___1 type string,
TXT_CREATED_BY___2 type string, TXT_CREATED_ON type string,
TXT_CREATE_STATEMENT type string, TXT_CREATION_DATE type string,
TXT_CROSS_CLIENT type string, TXT_CUA_LOAD type string, TXT_CURRENCY
type string, TXT_CURSOR_POSITION type string, TXT_DATABASE_CONTENT type
string, TXT_DATABASE_DATA type string, TXT_DATABASE_INFORMATION type
string, TXT_DATABASE_SYSTEM type string, TXT_DATABASE_TABLES type
string, TXT_DATA_BROWSER_TABLE_VIEW_MA type string, TXT_DATA_CLASS type
string, TXT_DATA_COLLECTION type string, TXT_DATA_ELEM type string,
TXT_DATA_ELEMENTS type string, TXT_DATA_ELEMENT___1 type string,
TXT_DATA_ELEMENT___2 type string, TXT_DATA_TYPE type string,
TXT_DBSL_PATCH_LEVEL type string, TXT_DBSL_VERSION type string,
TXT_DB_CLIENT_LIB type string, TXT_DB_RELEASES type string,
TXT_DECIMAL_PLACES___M type string, TXT_DECIMAL_PLACES___T type string,
TXT_DEFAULTS type string, TXT_DEFAULT_COMPONENT_NAME type string,
TXT_DEFAULT_PREFIX type string, TXT_DEFAULT_VALUES type string,
TXT_DEFAULT_VALUES_FOR type string, TXT_DEFAULT_VALUE___1 type string,
TXT_DEFAULT_VALUE___2 type string, TXT_DEFINITION type string,
TXT_DEFLG type string, TXT_DELIVERY_AND_MAINTENANCE type string,
TXT_DELIVERY_CLASS type string, TXT_DELTA_HANDLING type string,
TXT_DESCRIPTION type string, TXT_DESELECT_ALL type string,
TXT_DFLT_VALUE type string, TXT_DIALOG_BEHAVIOR type string,
TXT_DIALOG_DATA_TRANSPORT_DETA type string, TXT_DIALOG_TRANSACTION type
string, TXT_DIALOG_TYPE type string, TXT_DICTIONARY_REFERENCE type
string, TXT_DICT_FIELD type string, TXT_DICT_MODIFIED type string,
TXT_DICT_OBJS type string, TXT_DIRECTORY type string, TXT_DISABLED type
string, TXT_DISPLAY type string, TXT_DISPLAY_ATTR type string, TXT_DLEN
type string, TXT_DOCUMENTATION type string, TXT_DOMAIN type string,
TXT_DOMAINS type string, TXT_DROPDOWN type string, TXT_DTYP type
string, TXT_DYNAMIC_CONTEXT_MENU type string, TXT_DYNAMIC_VALUE_ALLOWED
type string, TXT_EASY_WEB_TRANSACTION type string, TXT_EDITOR_LOCK type
string, TXT_EDIT_LOCK type string, TXT_ELEMENTARY_SRCH_HLP type string,
TXT_ELEMENTARY_TYPE type string, TXT_ELEMENT_CONTENT type string,
TXT_ELEMENT_HANDLER_CLASS type string, TXT_ELEMENT_INTERPRETS_CONTENT
type string, TXT_ELEMENT_LIST type string, TXT_EMPTY_TAB type string,
TXT_ENHANCEMENT_CATEGORY type string, TXT_ENHANCEMENT_CATEGORY_FOR_S
type string, TXT_ENTER_A_PACKAGE type string, TXT_ENTRY type string,
TXT_ENTRY_HELP type string, TXT_EQ type string, TXT_ERROR_HANDLING type
string, TXT_ERROR_SEVERITY type string, TXT_EVENT type string,
TXT_EVENTS type string, TXT_EVENT_HANDLER type string, TXT_EXCEPTIONS
type string, TXT_EXCEPTION___1 type string, TXT_EXCEPTION___2 type
string, TXT_EXCLUSIVE type string, TXT_EXP type string, TXT_EXPORT type
string, TXT_FIELD type string, TXT_FIELDS type string, TXT_FIELD_LABEL
type string, TXT_FIELD_NAME type string, TXT_FINAL type string,
TXT_FIRST_PAGE type string, TXT_FIXED_FONT type string,
TXT_FIXED_POINT_ARITHMETIC type string, TXT_FIX_VAL type string,
TXT_FLOW_LOGIC type string, TXT_FOREIGN_KEY type string,
TXT_FOREIGN_SOURCE_SYSTEM type string, TXT_FORMAT type string,
TXT_FORMATTING type string, TXT_FORWARD_DECLARATIONS type string,
TXT_FRAMESET type string, TXT_FRIENDS type string, TXT_FROM_MODULE_POOL
type string, TXT_FULLY_BUFFERED type string, TXT_FUNCTIONAL_TYPE type
string, TXT_FUNCTION_CODE type string, TXT_FUNCTION_GROUP type string,
TXT_FUNCTION_GROUPS type string, TXT_FUNCTION_GROUP_DOC type string,
TXT_FUNCTION_MODULE type string, TXT_FUNCTION_MODULES type string,
TXT_FUNCTION_MODULE_DOCUMENTAT type string, TXT_FURTHER_CHARACTERISTICS
type string, TXT_FURTHER_OPTIONS type string, TXT_GENERAL_ATTR type
string, TXT_GENERAL_DATA type string, TXT_GENERIC_AREA_BUFFERED type
string, TXT_GET_PARAMETER type string, TXT_GLOBAL type string,
TXT_GROUP type string, TXT_GROUP_1 type string, TXT_GROUP_2 type
string, TXT_GROUP_3 type string, TXT_GROUP_4 type string,
TXT_GUI_STATUS type string, TXT_GUI_SUPPORT type string, TXT_HEADING
type string, TXT_HEIGHT type string, TXT_HELP type string, TXT_HIDDEN
type string, TXT_HIERARCHY type string, TXT_HIGHEST_SUPPORT_PACKAGE
type string, TXT_HOLD_DATA type string, TXT_HOLD_SCROLL_POSITION type
string, TXT_HOST type string, TXT_HOST_DATA type string, TXT_HOT_KEY
type string, TXT_HTTPS type string, TXT_ICON type string, TXT_ICON_NAME
type string, TXT_ICON_TEXT type string, TXT_IMMEDIATE_START_NO_RESTART
type string, TXT_IMP type string, TXT_IMPLEMENTATION type string,
TXT_IMPLEMENTED_ACTIVE type string, TXT_IMPORT type string,
TXT_INACTIVE type string, TXT_INCLUDE type string, TXT_INCLUDES type
string, TXT_INCLUDE_NAME type string, TXT_INCLUSIVE type string,
TXT_INFO type string, TXT_INFORMATION type string,
TXT_INHERIT_GUI_ATTRIBUTES type string, TXT_INITIALIZATION_AND_ACCESS
type string, TXT_INITIAL_BSP type string, TXT_INITIAL_LINE_NUMBER type
string, TXT_INITIAL_VALUE type string, TXT_INITIAL_VALUES type string,
TXT_INPUT type string, TXT_INSTALLATION_NUMBER type string,
TXT_INSTANTIATION type string, TXT_INTERFACE type string,
TXT_INTERFACES type string, TXT_INTERFACE_COMPONENT type string,
TXT_INTERFACE_DOCUMENTATION type string, TXT_INTERNALLY_RELEASED_ON
type string, TXT_INTERNAL_NAME type string, TXT_INTERVALS type string,
TXT_INVISIBLE type string, TXT_IP_ADDRESS type string,
TXT_IS_ERROR_PAGE type string, TXT_ITERATION_OVER_ELEMENT_CON type
string, TXT_JOIN_CONDITIONS type string, TXT_KERNEL_INFORMATION___1
type string, TXT_KERNEL_INFORMATION___2 type string, TXT_KERNEL_RELEASE
type string, TXT_KEY type string, TXT_KEY_ATTRIBUTE_DEFINED_FOR1 type
string, TXT_KEY_ATTRIBUTE_DEFINED_FOR2 type string, TXT_KEY_CATEGORY
type string, TXT_KEY_COMPONENTS type string, TXT_KEY_DEFINITION type
string, TXT_KEY___KEY type string, TXT_LANGUAGE type string,
TXT_LAST_CHANGED type string, TXT_LAST_CHANGED_AT type string,
TXT_LAST_CHANGED_BY___1 type string, TXT_LAST_CHANGED_BY___2 type
string, TXT_LAST_CHANGED_BY___3 type string, TXT_LAST_CHANGED_ON type
string, TXT_LAST_CHANGED_ON_BY type string, TXT_LAST_GENERATION type
string, TXT_LAYOUT type string, TXT_LEADING_ZEROS type string,
TXT_LENGTH type string, TXT_LEVEL type string, TXT_LICENSE_EXPIRATION
type string, TXT_LIFETIME type string, TXT_LINE type string, TXT_LINES
type string, TXT_LINE_TYPE type string, TXT_LIST_HEADER type string,
TXT_LIST_HEADINGS type string, TXT_LOCAL_IN_PROGRAM type string,
TXT_LOCAL_TYPES type string, TXT_LOCK_MODE type string,
TXT_LOCK_OBJECTS type string, TXT_LOCK_OBJECT___1 type string,
TXT_LOCK_OBJECT___2 type string, TXT_LOCK_PARAMETER type string,
TXT_LOGICAL_DATABASE type string, TXT_LOGICAL_STORAGE_PARAMETERS type
string, TXT_LOGON type string, TXT_LOG_DATA_CHANGES type string,
TXT_LONG type string, TXT_LONG_TEXT type string, TXT_LOWERCASE type
string, TXT_LOWER_LIMIT type string, TXT_LPOS type string,
TXT_MACHINE_TYPE type string, TXT_MACROS type string, TXT_MAINTENANCE
type string, TXT_MAINTENANCE_OF_STANDARD_TR type string,
TXT_MAINTENANCE_SCREENS type string, TXT_MAINTENANCE_TYPE type string,
TXT_MAINT_SCREEN_NO type string, TXT_MAINT_STATUS type string,
TXT_MAIN_PACKAGE type string, TXT_MAIN_PROGRAM type string,
TXT_MANIPULATION_OF_ELEMENT_CO type string, TXT_MAX_NO_OF_LINES type
string, TXT_MEDIUM type string, TXT_MENU type string, TXT_MESSAGE type
string, TXT_MESSAGES type string, TXT_MESSAGE_CLASS type string,
TXT_MESSAGE_CLASSES type string, TXT_MESSAGE_SHORT_TEXT type string,
TXT_METHOD type string, TXT_METHODS type string, TXT_METHOD_TYPE type
string, TXT_MIMES type string, TXT_MIME_TYPE type string, TXT_MOD type
string, TXT_MODAL_DIALOG_BOX type string, TXT_MODE type string,
TXT_MODELED_ONLY type string, TXT_MODIFIED type string,
TXT_MOD_GROUPS_FUNCTIONS type string, TXT_NAME type string,
TXT_NAME_OF_REF_TYPE type string, TXT_NAME_OF_SCREEN_FIELD type string,
TXT_NAVIGATION type string, TXT_NAVIGATION_REQUEST type string,
TXT_NEXT_SCREEN type string, TXT_NO type string, TXT_NORMAL type
string, TXT_NORMAL_FUNCTION_MODULE type string, TXT_NOT_RELEASED type
string, TXT_NO_LENGTH_RESTRICTION type string, TXT_NO_OF_CHARACTERS
type string, TXT_NO_OF_KEY_FIELDS type string,
TXT_NO_OR_USER_RECORDING_ROUTI type string, TXT_NO_RESET type string,
TXT_OBJECT type string, TXT_OBJECTS type string, TXT_OBJECT_TRANSACTION
type string, TXT_OBJECT_TYPE type string, TXT_OCCUPIED type string,
TXT_ONE_STEP type string, TXT_OO_TRANSACTION_MODEL type string,
TXT_OPERATING_SYSTEM type string, TXT_OPERATOR type string, TXT_OPTION
type string, TXT_OPTIONAL type string, TXT_OPTIONS type string,
TXT_OP_RELEASE type string, TXT_ORIGINAL_LANG type string,
TXT_ORIGINAL_LANGUAGE type string, TXT_ORIGIN_OF_THE_INPUT_HELP type
string, TXT_OTHER_ATTRIBUTES type string, TXT_OUTPUT type string,
TXT_OUTPUT_CHARACTERISTICS type string, TXT_OUTPUT_LENGTH type string,
TXT_OUTPUT_ONLY type string, TXT_OVERVIEW_SCREEN type string, TXT_OWNER
type string, TXT_PACKAGE type string, TXT_PACKAGES_INCLUDED type
string, TXT_PACKAGE_CHECK_AS_CLIENT type string,
TXT_PACKAGE_CHECK_AS_SERVER type string, TXT_PACKAGE_INTERFACE type
string, TXT_PACKAGE_INTERFACES type string, TXT_PACKAGE_NOT_EXTENDABLE
type string, TXT_PACKAGE_PROPERTIES type string, TXT_PAGE type string,
TXT_PAGES_WITH_FLOW_LOGIC type string, TXT_PAGE_ATTRIBUTES type string,
TXT_PAGE_DONE_IS_NOT_RETURNED_ type string, TXT_PAGE_FRAGMENT type
string, TXT_PAGE_FRAGMENTS type string, TXT_PAGE_TYPE type string,
TXT_PAGE_WITH_FLOW_LOGIC type string, TXT_PARAMETER type string,
TXT_PARAMETERS type string, TXT_PARAMETER_ID type string,
TXT_PARAMETER_NAME type string, TXT_PARAMETER_TRANSACTION type string,
TXT_PASS_VALUE type string, TXT_PERSON_RESPONS type string,
TXT_PERSON_RESPONSIBLE___1 type string, TXT_PERSON_RESPONSIBLE___2 type
string, TXT_PERVASIVE_ENABLED type string, TXT_PLATFORM_ID type string,
TXT_PLEASE_ENTER_A_ROOT_DIR type string, TXT_PLEASE_ENTER_A_VALID_PATH
type string, TXT_POOLED_TABLE type string, TXT_POOL_CLUSTER type
string, TXT_POSITION type string, TXT_POSS_ENTRIES_KEY type string,
TXT_PREVIOUS_LOGON type string, TXT_PRIMARY_TABLE type string,
TXT_PROCESSING_TYPE type string, TXT_PRODUCT_UNDER_GPL type string,
TXT_PROFESSIONAL_USER_TRANSACT type string, TXT_PROGRAM type string,
TXT_PROGRAMS type string, TXT_PROGRAM_GUI type string, TXT_PROGRAM_NAME
type string, TXT_PROGRAM_SCREEN type string, TXT_PROGRAM_STATUS type
string, TXT_PROPERTIES type string, TXT_PROPERTY_LIST type string,
TXT_QUANTITY_FIELD type string, TXT_READ_ONLY type string,
TXT_RECORDING_ROUTINE type string, TXT_REFERENCES type string,
TXT_REFERENCE_FIELD type string, TXT_REFERENCE_TABLE type string,
TXT_REFERENCE_TO_PREDEFINED_TY type string, TXT_REFERENCE_TYPE type
string, TXT_REF_FIELD type string, TXT_RELEASE type string,
TXT_RELEASED_INTERNALLY type string, TXT_REMOTE_ENABLED_MODULE type
string, TXT_REPORT type string, TXT_REPORT_TRANSACTION type string,
TXT_REPOSITORY_DATA type string, TXT_REQUIRED type string,
TXT_RESP_TO_DBLCLK type string, TXT_RESTRICT type string,
TXT_RIGHT_JUST type string, TXT_RSYN_FILE type string, TXT_RTYPE type
string, TXT_SAPGUI_FOR_HTML type string, TXT_SAPGUI_FOR_JAVA type
string, TXT_SAPGUI_FOR_WINDOWS type string, TXT_SAP_DATA type string,
TXT_SAP_SYSTEM_DATA type string, TXT_SAP_VERSIONS type string,
TXT_SAVED type string, TXT_SCREEN type string, TXT_SCREENS type string,
TXT_SCREEN_FOR type string, TXT_SCREEN_GROUP type string,
TXT_SCREEN_NUMBER type string, TXT_SCREEN_TYPE type string,
TXT_SCROLLABLE type string, TXT_SDIS type string, TXT_SEARCH_HELP type
string, TXT_SEARCH_HELP_EXIT type string, TXT_SEARCH_HELP_PARAMETER
type string, TXT_SEC type string, TXT_SECONDARY_TABLES type string,
TXT_SELECTION type string, TXT_SELECTION_CONDITIONS type string,
TXT_SELECTION_CRITERIA type string, TXT_SELECTION_METHOD type string,
TXT_SELECTION_SCREEN type string, TXT_SELECTION_SCREEN_VERSION type
string, TXT_SELECTION_TEXTS type string, TXT_SELECT_ALL type string,
TXT_SELF_EXPLANATY type string, TXT_SERVER_CACHE type string,
TXT_SERVER_NAME type string, TXT_SERVICE type string, TXT_SETTINGS type
string, TXT_SET_GET_PARAMETERS type string, TXT_SET_PARAMETER type
string, TXT_SHARED_MEMORY_ENABLED type string, TXT_SHORT type string,
TXT_SHORT_DESCRIPTION_OF_SOFTW type string, TXT_SHORT_DESCRIPTION___1
type string, TXT_SHORT_DESCRIPTION___2 type string, TXT_SHORT_TEXT___1
type string, TXT_SHORT_TEXT___2 type string, TXT_SIGN type string,
TXT_SINGLE_RECORDS_BUFF type string, TXT_SINGLE_SCREEN type string,
TXT_SINGLE_VARS type string, TXT_SIZE_CATEGORY type string,
TXT_SKIP_INITIAL_SCREEN type string, TXT_SOFTWARE_COMPONENT type
string, TXT_SOURCECDE type string, TXT_SOURCE_CODE type string,
TXT_SPECIAL_ATTR type string, TXT_SPOS type string, TXT_SRCH_HELP type
string, TXT_SRCH_HELPS type string, TXT_STANDARD_RECORDING_ROUTINE type
string, TXT_START type string, TXT_START_DELAYED type string,
TXT_START_IMMED type string, TXT_START_USING_VARIANT type string,
TXT_START_WITH_VARIANT type string, TXT_STATEFUL type string,
TXT_STATUS type string, TXT_STRUCTURE type string,
TXT_STRUCTURED_ROW_TYPE type string, TXT_STRUCTURED_TYPE type string,
TXT_STRUCTURES type string, TXT_SUBSCREEN type string, TXT_SUPERCLASS
type string, TXT_SUPPLEMENTARY_DOCUMENTATIO type string,
TXT_SUPPORTS_PORTAL_INTEGRATIO type string, TXT_SUP_PKG_LVL type
string, TXT_SURROUNDING_PACKAGE type string,
TXT_SWITCH_OFF_RUNTIME_COMPRES type string, TXT_SYMBOL type string,
TXT_SYSTEM type string, TXT_SYSTEM_INFORMATION type string,
TXT_SYSTEM_TIME type string, TXT_TABLE type string, TXT_TABLES type
string, TXT_TABLE_MAINTENANCE_GENERATO type string, TXT_TABLE_TYPE type
string, TXT_TABLE_TYPES type string, TXT_TARGET type string,
TXT_TECHNICAL_DIALOG_DETAILS type string, TXT_TECHNICAL_SETTINGS type
string, TXT_TEMPLATE_NON_EXECUTABLE type string, TXT_TEXT type string,
TXT_TEXTS_IO_TEMPLATES type string, TXT_TEXT_ELEMENTS type string,
TXT_TEXT_OR_IO_FIELD type string, TXT_TEXT_TABLE type string, TXT_THEME
type string, TXT_TIME_CHANGED type string, TXT_TITLE type string,
TXT_TRANSACTION type string, TXT_TRANSACTIONS type string,
TXT_TRANSACTION_CLASSIFICATION type string, TXT_TRANSACTION_CODE type
string, TXT_TRANSACTION_TEXT type string, TXT_TRANSACTION_VARIANT type
string, TXT_TRANSFER_OPTIONS type string, TXT_TRANSFORMATION type
string, TXT_TRANSFORMATIONS type string, TXT_TRANSPORT_ATTRIBUTES type
string, TXT_TRANSPORT_LAYER type string, TXT_TRANSP_TABLE type string,
TXT_TWO_STEP type string, TXT_TYPES type string, TXT_TYPE_DEFINITIONS
type string, TXT_TYPE_GROUP type string, TXT_TYPE_GRPS type string,
TXT_TYPE_IS_GENERIC type string, TXT_TYPE_OF_SCREEN_ELEMENT type
string, TXT_TYPE_SPEC type string, TXT_TYPE___1 type string,
TXT_TYPE___2 type string, TXT_TYPING type string, TXT_TYPINGMETH type
string, TXT_TYPING_METHOD type string, TXT_UNICODE_CHECKS type string,
TXT_UNICODE_SYSTEM type string, TXT_UPDATES type string,
TXT_UPDATE_MODULE type string, TXT_UPPERLIMIT type string,
TXT_UPPER_LOWER_CASE_ENTRY type string, TXT_URL type string,
TXT_USAGE_DATA type string, TXT_USER type string,
TXT_USER_DEFINED_VALIDATION type string, TXT_USE_ACCESS type string,
TXT_VALUE type string, TXT_VALUES type string, TXT_VALUE_LIST type
string, TXT_VALUE_RANGE type string, TXT_VARIANT type string,
TXT_VARIANTS type string, TXT_VARIANTS_OF_REPORTS type string,
TXT_VARIANT_TRANSACTION type string, TXT_VERSION type string, TXT_VIEW
type string, TXT_VIEWS type string, TXT_VIEW_FIELD type string,
TXT_VIEW_FLDS type string, TXT_VISIBILITY type string, TXT_VISIBLE type
string, TXT_VISLG type string, TXT_W type string,
TXT_WITHOUT_APPLICATION_TOOLBA type string, TXT_WITHOUT_TEMPLATE type
string, TXT_WITH_ICON type string, TXT_WO_SCRIPT_CODE type string,
TXT_YES type string, VAR_NAME_VALUE type string. DATA: g_add_db_content
TYPE flag VALUE abap_true, g_add_db_format_csv TYPE flag VALUE
abap_true, g_add_db_format_xml TYPE flag VALUE abap_true,
g_add_db_max_lines TYPE i VALUE 500, g_add_elem_ddic TYPE flag VALUE
abap_true, g_add_elem_tabl TYPE flag VALUE abap_true, g_add_elem_view
TYPE flag VALUE abap_true, g_add_elem_ttyp TYPE flag VALUE abap_true,
g_add_elem_struc TYPE flag VALUE abap_true, g_add_elem_dtel TYPE flag
VALUE abap_true, g_add_elem_doma TYPE flag VALUE abap_true,
g_add_elem_shlp TYPE flag VALUE abap_true, g_add_elem_enqu TYPE flag
VALUE abap_true, g_add_elem_type TYPE flag VALUE abap_true,
g_add_elem_clslib TYPE flag VALUE abap_true, g_add_elem_clas TYPE flag
VALUE abap_true, g_add_elem_intf TYPE flag VALUE abap_true,
g_add_elem_prog TYPE flag VALUE abap_true, g_add_elem_fugr TYPE flag
VALUE abap_true, g_add_elem_fuba TYPE flag VALUE abap_true,
g_add_elem_scr TYPE flag VALUE abap_true, g_add_elem_fuincl TYPE flag
VALUE abap_true, g_add_elem_incl TYPE flag VALUE abap_true,
g_add_elem_msag TYPE flag VALUE abap_true, g_add_elem_o2appl TYPE flag
VALUE abap_true, g_add_elem_o2applbsp TYPE flag VALUE abap_true,
g_add_elem_o2applctrl TYPE flag VALUE abap_true, g_add_elem_o2applincl
TYPE flag VALUE abap_true, g_add_elem_o2applmime TYPE flag VALUE
abap_true, g_add_elem_o2applview TYPE flag VALUE abap_true,
g_add_elem_o2taglib TYPE flag VALUE abap_true, g_add_elem_para TYPE
flag VALUE abap_true, g_add_elem_tobj TYPE flag VALUE abap_true,
g_add_elem_tran TYPE flag VALUE abap_true, g_add_elem_xslt TYPE flag
VALUE abap_true, g_add_sourcecode TYPE flag VALUE abap_true,
g_add_report_variants TYPE flag VALUE abap_true, g_empty_tab TYPE c
VALUE 'D', g_folder TYPE string, g_pack TYPE devclass, g_cnt_elems TYPE
i VALUE 0, g_cnt_downloads TYPE i VALUE 0, g_cnt_link_leaves type
num10, gt_link TYPE it_link, gt_tadir TYPE STANDARD TABLE OF tadir,
gt_ztadir TYPE it_ztadir, gt_zseomethod TYPE it_zseomethod, gt_tdevc
TYPE STANDARD TABLE OF tdevc, gs_tdevc TYPE tdevc, gt_table_structure
TYPE it_table_structure, gt_tabstrip TYPE it_tabstrip, gt_text_element
TYPE it_text_element, gt_text_element_t TYPE it_text_element_t,
gt_varid_broken TYPE it_varid, g_has_download_status TYPE flag.
CONSTANTS: gc_delimiter TYPE c VALUE '\', gc_empty_tab_disable TYPE c
VALUE 'D', gc_empty_tab_display TYPE c VALUE 'N', gc_empty_tab_hide
TYPE c VALUE 'H', gc_extension_csv TYPE char3 VALUE 'csv',
gc_extension_htm TYPE char3 VALUE 'htm', gc_extension_txt TYPE char3
VALUE 'txt', gc_extension_xml TYPE char3 VALUE 'xml', gc_extension_xsl
TYPE char3 VALUE 'xsl', gc_futype_group TYPE c VALUE 'G',
gc_futype_include TYPE c VALUE 'I', gc_futype_screen TYPE c VALUE 'S',
gc_futype_module TYPE c VALUE 'M', gc_o2type_bsp TYPE c VALUE ' ',
gc_o2type_ctrl TYPE c VALUE 'C', gc_o2type_incl TYPE c VALUE 'X',
gc_o2type_mime TYPE c VALUE 'M', gc_o2type_tag TYPE c VALUE 'T',
gc_o2type_view TYPE c VALUE 'V', gc_subrc_deselected TYPE sysubrc VALUE
97, gc_subrc_do_not_add TYPE sysubrc VALUE 98, gc_subrc_not_found TYPE
sysubrc VALUE 99, gc_src_max_rows TYPE i VALUE 16000, gc_tcode_dialog
TYPE c VALUE 'D', gc_tcode_object TYPE c VALUE 'O', gc_tcode_parameter
TYPE c VALUE 'P', gc_tcode_report TYPE c VALUE 'R', gc_tcode_variant
TYPE c VALUE 'V'. TABLES: dd02l, tdevc, sscrfields. FORM init. REFRESH:
gt_ztadir, gt_zseomethod. g_cnt_elems = 0. g_cnt_downloads = 0.
ENDFORM. SELECTION-SCREEN FUNCTION KEY 1. SELECTION-SCREEN FUNCTION KEY
2. SELECTION-SCREEN FUNCTION KEY 3. SELECTION-SCREEN BEGIN OF BLOCK b1
WITH FRAME TITLE t_choice. SELECTION-SCREEN BEGIN OF LINE.
SELECTION-SCREEN COMMENT 1(22) t_pack. SELECT-OPTIONS p_devcl FOR
tdevc-devclass. SELECTION-SCREEN END OF LINE. SELECTION-SCREEN BEGIN OF
LINE. SELECTION-SCREEN COMMENT 1(25) t_path. PARAMETERS p_folder TYPE
rlgrap-filename MEMORY ID mfolder. SELECTION-SCREEN END OF LINE.
SELECTION-SCREEN END OF BLOCK b1. SELECTION-SCREEN BEGIN OF BLOCK b2
WITH FRAME TITLE t_opts. SELECTION-SCREEN BEGIN OF LINE.
SELECTION-SCREEN COMMENT 1(25) t_add_sc. PARAMETERS p_add_sc AS
CHECKBOX DEFAULT abap_true. SELECTION-SCREEN END OF LINE.
SELECTION-SCREEN ULINE. SELECTION-SCREEN BEGIN OF LINE.
SELECTION-SCREEN COMMENT 1(25) t_etab. PARAMETERS p_etab_n RADIOBUTTON
GROUP etab. SELECTION-SCREEN COMMENT 34(10) t_etab_n FOR FIELD
p_etab_n. PARAMETERS p_etab_d RADIOBUTTON GROUP etab DEFAULT 'X'.
SELECTION-SCREEN COMMENT 49(10) t_etab_d FOR FIELD p_etab_d. PARAMETERS
p_etab_h RADIOBUTTON GROUP etab. SELECTION-SCREEN COMMENT 64(10)
t_etab_h FOR FIELD p_etab_h. SELECTION-SCREEN END OF LINE.
SELECTION-SCREEN ULINE. SELECTION-SCREEN BEGIN OF LINE.
SELECTION-SCREEN COMMENT 1(25) t_dbcont. PARAMETERS p_dbcont AS
CHECKBOX DEFAULT abap_true MODIF ID dis USER-COMMAND u_dbcont.
SELECTION-SCREEN END OF LINE. SELECTION-SCREEN BEGIN OF LINE.
SELECTION-SCREEN COMMENT 6(20) t_dbform. PARAMETERS p_db_csv AS
CHECKBOX DEFAULT abap_true. SELECTION-SCREEN COMMENT 29(15) t_db_csv.
PARAMETERS p_db_xml AS CHECKBOX DEFAULT abap_false. SELECTION-SCREEN
COMMENT 47(15) t_db_xml. SELECTION-SCREEN END OF LINE. SELECTION-SCREEN
BEGIN OF LINE. SELECTION-SCREEN COMMENT 6(20) t_dbmax. PARAMETERS
p_dbmax TYPE i DEFAULT 2000. SELECTION-SCREEN END OF LINE.
SELECTION-SCREEN BEGIN OF LINE. SELECTION-SCREEN COMMENT 6(17) t_dblim.
SELECT-OPTIONS p_dblim FOR dd02l-tabname. SELECTION-SCREEN END OF LINE.
SELECTION-SCREEN BEGIN OF LINE. SELECTION-SCREEN COMMENT 6(20) t_dbcls.
PARAMETERS p_dbclsa AS CHECKBOX DEFAULT abap_true. SELECTION-SCREEN
COMMENT 29(4) t_dbclsa. PARAMETERS p_dbclsc AS CHECKBOX DEFAULT
abap_true. SELECTION-SCREEN COMMENT 36(4) t_dbclsc. PARAMETERS p_dbclse
AS CHECKBOX DEFAULT abap_true. SELECTION-SCREEN COMMENT 43(4) t_dbclse.
PARAMETERS p_dbclsg AS CHECKBOX DEFAULT abap_true. SELECTION-SCREEN
COMMENT 50(4) t_dbclsg. PARAMETERS p_dbclsl AS CHECKBOX DEFAULT
abap_true. SELECTION-SCREEN COMMENT 57(4) t_dbclsl. PARAMETERS p_dbclss
AS CHECKBOX DEFAULT abap_true. SELECTION-SCREEN COMMENT 64(4) t_dbclss.
PARAMETERS p_dbclsw AS CHECKBOX DEFAULT abap_true. SELECTION-SCREEN
COMMENT 71(4) t_dbclsw. SELECTION-SCREEN PUSHBUTTON 78(4) b_dbcls
USER-COMMAND b_dbcls. SELECTION-SCREEN END OF LINE. SELECTION-SCREEN
ULINE. SELECTION-SCREEN BEGIN OF LINE. SELECTION-SCREEN COMMENT 1(25)
t_add_rv. PARAMETERS p_add_rv AS CHECKBOX DEFAULT abap_true.
SELECTION-SCREEN END OF LINE. SELECTION-SCREEN END OF BLOCK b2.
SELECTION-SCREEN: BEGIN OF BLOCK b3 WITH FRAME TITLE t_elems.
SELECTION-SCREEN BEGIN OF LINE. PARAMETERS p_ddic AS CHECKBOX DEFAULT
abap_true MODIF ID dis USER-COMMAND u_ddic. SELECTION-SCREEN COMMENT
5(39) t_ddic. PARAMETERS p_tran AS CHECKBOX DEFAULT abap_true.
SELECTION-SCREEN COMMENT 49(39) t_tran. SELECTION-SCREEN END OF LINE.
SELECTION-SCREEN BEGIN OF LINE. SELECTION-SCREEN POSITION 6. PARAMETERS
p_tabl AS CHECKBOX DEFAULT abap_true. SELECTION-SCREEN COMMENT 10(34)
t_tabl. PARAMETERS p_msag AS CHECKBOX DEFAULT abap_true.
SELECTION-SCREEN COMMENT 49(39) t_msag. SELECTION-SCREEN END OF LINE.
SELECTION-SCREEN BEGIN OF LINE. SELECTION-SCREEN POSITION 6. PARAMETERS
p_view AS CHECKBOX DEFAULT abap_true. SELECTION-SCREEN COMMENT 10(34)
t_view. PARAMETERS p_para AS CHECKBOX DEFAULT abap_true.
SELECTION-SCREEN COMMENT 49(39) t_para. SELECTION-SCREEN END OF LINE.
SELECTION-SCREEN BEGIN OF LINE. SELECTION-SCREEN POSITION 6. PARAMETERS
p_ttyp AS CHECKBOX DEFAULT abap_true. SELECTION-SCREEN COMMENT 10(34)
t_ttyp. PARAMETERS p_tobj AS CHECKBOX DEFAULT abap_true.
SELECTION-SCREEN COMMENT 49(39) t_tobj. SELECTION-SCREEN END OF LINE.
SELECTION-SCREEN BEGIN OF LINE. SELECTION-SCREEN POSITION 6. PARAMETERS
p_struc AS CHECKBOX DEFAULT abap_true. SELECTION-SCREEN COMMENT 10(34)
t_struc. PARAMETERS p_xslt AS CHECKBOX DEFAULT abap_true.
SELECTION-SCREEN COMMENT 49(39) t_xslt. SELECTION-SCREEN END OF LINE.
SELECTION-SCREEN BEGIN OF LINE. SELECTION-SCREEN POSITION 6. PARAMETERS
p_dtel AS CHECKBOX DEFAULT abap_true. SELECTION-SCREEN COMMENT 10(34)
t_dtel. PARAMETERS p_bsplib AS CHECKBOX DEFAULT abap_true MODIF ID dis
USER-COMMAND u_bsplib. SELECTION-SCREEN COMMENT 49(39) t_bsplib.
SELECTION-SCREEN END OF LINE. SELECTION-SCREEN BEGIN OF LINE.
SELECTION-SCREEN POSITION 6. PARAMETERS p_doma AS CHECKBOX DEFAULT
abap_true. SELECTION-SCREEN COMMENT 10(34) t_doma. SELECTION-SCREEN
POSITION 50. PARAMETERS p_bspapp AS CHECKBOX DEFAULT abap_true MODIF ID
dis USER-COMMAND u_bspapp. SELECTION-SCREEN COMMENT 54(34) t_bspapp.
SELECTION-SCREEN END OF LINE. SELECTION-SCREEN BEGIN OF LINE.
SELECTION-SCREEN POSITION 6. PARAMETERS p_shlp AS CHECKBOX DEFAULT
abap_true. SELECTION-SCREEN COMMENT 10(34) t_shlp. SELECTION-SCREEN
POSITION 55. PARAMETERS p_wctrl AS CHECKBOX DEFAULT abap_true.
SELECTION-SCREEN COMMENT 59(29) t_wctrl. SELECTION-SCREEN END OF LINE.
SELECTION-SCREEN BEGIN OF LINE. SELECTION-SCREEN POSITION 6. PARAMETERS
p_enqu AS CHECKBOX DEFAULT abap_true. SELECTION-SCREEN COMMENT 10(34)
t_enqu. SELECTION-SCREEN POSITION 55. PARAMETERS p_wview AS CHECKBOX
DEFAULT abap_true. SELECTION-SCREEN COMMENT 59(29) t_wview.
SELECTION-SCREEN END OF LINE. SELECTION-SCREEN BEGIN OF LINE.
SELECTION-SCREEN POSITION 6. PARAMETERS p_type AS CHECKBOX DEFAULT
abap_true. SELECTION-SCREEN COMMENT 10(34) t_type. SELECTION-SCREEN
POSITION 55. PARAMETERS p_wbsp AS CHECKBOX DEFAULT abap_true.
SELECTION-SCREEN COMMENT 59(29) t_wbsp. SELECTION-SCREEN END OF LINE.
SELECTION-SCREEN BEGIN OF LINE. PARAMETERS p_clslib AS CHECKBOX DEFAULT
abap_true MODIF ID dis USER-COMMAND u_clslib. SELECTION-SCREEN COMMENT
5(39) t_clslib. SELECTION-SCREEN POSITION 55. PARAMETERS p_wincl AS
CHECKBOX DEFAULT abap_true. SELECTION-SCREEN COMMENT 59(29) t_wincl.
SELECTION-SCREEN END OF LINE. SELECTION-SCREEN BEGIN OF LINE.
SELECTION-SCREEN POSITION 6. PARAMETERS p_clas AS CHECKBOX DEFAULT
abap_true. SELECTION-SCREEN COMMENT 10(34) t_clas. SELECTION-SCREEN
POSITION 55. PARAMETERS p_wmime AS CHECKBOX DEFAULT abap_true.
SELECTION-SCREEN COMMENT 59(29) t_wmime. SELECTION-SCREEN END OF LINE.
SELECTION-SCREEN BEGIN OF LINE. SELECTION-SCREEN POSITION 6. PARAMETERS
p_intf AS CHECKBOX DEFAULT abap_true. SELECTION-SCREEN COMMENT 10(34)
t_intf. SELECTION-SCREEN POSITION 50. PARAMETERS p_bsptag AS CHECKBOX
DEFAULT abap_true. SELECTION-SCREEN COMMENT 54(34) t_bsptag.
SELECTION-SCREEN END OF LINE. SELECTION-SCREEN BEGIN OF LINE.
PARAMETERS p_prog AS CHECKBOX DEFAULT abap_true. SELECTION-SCREEN
COMMENT 5(39) t_prog. SELECTION-SCREEN END OF LINE. SELECTION-SCREEN
BEGIN OF LINE. PARAMETERS p_fugr AS CHECKBOX DEFAULT abap_true MODIF ID
dis USER-COMMAND u_fugr. SELECTION-SCREEN COMMENT 5(39) t_fugr.
SELECTION-SCREEN END OF LINE. SELECTION-SCREEN BEGIN OF LINE.
SELECTION-SCREEN POSITION 6. PARAMETERS p_fuba AS CHECKBOX DEFAULT
abap_true. SELECTION-SCREEN COMMENT 10(34) t_fuba. SELECTION-SCREEN END
OF LINE. SELECTION-SCREEN BEGIN OF LINE. SELECTION-SCREEN POSITION 6.
PARAMETERS p_scr AS CHECKBOX DEFAULT abap_true. SELECTION-SCREEN
COMMENT 10(34) t_scr. SELECTION-SCREEN END OF LINE. SELECTION-SCREEN
BEGIN OF LINE. SELECTION-SCREEN POSITION 6. PARAMETERS p_fuincl AS
CHECKBOX DEFAULT abap_true. SELECTION-SCREEN COMMENT 10(34) t_fuincl.
SELECTION-SCREEN END OF LINE. SELECTION-SCREEN BEGIN OF LINE.
PARAMETERS p_incl AS CHECKBOX DEFAULT abap_true. SELECTION-SCREEN
COMMENT 5(39) t_incl. SELECTION-SCREEN END OF LINE. SELECTION-SCREEN
END OF BLOCK b3. AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_folder.
DATA: l_obj_file TYPE REF TO cl_gui_frontend_services,
l_selected_folder TYPE string, l_initial_folder TYPE string, l_message
TYPE string, l_txt TYPE string, l_subrc TYPE sysubrc. IF sy-batch IS
INITIAL. PERFORM cl_gui_get_folder CHANGING l_selected_folder l_subrc.
IF l_subrc = 0. p_folder = l_selected_folder. ELSE. PERFORM
get_message_text USING 'EA' '334' p_folder space space space CHANGING
l_message. PERFORM decode_html_io USING txt_please_enter_a_root_dir
CHANGING l_txt. WRITE: / l_message, / l_txt. ENDIF. ENDIF. AT
SELECTION-SCREEN. CASE sscrfields-ucomm. WHEN 'FC01'. p_bsplib =
abap_true. p_bspapp = abap_true. p_wbsp = abap_true. p_wctrl =
abap_true. p_wincl = abap_true. p_wmime = abap_true. p_wview =
abap_true. p_bsptag = abap_true. p_clslib = abap_true. p_clas =
abap_true. p_intf = abap_true. p_ddic = abap_true. p_doma = abap_true.
p_dtel = abap_true. p_enqu = abap_true. p_shlp = abap_true. p_struc =
abap_true. p_tabl = abap_true. p_ttyp = abap_true. p_type = abap_true.
p_view = abap_true. p_fugr = abap_true. p_fuba = abap_true. p_fuincl =
abap_true. p_scr = abap_true. p_incl = abap_true. p_msag = abap_true.
p_para = abap_true. p_prog = abap_true. p_tobj = abap_true. p_tran =
abap_true. p_xslt = abap_true. WHEN 'FC02'. p_bsplib = abap_false.
p_bspapp = abap_false. p_wbsp = abap_false. p_wctrl = abap_false.
p_wincl = abap_false. p_wmime = abap_false. p_wview = abap_false.
p_bsptag = abap_false. p_clslib = abap_false. p_clas = abap_false.
p_intf = abap_false. p_ddic = abap_false. p_doma = abap_false. p_dtel =
abap_false. p_enqu = abap_false. p_shlp = abap_false. p_struc =
abap_false. p_tabl = abap_false. p_ttyp = abap_false. p_type =
abap_false. p_view = abap_false. p_fugr = abap_false. p_fuba =
abap_false. p_fuincl = abap_false. p_scr = abap_false. p_incl =
abap_false. p_msag = abap_false. p_para = abap_false. p_prog =
abap_false. p_tobj = abap_false. p_tran = abap_false. p_xslt =
abap_false. WHEN 'FC03'. PERFORM gui_info_page. ENDCASE. CASE sy-ucomm.
WHEN 'B_DBCLS'. PERFORM gui_info_dbcls. WHEN 'U_BSPAPP'. IF p_bspapp =
abap_false. p_wbsp = abap_false. p_wctrl = abap_false. p_wincl =
abap_false. p_wmime = abap_false. p_wview = abap_false. ELSE. p_wbsp =
abap_true. p_wctrl = abap_true. p_wincl = abap_true. p_wmime =
abap_true. p_wview = abap_true. ENDIF. WHEN 'U_BSPLIB'. IF p_bsplib =
abap_false. p_bspapp = abap_false. p_bsptag = abap_false. p_wbsp =
abap_false. p_wctrl = abap_false. p_wincl = abap_false. p_wmime =
abap_false. p_wview = abap_false. ELSE. p_bspapp = abap_true. p_bsptag
= abap_true. p_wbsp = abap_true. p_wctrl = abap_true. p_wincl =
abap_true. p_wmime = abap_true. p_wview = abap_true. ENDIF. WHEN
'U_CLSLIB'. IF p_clslib = abap_false. p_clas = abap_false. p_intf =
abap_false. ELSE. p_clas = abap_true. p_intf = abap_true. ENDIF. WHEN
'U_DBCONT'. IF p_dbcont = abap_false. p_db_csv = abap_false. p_db_xml =
abap_false. p_dbclsa = abap_false. p_dbclsc = abap_false. p_dbclsl =
abap_false. p_dbclsg = abap_false. p_dbclse = abap_false. p_dbclss =
abap_false. p_dbclsw = abap_false. ELSE. p_db_csv = abap_true. p_db_xml
= abap_true. p_dbclsa = abap_true. p_dbclsc = abap_true. p_dbclsl =
abap_true. p_dbclsg = abap_true. p_dbclse = abap_true. p_dbclss =
abap_true. p_dbclsw = abap_true. ENDIF. WHEN 'U_DDIC'. IF p_ddic =
abap_false. p_doma = abap_false. p_dtel = abap_false. p_enqu =
abap_false. p_shlp = abap_false. p_struc = abap_false. p_tabl =
abap_false. p_ttyp = abap_false. p_type = abap_false. p_view =
abap_false. ELSE. p_doma = abap_true. p_dtel = abap_true. p_enqu =
abap_true. p_shlp = abap_true. p_struc = abap_true. p_tabl = abap_true.
p_ttyp = abap_true. p_type = abap_true. p_view = abap_true. ENDIF. WHEN
'U_FUGR'. IF p_fugr = abap_false. p_fuba = abap_false. p_fuincl =
abap_false. p_scr = abap_false. ELSE. p_fuba = abap_true. p_fuincl =
abap_true. p_scr = abap_true. ENDIF. ENDCASE. AT SELECTION-SCREEN
OUTPUT. LOOP AT SCREEN. IF screen-name = 'P_BSPAPP' OR screen-name =
'P_BSPTAG'. IF p_bsplib = abap_false. screen-input = 0. ELSE.
screen-input = 1. ENDIF. MODIFY SCREEN. ENDIF. IF screen-name =
'P_WBSP' OR screen-name = 'P_WCTRL' OR screen-name = 'P_WINCL' OR
screen-name = 'P_WMIME' OR screen-name = 'P_WVIEW'. IF p_bspapp =
abap_false. screen-input = 0. ELSE. screen-input = 1. ENDIF. MODIFY
SCREEN. ENDIF. IF screen-name = 'P_CLAS' OR screen-name = 'P_INTF'. IF
p_clslib = abap_false. screen-input = 0. ELSE. screen-input = 1. ENDIF.
MODIFY SCREEN. ENDIF. IF screen-name = 'P_DOMA' OR screen-name =
'P_DTEL' OR screen-name = 'P_ENQU' OR screen-name = 'P_SHLP' OR
screen-name = 'P_STRUC' OR screen-name = 'P_TABL' OR screen-name =
'P_TTYP' OR screen-name = 'P_TYPE' OR screen-name = 'P_VIEW'. IF p_ddic
= abap_false. screen-input = 0. ELSE. screen-input = 1. ENDIF. MODIFY
SCREEN. ENDIF. IF screen-name = 'P_FUBA' OR screen-name = 'P_FUINCL' OR
screen-name = 'P_SCR'. IF p_fugr = abap_false. screen-input = 0. ELSE.
screen-input = 1. ENDIF. MODIFY SCREEN. ENDIF. IF screen-name =
'P_DB_CSV' OR screen-name = 'P_DB_XML' OR screen-name = 'P_DBCLSA' OR
screen-name = 'P_DBCLSC' OR screen-name = 'P_DBCLSL' OR screen-name =
'P_DBCLSG' OR screen-name = 'P_DBCLSE' OR screen-name = 'P_DBCLSS' OR
screen-name = 'P_DBCLSW' OR screen-name = 'P_DBMAX' OR screen-name =
'P_DBLIM-HIGH' OR screen-name = 'P_DBLIM-LOW' OR screen-name =
'%_P_DBLIM_%_APP_%-VALU_PUSH'. IF p_dbcont = abap_false. screen-input =
0. ELSE. screen-input = 1. ENDIF. MODIFY SCREEN. ENDIF. ENDLOOP.
INITIALIZATION. PERFORM csv_tools. DATA: lt_exclude TYPE TABLE OF
sy-ucomm, ls_dyntxt TYPE smp_dyntxt, ls_fupararef TYPE fupararef,
l_text TYPE string. APPEND 'DOCU' TO lt_exclude. CALL FUNCTION
'RS_SET_SELSCREEN_STATUS' EXPORTING p_status = sy-pfkey TABLES
p_exclude = lt_exclude EXCEPTIONS OTHERS = 1. ls_dyntxt-icon_id =
'@4B@'. ls_dyntxt-quickinfo = txt_select_all. sscrfields-functxt_01 =
ls_dyntxt. ls_dyntxt-icon_id = '@4D@'. ls_dyntxt-quickinfo =
txt_deselect_all. sscrfields-functxt_02 = ls_dyntxt. ls_dyntxt-icon_id
= '@0S@'. ls_dyntxt-quickinfo = txt_information. sscrfields-functxt_03
= ls_dyntxt. b_dbcls = '@0S@'. PERFORM decode_html_io USING
txt_source_code CHANGING t_add_sc. PERFORM decode_html_io USING
txt_variants_of_reports CHANGING t_add_rv. PERFORM decode_html_io USING
txt_bsp_applications CHANGING t_bspapp. PERFORM decode_html_io USING
txt_bsp_library CHANGING t_bsplib. PERFORM decode_html_io USING
txt_bsp_extensions CHANGING t_bsptag. PERFORM decode_html_io USING
txt_selection CHANGING t_choice. PERFORM decode_html_io USING
txt_classes CHANGING t_clas. PERFORM decode_html_io USING
txt_class_library CHANGING t_clslib. t_db_csv = gc_extension_csv.
t_db_xml = gc_extension_xml. PERFORM decode_html_io USING
txt_database_content CHANGING t_dbcont. PERFORM decode_html_io USING
txt_format CHANGING t_dbform. PERFORM decode_html_io USING txt_restrict
CHANGING t_dblim. PERFORM decode_html_io USING txt_max_no_of_lines
CHANGING t_dbmax. PERFORM decode_html_io USING txt_delivery_class
CHANGING t_dbcls. t_dbclsa = 'A'. t_dbclsc = 'C'. t_dbclsl = 'L'.
t_dbclsg = 'G'. t_dbclse = 'E'. t_dbclss = 'S'. t_dbclsw = 'W'. PERFORM
decode_html_io USING txt_dict_objs CHANGING t_ddic. PERFORM
decode_html_io USING txt_domains CHANGING t_doma. PERFORM
decode_html_io USING txt_data_elements CHANGING t_dtel. PERFORM
decode_html_io USING txt_objects CHANGING t_elems. PERFORM
decode_html_io USING txt_lock_objects CHANGING t_enqu. PERFORM
decode_html_io USING txt_empty_tab CHANGING t_etab. PERFORM
decode_html_io USING txt_disabled CHANGING t_etab_d. PERFORM
decode_html_io USING txt_hidden CHANGING t_etab_h. PERFORM
decode_html_io USING txt_display CHANGING t_etab_n. PERFORM
decode_html_io USING txt_function_modules CHANGING t_fuba. PERFORM
decode_html_io USING txt_function_groups CHANGING t_fugr. PERFORM
decode_html_io USING txt_includes CHANGING t_fuincl. PERFORM
decode_html_io USING txt_includes CHANGING t_incl. PERFORM
decode_html_io USING txt_interfaces CHANGING t_intf. PERFORM
decode_html_io USING txt_message_classes CHANGING t_msag. PERFORM
decode_html_io USING txt_options CHANGING t_opts. PERFORM
decode_html_io USING txt_package CHANGING t_pack. PERFORM
decode_html_io USING txt_set_get_parameters CHANGING t_para. PERFORM
decode_html_io USING txt_directory CHANGING t_path. PERFORM
decode_html_io USING txt_programs CHANGING t_prog. PERFORM
decode_html_io USING txt_screens CHANGING t_scr. PERFORM decode_html_io
USING txt_srch_helps CHANGING t_shlp. PERFORM decode_html_io USING
txt_structures CHANGING t_struc. PERFORM decode_html_io USING
txt_database_tables CHANGING t_tabl. PERFORM decode_html_io USING
txt_authorization_object___2 CHANGING t_tobj. PERFORM decode_html_io
USING txt_transactions CHANGING t_tran. PERFORM decode_html_io USING
txt_table_types CHANGING t_ttyp. PERFORM decode_html_io USING
txt_type_grps CHANGING t_type. PERFORM decode_html_io USING txt_views
CHANGING t_view. PERFORM decode_html_io USING txt_pages_with_flow_logic
CHANGING t_wbsp. PERFORM decode_html_io USING txt_controller CHANGING
t_wctrl. PERFORM decode_html_io USING txt_page_fragments CHANGING
t_wincl. PERFORM decode_html_io USING txt_mimes CHANGING t_wmime.
PERFORM decode_html_io USING txt_views CHANGING t_wview. PERFORM
decode_html_io USING txt_transformations CHANGING t_xslt. SELECT SINGLE
 * FROM fupararef INTO ls_fupararef WHERE funcname = 'GUI_DOWNLOAD' AND
r3state = 'A' AND parameter = 'SHOW_TRANSFER_STATUS'. IF sy-subrc = 0.
g_has_download_status = abap_true. ENDIF. START-OF-SELECTION. DATA:
l_dir TYPE string, l_dir_check TYPE flag, l_dir_rc TYPE i, l_message
TYPE string, l_txt TYPE string, lt_tadir TYPE STANDARD TABLE OF tadir,
l_tabname TYPE tabname, ls_contflag TYPE st_contflag_range, lt_contflag
TYPE it_contflag_range. FIELD-SYMBOLS: <ls_tadir> TYPE tadir. CLEAR:
g_folder, g_pack. REFRESH: gt_tadir. IF p_devcl IS INITIAL. PERFORM
decode_html_io USING txt_enter_a_package CHANGING l_txt. WRITE / l_txt.
ELSEIF p_folder IS INITIAL. PERFORM decode_html_io USING
txt_please_enter_a_root_dir CHANGING l_txt. WRITE / l_txt. ELSE.
g_add_elem_ddic = p_ddic. g_add_elem_tabl = p_tabl. g_add_elem_view =
p_view. g_add_elem_ttyp = p_ttyp. g_add_elem_struc = p_struc.
g_add_elem_dtel = p_dtel. g_add_elem_doma = p_doma. g_add_elem_shlp =
p_shlp. g_add_elem_enqu = p_enqu. g_add_elem_type = p_type.
g_add_elem_clslib = p_clslib. g_add_elem_clas = p_clas. g_add_elem_intf
= p_intf. g_add_elem_prog = p_prog. g_add_elem_fugr = p_fugr.
g_add_elem_fuba = p_fuba. g_add_elem_msag = p_msag. g_add_elem_scr =
p_scr. g_add_elem_fuincl = p_fuincl. g_add_elem_incl = p_incl.
g_add_elem_o2appl = p_bspapp. g_add_elem_o2applbsp = p_wbsp.
g_add_elem_o2applctrl = p_wctrl. g_add_elem_o2applincl = p_wincl.
g_add_elem_o2applmime = p_wmime. g_add_elem_o2applview = p_wview.
g_add_elem_o2taglib = p_bsptag. g_add_elem_para = p_para.
g_add_elem_tobj = p_tobj. g_add_elem_tran = p_tran. g_add_elem_xslt =
p_xslt. g_add_sourcecode = p_add_sc. CASE abap_true. WHEN p_etab_n.
g_empty_tab = gc_empty_tab_display. WHEN p_etab_d. g_empty_tab =
gc_empty_tab_disable. WHEN p_etab_h. g_empty_tab = gc_empty_tab_hide.
ENDCASE. g_add_db_content = p_dbcont. g_add_db_format_csv = p_db_csv.
g_add_db_format_xml = p_db_xml. g_add_db_max_lines = p_dbmax.
ls_contflag-sign = 'I'. ls_contflag-option = 'EQ'. IF p_dbclsa =
abap_true. ls_contflag-low = 'A'. APPEND ls_contflag TO lt_contflag.
ENDIF. IF p_dbclsc = abap_true. ls_contflag-low = 'C'. APPEND
ls_contflag TO lt_contflag. ENDIF. IF p_dbclse = abap_true.
ls_contflag-low = 'E'. APPEND ls_contflag TO lt_contflag. ENDIF. IF
p_dbclsg = abap_true. ls_contflag-low = 'G'. APPEND ls_contflag TO
lt_contflag. ENDIF. IF p_dbclsl = abap_true. ls_contflag-low = 'L'.
APPEND ls_contflag TO lt_contflag. ENDIF. IF p_dbclss = abap_true.
ls_contflag-low = 'S'. APPEND ls_contflag TO lt_contflag. ENDIF. IF
p_dbclsw = abap_true. ls_contflag-low = 'W'. APPEND ls_contflag TO
lt_contflag. ENDIF. IF g_add_db_content = abap_true AND NOT lt_contflag
IS INITIAL. IF NOT p_dblim IS INITIAL. SELECT * FROM tadir INTO TABLE
lt_tadir WHERE pgmid = 'R3TR' AND object = 'TABL' AND obj_name IN
p_dblim AND devclass IN p_devcl. ELSE. SELECT * FROM tadir INTO TABLE
lt_tadir WHERE pgmid = 'R3TR' AND object = 'TABL' AND devclass IN
p_devcl. ENDIF. LOOP AT lt_tadir ASSIGNING <ls_tadir>. l_tabname =
<ls_tadir>-obj_name. SELECT SINGLE tabname FROM dd02l INTO l_tabname
WHERE as4local = 'A' AND tabclass = 'TRANSP' AND tabname = l_tabname
AND contflag IN lt_contflag. IF sy-subrc = 0. APPEND <ls_tadir> TO
gt_tadir. ENDIF. ENDLOOP. REFRESH lt_tadir. REFRESH lt_contflag. ENDIF.
g_add_report_variants = p_add_rv. l_dir = p_folder. CALL METHOD
cl_gui_frontend_services=>directory_exist EXPORTING directory = l_dir
RECEIVING result = l_dir_check EXCEPTIONS OTHERS = 1. IF sy-subrc = 0
AND l_dir_check = abap_false. CALL METHOD
cl_gui_frontend_services=>directory_create EXPORTING directory = l_dir
CHANGING rc = l_dir_rc EXCEPTIONS OTHERS = 1. IF sy-subrc = 0 AND
l_dir_rc = 0. g_folder = p_folder. ENDIF. ELSEIF sy-subrc = 0. g_folder
= p_folder. ENDIF. IF g_folder IS INITIAL. CLEAR l_message. PERFORM
get_message_text USING 'EA' '334' p_folder space space space CHANGING
l_message. PERFORM decode_html_io USING txt_please_enter_a_valid_path
CHANGING l_txt. WRITE: / l_message, / l_txt. ELSE. SELECT * FROM tdevc
INTO TABLE gt_tdevc WHERE devclass IN p_devcl. IF sy-subrc <> 0. CLEAR
l_message. DO. IF p_devcl-low NA '%'. EXIT. ENDIF. PERFORM replace_all
USING '%' '*' CHANGING p_devcl-low. ENDDO. PERFORM get_message_text
USING 'PACKAGE_BUILDER01' '411' p_devcl-low space space space CHANGING
l_message. PERFORM decode_html_io USING txt_please_enter_a_root_dir
CHANGING l_txt. WRITE: / l_message, / l_txt. ENDIF. ENDIF. ENDIF.
END-OF-SELECTION. IF NOT gt_tdevc IS INITIAL AND NOT g_folder IS
INITIAL. LOOP AT gt_tdevc INTO gs_tdevc. g_pack = gs_tdevc-devclass.
PERFORM init. PERFORM select. PERFORM html_base. PERFORM optionals.
PERFORM system. ENDLOOP. PERFORM decode_html_io USING txt_completed
CHANGING l_txt. WRITE l_txt. ENDIF. FORM gui_info_dbcls. DATA: lt_type
TYPE it_dom_value, ls_hinfo TYPE help_info, ls_exclfun TYPE hlpfcode,
lt_exclfun TYPE STANDARD TABLE OF hlpfcode, ls_hline TYPE tline,
lt_hline TYPE STANDARD TABLE OF tline. FIELD-SYMBOLS: <ls_type> TYPE
st_dom_value. PERFORM get_dom_value_texts USING 'CONTFLAG' CHANGING
lt_type. ls_hline-tdformat = 'U1'. ls_hline-tdline =
txt_delivery_class. APPEND ls_hline TO lt_hline. SORT lt_type BY value.
LOOP AT lt_type ASSIGNING <ls_type>. ls_hline-tdformat = 'B1'.
CONCATENATE '<ZK>' <ls_type>-value '</>:' INTO ls_hline-tdline.
CONCATENATE ls_hline-tdline <ls_type>-text INTO ls_hline-tdline
SEPARATED BY space. APPEND ls_hline TO lt_hline. ENDLOOP. CALL FUNCTION
'HELP_DOCULINES_SHOW' EXPORTING help_infos = ls_hinfo TABLES excludefun
= lt_exclfun helplines = lt_hline. ENDFORM. FORM gui_info_page. DATA:
lt_type TYPE it_dom_value, ls_hinfo TYPE help_info, ls_exclfun TYPE
hlpfcode, lt_exclfun TYPE STANDARD TABLE OF hlpfcode, ls_hline TYPE
tline, lt_hline TYPE STANDARD TABLE OF tline. ls_hline-tdformat = 'U1'.
ls_hline-tdline = '&#x53;&#x6F;&#x66;&#x74;&#x43;&#x6F;&#x70;&#x79;'.
PERFORM decode_html CHANGING ls_hline-tdline. APPEND ls_hline TO
lt_hline. ls_hline-tdformat = 'AS'. CONCATENATE '<ZK>' txt_version
'</>:' INTO ls_hline-tdline. CONCATENATE ls_hline-tdline gc_version
INTO ls_hline-tdline SEPARATED BY space. PERFORM decode_html CHANGING
ls_hline-tdline. APPEND ls_hline TO lt_hline. ls_hline-tdformat = '*'.
CONCATENATE '&#xA9; 2008-' gc_version+0(4) ' globalBIT, LLC.' INTO
ls_hline-tdline. PERFORM decode_html CHANGING ls_hline-tdline. APPEND
ls_hline TO lt_hline. ls_hline-tdformat = '/'. ls_hline-tdline =
txt_all_rights_reserved. PERFORM decode_html CHANGING ls_hline-tdline.
APPEND ls_hline TO lt_hline. ls_hline-tdformat = 'AS'. ls_hline-tdline
= txt_product_under_gpl. PERFORM replace_single USING '#GPL#'
'GNU General Public License' CHANGING ls_hline-tdline. PERFORM
decode_html CHANGING ls_hline-tdline. APPEND ls_hline TO lt_hline. CALL
FUNCTION 'HELP_DOCULINES_SHOW' EXPORTING help_infos = ls_hinfo TABLES
excludefun = lt_exclfun helplines = lt_hline. ENDFORM. FORM replace_all
USING value(i_old) value(i_new) CHANGING c_str TYPE any. DO. IF c_str
NS i_old. EXIT. ENDIF. PERFORM replace_single USING i_old i_new
CHANGING c_str. ENDDO. ENDFORM. FORM replace_single USING value(i_old)
value(i_new) CHANGING c_str TYPE any. REPLACE i_old WITH i_new INTO
c_str. ENDFORM. FORM number_to_x_char USING i_num TYPE i CHANGING
c_char TYPE c. DATA: l_num TYPE i. CONSTANTS: lc_chars(26) TYPE c VALUE
'ABCDEFGHIJKLMNOPQRSTUVWXYZ'. CLEAR c_char. IF i_num < 10. c_char =
i_num. ELSEIF i_num < 36. l_num = i_num - 10. c_char =
lc_chars+l_num(1). ENDIF. ENDFORM. FORM number_to_hex_string USING
i_num TYPE any CHANGING c_hex TYPE string. PERFORM number_to_x_string
USING i_num 16 CHANGING c_hex. ENDFORM. FORM number_to_x_string USING
i_num TYPE any i_number_system TYPE i CHANGING c_hex TYPE string. DATA:
l_num TYPE i, l_cal TYPE i VALUE 1, l_cnt TYPE i, l_hex_char TYPE c.
CLEAR c_hex. l_num = i_num. IF l_num = 0. c_hex = '0'. ELSE. DO. l_cnt
= 0. IF l_cal <= l_num. l_cal = l_cal * i_number_system. ENDIF. IF
l_cal > l_num. l_cal = l_cal / i_number_system. DO. IF l_cal <= l_num.
l_num = l_num - l_cal. l_cnt = l_cnt + 1. ELSE. EXIT. ENDIF. ENDDO.
PERFORM number_to_x_char USING l_cnt CHANGING l_hex_char. CONCATENATE
c_hex l_hex_char INTO c_hex. ENDIF. IF l_num = 0 AND l_cal = 1. EXIT.
ENDIF. ENDDO. ENDIF. ENDFORM. FORM decode_html CHANGING c_txt TYPE any.
DATA: l_xstr TYPE xstring, l_hex TYPE string, l_xpos TYPE i, l_str TYPE
string, l_fdpos TYPE i, l_strlen TYPE i, l_out TYPE string, l_outlen
TYPE i, l_char TYPE string. CHECK NOT c_txt IS INITIAL. CHECK c_txt CS
'&#x'. l_str = c_txt. DO. IF l_str CS '&#x'. l_fdpos = sy-fdpos. IF
l_fdpos > 0. CONCATENATE l_out+0(l_outlen) l_str+0(l_fdpos) INTO l_out.
l_outlen = l_outlen + l_fdpos. ENDIF. l_xpos = l_fdpos + 3. l_strlen =
strlen( l_str ). l_strlen = l_strlen - l_xpos. l_str =
l_str+l_xpos(l_strlen). SPLIT l_str AT ';' INTO l_hex l_str. l_xstr =
l_hex. CALL FUNCTION 'NLS_STRING_CONVERT_TO_SYS' EXPORTING lang_used =
sy-langu SOURCE = l_xstr IMPORTING RESULT = l_char EXCEPTIONS OTHERS =
1. IF sy-subrc = 0. CONCATENATE l_out+0(l_outlen) l_char+0(1) INTO
l_out. ELSE. CONCATENATE l_out+0(l_outlen) '#' INTO l_out. ENDIF.
l_outlen = l_outlen + 1. ELSE. EXIT. ENDIF. ENDDO. l_strlen = strlen(
l_str ). CONCATENATE l_out+0(l_outlen) l_str+0(l_strlen) INTO l_out.
c_txt = l_out. ENDFORM. FORM decode_html_io USING i_html TYPE string
CHANGING c_txt TYPE any. c_txt = i_html. PERFORM decode_html CHANGING
c_txt. ENDFORM. FORM encode_html CHANGING c_txt TYPE string. CHECK NOT
c_txt IS INITIAL. CHECK c_txt NS '&#'. PERFORM encode_html_force
CHANGING c_txt. ENDFORM. FORM encode_html_force CHANGING c_txt TYPE
string. DATA: l_xstr TYPE xstring, l_hex TYPE string, l_hexlen TYPE i,
l_xlen TYPE i, l_xpos TYPE i, l_str TYPE string, l_strlen TYPE i, l_out
TYPE string, l_outlen TYPE i, l_pos TYPE i, l_chars(255) TYPE c,
l_xchar(4) TYPE c. CHECK NOT c_txt IS INITIAL. CONCATENATE
' :;,./()-_+*#=' '0123456789' 'abcdefghijklmnopqrstuvwxyz'
'ABCDEFGHIJKLMNOPQRSTUVWXYZ' INTO l_chars. l_str = c_txt. CALL FUNCTION
'NLS_STRING_CONVERT_FROM_SYS' EXPORTING lang_used = sy-langu SOURCE =
l_str IMPORTING RESULT = l_xstr. l_hex = l_xstr. l_hexlen = strlen(
l_hex ). l_strlen = strlen( l_str ). l_xlen = l_hexlen / l_strlen. DO.
l_xpos = l_pos * l_xlen. l_xchar = l_hex+l_xpos(l_xlen). IF l_chars NA
l_str+l_pos(1) AND NOT l_xchar = '23'. IF l_outlen = 0. CONCATENATE
'&#x' l_xchar ';' INTO l_out. ELSE. CONCATENATE l_out+0(l_outlen) '&#x'
l_xchar ';' INTO l_out. ENDIF. l_outlen = l_outlen + 4 + l_xlen. ELSE.
IF l_outlen = 0. l_out = l_str+l_pos(1). ELSE. CONCATENATE
l_out+0(l_outlen) l_str+l_pos(1) INTO l_out. ENDIF. l_outlen = l_outlen
+ 1. ENDIF. l_pos = l_pos + 1. l_strlen = strlen( l_str ). IF l_pos =
l_strlen. EXIT. ENDIF. ENDDO. c_txt = l_out. ENDFORM. FORM encode_uri
CHANGING c_url TYPE string. DATA: l_prot TYPE string, l_url TYPE
string, l_params TYPE string, lt_param TYPE it_string, l_key TYPE
string, l_value TYPE string, l_len TYPE i. FIELD-SYMBOLS: <l_param>
TYPE string. CHECK NOT c_url IS INITIAL. IF c_url CA '?' OR c_url NA
'='. SPLIT c_url AT '?' INTO l_url l_params. IF l_url CA ':'. SPLIT
l_url AT ':' INTO l_prot l_url. ENDIF. PERFORM encode_uri_link CHANGING
l_url. IF NOT l_prot IS INITIAL. CONCATENATE l_prot ':' l_url INTO
l_url. ENDIF. CONCATENATE l_url '?' INTO l_url. ELSEIF c_url CA '='.
l_params = c_url. ENDIF. SPLIT l_params AT '&' INTO TABLE lt_param.
LOOP AT lt_param ASSIGNING <l_param>. CLEAR: l_key, l_value. SPLIT
<l_param> AT '=' INTO l_key l_value. PERFORM encode_uri_value CHANGING
l_value. CONCATENATE l_url l_key '=' l_value '&' INTO l_url. ENDLOOP.
l_len = strlen( l_url ). l_len = l_len - 1. c_url = l_url+0(l_len).
ENDFORM. FORM encode_uri_link CHANGING c_value TYPE string. DATA:
l_chars(66) TYPE c. CHECK NOT c_value IS INITIAL. CONCATENATE '/_-.'
'0123456789' 'abcdefghijklmnopqrstuvwxyz' 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'
INTO l_chars. PERFORM encode_uri_string USING l_chars CHANGING c_value.
ENDFORM. FORM encode_uri_string USING value(i_chars) CHANGING c_value
TYPE string. DATA: l_xstr TYPE xstring, l_hex TYPE string, l_hexlen
TYPE i, l_chex TYPE string, l_chex_pos TYPE i, l_xlen TYPE i, l_xpos
TYPE i, l_str TYPE string, l_strlen TYPE i, l_out TYPE string, l_outlen
TYPE i, l_pos TYPE i. CHECK NOT c_value IS INITIAL. l_str = c_value.
CALL FUNCTION 'NLS_STRING_CONVERT_FROM_SYS' EXPORTING lang_used =
sy-langu SOURCE = l_str IMPORTING RESULT = l_xstr. l_hex = l_xstr.
l_hexlen = strlen( l_hex ). l_strlen = strlen( l_str ). l_xlen =
l_hexlen / l_strlen. DO. IF i_chars NA l_str+l_pos(1). l_xpos = l_pos *
l_xlen. l_chex = l_hex+l_xpos(l_xlen). l_chex_pos = strlen( l_chex ).
l_chex_pos = l_chex_pos - 2. l_chex = l_chex+l_chex_pos(2). IF l_outlen
= 0. CONCATENATE '%' l_chex INTO l_out. ELSE. CONCATENATE
l_out+0(l_outlen) '%' l_chex INTO l_out. ENDIF. l_outlen = l_outlen +
3. ELSE. IF l_outlen = 0. l_out = l_str+l_pos(1). ELSE. CONCATENATE
l_out+0(l_outlen) l_str+l_pos(1) INTO l_out. ENDIF. l_outlen = l_outlen
+ 1. ENDIF. l_pos = l_pos + 1. l_strlen = strlen( l_str ). IF l_pos =
l_strlen. EXIT. ENDIF. ENDDO. c_value = l_out. ENDFORM. FORM
encode_uri_value CHANGING c_value TYPE string. DATA: l_chars(62) TYPE
c. CHECK NOT c_value IS INITIAL. CONCATENATE '0123456789'
'abcdefghijklmnopqrstuvwxyz' 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' INTO l_chars.
PERFORM encode_uri_string USING l_chars CHANGING c_value. ENDFORM. FORM
get_src_compressed USING it_src TYPE table value(i_compress_better)
TYPE flag CHANGING ct_compressed TYPE table. DATA: ls_src TYPE string,
l_is_header TYPE flag VALUE abap_true, l_length TYPE i, l_pos TYPE i,
l_is_string TYPE flag, l_chars(72) TYPE c, l_str TYPE string, l_str2
TYPE string, l_srclen TYPE i, l_strlen TYPE i, l_line TYPE string,
l_linelen TYPE i. REFRESH ct_compressed. IF i_compress_better =
abap_true. l_is_header = abap_false. ENDIF. LOOP AT it_src INTO ls_src.
IF ls_src IS INITIAL. l_is_header = abap_false. CONTINUE. ENDIF. IF
ls_src+0(1) = '*'. IF l_is_header = abap_true. APPEND ls_src TO
ct_compressed. ENDIF. CONTINUE. ENDIF. IF ls_src CA '"'. PERFORM
split_src_string USING ls_src '"' CHANGING l_str l_str2. ls_src =
l_str. ENDIF. PERFORM get_src_line_compressed CHANGING ls_src. IF NOT
l_line IS INITIAL. l_srclen = strlen( ls_src ). l_linelen = strlen(
l_line ). l_length = l_srclen + l_linelen. IF l_length < 71.
CONCATENATE l_line ls_src INTO l_line SEPARATED BY space. CONTINUE.
ELSE. DO. PERFORM split_src_string USING ls_src space CHANGING l_str
l_str2. l_strlen = strlen( l_str ). l_linelen = strlen( l_line ).
l_length = l_strlen + l_linelen. IF l_length < 71. CONCATENATE l_line
l_str INTO l_line SEPARATED BY space. IF NOT l_str2 IS INITIAL AND
l_str2+0(1) = '*'. CLEAR l_chars. CLEAR ls_src. l_chars+1 = l_str2.
ls_src = l_chars. ELSE. ls_src = l_str2. ENDIF. ELSE. EXIT. ENDIF. IF
ls_src IS INITIAL. EXIT. ENDIF. ENDDO. ENDIF. ENDIF. IF NOT l_line IS
INITIAL. APPEND l_line TO ct_compressed. ENDIF. l_line = ls_src.
l_is_header = abap_false. ENDLOOP. IF NOT l_line IS INITIAL. APPEND
l_line TO ct_compressed. ENDIF. ENDFORM. FORM get_src_line_compressed
CHANGING c_line TYPE string. DATA: l_str TYPE string, l_str1 TYPE
string, l_str2 TYPE string, l_line_new TYPE string. l_str = c_line. DO.
PERFORM split_src_string USING l_str space CHANGING l_str1 l_str2. IF
l_line_new IS INITIAL. l_line_new = l_str1. ELSE. CONCATENATE
l_line_new l_str1 INTO l_line_new SEPARATED BY space. ENDIF. IF l_str2
IS INITIAL. EXIT. ENDIF. l_str = l_str2. ENDDO. c_line = l_line_new.
ENDFORM. FORM split_src_string USING value(i_src) TYPE string
value(i_sep) TYPE char1 CHANGING c_str1 TYPE string c_str2 TYPE string.
DATA: l_src TYPE string, l_is_string TYPE flag VALUE abap_false, l_pos
TYPE i VALUE 0, l_char TYPE char1, l_srclen TYPE i. CLEAR: c_str1,
c_str2. l_src = i_src. SHIFT l_src LEFT DELETING LEADING space. SPLIT
l_src AT i_sep INTO c_str1 c_str2. IF c_str1 CA '''' AND c_str2 CA
''''. CLEAR: c_str1, c_str2. l_srclen = strlen( l_src ). DO. l_char =
l_src+l_pos(1). CONDENSE l_char. CASE l_char. WHEN ''''. IF l_is_string
= abap_true. l_is_string = abap_false. ELSE. l_is_string = abap_true.
ENDIF. WHEN i_sep. IF l_is_string = abap_false. c_str1 =
l_src+0(l_pos). ADD 1 TO l_pos. c_str2 = l_src+l_pos. EXIT. ENDIF.
ENDCASE. ADD 1 TO l_pos. IF l_pos = l_srclen. c_str1 = l_src. EXIT.
ENDIF. ENDDO. ENDIF. SHIFT c_str2 LEFT DELETING LEADING space. IF
c_str1 NA ''''. CONDENSE c_str1. ENDIF. IF c_str2 NA ''''. CONDENSE
c_str2. ENDIF. ENDFORM. FORM data2csv USING value(i_tabname) CHANGING
ct_csv TYPE it_string. DATA: lt_dd03l TYPE STANDARD TABLE OF dd03l,
ls_dd02l TYPE dd02l, l_fieldname TYPE fieldname, l_position TYPE
tabfdpos, l_value TYPE string, l_csv TYPE string, l_len TYPE i,
l_length TYPE string, ls_fs TYPE REF TO data. FIELD-SYMBOLS: <ls_dd03l>
TYPE dd03l, <ls_fs> TYPE ANY, <l_value> TYPE ANY. REFRESH ct_csv.
SELECT * FROM dd03l INTO TABLE lt_dd03l WHERE tabname = i_tabname AND
as4local = 'A' ORDER BY position. SELECT SINGLE * FROM dd02l INTO
ls_dd02l WHERE tabname = i_tabname AND as4local = 'A'. LOOP AT lt_dd03l
ASSIGNING <ls_dd03l>. IF <ls_dd03l>-fieldname+0(1) = '.'. CONTINUE.
ENDIF. IF NOT l_csv IS INITIAL. CONCATENATE l_csv ';' INTO l_csv.
ENDIF. l_len = <ls_dd03l>-intlen. l_length = l_len. CONDENSE l_length.
CONCATENATE l_csv '"' <ls_dd03l>-fieldname '(' <ls_dd03l>-inttype
l_length ')"' INTO l_csv. ENDLOOP. APPEND l_csv TO ct_csv. CREATE DATA
ls_fs TYPE (i_tabname). ASSIGN ls_fs->* TO <ls_fs>. SELECT * FROM
(i_tabname) INTO <ls_fs>. CLEAR l_csv. LOOP AT lt_dd03l ASSIGNING
<ls_dd03l>. CLEAR l_value. IF <ls_dd03l>-fieldname+0(1) = '.'.
CONTINUE. ENDIF. IF NOT <ls_dd03l>-datatype = 'RAWSTRING'. ASSIGN
COMPONENT <ls_dd03l>-fieldname OF STRUCTURE <ls_fs> TO <l_value>.
l_value = <l_value>. ENDIF. IF NOT l_csv IS INITIAL. CONCATENATE l_csv
';' INTO l_csv. ENDIF. CONCATENATE l_csv '"' l_value '"' INTO l_csv.
ENDLOOP. APPEND l_csv TO ct_csv. IF sy-dbcnt = g_add_db_max_lines.
EXIT. ENDIF. ENDSELECT. ENDFORM. FORM data2xml USING value(i_tabname)
CHANGING ct_xml TYPE it_string. DATA: lt_dd03l TYPE STANDARD TABLE OF
dd03l, ls_dd03t TYPE dd03t, ls_dd02l TYPE dd02l, ls_dd02t TYPE dd02t,
l_fieldname(30) TYPE c, l_position TYPE tabfdpos, l_value TYPE string,
l_xml TYPE string, ls_fs TYPE REF TO data. FIELD-SYMBOLS: <ls_dd03l>
TYPE dd03l, <ls_fs> TYPE ANY, <l_value> TYPE ANY. REFRESH ct_xml.
SELECT * FROM dd03l INTO TABLE lt_dd03l WHERE tabname = i_tabname AND
as4local = 'A' ORDER BY position. APPEND
'<?xml version="1.0" encoding="UTF-8" ?>' TO ct_xml. APPEND '<db>' TO
ct_xml. APPEND '<definition><table>' TO ct_xml. SELECT SINGLE * FROM
dd02l INTO ls_dd02l WHERE tabname = i_tabname AND as4local = 'A'.
SELECT fieldname position FROM dd03l INTO (l_fieldname, l_position)
WHERE tabname = 'DD02L' ORDER BY position. ASSIGN COMPONENT l_fieldname
OF STRUCTURE ls_dd02l TO <l_value>. IF NOT <l_value> IS INITIAL.
l_value = <l_value>. PERFORM encode_html CHANGING l_value. TRANSLATE
l_fieldname TO LOWER CASE. CONCATENATE '<' l_fieldname ' value="'
l_value '"/>' INTO l_xml. APPEND l_xml TO ct_xml. ENDIF. ENDSELECT.
SELECT * FROM dd02t INTO ls_dd02t WHERE tabname = i_tabname AND
as4local = 'A'. CONCATENATE '<text language="' ls_dd02t-ddlanguage '">'
ls_dd02t-ddtext '</text>' INTO l_xml. APPEND l_xml TO ct_xml.
ENDSELECT. APPEND '</table>' TO ct_xml. LOOP AT lt_dd03l ASSIGNING
<ls_dd03l>. IF <ls_dd03l>-fieldname+0(1) = '.'. CONTINUE. ENDIF. APPEND
'<col>' TO ct_xml. SELECT fieldname position FROM dd03l INTO
(l_fieldname, l_position) WHERE tabname = 'DD03L' AND fieldname <>
'TABNAME' ORDER BY position. ASSIGN COMPONENT l_fieldname OF STRUCTURE
<ls_dd03l> TO <l_value>. l_value = <l_value>. IF NOT <l_value> IS
INITIAL. PERFORM encode_html CHANGING l_value. TRANSLATE l_fieldname TO
LOWER CASE. CONCATENATE '<' l_fieldname '>' l_value '</' l_fieldname
'>' INTO l_xml. APPEND l_xml TO ct_xml. ENDIF. ENDSELECT. SELECT * FROM
dd03t INTO ls_dd03t WHERE tabname = <ls_dd03l>-tabname AND fieldname =
<ls_dd03l>-fieldname AND as4local = 'A'. CONCATENATE '<text language="'
ls_dd03t-ddlanguage '">' ls_dd03t-ddtext '</text>' INTO l_xml. APPEND
l_xml TO ct_xml. ENDSELECT. APPEND '</col>' TO ct_xml. ENDLOOP. APPEND
'</definition>' TO ct_xml. APPEND '<lines>' TO ct_xml. CREATE DATA
ls_fs TYPE (i_tabname). ASSIGN ls_fs->* TO <ls_fs>. SELECT * FROM
(i_tabname) INTO <ls_fs>. CLEAR l_xml. APPEND '<line>' TO ct_xml. LOOP
AT lt_dd03l ASSIGNING <ls_dd03l>. IF <ls_dd03l>-fieldname+0(1) = '.'.
CONTINUE. ENDIF. CLEAR l_value. IF NOT <ls_dd03l>-datatype =
'RAWSTRING'. ASSIGN COMPONENT <ls_dd03l>-fieldname OF STRUCTURE <ls_fs>
TO <l_value>. l_value = <l_value>. PERFORM encode_html CHANGING
l_value. ENDIF. IF NOT <l_value> IS INITIAL. IF <ls_dd03l>-fieldname(1)
= '.'. <ls_dd03l>-fieldname(1) = '_'. ENDIF. CONCATENATE '<cell name="'
<ls_dd03l>-fieldname '">' l_value '</cell>' INTO l_xml. APPEND l_xml TO
ct_xml. ENDIF. ENDLOOP. APPEND '</line>' TO ct_xml. IF sy-dbcnt =
g_add_db_max_lines. EXIT. ENDIF. ENDSELECT. APPEND '</lines></db>' TO
ct_xml. ENDFORM. FORM lic_gpl_html CHANGING c_title TYPE string ct_html
TYPE it_string. DATA: ls_html TYPE string. c_title =
'GNU General Public License'. CONCATENATE
'<p style="text-align: center;">Version 3, 29 June 2007</p>'
'<p>Copyright &copy; 2007 Free Software Foundation, Inc.'
' &lt;http://fsf.org/&gt;</p>'
'<p>Everyone is permitted to copy and distribute verbatim copies'
' of this license document, but changing it is not allowed.</p>' INTO
ls_html. APPEND ls_html TO ct_html. APPEND
'<h3><a name="preamble"></a>Preamble</h3>' TO ct_html. CONCATENATE
'<p>The GNU General Public License is a free, copyleft license for'
' software and other kinds of works.</p>' INTO ls_html. APPEND ls_html
TO ct_html. CONCATENATE
'<p>The licenses for most software and other practical works are'
' designed to take away your freedom to share and change the works.'
' By contrast, the GNU General Public License is intended to'
' guarantee your freedom to share and change all versions of a'
' program--to make sure it remains free software for all its users.'
' We, the Free Software Foundation, use the GNU General Public'
' License for most of our software; it applies also to any other'
' work released this way by its authors.  You can apply it to your'
' programs, too.</p>' INTO ls_html. APPEND ls_html TO ct_html.
CONCATENATE
'<p>When we speak of free software, we are referring to freedom, not'
' price.  Our General Public Licenses are designed to make sure that'
' you have the freedom to distribute copies of free software (and'
' charge for them if you wish), that you receive source code or can'
' get it if you want it, that you can change the software or use'
' pieces of it in new free programs, and that you know you can do'
' these things.</p>' INTO ls_html. APPEND ls_html TO ct_html.
CONCATENATE
'<p>To protect your rights, we need to prevent others from denying'
' you these rights or asking you to surrender the rights.'
' Therefore, you have certain responsibilities if you distribute'
' copies of the software, or if you modify it: responsibilities to'
' respect the freedom of others.</p>' INTO ls_html. APPEND ls_html TO
ct_html. CONCATENATE
'<p>For example, if you distribute copies of such a program, whether'
' gratis or for a fee, you must pass on to the recipients the same'
' freedoms that you received. You must make sure that they, too,'
' receive or can get the source code. And you must show them these'
' terms so they know their rights.</p>' INTO ls_html. APPEND ls_html TO
ct_html. CONCATENATE
'<p>Developers that use the GNU GPL protect your rights with two'
' steps: (1) assert copyright on the software, and (2) offer you'
' this License giving you legal permission to copy, distribute'
' and/or modify it.</p>' INTO ls_html. APPEND ls_html TO ct_html.
CONCATENATE
'<p>For the developers'' and authors'' protection, the GPL clearly'
' explains that there is no warranty for this free software. For'
' both users'' and authors'' sake, the GPL requires that modified'
' versions be marked as changed, so that their problems will not be'
' attributed erroneously to authors of previous versions.</p>' INTO
ls_html. APPEND ls_html TO ct_html. CONCATENATE
'<p>Some devices are designed to deny users access to install or run'
' modified versions of the software inside them, although the'
' manufacturer can do so. This is fundamentally incompatible with'
' the aim of protecting users'' freedom to change the software. The'
' systematic pattern of such abuse occurs in the area of products'
' for individuals to use, which is precisely where it is most'
' unacceptable. Therefore, we have designed this version of the GPL'
' to prohibit the practice for those products. If such problems'
' arise substantially in other domains, we stand ready to extend'
' this provision to those domains in future versions of the GPL, as'
' needed to protect the freedom of users.</p>' INTO ls_html. APPEND
ls_html TO ct_html. CONCATENATE
'<p>Finally, every program is threatened constantly by'
' software patents. States should not allow patents to restrict'
' development and use of software on general-purpose computers, but'
' in those that do, we wish to avoid the special danger that'
' patents applied to a free program could make it effectively'
' proprietary.  To prevent this, the GPL assures that patents'
' cannot be used to render the program non-free.</p>' INTO ls_html.
APPEND ls_html TO ct_html. CONCATENATE
'<p>The precise terms and conditions for copying, distribution and'
' modification follow.</p>' INTO ls_html. APPEND ls_html TO ct_html.
APPEND '<h3><a name="terms"></a>TERMS AND CONDITIONS</h3>' TO ct_html.
APPEND '<h4><a name="section0"></a>0. Definitions.</h4>' TO ct_html.
CONCATENATE
'<p>&ldquo;This License&rdquo; refers to version 3 of the GNU'
' General Public License.</p>' INTO ls_html. APPEND ls_html TO ct_html.
CONCATENATE
'<p>&ldquo;Copyright&rdquo; also means copyright-like laws that'
' apply to other kinds of works, such as semiconductor masks.</p>' INTO
ls_html. APPEND ls_html TO ct_html. CONCATENATE
'<p>&ldquo;The Program&rdquo; refers to any copyrightable work'
' licensed under this License. Each licensee is addressed as'
' &ldquo;you&rdquo;. &ldquo;Licensees&rdquo; and'
' &ldquo;recipients&rdquo; may be individuals or organizations.</p>'
INTO ls_html. APPEND ls_html TO ct_html. CONCATENATE
'<p>To &ldquo;modify&rdquo; a work means to copy from or adapt all'
' or part of the work in a fashion requiring copyright permission,'
' other than the making of an exact copy. The resulting work is'
' called a &ldquo;modified version&rdquo; of the earlier work or a'
' work &ldquo;based on&rdquo; the earlier work.</p>' INTO ls_html.
APPEND ls_html TO ct_html. CONCATENATE
'<p>A &ldquo;covered work&rdquo; means either the unmodified'
' Program or a work based on the Program.</p>' INTO ls_html. APPEND
ls_html TO ct_html. CONCATENATE
'<p>To &ldquo;propagate&rdquo; a work means to do anything with it'
' that, without permission, would make you directly or secondarily'
' liable for infringement under applicable copyright law, except'
' executing it on a computer or modifying a private copy.'
' Propagation includes copying, distribution (with or without'
' modification), making available to the public, and in some'
' countries other activities as well.</p>' INTO ls_html. APPEND ls_html
TO ct_html. CONCATENATE
'<p>To &ldquo;convey&rdquo; a work means any kind of propagation'
' that enables other parties to make or receive copies. Mere'
' interaction with a user through a computer network, with no'
' transfer of a copy, is not conveying.</p>' INTO ls_html. APPEND
ls_html TO ct_html. CONCATENATE
'<p>An interactive user interface displays &ldquo;Appropriate Legal'
' Notices&rdquo; to the extent that it includes a convenient and'
' prominently visible feature that (1) displays an appropriate'
' copyright notice, and (2) tells the user that there is no'
' warranty for the work (except to the extent that warranties are'
' provided), that licensees may convey the work under this License,'
' and how to view a copy of this License. If the interface presents'
' a list of user commands or options, such as a menu, a prominent'
' item in the list meets this criterion.</p>' INTO ls_html. APPEND
ls_html TO ct_html. APPEND
'<h4><a name="section1"></a>1. Source Code.</h4>' TO ct_html.
CONCATENATE
'<p>The &ldquo;source code&rdquo; for a work means the preferred'
' form of the work for making modifications to it. &ldquo;Object'
' code&rdquo; means any non-source form of a work.</p>' INTO ls_html.
APPEND ls_html TO ct_html. CONCATENATE
'<p>A &ldquo;Standard Interface&rdquo; means an interface that'
' either is an official standard defined by a recognized standards'
' body, or, in the case of interfaces specified for a particular'
' programming language, one that is widely used among developers'
' working in that language.</p>' INTO ls_html. APPEND ls_html TO
ct_html. CONCATENATE
'<p>The &ldquo;System Libraries&rdquo; of an executable work'
' include anything, other than the work as a whole, that (a) is'
' included in the normal form of packaging a Major Component, but'
' which is not part of that Major Component, and (b) serves only'
' to enable use of the work with that Major Component, or to'
' implement a Standard Interface for which an implementation is'
' available to the public in source code form. A'
' &ldquo;Major Component&rdquo;, in this context, means a major'
' essential component (kernel, window system, and so on) of the'
' specific operating system (if any) on which the executable work'
' runs, or a compiler used to produce the work, or an object code'
' interpreter used to run it.</p>' INTO ls_html. APPEND ls_html TO
ct_html. CONCATENATE
'<p>The &ldquo;Corresponding Source&rdquo; for a work in object'
' code form means all the source code needed to generate, install,'
' and (for an executable work) run the object code and to modify'
' the work, including scripts to control those activities. However,'
' it does not include the work''s System Libraries, or'
' general-purpose tools or generally available free programs which'
' are used unmodified in performing those activities but which are'
' not part of the work.  For example, Corresponding Source includes'
' interface definition files associated with source files for the'
' work, and the source code for shared libraries and dynamically'
' linked subprograms that the work is specifically designed to'
' require, such as by intimate data communication or control flow'
' between those subprograms and other parts of the work.</p>' INTO
ls_html. APPEND ls_html TO ct_html. CONCATENATE
'<p>The Corresponding Source need not include anything that users'
' can regenerate automatically from other parts of the'
' Corresponding Source.</p>' INTO ls_html. APPEND ls_html TO ct_html.
CONCATENATE
'<p>The Corresponding Source for a work in source code form is that'
' same work.</p>' INTO ls_html. APPEND ls_html TO ct_html. APPEND
'<h4><a name="section2"></a>2. Basic Permissions.</h4>' TO ct_html.
CONCATENATE
'<p>All rights granted under this License are granted for the term'
' of copyright on the Program, and are irrevocable provided the'
' stated conditions are met. This License explicitly affirms your'
' unlimited permission to run the unmodified Program. The output'
' from running a covered work is covered by this License only if'
' the output, given its content, constitutes a covered work. This'
' License acknowledges your rights of fair use or other equivalent,'
' as provided by copyright law.</p>' INTO ls_html. APPEND ls_html TO
ct_html. CONCATENATE
'<p>You may make, run and propagate covered works that you do not'
' convey, without conditions so long as your license otherwise'
' remains in force. You may convey covered works to others for the'
' sole purpose of having them make modifications exclusively for'
' you, or provide you with facilities for running those works,'
' provided that you comply with the terms of this License in'
' conveying all material for which you do not control copyright.'
' Those thus making or running the covered works for you must do so'
' exclusively on your behalf, under your direction and control, on'
' terms that prohibit them from making any copies of your'
' copyrighted material outside their relationship with you.</p>' INTO
ls_html. APPEND ls_html TO ct_html. CONCATENATE
'<p>Conveying under any other circumstances is permitted solely'
' under the conditions stated below.  Sublicensing is not allowed;'
' section 10 makes it unnecessary.</p>' INTO ls_html. APPEND ls_html TO
ct_html. CONCATENATE
'<h4><a name="section3"></a>3. Protecting Users'' Legal Rights From'
' Anti-Circumvention Law.</h4>' INTO ls_html. APPEND ls_html TO
ct_html. CONCATENATE
'<p>No covered work shall be deemed part of an effective'
' technological measure under any applicable law fulfilling'
' obligations under article 11 of the WIPO copyright treaty adopted'
' on 20 December 1996, or similar laws prohibiting or restricting'
' circumvention of such measures.</p>' INTO ls_html. APPEND ls_html TO
ct_html. CONCATENATE
'<p>When you convey a covered work, you waive any legal power to'
' forbid circumvention of technological measures to the extent such'
' circumvention is effected by exercising rights under this License'
' with respect to the covered work, and you disclaim any intention'
' to limit operation or modification of the work as a means of'
' enforcing, against the work''s users, your or third parties'''
' legal rights to forbid circumvention of technological measures.'
'</p>' INTO ls_html. APPEND ls_html TO ct_html. APPEND
'<h4><a name="section4"></a>4. Conveying Verbatim Copies.</h4>' TO
ct_html. CONCATENATE
'<p>You may convey verbatim copies of the Program''s source code as'
' you receive it, in any medium, provided that you conspicuously'
' and appropriately publish on each copy an appropriate copyright'
' notice; keep intact all notices stating that this License and any'
' non-permissive terms added in accord with section 7 apply to the'
' code; keep intact all notices of the absence of any warranty; and'
' give all recipients a copy of this License along with the'
' Program.</p>' INTO ls_html. APPEND ls_html TO ct_html. CONCATENATE
'<p>You may charge any price or no price for each copy that you'
' convey, and you may offer support or warranty protection for a'
' fee.</p>' INTO ls_html. APPEND ls_html TO ct_html. CONCATENATE
'<h4><a name="section5"></a>5. Conveying Modified Source'
' Versions.</h4>' INTO ls_html. APPEND ls_html TO ct_html. CONCATENATE
'<p>You may convey a work based on the Program, or the'
' modifications to produce it from the Program, in the form of'
' source code under the terms of section 4, provided that you also'
' meet all of these conditions:</p>' INTO ls_html. APPEND ls_html TO
ct_html. CONCATENATE '<ul>'
'<li>a) The work must carry prominent notices stating that you'
' modified it, and giving a relevant date.</li>' INTO ls_html. APPEND
ls_html TO ct_html. CONCATENATE
'<li>b) The work must carry prominent notices stating that it is'
' released under this License and any conditions added under'
' section 7. This requirement modifies the requirement in section 4'
' to &ldquo;keep intact all notices&rdquo;.</li>' INTO ls_html. APPEND
ls_html TO ct_html. CONCATENATE
'<li>c) You must license the entire work, as a whole, under this'
' License to anyone who comes into possession of a copy. This'
' License will therefore apply, along with any applicable section 7'
' additional terms, to the whole of the work, and all its parts,'
' regardless of how they are packaged. This License gives no'
' permission to license the work in any other way, but it does not'
' invalidate such permission if you have separately received it.'
'</li>' INTO ls_html. APPEND ls_html TO ct_html. CONCATENATE
'<li>d) If the work has interactive user interfaces, each must'
' display Appropriate Legal Notices; however, if the Program has'
' interactive interfaces that do not display Appropriate Legal'
' Notices, your work need not make them do so.</li>' '</ul>' INTO
ls_html. APPEND ls_html TO ct_html. CONCATENATE
'<p>A compilation of a covered work with other separate and'
' independent works, which are not by their nature extensions of'
' the covered work, and which are not combined with it such as to'
' form a larger program, in or on a volume of a storage or'
' distribution medium, is called an &ldquo;aggregate&rdquo; if the'
' compilation and its resulting copyright are not used to limit the'
' access or legal rights of the compilation''s users beyond what the'
' individual works permit.  Inclusion of a covered work in an'
' aggregate does not cause this License to apply to the other parts'
' of the aggregate.</p>' INTO ls_html. APPEND ls_html TO ct_html.
APPEND '<h4><a name="section6"></a>6. Conveying Non-Source Forms.</h4>'
TO ct_html. CONCATENATE
'<p>You may convey a covered work in object code form under the terms'
' of sections 4 and 5, provided that you also convey the'
' machine-readable Corresponding Source under the terms of this'
' License, in one of these ways:</p>' INTO ls_html. APPEND ls_html TO
ct_html. CONCATENATE '<ul>'
'<li>a) Convey the object code in, or embodied in, a physical'
' product (including a physical distribution medium), accompanied'
' by the Corresponding Source fixed on a durable physical medium'
' customarily used for software interchange.</li>' INTO ls_html. APPEND
ls_html TO ct_html. CONCATENATE
'<li>b) Convey the object code in, or embodied in, a physical'
' product (including a physical distribution medium), accompanied'
' by a written offer, valid for at least three years and valid for'
' as long as you offer spare parts or customer support for that'
' product model, to give anyone who possesses the object code'
' either (1) a copy of the Corresponding Source for all the'
' software in the product that is covered by this License, on a'
' durable physical medium customarily used for software'
' interchange, for a price no more than your reasonable cost of'
' physically performing this conveying of source, or (2) access to'
' copy the Corresponding Source from a network server at no charge.'
'</li>' INTO ls_html. APPEND ls_html TO ct_html. CONCATENATE
'<li>c) Convey individual copies of the object code with a copy of'
' the written offer to provide the Corresponding Source. This'
' alternative is allowed only occasionally and noncommercially, and'
' only if you received the object code with such an offer, in'
' accord with subsection 6b.</li>' INTO ls_html. APPEND ls_html TO
ct_html. CONCATENATE
'<li>d) Convey the object code by offering access from a designated'
' place (gratis or for a charge), and offer equivalent access to'
' the Corresponding Source in the same way through the same place'
' at no further charge. You need not require recipients to copy the'
' Corresponding Source along with the object code. If the place to'
' copy the object code is a network server, the Corresponding'
' Source may be on a different server (operated by you or a third'
' party) that supports equivalent copying facilities, provided you'
' maintain clear directions next to the object code saying where to'
' find the Corresponding Source. Regardless of what server hosts the'
' Corresponding Source, you remain obligated to ensure that it is'
' available for as long as needed to satisfy these requirements.'
'</li>' INTO ls_html. APPEND ls_html TO ct_html. CONCATENATE
'<li>e) Convey the object code using peer-to-peer transmission,'
' provided you inform other peers where the object code and'
' Corresponding Source of the work are being offered to the general'
'public at no charge under subsection 6d.</li>' '</ul>' INTO ls_html.
APPEND ls_html TO ct_html. CONCATENATE
'<p>A separable portion of the object code, whose source code is'
' excluded from the Corresponding Source as a System Library, need'
' not be included in conveying the object code work.</p>' INTO ls_html.
APPEND ls_html TO ct_html. CONCATENATE
'<p>A &ldquo;User Product&rdquo; is either (1) a &ldquo;consumer'
' product&rdquo;, which means any tangible personal property which'
' is normally used for personal, family, or household purposes, or'
' (2) anything designed or sold for incorporation into a dwelling.'
' In determining whether a product is a consumer product, doubtful'
' cases shall be resolved in favor of coverage. For a particular'
' product received by a particular user, &ldquo;normally used&rdquo;'
' refers to a typical or common use of that class of product,'
' regardless of the status of the particular user or of the way in'
' which the particular user actually uses, or expects or is'
' expected to use, the product. A product is a consumer product'
' regardless of whether the product has substantial commercial,'
' industrial or non-consumer uses, unless such uses represent'
' the only significant mode of use of the product.</p>' INTO ls_html.
APPEND ls_html TO ct_html. CONCATENATE
'<p>&ldquo;Installation Information&rdquo; for a User Product means'
' any methods, procedures, authorization keys, or other information'
' required to install and execute modified versions of a covered'
' work in that User Product from a modified version of its'
' Corresponding Source. The information must suffice to ensure that'
' the continued functioning of the modified object code is in no'
' case prevented or interfered with solely because modification has'
' been made.</p>' INTO ls_html. APPEND ls_html TO ct_html. CONCATENATE
'<p>If you convey an object code work under this section in, or'
' with, or specifically for use in, a User Product, and the'
' conveying occurs as part of a transaction in which the right of'
' possession and use of the User Product is transferred to the'
' recipient in perpetuity or for a fixed term (regardless of how'
' the transaction is characterized), the Corresponding Source'
' conveyed under this section must be accompanied by the'
' Installation Information. But this requirement does not apply if'
' neither you nor any third party retains the ability to install'
' modified object code on the User Product (for example, the work'
' has been installed in ROM).</p>' INTO ls_html. APPEND ls_html TO
ct_html. CONCATENATE
'<p>The requirement to provide Installation Information does not'
' include a requirement to continue to provide support service,'
' warranty, or updates for a work that has been modified or installed'
' by the recipient, or for the User Product in which it has been'
' modified or installed. Access to a network may be denied when the'
' modification itself materially and adversely affects the operation'
' of the network or violates the rules and protocols for'
' communication across the network.</p>' INTO ls_html. APPEND ls_html
TO ct_html. CONCATENATE
'<p>Corresponding Source conveyed, and Installation Information'
' provided, in accord with this section must be in a format that is'
' publicly documented (and with an implementation available to the'
' public in source code form), and must require no special password'
' or key for unpacking, reading or copying.</p>' INTO ls_html. APPEND
ls_html TO ct_html. APPEND
'<h4><a name="section7"></a>7. Additional Terms.</h4>' TO ct_html.
CONCATENATE
'<p>&ldquo;Additional permissions&rdquo; are terms that supplement'
' the terms of this License by making exceptions from one or more'
' of its conditions. Additional permissions that are applicable to'
' the entire Program shall be treated as though they were included'
' in this License, to the extent that they are valid under'
' applicable law. If additional permissions apply only to part of'
' the Program, that part may be used separately under those'
' permissions, but the entire Program remains governed by this'
' License without regard to the additional permissions.</p>' INTO
ls_html. APPEND ls_html TO ct_html. CONCATENATE
'<p>When you convey a copy of a covered work, you may at your'
' option remove any additional permissions from that copy, or from'
' any part of it. (Additional permissions may be written to require'
' their own removal in certain cases when you modify the work.)'
' You may place additional permissions on material, added by you to'
' a covered work, for which you have or can give appropriate'
' copyright permission.</p>' INTO ls_html. APPEND ls_html TO ct_html.
CONCATENATE
'<p>Notwithstanding any other provision of this License, for'
' material you add to a covered work, you may (if authorized by the'
' copyright holders of that material) supplement the terms of this'
' License with terms:</p>' INTO ls_html. APPEND ls_html TO ct_html.
CONCATENATE '<ul>'
'<li>a) Disclaiming warranty or limiting liability differently from'
' the terms of sections 15 and 16 of this License; or</li>' INTO
ls_html. APPEND ls_html TO ct_html. CONCATENATE
'<li>b) Requiring preservation of specified reasonable legal'
' notices or author attributions in that material or in the'
' Appropriate Legal Notices displayed by works containing it;'
' or</li>' INTO ls_html. APPEND ls_html TO ct_html. CONCATENATE
'<li>c) Prohibiting misrepresentation of the origin of that'
' material, or requiring that modified versions of such material be'
' marked in reasonable ways as different from the original version;'
' or</li>' INTO ls_html. APPEND ls_html TO ct_html. CONCATENATE
'<li>d) Limiting the use for publicity purposes of names of'
' licensors or authors of the material; or</li>' INTO ls_html. APPEND
ls_html TO ct_html. CONCATENATE
'<li>e) Declining to grant rights under trademark law for use of'
' some trade names, trademarks, or service marks; or</li>' INTO
ls_html. APPEND ls_html TO ct_html. CONCATENATE
'<li>f) Requiring indemnification of licensors and authors of that'
' material by anyone who conveys the material (or modified versions'
' of it) with contractual assumptions of liability to the'
' recipient, for any liability that these contractual assumptions'
' directly impose on those licensors and authors.</li>' '</ul>' INTO
ls_html. APPEND ls_html TO ct_html. CONCATENATE
'<p>All other non-permissive additional terms are considered'
' &ldquo;further restrictions&rdquo; within the meaning of section'
' 10. If the Program as you received it, or any part of it, contains'
' a notice stating that it is governed by this License along with a'
' term that is a further restriction, you may remove that term. If a'
' license document contains a further restriction but permits'
' relicensing or conveying under this License, you may add to a'
' covered work material governed by the terms of that license'
' document, provided that the further restriction does not survive'
' such relicensing or conveying.</p>' INTO ls_html. APPEND ls_html TO
ct_html. CONCATENATE
'<p>If you add terms to a covered work in accord with this section,'
' you must place, in the relevant source files, a statement of the'
' additional terms that apply to those files, or a notice'
' indicating where to find the applicable terms.</p>' INTO ls_html.
APPEND ls_html TO ct_html. CONCATENATE
'<p>Additional terms, permissive or non-permissive, may be stated'
' in the form of a separately written license, or stated as'
' exceptions; the above requirements apply either way.</p>' INTO
ls_html. APPEND ls_html TO ct_html. APPEND
'<h4><a name="section8"></a>8. Termination.</h4>' TO ct_html.
CONCATENATE
'<p>You may not propagate or modify a covered work except as'
' expressly provided under this License. Any attempt otherwise to'
' propagate or modify it is void, and will automatically terminate'
' your rights under this License (including any patent licenses'
' granted under the third paragraph of section 11).</p>' INTO ls_html.
APPEND ls_html TO ct_html. CONCATENATE
'<p>However, if you cease all violation of this License, then your'
' license from a particular copyright holder is reinstated (a)'
' provisionally, unless and until the copyright holder explicitly'
' and finally terminates your license, and (b) permanently, if the'
' copyright holder fails to notify you of the violation by some'
' reasonable means prior to 60 days after the cessation.</p>' INTO
ls_html. APPEND ls_html TO ct_html. CONCATENATE
'<p>Moreover, your license from a particular copyright holder is'
' reinstated permanently if the copyright holder notifies you of'
' the violation by some reasonable means, this is the first time'
' you have received notice of violation of this License (for any'
' work) from that copyright holder, and you cure the violation'
' prior to 30 days after your receipt of the notice.</p>' INTO ls_html.
APPEND ls_html TO ct_html. CONCATENATE
'<p>Termination of your rights under this section does not'
' terminate the licenses of parties who have received copies or'
' rights from you under this License. If your rights have been'
' terminated and not permanently reinstated, you do not qualify'
' to receive new licenses for the same material under section 10.'
'</p>' INTO ls_html. APPEND ls_html TO ct_html. CONCATENATE
'<h4><a name="section9"></a>9. Acceptance Not Required for Having'
' Copies.</h4>' INTO ls_html. APPEND ls_html TO ct_html. CONCATENATE
'<p>You are not required to accept this License in order to receive'
' or run a copy of the Program.  Ancillary propagation of a covered'
' work occurring solely as a consequence of using peer-to-peer'
' transmission to receive a copy likewise does not require'
' acceptance.  However, nothing other than this License grants you'
' permission to propagate or modify any covered work. These actions'
' infringe copyright if you do not accept this License. Therefore,'
' by modifying or propagating a covered work, you indicate your'
' acceptance of this License to do so.</p>' INTO ls_html. APPEND
ls_html TO ct_html. CONCATENATE
'<h4><a name="section10"></a>10. Automatic Licensing of Downstream'
' Recipients.</h4>' INTO ls_html. APPEND ls_html TO ct_html.
CONCATENATE '<p>Each time you convey a covered work, the recipient'
' automatically receives a license from the original licensors, to'
' run, modify and propagate that work, subject to this License. You'
' are not responsible for enforcing compliance by third parties'
' with this License.</p>' INTO ls_html. APPEND ls_html TO ct_html.
CONCATENATE '<p>An &ldquo;entity transaction&rdquo; is a transaction'
' transferring control of an organization, or substantially all'
' assets of one, or subdividing an organization, or merging'
' organizations. If propagation of a covered work results from an'
' entity transaction, each party to that transaction who receives a'
' copy of the work also receives whatever licenses to the work the'
' party''s predecessor in interest had or could give under the'
' previous paragraph, plus a right to possession of the'
' Corresponding Source of the work from the predecessor in'
' interest, if the predecessor has it or can get it with reasonable'
' efforts.</p>' INTO ls_html. APPEND ls_html TO ct_html. CONCATENATE
'<p>You may not impose any further restrictions on the exercise of'
' the rights granted or affirmed under this License.  For example,'
' you may not impose a license fee, royalty, or other charge for'
' exercise of rights granted under this License, and you may not'
' initiate litigation (including a cross-claim or counterclaim in a'
' lawsuit) alleging that any patent claim is infringed by making,'
' using, selling, offering for sale, or importing the Program or'
' any portion of it.</p>' INTO ls_html. APPEND ls_html TO ct_html.
APPEND '<h4><a name="section11"></a>11. Patents.</h4>' TO ct_html.
CONCATENATE '<p>A &ldquo;contributor&rdquo; is a copyright holder who'
' authorizes use under this License of the Program or a work on'
' which the Program is based. The work thus licensed is called the'
' contributor''s &ldquo;contributor version&rdquo;.</p>' INTO ls_html.
APPEND ls_html TO ct_html. CONCATENATE
'<p>A contributor''s &ldquo;essential patent claims&rdquo; are all'
' patent claims owned or controlled by the contributor, whether'
' already acquired or hereafter acquired, that would be infringed'
' by some manner, permitted by this License, of making, using, or'
' selling its contributor version, but do not include claims that'
' would be infringed only as a consequence of further modification'
' of the contributor version.  For purposes of this definition,'
' &ldquo;control&rdquo; includes the right to grant patent'
' sublicenses in a manner consistent with the requirements of this'
' License.</p>' INTO ls_html. APPEND ls_html TO ct_html. CONCATENATE
'<p>Each contributor grants you a non-exclusive, worldwide,'
' royalty-free patent license under the contributor''s essential'
' patent claims, to make, use, sell, offer for sale, import and'
' otherwise run, modify and propagate the contents of its'
' contributor version.</p>' INTO ls_html. APPEND ls_html TO ct_html.
CONCATENATE '<p>In the following three paragraphs, a &ldquo;patent'
' license&rdquo; is any express agreement or commitment, however'
' denominated, not to enforce a patent (such as an express'
' permission to practice a patent or covenant not to sue for patent'
' infringement). To &ldquo;grant&rdquo; such a patent license to a'
' party means to make such an agreement or commitment not to'
' enforce a patent against the party.</p>' INTO ls_html. APPEND ls_html
TO ct_html. CONCATENATE
'<p>If you convey a covered work, knowingly relying on a patent'
' license, and the Corresponding Source of the work is not'
' available for anyone to copy, free of charge and under the terms'
' of this License, through a publicly available network server or'
' other readily accessible means, then you must either (1) cause'
' the Corresponding Source to be so available, or (2) arrange to'
' deprive yourself of the benefit of the patent license for this'
' particular work, or (3) arrange, in a manner consistent with the'
' requirements of this License, to extend the patent license to'
' downstream recipients. &ldquo;Knowingly relying&rdquo; means you'
' have actual knowledge that, but for the patent license, your'
' conveying the covered work in a country, or your recipient''s use'
' of the covered work in a country, would infringe one or more'
' identifiable patents in that country that you have reason to'
' believe are valid.</p>' INTO ls_html. APPEND ls_html TO ct_html.
CONCATENATE
'<p>If, pursuant to or in connection with a single transaction or'
' arrangement, you convey, or propagate by procuring conveyance of,'
' a covered work, and grant a patent license to some of the parties'
' receiving the covered work authorizing them to use, propagate,'
' modify or convey a specific copy of the covered work, then the'
' patent license you grant is automatically extended to all'
' recipients of the covered work and works based on it.</p>' INTO
ls_html. APPEND ls_html TO ct_html. CONCATENATE
'<p>A patent license is &ldquo;discriminatory&rdquo; if it does not'
' include within the scope of its coverage, prohibits the exercise'
' of, or is conditioned on the non-exercise of one or more of the'
' rights that are specifically granted under this License. You may'
' not convey a covered work if you are a party to an arrangement'
' with a third party that is in the business of distributing'
' software, under which you make payment to the third party based'
' on the extent of your activity of conveying the work, and under'
' which the third party grants, to any of the parties who would'
' receive the covered work from you, a discriminatory patent'
' license (a) in connection with copies of the covered work'
' conveyed by you (or copies made from those copies), or (b)'
' primarily for and in connection with specific products or'
' compilations that contain the covered work, unless you entered'
' into that arrangement, or that patent license was granted, prior'
' to 28 March 2007.</p>' INTO ls_html. APPEND ls_html TO ct_html.
CONCATENATE
'<p>Nothing in this License shall be construed as excluding or'
' limiting any implied license or other defenses to infringement'
' that may otherwise be available to you under applicable patent'
' law.</p>' INTO ls_html. APPEND ls_html TO ct_html. CONCATENATE
'<h4><a name="section12"></a>12. No Surrender of Others'' Freedom.'
'</h4>' INTO ls_html. APPEND ls_html TO ct_html. CONCATENATE
'<p>If conditions are imposed on you (whether by court order,'
' agreement or otherwise) that contradict the conditions of this'
' License, they do not excuse you from the conditions of this'
' License.  If you cannot convey a covered work so as to satisfy'
' simultaneously your obligations under this License and any other'
' pertinent obligations, then as a consequence you may not convey'
' it at all. For example, if you agree to terms that obligate you'
' to collect a royalty for further conveying from those to whom you'
' convey the Program, the only way you could satisfy both those'
' terms and this License would be to refrain entirely from'
' conveying the Program.</p>' INTO ls_html. APPEND ls_html TO ct_html.
CONCATENATE
'<h4><a name="section13"></a>13. Use with the GNU Affero General'
' Public License.</h4>' INTO ls_html. APPEND ls_html TO ct_html.
CONCATENATE
'<p>Notwithstanding any other provision of this License, you have'
' permission to link or combine any covered work with a work'
' licensed under version 3 of the GNU Affero General Public License'
' into a single combined work, and to convey the resulting work.'
' The terms of this License will continue to apply to the part'
' which is the covered work, but the special requirements of the'
' GNU Affero General Public License, section 13, concerning'
' interaction through a network will apply to the combination as'
' such.</p>' INTO ls_html. APPEND ls_html TO ct_html. CONCATENATE
'<h4><a name="section14"></a>14. Revised Versions of this License.'
'</h4>' INTO ls_html. APPEND ls_html TO ct_html. CONCATENATE
'<p>The Free Software Foundation may publish revised and/or new'
' versions of the GNU General Public License from time to time. Such'
' new versions will be similar in spirit to the present version, but'
' may differ in detail to address new problems or concerns.</p>' INTO
ls_html. APPEND ls_html TO ct_html. CONCATENATE
'<p>Each version is given a distinguishing version number. If the'
' Program specifies that a certain numbered version of the GNU'
' General Public License &ldquo;or any later version&rdquo; applies'
' to it, you have the option of following the terms and conditions'
' either of that numbered version or of any later version published'
' by the Free Software Foundation. If the Program does not specify'
' a version number of the GNU General Public License, you may'
' choose any version ever published by the Free Software'
' Foundation.</p>' INTO ls_html. APPEND ls_html TO ct_html. CONCATENATE
'<p>If the Program specifies that a proxy can decide which future'
' versions of the GNU General Public License can be used, that'
' proxy''s public statement of acceptance of a version permanently'
' authorizes you to choose that version for the Program.</p>' INTO
ls_html. APPEND ls_html TO ct_html. CONCATENATE
'<p>Later license versions may give you additional or different'
' permissions. However, no additional obligations are imposed on'
' any author or copyright holder as a result of your choosing to'
' follow a later version.</p>' INTO ls_html. APPEND ls_html TO ct_html.
APPEND '<h4><a name="section15"></a>15. Disclaimer of Warranty.</h4>'
TO ct_html. CONCATENATE
'<p>THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED'
' BY APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE'
' COPYRIGHT HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM'
' &ldquo;AS IS&rdquo; WITHOUT WARRANTY OF ANY KIND, EITHER'
' EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED'
' WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR'
' PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE'
' PROGRAM IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU'
' ASSUME THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION.'
'</p>' INTO ls_html. APPEND ls_html TO ct_html. APPEND
'<h4><a name="section16"></a>16. Limitation of Liability.</h4>' TO
ct_html. CONCATENATE
'<p>IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN'
' WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO'
' MODIFIES AND/OR CONVEYS THE PROGRAM AS PERMITTED ABOVE, BE LIABLE'
' TO YOU FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR'
' CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE'
' THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA'
' BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD'
' PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER'
' PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF'
' THE POSSIBILITY OF SUCH DAMAGES.</p>' INTO ls_html. APPEND ls_html TO
ct_html. CONCATENATE
'<h4><a name="section17"></a>17. Interpretation of Sections 15 and'
' 16.</h4>' INTO ls_html. APPEND ls_html TO ct_html. CONCATENATE
'<p>If the disclaimer of warranty and limitation of liability'
' provided above cannot be given local legal effect according to'
' their terms, reviewing courts shall apply local law that most'
' closely approximates an absolute waiver of all civil liability'
' in connection with the Program, unless a warranty or assumption'
' of liability accompanies a copy of the Program in return for a'
' fee.</p>' INTO ls_html. APPEND ls_html TO ct_html. ENDFORM. FORM
add_report_sourcecode USING value(i_progname) value(i_filename)
value(i_extension) value(i_add_no_includes) value(is_ztadir) TYPE
st_ztadir value(i_id) value(i_on) TYPE flag CHANGING ct_html TYPE
it_string. DATA: lt_initial TYPE it_string, lt_src TYPE it_string,
lt_src_compressed TYPE it_string, lt_src_no_includes TYPE it_string,
l_lines TYPE i, l_lines_no_includes TYPE i, l_filename TYPE string,
l_filename_compressed TYPE string, l_filename_no_includes TYPE string.
PERFORM try_read_report USING i_progname CHANGING lt_src. IF
g_add_sourcecode = abap_true. l_filename = i_filename. PERFORM download
USING lt_src is_ztadir-pgmid is_ztadir-object l_filename i_extension
abap_false. IF i_add_no_includes = abap_true. PERFORM
try_create_src_no_includes USING lt_initial i_progname i_progname
CHANGING lt_src_no_includes. DESCRIBE TABLE lt_src LINES l_lines.
DESCRIBE TABLE lt_src_no_includes LINES l_lines_no_includes. IF l_lines
< l_lines_no_includes. CONCATENATE l_filename '.complete' INTO
l_filename_no_includes. PERFORM download USING lt_src_no_includes
is_ztadir-pgmid is_ztadir-object l_filename_no_includes i_extension
abap_false. ENDIF. IF gc_src_max_rows < l_lines_no_includes.
CONCATENATE l_filename '.compressed' INTO l_filename_compressed.
PERFORM get_src_compressed USING lt_src_no_includes abap_false CHANGING
lt_src_compressed. PERFORM download USING lt_src_compressed
is_ztadir-pgmid is_ztadir-object l_filename_compressed i_extension
abap_false. ENDIF. ENDIF. ENDIF. PERFORM html_add_sourcecode USING
lt_src l_filename l_filename_no_includes l_filename_compressed
i_extension i_id i_on CHANGING ct_html. ENDFORM. form
csv_table_structure changing ct_csv type it_string. refresh ct_csv.
data ls_csv type string. concatenate
'CLAS_ALIAS;01;CPDNAME;TXT_INTERFACE_COMPONENT;;L;;;|'
'CLAS_ALIAS;02;TYPE;TXT_LEVEL;;L;;;|'
'CLAS_ALIAS;03;REFCMPNAME;TXT_ALIAS;;L;;;|'
'CLAS_ALIAS;04;EXPOSURE;TXT_VISIBLE;;L;;;|'
'CLAS_ATTRI;01;CPDNAME;TXT_ATTRIBUTE;;L;INHERITED;;|'
'CLAS_ATTRI;02;DECLTYPE;TXT_LEVEL;;L;;;|'
'CLAS_ATTRI;03;EXPOSURE;TXT_VISIBILITY;;L;;;|'
'CLAS_ATTRI;04;CHECK_MODEL;TXT_MODELED_ONLY;;F;;;|'
'CLAS_ATTRI;05;ATTRDONLY;TXT_READ_ONLY;;F;;;|'
'CLAS_ATTRI;06;TYPTYPE;TXT_TYPING;;L;;;|'
'CLAS_ATTRI;07;TYPE;TXT_ASSOCIATED_TYPE;;L;;;|'
'CLAS_ATTRI;08;TYPELINK;;ONCLICK;B;;;|'
'CLAS_ATTRI;09;DESCRIPT;TXT_DESCRIPTION;;L;;;|'
'CLAS_ATTRI;10;ATTVALUE;TXT_INITIAL_VALUE;;L;;;|'
'CLAS_EVENT;01;CPDNAME;TXT_EVENT;;L;INHERITED;;|'
'CLAS_EVENT;02;TYPE;TXT_LEVEL;;L;;;|'
'CLAS_EVENT;03;EXPOSURE;TXT_VISIBILITY;;L;;;|'
'CLAS_EVENT;04;CHECK_MODEL;TXT_MODELED_ONLY;;F;;;|'
'CLAS_EVENT;05;DESCRIPT;TXT_DESCRIPTION;;L;;;|'
'CLAS_FRIEN;01;REFCLSNAME;TXT_INTERFACE;;L;;;|'
'CLAS_FRIEN;02;CHECK_MODEL;TXT_MODELED_ONLY;;F;;;|'
'CLAS_FRIEN;03;DESCRIPT;TXT_DESCRIPTION;;L;;;|'
'CLAS_INTER;01;REFCLSNAME;TXT_INTERFACE;;L;INHERITED;;|'
'CLAS_INTER;02;IMPABSTRCT;TXT_ABSTRACT;;F;;;|'
'CLAS_INTER;03;IMPFINAL;TXT_FINAL;;F;;;|'
'CLAS_INTER;04;CHECK_MODEL;TXT_MODELED_ONLY;;F;;;|'
'CLAS_INTER;05;DESCRIPT;TXT_DESCRIPTION;;L;;;|'
'CLAS_METHO;01;CPDNAME;TXT_METHOD;ONCLICK;H;INHERITED;;|'
'CLAS_METHO;02;TYPE;TXT_LEVEL;;L;;;|'
'CLAS_METHO;03;EXPOSURE;TXT_VISIBILITY;;L;;;|'
'CLAS_METHO;04;CHECK_MODEL;TXT_MODELED_ONLY;;F;;;|'
'CLAS_METHO;05;METHODTYPE;TXT_METHOD_TYPE;;L;;;|'
'CLAS_METHO;06;DESCRIPT;TXT_DESCRIPTION;;L;;;|'
'CLAS_SIGNA;01;DECLARATION;TXT_LEVEL;;L;;;|'
'CLAS_SIGNA;02;PARAMETER;TXT_PARAMETERS;;L;;;|'
'CLAS_SIGNA;03;TYPE;TXT_TYPE_SPEC;;L;;;|'
'CLAS_SIGNA;04;DESCRIPT;TXT_DESCRIPTION;;L;;;|'
'CLAS_SYMBO;01;KEY;TXT_SYMBOL;;L;;;|'
'CLAS_SYMBO;02;ENTRY;TXT_TEXT;;L;;;|'
'CLAS_SYMBO;03;STRLEN;TXT_DLEN;;L;;;|'
'CLAS_SYMBO;04;LENGTH;TXT_LENGTH;;L;;;|'
'CLAS_TYPEG;01;TYPEGROUP;TXTT_TYPE_GROUP_OBJECT_TYPE;;L;;;|'
'CLAS_TYPES;01;CPDNAME;TXT_TYPE___1;;L;INHERITED;;|'
'CLAS_TYPES;02;EXPOSURE;TXT_VISIBILITY;;L;;;|'
'CLAS_TYPES;03;CHECK_MODEL;TXT_MODELED_ONLY;;F;;;|'
'CLAS_TYPES;04;TYPTYPE;TXT_TYPING;;L;;;|'
'CLAS_TYPES;05;TYPE;TXT_ASSOCIATED_TYPE;;L;;;|'
'CLAS_TYPES;06;TYPELINK;;ONCLICK;B;;;|'
'CLAS_TYPES;07;DESCRIPT;TXT_DESCRIPTION;;L;;;|'
'DEVC_INTF;01;INTF_NAME;TXT_PACKAGE_INTERFACE;;L;;;|'
'DEVC_INTF;02;FORSYS;TXT_SYSTEM;;L;;;|'
'DEVC_INTF;03;DESCRIPT;TXT_SHORT_TEXT___2;;L;;;|'
'DEVC_PERM;01;INTF_NAME;TXT_PACKAGE_INTERFACE;;L;;;|'
'DEVC_PERM;02;PACK_NAME;TXT_PACKAGE;;L;;;|'
'DEVC_PERM;03;ERR_SEVER;TXT_ERROR_SEVERITY;;L;;;|'
'DEVC_SUB;01;DEVCLASS;TXT_PACKAGE;;L;;;|'
'DEVC_SUB;02;CTEXT;TXT_SHORT_TEXT___2;;L;;;|'
'ENQU_PARAM;01;KEYFLAG;TXT_W;;F;;;|'
'ENQU_PARAM;02;VIEWFIELD;TXT_LOCK_PARAMETER;;L;;;|'
'ENQU_PARAM;03;TABNAME;TXT_TABLE;;L;;;|'
'ENQU_PARAM;04;FIELDNAME;TXT_FIELD;;L;;;|'
'INTF_ALIAS;01;CPDNAME;TXT_INTERFACE_COMPONENT;;L;;;|'
'INTF_ALIAS;02;TYPE;;;L;;;|'
'INTF_ALIAS;03;REFCMPNAME;TXT_ALIAS;;L;;;|'
'INTF_ATTRI;01;CPDNAME;TXT_ATTRIBUTE;;L;;;|'
'INTF_ATTRI;02;DECLTYPE;TXT_LEVEL;;L;;;|'
'INTF_ATTRI;03;CHECK_MODEL;TXT_MODELED_ONLY;;F;;;|'
'INTF_ATTRI;04;ATTRDONLY;TXT_READ_ONLY;;F;;;|'
'INTF_ATTRI;05;TYPTYPE;TXT_TYPING;;L;;;|'
'INTF_ATTRI;06;TYPELINK;;ONCLICK;B;;;|'
'INTF_ATTRI;07;TYPE;TXT_ASSOCIATED_TYPE;;L;;;|'
'INTF_ATTRI;08;ATTVALUE;TXT_INITIAL_VALUE;;L;;;|'
'INTF_EVENT;01;CPDNAME;TXT_EVENT;;L;;;|'
'INTF_EVENT;02;TYPE;TXT_LEVEL;;L;;;|'
'INTF_EVENT;03;CHECK_MODEL;TXT_MODELED_ONLY;;F;;;|'
'INTF_EVENT;04;DESCRIPT;TXT_DESCRIPTION;;L;;;|'
'INTF_INTER;01;REFCLSNAME;TXT_INCLUDES;;L;;;|'
'INTF_INTER;02;CHECK_MODEL;TXT_MODELED_ONLY;;F;;;|'
'INTF_INTER;03;DESCRIPT;TXT_DESCRIPTION;;L;;;|'
'INTF_METHO;01;CPDNAME;TXT_METHOD;;L;;;|'
'INTF_METHO;02;TYPE;TXT_LEVEL;;L;;;|'
'INTF_METHO;03;CHECK_MODEL;TXT_MODELED_ONLY;;F;;;|'
'INTF_METHO;04;METHODTYPE;TXT_METHOD_TYPE;;L;;;|'
'INTF_METHO;05;DESCRIPT;TXT_DESCRIPTION;;L;;;|'
'INTF_TYPEG;01;TYPEGROUP;TXTT_TYPE_GROUP_OBJECT_TYPE;;L;;;|'
'INTF_TYPES;01;CPDNAME;TXT_TYPE___1;;L;;;|'
'INTF_TYPES;02;TYPTYPE;TXT_TYPING;;L;;;|'
'INTF_TYPES;03;TYPE;TXT_ASSOCIATED_TYPE;;L;;;|'
'INTF_TYPES;04;TYPELINK;;ONCLICK;B;;;|'
'INTF_TYPES;05;DESCRIPT;TXT_DESCRIPTION;;L;;;|'
'MENU_COMPO;01;COMPONENT;TXT_SOFTWARE_COMPONENT;;L;;;|'
'MENU_COMPO;02;RELEASE;TXT_RELEASE;;L;;;|'
'MENU_COMPO;03;LEVEL;TXT_LEVEL;;L;;;|'
'MENU_COMPO;04;HIGH_PACKAGE;TXT_HIGHEST_SUPPORT_PACKAGE;;L;;;|'
'MENU_COMPO;05;DESC_TEXT;TXT_SHORT_DESCRIPTION_OF_SOFTW;;L;;;|'
'MODU_EXCEP;01;NAME;TXT_EXCEPTION___2;;L;;;|'
'MODU_EXCEP;02;STEXT;TXT_SHORT_TEXT___1;;L;;;|'
'MODU_EXCEP;03;LTEXT;TXT_LONG_TEXT;LTEXT_ONCLICK;B;;;|'
'MODU_EXPOR;01;NAME;TXT_PARAMETER_NAME;;L;;;|'
'MODU_EXPOR;02;TYPING;TXT_TYPE_SPEC;;L;;;|' space into ls_csv. append
ls_csv to ct_csv. concatenate
'MODU_EXPOR;03;STRUCTURE;TXT_ASSOCIATED_TYPE;;L;;;|'
'MODU_EXPOR;04;PASSVALUE;TXT_PASS_VALUE;;F;;;|'
'MODU_EXPOR;05;STEXT;TXT_SHORT_TEXT___1;;L;;;|'
'MODU_EXPOR;06;LTEXT;TXT_LONG_TEXT;LTEXT_ONCLICK;B;;;|'
'MODU_IMPOR;01;NAME;TXT_PARAMETER_NAME;;L;;;|'
'MODU_IMPOR;02;TYPING;TXT_TYPE_SPEC;;L;;;|'
'MODU_IMPOR;03;STRUCTURE;TXT_ASSOCIATED_TYPE;;L;;;|'
'MODU_IMPOR;04;DEFAULTVAL;TXT_DEFAULT_VALUE___2;;L;;;|'
'MODU_IMPOR;05;OPTIONAL;TXT_OPTIONAL;;F;;;|'
'MODU_IMPOR;06;PASSVALUE;TXT_PASS_VALUE;;F;;;|'
'MODU_IMPOR;07;STEXT;TXT_SHORT_TEXT___1;;L;;;|'
'MODU_IMPOR;08;LTEXT;TXT_LONG_TEXT;LTEXT_ONCLICK;B;;;|'
'MODU_TABLE;01;NAME;TXT_PARAMETER_NAME;;L;;;|'
'MODU_TABLE;02;TYPING;TXT_TYPE_SPEC;;L;;;|'
'MODU_TABLE;03;STRUCTURE;TXT_ASSOCIATED_TYPE;;L;;;|'
'MODU_TABLE;04;OPTIONAL;TXT_OPTIONAL;;F;;;|'
'MODU_TABLE;05;STEXT;TXT_SHORT_TEXT___1;;L;;;|'
'MODU_TABLE;06;LTEXT;TXT_LONG_TEXT;LTEXT_ONCLICK;B;;;|'
'MSAG_MESS;01;MSGNR;TXT_MESSAGE;;L;;;|'
'MSAG_MESS;02;TEXT;TXT_MESSAGE_SHORT_TEXT;;L;;;|'
'MSAG_MESS;03;NO_DOCU;TXT_SELF_EXPLANATY;;F;;;|'
'MSAG_MESS;04;NAME;TXT_LAST_CHANGED_BY___3;;L;;;|'
'MSAG_MESS;05;DATUM_TEXT;TXT_CHANGED_ON;;L;;;|'
'MSAG_MESS;06;LTEXT;TXT_LONG_TEXT;LTEXT_ONCLICK;B;;;|'
'PROG_SELEC;01;KEY;TXT_NAME;;L;;;|'
'PROG_SELEC;02;ENTRY;TXT_TEXT;;L;;;|'
'PROG_SELEC;03;DICT_REF;TXT_DICTIONARY_REFERENCE;;F;;;|'
'PROG_SYMBO;01;KEY;TXT_SYMBOL;;L;;;|'
'PROG_SYMBO;02;ENTRY;TXT_TEXT;;L;;;|'
'PROG_SYMBO;03;STRLEN;TXT_DLEN;;L;;;|'
'PROG_SYMBO;04;LENGTH;TXT_LENGTH;;L;;;|'
'PROG_VARIA;01;VARIANT;TXT_VARIANT;;L;;;|'
'PROG_VARIA;02;SELNAME;TXT_PARAMETER;;L;;;|'
'PROG_VARIA;03;TEXT;TXT_PARAMETER_NAME;;L;;;|'
'PROG_VARIA;04;KIND;TXT_TYPE___2;;C;;;|'
'PROG_VARIA;05;SIGN;TXT_SIGN;;C;;;|'
'PROG_VARIA;06;OPTION;TXT_OPTION;;C;;;|'
'PROG_VARIA;07;LOW;TXT_LOWER_LIMIT;;L;;;|'
'PROG_VARIA;08;HIGH;TXT_UPPERLIMIT;;L;;;|'
'SCRN_DISPL;01;HIERARCHY;TXT_HIERARCHY;;L;;;|'
'SCRN_DISPL;02;EXTEND;TXT_MODIFIED;;L;;;|'
'SCRN_DISPL;03;NAME;TXT_NAME;;L;;;|'
'SCRN_DISPL;04;GTYP;TXT_TYPE_OF_SCREEN_ELEMENT;;L;;;|'
'SCRN_DISPL;05;HELL;TXT_BRG;;F;;;|'
'SCRN_DISPL;06;UNSI;TXT_INVISIBLE;;F;;;|'
'SCRN_DISPL;07;FJUS;TXT_RIGHT_JUST;;F;;;|'
'SCRN_DISPL;08;FILL;TXT_LEADING_ZEROS;;F;;;|'
'SCRN_DISPL;09;NO3D;TXT_2_DIMENSIONAL;;F;;;|'
'SCRN_DISPL;10;FIXF;TXT_FIXED_FONT;;F;;;|'
'SCRN_DISPL;11;LABELLEFT;TXT_AS_LABEL_LEFT;;F;;;|'
'SCRN_DISPL;12;LABELRIGHT;TXT_AS_LABEL_RIGHT;;F;;;|'
'SCRN_DISPL;13;DBLCLICK;TXT_RESP_TO_DBLCLK;;F;;;|'
'SCRN_GENER;01;HIERARCHY;TXT_HIERARCHY;;L;;;|'
'SCRN_GENER;02;EXTEND;TXT_MODIFIED;;L;;;|'
'SCRN_GENER;03;NAME;TXT_NAME;;L;;;|'
'SCRN_GENER;04;GTYP;TXT_TYPE_OF_SCREEN_ELEMENT;;L;;;|'
'SCRN_GENER;05;LINE;TXT_LINE;;R;;;|'
'SCRN_GENER;06;COLN;TXT_COLUMN;;R;;;|'
'SCRN_GENER;07;LENG;TXT_DEFLG;;R;;;|'
'SCRN_GENER;08;VLENG;TXT_VISLG;;R;;;|'
'SCRN_GENER;09;HIGH;TXT_HEIGHT;;R;;;|'
'SCRN_GENER;10;SCROLL;TXT_SCROLLABLE;;F;;;|'
'SCRN_GENER;11;TYPE;TXT_FORMAT;;L;;;|'
'SCRN_GENER;12;FEIN;TXT_INPUT;;F;;;|'
'SCRN_GENER;13;FOUT;TXT_OUTPUT;;F;;;|'
'SCRN_GENER;14;OOUT;TXT_OUTPUT_ONLY;;F;;;|'
'SCRN_GENER;15;DICT;TXT_DICT_FIELD;;F;;;|'
'SCRN_GENER;16;DMOD;TXT_DICT_MODIFIED;;L;;;|'
'SCRN_IOTEM;01;HIERARCHY;TXT_HIERARCHY;;L;;;|'
'SCRN_IOTEM;02;EXTEND;TXT_MODIFIED;;L;;;|'
'SCRN_IOTEM;03;NAME;TXT_NAME;;L;;;|'
'SCRN_IOTEM;04;GTYP;TXT_TYPE_OF_SCREEN_ELEMENT;;L;;;|'
'SCRN_IOTEM;05;STXT;TXT_TEXT_OR_IO_FIELD;;L;;;|'
'SCRN_IOTEM;06;DROPDOWN;TXT_DROPDOWN;;L;;;|'
'SCRN_IOTEM;07;ICON_X;TXT_WITH_ICON;;F;;;|'
'SCRN_IOTEM;08;ICON;TXT_ICON;;L;;;|'
'SCRN_IOTEM;09;ICON_N;TXT_ICON_NAME;;L;;;|'
'SCRN_IOTEM;10;ICON_Q;TXT_ICON_TEXT;;L;;;|'
'SCRN_MODGR;01;HIERARCHY;TXT_HIERARCHY;;L;;;|'
'SCRN_MODGR;02;EXTEND;TXT_MODIFIED;;L;;;|'
'SCRN_MODGR;03;NAME;TXT_NAME;;L;;;|'
'SCRN_MODGR;04;GTYP;TXT_TYPE_OF_SCREEN_ELEMENT;;L;;;|'
'SCRN_MODGR;05;GRP1;TXT_GROUP_1;;L;;;|'
'SCRN_MODGR;06;GRP2;TXT_GROUP_2;;L;;;|'
'SCRN_MODGR;07;GRP3;TXT_GROUP_3;;L;;;|'
'SCRN_MODGR;08;GRP4;TXT_GROUP_4;;L;;;|'
'SCRN_MODGR;09;CMBFOC;TXT_ENTRY_HELP;;F;;;|'
'SCRN_MODGR;10;DROPFROM;TXT_VALUE_LIST;;L;;;|'
'SCRN_MODGR;11;CMBTAST;TXT_POSS_ENTRIES_KEY;;L;;;|'
'SCRN_MODGR;12;FCOD;TXT_FUNCTION_CODE;;L;;;|'
'SCRN_MODGR;13;PTYPE;TXT_FUNCTIONAL_TYPE;;L;;;|'
'SCRN_MODGR;14;CTMENUONCT;TXT_DYNAMIC_CONTEXT_MENU;;L;;;|'
'SCRN_REFER;01;HIERARCHY;TXT_HIERARCHY;;L;;;|'
'SCRN_REFER;02;EXTEND;TXT_MODIFIED;;L;;;|'
'SCRN_REFER;03;NAME;TXT_NAME;;L;;;|'
'SCRN_REFER;04;GTYP;TXT_TYPE_OF_SCREEN_ELEMENT;;L;;;|'
'SCRN_REFER;05;MTCH;TXT_SEARCH_HELP;;L;;;|'
'SCRN_REFER;06;WAER;TXT_REFERENCE_FIELD;;L;;;|'
'SCRN_REFER;07;CCNAME;TXT_CONTROL_COMPOSITE_NAME;;L;;;|'
'SCRN_SPECI;01;HIERARCHY;TXT_HIERARCHY;;L;;;|' space into ls_csv.
append ls_csv to ct_csv. concatenate
'SCRN_SPECI;02;EXTEND;TXT_MODIFIED;;L;;;|'
'SCRN_SPECI;03;NAME;TXT_NAME;;L;;;|'
'SCRN_SPECI;04;GTYP;TXT_TYPE_OF_SCREEN_ELEMENT;;L;;;|'
'SCRN_SPECI;05;FOBL;TXT_INPUT;;L;;;|'
'SCRN_SPECI;06;FSTR;TXT_ENTRY;;F;;;|'
'SCRN_SPECI;07;FNRS;TXT_NO_RESET;;F;;;|'
'SCRN_SPECI;08;FGKS;TXT_UPPER_LOWER_CASE_ENTRY;;F;;;|'
'SCRN_SPECI;09;FOSB;TXT_WITHOUT_TEMPLATE;;F;;;|'
'SCRN_SPECI;10;FFKY;TXT_FOREIGN_KEY;;F;;;|'
'SCRN_SPECI;11;FSPA;TXT_SET_PARAMETER;;F;;;|'
'SCRN_SPECI;12;FGPA;TXT_GET_PARAMETER;;F;;;|'
'SCRN_SPECI;13;PAID;TXT_PARAMETER_ID;;L;;;|'
'SCRN_SPECI;14;UCNV;TXT_CONVERSION_EXIT;;L;;;|'
'SHLP_PARAM;01;FIELDNAME;TXT_SEARCH_HELP_PARAMETER;;L;;;|'
'SHLP_PARAM;02;SHLPINPUT;TXT_IMP;;F;;;|'
'SHLP_PARAM;03;SHLPOUTPUT;TXT_EXP;;F;;;|'
'SHLP_PARAM;04;SHLPLISPOS;TXT_LPOS;;L;;;|'
'SHLP_PARAM;05;SHLPSELPOS;TXT_SPOS;;L;;;|'
'SHLP_PARAM;06;SHLPSELDIS;TXT_SDIS;;F;;;|'
'SHLP_PARAM;07;ROLLNAME;TXT_DATA_ELEMENT___1;;L;;;|'
'SHLP_PARAM;08;ROLLCHANGE;TXT_MODIFIED;;F;;;|'
'SHLP_PARAM;09;DEFAULTVAL;TXT_DEFAULT_VALUE___1;;L;;;|'
'TABL1COMPO;01;FIELDNAME;TXT_COMPONENT;;L;;;|'
'TABL1COMPO;02;REFTYPE;TXT_RTYPE;;F;;;|'
'TABL1COMPO;03;ROLLNAME;TXT_COMPONENT_TYPE;;L;;;|'
'TABL1COMPO;04;DATATYPE;TXT_DATA_TYPE;;L;;;|'
'TABL1COMPO;05;LENG;TXT_LENGTH;;I;;;|'
'TABL1COMPO;06;DECIMALS;TXT_DECIMAL_PLACES___T;;I;;;|'
'TABL1COMPO;07;DDTEXT;TXT_SHORT_TEXT___2;;L;;;|'
'TABL1COMPO;08;GROUPNAME;TXT_GROUP;;L;;;|'
'TABL1CURRQ;01;FIELDNAME;TXT_COMPONENT;;L;;;|'
'TABL1CURRQ;02;REFTYPE;TXT_RTYPE;;F;;;|'
'TABL1CURRQ;03;ROLLNAME;TXT_COMPONENT_TYPE;;L;;;|'
'TABL1CURRQ;04;DATATYPE;TXT_DATA_TYPE;;L;;;|'
'TABL1CURRQ;05;REFTABLE;TXT_REFERENCE_TABLE;;L;;;|'
'TABL1CURRQ;06;REFFIELD;TXT_REF_FIELD;;L;;;|'
'TABL1CURRQ;07;DDTEXT;TXT_SHORT_TEXT___2;;L;;;|'
'TABL1ENTRY;01;FIELDNAME;TXT_COMPONENT;;L;;;|'
'TABL1ENTRY;02;REFTYPE;TXT_RTYPE;;F;;;|'
'TABL1ENTRY;03;ROLLNAME;TXT_COMPONENT_TYPE;;L;;;|'
'TABL1ENTRY;04;DATATYPE;TXT_DATA_TYPE;;L;;;|'
'TABL1ENTRY;05;SHLPORIGIN_P;TXT_FOREIGN_KEY;;F;;;|'
'TABL1ENTRY;06;CHECKTABLE;TXT_CHECK_TABLE;;L;;;|'
'TABL1ENTRY;07;SHLPORIGIN_DDTEXT;TXT_ORIGIN_OF_THE_INPUT_HELP;;L;;;|'
'TABL1ENTRY;08;SHLPNAME;TXT_SRCH_HELP;;L;;;|'
'TABL1ENTRY;09;VALEXI;TXT_DEFAULTS;;F;;;|'
'TABL1ENTRY;10;DOMNAME;TXT_DOMAIN;;L;;;|'
'TABL2CURRQ;01;FIELDNAME;TXT_FIELD;;L;;;|'
'TABL2CURRQ;02;ROLLNAME;TXT_DATA_ELEMENT___1;;L;;;|'
'TABL2CURRQ;03;DATATYPE;TXT_DATA_TYPE;;L;;;|'
'TABL2CURRQ;04;REFTABLE;TXT_REFERENCE_TABLE;;L;;;|'
'TABL2CURRQ;05;REFFIELD;TXT_REF_FIELD;;L;;;|'
'TABL2CURRQ;06;DDTEXT;TXT_SHORT_TEXT___2;;L;;;|'
'TABL2ENTRY;01;FIELDNAME;TXT_FIELD;;L;;;|'
'TABL2ENTRY;02;ROLLNAME;TXT_DATA_ELEMENT___1;;L;;;|'
'TABL2ENTRY;03;DATATYPE;TXT_DATA_TYPE;;L;;;|'
'TABL2ENTRY;04;SHLPORIGIN_P;TXT_FOREIGN_KEY;;F;;;|'
'TABL2ENTRY;05;CHECKTABLE;TXT_CHECK_TABLE;;L;;;|'
'TABL2ENTRY;06;SHLPORIGIN_DDTEXT;TXT_ORIGIN_OF_THE_INPUT_HELP;;L;;;|'
'TABL2ENTRY;07;SHLPNAME;TXT_SRCH_HELP;;L;;;|'
'TABL2ENTRY;08;VALEXI;TXT_DEFAULTS;;F;;;|'
'TABL2ENTRY;09;DOMNAME;TXT_DOMAIN;;L;;;|'
'TABL2FIELD;01;FIELDNAME;TXT_FIELD;;L;;;|'
'TABL2FIELD;02;KEYFLAG;TXT_KEY___KEY;;F;;;|'
'TABL2FIELD;03;NOTNULL;TXT_INITIAL_VALUES;;F;;;|'
'TABL2FIELD;04;ROLLNAME;TXT_DATA_ELEMENT___1;;L;;;|'
'TABL2FIELD;05;DATATYPE;TXT_DATA_TYPE;;L;;;|'
'TABL2FIELD;06;LENG;TXT_LENGTH;;I;;;|'
'TABL2FIELD;07;DECIMALS;TXT_DECIMAL_PLACES___T;;I;;;|'
'TABL2FIELD;08;DDTEXT;TXT_SHORT_TEXT___2;;L;;;|'
'TABL2FIELD;09;GROUPNAME;TXT_GROUP;;L;;;|'
'TRAN_AUTHV;01;FIELD;TXT_FIELDS;;L;;;|'
'TRAN_AUTHV;02;VALUE;TXT_VALUES;;L;;;|'
'TRAN_DEFVA;01;PARA_FIELD;TXT_NAME_OF_SCREEN_FIELD;;L;;;|'
'TRAN_DEFVA;02;PARA_VALUE;TXT_VALUE;;L;;;|'
'TTYP_DD42V;01;KEYFDPOS;TXT_POSITION;;L;;;|'
'TTYP_DD42V;02;KEYFIELD;TXT_NAME;;L;;;|'
'VIEW_FIELD;01;VIEWFIELD;TXT_VIEW_FIELD;;L;;CO;AHDPSCV|'
'VIEW_FIELD;02;TABNAME;TXT_TABLE;;L;;CO;HDPSCV|'
'VIEW_FIELD;03;FIELDNAME;TXT_FIELD;;L;;CO;HDPSCV|'
'VIEW_FIELD;04;KEYFLAG;TXT_KEY___KEY;;F;;CO;P|'
'VIEW_FIELD;05;ROLLNAMEVI;TXT_DATA_ELEM;;L;;CO;PSCV|'
'VIEW_FIELD;06;ROLLCHANGE;TXT_MOD;;F;;CO;AHDPSCV|'
'VIEW_FIELD;07;DATATYPE;TXT_DTYP;;L;;CO;AHDPSCV|'
'VIEW_FIELD;08;FLENGTH;TXT_LENGTH;;I;;CO;AHDPSCV|'
'VIEW_FIELD;09;DDTEXT;TXT_SHORT_DESCRIPTION___1;;L;;CO;HDPCV|'
'VIEW_JOINC;01;TABNAME_L;TXT_TABLE;;L;;;|'
'VIEW_JOINC;02;FIELDNAME_L;TXT_FIELD_NAME;;L;;;|'
'VIEW_JOINC;03;OPERATOR;TXT_EQ;;C;;;|'
'VIEW_JOINC;04;TABNAME_R;TXT_TABLE;;L;;;|'
'VIEW_JOINC;05;FIELDNAME_R;TXT_FIELD_NAME;;L;;;|'
'VIEW_JOINT;01;TABNAME;TXT_TABLES;;L;;;|'
'VIEW_SELEC;01;TABNAME;TXT_TABLE;;L;;;|'
'VIEW_SELEC;02;FIELDNAME;TXT_FIELD_NAME;;L;;;|'
'VIEW_SELEC;03;OPERATOR;TXT_OPERATOR;;L;;;|'
'VIEW_SELEC;04;CONSTANTS;TXT_COMPARISON_VALUE;;L;;;|'
'VIEW_SELEC;05;AND_OR;TXT_AND_OR;;L;;;|'
'WAPA_ATTR;01;ALIASNAME;TXT_ATTRIBUTE;;L;;;|'
'WAPA_ATTR;02;PARDECLTYP_FLAG;TXT_AUTO;;F;;CO;B|'
'WAPA_ATTR;03;TYPTYPE_TXT;TXT_TYPINGMETH;;L;;;|' space into ls_csv.
append ls_csv to ct_csv. concatenate
'WAPA_ATTR;04;TYPE;TXT_ASSOCIATED_TYPE;;L;;;|'
'WAPA_ATTR;05;TEXT;TXT_DESCRIPTION;;L;;;|'
'WAPA_NAVI;01;START;TXT_START;;L;;;|'
'WAPA_NAVI;02;NAVREQUEST;TXT_NAVIGATION_REQUEST;;L;;;|'
'WAPA_NAVI;03;TARGET;TXT_TARGET;;L;;;|'
'WTAG_ATTR;01;ATTID;TXT_ATTRIBUTE;;L;;;|'
'WTAG_ATTR;02;REQUIRED;TXT_REQUIRED;;F;;;|'
'WTAG_ATTR;03;RTEXPR;TXT_DYNAMIC_VALUE_ALLOWED;;F;;;|'
'WTAG_ATTR;04;BYREF;TXT_CALL_BY_REF;;F;;;|'
'WTAG_ATTR;05;BINDABLE;TXT_BINDABLE;;F;;;|'
'WTAG_ATTR;06;TYPTYPE_TXT;TXT_TYPING_METHOD;;L;;;|'
'WTAG_ATTR;07;TYPE;TXT_ASSOCIATED_TYPE;;L;;;|'
'WTAG_ATTR;08;DEFVAL;TXT_DFLT_VALUE;;L;;;|'
'WTAG_ATTR;09;DESCRIPT;TXT_DESCRIPTION;;L;;;|' space into ls_csv.
append ls_csv to ct_csv. endform. form csv_tabstrip changing ct_csv
type it_string. refresh ct_csv. data ls_csv type string. concatenate
'DDIC_R3TR_DOMA;DOC;;01;X;0;TXT_DOCUMENTATION;;|'
'DDIC_R3TR_DOMA;ATTRIBUTES;;02;;0;TXT_PROPERTIES;;|'
'DDIC_R3TR_DOMA;DEFINITION;;03;;1;TXT_DEFINITION;;|'
'DDIC_R3TR_DOMA;VALUERANGE;;04;;0;TXT_VALUE_RANGE;;|'
'DDIC_R3TR_DTEL;DOC;;01;X;0;TXT_DOCUMENTATION;;|'
'DDIC_R3TR_DTEL;DOCDZ;;02;X;0;TXT_SUPPLEMENTARY_DOCUMENTATIO;;|'
'DDIC_R3TR_DTEL;ATTRIBUTES;;03;;0;TXT_ATTRIBUTES___1;;|'
'DDIC_R3TR_DTEL;DATATYPE;;04;;1;TXT_DATA_TYPE;;|'
'DDIC_R3TR_DTEL;FURTHERCHAR;;05;;0;TXT_FURTHER_CHARACTERISTICS;;|'
'DDIC_R3TR_DTEL;FIELDLABEL;;06;;0;TXT_FIELD_LABEL;;|'
'DDIC_R3TR_ENQU;ATTRIBUTES;;01;;0;TXT_ATTRIBUTES___1;;|'
'DDIC_R3TR_ENQU;TABLES;;02;;1;TXT_TABLES;;|'
'DDIC_R3TR_ENQU;LOCKPARAMETER;;03;;0;TXT_LOCK_PARAMETER;;|'
'DDIC_R3TR_SHLP;ATTRIBUTES;;01;;0;TXT_ATTRIBUTES___1;;|'
'DDIC_R3TR_SHLP;DEFINITION;;02;;1;TXT_DEFINITION;;|'
'DDIC_R3TR_TABL_1;EXCLASS;;01;X;0;TXT_ENHANCEMENT_CATEGORY;;|'
'DDIC_R3TR_TABL_1;DOC;;02;X;0;TXT_DOCUMENTATION;;|'
'DDIC_R3TR_TABL_1;ATTRIBUTES;;03;;0;TXT_ATTRIBUTES___1;;|'
'DDIC_R3TR_TABL_1;COMPONENTS;;04;;1;TXT_COMPONENTS;;|'
'DDIC_R3TR_TABL_1;ENTRY_HELP_CHECK;;05;;0;TXTT_ENTRY_HELP_CHECK;;|'
'DDIC_R3TR_TABL_1;CURR_QUANT_FIELDS;;06;;0;TXTT_CURRENCY_QUANTITY_FIE'
'LD;;|'
'DDIC_R3TR_TABL_2;TECH_SETTINGS;;01;X;0;TXT_TECHNICAL_SETTINGS;;|'
'DDIC_R3TR_TABL_2;EXCLASS;;02;X;0;TXT_ENHANCEMENT_CATEGORY;;|'
'DDIC_R3TR_TABL_2;TABLE_MAINT_GEN;;03;X;0;TXT_TABLE_MAINTENANCE_GENER'
'ATO;;|' 'DDIC_R3TR_TABL_2;DOC;;04;X;0;TXT_DOCUMENTATION;;|'
'DDIC_R3TR_TABL_2;ATTRIBUTES;;05;;0;TXT_ATTRIBUTES___1;;|'
'DDIC_R3TR_TABL_2;DELIVMAINT;;06;;0;TXT_DELIVERY_AND_MAINTENANCE;;|'
'DDIC_R3TR_TABL_2;FIELDS;;07;;1;TXT_FIELDS;;|'
'DDIC_R3TR_TABL_2;ENTRY_HELP_CHECK;;08;;0;TXTT_ENTRY_HELP_CHECK;;|'
'DDIC_R3TR_TABL_2;CURR_QUANT_FIELDS;;09;;0;TXTT_CURRENCY_QUANTITY_FIE'
'LD;;|' 'DDIC_R3TR_TTYP;ATTRIBUTES;;01;;0;TXT_ATTRIBUTES___1;;|'
'DDIC_R3TR_TTYP;LINETYPE;;02;;1;TXT_LINE_TYPE;;|'
'DDIC_R3TR_TTYP;INITACCESS;;03;;0;TXT_INITIALIZATION_AND_ACCESS;;|'
'DDIC_R3TR_TTYP;KEY;;04;;0;TXT_KEY;;|'
'DDIC_R3TR_TYPE;ATTRIBUTES;;01;;0;TXT_ATTRIBUTES___1;;|'
'DDIC_R3TR_TYPE;SOURCECODE;;02;;1;TXT_SOURCECDE;;|'
'DDIC_R3TR_VIEW;TECH_SETTINGS;;01;X;0;TXT_TECHNICAL_SETTINGS;CO;HDPSC'
'V|' 'DDIC_R3TR_VIEW;CREATE;;02;X;0;TXT_CREATE_STATEMENT;CO;HDPSCV|'
'DDIC_R3TR_VIEW;ATTRIBUTES;;03;;0;TXT_ATTRIBUTES___1;;|'
'DDIC_R3TR_VIEW;TABJOINCONDITIONS;;04;;0;TXTT_TABLES_JOIN_CONDITIONS;'
'CO;HDCV|' 'DDIC_R3TR_VIEW;VIEWFIELDS;;05;;1;TXT_VIEW_FLDS;;|'
'DDIC_R3TR_VIEW;SELECTIONCONDITIONS;;06;;0;TXT_SELECTION_CONDITIONS;C'
'O;HDPSCV|'
'DDIC_R3TR_VIEW;DELIVMAINT;;07;;0;TXT_MAINT_STATUS;CO;HDCV|'
'FUGR_R3TR_FUGR;ATTRIBUTES;;01;;1;TXT_ATTRIBUTES___1;;|'
'FUGR_R3TR_FUGR;MAIN_PROG;;02;;0;TXT_MAIN_PROGRAM;;|'
'FUGR_R3TR_FUGR;DOCUMENTATION;;03;;0;TXT_FUNCTION_GROUP_DOC;;|'
'FUGR_R3TR_INCLUDES;ATTRIBUTES;;01;;0;TXT_PROPERTIES;;|'
'FUGR_R3TR_INCLUDES;SOURCECODE;;02;;1;TXT_SOURCECDE;;|'
'FUGR_R3TR_MODULES;DOCUMENTATION;;01;X;0;TXT_FUNCTION_MODULE_DOCUMENT'
'AT;;|' 'FUGR_R3TR_MODULES;ATTRIBUTES;;02;;2;TXT_ATTRIBUTES___1;;|'
'FUGR_R3TR_MODULES;IMPORT;;03;;0;TXT_IMPORT;;|'
'FUGR_R3TR_MODULES;EXPORT;;04;;0;TXT_EXPORT;;|'
'FUGR_R3TR_MODULES;CHANGING;;05;;0;TXT_CHANGING;;|'
'FUGR_R3TR_MODULES;TABLES;;06;;0;TXT_TABLES;;|'
'FUGR_R3TR_MODULES;EXCEPTIONS;;07;;0;TXT_EXCEPTIONS;;|'
'FUGR_R3TR_MODULES;SOURCECODE;;08;;1;TXT_SOURCE_CODE;;|'
'FUGR_R3TR_SCREEN;ATTRIBUTES;;01;;2;TXT_ATTRIBUTES___1;;|'
'FUGR_R3TR_SCREEN;ELEMENT_LIST;;02;;0;TXT_ELEMENT_LIST;;|'
'FUGR_R3TR_SCREEN;GENERAL_ATTR;ELEMENT_LIST;03;;1;TXT_GENERAL_ATTR;;|'
'FUGR_R3TR_SCREEN;TEXTS_IO_TEMPLATES;ELEMENT_LIST;04;;0;TXT_TEXTS_IO_'
'TEMPLATES;;|'
'FUGR_R3TR_SCREEN;SPECIAL_ATTR;ELEMENT_LIST;05;;0;TXT_SPECIAL_ATTR;;|'
'FUGR_R3TR_SCREEN;DISPLAY_ATTR;ELEMENT_LIST;06;;0;TXT_DISPLAY_ATTR;;|'
'FUGR_R3TR_SCREEN;MOD_GROUPS_FUNCTIONS;ELEMENT_LIST;07;;0;TXT_MOD_GRO'
'UPS_FUNCTIONS;;|'
'FUGR_R3TR_SCREEN;REFERENCES;ELEMENT_LIST;08;;0;TXT_REFERENCES;;|'
'FUGR_R3TR_SCREEN;FLOW_LOGIC;;09;;1;TXT_FLOW_LOGIC;;|'
'O2_R3TR_WAPA;PROPERTIES;;01;;2;TXT_PROPERTIES;;|'
'O2_R3TR_WAPA;NAVIGATION;;02;;1;TXT_NAVIGATION;;|'
'O2_R3TR_WAPA_APPL;PROPERTIES;;01;;2;TXT_PROPERTIES;;|'
'O2_R3TR_WAPA_APPL;LAYOUT;;02;;1;TXT_LAYOUT;CO;BXV|'
'O2_R3TR_WAPA_APPL;EVENT_HANDLER;;03;;0;TXT_EVENT_HANDLER;CO;B|'
'O2_R3TR_WAPA_APPL;PAGE_ATTRIBUTES;;04;;0;TXT_PAGE_ATTRIBUTES;CO;BV|'
'O2_R3TR_WAPA_APPL;TYPE_DEFINITIONS;;05;;0;TXT_TYPE_DEFINITIONS;CO;B|'
'O2_R3TR_WTAG;PROPERTIES;;01;;1;TXT_PROPERTIES;;|'
'O2_R3TR_WTAG_EXT;PROPERTIES;;01;;1;TXT_PROPERTIES;;|'
'O2_R3TR_WTAG_EXT;ATTRIBUTE;;02;;0;TXT_ATTRIBUTE;;|'
'O2_R3TR_XSLT;ATTRIBUTES;;01;;2;TXT_ATTRIBUTES___1;;|'
'O2_R3TR_XSLT;SOURCECODE;;02;;1;TXT_SOURCECDE;;|'
'PACK_DEVC;ATTRIBUTES;;01;;1;TXT_ATTRIBUTES___1;;|'
'PACK_DEVC;INTERFACE;;02;;0;TXT_PACKAGE_INTERFACES;;|'
'PACK_DEVC;PERM;;03;;0;TXT_USE_ACCESS;;|'
'PACK_DEVC;SUB;;04;;0;TXT_PACKAGES_INCLUDED;;|'
'PROG_R3TR_INCL;ATTRIBUTES;;01;;2;TXT_PROPERTIES;;|'
'PROG_R3TR_INCL;SOURCECODE;;02;;1;TXT_SOURCECDE;;|'
'PROG_R3TR_PROG;LISTTITLE;;01;X;0;TXT_LIST_HEADINGS;;|'
'PROG_R3TR_PROG;SELECTIONTEXTS;;02;X;0;TXT_SELECTION_TEXTS;;|'
'PROG_R3TR_PROG;TEXTSYMBOLS;;03;X;0;TXT_TEXT_ELEMENTS;;|'
'PROG_R3TR_PROG;DOC;;04;X;0;TXT_DOCUMENTATION;;|'
'PROG_R3TR_PROG;VARIANT;;05;X;0;TXT_VARIANTS;;|'
'PROG_R3TR_PROG;ATTRIBUTES;;06;;2;TXT_PROPERTIES;;|'
'PROG_R3TR_PROG;SOURCECODE;;07;;1;TXT_SOURCECDE;;|'
'SEO_R3TR_CLAS;LOCTYPES;;01;X;0;TXT_LOCAL_TYPES;;|'
'SEO_R3TR_CLAS;IMPL;;02;X;0;TXT_IMPLEMENTATION;CO;N|'
'SEO_R3TR_CLAS;MACROS;;03;X;0;TXT_MACROS;CO;N|'
'SEO_R3TR_CLAS;DOC;;04;X;0;TXT_CLASS_DOCUMENTATION;;|'
'SEO_R3TR_CLAS;TEXTSYMBOLS;;05;X;0;TXT_TEXT_ELEMENTS;;|'
'SEO_R3TR_CLAS;PROPERTIES;;06;;0;TXT_PROPERTIES;;|'
'SEO_R3TR_CLAS;INTERFACES;;07;;3;TXT_INTERFACES;;|'
'SEO_R3TR_CLAS;FRIENDS;;08;;0;TXT_FRIENDS;;|'
'SEO_R3TR_CLAS;ATTRIBUTES;;09;;2;TXT_ATTRIBUTES___2;;|'
'SEO_R3TR_CLAS;METHODS;;10;;1;TXT_METHODS;;|' space into ls_csv. append
ls_csv to ct_csv. concatenate
'SEO_R3TR_CLAS;EVENTS;;11;;0;TXT_EVENTS;;|'
'SEO_R3TR_CLAS;TYPES;;12;;0;TXT_TYPES;;|'
'SEO_R3TR_CLAS;ALIASES;;13;;0;TXT_ALIASES;;|'
'SEO_R3TR_INTF;DOC;;01;X;0;TXT_INTERFACE_DOCUMENTATION;;|'
'SEO_R3TR_INTF;PROPERTIES;;02;;3;TXT_PROPERTIES;;|'
'SEO_R3TR_INTF;INTERFACES;;03;;0;TXT_INTERFACES;;|'
'SEO_R3TR_INTF;ATTRIBUTES;;04;;2;TXT_ATTRIBUTES___2;;|'
'SEO_R3TR_INTF;METHODS;;05;;1;TXT_METHODS;;|'
'SEO_R3TR_INTF;EVENTS;;06;;0;TXT_EVENTS;;|'
'SEO_R3TR_INTF;TYPES;;07;;0;TXT_TYPES;;|'
'SEO_R3TR_INTF;ALIASES;;08;;0;TXT_ALIASES;;|'
'T_R3TR_MSAG;ATTRIBUTES;;01;;1;TXT_ATTRIBUTES___1;;|'
'T_R3TR_MSAG;MESSAGES;;02;;0;TXT_MESSAGES;;|'
'T_R3TR_TOBJ;ATTRIBUTES;;01;;1;TXT_ATTRIBUTES___1;;|'
'T_R3TR_TOBJ;ACTVT;;02;;0;TXT_ACTIVITIES;;|'
'T_R3TR_TOBJ;DOC;;03;;0;TXT_DOCUMENTATION;;|' space into ls_csv. append
ls_csv to ct_csv. endform. form csv_text_elements_1 changing ct_csv
type it_string. refresh ct_csv. data ls_csv type string. concatenate
'TPT_DDIC_DOMA;Dictionary:;;;;;;;;;;;ECATT;212;TXT_DOMAIN;;;;|'
'TPT_DDIC_DTEL;Dictionary:;;;;;;;;;;;ECATT;212;TXT_DATA_ELEMENT___2;;'
';;|'
'TPT_DDIC_ENQU;Dictionary:;;;;;;;;;;;ECATT;212;TXT_LOCK_OBJECT___2;;;'
';|'
'TPT_DDIC_SHLP;Dictionary:;;;;;;;;;;;ECATT;212;TXT_SEARCH_HELP;;;;|'
'TPT_DDIC_STRU;Dictionary:;;;;;;;;;;;ECATT;212;TXT_STRUCTURE;;;;|'
'TPT_DDIC_TABL;Dictionary:;;;;;;;;;;;ECATT;212;TXT_TABLE;;;;|'
'TPT_DDIC_TTYP;Dictionary:;;;;;;;;;;;ECATT;212;TXT_TABLE_TYPE;;;;|'
'TPT_DDIC_TYPE;Dictionary:;;;;;;;;;;;ECATT;212;TXT_TYPE_GROUP;;;;|'
'TPT_DDIC_VIEW;Dictionary:;;;;;;;;;;;ECATT;212;TXT_VIEW;;;;|'
'TPT_FUGR_FUBA;Function Builder:;;;;;;;;;;;ECATT;212;VAR_NAME_VALUE;;'
';;|' 'TPT_FUGR_FUGR;;;;;;;;;;;;ECATT;212;TXT_FUNCTION_GROUP;;;;|'
'TPT_FUGR_INCL;ABAP Editor:;;;;;;;;;;;ECATT;212;TXTT_INCLUDE_NAME_VAL'
'UE;;;;|'
'TPT_FUGR_SCR;Screen Painter:;;;;;;;;;;;ECATT;212;TXTT_SCREEN_FOR_NAM'
'E_VALUE;;;;|'
'TPT_MSAG;Message Maintenance:;;;;;;;;;;;ECATT;212;TXT_MESSAGE_CLASS;'
';;;|'
'TPT_O2_WAPA;Web Application Builder:;;;;;;;;;;;ECATT;212;TXT_BSP_APP'
'LICATION;;;;|'
'TPT_O2_WAPA_CTRL;Web Application Builder:;;;;;;;;;;;ECATT;212;TXTT_C'
'ONTROLLER_OF_NAME_VALUE;;;;|'
'TPT_O2_WAPA_PAGE;Web Application Builder:;;;;;;;;;;;ECATT;212;TXTT_P'
'AGE_NAME_VALUE;;;;|'
'TPT_O2_WTAG;;;;;;;;;;;;ECATT;212;TXTT_BSP_EXTENSION_NAME_VALUE;;;;|'
'TPT_O2_XSLT;;;;;;;;;;;;ECATT;212;TXTT_TRANSFORMATION_NAME_VALUE;;;;|'
'TPT_PACK_DEVC;Package Builder:;;;;;;;;;;;ECATT;212;TXT_PACKAGE;;;;|'
'TPT_PARA;;;;;;;;;;;;ECATT;212;TXT_PARAMETER;;;;|'
'TPT_PROG_INCL;ABAP Editor:;;;;;;;;;;;ECATT;212;TXTT_INCLUDE_NAME_VAL'
'UE;;;;|'
'TPT_PROG_REPO;ABAP Editor:;;;;;;;;;;;ECATT;212;TXTT_REPORT_NAME_VALU'
'E;;;;|'
'TPT_SEO_CLAS;Class Builder:;;;;;;;;;;;ECATT;212;TXTT_CLASS_NAME_VALU'
'E;;;;|'
'TPT_SEO_INTF;Class Builder:;;;;;;;;;;;ECATT;212;TXTT_INTERFACE_NAME_'
'VALUE;;;;|'
'TPT_TOBJ;;;;;;;;;;;;ECATT;212;TXT_AUTHORIZATION_OBJECT___2;;;;|'
'TPT_TRAN;;;;;;;;;;;;ECATT;212;TXT_TRANSACTION;;;;|'
'TPT_TRAN_DIALOG;;;;;;;;;;;;ECATT;212;TXT_DIALOG_TRANSACTION;;;;|'
'TPT_TRAN_OBJ;;;;;;;;;;;;ECATT;212;TXT_OBJECT_TRANSACTION;;;;|'
'TPT_TRAN_PARAM;;;;;;;;;;;;ECATT;212;TXT_PARAMETER_TRANSACTION;;;;|'
'TPT_TRAN_REPO;;;;;;;;;;;;ECATT;212;TXT_REPORT_TRANSACTION;;;;|'
'TPT_TRAN_VARI;;;;;;;;;;;;ECATT;212;TXT_VARIANT_TRANSACTION;;;;|'
'TXTT_BSP_EXTENSION_NAME_VALUE;;;;;;;;TXT_BSP_EXTENSION;;VAR_NAME_VAL'
'UE;X;;;;;;;|'
'TXTT_CLASS_NAME_VALUE;;;;;;;;TXT_CLASS;;VAR_NAME_VALUE;X;;000;;;;;|'
'TXTT_CONTEXT_MENU_FORM_ON_CTME;;;;;;;;TXT_CONTEXT_MENU;FORM ON CTMEN'
'U;;X;;000;;;;;|' 'TXTT_CONTROLLER_OF_NAME_VALUE;;;;;;;;;;;;;;;;;;|'
'TXTT_CURRENCY_QUANTITY_FIELD;;;;;;;;TXT_CURRENCY;/;TXT_QUANTITY_FIEL'
'D;;;000;;;;;|'
'TXTT_ENTRY_HELP_CHECK;;;;;;;;TXT_ENTRY_HELP;/;TXT_CHECK;;;000;;;;;|'
'TXTT_INCLUDE_NAME_VALUE;;;;;;;;TXT_INCLUDE;;VAR_NAME_VALUE;X;;000;;;'
';;|'
'TXTT_INTERFACE_NAME_VALUE;;;;;;;;TXT_INTERFACE;;VAR_NAME_VALUE;X;;00'
'0;;;;;|'
'TXTT_LINES_COLUMNS;;;;;;;;TXT_LINES;/;TXT_COLUMNS;;;000;;;;;|'
'TXTT_PAGE_NAME_VALUE;;;;;;;;;;;;;;;;;;|'
'TXTT_REPORT_NAME_VALUE;;;;;;;;TXT_REPORT;;VAR_NAME_VALUE;X;;000;;;;;|'
'TXTT_SCREEN_FOR_NAME_VALUE;;;;;;;;TXT_SCREEN_FOR;;VAR_NAME_VALUE;X;;'
'000;;;;;|'
'TXTT_TABLES_JOIN_CONDITIONS;;;;;;;;TXT_TABLES;/;TXT_JOIN_CONDITIONS;'
';;000;;;;;|'
'TXTT_TRANSFORMATION_NAME_VALUE;;;;;;;;TXT_TRANSFORMATION;;VAR_NAME_V'
'ALUE;X;;000;;;;;|'
'TXTT_TYPE_GROUP_OBJECT_TYPE;;;;;;;;TXT_TYPE_GROUP;/;TXT_OBJECT_TYPE;'
';;000;;;;;|'
'TXTT_UNICODE_CHECKS_ACTIVE;;;;;;;;TXT_UNICODE_CHECKS;;TXT_ACTIVE___2'
';X;;000;;;;;|' 'TXT_2_DIMENSIONAL;;SCRFNO3D;M;;;;;;;;;;000;;;;;|'
'TXT_ABAP_LOAD;;;;;;;;;;;;;000;;;;;|' 'TXT_ABOUT;;;;;;;;;;;;;000;;;;;|'
'TXT_ABSTRACT;;SEOABSTRCT;M;;;;;;;;;;000;;;;;|'
'TXT_ACCESS;;DD_V_ACC;D;;;;;;;;;;000;;;;;|'
'TXT_ACCESS_TYPE_IS_GIVEN_FOR_A;;;;;;;;;;;;;000;;;;;|'
'TXT_ACTIVATED;;AIND_ACTIV;S;;;;;;;;;;000;;;;;|'
'TXT_ACTIVE___1;;SAAACTIVE;M;;;;;;;;;;000;;;;;|'
'TXT_ACTIVE___2;;AD_ACTIVE;M;;;;;;;;;;000;;;;;|'
'TXT_ACTIVITIES;;STAT_TITL;M;;;;;;;;;;;;;;;|'
'TXT_ACTIVITY;;SWW_ACTVT;M;;;;;;;;;;;;;;;|'
'TXT_ALIAS;;UDALIAS;M;;;;;;;;;;000;;;;;|'
'TXT_ALIASES;;;;;;;;;;;;;000;;;;;|'
'TXT_ALLOWED_OBJECT_TYPES;;;;;;;;;;;;;000;;;;;|'
'TXT_ALLOW_RFC;;RFCENABLE;M;;;;;;;;;;000;;;;;|'
'TXT_ALL_RIGHTS_RESERVED;;;;;;;;;;;;;000;;;;;|'
'TXT_AND_OR;;VSCONJ;M;;;;;;;;;;000;;;;;|'
'TXT_APPENDING_VIEW;;APPENDVIEW;T;;;;;;;;;;000;;;;;|'
'TXT_APPLICATION;;RS38L_APPL;M;;;;;;;;;;000;;;;;|'
'TXT_APPLICATION_CLASS;;O2APPLCLAS;D;;;;;;;;;;000;;;;;|'
'TXT_APPLICATION_COMPONENT;;TM_COMPONT;T;;;;;;;;;;000;;;;;|'
'TXT_ASSIGNED_ERROR_PAGE;;;;;;;;;;;;;000;;;;;|'
'TXT_ASSOCIATED_TYPE;;RS38L_TYP;M;;;;;;;;;;000;;;;;|'
'TXT_ASSOCIATED_TYPE_FOR_LOW_HI;;;;;;;;;;;;;000;;;;;|'
'TXT_AS_LABEL_LEFT;;SCRPLABELL;M;;;;;;;;;;000;;;;;|'
'TXT_AS_LABEL_RIGHT;;SCRPLABELR;M;;;;;;;;;;000;;;;;|'
'TXT_ATTRIBUTE;;SEOATTNAME;M;;;;;;;;;;000;;;;;|'
'TXT_ATTRIBUTES___1;;EX_DPA;M;;;;;;;;;;000;;;;;|'
'TXT_ATTRIBUTES___2;;STAT_ATTR;M;;;;;;;;;;000;;;;;|'
'TXT_AUTHORIZATION_FIELDS;;;;;;;;;;;;;;;;;;|'
'TXT_AUTHORIZATION_GROUP;;P_GROUP;T;;;;;;;;;;000;;;;;|'
'TXT_AUTHORIZATION_OBJECT___1;;BROBJ;D;;;;;;;;;;000;;;;;|'
'TXT_AUTHORIZATION_OBJECT___2;;LS_AUTHOB;M;;;;;;;;;;000;;;;;|'
'TXT_AUTO;;O2AUTOPAR;S;;;;;;;;;;000;;;;;|'
'TXT_AUTOR;;XUAUTHOR;M;;;;;;;;;;;;;;;|'
'TXT_BINDABLE;;O2BINDABLE;M;;;;;;;;;;;;;;;|'
'TXT_BLANK;;;;AD_MNTMD;0004;;;;;;;;;;;;;|'
'TXT_BRG;;SCRFHELL;M;;;;;;;;;;000;;;;;|'
'TXT_BROWSER_CACHE;;O2BCACHE;M;;;;;;;;;;000;;;;;|'
'TXT_BROWSER_SPECIFIC;;O2BDEP;L;;;;;;;;;;000;;;;;|'
'TXT_BSP_APPLICATION;;O2APPLEXT;M;;;;;;;;;;000;;;;;|'
'TXT_BSP_APPLICATIONS;;;;;;;;;;;;;000;;;;;|'
'TXT_BSP_ELEMENT;;O2TAGID;M;;;;;;;;;;;;;;;|'
'TXT_BSP_ELEMENTS_AND_STATIC_HT;;;;;;;;;;;;;;;;;;|'
'TXT_BSP_ELEMENTS_ONLY;;;;;;;;;;;;;;;;;;|'
'TXT_BSP_ELEMENT_BASIS_CLASS;;;;;;;;;;;;;;;;;;|'
'TXT_BSP_EXTENSION;;O2TLIBID;M;;;;;;;;;;;;;;;|'
'TXT_BSP_EXTENSIONS;;;;;;;;;;;;;000;;;;;|'
'TXT_BSP_EXTENSION_CLASS;;;;;;;;;;;;;;;;;;|'
'TXT_BSP_LIBRARY;;;;;;;;;;;;;000;;;;;|'
'TXT_BUFFERING;;BUFSTATE;M;;;;;;;;;;000;;;;;|'
'TXT_BUFFERING_TYPE;;PUFFERUNGT;M;;;;;;;;;;000;;;;;|' space into
ls_csv. append ls_csv to ct_csv. concatenate
'TXT_BUILT_IN_TYPE;;;;;;;;;;;;;000;;;;;|'
'TXT_CACHING;;;;;;;;;;;;;000;;;;;|'
'TXT_CALL_BY_REF;;O2BYREF;M;;;;;;;;;;;;;;;|'
'TXT_CATEGORY;;SEOCATEGRY;M;;;;;;;;;;000;;;;;|'
'TXT_CHANGED_ON;;UPDAT;M;;;;;;;;;;000;;;;;|'
'TXT_CHANGES_ARE_RECORDED;;KORRFLAG;D;;;;;;;;;;000;;;;;|'
'TXT_CHANGE_DOCUMENT;;LOGFLAG;M;;;;;;;;;;000;;;;;|'
'TXT_CHANGING;;RS38L_PACH;S;;;;;;;;;;000;;;;;|'
'TXT_CHECK;;AM_CHECC;M;;;;;;;;;;000;;;;;|'
'TXT_CHECK_TABLE;;CHECKTABLE;M;;;;;;;;;;000;;;;;|'
'TXT_CLASS;;SEOCLNAME;M;;;;;;;;;;000;;;;;|'
'TXT_CLASSES;;CT_CLASSES_FLAG;M;;;;;;;;;;000;;;;;|'
'TXT_CLASSIFICATION;;SDC_CLS;M;;;;;;;;;;000;;;;;|'
'TXT_CLASS_DOCUMENTATION;;;;;;;;;;;;;000;;;;;|'
'TXT_CLASS_LIBRARY;;;;;;;;;;;;;000;;;;;|'
'TXT_CLASS_NAME;;ETCLS_NAME;M;;;;;;;;;;;;;;;|'
'TXT_CLIENT;;MANDT;M;;;;;;;;;;000;;;;;|'
'TXT_CLUSTER_TABLE;;;;;;;;;;;;;000;;;;;|'
'TXT_COLL_RUN;;RS38L_TSK4;M;;;;;;;;;;000;;;;;|'
'TXT_COLUMN;;SCRFTLFNR;M;;;;;;;;;;000;;;;;|'
'TXT_COLUMNS;;SYSCOLS;M;;;;;;;;;;000;;;;;|'
'TXT_COLUMN_HEADING;;DDCMPTITLE;D;;;;;;;;;;000;;;;;|'
'TXT_COMPARE_FLAG;;;;;;;;;;;;;000;;;;;|'
'TXT_COMPARISON_VALUE;;;;;;;;;;;;;000;;;;;|'
'TXT_COMPILATION;;;;;;;;;;;;;000;;;;;|'
'TXT_COMPLETE;;COMPLETE;M;;;;;;;;;;000;;;;;|'
'TXT_COMPLETED;;;;RF_TRLISTSTATUS;3;;;;;;;;000;;;;;|'
'TXT_COMPONENT;;COMPONENTE;M;;;;;;;;;;000;;;;;|'
'TXT_COMPONENTS;;MODEDIT;M;;;;;;;;;;000;;;;;|'
'TXT_COMPONENT_INFORMATION;;;;;;;;;;;;;000;;;;;|'
'TXT_COMPONENT_TYPE;;RELC_TYPE;M;;;;;;;;;;000;;;;;|'
'TXT_COMPONENT_VERSION;;ETKVNR;T;;;;;;;;;;000;;;;;|'
'TXT_COMPRESSED;;LTCOMP;M;;;;;;;;;;000;;;;;|'
'TXT_COMPRESSION;;O2STRIPMODE;M;;;;;;;;;;000;;;;;|'
'TXT_CONTEXT_MENU;;GUI_CTX;M;;;;;;;;;;000;;;;;|'
'TXT_CONTROLLER;;O2COEXT;M;;;;;;;;;;000;;;;;|'
'TXT_CONTROLLER_CLASS;;O2CTRCLS;D;;;;;;;;;;000;;;;;|'
'TXT_CONTROL_COMPOSITE_NAME;;CC_NAME;L;;;;;;;;;;000;;;;;|'
'TXT_CONVERSION_EXIT;;SCRFUCNV;D;;;;;;;;;;000;;;;;|'
'TXT_CONVERSION_FOR_AUTHORIZATI;;;;;;;;;;;;;;;;;;|'
'TXT_CONVERS_ROUTINE;;KCD_KONVR;M;;;;;;;;;;000;;;;;|'
'TXT_CREATED;;CATS_ERSDA;S;;;;;;;;;;000;;;;;|'
'TXT_CREATED_BY___1;;UDFUSER;S;;;;;;;;;;000;;;;;|'
'TXT_CREATED_BY___2;;CNAM;M;;;;;;;;;;000;;;;;|'
'TXT_CREATED_ON;;CRDATE;D;;;;;;;;;;000;;;;;|'
'TXT_CREATE_STATEMENT;;;;;;;;;;;;;000;;;;;|'
'TXT_CREATION_DATE;;SALRTDCRED;M;;;;;;;;;;;;;;;|'
'TXT_CROSS_CLIENT;;SWBCLIENTX;M;;;;;;;;;;;;;;;|'
'TXT_CUA_LOAD;;STA_CLTIMI;S;;;;;;;;;;000;;;;;|'
'TXT_CURRENCY;;RSCURRENCY;M;;;;;;;;;;000;;;;;|'
'TXT_CURSOR_POSITION;;SCRHCUPO;M;;;;;;;;;;000;;;;;|'
'TXT_DATABASE_CONTENT;;;;;;;;;;;;;000;;;;;|'
'TXT_DATABASE_DATA;;;;;;;;;;;;;000;;;;;|'
'TXT_DATABASE_INFORMATION;;;;;;;;;;;;;000;;;;;|'
'TXT_DATABASE_SYSTEM;;SYDBSYS;M;;;;;;;;;;000;;;;;|'
'TXT_DATABASE_TABLES;;EX_CDT;M;;;;;;;;;;000;;;;;|'
'TXT_DATA_BROWSER_TABLE_VIEW_MA;;;;;;;;;;;;;000;;;;;|'
'TXT_DATA_CLASS;;TABART;M;;;;;;;;;;000;;;;;|'
'TXT_DATA_COLLECTION;;SLDPH;T;;;;;;;;;;000;;;;;|'
'TXT_DATA_ELEM;;DATAELEM;S;;;;;;;;;;000;;;;;|'
'TXT_DATA_ELEMENTS;;CLASSDE;M;;;;;;;;;;000;;;;;|'
'TXT_DATA_ELEMENT___1;;DATAELEM;M;;;;;;;;;;000;;;;;|'
'TXT_DATA_ELEMENT___2;;SCRP_DATN;T;;;;;;;;;;000;;;;;|'
'TXT_DATA_TYPE;;DATATYPE_D;M;;;;;;;;;;000;;;;;|'
'TXT_DBSL_PATCH_LEVEL;;;;;;;;;;;;;000;;;;;|'
'TXT_DBSL_VERSION;;DB_DBSLV;M;;;;;;;;;;000;;;;;|'
'TXT_DB_CLIENT_LIB;;DB_CLIREL;M;;;;;;;;;;000;;;;;|'
'TXT_DB_RELEASES;;DB_RELTEXT;M;;;;;;;;;;000;;;;;|'
'TXT_DECIMAL_PLACES___M;;DECIMALS;M;;;;;;;;;;000;;;;;|'
'TXT_DECIMAL_PLACES___T;;DECIMALS;T;;;;;;;;;;000;;;;;|'
'TXT_DEFAULTS;;VALEXI;S;;;;;;;;;;000;;;;;|'
'TXT_DEFAULT_COMPONENT_NAME;;DEFFDNAME;T;;;;;;;;;;000;;;;;|'
'TXT_DEFAULT_PREFIX;;;;;;;;;;;;;;;;;;|'
'TXT_DEFAULT_VALUES;;;;;;;;;;;;;000;;;;;|'
'TXT_DEFAULT_VALUES_FOR;;;;;;;;;;;;;000;;;;;|'
'TXT_DEFAULT_VALUE___1;;DDSHDEFVAL;T;;;;;;;;;;000;;;;;|'
'TXT_DEFAULT_VALUE___2;;RS38L_DEFO;M;;;;;;;;;;000;;;;;|'
'TXT_DEFINITION;;UFDYDOCU;M;;;;;;;;;;000;;;;;|'
'TXT_DEFLG;;SCRFLENG;M;;;;;;;;;;000;;;;;|'
'TXT_DELIVERY_AND_MAINTENANCE;;;;;;;;;;;;;000;;;;;|'
'TXT_DELIVERY_CLASS;;DIP0220;D;;;;;;;;;;000;;;;;|'
'TXT_DELTA_HANDLING;;O2DELTA;M;;;;;;;;;;000;;;;;|'
'TXT_DESCRIPTION;;SEODESCR;M;;;;;;;;;;000;;;;;|'
'TXT_DESELECT_ALL;;;;;;@4D@;S;;;;;;;;;;;|'
'TXT_DFLT_VALUE;;SWLWPPVDEF;T;;;;;;;;;;;;;;;|'
'TXT_DIALOG_BEHAVIOR;;;;;;;;;;;;;000;;;;;|'
'TXT_DIALOG_DATA_TRANSPORT_DETA;;;;;;;;;;;;;000;;;;;|'
'TXT_DIALOG_TRANSACTION;;EUSEL_TRAN;L;;;;;;;;;;000;;;;;|'
'TXT_DIALOG_TYPE;;DDSHDIATYP;M;;;;;;;;;;000;;;;;|'
'TXT_DICTIONARY_REFERENCE;;STEXTA;T;;;;;;;;;;000;;;;;|'
'TXT_DICT_FIELD;;SCRFDICT;M;;;;;;;;;;000;;;;;|'
'TXT_DICT_MODIFIED;;SCRFDMOD;M;;;;;;;;;;000;;;;;|'
'TXT_DICT_OBJS;;EX_BD;M;;;;;;;;;;000;;;;;|'
'TXT_DIRECTORY;;SCMS_FTPDI;M;;;;;;;;;;000;;;;;|'
'TXT_DISABLED;;ALEDISABL;M;;;;;;;;;;000;;;;;|'
'TXT_DISPLAY;;PUSH_SHOW;M;;;;;;;;;;000;;;;;|'
'TXT_DISPLAY_ATTR;;;;;;;;;;;;;000;;;;;|'
'TXT_DLEN;;DDINTLENG;T;;;;;;;;;;000;;;;;|'
'TXT_DOCUMENTATION;;RS38L_DOCU;M;;;;;;;;;;000;;;;;|'
'TXT_DOMAIN;;DOMNAME;M;;;;;;;;;;000;;;;;|' space into ls_csv. append
ls_csv to ct_csv. concatenate
'TXT_DOMAINS;;CLASSDOM;M;;;;;;;;;;000;;;;;|'
'TXT_DROPDOWN;;SCRFDRDOWN;M;;;;;;;;;;000;;;;;|'
'TXT_DTYP;;DDVIEWDTYP;T;;;;;;;;;;000;;;;;|'
'TXT_DYNAMIC_CONTEXT_MENU;;SCRPMENDY;L;;;;;;;;;;000;;;;;|'
'TXT_DYNAMIC_VALUE_ALLOWED;;;;;;;;;;;;;;;;;;|'
'TXT_EASY_WEB_TRANSACTION;;S_EWT;T;;;;;;;;;;000;;;;;|'
'TXT_EDITOR_LOCK;;IW_NO_EDIT;M;;;;;;;;;;000;;;;;|'
'TXT_EDIT_LOCK;;;;;;;;;;;;;000;;;;;|'
'TXT_ELEMENTARY_SRCH_HLP;;DDSHLPELEM;T;;;;;;;;;;000;;;;;|'
'TXT_ELEMENTARY_TYPE;;CHK_ELEM;M;;;;;;;;;;000;;;;;|'
'TXT_ELEMENT_CONTENT;;;;;;;;;;;;;;;;;;|'
'TXT_ELEMENT_HANDLER_CLASS;;;;;;;;;;;;;;;;;;|'
'TXT_ELEMENT_INTERPRETS_CONTENT;;;;;;;;;;;;;;;;;;|'
'TXT_ELEMENT_LIST;;SCRAFNFL;M;;;;;;;;;;000;;;;;|'
'TXT_EMPTY_TAB;;;;;;;;;;;;;000;;;;;|'
'TXT_ENHANCEMENT_CATEGORY;;DDEXTCLASS;D;;;;;;;;;;000;;;;;|'
'TXT_ENHANCEMENT_CATEGORY_FOR_S;;;;;;;;;;;;;000;;;;;|'
'TXT_ENTER_A_PACKAGE;;;;;;;;;;;;PACKAGE_BUILDER01;201;;;;;|'
'TXT_ENTRY;;SCRFFSTR;D;;;;;;;;;;000;;;;;|'
'TXT_ENTRY_HELP;;SCRFCMBFOC;M;;;;;;;;;;000;;;;;|'
'TXT_EQ;;;;;;;;;;;;;000;;;;;|'
'TXT_ERROR_HANDLING;;EDI_ERRFLG;M;;;;;;;;;;000;;;;;|'
'TXT_ERROR_SEVERITY;;ERRORTYP;L;;;;;;;;;;000;;;;;|'
'TXT_EVENT;;SEOEVTNAME;M;;;;;;;;;;000;;;;;|'
'TXT_EVENTS;;SE30OKEVNT;S;;;;;;;;;;000;;;;;|'
'TXT_EVENT_HANDLER;;O2EVHNAME;M;;;;;;;;;;000;;;;;|'
'TXT_EXCEPTIONS;;RS38L_EXCE;M;;;;;;;;;;000;;;;;|'
'TXT_EXCEPTION___1;;SWF_CX_REF;M;;;;;;;;;;000;;;;;|'
'TXT_EXCEPTION___2;;RS38L_EXCN;M;;;;;;;;;;000;;;;;|'
'TXT_EXCLUSIVE;;CLEXCL;M;;;;;;;;;;000;;;;;|'
'TXT_EXP;;SHLPOUTPUT;T;;;;;;;;;;000;;;;;|'
'TXT_EXPORT;;RS38L_PAEX;S;;;;;;;;;;000;;;;;|'
'TXT_FIELD;;FIELDNAME;S;;;;;;;;;;000;;;;;|'
'TXT_FIELDS;;CLASSFEL;M;;;;;;;;;;000;;;;;|'
'TXT_FIELD_LABEL;;OTXT;M;;;;;;;;;;000;;;;;|'
'TXT_FIELD_NAME;;FELD_NAME;M;;;;;;;;;;000;;;;;|'
'TXT_FINAL;;SEOFINAL;M;;;;;;;;;;000;;;;;|'
'TXT_FIRST_PAGE;;S_INITPAGE;M;;;;;;;;;;000;;;;;|'
'TXT_FIXED_FONT;;SCRFFIXF;M;;;;;;;;;;000;;;;;|'
'TXT_FIXED_POINT_ARITHMETIC;;FIXPT;D;;;;;;;;;;000;;;;;|'
'TXT_FIX_VAL;;VAL_SINGLE;T;;;;;;;;;;000;;;;;|'
'TXT_FLOW_LOGIC;;DYNTXLINE;M;;;;;;;;;;000;;;;;|'
'TXT_FOREIGN_KEY;;SCRFFFKY;M;;;;;;;;;;000;;;;;|'
'TXT_FOREIGN_SOURCE_SYSTEM;;;;;;@6L@;S;;;;;;000;;;;;|'
'TXT_FORMAT;;SCRFTYPE;M;;;;;;;;;;000;;;;;|'
'TXT_FORMATTING;;SYPRORIENT;M;;;;;;;;;;000;;;;;|'
'TXT_FORWARD_DECLARATIONS;;;;;;;;;;;;;000;;;;;|'
'TXT_FRAMESET;;IW_FRMOBJ;M;;;;;;;;;;000;;;;;|'
'TXT_FRIENDS;;;;;;;;;;;;;000;;;;;|'
'TXT_FROM_MODULE_POOL;;;;;;;;;;;;;000;;;;;|'
'TXT_FULLY_BUFFERED;;;;;;;;;;;;;000;;;;;|'
'TXT_FUNCTIONAL_TYPE;;S_FUNCTYP;M;;;;;;;;;;000;;;;;|'
'TXT_FUNCTION_CODE;;FCODE;M;;;;;;;;;;000;;;;;|'
'TXT_FUNCTION_GROUP;;RS38L_AREA;T;;;;;;;;;;000;;;;;|'
'TXT_FUNCTION_GROUPS;;;;;;;;;;;;;000;;;;;|'
'TXT_FUNCTION_GROUP_DOC;;;;;;;;;;;;;000;;;;;|'
'TXT_FUNCTION_MODULE;;RSTFB;T;;;;;;;;;;000;;;;;|'
'TXT_FUNCTION_MODULES;;;;;;;;;;;;;000;;;;;|'
'TXT_FUNCTION_MODULE_DOCUMENTAT;;;;;;;;;;;;;000;;;;;|'
'TXT_FURTHER_CHARACTERISTICS;;;;;;;;;;;;;000;;;;;|'
'TXT_FURTHER_OPTIONS;;;;;;;;;;;;;;;;;;|'
'TXT_GENERAL_ATTR;;;;;;;;;;;;;000;;;;;|'
'TXT_GENERAL_DATA;;ALSHGNDTL;M;;;;;;;;;;000;;;;;|'
'TXT_GENERIC_AREA_BUFFERED;;;;;;;;;;;;;000;;;;;|'
'TXT_GET_PARAMETER;;SCRFFGPA;M;;;;;;;;;;000;;;;;|'
'TXT_GLOBAL;;RS38L_GLOB;M;;;;;;;;;;000;;;;;|'
'TXT_GROUP;;GROUP_NAME;M;;;;;;;;;;000;;;;;|'
'TXT_GROUP_1;;SCRFGRP1;M;;;;;;;;;;000;;;;;|'
'TXT_GROUP_2;;SCRFGRP2;M;;;;;;;;;;000;;;;;|'
'TXT_GROUP_3;;SCRFGRP3;M;;;;;;;;;;000;;;;;|'
'TXT_GROUP_4;;SCRFGRP4;M;;;;;;;;;;000;;;;;|'
'TXT_GUI_STATUS;;;;;;;;;;;;;000;;;;;|'
'TXT_GUI_SUPPORT;;;;;;;;;;;;;000;;;;;|'
'TXT_HEADING;;REPTEXT;M;;;;;;;;;;000;;;;;|'
'TXT_HEIGHT;;SCRNHIGH;M;;;;;;;;;;000;;;;;|'
'TXT_HELP;;SWL_HELP;M;;;;;;;;;;000;;;;;|'
'TXT_HIDDEN;;SUB_HIDDEN;M;;;;;;;;;;000;;;;;|'
'TXT_HIERARCHY;;UDHIERID;M;;;;;;;;;;000;;;;;|'
'TXT_HIGHEST_SUPPORT_PACKAGE;;;;;;;;;;;;;000;;;;;|'
'TXT_HOLD_DATA;;SCRHHDAT;M;;;;;;;;;;000;;;;;|'
'TXT_HOLD_SCROLL_POSITION;;SCRPKSCR;D;;;;;;;;;;000;;;;;|'
'TXT_HOST;;IACHOST;M;;;;;;;;;;000;;;;;|'
'TXT_HOST_DATA;;;;;;;;;;;;;000;;;;;|'
'TXT_HOT_KEY;;DDSHHOTKEY;M;;;;;;;;;;000;;;;;|'
'TXT_HTTPS;;HTTPS;M;;;;;;;;;;000;;;;;|'
'TXT_ICON;;SCRFICON;M;;;;;;;;;;000;;;;;|'
'TXT_ICON_NAME;;SCRFICON_N;M;;;;;;;;;;000;;;;;|'
'TXT_ICON_TEXT;;SCRFICON_Q;M;;;;;;;;;;000;;;;;|'
'TXT_IMMEDIATE_START_NO_RESTART;;;;;;;;;;;;;000;;;;;|'
'TXT_IMP;;SHLPINPUT;T;;;;;;;;;;000;;;;;|'
'TXT_IMPLEMENTATION;;;;;;;;;;;;;000;;;;;|'
'TXT_IMPLEMENTED_ACTIVE;;;;;;;;;;;;;000;;;;;|'
'TXT_IMPORT;;SAEIMPORT;S;;;;;;;;;;000;;;;;|'
'TXT_INACTIVE;;ALEDISABLD;S;;;;;;;;;;000;;;;;|'
'TXT_INCLUDE;;INCLNAME;M;;;;;;;;;;000;;;;;|'
'TXT_INCLUDES;;INCLU;S;;;;;;;;;;000;;;;;|'
'TXT_INCLUDE_NAME;;RSYNT_INCL;M;;;;;;;;;;000;;;;;|'
'TXT_INCLUSIVE;;CLINCL;M;;;;;;;;;;000;;;;;|'
'TXT_INFO;;BDL_INFO;S;;;;;;;;;;000;;;;;|'
'TXT_INFORMATION;;;;;;@0S@;S;;;;;;;;;;;|' space into ls_csv. append
ls_csv to ct_csv. concatenate
'TXT_INHERIT_GUI_ATTRIBUTES;;;;;;;;;;;;;000;;;;;|'
'TXT_INITIALIZATION_AND_ACCESS;;;;;;;;;;;;;000;;;;;|'
'TXT_INITIAL_BSP;;;;;;;;;;;;;000;;;;;|'
'TXT_INITIAL_LINE_NUMBER;;;;;;;;;;;;;000;;;;;|'
'TXT_INITIAL_VALUE;;SEOVALUE;M;;;;;;;;;;000;;;;;|'
'TXT_INITIAL_VALUES;;HR_BIN_INI;M;;;;;;;;;;000;;;;;|'
'TXT_INPUT;;SCRFFEIN;M;;;;;;;;;;000;;;;;|'
'TXT_INSTALLATION_NUMBER;;DNOT_INSTN;T;;;;;;;;;;000;;;;;|'
'TXT_INSTANTIATION;;SEOCREATE;M;;;;;;;;;;000;;;;;|'
'TXT_INTERFACE;;SEOITFNAME;M;;;;;;;;;;000;;;;;|'
'TXT_INTERFACES;;EX_COI;M;;;;;;;;;;000;;;;;|'
'TXT_INTERFACE_COMPONENT;;SEOCPDNAME;T;;;;;;;;;;000;;;;;|'
'TXT_INTERFACE_DOCUMENTATION;;;;;;;;;;;;;000;;;;;|'
'TXT_INTERNALLY_RELEASED_ON;;;;;;;;;;;;;000;;;;;|'
'TXT_INTERNAL_NAME;;O2APPLNAME;T;;;;;;;;;;000;;;;;|'
'TXT_INTERVALS;;;;;;;;;;;;;000;;;;;|'
'TXT_INVISIBLE;;SCRFUNSI;M;;;;;;;;;;000;;;;;|'
'TXT_IP_ADDRESS;;RFCIP;M;;;;;;;;;;000;;;;;|'
'TXT_IS_ERROR_PAGE;;O2ERRPAG;M;;;;;;;;;;000;;;;;|'
'TXT_ITERATION_OVER_ELEMENT_CON;;O2ITERATION;L;;;;;;;;;;;;;;;|'
'TXT_JOIN_CONDITIONS;;;;;;;;;;;;;000;;;;;|'
'TXT_KERNEL_INFORMATION___1;;;;;;;;;;;;;000;;;;;|'
'TXT_KERNEL_INFORMATION___2;;;;;;;;;;;;;000;;;;;|'
'TXT_KERNEL_RELEASE;;SYKERNRL;M;;;;;;;;;;000;;;;;|'
'TXT_KEY;;OJ_KEY;M;;;;;;;;;;000;;;;;|'
'TXT_KEY_ATTRIBUTE_DEFINED_FOR1;;;;;;;;;;;;;000;;;;;|'
'TXT_KEY_ATTRIBUTE_DEFINED_FOR2;;;;;;;;;;;;;000;;;;;|'
'TXT_KEY_CATEGORY;;KEYKINDTXT;M;;;;;;;;;;000;;;;;|'
'TXT_KEY_COMPONENTS;;;;;;;;;;;;;000;;;;;|'
'TXT_KEY_DEFINITION;;;;;;;;;;;;;000;;;;;|'
'TXT_KEY___KEY;;KEYFLAG;T;;;;;;;;;;000;;;;;|'
'TXT_LANGUAGE;;LANGU;M;;;;;;;;;;000;;;;;|'
'TXT_LAST_CHANGED;;S_LSTTIME;T;;;;;;;;;;;;;;;|'
'TXT_LAST_CHANGED_AT;;U_TIME;M;;;;;;;;;;;;;;;|'
'TXT_LAST_CHANGED_BY___1;;UFTSTAMP;M;;;;;;;;;;000;;;;;|'
'TXT_LAST_CHANGED_BY___2;;UNAM;M;;;;;;;;;;000;;;;;|'
'TXT_LAST_CHANGED_BY___3;;LAST_USER;M;;;;;;;;;;000;;;;;|'
'TXT_LAST_CHANGED_ON;;SRMXMLLD;M;;;;;;;;;;000;;;;;|'
'TXT_LAST_CHANGED_ON_BY;;UFTSTAMP;D;;;;;;;;;;000;;;;;|'
'TXT_LAST_GENERATION;;SCRHGEND;T;;;;;;;;;;000;;;;;|'
'TXT_LAYOUT;;LAYVAR;M;;;;;;;;;;000;;;;;|'
'TXT_LEADING_ZEROS;;SCRFFILL;M;;;;;;;;;;000;;;;;|'
'TXT_LENGTH;;DDLENG;T;;;;;;;;;;000;;;;;|'
'TXT_LEVEL;;SEOATTDECL;S;;;;;;;;;;000;;;;;|'
'TXT_LICENSE_EXPIRATION;;;;;;;;;;;;;000;;;;;|'
'TXT_LIFETIME;;O2LIFETIME;M;;;;;;;;;;000;;;;;|'
'TXT_LINE;;SCRFLINE;M;;;;;;;;;;000;;;;;|'
'TXT_LINES;;SYSROWS;M;;;;;;;;;;000;;;;;|'
'TXT_LINE_TYPE;;SRET_RTYPE;M;;;;;;;;;;000;;;;;|'
'TXT_LIST_HEADER;;;;;;;;;;;;;000;;;;;|'
'TXT_LIST_HEADINGS;;;;;;;;;;;;;000;;;;;|'
'TXT_LOCAL_IN_PROGRAM;;EUSEL_LOC;M;;;;;;;;;;;;;;;|'
'TXT_LOCAL_TYPES;;;;;;;;;;;;;000;;;;;|'
'TXT_LOCK_MODE;;ENQMODE;M;;;;;;;;;;000;;;;;|'
'TXT_LOCK_OBJECTS;;CLASSSPO;M;;;;;;;;;;000;;;;;|'
'TXT_LOCK_OBJECT___1;;ENQUETAB;M;;;;;;;;;;000;;;;;|'
'TXT_LOCK_OBJECT___2;;E_ENQNAME;M;;;;;;;;;;000;;;;;|'
'TXT_LOCK_PARAMETER;;DDENQUPAR;M;;;;;;;;;;000;;;;;|'
'TXT_LOGICAL_DATABASE;;SYDBNAM;M;;;;;;;;;;000;;;;;|'
'TXT_LOGICAL_STORAGE_PARAMETERS;;;;;;;;;;;;;000;;;;;|'
'TXT_LOGON;;RSAULOGIN;S;;;;;;;;;;000;;;;;|'
'TXT_LOG_DATA_CHANGES;;DDPROTOCOL;D;;;;;;;;;;000;;;;;|'
'TXT_LONG;;SCRTEXT_L;S;;;;;;;;;;000;;;;;|'
'TXT_LONG_TEXT;;UFLONGNAME;M;;;;;;;;;;000;;;;;|'
'TXT_LOWERCASE;;TRWLOWCASE;M;;;;;;;;;;000;;;;;|'
'TXT_LOWER_LIMIT;;VAL_LOWER;M;;;;;;;;;;000;;;;;|'
'TXT_LPOS;;SHLPLISPOS;T;;;;;;;;;;000;;;;;|'
'TXT_MACHINE_TYPE;;;;;;;;;;;;;000;;;;;|'
'TXT_MACROS;;FORMINFOPK;M;;;;;;;;;;000;;;;;|'
'TXT_MAINTENANCE;;MAINTAUTH;M;;;;;;;;;;000;;;;;|'
'TXT_MAINTENANCE_OF_STANDARD_TR;;;;;;;;;;;;;;;;;;|'
'TXT_MAINTENANCE_SCREENS;;DYNP_MNT;L;;;;;;;;;;000;;;;;|'
'TXT_MAINTENANCE_TYPE;;MAINT_TYPE;T;;;;;;;;;;000;;;;;|'
'TXT_MAINT_SCREEN_NO;;;;;;;;;;;;;000;;;;;|'
'TXT_MAINT_STATUS;;VIEWGRANT;M;;;;;;;;;;000;;;;;|'
'TXT_MAIN_PACKAGE;;MAINPACK;M;;;;;;;;;;000;;;;;|'
'TXT_MAIN_PROGRAM;;ASTAT_PROG;T;;;;;;;;;;000;;;;;|'
'TXT_MANIPULATION_OF_ELEMENT_CO;;O2BODYWRITER;L;;;;;;;;;;;;;;;|'
'TXT_MAX_NO_OF_LINES;;BAPIMAXROW;L;;;;;;;;;;000;;;;;|'
'TXT_MEDIUM;;SCRTEXT_M;S;;;;;;;;;;000;;;;;|'
'TXT_MENU;;PPMENUE;M;;;;;;;;;;000;;;;;|'
'TXT_MESSAGE;;MSGNR;M;;;;;;;;;;;;;;;|'
'TXT_MESSAGES;;MESSAGES_D;M;;;;;;;;;;;;;;;|'
'TXT_MESSAGE_CLASS;;MSGID;T;;;;;;;;;;000;;;;;|'
'TXT_MESSAGE_CLASSES;;VRSMENU18;M;;;;;;;;;;;;;;;|'
'TXT_MESSAGE_SHORT_TEXT;;;;;;;;;;;;;;;;;;|'
'TXT_METHOD;;SEOMTDNAME;M;;;;;;;;;;000;;;;;|'
'TXT_METHODS;;SE30OKMETH;M;;;;;;;;;;000;;;;;|'
'TXT_METHOD_TYPE;;SEOMTDTYPE;M;;;;;;;;;;000;;;;;|'
'TXT_MIMES;;W3MIMLSELE;M;;;;;;;;;;000;;;;;|'
'TXT_MIME_TYPE;;SKWF_MIME;M;;;;;;;;;;000;;;;;|'
'TXT_MOD;;DDMODKZ;T;;;;;;;;;;000;;;;;|'
'TXT_MODAL_DIALOG_BOX;;SCRHTYPM;M;;;;;;;;;;000;;;;;|'
'TXT_MODE;;R3MODE;M;;;;;;;;;;000;;;;;|'
'TXT_MODELED_ONLY;;;;;;;;;;;;;000;;;;;|'
'TXT_MODIFIED;;TFMJMODIF;M;;;;;;;;;;000;;;;;|'
'TXT_MOD_GROUPS_FUNCTIONS;;;;;;;;;;;;;000;;;;;|'
'TXT_NAME;;CUNAM;M;;;;;;;;;;000;;;;;|'
'TXT_NAME_OF_REF_TYPE;;REFTYPNAME;M;;;;;;;;;;000;;;;;|'
'TXT_NAME_OF_SCREEN_FIELD;;;;;;;;;;;;;000;;;;;|' space into ls_csv.
append ls_csv to ct_csv. concatenate
'TXT_NAVIGATION;;;;;;;;;;;;;000;;;;;|'
'TXT_NAVIGATION_REQUEST;;;;;;;;;;;;;000;;;;;|'
'TXT_NEXT_SCREEN;;SCRHFNUM;M;;;;;;;;;;000;;;;;|'
'TXT_NO;;;;XFELD;;;;;;;;;000;;;;;|'
'TXT_NORMAL;;SCRHTYPN;M;;;;;;;;;;000;;;;;|'
'TXT_NORMAL_FUNCTION_MODULE;;RS38L_NORM;T;;;;;;;;;;000;;;;;|'
'TXT_NOT_RELEASED;;;;SEORELSTAT;0;;;;;;;;000;;;;;|'
'TXT_NO_LENGTH_RESTRICTION;;;;;;;;;;;;;000;;;;;|'
'TXT_NO_OF_CHARACTERS;;DDLENG;M;;;;;;;;;;000;;;;;|'
'TXT_NO_OF_KEY_FIELDS;;;;;;;;;;;;;000;;;;;|'
'TXT_NO_OR_USER_RECORDING_ROUTI;;CORR_CON_I;T;;;;;;;;;;000;;;;;|'
'TXT_NO_RESET;;SCRFFNRS;D;;;;;;;;;;000;;;;;|'
'TXT_OBJECT;;XUOBJECT;M;;;;;;;;;;;;;;;|'
'TXT_OBJECTS;;SCIOBJCNT;T;;;;;;;;;;000;;;;;|'
'TXT_OBJECT_TRANSACTION;;EUSEL_CLS;L;;;;;;;;;;000;;;;;|'
'TXT_OBJECT_TYPE;;OBJECTTYP;M;;;;;;;;;;000;;;;;|'
'TXT_OCCUPIED;;S_SEATSOCC;S;;;;;;;;;;000;;;;;|'
'TXT_ONE_STEP;;MTYPE1;M;;;;;;;;;;000;;;;;|'
'TXT_OO_TRANSACTION_MODEL;;;;;;;;;;;;;;;;;;|'
'TXT_OPERATING_SYSTEM;;SAAOPSYS;D;;;;;;;;;;000;;;;;|'
'TXT_OPERATOR;;VSOPERATOR;M;;;;;;;;;;000;;;;;|'
'TXT_OPTION;;SWFMOD_OPTION;M;;;;;;;;;;000;;;;;|'
'TXT_OPTIONAL;;RS38L_OPTI;S;;;;;;;;;;000;;;;;|'
'TXT_OPTIONS;;IWEXOPTT;M;;;;;;;;;;000;;;;;|'
'TXT_OP_RELEASE;;;;;;;;;;;;;000;;;;;|'
'TXT_ORIGINAL_LANG;;RS38L_MASL;M;;;;;;;;;;;;;;;|'
'TXT_ORIGINAL_LANGUAGE;;DD_LANGU;M;;;;;;;;;;000;;;;;|'
'TXT_ORIGIN_OF_THE_INPUT_HELP;;;;;;;;;;;;;000;;;;;|'
'TXT_OTHER_ATTRIBUTES;;;;;;;;;;;;;000;;;;;|'
'TXT_OUTPUT;;SCRFFOUT;M;;;;;;;;;;000;;;;;|'
'TXT_OUTPUT_CHARACTERISTICS;;;;;;;;;;;;;000;;;;;|'
'TXT_OUTPUT_LENGTH;;TTOUTLENG;M;;;;;;;;;;000;;;;;|'
'TXT_OUTPUT_ONLY;;SCRFOOUT;M;;;;;;;;;;000;;;;;|'
'TXT_OVERVIEW_SCREEN;;LIST_SCR;M;;;;;;;;;;000;;;;;|'
'TXT_OWNER;;PTOWNER;M;;;;;;;;;;000;;;;;|'
'TXT_PACKAGE;;DEVCLASS;M;;;;;;;;;;000;;;;;|'
'TXT_PACKAGES_INCLUDED;;;;;;;;;;;;;000;;;;;|'
'TXT_PACKAGE_CHECK_AS_CLIENT;;;;;;;;;;;;;000;;;;;|'
'TXT_PACKAGE_CHECK_AS_SERVER;;;;;;;;;;;;;000;;;;;|'
'TXT_PACKAGE_INTERFACE;;SCOMIFNAM;M;;;;;;;;;;000;;;;;|'
'TXT_PACKAGE_INTERFACES;;EX_CKI;M;;;;;;;;;;000;;;;;|'
'TXT_PACKAGE_NOT_EXTENDABLE;;;;;;;;;;;;;000;;;;;|'
'TXT_PACKAGE_PROPERTIES;;;;;;;;;;;;;000;;;;;|'
'TXT_PAGE;;O2PAGE;M;;;;;;;;;;000;;;;;|'
'TXT_PAGES_WITH_FLOW_LOGIC;;;;;;;;;;;;;000;;;;;|'
'TXT_PAGE_ATTRIBUTES;;;;;;;;;;;;;000;;;;;|'
'TXT_PAGE_DONE_IS_NOT_RETURNED_;;;;;;;;;;;;;;;;;;|'
'TXT_PAGE_FRAGMENT;;;;O2PAGTYP;X;;;;;;;;000;;;;;|'
'TXT_PAGE_FRAGMENTS;;;;;;;;;;;;;000;;;;;|'
'TXT_PAGE_TYPE;;O2PAGTYP;M;;;;;;;;;;000;;;;;|'
'TXT_PAGE_WITH_FLOW_LOGIC;;;;O2PAGTYP;;;;;;;;;000;;;;;|'
'TXT_PARAMETER;;PARAM_011A;M;;;;;;;;;;000;;;;;|'
'TXT_PARAMETERS;;PARNAME;T;;;;;;;;;;000;;;;;|'
'TXT_PARAMETER_ID;;PARID;M;;;;;;;;;;000;;;;;|'
'TXT_PARAMETER_NAME;;PARAMETER;M;;;;;;;;;;000;;;;;|'
'TXT_PARAMETER_TRANSACTION;;EUSEL_PARA;L;;;;;;;;;;000;;;;;|'
'TXT_PASS_VALUE;;RS38L_VAL;M;;;;;;;;;;000;;;;;|'
'TXT_PERSON_RESPONS;;CGPL_RESPONSIBLE;M;;;;;;;;;;;;;;;|'
'TXT_PERSON_RESPONSIBLE___1;;SCI_USER;T;;;;;;;;;;000;;;;;|'
'TXT_PERSON_RESPONSIBLE___2;;AUTHOR3;T;;;;;;;;;;000;;;;;|'
'TXT_PERVASIVE_ENABLED;;S_PERVAS;T;;;;;;;;;;000;;;;;|'
'TXT_PLATFORM_ID;;SCE_PLID;M;;;;;;;;;;000;;;;;|'
'TXT_PLEASE_ENTER_A_ROOT_DIR;;;;;;;;;;;;SHDI;002;;;;;|'
'TXT_PLEASE_ENTER_A_VALID_PATH;;;;;;;;;;;;UD;851;;;;;|'
'TXT_POOLED_TABLE;;;;;;;;;;;;;000;;;;;|'
'TXT_POOL_CLUSTER;;CLASSPC;M;;;;;;;;;;000;;;;;|'
'TXT_POSITION;;DDPOSD;M;;;;;;;;;;000;;;;;|'
'TXT_POSS_ENTRIES_KEY;;SCRFCMBPRM;M;;;;;;;;;;000;;;;;|'
'TXT_PREVIOUS_LOGON;;;;;;;;;;;;;000;;;;;|'
'TXT_PRIMARY_TABLE;;ROOTTAB;M;;;;;;;;;;000;;;;;|'
'TXT_PROCESSING_TYPE;;CDUPDATE;M;;;;;;;;;;000;;;;;|'
'TXT_PRODUCT_UNDER_GPL;;;;;;;;;;;;;000;;;;;|'
'TXT_PROFESSIONAL_USER_TRANSACT;;S_PROF;T;;;;;;;;;;000;;;;;|'
'TXT_PROGRAM;;PROGRAM_ID;M;;;;;;;;;;000;;;;;|'
'TXT_PROGRAMS;;CLASSPROG;M;;;;;;;;;;000;;;;;|'
'TXT_PROGRAM_GUI;;;;;;;;;;;;;000;;;;;|'
'TXT_PROGRAM_NAME;;PRGNAME;M;;;;;;;;;;000;;;;;|'
'TXT_PROGRAM_SCREEN;;;;;;;;;;;;;000;;;;;|'
'TXT_PROGRAM_STATUS;;PROG_STAT;M;;;;;;;;;;000;;;;;|'
'TXT_PROPERTIES;;COCOFPRO;M;;;;;;;;;;000;;;;;|'
'TXT_PROPERTY_LIST;;SCRFPRSHOW;M;;;;;;;;;;000;;;;;|'
'TXT_QUANTITY_FIELD;;FQUAN;D;;;;;;;;;;000;;;;;|'
'TXT_READ_ONLY;;FIELD_READ;M;;;;;;;;;;000;;;;;|'
'TXT_RECORDING_ROUTINE;;;;;;;;;;;;;000;;;;;|'
'TXT_REFERENCES;;;;;;;;;;;;;000;;;;;|'
'TXT_REFERENCE_FIELD;;SCRFWAER;M;;;;;;;;;;000;;;;;|'
'TXT_REFERENCE_TABLE;;REFTABLE;M;;;;;;;;;;000;;;;;|'
'TXT_REFERENCE_TO_PREDEFINED_TY;;;;;;;;;;;;;000;;;;;|'
'TXT_REFERENCE_TYPE;;CLASSNAME;M;;;;;;;;;;000;;;;;|'
'TXT_REF_FIELD;;REFFIELD;M;;;;;;;;;;000;;;;;|'
'TXT_RELEASE;;TDFRELES;M;;;;;;;;;;000;;;;;|'
'TXT_RELEASED_INTERNALLY;;;;SEORELSTAT;1;;;;;;;;000;;;;;|'
'TXT_REMOTE_ENABLED_MODULE;;;;;;;;;;;;;000;;;;;|'
'TXT_REPORT;;SYREPID;T;;;;;;;;;;000;;;;;|'
'TXT_REPORT_TRANSACTION;;EUSEL_REPO;L;;;;;;;;;;000;;;;;|'
'TXT_REPOSITORY_DATA;;;;;;;;;;;;;000;;;;;|'
'TXT_REQUIRED;;SPO_OBL;M;;;;;;;;;;;;;;;|'
'TXT_RESP_TO_DBLCLK;;SCRPDBCL;M;;;;;;;;;;000;;;;;|'
'TXT_RESTRICT;;;;;;;;;;;;;000;;;;;|'
'TXT_RIGHT_JUST;;SCRFFJUS;M;;;;;;;;;;000;;;;;|' space into ls_csv.
append ls_csv to ct_csv. concatenate
'TXT_RSYN_FILE;;;;;;;;;;;;;000;;;;;|'
'TXT_RTYPE;;F_REFTYPE;T;;;;;;;;;;000;;;;;|'
'TXT_SAPGUI_FOR_HTML;;S_WEBGUI;T;;;;;;;;;;000;;;;;|'
'TXT_SAPGUI_FOR_JAVA;;S_PLATIN;T;;;;;;;;;;000;;;;;|'
'TXT_SAPGUI_FOR_WINDOWS;;S_WIN32;T;;;;;;;;;;000;;;;;|'
'TXT_SAP_DATA;;;;;;;;;;;;;000;;;;;|'
'TXT_SAP_SYSTEM_DATA;;;;;;;;;;;;;000;;;;;|'
'TXT_SAP_VERSIONS;;;;;;;;;;;;;000;;;;;|'
'TXT_SAVED;;XUSAVED;S;;;;;;;;;;000;;;;;|'
'TXT_SCREEN;;DYNPRONR;S;;;;;;;;;;000;;;;;|'
'TXT_SCREENS;;CLASSDYNP;M;;;;;;;;;;000;;;;;|'
'TXT_SCREEN_FOR;;;;;;;;;;;;;000;;;;;|'
'TXT_SCREEN_GROUP;;SCRHDGRP;M;;;;;;;;;;000;;;;;|'
'TXT_SCREEN_NUMBER;;SCRADNUM;M;;;;;;;;;;000;;;;;|'
'TXT_SCREEN_TYPE;;SCRHTYPE;M;;;;;;;;;;000;;;;;|'
'TXT_SCROLLABLE;;SCRFSCROLL;M;;;;;;;;;;000;;;;;|'
'TXT_SDIS;;SHLPSELDIS;T;;;;;;;;;;000;;;;;|'
'TXT_SEARCH_HELP;;ISIS_CONTRACT_SHLP;M;;;;;;;;;;000;;;;;|'
'TXT_SEARCH_HELP_EXIT;;DDSHSELEXT;T;;;;;;;;;;000;;;;;|'
'TXT_SEARCH_HELP_PARAMETER;;SHLPFIELD;T;;;;;;;;;;000;;;;;|'
'TXT_SEC;;EDI_DISSEC;S;;;;;;;;;;000;;;;;|'
'TXT_SECONDARY_TABLES;;;;;;;;;;;;;000;;;;;|'
'TXT_SELECTION;;OPTSEL;M;;;;;;;;;;000;;;;;|'
'TXT_SELECTION_CONDITIONS;;;;;;;;;;;;;000;;;;;|'
'TXT_SELECTION_CRITERIA;;INSTMARK;D;;;;;;;;;;000;;;;;|'
'TXT_SELECTION_METHOD;;SELMETHOD;T;;;;;;;;;;000;;;;;|'
'TXT_SELECTION_SCREEN;;SCRHTYPS;M;;;;;;;;;;000;;;;;|'
'TXT_SELECTION_SCREEN_VERSION;;RDIR_TYPE;D;;;;;;;;;;000;;;;;|'
'TXT_SELECTION_TEXTS;;SELE;D;;;;;;;;;;000;;;;;|'
'TXT_SELECT_ALL;;;;;;@4B@;S;;;;;;;;;;;|'
'TXT_SELF_EXPLANATY;;;;;;;;;;;;;;;;;;|'
'TXT_SERVER_CACHE;;O2SCACHE;M;;;;;;;;;;000;;;;;|'
'TXT_SERVER_NAME;;SNAME;M;;;;;;;;;;000;;;;;|'
'TXT_SERVICE;;IACSERVIC_;T;;;;;;;;;;000;;;;;|'
'TXT_SETTINGS;;SIN_SETTCO;D;;;;;;;;;;000;;;;;|'
'TXT_SET_GET_PARAMETERS;;;;;;;;;;;;;;;;;;|'
'TXT_SET_PARAMETER;;SCRFFSPA;M;;;;;;;;;;000;;;;;|'
'TXT_SHARED_MEMORY_ENABLED;;;;;;;;;;;;;000;;;;;|'
'TXT_SHORT;;SCRTEXT_S;S;;;;;;;;;;000;;;;;|'
'TXT_SHORT_DESCRIPTION_OF_SOFTW;;COMP_DESC;T;;;;;;;;;;000;;;;;|'
'TXT_SHORT_DESCRIPTION___1;;DDVIEWSTXT;M;;;;;;;;;;000;;;;;|'
'TXT_SHORT_DESCRIPTION___2;;O2DESCR;T;;;;;;;;;;000;;;;;|'
'TXT_SHORT_TEXT___1;;PARAMTEXT;M;;;;;;;;;;000;;;;;|'
'TXT_SHORT_TEXT___2;;AS4TEXT;M;;;;;;;;;;000;;;;;|'
'TXT_SIGN;;SIGNFLAG;M;;;;;;;;;;000;;;;;|'
'TXT_SINGLE_RECORDS_BUFF;;;;;;;;;;;;;000;;;;;|'
'TXT_SINGLE_SCREEN;;EDYNR;M;;;;;;;;;;000;;;;;|'
'TXT_SINGLE_VARS;;;;;;;;;;;;;000;;;;;|'
'TXT_SIZE_CATEGORY;;TABKAT;M;;;;;;;;;;000;;;;;|'
'TXT_SKIP_INITIAL_SCREEN;;;;;;;;;;;;;000;;;;;|'
'TXT_SOFTWARE_COMPONENT;;DLVUNIT;D;;;;;;;;;;000;;;;;|'
'TXT_SOURCECDE;;QUELLTEXT;T;;;;;;;;;;000;;;;;|'
'TXT_SOURCE_CODE;;QUELLTEXT;M;;;;;;;;;;000;;;;;|'
'TXT_SPECIAL_ATTR;;;;;;;;;;;;;000;;;;;|'
'TXT_SPOS;;SHLPSELPOS;T;;;;;;;;;;000;;;;;|'
'TXT_SRCH_HELP;;DDTABSHLP;M;;;;;;;;;;000;;;;;|'
'TXT_SRCH_HELPS;;CLASSSHLP;S;;;;;;;;;;000;;;;;|'
'TXT_STANDARD_RECORDING_ROUTINE;;CORR_CON_S;T;;;;;;;;;;000;;;;;|'
'TXT_START;;PIS_START;M;;;;;;;;;;000;;;;;|'
'TXT_START_DELAYED;;RS38L_TSK2;M;;;;;;;;;;000;;;;;|'
'TXT_START_IMMED;;RS38L_TSK1;M;;;;;;;;;;000;;;;;|'
'TXT_START_USING_VARIANT;;;;;;;;;;;;;000;;;;;|'
'TXT_START_WITH_VARIANT;;;;;;;;;;;;;000;;;;;|'
'TXT_STATEFUL;;O2STATEFUL;L;;;;;;;;;;000;;;;;|'
'TXT_STATUS;;RSTATT;M;;;;;;;;;;000;;;;;|'
'TXT_STRUCTURE;;CLASSSTRU;M;;;;;;;;;;000;;;;;|'
'TXT_STRUCTURED_ROW_TYPE;;;;;;;;;;;;;000;;;;;|'
'TXT_STRUCTURED_TYPE;;;;;;;;;;;;;000;;;;;|'
'TXT_STRUCTURES;;EX_CDS;M;;;;;;;;;;000;;;;;|'
'TXT_SUBSCREEN;;SCRHTYPI;M;;;;;;;;;;000;;;;;|'
'TXT_SUPERCLASS;;;;;;;;;;;;;000;;;;;|'
'TXT_SUPPLEMENTARY_DOCUMENTATIO;;;;;;;;;;;;;000;;;;;|'
'TXT_SUPPORTS_PORTAL_INTEGRATIO;;;;;;;;;;;;;000;;;;;|'
'TXT_SUP_PKG_LVL;;SAPPATCHLV;M;;;;;;;;;;000;;;;;|'
'TXT_SURROUNDING_PACKAGE;;PACKPARENT;M;;;;;;;;;;000;;;;;|'
'TXT_SWITCH_OFF_RUNTIME_COMPRES;;SCRPCOMP;D;;;;;;;;;;000;;;;;|'
'TXT_SYMBOL;;SU0SYMBOL;M;;;;;;;;;;000;;;;;|'
'TXT_SYSTEM;;PBFORSYS;S;;;;;;;;;;000;;;;;|'
'TXT_SYSTEM_INFORMATION;;;;;;;;;;;;;000;;;;;|'
'TXT_SYSTEM_TIME;;;;;;;;;;;;;000;;;;;|'
'TXT_TABLE;;DDTABTYPE;M;;;;;;;;;;000;;;;;|'
'TXT_TABLES;;CLASSTAB;M;;;;;;;;;;000;;;;;|'
'TXT_TABLE_MAINTENANCE_GENERATO;;;;;;;;;;;;;000;;;;;|'
'TXT_TABLE_TYPE;;SQLTSCLASS;T;;;;;;;;;;000;;;;;|'
'TXT_TABLE_TYPES;;EX_CDA;M;;;;;;;;;;000;;;;;|'
'TXT_TARGET;;SDBA_TTSP;M;;;;;;;;;;000;;;;;|'
'TXT_TECHNICAL_DIALOG_DETAILS;;;;;;;;;;;;;000;;;;;|'
'TXT_TECHNICAL_SETTINGS;;;;;;;;;;;;;000;;;;;|'
'TXT_TEMPLATE_NON_EXECUTABLE;;SCRPNOGEN;D;;;;;;;;;;000;;;;;|'
'TXT_TEXT;;SGTXT;M;;;;;;;;;;000;;;;;|'
'TXT_TEXTS_IO_TEMPLATES;;;;;;;;;;;;;000;;;;;|'
'TXT_TEXT_ELEMENTS;;TEXTELEM;M;;;;;;;;;;000;;;;;|'
'TXT_TEXT_OR_IO_FIELD;;;;;;;;;;;;;000;;;;;|'
'TXT_TEXT_TABLE;;DDTABTYPE;M;;;;;;;;;;000;;;;;|'
'TXT_THEME;;O2THEME;M;;;;;;;;;;000;;;;;|'
'TXT_TIME_CHANGED;;UPTIM;M;;;;;;;;;;;;;;;|'
'TXT_TITLE;;REPTI;S;;;;;;;;;;000;;;;;|'
'TXT_TRANSACTION;;TRANSAKT;M;;;;;;;;;;000;;;;;|'
'TXT_TRANSACTIONS;;TRNSAKT;M;;;;;;;;;;000;;;;;|'
'TXT_TRANSACTION_CLASSIFICATION;;;;;;;;;;;;;000;;;;;|' space into
ls_csv. append ls_csv to ct_csv. concatenate
'TXT_TRANSACTION_CODE;;TCODEL;D;;;;;;;;;;;;;;;|'
'TXT_TRANSACTION_TEXT;;TTEXT_STCT;T;;;;;;;;;;000;;;;;|'
'TXT_TRANSACTION_VARIANT;;TCVARIANT;D;;;;;;;;;;;;;;;|'
'TXT_TRANSFER_OPTIONS;;;;;;;;;;;;;000;;;;;|'
'TXT_TRANSFORMATION;;SWFEXTRANS;M;;;;;;;;;;000;;;;;|'
'TXT_TRANSFORMATIONS;;;;;;;;;;;;;000;;;;;|'
'TXT_TRANSPORT_ATTRIBUTES;;OB_TADIR;T;;;;;;;;;;000;;;;;|'
'TXT_TRANSPORT_LAYER;;DEVLAYER;L;;;;;;;;;;000;;;;;|'
'TXT_TRANSP_TABLE;;;;;;;;;;;;;000;;;;;|'
'TXT_TWO_STEP;;MTYPE2;M;;;;;;;;;;000;;;;;|'
'TXT_TYPES;;SPAR_TYP;M;;;;;;;;;;000;;;;;|'
'TXT_TYPE_DEFINITIONS;;;;;;;;;;;;;000;;;;;|'
'TXT_TYPE_GROUP;;TYPEGROUP;M;;;;;;;;;;000;;;;;|'
'TXT_TYPE_GRPS;;CLASSTYGR;S;;;;;;;;;;000;;;;;|'
'TXT_TYPE_IS_GENERIC;;;;;;;;;;;;;000;;;;;|'
'TXT_TYPE_OF_SCREEN_ELEMENT;;SCRFGTYP;D;;;;;;;;;;000;;;;;|'
'TXT_TYPE_SPEC;;RSFBTYPEF;T;;;;;;;;;;000;;;;;|'
'TXT_TYPE___1;;OB_TYP;M;;;;;;;;;;000;;;;;|'
'TXT_TYPE___2;;KIND;M;;;;;;;;;;000;;;;;|'
'TXT_TYPING;;SEOTYPTYPE;M;;;;;;;;;;000;;;;;|'
'TXT_TYPINGMETH;;O2TYPTYPT;S;;;;;;;;;;000;;;;;|'
'TXT_TYPING_METHOD;;O2TYPTYPE;M;;;;;;;;;;;;;;;|'
'TXT_UNICODE_CHECKS;;UCCHECK;M;;;;;;;;;;000;;;;;|'
'TXT_UNICODE_SYSTEM;;;;;;;;;;;;;000;;;;;|'
'TXT_UPDATES;;DB2CXUPDTE;M;;;;;;;;;;000;;;;;|'
'TXT_UPDATE_MODULE;;RS38L_TSK;T;;;;;;;;;;000;;;;;|'
'TXT_UPPERLIMIT;;VAL_UPPER;M;;;;;;;;;;000;;;;;|'
'TXT_UPPER_LOWER_CASE_ENTRY;;SCRFFGKS;D;;;;;;;;;;000;;;;;|'
'TXT_URL;;O2URL;M;;;;;;;;;;000;;;;;|'
'TXT_USAGE_DATA;;;;;;;;;;;;;000;;;;;|'
'TXT_USER;;UNAME;S;;;;;;;;;;000;;;;;|'
'TXT_USER_DEFINED_VALIDATION;;O2VALIDATE;L;;;;;;;;;;;;;;;|'
'TXT_USE_ACCESS;;PERMISFLAG;L;;;;;;;;;;000;;;;;|'
'TXT_VALUE;;EU_PARA_VL;M;;;;;;;;;;000;;;;;|'
'TXT_VALUES;;VAL70;M;;;;;;;;;;000;;;;;|'
'TXT_VALUE_LIST;;SCRFCMBFRM;M;;;;;;;;;;000;;;;;|'
'TXT_VALUE_RANGE;;SQLTTEXT50;M;;;;;;;;;;000;;;;;|'
'TXT_VARIANT;;RSTI_VARI;S;;;;;;;;;;000;;;;;|'
'TXT_VARIANTS;;TVIMV_DEL;M;;;;;;;;;;000;;;;;|'
'TXT_VARIANTS_OF_REPORTS;;;;;;;;;;;;;000;;;;;|'
'TXT_VARIANT_TRANSACTION;;EUSEL_VARI;L;;;;;;;;;;000;;;;;|'
'TXT_VERSION;;SBORPVNR;S;;;;;;;;;;000;;;;;|'
'TXT_VIEW;;VIEWNAME;S;;;;;;;;;;000;;;;;|'
'TXT_VIEWS;;EX_CDV;M;;;;;;;;;;000;;;;;|'
'TXT_VIEW_FIELD;;VIEWFIELD;M;;;;;;;;;;000;;;;;|'
'TXT_VIEW_FLDS;;;;;;;;;;;;;000;;;;;|'
'TXT_VISIBILITY;;SEOEXPOSE;M;;;;;;;;;;000;;;;;|'
'TXT_VISIBLE;;SEOEXPOSE;S;;;;;;;;;;000;;;;;|'
'TXT_VISLG;;SCRFVLENG;M;;;;;;;;;;000;;;;;|'
'TXT_W;;;;;;;;;;;;;000;;;;;|'
'TXT_WITHOUT_APPLICATION_TOOLBA;;SCRPNOTOOL;D;;;;;;;;;;000;;;;;|'
'TXT_WITHOUT_TEMPLATE;;;;;;;;;;;;;000;;;;;|'
'TXT_WITH_ICON;;SCRFICONX;M;;;;;;;;;;000;;;;;|'
'TXT_WO_SCRIPT_CODE;;O2NOSCRIPT;M;;;;;;;;;;000;;;;;|'
'TXT_YES;;;;XFELD;X;;;;;;;;000;;;;;|'
'VAR_NAME_VALUE;#NAME_VALUE#;;;;;;;;;;;;000;;;;;|' space into ls_csv.
append ls_csv to ct_csv. endform. form csv_text_elements_2 changing
ct_csv type it_string. refresh ct_csv. data ls_csv type string.
concatenate 'TPT_DDIC_DOMA;D;Dictionary: Dom&#xE4;ne anzeigen|'
'TPT_DDIC_DOMA;E;Dictionary: Display Domain|'
'TPT_DDIC_DTEL;D;Dictionary: Datenelement anzeigen|'
'TPT_DDIC_DTEL;E;Dictionary: Display Data Element|'
'TPT_DDIC_ENQU;D;Dictionary: Sperrobjekt anzeigen|'
'TPT_DDIC_ENQU;E;Dictionary: Display Lock Object|'
'TPT_DDIC_SHLP;D;Dictionary: Suchhilfe anzeigen|'
'TPT_DDIC_SHLP;E;Dictionary: Display Search Help|'
'TPT_DDIC_STRU;D;Dictionary: Struktur anzeigen|'
'TPT_DDIC_STRU;E;Dictionary: Display Structure|'
'TPT_DDIC_TABL;D;Dictionary: Tabelle anzeigen|'
'TPT_DDIC_TABL;E;Dictionary: Display Table|'
'TPT_DDIC_TTYP;D;Dictionary: Tabellentyp anzeigen|'
'TPT_DDIC_TTYP;E;Dictionary: Display Table Type|'
'TPT_DDIC_TYPE;D;Dictionary: Typgruppe anzeigen|'
'TPT_DDIC_TYPE;E;Dictionary: Display Type Group|'
'TPT_DDIC_VIEW;D;Dictionary: View anzeigen|'
'TPT_DDIC_VIEW;E;Dictionary: Display View|'
'TPT_FUGR_FUBA;D;Function Builder: #NAME_VALUE# anzeigen|'
'TPT_FUGR_FUBA;E;Function Builder: Display #NAME_VALUE#|'
'TPT_FUGR_FUGR;D;Funktionsgruppe anzeigen|'
'TPT_FUGR_FUGR;E;Display Function Group|'
'TPT_FUGR_INCL;D;ABAP Editor: Include #NAME_VALUE# anzeigen|'
'TPT_FUGR_INCL;E;ABAP Editor: Display Include #NAME_VALUE#|'
'TPT_FUGR_SCR;D;Screen Painter: Dynpro zu #NAME_VALUE# anzeigen|'
'TPT_FUGR_SCR;E;Screen Painter: Display Screen for #NAME_VALUE#|'
'TPT_MSAG;D;Nachrichtenpflege: Nachrichtenklasse anzeigen|'
'TPT_MSAG;E;Message Maintenance: Display Message Class|'
'TPT_O2_WAPA;D;Web Application Builder: BSP-Applikation anzeigen|'
'TPT_O2_WAPA;E;Web Application Builder: Display BSP Application|'
'TPT_O2_WAPA_CTRL;D;Web Application Builder: Controller zu #NAME_VALU'
'E# anzeigen|'
'TPT_O2_WAPA_CTRL;E;Web Application Builder: Display Controller of #N'
'AME_VALUE#|'
'TPT_O2_WAPA_PAGE;D;Web Application Builder: Seite zu #NAME_VALUE# an'
'zeigen|'
'TPT_O2_WAPA_PAGE;E;Web Application Builder: Display Page #NAME_VALUE'
'#|' 'TPT_O2_WTAG;D;BSP-Extension #NAME_VALUE# anzeigen|'
'TPT_O2_WTAG;E;Display BSP Extension #NAME_VALUE#|'
'TPT_O2_XSLT;D;Transformation #NAME_VALUE# anzeigen|'
'TPT_O2_XSLT;E;Display XSLT Program #NAME_VALUE#|'
'TPT_PACK_DEVC;D;Package Builder: Paket anzeigen|'
'TPT_PACK_DEVC;E;Package Builder: Display Package|'
'TPT_PARA;D;Parameter anzeigen|' 'TPT_PARA;E;Display Parameter|'
'TPT_PROG_INCL;D;ABAP Editor: Include #NAME_VALUE# anzeigen|'
'TPT_PROG_INCL;E;ABAP Editor: Display Include #NAME_VALUE#|'
'TPT_PROG_REPO;D;ABAP Editor: Report #NAME_VALUE# anzeigen|'
'TPT_PROG_REPO;E;ABAP Editor: Display Report #NAME_VALUE#|'
'TPT_SEO_CLAS;D;Class Builder: Klasse #NAME_VALUE# anzeigen|'
'TPT_SEO_CLAS;E;Class Builder: Display Class #NAME_VALUE#|'
'TPT_SEO_INTF;D;Class Builder: Interface #NAME_VALUE# anzeigen|'
'TPT_SEO_INTF;E;Class Builder: Display Interface #NAME_VALUE#|'
'TPT_TOBJ;D;Berechtigungsobjekt anzeigen|'
'TPT_TOBJ;E;Display Authorization Object|'
'TXTT_BSP_EXTENSION_NAME_VALUE;D;BSP-Extension #NAME_VALUE#|'
'TXTT_BSP_EXTENSION_NAME_VALUE;E;BSP Extension #NAME_VALUE#|'
'TXTT_CLASS_NAME_VALUE;D;Klasse #NAME_VALUE#|'
'TXTT_CLASS_NAME_VALUE;E;Class #NAME_VALUE#|'
'TXTT_CONTEXT_MENU_FORM_ON_CTME;D;Kontextmen&#xFC; FORM ON CTMENU|'
'TXTT_CONTEXT_MENU_FORM_ON_CTME;E;Context menu FORM ON CTMENU|'
'TXTT_CONTROLLER_OF_NAME_VALUE;D;Controller zu #NAME_VALUE#|'
'TXTT_CONTROLLER_OF_NAME_VALUE;E;Controller of #NAME_VALUE#|'
'TXTT_CURRENCY_QUANTITY_FIELD;D;W&#xE4;hrung/Mengenfeld|'
'TXTT_CURRENCY_QUANTITY_FIELD;E;Currency/Quantity field|'
'TXTT_ENTRY_HELP_CHECK;D;Eingabehilfe/Pr&#xFC;fung|'
'TXTT_ENTRY_HELP_CHECK;E;Entry help/check|'
'TXTT_INCLUDE_NAME_VALUE;D;Include #NAME_VALUE#|'
'TXTT_INCLUDE_NAME_VALUE;E;Include #NAME_VALUE#|'
'TXTT_INTERFACE_NAME_VALUE;D;Interface #NAME_VALUE#|'
'TXTT_INTERFACE_NAME_VALUE;E;Interface #NAME_VALUE#|'
'TXTT_LINES_COLUMNS;D;Zeilen/Spalten|'
'TXTT_LINES_COLUMNS;E;Lines/Columns|'
'TXTT_PAGE_NAME_VALUE;D;Seite zu #NAME_VALUE#|'
'TXTT_PAGE_NAME_VALUE;E;Page #NAME_VALUE#|'
'TXTT_REPORT_NAME_VALUE;D;Report #NAME_VALUE#|'
'TXTT_REPORT_NAME_VALUE;E;Report #NAME_VALUE#|'
'TXTT_SCREEN_FOR_NAME_VALUE;D;Dynpro zu #NAME_VALUE#|'
'TXTT_SCREEN_FOR_NAME_VALUE;E;Screen for #NAME_VALUE#|'
'TXTT_TABLES_JOIN_CONDITIONS;D;Tabellen/Joinbedingungen|'
'TXTT_TABLES_JOIN_CONDITIONS;E;Table/Join Conditions|'
'TXTT_TRANSFORMATION_NAME_VALUE;D;Transformation #NAME_VALUE#|'
'TXTT_TRANSFORMATION_NAME_VALUE;E;Transformation #NAME_VALUE#|'
'TXTT_TYPE_GROUP_OBJECT_TYPE;D;Typgruppe/Objekttyp|'
'TXTT_TYPE_GROUP_OBJECT_TYPE;E;Type group/Object type|'
'TXTT_UNICODE_CHECKS_ACTIVE;D;Unicodepr&#xFC;fungen aktiv|'
'TXTT_UNICODE_CHECKS_ACTIVE;E;Unicode checks active|'
'TXT_2_DIMENSIONAL;D;2Dim|' 'TXT_2_DIMENSIONAL;E;2-dimensional|'
'TXT_ABAP_LOAD;D;ABAP-Load|' 'TXT_ABAP_LOAD;E;ABAP Load|'
'TXT_ABOUT;D;&#xFC;ber|' 'TXT_ABOUT;E;about|'
'TXT_ABSTRACT;D;Abstrakt|' 'TXT_ABSTRACT;E;Abstract|'
'TXT_ACCESS;D;Zugriff|' 'TXT_ACCESS;E;Access|'
'TXT_ACCESS_TYPE_IS_GIVEN_FOR_A;D;Zugriffsart ist f&#xFC;r einen Rang'
'es-Tabellentyp vorgegeben|'
'TXT_ACCESS_TYPE_IS_GIVEN_FOR_A;E;Access type is given for a ranges t'
'able type|' 'TXT_ACTIVATED;D;Aktiv|' 'TXT_ACTIVATED;E;Activated|'
'TXT_ACTIVE___1;D;aktiv|' 'TXT_ACTIVE___1;E;Active|' space into ls_csv.
append ls_csv to ct_csv. concatenate 'TXT_ACTIVE___2;D;aktiv|'
'TXT_ACTIVE___2;E;active|' 'TXT_ACTIVITIES;D;Aktivit&#xE4;ten|'
'TXT_ACTIVITIES;E;Activities|' 'TXT_ACTIVITY;D;Aktivit&#xE4;t|'
'TXT_ACTIVITY;E;Activity|' 'TXT_ALIAS;D;Alias|' 'TXT_ALIAS;E;Alias|'
'TXT_ALIASES;D;Aliases|' 'TXT_ALIASES;E;Aliases|'
'TXT_ALLOWED_OBJECT_TYPES;D;Erlaubte Objekttypen|'
'TXT_ALLOWED_OBJECT_TYPES;E;Allowed object types|'
'TXT_ALLOW_RFC;D;RFC erlauben|' 'TXT_ALLOW_RFC;E;Allow RFC|'
'TXT_ALL_RIGHTS_RESERVED;D;Alle Rechte vorbehalten.|'
'TXT_ALL_RIGHTS_RESERVED;E;All rights reserved.|'
'TXT_AND_OR;D;AND/OR|' 'TXT_AND_OR;E;AND/OR|'
'TXT_APPENDING_VIEW;D;Appendierender View|'
'TXT_APPENDING_VIEW;E;Appending view|' 'TXT_APPLICATION;D;Anwendung|'
'TXT_APPLICATION;E;Application|'
'TXT_APPLICATION_CLASS;D;Anwendungsklasse|'
'TXT_APPLICATION_CLASS;E;Application Class|'
'TXT_APPLICATION_COMPONENT;D;Anwendungskomponente|'
'TXT_APPLICATION_COMPONENT;E;Application Component|'
'TXT_APPLICATION___1;E;Application|'
'TXT_ASSIGNED_ERROR_PAGE;D;Zugeord. Fehlerseite|'
'TXT_ASSIGNED_ERROR_PAGE;E;Assigned Error Page|'
'TXT_ASSOCIATED_TYPE;D;Bezugstyp|'
'TXT_ASSOCIATED_TYPE;E;Associated Type|'
'TXT_ASSOCIATED_TYPE_FOR_LOW_HI;D;Bezugstyp f&#xFC;r LOW/HIGH-Kompone'
'nten|'
'TXT_ASSOCIATED_TYPE_FOR_LOW_HI;E;Associated type for LOW/HIGH compon'
'ents|' 'TXT_AS_LABEL_LEFT;D;als Bez. links|'
'TXT_AS_LABEL_LEFT;E;As label left|'
'TXT_AS_LABEL_RIGHT;D;als Bez. rechts|'
'TXT_AS_LABEL_RIGHT;E;As label right|' 'TXT_ATTRIBUTE;D;Attribut|'
'TXT_ATTRIBUTE;E;Attribute|' 'TXT_ATTRIBUTES___1;D;Eigenschaften|'
'TXT_ATTRIBUTES___1;E;Attributes|' 'TXT_ATTRIBUTES___2;D;Attribute|'
'TXT_ATTRIBUTES___2;E;Attributes|'
'TXT_AUTHORIZATION_FIELDS;D;Berechtigungsfelder|'
'TXT_AUTHORIZATION_FIELDS;E;Authorization fields|'
'TXT_AUTHORIZATION_GROUP;D;Berechtigungsgruppe|'
'TXT_AUTHORIZATION_GROUP;E;Authorization Group|'
'TXT_AUTHORIZATION_OBJECT;E;Authorization object|'
'TXT_AUTHORIZATION_OBJECT___1;D;Berechtigungsobjekt|'
'TXT_AUTHORIZATION_OBJECT___1;E;Authorization object|'
'TXT_AUTHORIZATION_OBJECT___2;D;Berechtigungsobjekt|'
'TXT_AUTHORIZATION_OBJECT___2;E;Authorization Object|'
'TXT_AUTO;D;Auto|' 'TXT_AUTO;E;Auto|' 'TXT_AUTOR;D;Author|'
'TXT_AUTOR;E;Autor|' 'TXT_BINDABLE;D;Bindable|'
'TXT_BINDABLE;E;Bindable|' 'TXT_BLANK;D;Leer|' 'TXT_BLANK;E;Blank|'
'TXT_BRG;D;Hell|' 'TXT_BRG;E;Brg.|'
'TXT_BROWSER_CACHE;D;Browser Cache|'
'TXT_BROWSER_CACHE;E;Browser Cache|'
'TXT_BROWSER_SPECIFIC;D;Browser abh&#xE4;ngig|'
'TXT_BROWSER_SPECIFIC;E;Browser-Specific|'
'TXT_BSP_APPLICATION;D;BSP-Applikation|'
'TXT_BSP_APPLICATION;E;BSP Application|'
'TXT_BSP_APPLICATIONS;D;BSP-Applikationen|'
'TXT_BSP_APPLICATIONS;E;BSP Applications|'
'TXT_BSP_ELEMENT;D;BSP-Element|' 'TXT_BSP_ELEMENT;E;BSP Element|'
'TXT_BSP_ELEMENTS_AND_STATIC_HT;D;BSP-Elemente und statisches HTML|'
'TXT_BSP_ELEMENTS_AND_STATIC_HT;E;BSP Elements and Static HTML|'
'TXT_BSP_ELEMENTS_ONLY;D;Ausschlie&#xDF;lich BSP-Elemente|'
'TXT_BSP_ELEMENTS_ONLY;E;BSP Elements Only|'
'TXT_BSP_ELEMENT_BASIS_CLASS;D;BSP-Element Basis Klasse|'
'TXT_BSP_ELEMENT_BASIS_CLASS;E;BSP Element Basis Class|'
'TXT_BSP_EXTENSION;D;BSP-Extension|'
'TXT_BSP_EXTENSIONS;D;BSP-Extensions|'
'TXT_BSP_EXTENSIONS;E;BSP Extensions|'
'TXT_BSP_EXTENSION_CLASS;D;BSP-Extension Klasse|'
'TXT_BSP_EXTENSION_CLASS;E;BSP Extension Class|'
'TXT_BSP_LIBRARY;D;Web Objekte|' 'TXT_BSP_LIBRARY;E;BSP Library|'
'TXT_BUFFERING;D;Pufferung|' 'TXT_BUFFERING;E;Buffering|'
'TXT_BUFFERING_TYPE;D;Pufferungsart|'
'TXT_BUFFERING_TYPE;E;Buffering type|'
'TXT_BUILT_IN_TYPE;D;Eingebauter Typ|'
'TXT_BUILT_IN_TYPE;E;Built-in type|' 'TXT_CACHING;D;Caching|'
'TXT_CACHING;E;Caching|' 'TXT_CALL_BY_REF;D;Referenz&#xFC;bergabe|'
'TXT_CALL_BY_REF;E;Call by ref.|' 'TXT_CATEGORY;D;Kategorie|'
'TXT_CATEGORY;E;Category|' 'TXT_CHANGED_ON;D;&#xC4;nderungsdatum|'
'TXT_CHANGED_ON;E;Changed on|'
'TXT_CHANGES_ARE_RECORDED;D;Mit &#xC4;nderungsaufzeichnung|' space into
ls_csv. append ls_csv to ct_csv. concatenate
'TXT_CHANGES_ARE_RECORDED;E;Changes are recorded|'
'TXT_CHANGE_DOCUMENT;D;&#xC4;nderungsbeleg|'
'TXT_CHANGE_DOCUMENT;E;Change document|' 'TXT_CHANGING;D;Changing|'
'TXT_CHANGING;E;Changing|' 'TXT_CHECK;D;Pr&#xFC;fung|'
'TXT_CHECK;E;Check|' 'TXT_CHECK_TABLE;D;Pr&#xFC;ftabelle|'
'TXT_CHECK_TABLE;E;Check table|' 'TXT_CLASS;D;Klasse|'
'TXT_CLASS;E;Class|' 'TXT_CLASSES;D;Klassen|' 'TXT_CLASSES;E;Classes|'
'TXT_CLASSIFICATION;D;Klassifikation|'
'TXT_CLASSIFICATION;E;Classification|'
'TXT_CLASS_DOCUMENTATION;D;Klassen-Dokumentation|'
'TXT_CLASS_DOCUMENTATION;E;Class documentation|'
'TXT_CLASS_LIBRARY;D;Klassenbibliothek|'
'TXT_CLASS_LIBRARY;E;Class Library|' 'TXT_CLASS_NAME;D;Klassenname|'
'TXT_CLASS_NAME;E;Class Name|' 'TXT_CLIENT;D;Mandant|'
'TXT_CLIENT;E;Client|' 'TXT_CLUSTER_TABLE;D;Cluster-Tabelle|'
'TXT_CLUSTER_TABLE;E;Cluster Table|' 'TXT_COLL_RUN;D;Sammellauf|'
'TXT_COLL_RUN;E;Coll.run|' 'TXT_COLUMN;D;Spalte|'
'TXT_COLUMN;E;Column|' 'TXT_COLUMNS;D;Spalten|'
'TXT_COLUMNS;E;Columns|'
'TXT_COLUMN_HEADING;D;Spalten&#xFC;berschrift|'
'TXT_COLUMN_HEADING;E;Column heading|'
'TXT_COMPARE_FLAG;D;Abgleichkennzeichen|'
'TXT_COMPARE_FLAG;E;Compare Flag|'
'TXT_COMPARISON_VALUE;D;Vergleichswert|'
'TXT_COMPARISON_VALUE;E;Comparison Value|'
'TXT_COMPILATION;D;Compilation|' 'TXT_COMPILATION;E;Compilation|'
'TXT_COMPLETE;D;vollst&#xE4;ndig|' 'TXT_COMPLETE;E;Complete|'
'TXT_COMPLETED;D;Fertig|' 'TXT_COMPLETED;E;Completed|'
'TXT_COMPONENT;D;Komponente|' 'TXT_COMPONENT;E;Component|'
'TXT_COMPONENTS;D;Komponenten|' 'TXT_COMPONENTS;E;Components|'
'TXT_COMPONENT_INFORMATION;D;Komponenteninformationen|'
'TXT_COMPONENT_INFORMATION;E;Component information|'
'TXT_COMPONENT_TYPE;D;Komponententyp|'
'TXT_COMPONENT_TYPE;E;Component type|'
'TXT_COMPONENT_VERSION;D;Komponentenversion|'
'TXT_COMPONENT_VERSION;E;Component version|'
'TXT_COMPRESSED;D;komprimiert|' 'TXT_COMPRESSED;E;compressed|'
'TXT_COMPRESSION;D;Seitenkompr.|' 'TXT_COMPRESSION;E;Compression|'
'TXT_CONTEXT_MENU;D;Kontextmen&#xFC;|'
'TXT_CONTEXT_MENU;E;Context menu|' 'TXT_CONTROLLER;D;Controller|'
'TXT_CONTROLLER;E;Controller|'
'TXT_CONTROLLER_CLASS;D;Controller-Klasse|'
'TXT_CONTROLLER_CLASS;E;Controller Class|'
'TXT_CONTROL_COMPOSITE_NAME;D;Control Composite Name|'
'TXT_CONTROL_COMPOSITE_NAME;E;Control Composite name|'
'TXT_CONVERSION_EXIT;D;Konvertierungs-Exit|'
'TXT_CONVERSION_EXIT;E;Conversion exit|'
'TXT_CONVERSION_FOR_AUTHORIZATI;D;Konvertierung f&#xFC;r Berechtigung'
'sfelder erlaubt|'
'TXT_CONVERSION_FOR_AUTHORIZATI;E;Conversion for authorization fields'
' allowed|' 'TXT_CONVERS_ROUTINE;D;Konvert.-Routine|'
'TXT_CONVERS_ROUTINE;E;Convers. routine|' 'TXT_CREATED;D;Erstellt|'
'TXT_CREATED;E;Created|' 'TXT_CREATED_BY___1;D;Angelegt|'
'TXT_CREATED_BY___1;E;Created by|' 'TXT_CREATED_BY___2;D;Anleger|'
'TXT_CREATED_BY___2;E;Created by|' 'TXT_CREATED_ON;D;Erstellungsdatum|'
'TXT_CREATED_ON;E;Created on|'
'TXT_CREATE_STATEMENT;D;CREATE-Anweisung|'
'TXT_CREATE_STATEMENT;E;CREATE Statement|'
'TXT_CREATION_DATE;D;Erstellungsdatum|'
'TXT_CREATION_DATE;E;Creation Date|'
'TXT_CROSS_CLIENT;D;mandantenunabh&#xE4;ngig|'
'TXT_CROSS_CLIENT;E;Cross-client|' 'TXT_CUA_LOAD;D;CUA-Load|'
'TXT_CUA_LOAD;E;CUA load|' 'TXT_CURRENCY;D;W&#xE4;hrung|'
'TXT_CURRENCY;E;Currency|' 'TXT_CURSOR_POSITION;D;Cursorposition|'
'TXT_CURSOR_POSITION;E;Cursor position|'
'TXT_DATABASE_CONTENT;D;Datenbankinhalt|'
'TXT_DATABASE_CONTENT;E;database content|'
'TXT_DATABASE_DATA;D;Datenbankdaten|'
'TXT_DATABASE_DATA;E;Database data|'
'TXT_DATABASE_INFORMATION;D;Datenbankinformation|'
'TXT_DATABASE_INFORMATION;E;Database information|'
'TXT_DATABASE_SYSTEM;D;Datanbank-System|'
'TXT_DATABASE_SYSTEM;E;Database system|'
'TXT_DATABASE_TABLES;D;Datenbanktabellen|' space into ls_csv. append
ls_csv to ct_csv. concatenate 'TXT_DATABASE_TABLES;E;Database Tables|'
'TXT_DATA_BROWSER_TABLE_VIEW_MA;D;Data Browser/Tabellensicht-Pflege|'
'TXT_DATA_BROWSER_TABLE_VIEW_MA;E;Data Browser/Table View Maint.|'
'TXT_DATA_CLASS;D;Datenart|' 'TXT_DATA_CLASS;E;Data class|'
'TXT_DATA_COLLECTION;D;Datenbeschaffung|'
'TXT_DATA_COLLECTION;E;Data collection|' 'TXT_DATA_ELEM;D;Datenelem|'
'TXT_DATA_ELEM;E;Data elem.|' 'TXT_DATA_ELEMENTS;D;Datenelemente|'
'TXT_DATA_ELEMENTS;E;Data Elements|'
'TXT_DATA_ELEMENT___1;D;Datenelement|'
'TXT_DATA_ELEMENT___1;E;Data element|'
'TXT_DATA_ELEMENT___2;D;Datenelement|'
'TXT_DATA_ELEMENT___2;E;Data Element|' 'TXT_DATA_TYPE;D;Datentyp|'
'TXT_DATA_TYPE;E;Data Type|' 'TXT_DBSL_PATCH_LEVEL;D;DBSL Patch Level|'
'TXT_DBSL_PATCH_LEVEL;E;DBSL Patch Level|'
'TXT_DBSL_VERSION;D;DBSL Version|' 'TXT_DBSL_VERSION;E;DBSL version|'
'TXT_DB_CLIENT_LIB;D;DB Client Lib|'
'TXT_DB_CLIENT_LIB;E;DB client lib.|' 'TXT_DB_RELEASES;D;DB Releases|'
'TXT_DB_RELEASES;E;DB releases|'
'TXT_DECIMAL_PLACES___M;D;Dezimalstellen|'
'TXT_DECIMAL_PLACES___M;E;Decimal Places|'
'TXT_DECIMAL_PLACES___T;D;DezStellen|'
'TXT_DECIMAL_PLACES___T;E;Decimal Places|' 'TXT_DEFAULTS;D;Festwerte|'
'TXT_DEFAULTS;E;Defaults|'
'TXT_DEFAULT_COMPONENT_NAME;D;Default-Komponentenname|'
'TXT_DEFAULT_COMPONENT_NAME;E;Default component name|'
'TXT_DEFAULT_PREFIX;D;Default-Pr&#xE4;fix|'
'TXT_DEFAULT_PREFIX;E;Default Prefix|'
'TXT_DEFAULT_VALUES;D;Vorschlagswerte|'
'TXT_DEFAULT_VALUES;E;Default Values|'
'TXT_DEFAULT_VALUES_FOR;D;Vorschlagswerte f&#xFC;r|'
'TXT_DEFAULT_VALUES_FOR;E;Default values for|'
'TXT_DEFAULT_VALUE___1;D;Defaultwert|'
'TXT_DEFAULT_VALUE___1;E;Default value|'
'TXT_DEFAULT_VALUE___2;D;Vorschlagswert|'
'TXT_DEFAULT_VALUE___2;E;Default value|' 'TXT_DEFINITION;D;Definition|'
'TXT_DEFINITION;E;Definition|' 'TXT_DEFLG;D;defLg|'
'TXT_DEFLG;E;DefLg|'
'TXT_DELIVERY_AND_MAINTENANCE;D;Auslieferung und Pflege|'
'TXT_DELIVERY_AND_MAINTENANCE;E;Delivery and Maintenance|'
'TXT_DELIVERY_CLASS;D;Auslieferungsklasse|'
'TXT_DELIVERY_CLASS;E;Delivery Class|'
'TXT_DELTA_HANDLING;D;Delta-Handling|'
'TXT_DELTA_HANDLING;E;Delta Handling|'
'TXT_DESCRIPTION;D;Beschreibung|' 'TXT_DESCRIPTION;E;Description|'
'TXT_DESELECT_ALL;D;Alle entmarkieren|'
'TXT_DESELECT_ALL;E;Deselect All|' 'TXT_DFLT_VALUE;D;Defaultwert|'
'TXT_DFLT_VALUE;E;Dflt value|' 'TXT_DIALOG_BEHAVIOR;D;Dialogverhalten|'
'TXT_DIALOG_BEHAVIOR;E;Dialog behavior|'
'TXT_DIALOG_DATA_TRANSPORT_DETA;D;Angaben zum Datentransport des Dial'
'ogs|'
'TXT_DIALOG_DATA_TRANSPORT_DETA;E;Dialog Data Transport Details|'
'TXT_DIALOG_TRANSACTION;D;Dialogtransaktion|'
'TXT_DIALOG_TRANSACTION;E;Dialog transaction|'
'TXT_DIALOG_TYPE;D;Dialogtyp|' 'TXT_DIALOG_TYPE;E;Dialog type|'
'TXT_DICTIONARY_REFERENCE;D;Dictionary-Referenz|'
'TXT_DICTIONARY_REFERENCE;E;Dictionary reference|'
'TXT_DICT_FIELD;D;Dict-F|' 'TXT_DICT_FIELD;E;Dict.field|'
'TXT_DICT_MODIFIED;D;Dict-Mod|' 'TXT_DICT_MODIFIED;E;Dict.modified|'
'TXT_DICT_OBJS;D;DDIC-Objekte|' 'TXT_DICT_OBJS;E;Dict. objs.|'
'TXT_DIRECTORY;D;Verzeichnis|' 'TXT_DIRECTORY;E;Directory|'
'TXT_DISABLED;D;Disabled|' 'TXT_DISABLED;E;Disabled|'
'TXT_DISPLAY;D;Anzeigen|' 'TXT_DISPLAY;E;Display|'
'TXT_DISPLAY_ATTR;D;Anzeigeattrib.|'
'TXT_DISPLAY_ATTR;E;Display attr.|' 'TXT_DLEN;D;DLen|'
'TXT_DLEN;E;DLen|' 'TXT_DOCUMENTATION;D;Dokumentation|'
'TXT_DOCUMENTATION;E;Documentation|' 'TXT_DOMAIN;D;Dom&#xE4;ne|'
'TXT_DOMAIN;E;Domain|' 'TXT_DOMAINS;D;Dom&#xE4;nen|'
'TXT_DOMAINS;E;Domains|' 'TXT_DROPDOWN;D;Dropdown|'
'TXT_DROPDOWN;E;Dropdown|' 'TXT_DTYP;D;DTyp|' 'TXT_DTYP;E;DTyp|'
'TXT_DYNAMIC_CONTEXT_MENU;D;dynam. Kontextmen&#xFC;|'
'TXT_DYNAMIC_CONTEXT_MENU;E;Dynamic context menu|'
'TXT_DYNAMIC_VALUE_ALLOWED;D;Dynamischer Wert erlaubt|'
'TXT_DYNAMIC_VALUE_ALLOWED;E;Dynamic Value Allowed|'
'TXT_EASY_WEB_TRANSACTION;D;Easy Web Transaction|' space into ls_csv.
append ls_csv to ct_csv. concatenate
'TXT_EASY_WEB_TRANSACTION;E;Easy Web Transaction|'
'TXT_EDITOR_LOCK;D;Editorsperre|' 'TXT_EDITOR_LOCK;E;Editor lock|'
'TXT_EDIT_LOCK;D;Editiersperre|' 'TXT_EDIT_LOCK;E;Edit lock|'
'TXT_ELEMENTARY_SRCH_HLP;D;elementare Suchhilfe|'
'TXT_ELEMENTARY_SRCH_HLP;E;Elementary srch hlp|'
'TXT_ELEMENTARY_TYPE;D;Elementarer Typ|'
'TXT_ELEMENTARY_TYPE;E;Elementary type|'
'TXT_ELEMENT_CONTENT;D;Element-Inhalt|'
'TXT_ELEMENT_CONTENT;E;Element: content|'
'TXT_ELEMENT_HANDLER_CLASS;D;Element-Handler-Klasse|'
'TXT_ELEMENT_HANDLER_CLASS;E;Element Handler Class|'
'TXT_ELEMENT_INTERPRETS_CONTENT;D;Element interpretiert Inhalt selbst|'
'TXT_ELEMENT_INTERPRETS_CONTENT;E;Element Interprets Content Itself|'
'TXT_ELEMENT_LIST;D;Elementliste|' 'TXT_ELEMENT_LIST;E;Element list|'
'TXT_EMPTY_TAB;D;Leere Tabreiter|' 'TXT_EMPTY_TAB;E;Empty Tab|'
'TXT_ENHANCEMENT_CATEGORY;D;Erweiterungskategorie...|'
'TXT_ENHANCEMENT_CATEGORY;E;Enhancement Category...|'
'TXT_ENHANCEMENT_CATEGORY_FOR_S;D;Erweiterungskategorie der Struktur|'
'TXT_ENHANCEMENT_CATEGORY_FOR_S;E;Enhancement Category for Structure|'
'TXT_ENTER_A_PACKAGE;D;Bitte geben Sie ein Paket ein|'
'TXT_ENTER_A_PACKAGE;E;Enter a package|' 'TXT_ENTRY;D;*-Eingabe|'
'TXT_ENTRY;E;* Entry|' 'TXT_ENTRY_HELP;D;Eingabehilfe|'
'TXT_ENTRY_HELP;E;Entry help|' 'TXT_EQ;D;=|' 'TXT_EQ;E;=|'
'TXT_ERROR_HANDLING;D;Fehlerbehandlung|'
'TXT_ERROR_HANDLING;E;Error Handling|'
'TXT_ERROR_SEVERITY;D;Fehlerschwere|'
'TXT_ERROR_SEVERITY;E;Error Severity|' 'TXT_EVENT;D;Ereignis|'
'TXT_EVENT;E;Event|' 'TXT_EVENTS;D;Ereignisse|' 'TXT_EVENTS;E;Events|'
'TXT_EVENT_HANDLER;D;Eventhandler|'
'TXT_EVENT_HANDLER;E;Event Handler|' 'TXT_EXCEPTIONS;D;Ausnahmen|'
'TXT_EXCEPTIONS;E;Exceptions|' 'TXT_EXCEPTION___1;D;Exception|'
'TXT_EXCEPTION___1;E;Exception|' 'TXT_EXCEPTION___2;D;Ausnahme|'
'TXT_EXCEPTION___2;E;Exception|' 'TXT_EXCLUSIVE;D;Exclusive|'
'TXT_EXCLUSIVE;E;Exclusive|' 'TXT_EXP;D;EXP|' 'TXT_EXP;E;EXP|'
'TXT_EXPORT;D;Export|' 'TXT_EXPORT;E;Export|' 'TXT_FIELD;D;Feld|'
'TXT_FIELD;E;Field|' 'TXT_FIELDS;D;Felder|' 'TXT_FIELDS;E;Fields|'
'TXT_FIELD_LABEL;D;Feldbezeichner|' 'TXT_FIELD_LABEL;E;Field label|'
'TXT_FIELD_NAME;D;Feldname|' 'TXT_FIELD_NAME;E;Field name|'
'TXT_FINAL;D;Final|' 'TXT_FINAL;E;Final|'
'TXT_FIRST_PAGE;D;Startseite|' 'TXT_FIRST_PAGE;E;First Page|'
'TXT_FIXED_FONT;D;&#xC4;quidistanz|' 'TXT_FIXED_FONT;E;Fixed font|'
'TXT_FIXED_POINT_ARITHMETIC;D;Festpunktarithmetik|'
'TXT_FIXED_POINT_ARITHMETIC;E;Fixed point arithmetic|'
'TXT_FIX_VAL;D;Festwert|' 'TXT_FIX_VAL;E;Fix.val.|'
'TXT_FLOW_LOGIC;D;Ablauflogik|' 'TXT_FLOW_LOGIC;E;Flow logic|'
'TXT_FOREIGN_KEY;D;Fremdschl&#xFC;ssel|'
'TXT_FOREIGN_KEY;E;Foreign Key|'
'TXT_FOREIGN_SOURCE_SYSTEM;D;fremdes Quellsystem|'
'TXT_FOREIGN_SOURCE_SYSTEM;E;foreign source system|'
'TXT_FORMAT;D;Format|' 'TXT_FORMAT;E;Format|'
'TXT_FORMATTING;D;Format|' 'TXT_FORMATTING;E;Formatting|'
'TXT_FORWARD_DECLARATIONS;D;Vorw&#xE4;rtsdeklarationen|'
'TXT_FORWARD_DECLARATIONS;E;Forward declarations|'
'TXT_FRAMESET;D;Frameset|' 'TXT_FRAMESET;E;Frameset|'
'TXT_FRIENDS;D;Friends|' 'TXT_FRIENDS;E;Friends|'
'TXT_FROM_MODULE_POOL;D;aus Modulpool|'
'TXT_FROM_MODULE_POOL;E;From module pool|'
'TXT_FULLY_BUFFERED;D;vollst&#xE4;ndig gepuffert|'
'TXT_FULLY_BUFFERED;E;Fully buffered|'
'TXT_FUNCTIONAL_TYPE;D;Funktionstyp|'
'TXT_FUNCTIONAL_TYPE;E;Functional type|'
'TXT_FUNCTION_CODE;D;Funktionscode|'
'TXT_FUNCTION_CODE;E;Function code|'
'TXT_FUNCTION_GROUP;D;Funktionsgruppe|'
'TXT_FUNCTION_GROUP;E;Function group|'
'TXT_FUNCTION_GROUPS;D;Funktionsgruppen|'
'TXT_FUNCTION_GROUPS;E;Function Groups|'
'TXT_FUNCTION_GROUP_DOC;D;FGruppendoku|' space into ls_csv. append
ls_csv to ct_csv. concatenate
'TXT_FUNCTION_GROUP_DOC;E;Function group doc.|'
'TXT_FUNCTION_MODULE;D;Funktionsbaustein|'
'TXT_FUNCTION_MODULE;E;Function module|'
'TXT_FUNCTION_MODULES;D;Funktionsbausteine|'
'TXT_FUNCTION_MODULES;E;Function Modules|'
'TXT_FUNCTION_MODULE_DOCUMENTAT;D;Fbausteindokumentation|'
'TXT_FUNCTION_MODULE_DOCUMENTAT;E;Function module documentation|'
'TXT_FURTHER_CHARACTERISTICS;D;Zusatzeigenschaften|'
'TXT_FURTHER_CHARACTERISTICS;E;Further Characteristics|'
'TXT_FURTHER_OPTIONS;D;Weitere Optionen|'
'TXT_FURTHER_OPTIONS;E;Further options|'
'TXT_GENERAL_ATTR;D;Allg. Attrib.|' 'TXT_GENERAL_ATTR;E;General attr.|'
'TXT_GENERAL_DATA;D;Allgemeine Daten|'
'TXT_GENERAL_DATA;E;General Data|'
'TXT_GENERIC_AREA_BUFFERED;D;generischer Bereich gepuffert|'
'TXT_GENERIC_AREA_BUFFERED;E;Generic area buffered|'
'TXT_GET_PARAMETER;D;Get Parameter|'
'TXT_GET_PARAMETER;E;GET parameter|' 'TXT_GLOBAL;D;Global|'
'TXT_GLOBAL;E;Global|' 'TXT_GROUP;D;Gruppe|' 'TXT_GROUP;E;Group|'
'TXT_GROUP_1;D;Gruppe1|' 'TXT_GROUP_1;E;Group 1|'
'TXT_GROUP_2;D;Gruppe2|' 'TXT_GROUP_2;E;Group 2|'
'TXT_GROUP_3;D;Gruppe3|' 'TXT_GROUP_3;E;Group 3|'
'TXT_GROUP_4;D;Gruppe4|' 'TXT_GROUP_4;E;Group 4|'
'TXT_GUI_STATUS;D;Oberfl&#xE4;chenstatus|'
'TXT_GUI_STATUS;E;GUI status|' 'TXT_GUI_SUPPORT;D;GUI-F&#xE4;higkeit|'
'TXT_GUI_SUPPORT;E;GUI support|' 'TXT_HEADING;D;&#xDC;berschrift|'
'TXT_HEADING;E;Heading|' 'TXT_HEIGHT;D;H&#xF6;he|'
'TXT_HEIGHT;E;Height|' 'TXT_HELP;D;Hilfe|' 'TXT_HELP;E;Help|'
'TXT_HIDDEN;D;Versteckt|' 'TXT_HIDDEN;E;Hidden|'
'TXT_HIERARCHY;D;Hierarchie|' 'TXT_HIERARCHY;E;Hierarchy|'
'TXT_HIGHEST_SUPPORT_PACKAGE;D;H&#xF6;chstes Support Package|'
'TXT_HIGHEST_SUPPORT_PACKAGE;E;Highest Support Package|'
'TXT_HOLD_DATA;D;Halten Daten|' 'TXT_HOLD_DATA;E;Hold Data|'
'TXT_HOLD_SCROLL_POSITION;D;Scrollposition halten|'
'TXT_HOLD_SCROLL_POSITION;E;Hold Scroll Position|' 'TXT_HOST;D;Host|'
'TXT_HOST;E;Host|' 'TXT_HOST_DATA;D;Rechnerdaten|'
'TXT_HOST_DATA;E;Host data|' 'TXT_HOT_KEY;D;Kurzanwahl|'
'TXT_HOT_KEY;E;Hot key|' 'TXT_HTTPS;D;HTTPS|' 'TXT_HTTPS;E;HTTPS|'
'TXT_ICON;D;Ikone|' 'TXT_ICON;E;Icon|' 'TXT_ICON_NAME;D;Ikonenname|'
'TXT_ICON_NAME;E;Icon name|' 'TXT_ICON_TEXT;D;Ikonentext|'
'TXT_ICON_TEXT;E;Icon text|'
'TXT_IMMEDIATE_START_NO_RESTART;D;Start sofort-nicht nachverbuchbar|'
'TXT_IMMEDIATE_START_NO_RESTART;E;Immediate start, no restart|'
'TXT_IMP;D;IMP|' 'TXT_IMP;E;IMP|' 'TXT_IMPLEMENTATION;D;Impl.|'
'TXT_IMPLEMENTATION;E;Implementation|'
'TXT_IMPLEMENTED_ACTIVE;D;realisiert / aktiv|'
'TXT_IMPLEMENTED_ACTIVE;E;Implemented / Active|' 'TXT_IMPORT;D;Import|'
'TXT_IMPORT;E;Import|' 'TXT_INACTIVE;D;Inaktiv|'
'TXT_INACTIVE;E;Inactive|' 'TXT_INCLUDE;D;Include|'
'TXT_INCLUDE;E;Include|' 'TXT_INCLUDES;D;Includes|'
'TXT_INCLUDES;E;Includes|' 'TXT_INCLUDE_NAME;D;Includename|'
'TXT_INCLUDE_NAME;E;INCLUDE name|' 'TXT_INCLUSIVE;D;Inclusive|'
'TXT_INCLUSIVE;E;Inclusive|' 'TXT_INFO;D;Info|' 'TXT_INFO;E;Info.|'
'TXT_INFORMATION;D;Information|' 'TXT_INFORMATION;E;Information|'
'TXT_INHERIT_GUI_ATTRIBUTES;D;GUI-Eigenschaften erben|'
'TXT_INHERIT_GUI_ATTRIBUTES;E;Inherit GUI attributes|'
'TXT_INITIALIZATION_AND_ACCESS;D;Initialisierung und Zugriff|'
'TXT_INITIALIZATION_AND_ACCESS;E;Initialization and Access|'
'TXT_INITIAL_BSP;D;Einstiegs-BSP|' 'TXT_INITIAL_BSP;E;Initial BSP|'
'TXT_INITIAL_LINE_NUMBER;D;Initiale Zeilenanzahl|'
'TXT_INITIAL_LINE_NUMBER;E;Initial Line Number|'
'TXT_INITIAL_VALUE;D;Initialwert|' 'TXT_INITIAL_VALUE;E;Initial value|'
'TXT_INITIAL_VALUES;D;Initialwerte|' space into ls_csv. append ls_csv
to ct_csv. concatenate 'TXT_INITIAL_VALUES;E;Initial values|'
'TXT_INPUT;D;Eingabe|' 'TXT_INPUT;E;Input|'
'TXT_INSTALLATION_NUMBER;D;Installationsnummer|'
'TXT_INSTALLATION_NUMBER;E;Installation number|'
'TXT_INSTANTIATION;D;Inst.-Erzeugung|'
'TXT_INSTANTIATION;E;Instantiation|' 'TXT_INTERFACE;D;Interface|'
'TXT_INTERFACE;E;Interface|' 'TXT_INTERFACES;D;Interfaces|'
'TXT_INTERFACES;E;Interfaces|'
'TXT_INTERFACE_COMPONENT;D;Interface-Komponente|'
'TXT_INTERFACE_COMPONENT;E;Interface Component|'
'TXT_INTERFACE_DOCUMENTATION;D;Interface-Dokumentation|'
'TXT_INTERFACE_DOCUMENTATION;E;Interface documentation|'
'TXT_INTERNALLY_RELEASED_ON;D;Intern freigegeben am|'
'TXT_INTERNALLY_RELEASED_ON;E;Internally-released on|'
'TXT_INTERNAL_NAME;D;Interner Name|'
'TXT_INTERNAL_NAME;E;Internal name|' 'TXT_INTERVALS;D;Intervalle|'
'TXT_INTERVALS;E;Intervals|' 'TXT_INVISIBLE;D;Unsichtbar|'
'TXT_INVISIBLE;E;Invisible|' 'TXT_IP_ADDRESS;D;IP-Adresse|'
'TXT_IP_ADDRESS;E;IP address|' 'TXT_IS_ERROR_PAGE;D;Ist Fehlerseite|'
'TXT_IS_ERROR_PAGE;E;Is Error Page|'
'TXT_ITERATION_OVER_ELEMENT_CON;D;Iteration &#xFC;ber Element-Inhalt|'
'TXT_ITERATION_OVER_ELEMENT_CON;E;Iteration over Element Content|'
'TXT_JOIN_CONDITIONS;D;Joinbedingungen|'
'TXT_JOIN_CONDITIONS;E;Join Conditions|'
'TXT_KERNEL_INFORMATION___1;D;Kernelinformationen|'
'TXT_KERNEL_INFORMATION___1;E;Kernel information|'
'TXT_KERNEL_INFORMATION___2;D;Kernelinformation|'
'TXT_KERNEL_INFORMATION___2;E;Kernel information|'
'TXT_KERNEL_RELEASE;D;Kernel-Release|'
'TXT_KERNEL_RELEASE;E;Kernel release|' 'TXT_KEY;D;Schl&#xFC;ssel|'
'TXT_KEY;E;Key|'
'TXT_KEY_ATTRIBUTE_DEFINED_FOR1;D;Schl&#xFC;sseleigenschaften sind f&'
'#xFC;r einen|'
'TXT_KEY_ATTRIBUTE_DEFINED_FOR1;E;Key attribute defined for a ranges '
'table type|'
'TXT_KEY_ATTRIBUTE_DEFINED_FOR2;D;Ranges-Tabellentyp vorgegeben|'
'TXT_KEY_CATEGORY;D;Schl&#xFC;sselart|'
'TXT_KEY_CATEGORY;E;Key category|'
'TXT_KEY_COMPONENTS;D;Schl&#xFC;sselkomponenten|'
'TXT_KEY_COMPONENTS;E;Key components|'
'TXT_KEY_DEFINITION;D;Schl&#xFC;sseldefinition|'
'TXT_KEY_DEFINITION;E;Key definition|' 'TXT_KEY___KEY;D;Key|'
'TXT_KEY___KEY;E;Key|' 'TXT_LANGUAGE;D;Sprache|'
'TXT_LANGUAGE;E;Language|' 'TXT_LAST_CHANGED;D;letzte &#xC4;nderung|'
'TXT_LAST_CHANGED;E;Last Changed|'
'TXT_LAST_CHANGED_AT;D;&#xC4;nderungszeit|'
'TXT_LAST_CHANGED_AT;E;Last changed at|'
'TXT_LAST_CHANGED_BY___1;D;Letzte &#xC4;nderung|'
'TXT_LAST_CHANGED_BY___1;E;Last changed by|'
'TXT_LAST_CHANGED_BY___2;D;letzter &#xC4;nderer|'
'TXT_LAST_CHANGED_BY___2;E;Last changed by|'
'TXT_LAST_CHANGED_BY___3;D;Letzter &#xC4;nderer|'
'TXT_LAST_CHANGED_BY___3;E;Last changed by|'
'TXT_LAST_CHANGED_ON;D;letzte &#xC4;nderung|'
'TXT_LAST_CHANGED_ON;E;Last Changed on|'
'TXT_LAST_CHANGED_ON_BY;D;Letzte &#xC4;nderung|'
'TXT_LAST_CHANGED_ON_BY;E;Last changed on/by|'
'TXT_LAST_GENERATION;D;Letzte Generierung|'
'TXT_LAST_GENERATION;E;Last generation|' 'TXT_LAYOUT;D;Layout|'
'TXT_LAYOUT;E;Layout|' 'TXT_LEADING_ZEROS;D;F&#xFC;hrende Nullen|'
'TXT_LEADING_ZEROS;E;Leading zeros|' 'TXT_LENGTH;D;L&#xE4;nge|'
'TXT_LENGTH;E;Length|' 'TXT_LEVEL;D;Art|' 'TXT_LEVEL;E;Level|'
'TXT_LICENSE_EXPIRATION;D;Lizenzablaufdatum|'
'TXT_LICENSE_EXPIRATION;E;License expiration|'
'TXT_LIFETIME;D;Lebensdauer|' 'TXT_LIFETIME;E;Lifetime|'
'TXT_LINE;D;Zeile|' 'TXT_LINE;E;Line|' 'TXT_LINES;D;Zeilen|'
'TXT_LINES;E;Lines|' 'TXT_LINE_TYPE;D;Zeilentyp|'
'TXT_LINE_TYPE;E;Line Type|'
'TXT_LIST_HEADER;D;Listen&#xFC;berschrift|'
'TXT_LIST_HEADER;E;List header|'
'TXT_LIST_HEADINGS;D;Listen&#xFC;berschriften|'
'TXT_LIST_HEADINGS;E;List Headings|'
'TXT_LOCAL_IN_PROGRAM;D;lokal in Programm|'
'TXT_LOCAL_IN_PROGRAM;E;Local in program|'
'TXT_LOCAL_TYPES;D;Lokale Typen|' 'TXT_LOCAL_TYPES;E;Local types|'
'TXT_LOCK_MODE;D;Sperrmodus|' 'TXT_LOCK_MODE;E;Lock mode|'
'TXT_LOCK_OBJECTS;D;Sperrobjekte|' 'TXT_LOCK_OBJECTS;E;Lock Objects|'
'TXT_LOCK_OBJECT___1;D;Sperrobjekt|'
'TXT_LOCK_OBJECT___1;E;Lock object|' space into ls_csv. append ls_csv
to ct_csv. concatenate 'TXT_LOCK_OBJECT___2;D;Sperrobjekt|'
'TXT_LOCK_OBJECT___2;E;Lock Object|'
'TXT_LOCK_PARAMETER;D;Sperrparameter|'
'TXT_LOCK_PARAMETER;E;Lock parameter|'
'TXT_LOGICAL_DATABASE;D;Logische Datenbank|'
'TXT_LOGICAL_DATABASE;E;Logical database|'
'TXT_LOGICAL_STORAGE_PARAMETERS;D;Logische Speicher-Parameter|'
'TXT_LOGICAL_STORAGE_PARAMETERS;E;Logical storage parameters|'
'TXT_LOGON;D;Anmeldung|' 'TXT_LOGON;E;Logon|'
'TXT_LOG_DATA_CHANGES;D;Daten&#xE4;nderungen protokollieren|'
'TXT_LOG_DATA_CHANGES;E;Log data changes|' 'TXT_LONG;D;lang|'
'TXT_LONG;E;Long|' 'TXT_LONG_TEXT;D;Langtext|'
'TXT_LONG_TEXT;E;Long text|' 'TXT_LOWERCASE;D;Kleinbuchstaben|'
'TXT_LOWERCASE;E;Lowercase|' 'TXT_LOWER_LIMIT;D;Untergrenze|'
'TXT_LOWER_LIMIT;E;Lower limit|' 'TXT_LPOS;D;LPos|' 'TXT_LPOS;E;LPos|'
'TXT_MACHINE_TYPE;D;Maschinen-Typ|' 'TXT_MACHINE_TYPE;E;Machine type|'
'TXT_MACROS;D;Makros|' 'TXT_MACROS;E;Macros|'
'TXT_MAINTENANCE;D;Pflege|' 'TXT_MAINTENANCE;E;Maintenance|'
'TXT_MAINTENANCE_OF_STANDARD_TR;D;Pflege der Standardtransaktionsvari'
'ante erlaubt|'
'TXT_MAINTENANCE_OF_STANDARD_TR;E;Maintenance of standard transaction'
' variant allowed|' 'TXT_MAINTENANCE_SCREENS;D;Pflegebilder|'
'TXT_MAINTENANCE_SCREENS;E;Maintenance Screens|'
'TXT_MAINTENANCE_TYPE;D;Pflegetyp|'
'TXT_MAINTENANCE_TYPE;E;Maintenance type|'
'TXT_MAINT_SCREEN_NO;D;Pflegebildnummer|'
'TXT_MAINT_SCREEN_NO;E;Maint. Screen No.|'
'TXT_MAINT_STATUS;D;Pflegestatus|' 'TXT_MAINT_STATUS;E;Maint. status|'
'TXT_MAIN_PACKAGE;D;Hauptpaket|' 'TXT_MAIN_PACKAGE;E;Main Package|'
'TXT_MAIN_PROGRAM;D;Rahmenprogramm|' 'TXT_MAIN_PROGRAM;E;Main program|'
'TXT_MANIPULATION_OF_ELEMENT_CO;D;Manipulation des Element-Inhalts|'
'TXT_MANIPULATION_OF_ELEMENT_CO;E;Manipulation of Element Content|'
'TXT_MAX_NO_OF_LINES;D;max. Zeilenanzahl|'
'TXT_MAX_NO_OF_LINES;E;max. no. of lines|' 'TXT_MEDIUM;D;mittel|'
'TXT_MEDIUM;E;Medium|' 'TXT_MENU;D;Men&#xFC;|' 'TXT_MENU;E;Menu|'
'TXT_MESSAGE;D;Nachricht|' 'TXT_MESSAGES;D;Nachrichten|'
'TXT_MESSAGES;E;Messages|' 'TXT_MESSAGE_CLASS;D;Nachrichtenklasse|'
'TXT_MESSAGE_CLASS;E;Message Class|'
'TXT_MESSAGE_CLASSES;D;Nachrichtenklassen|'
'TXT_MESSAGE_CLASSES;E;Message Classes|'
'TXT_MESSAGE_SHORT_TEXT;D;Nachrichtenkurztext|'
'TXT_MESSAGE_SHORT_TEXT;E;Message short text|' 'TXT_METHOD;D;Methode|'
'TXT_METHOD;E;Method|' 'TXT_METHODS;D;Methoden|'
'TXT_METHODS;E;Methods|' 'TXT_METHOD_TYPE;D;Methodentyp|'
'TXT_METHOD_TYPE;E;Method type|' 'TXT_MIMES;D;Mimes|'
'TXT_MIMES;E;MIMEs|' 'TXT_MIME_TYPE;D;Mime-Typ|'
'TXT_MIME_TYPE;E;Mime Type|' 'TXT_MOD;D;Mod|' 'TXT_MOD;E;Mod|'
'TXT_MODAL_DIALOG_BOX;D;Modales Fenster|'
'TXT_MODAL_DIALOG_BOX;E;Modal dialog box|' 'TXT_MODE;D;Mode|'
'TXT_MODE;E;Mode|' 'TXT_MODELED_ONLY;D;Nur modelliert|'
'TXT_MODELED_ONLY;E;Modeled only|' 'TXT_MODIFIED;D;Modifiziert|'
'TXT_MODIFIED;E;Modified|'
'TXT_MOD_GROUPS_FUNCTIONS;D;ModifGruppen/Funktionen|'
'TXT_MOD_GROUPS_FUNCTIONS;E;Mod. Groups / functions|'
'TXT_NAME;D;Name|' 'TXT_NAME;E;Name|'
'TXT_NAME_OF_REF_TYPE;D;Referierter Typ|'
'TXT_NAME_OF_REF_TYPE;E;Name of Ref. Type|'
'TXT_NAME_OF_SCREEN_FIELD;D;Name des Dynprofeldes|'
'TXT_NAME_OF_SCREEN_FIELD;E;Name of screen field|'
'TXT_NAVIGATION;D;Navigation|' 'TXT_NAVIGATION;E;Navigation|'
'TXT_NAVIGATION_REQUEST;D;Navigationsrequest|'
'TXT_NAVIGATION_REQUEST;E;Navigation Request|'
'TXT_NEXT_SCREEN;D;Folgedynpro|' 'TXT_NEXT_SCREEN;E;Next Screen|'
'TXT_NO;D;nein|' 'TXT_NO;E;No|' 'TXT_NORMAL;D;Normal|'
'TXT_NORMAL;E;Normal|'
'TXT_NORMAL_FUNCTION_MODULE;D;Normaler Funktionsbaustein|'
'TXT_NORMAL_FUNCTION_MODULE;E;Normal function module|'
'TXT_NOT_RELEASED;D;Nicht freigegeben|' space into ls_csv. append
ls_csv to ct_csv. concatenate 'TXT_NOT_RELEASED;E;Not released|'
'TXT_NO_LENGTH_RESTRICTION;D;L&#xE4;nge ist unbeschr&#xE4;nkt|'
'TXT_NO_LENGTH_RESTRICTION;E;No length restriction|'
'TXT_NO_OF_CHARACTERS;D;Zahl der Stellen|'
'TXT_NO_OF_CHARACTERS;E;No. of Characters|'
'TXT_NO_OF_KEY_FIELDS;D;Anzahl Schl&#xFC;sselfelder|'
'TXT_NO_OF_KEY_FIELDS;E;No. of key fields|'
'TXT_NO_OR_USER_RECORDING_ROUTI;D;keine oder individuelle Aufzeichnun'
'gsroutine|'
'TXT_NO_OR_USER_RECORDING_ROUTI;E;no, or user, recording routine|'
'TXT_NO_RESET;D;Keine R&#xFC;cknahme|' 'TXT_NO_RESET;E;No reset|'
'TXT_OBJECT;D;Objekt|' 'TXT_OBJECT;E;Object|' 'TXT_OBJECTS;D;Objekte|'
'TXT_OBJECT_TRANSACTION;D;OO-Transaktion|'
'TXT_OBJECT_TRANSACTION;E;Object transaction|'
'TXT_OBJECT_TYPE;D;Objekttyp|' 'TXT_OBJECT_TYPE;E;Object type|'
'TXT_OCCUPIED;D;Belegt|' 'TXT_OCCUPIED;E;Occupied|'
'TXT_ONE_STEP;D;einstufig|' 'TXT_ONE_STEP;E;one step|'
'TXT_OO_TRANSACTION_MODEL;D;OO-Transaktionsmodell|'
'TXT_OO_TRANSACTION_MODEL;E;OO transaction model|'
'TXT_OPERATING_SYSTEM;D;Betriebssystem|'
'TXT_OPERATING_SYSTEM;E;Operating system|' 'TXT_OPERATOR;D;Operator|'
'TXT_OPERATOR;E;Operator|' 'TXT_OPTION;D;Option|'
'TXT_OPTION;E;Option|' 'TXT_OPTIONAL;D;Optional|'
'TXT_OPTIONAL;E;Optional|' 'TXT_OPTIONS;D;Optionen|'
'TXT_OPTIONS;E;Options|' 'TXT_OP_RELEASE;D;OP-Release|'
'TXT_OP_RELEASE;E;OP release|' 'TXT_ORIGINAL_LANG;D;Originalsprache|'
'TXT_ORIGINAL_LANG;E;Original lang.|'
'TXT_ORIGINAL_LANGUAGE;D;Originalsprache|'
'TXT_ORIGINAL_LANGUAGE;E;Original language|'
'TXT_ORIGIN_OF_THE_INPUT_HELP;D;Herkunft der Eingabehilfe|'
'TXT_ORIGIN_OF_THE_INPUT_HELP;E;Origin of the Input Help|'
'TXT_OTHER_ATTRIBUTES;D;Weitere Attribute|'
'TXT_OTHER_ATTRIBUTES;E;Other attributes|' 'TXT_OUTPUT;D;Ausgabe|'
'TXT_OUTPUT;E;Output|'
'TXT_OUTPUT_CHARACTERISTICS;D;Ausgabeeigenschaften|'
'TXT_OUTPUT_CHARACTERISTICS;E;Output characteristics|'
'TXT_OUTPUT_LENGTH;D;Ausgabel&#xE4;nge|'
'TXT_OUTPUT_LENGTH;E;Output length|' 'TXT_OUTPUT_ONLY;D;NurAusgabe|'
'TXT_OUTPUT_ONLY;E;Output only|'
'TXT_OVERVIEW_SCREEN;D;&#xDC;bersichtsbild|'
'TXT_OVERVIEW_SCREEN;E;Overview screen|' 'TXT_OWNER;D;Owner|'
'TXT_OWNER;E;Owner|' 'TXT_PACKAGE;D;Paket|' 'TXT_PACKAGE;E;Package|'
'TXT_PACKAGES_INCLUDED;D;Enthaltene Pakete|'
'TXT_PACKAGES_INCLUDED;E;Packages included|'
'TXT_PACKAGE_CHECK_AS_CLIENT;D;Paketpr&#xFC;fung als Client|'
'TXT_PACKAGE_CHECK_AS_CLIENT;E;Package Check as Client|'
'TXT_PACKAGE_CHECK_AS_SERVER;D;Paketpr&#xFC;fung als Server|'
'TXT_PACKAGE_CHECK_AS_SERVER;E;Package Check as Server|'
'TXT_PACKAGE_INTERFACE;D;Paketschnittstelle|'
'TXT_PACKAGE_INTERFACE;E;Package Interface|'
'TXT_PACKAGE_INTERFACES;D;Paketschnittstellen|'
'TXT_PACKAGE_INTERFACES;E;Package interfaces|'
'TXT_PACKAGE_NOT_EXTENDABLE;D;Paket nicht erweiterbar|'
'TXT_PACKAGE_NOT_EXTENDABLE;E;Package not extendable|'
'TXT_PACKAGE_PROPERTIES;D;Paketeigenschaften|'
'TXT_PACKAGE_PROPERTIES;E;Package properties|' 'TXT_PAGE;D;Seite|'
'TXT_PAGE;E;Page|'
'TXT_PAGES_WITH_FLOW_LOGIC;D;Seiten mit Ablauflogik|'
'TXT_PAGES_WITH_FLOW_LOGIC;E;Pages with Flow Logic|'
'TXT_PAGE_ATTRIBUTES;D;Seitenattribute|'
'TXT_PAGE_ATTRIBUTES;E;Page Attributes|'
'TXT_PAGE_DONE_IS_NOT_RETURNED_;D;Keine R&#xFC;ckgabe von &#x27;PAGE '
'DONE&#x27; am Ende des BSP-Elements|'
'TXT_PAGE_DONE_IS_NOT_RETURNED_;E;&#x22;PAGE DONE&#x22; is not return'
'ed at end of BSP element|' 'TXT_PAGE_FRAGMENT;D;Seitenfragment|'
'TXT_PAGE_FRAGMENT;E;Page Fragment|'
'TXT_PAGE_FRAGMENTS;D;Seitenfragmente|'
'TXT_PAGE_FRAGMENTS;E;Page Fragments|' 'TXT_PAGE_TYPE;D;Seitentyp|'
'TXT_PAGE_TYPE;E;Page Type|'
'TXT_PAGE_WITH_FLOW_LOGIC;D;Seite mit Ablauflogik|'
'TXT_PAGE_WITH_FLOW_LOGIC;E;Page with Flow Logik|'
'TXT_PARAMETER;D;Parameter|' 'TXT_PARAMETER;E;Parameter|'
'TXT_PARAMETERS;D;Parameter|' 'TXT_PARAMETERS;E;Parameters|'
'TXT_PARAMETER_ID;D;Parameter-Id|' 'TXT_PARAMETER_ID;E;Parameter ID|'
'TXT_PARAMETER_NAME;D;Parametername|'
'TXT_PARAMETER_NAME;E;Parameter Name|'
'TXT_PARAMETER_TRANSACTION;D;Parametertransaktion|'
'TXT_PARAMETER_TRANSACTION;E;Parameter transaction|'
'TXT_PASS_VALUE;D;Wert&#xFC;bergabe|' 'TXT_PASS_VALUE;E;Pass Value|'
space into ls_csv. append ls_csv to ct_csv. concatenate
'TXT_PERSON_RESPONS;D;Verantwortlich|'
'TXT_PERSON_RESPONS;E;Person respons.|'
'TXT_PERSON_RESPONSIBLE___1;D;Verantwortlicher|'
'TXT_PERSON_RESPONSIBLE___1;E;Person Responsible|'
'TXT_PERSON_RESPONSIBLE___2;D;Verantwortlicher|'
'TXT_PERSON_RESPONSIBLE___2;E;Person responsible|'
'TXT_PERVASIVE_ENABLED;D;Pervasive enabled|'
'TXT_PERVASIVE_ENABLED;E;Pervasive enabled|'
'TXT_PLATFORM_ID;D;Plattform-Id|' 'TXT_PLATFORM_ID;E;Platform ID|'
'TXT_PLEASE_ENTER_A_ROOT_DIR;D;Bitte geben Sie ein Wurzelverzeichnis '
'ein.|' 'TXT_PLEASE_ENTER_A_ROOT_DIR;E;Please enter a root directory.|'
'TXT_PLEASE_ENTER_A_VALID_PATH;D;Bitte ein g&#xFC;ltiges Verzeichnis '
'angeben|'
'TXT_PLEASE_ENTER_A_VALID_PATH;E;Please enter a valid path name|'
'TXT_POOLED_TABLE;D;Pool-Tabelle|' 'TXT_POOLED_TABLE;E;Pooled Table|'
'TXT_POOL_CLUSTER;D;Pool/Cluster|' 'TXT_POOL_CLUSTER;E;Pool/cluster|'
'TXT_POSITION;D;Position|' 'TXT_POSITION;E;Position|'
'TXT_POSS_ENTRIES_KEY;D;Eingabehilfetaste|'
'TXT_POSS_ENTRIES_KEY;E;Poss. entries key|'
'TXT_PREVIOUS_LOGON;D;Vorige Anmeldung|'
'TXT_PREVIOUS_LOGON;E;Previous logon|'
'TXT_PRIMARY_TABLE;D;Prim&#xE4;rtabelle|'
'TXT_PRIMARY_TABLE;E;Primary table|' 'TXT_PROCESSING_TYPE;D;Ablaufart|'
'TXT_PROCESSING_TYPE;E;Processing type|'
'TXT_PRODUCT_UNDER_GPL;D;Dieses Produkt ist zu den Bedingungen der #G'
'PL# freigegeben.|'
'TXT_PRODUCT_UNDER_GPL;E;This product is released under the terms of '
'the #GPL#.|'
'TXT_PROFESSIONAL_USER_TRANSACT;D;Professional User Transaction|'
'TXT_PROFESSIONAL_USER_TRANSACT;E;Professional User Transaction|'
'TXT_PROGRAM;D;Programm|' 'TXT_PROGRAM;E;Program|'
'TXT_PROGRAMS;D;Programme|' 'TXT_PROGRAMS;E;Programs|'
'TXT_PROGRAM_GUI;D;Programm (GUI)|' 'TXT_PROGRAM_GUI;E;Program (GUI)|'
'TXT_PROGRAM_NAME;D;Programmname|' 'TXT_PROGRAM_NAME;E;Program name|'
'TXT_PROGRAM_SCREEN;D;Programm (Dynpro)|'
'TXT_PROGRAM_SCREEN;E;Program (screen)|'
'TXT_PROGRAM_STATUS;D;Programmstatus|'
'TXT_PROGRAM_STATUS;E;Program status|'
'TXT_PROPERTIES;D;Eigenschaften|' 'TXT_PROPERTIES;E;Properties|'
'TXT_PROPERTY_LIST;D;Property-Liste|'
'TXT_PROPERTY_LIST;E;Property list|' 'TXT_QUANTITY_FIELD;D;Mengenfeld|'
'TXT_QUANTITY_FIELD;E;Quantity field|' 'TXT_READ_ONLY;D;Read-Only|'
'TXT_READ_ONLY;E;Read-Only|'
'TXT_RECORDING_ROUTINE;D;Aufzeichnungsroutine|'
'TXT_RECORDING_ROUTINE;E;Recording routine|'
'TXT_REFERENCES;D;Referenzen|' 'TXT_REFERENCES;E;References|'
'TXT_REFERENCE_FIELD;D;Referenzfeld|'
'TXT_REFERENCE_FIELD;E;Reference field|'
'TXT_REFERENCE_TABLE;D;Referenztabelle|'
'TXT_REFERENCE_TABLE;E;Reference table|'
'TXT_REFERENCE_TO_PREDEFINED_TY;D;Referenz auf eingebauten Typ|'
'TXT_REFERENCE_TO_PREDEFINED_TY;E;Reference to Predefined Type|'
'TXT_REFERENCE_TYPE;D;Referenz auf|'
'TXT_REFERENCE_TYPE;E;Reference type|' 'TXT_REF_FIELD;D;Referenzfeld|'
'TXT_REF_FIELD;E;Ref. field|' 'TXT_RELEASE;D;Release|'
'TXT_RELEASE;E;Release|'
'TXT_RELEASED_INTERNALLY;D;Intern freigegeben|'
'TXT_RELEASED_INTERNALLY;E;Release internally|'
'TXT_REMOTE_ENABLED_MODULE;D;Remote f&#xE4;higer Baustein|'
'TXT_REMOTE_ENABLED_MODULE;E;Remote-enabled module|'
'TXT_REPORT;D;Report|' 'TXT_REPORT;E;Report|'
'TXT_REPORT_TRANSACTION;D;Reporttransaktion|'
'TXT_REPORT_TRANSACTION;E;Report transaction|'
'TXT_REPOSITORY_DATA;D;Repository-Daten|'
'TXT_REPOSITORY_DATA;E;Repository data|'
'TXT_REQUIRED;D;Obligatorisch|' 'TXT_REQUIRED;E;Required|'
'TXT_RESP_TO_DBLCLK;D;DKlick-sensitiv|'
'TXT_RESP_TO_DBLCLK;E;Resp. to DblClk|'
'TXT_RESTRICT;D;einschr&#xE4;nken|' 'TXT_RESTRICT;E;restrict|'
'TXT_RIGHT_JUST;D;Rechtsb&#xFC;ndig|' 'TXT_RIGHT_JUST;E;Right-just.|'
'TXT_RSYN_FILE;D;Rsyn-File|' 'TXT_RSYN_FILE;E;Rsyn file|'
'TXT_RTYPE;D;R.typ|' 'TXT_RTYPE;E;RType|'
'TXT_SAPGUI_FOR_HTML;D;SAP GUI f&#xFC;r HTML|'
'TXT_SAPGUI_FOR_HTML;E;SAPGUI for HTML|'
'TXT_SAPGUI_FOR_JAVA;D;SAP GUI f&#xFC;r Java|'
'TXT_SAPGUI_FOR_JAVA;E;SAPGUI f&#xC3;#&#xC2;&#xBC;r Java|'
'TXT_SAPGUI_FOR_WINDOWS;D;SAP GUI f&#xFC;r Windows|'
'TXT_SAPGUI_FOR_WINDOWS;E;SAPGUI for Windows|'
'TXT_SAP_DATA;D;SAP-Daten|' 'TXT_SAP_DATA;E;SAP data|'
'TXT_SAP_SYSTEM_DATA;D;SAP-Systemdaten|'
'TXT_SAP_SYSTEM_DATA;E;SAP System data|' space into ls_csv. append
ls_csv to ct_csv. concatenate 'TXT_SAP_VERSIONS;D;SAP-Versionen|'
'TXT_SAP_VERSIONS;E;SAP versions|' 'TXT_SAVED;D;gesichert|'
'TXT_SAVED;E;Saved|' 'TXT_SCREEN;D;Dynpro|' 'TXT_SCREEN;E;Screen|'
'TXT_SCREENS;D;Dynpros|' 'TXT_SCREENS;E;Screens|'
'TXT_SCREEN_FOR;D;Dynpro zu|' 'TXT_SCREEN_FOR;E;Screen for|'
'TXT_SCREEN_GROUP;D;Bildgruppe|' 'TXT_SCREEN_GROUP;E;Screen group|'
'TXT_SCREEN_NUMBER;D;Dynpronummer|'
'TXT_SCREEN_NUMBER;E;Screen number|' 'TXT_SCREEN_TYPE;D;Dynprotyp|'
'TXT_SCREEN_TYPE;E;Screen type|' 'TXT_SCROLLABLE;D;rollbar|'
'TXT_SCROLLABLE;E;Scrollable|' 'TXT_SDIS;D;SAnz|' 'TXT_SDIS;E;SDis|'
'TXT_SEARCH_HELP;D;Suchhilfe|' 'TXT_SEARCH_HELP;E;Search Help|'
'TXT_SEARCH_HELP_EXIT;D;Suchhilfe-Exit|'
'TXT_SEARCH_HELP_EXIT;E;Search help exit|'
'TXT_SEARCH_HELP_PARAMETER;D;Suchhilfeparameter|'
'TXT_SEARCH_HELP_PARAMETER;E;Search help parameter|' 'TXT_SEC;D;Sek.|'
'TXT_SEC;E;Sec.|' 'TXT_SECONDARY_TABLES;D;Sekund&#xE4;rtabellen|'
'TXT_SECONDARY_TABLES;E;Secondary tables|' 'TXT_SELECTION;D;Auswahl|'
'TXT_SELECTION;E;Selection|'
'TXT_SELECTION_CONDITIONS;D;Selektionsbedingungen|'
'TXT_SELECTION_CONDITIONS;E;Selection Conditions|'
'TXT_SELECTION_CRITERIA;D;Auswahl|'
'TXT_SELECTION_CRITERIA;E;Selection criteria|'
'TXT_SELECTION_METHOD;D;Selektionsmethode|'
'TXT_SELECTION_METHOD;E;Selection method|'
'TXT_SELECTION_SCREEN;D;Selektionsdynpro|'
'TXT_SELECTION_SCREEN;E;Selection screen|'
'TXT_SELECTION_SCREEN_VERSION;D;Selektionsbildversion|'
'TXT_SELECTION_SCREEN_VERSION;E;Selection screen version|'
'TXT_SELECTION_TEXTS;D;Selektionstexte|'
'TXT_SELECTION_TEXTS;E;Selection texts|'
'TXT_SELECT_ALL;D;Alle markieren|' 'TXT_SELECT_ALL;E;Select All|'
'TXT_SELF_EXPLANATY;D;Selbsterkl&#xE4;rend|'
'TXT_SELF_EXPLANATY;E;Self-exlanat&#x27;y|'
'TXT_SERVER_CACHE;D;Server Cache|' 'TXT_SERVER_CACHE;E;Server Cache|'
'TXT_SERVER_NAME;D;Servername|' 'TXT_SERVER_NAME;E;Server name|'
'TXT_SERVICE;D;Service|' 'TXT_SERVICE;E;Service|'
'TXT_SETTINGS;D;Einstellungen|' 'TXT_SETTINGS;E;Settings|'
'TXT_SET_GET_PARAMETERS;D;SET/GET-Parameter|'
'TXT_SET_GET_PARAMETERS;E;SET/GET Parameters|'
'TXT_SET_PARAMETER;D;Set Parameter|'
'TXT_SET_PARAMETER;E;SET parameter|'
'TXT_SHARED_MEMORY_ENABLED;D;Shared memory f&#xE4;hig|'
'TXT_SHARED_MEMORY_ENABLED;E;Shared memory enabled|'
'TXT_SHORT;D;kurz|' 'TXT_SHORT;E;Short|'
'TXT_SHORT_DESCRIPTION_OF_SOFTW;D;Kurzbeschreibung der Softwarekompon'
'ente|'
'TXT_SHORT_DESCRIPTION_OF_SOFTW;E;Short Description of Software Compo'
'nent|' 'TXT_SHORT_DESCRIPTION___1;D;Kurzbeschreibung|'
'TXT_SHORT_DESCRIPTION___1;E;Short description|'
'TXT_SHORT_DESCRIPTION___2;D;Kurzbeschreibung|'
'TXT_SHORT_DESCRIPTION___2;E;Short Description|'
'TXT_SHORT_TEXT___1;D;Kurztext|' 'TXT_SHORT_TEXT___1;E;Short Text|'
'TXT_SHORT_TEXT___2;D;Kurzbeschreibung|'
'TXT_SHORT_TEXT___2;E;Short Text|' 'TXT_SIGN;D;Vorzeichen|'
'TXT_SIGN;E;Sign|'
'TXT_SINGLE_RECORDS_BUFF;D;Einzels&#xE4;tze gepuffert|'
'TXT_SINGLE_RECORDS_BUFF;E;Single records buff.|'
'TXT_SINGLE_SCREEN;D;Einzelbild|' 'TXT_SINGLE_SCREEN;E;Single screen|'
'TXT_SINGLE_VARS;D;Einzelwerte|' 'TXT_SINGLE_VARS;E;Single vars|'
'TXT_SIZE_CATEGORY;D;Gr&#xF6;&#xDF;enkategorie|'
'TXT_SIZE_CATEGORY;E;Size category|'
'TXT_SKIP_INITIAL_SCREEN;D;Einstiegsbild &#xFC;berspringen|'
'TXT_SKIP_INITIAL_SCREEN;E;Skip initial screen|'
'TXT_SOFTWARE_COMPONENT;D;Softwarekomponente|'
'TXT_SOFTWARE_COMPONENT;E;Software Component|'
'TXT_SOURCECDE;D;Quelltext|' 'TXT_SOURCECDE;E;SourceCde|'
'TXT_SOURCE_CODE;D;Quelltext|' 'TXT_SOURCE_CODE;E;Source code|'
'TXT_SPECIAL_ATTR;D;Spez. Attrib.|' 'TXT_SPECIAL_ATTR;E;Special attr.|'
'TXT_SPOS;D;SPos|' 'TXT_SPOS;E;SPos|' 'TXT_SRCH_HELP;D;Suchhilfe|'
'TXT_SRCH_HELP;E;Srch help|' 'TXT_SRCH_HELPS;D;Suchhilfen|'
'TXT_SRCH_HELPS;E;Srch Helps|' space into ls_csv. append ls_csv to
ct_csv. concatenate
'TXT_STANDARD_RECORDING_ROUTINE;D;Standard Aufzeichnungsroutine|'
'TXT_STANDARD_RECORDING_ROUTINE;E;Standard recording routine|'
'TXT_START;D;Start|' 'TXT_START;E;Start|'
'TXT_START_DELAYED;D;Start verz&#xF6;gert|'
'TXT_START_DELAYED;E;Start delayed|' 'TXT_START_IMMED;D;Start sofort|'
'TXT_START_IMMED;E;Start immed.|'
'TXT_START_USING_VARIANT;D;Start &#xFC;ber Variante|'
'TXT_START_USING_VARIANT;E;Start using variant|'
'TXT_START_WITH_VARIANT;D;Start mit Variante|'
'TXT_START_WITH_VARIANT;E;Start with variant|'
'TXT_STATEFUL;D;Zustandsbehaftet|' 'TXT_STATEFUL;E;Stateful|'
'TXT_STATUS;D;Status|' 'TXT_STATUS;E;Status|'
'TXT_STRUCTURE;D;Struktur|' 'TXT_STRUCTURE;E;Structure|'
'TXT_STRUCTURED_ROW_TYPE;D;Strukturierter Zeilentyp|'
'TXT_STRUCTURED_ROW_TYPE;E;Structured row type|'
'TXT_STRUCTURED_TYPE;D;Strukturierter Typ|'
'TXT_STRUCTURED_TYPE;E;Structured Type|' 'TXT_STRUCTURES;D;Strukturen|'
'TXT_STRUCTURES;E;Structures|' 'TXT_SUBSCREEN;D;Subscreen|'
'TXT_SUBSCREEN;E;Subscreen|' 'TXT_SUPERCLASS;D;Erbt von|'
'TXT_SUPERCLASS;E;Superclass|'
'TXT_SUPPLEMENTARY_DOCUMENTATIO;D;Zusatzdokumentation|'
'TXT_SUPPLEMENTARY_DOCUMENTATIO;E;Supplementary Documentation|'
'TXT_SUPPORTS_PORTAL_INTEGRATIO;D;Unterst&#xFC;tzt Portal-Integration|'
'TXT_SUPPORTS_PORTAL_INTEGRATIO;E;Supports Portal Integration|'
'TXT_SUP_PKG_LVL;D;Patch-Level|' 'TXT_SUP_PKG_LVL;E;Sup.Pkg lvl.|'
'TXT_SURROUNDING_PACKAGE;D;Direkt umgebendes Paket|'
'TXT_SURROUNDING_PACKAGE;E;Surrounding package|'
'TXT_SWITCH_OFF_RUNTIME_COMPRES;D;Abschalten der Komprimierung des Dy'
'npros zur Laufzeit|'
'TXT_SWITCH_OFF_RUNTIME_COMPRES;E;Switch off runtime compress|'
'TXT_SYMBOL;D;Symbol|' 'TXT_SYMBOL;E;Symbol|' 'TXT_SYSTEM;D;System|'
'TXT_SYSTEM;E;System|' 'TXT_SYSTEM_INFORMATION;D;Systeminformation|'
'TXT_SYSTEM_INFORMATION;E;System information|'
'TXT_SYSTEM_TIME;D;Systemzeit|' 'TXT_SYSTEM_TIME;E;System time|'
'TXT_TABLE;D;Tabelle|' 'TXT_TABLE;E;Table|' 'TXT_TABLES;D;Tabellen|'
'TXT_TABLES;E;Tables|'
'TXT_TABLE_MAINTENANCE_GENERATO;D;Tabellenpflegegenerator|'
'TXT_TABLE_MAINTENANCE_GENERATO;E;Table Maintenance Generator|'
'TXT_TABLE_TYPE;D;Tabellentyp|' 'TXT_TABLE_TYPE;E;Table Type|'
'TXT_TABLE_TYPES;D;Tabellentypen|' 'TXT_TABLE_TYPES;E;Table Types|'
'TXT_TARGET;D;Ziel|' 'TXT_TARGET;E;Target|'
'TXT_TECHNICAL_DIALOG_DETAILS;D;Technische Angaben zum Dialog|'
'TXT_TECHNICAL_DIALOG_DETAILS;E;Technical Dialog Details|'
'TXT_TECHNICAL_SETTINGS;D;Technische Einstellungen|'
'TXT_TECHNICAL_SETTINGS;E;Technical Settings|'
'TXT_TEMPLATE_NON_EXECUTABLE;D;Vorlagedynpro - nicht ausf&#xFC;hrbar|'
'TXT_TEMPLATE_NON_EXECUTABLE;E;Template - non-executable|'
'TXT_TEXT;D;Text|' 'TXT_TEXT;E;Text|'
'TXT_TEXTS_IO_TEMPLATES;D;Texte u. E/A-Schabl.|'
'TXT_TEXTS_IO_TEMPLATES;E;Texts/ I/O templates|'
'TXT_TEXT_ELEMENTS;D;Textelemente|'
'TXT_TEXT_ELEMENTS;E;Text elements|'
'TXT_TEXT_OR_IO_FIELD;D;Text o. E/A-Schablone|'
'TXT_TEXT_OR_IO_FIELD;E;Text or I/O field|'
'TXT_TEXT_TABLE;D;Texttabelle|' 'TXT_TEXT_TABLE;E;Text table|'
'TXT_THEME;D;Thema|' 'TXT_THEME;E;Theme|'
'TXT_TIME_CHANGED;D;&#xC4;nderungsuhrzeit|'
'TXT_TIME_CHANGED;E;Time changed|' 'TXT_TITLE;D;Titel|'
'TXT_TITLE;E;Title|' 'TXT_TRANSACTION;D;Transaktion|'
'TXT_TRANSACTION;E;Transaction|' 'TXT_TRANSACTIONS;D;Transaktionen|'
'TXT_TRANSACTIONS;E;Transactions|'
'TXT_TRANSACTION_CLASSIFICATION;D;Transaktionsklassifikation|'
'TXT_TRANSACTION_CLASSIFICATION;E;Transaction classification|'
'TXT_TRANSACTION_CODE;D;Transaktionscode|'
'TXT_TRANSACTION_CODE;E;Transaction code|'
'TXT_TRANSACTION_TEXT;D;Transaktionstext|'
'TXT_TRANSACTION_TEXT;E;Transaction text|'
'TXT_TRANSACTION_VARIANT;D;Transaktionsvariante|'
'TXT_TRANSACTION_VARIANT;E;Transaction variant|'
'TXT_TRANSFER_OPTIONS;D;&#xDC;bertragungsoptionen|'
'TXT_TRANSFER_OPTIONS;E;Transfer Options|'
'TXT_TRANSFORMATION;D;Transformation|'
'TXT_TRANSFORMATION;E;Transformation|'
'TXT_TRANSFORMATIONS;D;Transformationen|'
'TXT_TRANSFORMATIONS;E;Transformations|'
'TXT_TRANSPORT_ATTRIBUTES;D;Transporteigenschaften|'
'TXT_TRANSPORT_ATTRIBUTES;E;Transport attributes|' space into ls_csv.
append ls_csv to ct_csv. concatenate
'TXT_TRANSPORT_LAYER;D;Transportschicht|'
'TXT_TRANSPORT_LAYER;E;Transport Layer|'
'TXT_TRANSP_TABLE;D;Transp.Tabelle|'
'TXT_TRANSP_TABLE;E;Transp. table|' 'TXT_TWO_STEP;D;zweistufig|'
'TXT_TWO_STEP;E;two step|' 'TXT_TYPES;D;Typen|' 'TXT_TYPES;E;Types|'
'TXT_TYPE_DEFINITIONS;D;Typdefinitionen|'
'TXT_TYPE_DEFINITIONS;E;Type Definitions|'
'TXT_TYPE_GROUP;D;Typgruppe|' 'TXT_TYPE_GROUP;E;Type group|'
'TXT_TYPE_GRPS;D;Typgruppen|' 'TXT_TYPE_GRPS;E;Type Grps|'
'TXT_TYPE_IS_GENERIC;D;Typ ist generisch|'
'TXT_TYPE_IS_GENERIC;E;Type is Generic|'
'TXT_TYPE_OF_SCREEN_ELEMENT;D;Typ des Dynproelementes|'
'TXT_TYPE_OF_SCREEN_ELEMENT;E;Type of screen element|'
'TXT_TYPE_SPEC;D;Typisierung|' 'TXT_TYPE_SPEC;E;Type spec.|'
'TXT_TYPE___1;D;Typ|' 'TXT_TYPE___1;E;Type|' 'TXT_TYPE___2;D;Art|'
'TXT_TYPE___2;E;Type|' 'TXT_TYPING;D;Typisierungsart|'
'TXT_TYPING;E;Typing|' 'TXT_TYPINGMETH;D;TypArt|'
'TXT_TYPINGMETH;E;TypingMeth|' 'TXT_TYPING_METHOD;D;Typisierungsart|'
'TXT_TYPING_METHOD;E;Typing method|'
'TXT_UNICODE_CHECKS;D;Unicodepr&#xFC;fungen|'
'TXT_UNICODE_CHECKS;E;Unicode checks|'
'TXT_UNICODE_SYSTEM;D;Unicode-System|'
'TXT_UNICODE_SYSTEM;E;Unicode System|' 'TXT_UPDATES;D;Updates|'
'TXT_UPDATES;E;Updates|' 'TXT_UPDATE_MODULE;D;Verbuchungsbaustein|'
'TXT_UPDATE_MODULE;E;Update module|' 'TXT_UPPERLIMIT;D;Obergrenze|'
'TXT_UPPERLIMIT;E;UpperLimit|'
'TXT_UPPER_LOWER_CASE_ENTRY;D;Gro&#xDF;-Kleinschreibung bei Eingabe|'
'TXT_UPPER_LOWER_CASE_ENTRY;E;Upper/lower case entry|' 'TXT_URL;D;URL|'
'TXT_URL;E;URL|' 'TXT_USAGE_DATA;D;Benutzungsdaten|'
'TXT_USAGE_DATA;E;Usage data|' 'TXT_USER;D;Benutzer|'
'TXT_USER;E;User|'
'TXT_USER_DEFINED_VALIDATION;D;Benutzerdefinierte Validierung|'
'TXT_USER_DEFINED_VALIDATION;E;User-Defined Validation|'
'TXT_USE_ACCESS;D;Verwendungserkl&#xE4;rung|'
'TXT_USE_ACCESS;E;Use access|' 'TXT_VALUE;D;Wert|' 'TXT_VALUE;E;Value|'
'TXT_VALUES;D;Werte|' 'TXT_VALUE_LIST;D;Werteliste|'
'TXT_VALUE_LIST;E;Value list|' 'TXT_VALUE_RANGE;D;Wertebereich|'
'TXT_VALUE_RANGE;E;Value range|' 'TXT_VARIANT;D;Variante|'
'TXT_VARIANT;E;Variant|' 'TXT_VARIANTS;D;Varianten|'
'TXT_VARIANTS;E;Variants|'
'TXT_VARIANTS_OF_REPORTS;D;Varianten der Programme|'
'TXT_VARIANTS_OF_REPORTS;E;variants of reports|'
'TXT_VARIANT_TRANSACTION;D;Variantentransaktion|'
'TXT_VARIANT_TRANSACTION;E;Variant transaction|'
'TXT_VERSION;D;Version|' 'TXT_VERSION;E;Version|' 'TXT_VIEW;D;View|'
'TXT_VIEW;E;View|' 'TXT_VIEWS;D;Views|' 'TXT_VIEWS;E;Views|'
'TXT_VIEW_FIELD;D;Viewfeld|' 'TXT_VIEW_FIELD;E;View field|'
'TXT_VIEW_FLDS;D;Viewfelder|' 'TXT_VIEW_FLDS;E;View Flds|'
'TXT_VISIBILITY;D;Sichtbarkeit|' 'TXT_VISIBILITY;E;Visibility|'
'TXT_VISIBLE;D;Sichtbar|' 'TXT_VISIBLE;E;Visible|' 'TXT_VISLG;D;visLg|'
'TXT_VISLG;E;VisLg|' 'TXT_W;D;Gew.|' 'TXT_W;E;W|'
'TXT_WITHOUT_APPLICATION_TOOLBA;D;Ohne Applikationstoolbar|'
'TXT_WITHOUT_APPLICATION_TOOLBA;E;Without Application Toolbar|'
'TXT_WITHOUT_TEMPLATE;D;Ohne Schablone|'
'TXT_WITHOUT_TEMPLATE;E;Without Template|' 'TXT_WITH_ICON;D;mit Ikone|'
'TXT_WITH_ICON;E;With icon|' 'TXT_WO_SCRIPT_CODE;D;ohne Skriptcode|'
'TXT_WO_SCRIPT_CODE;E;W/O Script Code|' 'TXT_YES;D;ja|'
'TXT_YES;E;Yes|' 'VAR_NAME_VALUE;D;#NAME_VALUE#|'
'VAR_NAME_VALUE;E;#NAME_VALUE#|' space into ls_csv. append ls_csv to
ct_csv. endform. form csv_varid_broken changing ct_csv type it_string.
refresh ct_csv. data ls_csv type string. concatenate
'RSAMTUSS;DEFAULT|' 'RSEIDOC2;ALLE-IDOCS|' 'RSEIDOC2;ALLE-IDOCS-AUS|'
'RSEINB00;UM-V1|' 'RSEOUT00;SAP_TESTHDI01|' space into ls_csv. append
ls_csv to ct_csv. endform. FORM csv_tools. PERFORM
csv_tools_text_elements. PERFORM text_tools. PERFORM
csv_tools_table_structure. PERFORM csv_tools_tabstrip. PERFORM
csv_tools_varid_broken. ENDFORM. FORM csv_tools_table_structure. DATA:
lt_csv TYPE it_string, lt_row TYPE it_string, ls_row TYPE string,
ls_table TYPE st_table_structure. FIELD-SYMBOLS: <ls_csv> TYPE string,
<l_fs> TYPE ANY. REFRESH gt_table_structure. PERFORM
csv_table_structure CHANGING lt_csv. LOOP AT lt_csv ASSIGNING <ls_csv>.
SPLIT <ls_csv> AT '|' INTO TABLE lt_row. LOOP AT lt_row INTO ls_row. IF
NOT ls_row IS INITIAL. CLEAR ls_table. SPLIT ls_row AT ';' INTO
ls_table-id ls_table-row_nr ls_table-fieldname ls_table-title_elem
ls_table-link_row ls_table-row_def ls_table-colored_row
ls_table-comparator ls_table-comp_value. IF NOT ls_table-title_elem IS
INITIAL. ASSIGN (ls_table-title_elem) TO <l_fs>. ls_table-title =
<l_fs>. UNASSIGN <l_fs>. ENDIF. APPEND ls_table TO gt_table_structure.
ENDIF. ENDLOOP. ENDLOOP. ENDFORM. FORM csv_tools_tabstrip. DATA: lt_csv
TYPE it_string, lt_row TYPE it_string, ls_row TYPE string, ls_tabstrip
TYPE st_tabstrip. FIELD-SYMBOLS: <ls_csv> TYPE string, <l_fs> TYPE ANY.
REFRESH gt_tabstrip. PERFORM csv_tabstrip CHANGING lt_csv. LOOP AT
lt_csv ASSIGNING <ls_csv>. SPLIT <ls_csv> AT '|' INTO TABLE lt_row.
LOOP AT lt_row INTO ls_row. IF NOT ls_row IS INITIAL. CLEAR
ls_tabstrip. SPLIT ls_row AT ';' INTO ls_tabstrip-form ls_tabstrip-id
ls_tabstrip-parent_id ls_tabstrip-tab_nr ls_tabstrip-firstrow
ls_tabstrip-active_order ls_tabstrip-text_elem ls_tabstrip-comparator
ls_tabstrip-comp_value. IF NOT ls_tabstrip-text_elem IS INITIAL. ASSIGN
(ls_tabstrip-text_elem) TO <l_fs>. ls_tabstrip-text = <l_fs>. UNASSIGN
<l_fs>. ENDIF. APPEND ls_tabstrip TO gt_tabstrip. ENDIF. ENDLOOP.
ENDLOOP. ENDFORM. FORM csv_tools_text_elements. DATA: lt_csv TYPE
it_string, lt_row TYPE it_string, ls_row TYPE string, ls_text_element
TYPE st_text_element, ls_text_element_t TYPE st_text_element_t.
FIELD-SYMBOLS: <ls_csv> TYPE string. REFRESH gt_text_element. PERFORM
csv_text_elements_1 CHANGING lt_csv. LOOP AT lt_csv ASSIGNING <ls_csv>.
SPLIT <ls_csv> AT '|' INTO TABLE lt_row. LOOP AT lt_row INTO ls_row. IF
NOT ls_row IS INITIAL. SPLIT ls_row AT ';' INTO
ls_text_element-fieldname ls_text_element-txt_prefix
ls_text_element-dtel_rollname ls_text_element-dtel_field
ls_text_element-domname ls_text_element-domvalue
ls_text_element-icon_id ls_text_element-icon_field
ls_text_element-conc_v1 ls_text_element-conc_copula
ls_text_element-conc_v2 ls_text_element-conc_sep_space
ls_text_element-msg_id ls_text_element-msg_nr ls_text_element-msg_v1
ls_text_element-msg_v2 ls_text_element-msg_v3 ls_text_element-msg_v4.
APPEND ls_text_element TO gt_text_element. ENDIF. ENDLOOP. ENDLOOP.
REFRESH gt_text_element_t. PERFORM csv_text_elements_2 CHANGING lt_csv.
LOOP AT lt_csv ASSIGNING <ls_csv>. SPLIT <ls_csv> AT '|' INTO TABLE
lt_row. LOOP AT lt_row INTO ls_row. IF NOT ls_row IS INITIAL. SPLIT
ls_row AT ';' INTO ls_text_element_t-fieldname ls_text_element_t-spras
ls_text_element_t-text. APPEND ls_text_element_t TO gt_text_element_t.
ENDIF. ENDLOOP. ENDLOOP. ENDFORM. FORM csv_tools_varid_broken. DATA:
lt_csv TYPE it_string, lt_row TYPE it_string, ls_row TYPE string,
ls_varid TYPE st_varid. FIELD-SYMBOLS: <ls_csv> TYPE string. REFRESH
gt_varid_broken. PERFORM csv_varid_broken CHANGING lt_csv. LOOP AT
lt_csv ASSIGNING <ls_csv>. SPLIT <ls_csv> AT '|' INTO TABLE lt_row.
LOOP AT lt_row INTO ls_row. IF NOT ls_row IS INITIAL. SPLIT ls_row AT
';' INTO ls_varid-report ls_varid-vari. APPEND ls_varid TO
gt_varid_broken. ENDIF. ENDLOOP. ENDLOOP. ENDFORM. FORM download USING
it_html TYPE it_string value(i_pgmid) value(i_object) value(i_filename)
value(i_extension) value(i_do_count). DATA: l_infoline TYPE syucomm,
l_uri TYPE string, l_sub_uri TYPE char255, l_txt TYPE string, l_message
TYPE string, l_codepage(20) TYPE c. PERFORM download_get_params USING
i_pgmid i_object i_filename i_extension i_do_count CHANGING l_uri
l_sub_uri l_infoline. PERFORM download_replace_wildcards USING
l_sub_uri CHANGING it_html. IF NOT i_extension = gc_extension_htm AND
NOT i_extension = gc_extension_xml. l_codepage = '4110'. ENDIF. IF
g_has_download_status = abap_true. CALL FUNCTION 'GUI_DOWNLOAD'
EXPORTING filename = l_uri codepage = l_codepage show_transfer_status =
abap_false TABLES data_tab = it_html EXCEPTIONS OTHERS = 1. ELSE. CALL
FUNCTION 'GUI_DOWNLOAD' EXPORTING filename = l_uri codepage =
l_codepage TABLES data_tab = it_html EXCEPTIONS OTHERS = 1. ENDIF. IF
sy-subrc <> 0. CLEAR l_message. l_txt = sy-subrc. CONDENSE l_txt.
CONCATENATE 'RC=' l_txt ',' INTO l_txt. PERFORM get_message_text USING
'MEREP_00' '245' l_txt space space space CHANGING l_message.
CONCATENATE l_message l_uri INTO l_message SEPARATED BY space. WRITE /
l_message. ELSE. CALL FUNCTION 'SAPGUI_PROGRESS_INDICATOR' EXPORTING
text = l_infoline. ENDIF. ENDFORM. FORM download_binary USING
it_content TYPE it_o2content_binary value(i_bin_filesize) TYPE i
value(i_pgmid) value(i_object) value(i_filename) value(i_extension)
value(i_do_count). DATA: l_infoline TYPE syucomm, l_uri TYPE string,
l_sub_uri TYPE char255, l_txt TYPE string, l_message TYPE string.
PERFORM download_get_params USING i_pgmid i_object i_filename
i_extension i_do_count CHANGING l_uri l_sub_uri l_infoline. IF
g_has_download_status = abap_true. CALL FUNCTION 'GUI_DOWNLOAD'
EXPORTING bin_filesize = i_bin_filesize filename = l_uri filetype =
'BIN' show_transfer_status = abap_false TABLES data_tab = it_content
EXCEPTIONS OTHERS = 2. ELSE. CALL FUNCTION 'GUI_DOWNLOAD' EXPORTING
bin_filesize = i_bin_filesize filename = l_uri filetype = 'BIN' TABLES
data_tab = it_content EXCEPTIONS OTHERS = 2. ENDIF. IF sy-subrc <> 0.
CLEAR l_message. l_txt = sy-subrc. CONDENSE l_txt. CONCATENATE 'RC='
l_txt ',' INTO l_txt. PERFORM get_message_text USING 'MEREP_00' '245'
l_txt space space space CHANGING l_message. CONCATENATE l_message l_uri
INTO l_message SEPARATED BY space. WRITE / l_message. ELSE. CALL
FUNCTION 'SAPGUI_PROGRESS_INDICATOR' EXPORTING text = l_infoline.
ENDIF. ENDFORM. FORM download_get_params USING value(i_pgmid)
value(i_object) value(i_filename) value(i_extension) value(i_do_count)
CHANGING c_uri TYPE string c_sub_uri TYPE char255 c_infoline TYPE
syucomm. DATA: l_cnt_downloads TYPE string, l_cnt_elems TYPE string,
l_txt TYPE string, l_message TYPE string, l_codepage(20) TYPE c. CLEAR:
c_uri, c_sub_uri, c_infoline. IF i_do_count = abap_true.
g_cnt_downloads = g_cnt_downloads + 1. ENDIF. l_cnt_downloads =
g_cnt_downloads. CONDENSE l_cnt_downloads. l_cnt_elems = g_cnt_elems.
CONDENSE l_cnt_elems. PERFORM get_message_text USING 'DSVAS' '226'
i_filename space space space CHANGING l_message. CONCATENATE
l_cnt_downloads '/' l_cnt_elems '|' l_message INTO c_infoline SEPARATED
BY space. IF NOT i_pgmid IS INITIAL AND NOT i_object IS INITIAL.
CONCATENATE c_uri i_pgmid '_' i_object gc_delimiter INTO c_uri. ENDIF.
CONCATENATE c_uri i_filename INTO c_uri. IF NOT i_extension IS INITIAL.
CONCATENATE c_uri '.' i_extension INTO c_uri. ENDIF. PERFORM
download_make_plain_uri CHANGING c_uri. c_sub_uri = c_uri. IF
c_sub_uri+0(1) = gc_delimiter. c_sub_uri = c_sub_uri+1. ENDIF. c_uri =
c_sub_uri. CONCATENATE g_folder gc_delimiter g_pack gc_delimiter c_uri
INTO c_uri. PERFORM download_make_plain_uri CHANGING c_uri. ENDFORM.
FORM download_make_plain_uri CHANGING c_uri TYPE string. DATA:
l_dbl_delimiter TYPE string. CONCATENATE gc_delimiter gc_delimiter INTO
l_dbl_delimiter. PERFORM replace_all USING '/' gc_delimiter CHANGING
c_uri. PERFORM replace_all USING '<' '-' CHANGING c_uri. PERFORM
replace_all USING '>' '-' CHANGING c_uri. WHILE c_uri CS
l_dbl_delimiter. PERFORM replace_all USING l_dbl_delimiter gc_delimiter
CHANGING c_uri. ENDWHILE. ENDFORM. FORM download_replace_wildcards
USING value(i_sub_uri) TYPE char255 CHANGING ct_html TYPE it_string.
DATA: l_index_htm TYPE char255, l_cnt TYPE i, l_len TYPE i. CONSTANTS:
lc_replacements TYPE i VALUE 2. FIELD-SYMBOLS: <ls_html> TYPE string.
l_len = strlen( i_sub_uri ). CONCATENATE 'index.' gc_extension_htm INTO
l_index_htm. DO l_len TIMES. IF i_sub_uri+l_cnt(1) = gc_delimiter.
CONCATENATE '../' l_index_htm INTO l_index_htm. ENDIF. ADD 1 TO l_cnt.
ENDDO. CLEAR l_cnt. LOOP AT ct_html ASSIGNING <ls_html>. IF <ls_html>
CS '../index.htm'. PERFORM replace_all USING '../index.htm'
l_index_htm CHANGING <ls_html>. ADD 1 TO l_cnt. ENDIF. IF l_cnt =
lc_replacements. EXIT. ENDIF. ENDLOOP. ENDFORM. FORM
get_class_attribute_value USING value(i_clsname) TYPE seoclsname
value(i_cmpname) TYPE seocmpname CHANGING c_attvalue TYPE seovalue.
DATA: l_len TYPE i. CLEAR c_attvalue. SELECT SINGLE attvalue FROM
seocompodf INTO c_attvalue WHERE clsname = i_clsname AND cmpname =
i_cmpname AND version = 1. IF sy-subrc = 0. IF c_attvalue+0(1) = ''''.
l_len = strlen( c_attvalue ) - 2. c_attvalue = c_attvalue+1(l_len).
ENDIF. ENDIF. ENDFORM. FORM get_class_exists USING value(i_clsname)
TYPE seoclsname CHANGING c_class_exists TYPE flag. DATA: l_clsname TYPE
seoclsname. c_class_exists = abap_false. SELECT SINGLE clsname FROM
seoclass INTO l_clsname WHERE clsname = i_clsname. IF sy-subrc = 0.
c_class_exists = abap_true. ENDIF. ENDFORM. FORM get_date USING
value(i_date) TYPE sydatum CHANGING c_date TYPE string. CALL FUNCTION
'CONVERT_DATE_TO_EXTERNAL' EXPORTING date_internal = i_date IMPORTING
date_external = c_date. ENDFORM. FORM get_devclass USING
value(i_devclass) TYPE devclass CHANGING c_text TYPE as4text. CLEAR
c_text. SELECT SINGLE ctext FROM tdevct INTO c_text WHERE devclass =
i_devclass AND spras = sy-langu. ENDFORM. FORM get_docu USING
value(i_id) TYPE doku_id value(i_object) TYPE any value(i_typ) TYPE
doku_typ CHANGING ct_str TYPE it_string. DATA: lt_html TYPE STANDARD
TABLE OF htmlline, l_object TYPE doku_obj, lt_line TYPE STANDARD TABLE
OF tline, ls_entry TYPE glos_entry, l_pos TYPE i. FIELD-SYMBOLS:
<ls_html> TYPE htmlline. REFRESH ct_str. l_object = i_object. CALL
FUNCTION 'DOCU_GET' EXPORTING id = i_id langu = sy-langu object =
l_object typ = i_typ TABLES line = lt_line EXCEPTIONS OTHERS = 1. CHECK
sy-subrc = 0. ls_entry-langu = sy-langu. CALL FUNCTION
'DOC_SAPSCRIPT_TO_HTML_FORMAT' EXPORTING entry = ls_entry TABLES
sapscript_text = lt_line html_text = lt_html. CLEAR l_pos. LOOP AT
lt_html ASSIGNING <ls_html>. IF <ls_html>+0(5) = '<BODY'. l_pos =
sy-tabix. ENDIF. PERFORM replace_all USING '</BODY>' space CHANGING
<ls_html>. PERFORM replace_all USING '</HTML>' space CHANGING
<ls_html>. ENDLOOP. DO l_pos TIMES. DELETE lt_html INDEX 1. ENDDO. LOOP
AT lt_html ASSIGNING <ls_html>. APPEND <ls_html>-tdline TO ct_str.
ENDLOOP. ENDFORM. FORM get_dom USING value(i_domname) TYPE domname
CHANGING c_text TYPE as4text. CLEAR c_text. SELECT SINGLE ddtext FROM
dd01t INTO c_text WHERE domname = i_domname AND ddlanguage = sy-langu
AND as4local = 'A'. ENDFORM. FORM get_dom_value_text USING
value(i_domname) TYPE domname value(i_domvalue) TYPE any CHANGING
c_text TYPE any. DATA: l_domvalue TYPE domvalue_l, l_text TYPE
val_text. CLEAR c_text. l_domvalue = i_domvalue. SELECT SINGLE ddtext
FROM dd07t INTO l_text WHERE domname = i_domname AND ddlanguage =
sy-langu AND as4local = 'A' AND domvalue_l = l_domvalue. IF sy-subrc =
0. c_text = l_text. ENDIF. ENDFORM. FORM get_dom_value_texts USING
value(i_domname) TYPE domname CHANGING ct_dom_value TYPE it_dom_value.
DATA: lt_dd07t TYPE STANDARD TABLE OF dd07t, ls_dom_value TYPE
st_dom_value. FIELD-SYMBOLS: <ls_dd07t> TYPE dd07t. REFRESH
ct_dom_value. SELECT * FROM dd07t INTO TABLE lt_dd07t WHERE domname =
i_domname AND ddlanguage = sy-langu AND as4local = 'A' ORDER BY
domvalue_l DESCENDING. LOOP AT lt_dd07t ASSIGNING <ls_dd07t>.
ls_dom_value-text = <ls_dd07t>-ddtext. ls_dom_value-value =
<ls_dd07t>-domvalue_l. APPEND ls_dom_value TO ct_dom_value. ENDLOOP.
ENDFORM. FORM get_dtel_text USING value(i_rollname) TYPE rollname
value(i_field) TYPE c CHANGING c_text TYPE any. DATA: ls_dd04t TYPE
dd04t, l_field TYPE fieldname. FIELD-SYMBOLS: <l_text> TYPE ANY. CLEAR
c_text. CASE i_field. WHEN 'D'. l_field = 'DDTEXT'. WHEN 'T'. l_field =
'REPTEXT'. WHEN 'S'. l_field = 'SCRTEXT_S'. WHEN 'M'. l_field =
'SCRTEXT_M'. WHEN 'L'. l_field = 'SCRTEXT_L'. WHEN OTHERS. l_field =
'SCRTEXT_M'. ENDCASE. SELECT SINGLE * FROM dd04t INTO ls_dd04t WHERE
rollname = i_rollname AND ddlanguage = sy-langu AND as4local = 'A'. IF
sy-subrc = 0. ASSIGN COMPONENT l_field OF STRUCTURE ls_dd04t TO
<l_text>. IF <l_text> IS ASSIGNED. c_text = <l_text>. ENDIF. ENDIF.
ENDFORM. FORM get_fuba_exists USING value(i_funcname) TYPE rs38l_fnam
CHANGING c_fuba_exists TYPE flag. DATA: l_funcname TYPE rs38l_fnam.
c_fuba_exists = abap_false. SELECT SINGLE funcname FROM tfdir INTO
l_funcname WHERE funcname = i_funcname. IF sy-subrc = 0. c_fuba_exists
= abap_true. ENDIF. ENDFORM. FORM get_gui_kind USING value(i_kind) TYPE
c CHANGING c_gui_kind TYPE string. DATA l_kind. CLEAR c_gui_kind.
l_kind = i_kind. TRANSLATE l_kind TO UPPER CASE. CASE l_kind. WHEN 'P'.
c_gui_kind = txt_parameters. WHEN 'S'. c_gui_kind =
txt_selection_criteria. WHEN OTHERS. c_gui_kind = l_kind. ENDCASE.
ENDFORM. FORM get_gui_operator USING value(i_operator) TYPE char2
CHANGING c_gui_operator TYPE string. DATA l_operator(2) TYPE c. CLEAR
c_gui_operator. l_operator = i_operator. TRANSLATE l_operator TO UPPER
CASE. CASE l_operator. WHEN 'BT'. c_gui_operator = '[]'. WHEN 'CP'.
c_gui_operator = '[*]'. WHEN 'EQ'. c_gui_operator = '='. WHEN 'GE'.
c_gui_operator = '>='. WHEN 'GT'. c_gui_operator = '>'. WHEN 'LE'.
c_gui_operator = '<='. WHEN 'LK'. c_gui_operator = 'like'. WHEN 'LT'.
c_gui_operator = '<'. WHEN 'NB'. c_gui_operator = ']['. WHEN 'NE'.
c_gui_operator = '<>'. WHEN 'NP'. c_gui_operator = ']*['. WHEN OTHERS.
c_gui_operator = l_operator. ENDCASE. ENDFORM. FORM get_gui_sign USING
value(i_sign) TYPE c CHANGING c_gui_sign TYPE string. DATA l_sign.
CLEAR c_gui_sign. l_sign = i_sign. TRANSLATE l_sign TO UPPER CASE. CASE
l_sign. WHEN 'E'. c_gui_sign = txt_exclusive. WHEN 'I'. c_gui_sign =
txt_inclusive. WHEN OTHERS. c_gui_sign = l_sign. ENDCASE. ENDFORM. FORM
get_hardwarekey CHANGING c_hwkey TYPE custkey_t. DATA: l_rc TYPE
sysubrc. CALL FUNCTION 'SLIC_LOCAL_HWKEY' EXPORTING no_raise = 1
IMPORTING hwkey = c_hwkey rc = l_rc. ENDFORM. FORM get_icon_text USING
value(i_icon_id) TYPE icon_d value(i_field) TYPE c CHANGING c_text TYPE
any. DATA: ls_icont TYPE icont, l_field TYPE fieldname. FIELD-SYMBOLS:
<l_text> TYPE ANY. CLEAR c_text. CASE i_field. WHEN 'S'. l_field =
'SHORTTEXT'. WHEN 'Q'. l_field = 'QUICKINFO'. WHEN OTHERS. l_field =
'SHORTTEXT'. ENDCASE. SELECT SINGLE * FROM icont INTO ls_icont WHERE id
= i_icon_id AND langu = sy-langu. IF sy-subrc = 0. ASSIGN COMPONENT
l_field OF STRUCTURE ls_icont TO <l_text>. IF <l_text> IS ASSIGNED.
c_text = <l_text>. ENDIF. ENDIF. ENDFORM. FORM get_id USING
value(i_param_1) value(i_param_2) CHANGING c_id. CONCATENATE i_param_1
i_param_2 INTO c_id. PERFORM replace_all USING '/' '_' CHANGING c_id.
ENDFORM. FORM get_message_text USING value(i_arbgb) TYPE any
value(i_msgnr) TYPE any value(i_v1) TYPE any value(i_v2) TYPE any
value(i_v3) TYPE any value(i_v4) TYPE any CHANGING c_text TYPE string.
DATA: l_id TYPE bapiret2-id, l_number TYPE bapiret2-number, l_v1 TYPE
bapiret2-message_v1, l_v2 TYPE bapiret2-message_v2, l_v3 TYPE
bapiret2-message_v3, l_v4 TYPE bapiret2-message_v4, l_message TYPE
bapiret2-message, lt_return TYPE bapiret2, lt_text TYPE STANDARD TABLE
OF bapitgb. l_id = i_arbgb. l_number = i_msgnr. l_v1 = i_v1. l_v2 =
i_v2. l_v3 = i_v3. l_v4 = i_v4. CALL FUNCTION 'BAPI_MESSAGE_GETDETAIL'
EXPORTING id = l_id number = l_number language = sy-langu textformat =
'ASC' message_v1 = l_v1 message_v2 = l_v2 message_v3 = l_v3 message_v4
= l_v4 IMPORTING message = l_message return = lt_return TABLES text =
lt_text. c_text = l_message. ENDFORM. FORM get_page_title USING
value(i_prefix) TYPE any value(i_arbgb) TYPE any value(i_msgnr) TYPE
any value(i_obj_name) TYPE any CHANGING c_page_title TYPE char255.
DATA: l_text TYPE string, l_prefix TYPE string. PERFORM
get_message_text USING i_arbgb i_msgnr i_obj_name space space space
CHANGING l_text. IF NOT i_prefix IS INITIAL. CONCATENATE i_prefix ':'
INTO l_prefix. CONCATENATE l_prefix l_text INTO c_page_title SEPARATED
BY space. ELSE. c_page_title = l_text. ENDIF. ENDFORM. FORM get_props
CHANGING ct_prop TYPE it_prop. DATA: ls_prop TYPE st_prop, l_hwkey TYPE
custkey_t, l_str TYPE string, l_stext TYPE text40, l_laiso TYPE laiso,
l_sptxt TYPE sptxt. REFRESH ct_prop. ls_prop-name = 'scver'.
ls_prop-value = gc_version. APPEND ls_prop TO ct_prop. ls_prop-name =
'hwkey'. PERFORM get_hardwarekey CHANGING l_hwkey. ls_prop-value =
l_hwkey. APPEND ls_prop TO ct_prop. ls_prop-name = 'compo'. SELECT
SINGLE stext FROM cvers_txt INTO l_stext WHERE langu = 'EN'. IF
sy-subrc <> 0. SELECT SINGLE stext FROM cvers_txt INTO l_stext. ENDIF.
ls_prop-value = l_stext. APPEND ls_prop TO ct_prop. ls_prop-name =
'krel'. PERFORM get_version_info USING 'kernel release' CHANGING l_str.
ls_prop-value = l_str. APPEND ls_prop TO ct_prop. ls_prop-name =
'patch'. PERFORM get_version_info USING 'kernel patch level' CHANGING
l_str. ls_prop-value = l_str. APPEND ls_prop TO ct_prop. ls_prop-name =
'uname'. ls_prop-value = sy-uname. APPEND ls_prop TO ct_prop.
ls_prop-name = 'langu'. PERFORM get_spras USING sy-langu l_laiso
l_sptxt. ls_prop-value = l_laiso. APPEND ls_prop TO ct_prop.
ls_prop-name = 'datum'. ls_prop-value = sy-datum. APPEND ls_prop TO
ct_prop. ls_prop-name = 'uzeit'. ls_prop-value = sy-uzeit. APPEND
ls_prop TO ct_prop. ENDFORM. FORM get_spras USING value(i_spras) TYPE
any CHANGING c_laiso TYPE laiso c_sptxt TYPE sptxt. DATA: l_spras TYPE
spras, l_spraslen TYPE i. CLEAR: c_laiso, c_sptxt. l_spraslen = strlen(
i_spras ). IF l_spraslen = 2. c_laiso = i_spras. SELECT SINGLE spras
FROM t002 INTO l_spras WHERE spras = i_spras. ELSE. l_spras = i_spras.
SELECT SINGLE laiso FROM t002 INTO c_laiso WHERE spras = i_spras.
ENDIF. SELECT SINGLE sptxt FROM t002t INTO c_sptxt WHERE spras =
l_spras AND sprsl = sy-langu. ENDFORM. FORM get_tabstrip USING
value(i_form) TYPE fieldname value(i_comp_value) TYPE any CHANGING
ct_tabstrip TYPE it_tabstrip. FIELD-SYMBOLS: <ls_tabstrip> TYPE
st_tabstrip. REFRESH ct_tabstrip. LOOP AT gt_tabstrip ASSIGNING
<ls_tabstrip> WHERE form = i_form. IF NOT <ls_tabstrip>-comparator IS
INITIAL. CASE <ls_tabstrip>-comparator. WHEN 'CO'. IF NOT i_comp_value
CO <ls_tabstrip>-comp_value. CONTINUE. ENDIF. ENDCASE. ENDIF. APPEND
<ls_tabstrip> TO ct_tabstrip. ENDLOOP. SORT ct_tabstrip BY tab_nr.
ENDFORM. FORM get_tabstrip_defined USING it_tabstrip TYPE it_tabstrip
CHANGING ct_tabstrip TYPE it_tabstrip. DATA: ls_tabstrip TYPE
st_tabstrip, l_parent_id(100) TYPE c VALUE '#'. FIELD-SYMBOLS:
<ls_tabstrip> TYPE st_tabstrip. LOOP AT it_tabstrip INTO ls_tabstrip.
IF ls_tabstrip-empty = abap_true. CASE g_empty_tab. WHEN
gc_empty_tab_disable. ls_tabstrip-disabled = abap_true. APPEND
ls_tabstrip TO ct_tabstrip. WHEN gc_empty_tab_display. APPEND
ls_tabstrip TO ct_tabstrip. WHEN gc_empty_tab_hide.  ENDCASE. ELSE.
APPEND ls_tabstrip TO ct_tabstrip. ENDIF. ENDLOOP. SORT ct_tabstrip BY
parent_id active_order. LOOP AT ct_tabstrip ASSIGNING <ls_tabstrip>
WHERE active_order > 0 AND disabled = abap_false AND hidden =
abap_false AND empty = abap_false. IF l_parent_id =
<ls_tabstrip>-parent_id. CONTINUE. ENDIF. l_parent_id =
<ls_tabstrip>-parent_id. <ls_tabstrip>-active = abap_true. ENDLOOP.
SORT ct_tabstrip BY tab_nr. ENDFORM. FORM get_time USING value(i_time)
TYPE sytime CHANGING c_time TYPE string. CONCATENATE i_time+0(2) ':'
i_time+2(2) ':' i_time+4(2) INTO c_time. ENDFORM. FORM get_trdir_name
USING value(i_name) TYPE any value(i_type) TYPE char10 CHANGING
c_programm TYPE programm. DATA: l_len TYPE i, l_diff TYPE i. CONSTANTS:
lc_eqlen TYPE i VALUE 30. c_programm = i_name. l_len = strlen(
c_programm ). l_diff = lc_eqlen - l_len. DO l_diff TIMES. CONCATENATE
c_programm '=' INTO c_programm. ENDDO. CONCATENATE c_programm i_type
INTO c_programm. ENDFORM. FORM get_trdir_name_method_include USING
value(i_mtdkey) TYPE seocpdkey CHANGING c_programm TYPE program. DATA:
l_index TYPE seomtdindx, l_num TYPE i, l_hex TYPE string,
l_hex_index(3) TYPE c, l_type TYPE char10, l_len TYPE i. CLEAR
c_programm. SELECT SINGLE methodindx FROM tmdir INTO l_index WHERE
classname = i_mtdkey-clsname AND methodname = i_mtdkey-cpdname. IF
sy-subrc = 0. l_num = l_index. PERFORM number_to_x_string USING l_num
36 CHANGING l_hex. l_hex_index = l_hex. DO. l_len = strlen( l_hex_index
). IF l_len < 3. CONCATENATE '0' l_hex_index INTO l_hex_index. ELSE.
EXIT. ENDIF. ENDDO. CONCATENATE 'CM' l_hex_index INTO l_type. PERFORM
get_trdir_name USING i_mtdkey-clsname l_type CHANGING c_programm.
ENDIF. ENDFORM. FORM get_unpacked USING value(i_number) TYPE any
CHANGING c_str TYPE string. DATA: l_strlen TYPE i. c_str = i_number.
CONDENSE c_str NO-GAPS. SHIFT c_str LEFT DELETING LEADING '0'. l_strlen
= strlen( i_number ). IF c_str IS INITIAL AND l_strlen > 0. c_str =
'0'. ENDIF. ENDFORM. FORM get_user USING value(i_bname) TYPE xubname
CHANGING c_name_text TYPE ad_namtext. DATA: lt_adrp TYPE STANDARD TABLE
OF adrp, l_persnumber TYPE ad_persnum. FIELD-SYMBOLS: <ls_adrp> TYPE
adrp. CLEAR c_name_text. SELECT SINGLE persnumber FROM usr21 INTO
l_persnumber WHERE bname = i_bname. SELECT * FROM adrp INTO TABLE
lt_adrp WHERE persnumber = l_persnumber ORDER BY date_from DESCENDING.
LOOP AT lt_adrp ASSIGNING <ls_adrp>. c_name_text = <ls_adrp>-name_text.
IF NOT c_name_text IS INITIAL. EXIT. ENDIF. ENDLOOP. ENDFORM. FORM
get_version_info USING value(i_type) TYPE any CHANGING c_value TYPE
string. DATA: l_index TYPE i, lt_version_info TYPE it_version_info.
FIELD-SYMBOLS: <ls_version_info> TYPE st_version_info. CLEAR c_value.
CASE i_type. WHEN 'SAP version'. l_index = 1. WHEN 'operating system'.
l_index = 2. WHEN 'machine type'. l_index = 3. WHEN 'node name'.
l_index = 4. WHEN 'SAP system id'. l_index = 5. WHEN 'database system'.
l_index = 6. WHEN 'database name'. l_index = 7. WHEN 'database host'.
l_index = 8. WHEN 'database owner'. l_index = 9. WHEN 'rsyn'. l_index =
10. WHEN 'IP address'. l_index = 11. WHEN 'kernel release'. l_index =
12. WHEN 'database library'. l_index = 13. WHEN 'kernel compiled'.
l_index = 14. WHEN 'kernel patch level'. l_index = 15. WHEN
'supported SAP vers.'. l_index = 16. WHEN 'supported database'. l_index
= 17. WHEN 'valid OP system'. l_index = 18. WHEN 'OP system release'.
l_index = 19. WHEN 'ABAP load version'. l_index = 20. WHEN
'CUA load version'. l_index = 21. WHEN 'kernel kind'. l_index = 22.
ENDCASE. CALL 'SAPCORE' ID 'ID' FIELD 'VERSION' ID 'TABLE' FIELD
lt_version_info. READ TABLE lt_version_info ASSIGNING <ls_version_info>
WITH KEY type = i_type. IF sy-subrc <> 0 AND l_index > 0. READ TABLE
lt_version_info ASSIGNING <ls_version_info> INDEX l_index. ENDIF. IF
sy-subrc = 0 AND <ls_version_info> IS ASSIGNED. c_value =
<ls_version_info>-value. CASE i_type. WHEN 'database system'. IF
c_value(3) = 'ADA'. c_value = 'SAP DB'. ENDIF. ENDCASE. ENDIF. ENDFORM.
FORM html_add_attributes_1 USING is_attributes TYPE st_attributes
value(i_id) value(i_on) CHANGING ct_html TYPE it_string. PERFORM
html_add_div_begin USING i_id i_on CHANGING ct_html. PERFORM
html_add_attributes_1nodiv USING is_attributes CHANGING ct_html.
PERFORM html_add_div_end CHANGING ct_html. ENDFORM. FORM
html_add_attributes_1nodiv USING is_attributes TYPE st_attributes
CHANGING ct_html TYPE it_string. DATA: ls_html TYPE string, l_name_text
TYPE char255, l_bname TYPE char255, l_date_last_changed TYPE char255,
l_devclass TYPE char255, l_devclass_descr TYPE char255, l_laiso TYPE
char255, l_sptxt TYPE char255, l_checked TYPE string. WRITE
is_attributes-name_text TO l_name_text. WRITE is_attributes-bname TO
l_bname. WRITE is_attributes-date_last_changed TO l_date_last_changed.
WRITE is_attributes-devclass TO l_devclass. WRITE
is_attributes-devclass_descr TO l_devclass_descr. WRITE
is_attributes-laiso TO l_laiso. WRITE is_attributes-sptxt TO l_sptxt.
CONCATENATE '<table class="titleTable">' '<tr>'
'<td class="titleTableText">' txt_last_changed_on_by '</td>'
'<td class="titleTableDescr" colspan="2">'
'<a href="#" onclick="return false;"' ' title="' l_name_text '">'
l_bname '</a>' '</td>' '<td class="titleTableDescr">'
l_date_last_changed '</td>' '<td>&#160;</td>' '<td>&#160;</td>' '</tr>'
'<tr>' '<td class="titleTableText">' txt_package '</td>'
'<td class="titleTableDescr" colspan="4">' l_devclass '</td>' '<td>'
l_devclass_descr '</td>' '</tr>' '<tr>' '<td class="titleTableText">'
txt_original_language '</td>' '<td class="titleTableDescr">' l_laiso
'</td>' '<td colspan="4">' l_sptxt '</td>' '</tr>' INTO ls_html. APPEND
ls_html TO ct_html. IF is_attributes-display_rfcenable = abap_true.
CLEAR l_checked. IF is_attributes-rfcenable = abap_true. l_checked =
' checked="checked"'. ENDIF. CONCATENATE
'<tr><td colspan="6">&#160;</td></tr>'
'<tr><td colspan="6">&#160;</td></tr>' '<tr>' '<td colspan="6">'
'<table>' '<tr>' '<td>' '<input class="innerTableFlag"' l_checked
' disabled="disabled" type="checkbox"' ' value="'
is_attributes-rfcenable '"/>' '</td>' '<td>' txt_allow_rfc '</td>'
'</tr>' '</table>' '</td>' '</tr>' INTO ls_html. APPEND ls_html TO
ct_html. ENDIF. IF is_attributes-display_appview = abap_true.
CONCATENATE '<tr><td colspan="6">&#160;</td></tr>'
'<tr><td colspan="6">&#160;</td></tr>' '<tr>'
'<td class="titleTableText">' txt_appending_view '</td>'
'<td class="titleTableDescr" colspan="4">' is_attributes-appview
'</td>' '<td>&#160;</td>' '</tr>' INTO ls_html. APPEND ls_html TO
ct_html. ENDIF. APPEND '</table>' TO ct_html. ENDFORM. FORM
html_add_attributes_2 USING is_attributes TYPE st_attributes
value(i_id) value(i_on) CHANGING ct_html TYPE it_string. DATA: ls_html
TYPE string, l_descript TYPE char255, l_author TYPE char255,
l_author_text TYPE char255, l_date_created TYPE char255, l_bname TYPE
char255, l_name_text TYPE char255, l_date_last_changed TYPE char255,
l_devclass TYPE char255, l_devclass_descr TYPE char255, l_laiso TYPE
char255, l_sptxt TYPE char255, l_internal_name TYPE char255,
l_initial_bsp TYPE char255, l_application_class TYPE char255, l_theme
TYPE char255, l_checked TYPE string. WRITE is_attributes-descript TO
l_descript. WRITE is_attributes-author TO l_author. WRITE
is_attributes-author_text TO l_author_text. WRITE
is_attributes-date_created TO l_date_created. WRITE is_attributes-bname
TO l_bname. WRITE is_attributes-name_text TO l_name_text. WRITE
is_attributes-date_last_changed TO l_date_last_changed. WRITE
is_attributes-devclass TO l_devclass. WRITE
is_attributes-devclass_descr TO l_devclass_descr. WRITE
is_attributes-laiso TO l_laiso. WRITE is_attributes-sptxt TO l_sptxt.
WRITE is_attributes-internal_name TO l_internal_name. WRITE
is_attributes-initial_bsp TO l_initial_bsp. WRITE
is_attributes-application_class TO l_application_class. WRITE
is_attributes-theme TO l_theme. PERFORM html_add_div_begin USING i_id
i_on CHANGING ct_html. CONCATENATE '<table class="titleTable">' '<tr>'
'<td class="titleTableText">' txt_short_description___2 '</td>'
'<td class="titleTableDescr" colspan="7">' l_descript '</td>' '</tr>'
INTO ls_html. APPEND ls_html TO ct_html. IF
is_attributes-space_after_descript = abap_true. CONCATENATE '<tr>'
'<td colspan="8">&#160;</td>' '</tr>' INTO ls_html. APPEND ls_html TO
ct_html. ENDIF. CONCATENATE '<tr>' '<td class="titleTableText">'
txt_created_by___2 '</td>' '<td class="titleTableDescr" colspan="2">'
'<a href="#" onclick="return false;"' ' title="' l_author_text '">'
l_author '</a>' '</td>' '<td>&#160;</td>'
'<td class="titleTableText" colspan="2">' txt_created_on '</td>'
'<td class="titleTableDescr">' l_date_created '</td>' '<td>&#160;</td>'
'</tr>' '<tr>' '<td class="titleTableText">' txt_last_changed_by___2
'</td>' '<td class="titleTableDescr" colspan="2">'
'<a href="#" onclick="return false;"' ' title="' l_name_text '">'
l_bname '</a>' '</td>' '<td>&#160;</td>'
'<td class="titleTableText" colspan="2">' txt_changed_on '</td>'
'<td class="titleTableDescr">' l_date_last_changed '</td>'
'<td>&#160;</td>' '</tr>' '<tr>' '<td class="titleTableText">'
txt_package '</td>' '<td class="titleTableDescr" colspan="4">'
'<a href="#" onclick="return false;"' ' title="' l_devclass_descr '">'
l_devclass '</a>' '</td>' '<td colspan="3">&#160;</td>' '</tr>' '<tr>'
'<td class="titleTableText">' txt_original_language '</td>'
'<td class="titleTableDescr" colspan="1">'
'<a href="#" onclick="return false;"' ' title="' l_sptxt '">' l_laiso
'</a>' '</td>' '<td colspan="6">&#160;</td>' '</tr>' INTO ls_html.
APPEND ls_html TO ct_html. IF is_attributes-is_bsp_appl = abap_true.
CONCATENATE '<tr>' '<td class="titleTableText">' txt_internal_name
'</td>' '<td class="titleTableDescr" colspan="4">' l_internal_name
'</td>' '<td colspan="3">&#160;</td>' '</tr>' '<tr>'
'<td colspan="8">&#160;</td>' '</tr>' '<tr>'
'<td class="titleTableText">' txt_initial_bsp '</td>'
'<td class="titleTableDescr" colspan="7">' l_initial_bsp '</td>'
'</tr>' '<tr>' '<td class="titleTableText">' txt_application_class
'</td>' '<td class="titleTableDescr" colspan="4">' l_application_class
'</td>' '<td colspan="3">&#160;</td>' '</tr>' '<tr>'
'<td class="titleTableText">' txt_theme '</td>'
'<td class="titleTableDescr" colspan="4">' l_theme '</td>'
'<td colspan="3">&#160;</td>' '</tr>' '<tr>' '<td colspan="8">'
'<table>' INTO ls_html. APPEND ls_html TO ct_html. CLEAR l_checked. IF
is_attributes-stateful = abap_true. l_checked = ' checked="checked"'.
ENDIF. CONCATENATE '<tr>' '<td>' '<input class="innerTableFlag"'
l_checked ' disabled="disabled" type="checkbox"' ' value="'
is_attributes-stateful '"/>' '</td>' '<td>' txt_stateful '</td>'
'</tr>' INTO ls_html. APPEND ls_html TO ct_html. CLEAR l_checked. IF
is_attributes-supports_portal_integration = abap_true. l_checked =
' checked="checked"'. ENDIF. CONCATENATE '<tr>' '<td>'
'<input class="innerTableFlag"' l_checked
' disabled="disabled" type="checkbox"' ' value="'
is_attributes-supports_portal_integration '"/>' '</td>' '<td>'
txt_supports_portal_integratio '</td>' '</tr>' '</table>' '</td>'
'</tr>' INTO ls_html. APPEND ls_html TO ct_html. ENDIF. IF
is_attributes-display_rfcenable = abap_true. CLEAR l_checked. IF
is_attributes-rfcenable = abap_true. l_checked = ' checked="checked"'.
ENDIF. CONCATENATE '<tr><td colspan="8">&#160;</td></tr>'
'<tr><td colspan="8">&#160;</td></tr>' '<tr>' '<td colspan="8">'
'<table>' '<tr>' '<td>' '<input class="innerTableFlag"' l_checked
' disabled="disabled" type="checkbox"' ' value="'
is_attributes-rfcenable '"/>' '</td>' '<td>' txt_allow_rfc '</td>'
'</tr>' '</table>' '</td>' '</tr>' INTO ls_html. APPEND ls_html TO
ct_html. ENDIF. APPEND '</table>' TO ct_html. PERFORM html_add_div_end
CHANGING ct_html. ENDFORM. FORM html_add_attributes_3 USING
is_attributes TYPE st_attributes value(i_title_ml) value(i_name_ml)
it_accessmode_ml TYPE it_access value(i_title_mr) it_ti_mr TYPE
it_textinput value(i_title_u) it_ti_u TYPE it_textinput value(i_id)
value(i_on) CHANGING ct_html TYPE it_string. DATA: ls_html TYPE string,
l_descript TYPE char255, l_devclass TYPE char255, l_devclass_descr TYPE
char255, l_laiso TYPE char255, l_sptxt TYPE char255,
l_date_last_changed TYPE char255, l_time_last_changed TYPE char255,
l_date_last_generation TYPE char255, l_time_last_generation TYPE
char255. WRITE is_attributes-descript TO l_descript. WRITE
is_attributes-devclass TO l_devclass. WRITE
is_attributes-devclass_descr TO l_devclass_descr. WRITE
is_attributes-laiso TO l_laiso. WRITE is_attributes-sptxt TO l_sptxt.
WRITE is_attributes-date_last_changed TO l_date_last_changed. WRITE
is_attributes-time_last_changed TO l_time_last_changed. WRITE
is_attributes-date_last_generation TO l_date_last_generation. WRITE
is_attributes-time_last_generation TO l_time_last_generation. PERFORM
html_add_div_begin USING i_id i_on CHANGING ct_html. CONCATENATE
'<table>' '<tr>' '<td colspan="3">' '<table>' '<tr>'
'<td class="titleTableText">' txt_short_description___1 '</td>'
'<td class="titleTableDescr" colspan="7">' l_descript '</td>' '</tr>'
'<tr>' '<td class="titleTableText">' txt_original_language '</td>'
'<td class="titleTableDescr">' l_laiso '</td>' '<td colspan="4">'
l_sptxt '</td>' '<td class="titleTableText">' txt_package '</td>'
'<td class="titleTableDescr">' '<a href="#" onclick="return false;"'
' title="' l_devclass_descr '">' l_devclass '</a>' '</td>' '</tr>'
'<tr>' '<td class="titleTableText">' txt_last_changed_on_by '</td>'
'<td class="titleTableDescr" colspan="2">' l_date_last_changed '</td>'
'<td>&#160;</td>' '<td class="titleTableDescr">' l_time_last_changed
'</td>' '<td>&#160;</td>' '<td colspan="2">&#160;</td>' '</tr>' '<tr>'
'<td class="titleTableText">' txt_last_generation '</td>'
'<td class="titleTableDescr" colspan="2">' l_date_last_generation
'</td>' '<td>&#160;</td>' '<td class="titleTableDescr">'
l_time_last_generation '</td>' '<td>&#160;</td>'
'<td colspan="2">&#160;</td>' '</tr>' '</table>' '</td>' '</tr>'
'<tr><td colspan="3">&#160;</td></tr>' '<tr>'
'<td style="vertical-align:top">' INTO ls_html. APPEND ls_html TO
ct_html. PERFORM html_add_box_radiobuttonsnodiv USING i_title_ml
i_name_ml it_accessmode_ml CHANGING ct_html. APPEND
'</td><td>&#160;</td><td style="vertical-align:top">' TO ct_html.
PERFORM html_add_box_textinputnodiv USING i_title_mr it_ti_mr CHANGING
ct_html. CONCATENATE '</td>' '</tr>' '<tr>' '<td>&#160;</td>' '</tr>'
'<tr>' '<td style="vertical-align:top">' INTO ls_html. APPEND ls_html
TO ct_html. PERFORM html_add_box_textinputnodiv USING i_title_u it_ti_u
CHANGING ct_html. APPEND '</td></tr></table>' TO ct_html. PERFORM
html_add_div_end CHANGING ct_html. ENDFORM. FORM html_add_attributes_4
USING is_attributes TYPE st_attributes value(i_title_m) it_ti_m TYPE
it_textinput value(i_title_u) it_ti_u TYPE it_textinput value(i_id)
value(i_on) CHANGING ct_html TYPE it_string. DATA: ls_html TYPE string,
l_descript TYPE char255, l_person_responsible TYPE char255,
l_person_responsible_descr TYPE char255, l_created_by TYPE char255,
l_created_by_descr TYPE char255, l_created_on TYPE char255,
l_last_changed_by TYPE char255, l_last_changed_by_descr TYPE char255,
l_changed_on TYPE char255, l_application_component TYPE char255. WRITE
is_attributes-descript TO l_descript. WRITE
is_attributes-person_responsible TO l_person_responsible. WRITE
is_attributes-person_responsible_text TO l_person_responsible_descr.
WRITE is_attributes-author TO l_created_by. WRITE
is_attributes-author_text TO l_created_by_descr. WRITE
is_attributes-date_created TO l_created_on. WRITE is_attributes-bname
TO l_last_changed_by. WRITE is_attributes-name_text TO
l_last_changed_by_descr. WRITE is_attributes-date_last_changed TO
l_changed_on. WRITE is_attributes-application_component TO
l_application_component. PERFORM html_add_div_begin USING i_id i_on
CHANGING ct_html. CONCATENATE '<table>' '<tr>' '<td colspan="3">'
'<table>' '<tr>' '<td class="titleTableText">'
txt_short_description___1 '</td>'
'<td class="titleTableDescr" colspan="6">' l_descript '</td>' '</tr>'
'<tr>' '<td class="titleTableText">' txt_person_responsible___2 '</td>'
'<td class="titleTableDescr">' '<a href="#" onclick="return false;"'
' title="' l_person_responsible_descr '">' l_person_responsible '</a>'
'</td>' '<td colspan="5">&#160;</td>' '</tr>' '<tr>'
'<td class="titleTableText">' txt_created_by___2 '</td>'
'<td class="titleTableDescr">' '<a href="#" onclick="return false;"'
' title="' l_created_by_descr '">' l_created_by '</a>' '</td>'
'<td>&#160;</td>' '<td class="titleTableText" colspan="2">'
txt_created_on '</td>' '<td class="titleTableDescr">' l_created_on
'</td>' '<td>&#160;</td>' '</tr>' '<tr>' '<td class="titleTableText">'
txt_last_changed_by___2 '</td>' '<td class="titleTableDescr">'
'<a href="#" onclick="return false;"' ' title="'
l_last_changed_by_descr '">' l_last_changed_by '</a>' '</td>'
'<td>&#160;</td>' '<td class="titleTableText" colspan="2">'
txt_changed_on '</td>' '<td class="titleTableDescr">' l_changed_on
'</td>' '<td>&#160;</td>' '</tr>' '<tr>' '<td class="titleTableText">'
txt_application_component '</td>'
'<td class="titleTableDescr" colspan="3">' l_application_component
'</td>' '<td>&#160;</td>' '<td>&#160;</td>' '<td>&#160;</td>' '</tr>'
'</table>' '</td>' '</tr>' '<tr><td>&#160;</td></tr>' '<tr>'
'<td style="vertical-align:top">' INTO ls_html. APPEND ls_html TO
ct_html. PERFORM html_add_box_textinputnodiv USING i_title_m it_ti_m
CHANGING ct_html. CONCATENATE '</td>' '</tr>' '<tr>' '<td>&#160;</td>'
'</tr>' '<tr>' '<td style="vertical-align:top">' INTO ls_html. APPEND
ls_html TO ct_html. PERFORM html_add_box_textinputnodiv USING i_title_u
it_ti_u CHANGING ct_html. APPEND '</td></tr></table>' TO ct_html.
PERFORM html_add_div_end CHANGING ct_html. ENDFORM. FORM
html_add_box_begin USING value(i_title) value(i_colspan) CHANGING
ct_html TYPE it_string. DATA: l_colspan TYPE num1, l_str TYPE string
VALUE '', ls_html TYPE string. l_colspan = i_colspan. IF i_colspan > 1.
CONCATENATE ' colspan="' l_colspan '"' INTO l_str. ENDIF. CONCATENATE
'<table border="0" cellpadding="0" cellspacing="0" class="box">'
'<tr class="boxContent">' '<td class="boxContent"' l_str '>'
'<table class="boxName">' '<tr>' '<td>' '<span>' i_title '</span>'
'</td>' '</tr>' '</table>' '</td>' '</tr>' '<tr class="boxContent">'
'<td class="boxContent">' INTO ls_html. APPEND ls_html TO ct_html.
ENDFORM. FORM html_add_box_end CHANGING ct_html TYPE it_string. APPEND
'</td></tr></table>' TO ct_html. ENDFORM. FORM
html_add_box1rb_1tihornodiv USING value(i_title) it_accessmode TYPE
it_access it_ti TYPE it_textinput CHANGING ct_html TYPE it_string.
DATA: ls_html TYPE string. PERFORM html_add_box_begin USING i_title '1'
CHANGING ct_html. CONCATENATE '<table>' '<tr>' '<td>' INTO ls_html.
APPEND ls_html TO ct_html. PERFORM html_add_radiobuttonsnodiv USING
'boxz' it_accessmode CHANGING ct_html. CONCATENATE '</td>'
'<td>&#160;</td>' '<td>' INTO ls_html. APPEND ls_html TO ct_html.
PERFORM html_add_textinputnodiv USING it_ti CHANGING ct_html.
CONCATENATE '</td>' '</tr>' '</table>' INTO ls_html. APPEND ls_html TO
ct_html. PERFORM html_add_box_end CHANGING ct_html. ENDFORM. FORM
html_add_box1rb_1tivernodiv USING value(i_title) it_accessmode TYPE
it_access it_ti TYPE it_textinput CHANGING ct_html TYPE it_string.
DATA: ls_html TYPE string. PERFORM html_add_box_begin USING i_title '1'
CHANGING ct_html. CONCATENATE '<table>' '<tr>' '<td>' INTO ls_html.
APPEND ls_html TO ct_html. PERFORM html_add_radiobuttonsnodiv USING
'boxx' it_accessmode CHANGING ct_html. CONCATENATE '</td>' '</tr>'
'<tr>' '<td>' INTO ls_html. APPEND ls_html TO ct_html. PERFORM
html_add_textinputnodiv USING it_ti CHANGING ct_html. CONCATENATE
'</td>' '</tr>' '</table>' INTO ls_html. APPEND ls_html TO ct_html.
PERFORM html_add_box_end CHANGING ct_html. ENDFORM. FORM
html_add_box1rb_subbox2ti USING value(i_title) it_accessmode TYPE
it_access value(i_subtitle) it_ti_l TYPE it_textinput it_ti_r TYPE
it_textinput value(i_id) value(i_on) CHANGING ct_html TYPE it_string.
PERFORM html_add_div_begin USING i_id i_on CHANGING ct_html. PERFORM
html_add_box1rb_subbox2tinodiv USING i_title it_accessmode i_subtitle
it_ti_l it_ti_r CHANGING ct_html. PERFORM html_add_div_end CHANGING
ct_html. ENDFORM. FORM html_add_box1rb_subbox2tinodiv USING
value(i_title) it_accessmode TYPE it_access value(i_subtitle) it_ti_l
TYPE it_textinput it_ti_r TYPE it_textinput CHANGING ct_html TYPE
it_string. DATA: ls_html TYPE string. PERFORM html_add_box_begin USING
i_title '1' CHANGING ct_html. CONCATENATE '<table>' '<tr>' '<td>' INTO
ls_html. APPEND ls_html TO ct_html. PERFORM html_add_radiobuttonsnodiv
USING 'box' it_accessmode CHANGING ct_html. CONCATENATE '</td>' '</tr>'
'<tr><td>&#160;</td></tr>' '<tr>' '<td>' INTO ls_html. APPEND ls_html
TO ct_html. PERFORM html_add_box_begin USING i_subtitle '3' CHANGING
ct_html. CONCATENATE '<table>' '<tr>' '<td>' INTO ls_html. APPEND
ls_html TO ct_html. PERFORM html_add_textinputnodiv USING it_ti_l
CHANGING ct_html. CONCATENATE '</td>' '<td>&#160;</td>' '<td>' INTO
ls_html. APPEND ls_html TO ct_html. PERFORM html_add_textinputnodiv
USING it_ti_r CHANGING ct_html. CONCATENATE '</td>' '</tr>' '</table>'
INTO ls_html. APPEND ls_html TO ct_html. PERFORM html_add_box_end
CHANGING ct_html. CONCATENATE '</td>' '</tr>' '</table>' INTO ls_html.
APPEND ls_html TO ct_html. PERFORM html_add_box_end CHANGING ct_html.
ENDFORM. FORM html_add_box1ti_subboxmsnodiv USING value(i_title) it_ti
TYPE it_textinput value(i_subtitle) value(i_step) TYPE c
value(i_overview_screen) value(i_single_screen) CHANGING ct_html TYPE
it_string. DATA: ls_html TYPE string, l_int TYPE i, l_overview_screen
TYPE string, l_single_screen TYPE string. l_int = i_overview_screen.
l_overview_screen = l_int. l_int = i_single_screen. l_single_screen =
l_int. PERFORM html_add_box_begin USING i_title '1' CHANGING ct_html.
CONCATENATE '<table>' '<tr>' '<td>' INTO ls_html. APPEND ls_html TO
ct_html. PERFORM html_add_textinputnodiv USING it_ti CHANGING ct_html.
CONCATENATE '</td>' '</tr>' '<tr><td>&#160;</td></tr>' '<tr>' '<td>'
INTO ls_html. APPEND ls_html TO ct_html. PERFORM html_add_box_begin
USING i_subtitle '1' CHANGING ct_html. CONCATENATE '<table>' '<tr>'
'<td class="titleTableText">' txt_maintenance_type '</td>' '<td>'
'<input' INTO ls_html. IF i_step = '1'. CONCATENATE ls_html
' checked="checked"' INTO ls_html. ENDIF. CONCATENATE ls_html
' class="radio"' ' disabled="disabled" name="ms"' ' type="radio"'
' value="1"/>' '</td>' '<td>' '<span>' txt_one_step '</span>' '</td>'
'<td>&#160;</td>' '</tr>' INTO ls_html. APPEND ls_html TO ct_html.
CONCATENATE '<tr>' '<td>&#160;</td>' '<td>' '<input' INTO ls_html. IF
i_step = '2'. CONCATENATE ls_html ' checked="checked"' INTO ls_html.
ENDIF. CONCATENATE ls_html ' class="radio"'
' disabled="disabled" name="ms"' ' type="radio"' ' value="1"/>' '</td>'
'<td>' '<span>' txt_two_step '</span>' '</td>' '<td>&#160;</td>'
'</tr>' INTO ls_html. APPEND ls_html TO ct_html. CONCATENATE '<tr>'
'<td class="titleTableText">' txt_maint_screen_no '</td>'
'<td class="titleTableText" colspan="2">' txt_overview_screen '</td>'
'<td class="titleTableDescr">' '<span>' l_overview_screen '</span>'
'</td>' '</tr>' INTO ls_html. APPEND ls_html TO ct_html. CONCATENATE
'<tr>' '<td>&#160;</td>' '<td class="titleTableText" colspan="2">'
txt_single_screen '</td>' '<td class="titleTableDescr">' '<span>'
l_single_screen '</span>' '</td>' '</tr>' '</table>' INTO ls_html.
APPEND ls_html TO ct_html. PERFORM html_add_box_end CHANGING ct_html.
CONCATENATE '</td>' '</tr>' '</table>' INTO ls_html. APPEND ls_html TO
ct_html. PERFORM html_add_box_end CHANGING ct_html. ENDFORM. FORM
html_add_box1ti_2rb_ti USING value(i_title_o) it_ti_o TYPE it_textinput
value(i_title_ul) value(i_name_ul) it_accessmode_ul TYPE it_access
value(i_title_ur) it_ti_ur TYPE it_textinput value(i_id) value(i_on)
CHANGING ct_html TYPE it_string. DATA: ls_html TYPE string. PERFORM
html_add_div_begin USING i_id i_on CHANGING ct_html. CONCATENATE
'<table>' '<tr>' '<td colspan="3">' INTO ls_html. APPEND ls_html TO
ct_html. PERFORM html_add_box_textinputnodiv USING i_title_o it_ti_o
CHANGING ct_html. CONCATENATE '</td>' '</tr>' '<tr>' '<td>&#160;</td>'
'</tr>' '<tr>' '<td style="vertical-align:top">' INTO ls_html. APPEND
ls_html TO ct_html. PERFORM html_add_box_radiobuttonsnodiv USING
i_title_ul i_name_ul it_accessmode_ul CHANGING ct_html. APPEND
'</td><td>&#160;</td><td style="vertical-align:top">' TO ct_html.
PERFORM html_add_box_textinputnodiv USING i_title_ur it_ti_ur CHANGING
ct_html. CONCATENATE '</td>' '</tr>' '</table>' INTO ls_html. APPEND
ls_html TO ct_html. PERFORM html_add_div_end CHANGING ct_html. ENDFORM.
FORM html_add_box1ti_2tivernodiv USING value(i_title_l) it_ti_l TYPE
it_textinput value(i_title_ro) it_ti_ro TYPE it_textinput
value(i_title_ru) it_ti_ru TYPE it_textinput CHANGING ct_html TYPE
it_string. DATA: ls_html TYPE string. CONCATENATE '<table>' '<tr>'
'<td class="boxContainerTd" rowspan="3">' INTO ls_html. APPEND ls_html
TO ct_html. PERFORM html_add_box_textinputnodiv USING i_title_l it_ti_l
CHANGING ct_html. CONCATENATE '</td>'
'<td class="boxContainerTd" rowspan="3">&#160;</td>'
'<td class="boxContainerTd">' INTO ls_html. APPEND ls_html TO ct_html.
PERFORM html_add_box_textinputnodiv USING i_title_ro it_ti_ro CHANGING
ct_html. CONCATENATE '</td>' '</tr>'
'<tr><td class="boxContainerTd">&#160;</td></tr>' '<tr>'
'<td class="boxContainerTd">' INTO ls_html. APPEND ls_html TO ct_html.
PERFORM html_add_box_textinputnodiv USING i_title_ru it_ti_ru CHANGING
ct_html. CONCATENATE '</td>' '</tr>' '</table>' INTO ls_html. APPEND
ls_html TO ct_html. ENDFORM. FORM html_add_box1tidbl_box2ti_2tix USING
value(i_title_o) it_ti_ol TYPE it_textinput it_ti_or TYPE it_textinput
value(i_title_m) value(i_title_ml) value(i_title_mr) it_ti_ml TYPE
it_textinput it_ti_mr TYPE it_textinput value(i_title_ul)
value(i_title_ur) it_ti_ul TYPE it_textinput it_ti_ur TYPE it_textinput
CHANGING ct_html TYPE it_string. DATA: ls_html TYPE string. CONCATENATE
'<table>' '<tr>' '<td class="boxContainerTd" colspan="3">' INTO
ls_html. APPEND ls_html TO ct_html. PERFORM
html_add_box_textinputdblnodiv USING i_title_o it_ti_ol it_ti_or
CHANGING ct_html. PERFORM html_add_box_begin USING i_title_m '5'
CHANGING ct_html. PERFORM html_add_box_textinputnodiv USING i_title_ml
it_ti_ml CHANGING ct_html. CONCATENATE '</td>'
'<td class="boxContent">&#160;</td>' '<td class="boxContent">' INTO
ls_html. APPEND ls_html TO ct_html. PERFORM html_add_box_textinputnodiv
USING i_title_mr it_ti_mr CHANGING ct_html. CONCATENATE '</td>'
'<td class="boxContent">&#160;&#160;</td>' '</tr>'
'<tr><td class="boxContent" colspan="5">&#160;</td></tr>' '</table>'
'</td>' '</tr>'
'<tr><td class="boxContainerTd" colspan="3">&#160;</td></tr>' '<tr>'
'<td class="boxContainerTd">' INTO ls_html. APPEND ls_html TO ct_html.
PERFORM html_add_box_textinputnodiv USING i_title_ul it_ti_ul CHANGING
ct_html. CONCATENATE '</td>' '<td class="boxContainerTd">&#160;</td>'
'<td class="boxContainerTd">' INTO ls_html. APPEND ls_html TO ct_html.
PERFORM html_add_box_textinputnodiv USING i_title_ur it_ti_ur CHANGING
ct_html. PERFORM html_add_box_end CHANGING ct_html. ENDFORM. FORM
html_add_box_radiobuttons USING value(i_title) value(i_name)
it_accessmode TYPE it_access value(i_id) value(i_on) CHANGING ct_html
TYPE it_string. PERFORM html_add_div_begin USING i_id i_on CHANGING
ct_html. PERFORM html_add_box_radiobuttonsnodiv USING i_title i_name
it_accessmode CHANGING ct_html. PERFORM html_add_div_end CHANGING
ct_html. ENDFORM. FORM html_add_box_radiobuttonsnodiv USING
value(i_title) value(i_name) it_accessmode TYPE it_access CHANGING
ct_html TYPE it_string. PERFORM html_add_box_begin USING i_title '1'
CHANGING ct_html. PERFORM html_add_radiobuttonsnodiv USING i_name
it_accessmode CHANGING ct_html. PERFORM html_add_box_end CHANGING
ct_html. ENDFORM. FORM html_add_box_textinput2ver USING
value(i_title_o) it_ti_o TYPE it_textinput value(i_title_u) it_ti_u
TYPE it_textinput value(i_id) value(i_on) CHANGING ct_html TYPE
it_string. DATA: ls_html TYPE string. PERFORM html_add_div_begin USING
i_id i_on CHANGING ct_html. CONCATENATE '<table>' '<tr>' '<td>' INTO
ls_html. APPEND ls_html TO ct_html. PERFORM html_add_box_textinputnodiv
USING i_title_o it_ti_o CHANGING ct_html. CONCATENATE '</td>' '</tr>'
'<tr>' '<td>&#160;</td>' '</tr>' '<tr>' '<td>' INTO ls_html. APPEND
ls_html TO ct_html. PERFORM html_add_box_textinputnodiv USING i_title_u
it_ti_u CHANGING ct_html. APPEND '</td></tr></table>' TO ct_html.
PERFORM html_add_div_end CHANGING ct_html. ENDFORM. FORM
html_add_box_data_transport USING value(i_title) value(i_recording)
TYPE flag value(i_compare_flag) TYPE string CHANGING ct_html TYPE
it_string. DATA: ls_html TYPE string. PERFORM html_add_box_begin USING
i_title '1' CHANGING ct_html. CONCATENATE '<table>' '<tr>'
'<td class="titleTableText">' txt_recording_routine '</td>' '<td>'
'<input' INTO ls_html. IF i_recording = abap_false. CONCATENATE ls_html
' checked="checked"' INTO ls_html. ENDIF. CONCATENATE ls_html
' class="radio"' ' disabled="disabled" name="rr"' ' type="radio"'
' value="1"/>' '</td>' '<td>' '<span>' txt_standard_recording_routine
'</span>' '</td>' '<td>&#160;</td>' '</tr>' INTO ls_html. APPEND
ls_html TO ct_html. CONCATENATE '<tr>' '<td>&#160;</td>' '<td>'
'<input' INTO ls_html. IF i_recording = abap_true. CONCATENATE ls_html
' checked="checked"' INTO ls_html. ENDIF. CONCATENATE ls_html
' class="radio"' ' disabled="disabled" name="ms"' ' type="radio"'
' value="1"/>' '</td>' '<td>' '<span>' txt_no_or_user_recording_routi
'</span>' '</td>' '<td>&#160;</td>' '</tr>' INTO ls_html. APPEND
ls_html TO ct_html. CONCATENATE '<tr>' '<td class="titleTableText">'
txt_compare_flag '</td>' '<td class="titleTableDescr" colspan="3">'
'<span>' i_compare_flag '</span>' '</td>' '</tr>' '</table>' INTO
ls_html. APPEND ls_html TO ct_html. PERFORM html_add_box_end CHANGING
ct_html. ENDFORM. FORM html_add_box_textinputdblnodiv USING
value(i_title) it_ti_l TYPE it_textinput it_ti_r TYPE it_textinput
CHANGING ct_html TYPE it_string. DATA: ls_html TYPE string. PERFORM
html_add_box_begin USING i_title '3' CHANGING ct_html. PERFORM
html_add_textinputnodiv USING it_ti_l CHANGING ct_html. CONCATENATE
'</td>' '<td>&#160;</td>' '<td>' INTO ls_html. APPEND ls_html TO
ct_html. PERFORM html_add_textinputnodiv USING it_ti_r CHANGING
ct_html. PERFORM html_add_box_end CHANGING ct_html. ENDFORM. FORM
html_add_box_textinputnodiv USING value(i_title) it_ti TYPE
it_textinput CHANGING ct_html TYPE it_string. DATA: ls_html TYPE
string. PERFORM html_add_box_begin USING i_title '1' CHANGING ct_html.
PERFORM html_add_textinputnodiv USING it_ti CHANGING ct_html. PERFORM
html_add_box_end CHANGING ct_html. ENDFORM. FORM
html_add_container_begin USING it_tabstrip TYPE it_tabstrip value(i_id)
value(i_on) CHANGING ct_html TYPE it_string. DATA: lt_tabstrip TYPE
it_tabstrip, ls_html TYPE string, l_class TYPE string. FIELD-SYMBOLS:
<ls_tabstrip> TYPE st_tabstrip. PERFORM get_tabstrip_defined USING
it_tabstrip CHANGING lt_tabstrip. PERFORM html_add_div_begin USING i_id
i_on CHANGING ct_html. CONCATENATE '<table>' '<tr>'
'<td class="contentTable">'
'<table border="0" cellpadding="0" cellspacing="0"'
' class="contentTable">' '<tr>' INTO ls_html. APPEND ls_html TO
ct_html. LOOP AT lt_tabstrip ASSIGNING <ls_tabstrip> WHERE hidden =
abap_false AND parent_id = i_id. IF <ls_tabstrip>-disabled = abap_true.
l_class = 'contentTabDisabled'. ELSEIF <ls_tabstrip>-active =
abap_true. l_class = 'contentTabOn'. ELSE. l_class = 'contentTabOff'.
ENDIF. IF <ls_tabstrip>-disabled = abap_false. CONCATENATE
'<td class="' l_class '" id="' <ls_tabstrip>-id
'tab"><a href="#" onclick="openChildTab(''' <ls_tabstrip>-parent_id
''',''' <ls_tabstrip>-id ''')">' <ls_tabstrip>-text '</a></td>' INTO
ls_html. APPEND ls_html TO ct_html. ELSE. CONCATENATE '<td class="'
l_class '" id="' <ls_tabstrip>-id
'tab"><a class="linkDisabled" href="#"' ' onclick="return false">'
<ls_tabstrip>-text '</a></td>' INTO ls_html. APPEND ls_html TO ct_html.
ENDIF. ENDLOOP. CONCATENATE '</tr>' '</table>' '</td>' '</tr>' INTO
ls_html. APPEND ls_html TO ct_html. APPEND '<tr>' TO ct_html. APPEND
'<td class="contentBox">' TO ct_html. ENDFORM. FORM
html_add_container_end CHANGING ct_html TYPE it_string. APPEND
'</td></tr></table>' TO ct_html. PERFORM html_add_div_end CHANGING
ct_html. ENDFORM. FORM html_add_data_type USING is_data_type TYPE
st_data_type value(i_id) value(i_on) CHANGING ct_html TYPE it_string.
DATA: ls_html TYPE string, l_checked_12 TYPE string, l_checked_1 TYPE
string, l_domname_1 TYPE char255, l_domdescr_1 TYPE char255,
l_datatype_1 TYPE char255, l_datadescr_1 TYPE char255, l_dataleng_1
TYPE string, l_datadeci_1 TYPE string, l_checked_2 TYPE string,
l_datatype_2 TYPE char255, l_dataleng_2 TYPE string, l_datadeci_2 TYPE
string, l_checked_34 TYPE string, l_checked_3 TYPE string,
l_reftypename_3 TYPE string, l_checked_4 TYPE string, l_datatype_4 TYPE
char255, l_datadescr_4 TYPE char255, l_dataleng_4 TYPE string,
l_datadeci_4 TYPE string. CASE is_data_type-refkind. WHEN 'R'.
l_checked_34 = ' checked="checked" '. CASE is_data_type-reftype. WHEN
'B'. l_checked_4 = ' checked="checked" '. WRITE is_data_type-datatype
TO l_datatype_4. WRITE is_data_type-datadescr TO l_datadescr_4. PERFORM
get_unpacked USING is_data_type-dataleng CHANGING l_dataleng_4. PERFORM
get_unpacked USING is_data_type-datadeci CHANGING l_datadeci_4. WHEN
OTHERS. l_checked_3 = ' checked="checked" '. l_reftypename_3 =
is_data_type-domname. ENDCASE. WHEN 'D'. l_checked_12 =
' checked="checked" '. l_checked_1 = ' checked="checked" '. WRITE
is_data_type-domname TO l_domname_1. WRITE is_data_type-domdescr TO
l_domdescr_1. WRITE is_data_type-datatype TO l_datatype_1. WRITE
is_data_type-datadescr TO l_datadescr_1. PERFORM get_unpacked USING
is_data_type-dataleng CHANGING l_dataleng_1. PERFORM get_unpacked USING
is_data_type-datadeci CHANGING l_datadeci_1. WHEN OTHERS. l_checked_12
= ' checked="checked" '. l_checked_2 = ' checked="checked" '. WRITE
is_data_type-datatype TO l_datatype_2. PERFORM get_unpacked USING
is_data_type-dataleng CHANGING l_dataleng_2. PERFORM get_unpacked USING
is_data_type-datadeci CHANGING l_datadeci_2. ENDCASE. PERFORM
html_add_div_begin USING i_id i_on CHANGING ct_html. CONCATENATE
'<form action="#" method="post">' '<table class="titleTable">' '<tr>'
'<td>' '<input ' l_checked_12 ' class="radio"'
' disabled="disabled" name="type"'
' type="radio" value="elementaryType"/>' '</td>' '<td colspan="2">'
txt_elementary_type '</td>' '<td>&#160;</td>' '<td>&#160;</td>'
'<td>&#160;</td>' '<td>&#160;</td>' '<td>&#160;</td>' '</tr>' '<tr>'
'<td>&#160;</td>' '<td>' '<input ' l_checked_1 ' class="radio"'
' disabled="disabled" name="subtype"' ' type="radio" value="domain"/>'
'</td>' '<td>' txt_domain '</td>'
'<td class="titleTableDescr" colspan="3">' l_domname_1 '</td>'
'<td colspan="2">' l_domdescr_1 '</td>' '</tr>' '<tr>'
'<td colspan="3">&#160;</td>' '<td class="titleTableText">'
txt_data_type '</td>' '<td>' l_datatype_1 '</td>' '<td colspan="3">'
l_datadescr_1 '</td>' '</tr>' '<tr>' '<td colspan="3">&#160;</td>'
'<td class="titleTableText">' txt_length '</td>' '<td>' l_dataleng_1
'</td>' '<td class="titleTableText" colspan="2">'
txt_decimal_places___m '</td>' '<td>' l_datadeci_1 '</td>' '</tr>'
'<tr><td colspan="8">&#160;</td></tr>' '<tr>' '<td>&#160;</td>' '<td>'
'<input ' l_checked_2 ' class="radio"'
' disabled="disabled" name="subtype"'
' type="radio" value="buildinType"/>' '</td>' '<td>' txt_built_in_type
'</td>' '<td class="titleTableText">' txt_data_type '</td>'
'<td class="titleTableDescr">' l_datatype_2 '</td>'
'<td colspan="3">&#160;</td>' '</tr>' '<tr>'
'<td colspan="3">&#160;</td>' '<td class="titleTableText">' txt_length
'</td>' '<td class="titleTableDescr">' l_dataleng_2 '</td>'
'<td class="titleTableText" colspan="2">' txt_decimal_places___m
'</td>' '<td class="titleTableDescr">' l_datadeci_2 '</td>' '</tr>'
INTO ls_html. APPEND ls_html TO ct_html. IF is_data_type-reftype <>
'#'. CONCATENATE '<tr>' '<td>' '<input ' l_checked_34 ' class="radio"'
' disabled="disabled" name="type"'
' type="radio" value="referenceType"/>' '</td>' '<td colspan="2">'
txt_reference_type '</td>' '<td colspan="5">&#160;</td>' '</tr>' '<tr>'
'<td>&#160;</td>' '<td>' '<input ' l_checked_3 ' class="radio"'
' disabled="disabled" name="subtype"'
' type="radio" value="referencedType"/>' '</td>' '<td>'
txt_name_of_ref_type '</td>' '<td class="titleTableDescr" colspan="3">'
l_reftypename_3 '</td>' '<td colspan="2">&#160;</td>' '</tr>'
'<tr><td colspan="8">&#160;</td></tr>' '<tr>' '<td>&#160;</td>' '<td>'
'<input ' l_checked_4 ' class="radio"'
' disabled="disabled" name="subtype"'
' type="radio" value="referenceToBuildinType"/>' '</td>' '<td>'
txt_reference_to_predefined_ty '</td>' '<td colspan="5">&#160;</td>'
'</tr>' '<tr>' '<td colspan="3">&#160;</td>'
'<td class="titleTableText">' txt_data_type '</td>' '<td>' l_datatype_4
'</td>' '<td colspan="3">' l_datadescr_4 '</td>' '</tr>' '<tr>'
'<td colspan="3">&#160;</td>' '<td class="titleTableText">' txt_length
'</td>' '<td>' l_dataleng_4 '</td>'
'<td class="titleTableText" colspan="2">' txt_decimal_places___m
'</td>' '<td>' l_datadeci_4 '</td>' '</tr>' INTO ls_html. APPEND
ls_html TO ct_html. ENDIF. CONCATENATE '</table>' '</form>' INTO
ls_html. APPEND ls_html TO ct_html. PERFORM html_add_div_end CHANGING
ct_html. ENDFORM. FORM html_add_definition_1 USING is_definition TYPE
st_definition_1 value(i_id) value(i_on) CHANGING ct_html TYPE
it_string. DATA: ls_html TYPE string, l_dataleng TYPE string,
l_datadeci TYPE string, l_outputlen TYPE string, lt_ti TYPE
it_textinput, ls_ti TYPE st_textinput, l_datatype TYPE char255,
l_datadescr TYPE char255, l_convexit TYPE char255, l_signflag TYPE
char255, l_lowercase TYPE char255. WRITE is_definition-datatype TO
l_datatype. WRITE is_definition-datadescr TO l_datadescr. WRITE
is_definition-convexit TO l_convexit. WRITE is_definition-signflag TO
l_signflag. WRITE is_definition-lowercase TO l_lowercase. PERFORM
get_unpacked USING is_definition-dataleng CHANGING l_dataleng. PERFORM
get_unpacked USING is_definition-datadeci CHANGING l_datadeci. PERFORM
get_unpacked USING is_definition-outputlen CHANGING l_outputlen.
PERFORM html_add_div_begin USING i_id i_on CHANGING ct_html.
CONCATENATE '<table class="titleTable">' '<tr>' '<td>' INTO ls_html.
APPEND ls_html TO ct_html. REFRESH lt_ti. CLEAR ls_ti. ls_ti-name =
txt_data_type. ls_ti-value = l_datatype. ls_ti-input = abap_true.
ls_ti-description = l_datadescr. APPEND ls_ti TO lt_ti. CLEAR ls_ti.
ls_ti-name = txt_no_of_characters. ls_ti-value = l_dataleng.
ls_ti-input = abap_true. APPEND ls_ti TO lt_ti. CLEAR ls_ti. ls_ti-name
= txt_decimal_places___m. ls_ti-value = l_datadeci. ls_ti-input =
abap_true. APPEND ls_ti TO lt_ti. PERFORM html_add_box_textinputnodiv
USING txt_formatting lt_ti CHANGING ct_html. CONCATENATE '</td>'
'</tr>' '<tr>' '<td>&#160;</td>' '</tr>' '<tr>' '<td>' INTO ls_html.
APPEND ls_html TO ct_html. REFRESH lt_ti. CLEAR ls_ti. ls_ti-name =
txt_output_length. ls_ti-value = l_outputlen. ls_ti-input = abap_true.
APPEND ls_ti TO lt_ti. CLEAR ls_ti. ls_ti-name = txt_convers_routine.
ls_ti-value = l_convexit. ls_ti-input = abap_true. APPEND ls_ti TO
lt_ti. CLEAR ls_ti. ls_ti-name = txt_sign. ls_ti-value = l_signflag.
ls_ti-flag = abap_true. APPEND ls_ti TO lt_ti. CLEAR ls_ti. ls_ti-name
= txt_lowercase. ls_ti-value = l_lowercase. ls_ti-flag = abap_true.
APPEND ls_ti TO lt_ti. PERFORM html_add_box_textinputnodiv USING
txt_output_characteristics lt_ti CHANGING ct_html. CONCATENATE '</td>'
'</tr>' '</table>' INTO ls_html. APPEND ls_html TO ct_html. PERFORM
html_add_div_end CHANGING ct_html. ENDFORM. FORM html_add_definition_2
USING is_definition TYPE st_definition_2 i_param_table TYPE string
it_param_content TYPE ANY TABLE value(i_id) value(i_on) CHANGING
ct_html TYPE it_string. DATA: ls_html TYPE string, lt_ti TYPE
it_textinput, ls_ti TYPE st_textinput, l_selmethod TYPE char255,
l_texttab TYPE char255, l_dialogtype TYPE char255, l_hotkey TYPE
char255, l_selmexit TYPE char255. WRITE is_definition-selmethod TO
l_selmethod. WRITE is_definition-texttab TO l_texttab. WRITE
is_definition-dialogtype TO l_dialogtype. WRITE is_definition-hotkey TO
l_hotkey. WRITE is_definition-selmexit TO l_selmexit. PERFORM
html_add_div_begin USING i_id i_on CHANGING ct_html. CONCATENATE
'<table class="titleTable">' '<tr>' '<td>' INTO ls_html. APPEND ls_html
TO ct_html. REFRESH lt_ti. ls_ti-name = txt_selection_method.
ls_ti-value = l_selmethod. ls_ti-input = abap_true. APPEND ls_ti TO
lt_ti. ls_ti-name = txt_text_table. ls_ti-value = l_texttab.
ls_ti-input = abap_false. APPEND ls_ti TO lt_ti. PERFORM
html_add_box_textinputnodiv USING txt_data_collection lt_ti CHANGING
ct_html. CONCATENATE '</td>' '<td>' INTO ls_html. APPEND ls_html TO
ct_html. REFRESH lt_ti. ls_ti-name = txt_dialog_type. ls_ti-value =
l_dialogtype. ls_ti-input = abap_true. APPEND ls_ti TO lt_ti.
ls_ti-name = txt_hot_key. ls_ti-value = l_hotkey. ls_ti-input =
abap_true. APPEND ls_ti TO lt_ti. PERFORM html_add_box_textinputnodiv
USING txt_dialog_behavior lt_ti CHANGING ct_html. CONCATENATE '</td>'
'</tr>' '<tr>' '<td colspan="2">' '<table>' '<tr>'
'<td class="titleTableText">' txt_search_help_exit '</td>'
'<td class="titleTableDescr">' l_selmexit '</td>' '</tr>' '</table>'
'</td>' '</tr>' '<tr><td colspan="2">&#160;</td></tr>' '<tr>'
'<td colspan="2">' '<table border="0" cellpadding="0" cellspacing="0"'
' class="container">' '<tr>' '<td class="containerTitle">'
txt_parameters '</td>' '</tr>' '<tr>' '<td class="containerContent">'
INTO ls_html. APPEND ls_html TO ct_html. PERFORM html_add_tablenodiv
USING i_param_table it_param_content it_param_content CHANGING ct_html.
CONCATENATE '</td>' '</tr>' '</table>' '</td>' '</tr>' '</table>' INTO
ls_html. APPEND ls_html TO ct_html. PERFORM html_add_div_end CHANGING
ct_html. ENDFORM. FORM html_add_deliv_maint USING is_deliv_maint TYPE
st_deliv_maint it_access TYPE it_access value(i_id) value(i_on)
CHANGING ct_html TYPE it_string. DATA: l_tabix TYPE sytabix, l_checked
TYPE string, ls_html TYPE string, l_rowcount TYPE i, l_rowspan TYPE
string, l_contflag TYPE char255, l_contflag_text TYPE char255,
l_mainflag_text TYPE char255, l_sqltab TYPE char255. FIELD-SYMBOLS:
<ls_access> TYPE st_access. WRITE is_deliv_maint-contflag TO
l_contflag. WRITE is_deliv_maint-contflag_text TO l_contflag_text.
WRITE is_deliv_maint-mainflag_text TO l_mainflag_text. WRITE
is_deliv_maint-sqltab TO l_sqltab. PERFORM html_add_div_begin USING
i_id i_on CHANGING ct_html. APPEND '<table class="titleTable">' TO
ct_html. IF NOT l_sqltab IS INITIAL. CONCATENATE '<tr>'
'<td class="titleTableText">' txt_pool_cluster '</td>'
'<td class="titleTableDescr" colspan="3">' l_sqltab '</td>' '</tr>'
INTO ls_html. APPEND ls_html TO ct_html. ENDIF. IF NOT it_access IS
INITIAL. CONCATENATE '<tr>' '<td colspan="4">' INTO ls_html. APPEND
ls_html TO ct_html. PERFORM html_add_box_radiobuttonsnodiv USING
txt_access 'access' it_access CHANGING ct_html. CONCATENATE '</td>'
'</tr>' INTO ls_html. APPEND ls_html TO ct_html. ENDIF. IF
is_deliv_maint-display_cont = abap_true. CONCATENATE '<tr>'
'<td class="titleTableText">' txt_delivery_class '</td>'
'<td class="titleTableDescr">' l_contflag '</td>' '<td>'
l_contflag_text '</td>' '<td colspan="2">&#160;</td>' '</tr>' INTO
ls_html. APPEND ls_html TO ct_html. ENDIF. IF
is_deliv_maint-display_main = abap_true. CONCATENATE '<tr>'
'<td class="titleTableText">' txt_data_browser_table_view_ma '</td>'
'<td class="titleTableDescr" colspan="3">' l_mainflag_text '</td>'
'</tr>' INTO ls_html. APPEND ls_html TO ct_html. ENDIF. APPEND
'</table>' TO ct_html. PERFORM html_add_div_end CHANGING ct_html.
ENDFORM. FORM html_add_div_begin USING value(i_id) value(i_on) CHANGING
ct_html TYPE it_string. DATA: l_style TYPE string, ls_html TYPE string.
IF i_on = abap_true. l_style = 'display:block;visibility:visible'.
ELSE. l_style = 'display:none;visibility:hidden'. ENDIF. CONCATENATE
'<div class="contentDiv" id="' i_id 'div" style="' l_style ';">' INTO
ls_html. APPEND ls_html TO ct_html. ENDFORM. FORM html_add_div_end
CHANGING ct_html TYPE it_string. APPEND '</div>' TO ct_html. ENDFORM.
FORM html_add_doc USING it_doc TYPE it_string value(i_id) value(i_on)
CHANGING ct_html TYPE it_string. DATA: l_text TYPE string, ls_html TYPE
string, l_tabix TYPE string, l_titletag_open TYPE string,
l_titletag_close TYPE string. FIELD-SYMBOLS: <ls_doc> TYPE string.
PERFORM html_add_div_begin USING i_id i_on CHANGING ct_html.
CONCATENATE '<table class="scrollTable">' '<tr>'
'<td style="border-spacing:0px;padding:0px">' '<div id="' i_id
'scroll" class="scrollDiv">' INTO ls_html. APPEND ls_html TO ct_html.
LOOP AT it_doc ASSIGNING <ls_doc>. APPEND <ls_doc> TO ct_html. ENDLOOP.
CONCATENATE '</div>' '</td>' '</tr>' '</table>' INTO ls_html. APPEND
ls_html TO ct_html. PERFORM html_add_div_end CHANGING ct_html. ENDFORM.
FORM html_add_field_label USING is_field_label TYPE st_field_label
value(i_id) value(i_on) CHANGING ct_html TYPE it_string. DATA: l_uname
TYPE string, l_date_last_changed TYPE string, l_pack TYPE string,
l_pack_descr TYPE string, l_langu TYPE sylangu, l_langu_descr TYPE
string, ls_html TYPE string, l_headlen TYPE string, l_reptext TYPE
char255, l_scrlen_s TYPE string, l_scrlen_m TYPE string, l_scrlen_l
TYPE string, l_scrtext_s TYPE char255, l_scrtext_m TYPE char255,
l_scrtext_l TYPE char255. WRITE is_field_label-reptext TO l_reptext.
WRITE is_field_label-scrtext_l TO l_scrtext_l. WRITE
is_field_label-scrtext_m TO l_scrtext_m. WRITE is_field_label-scrtext_s
TO l_scrtext_s. PERFORM get_unpacked USING is_field_label-headlen
CHANGING l_headlen. PERFORM get_unpacked USING is_field_label-scrlen_l
CHANGING l_scrlen_l. PERFORM get_unpacked USING is_field_label-scrlen_m
CHANGING l_scrlen_m. PERFORM get_unpacked USING is_field_label-scrlen_s
CHANGING l_scrlen_s. PERFORM html_add_div_begin USING i_id i_on
CHANGING ct_html. CONCATENATE '<table class="titleTable">' '<tr>'
'<td>&#160;</td>' '<td colspan="2">' txt_length '</td>'
'<td colspan="4">' txt_field_label '</td>' '</tr>' '<tr>'
'<td class="titleTableText">' txt_short '</td>'
'<td class="titleTableDescr">' l_scrlen_s '</td>' '<td>&#160;</td>'
'<td class="titleTableDescr">' l_scrtext_s '</td>'
'<td colspan="3">&#160;</td>' '</tr>' '<tr>'
'<td class="titleTableText">' txt_medium '</td>'
'<td class="titleTableDescr">' l_scrlen_m '</td>' '<td>&#160;</td>'
'<td class="titleTableDescr" colspan="2">' l_scrtext_m '</td>'
'<td colspan="2">&#160;</td>' '</tr>' '<tr>'
'<td class="titleTableText">' txt_long '</td>'
'<td class="titleTableDescr">' l_scrlen_l '</td>' '<td>&#160;</td>'
'<td class="titleTableDescr" colspan="3">' l_scrtext_l '</td>'
'<td>&#160;</td>' '</tr>' '<tr>' '<td class="titleTableText">'
txt_heading '</td>' '<td class="titleTableDescr">' l_headlen '</td>'
'<td>&#160;</td>' '<td class="titleTableDescr" colspan="4">' l_reptext
'</td>' '</tr>' '</table>' INTO ls_html. APPEND ls_html TO ct_html.
PERFORM html_add_div_end CHANGING ct_html. ENDFORM. FORM
html_add_further_char USING is_further_char TYPE st_further_char
value(i_id) value(i_on) CHANGING ct_html TYPE it_string. DATA: ls_html
TYPE string, lt_ti TYPE it_textinput, ls_ti TYPE st_textinput,
l_deffdname TYPE char255, l_memoryid TYPE char255, l_shlpfield TYPE
char255, l_shlpname TYPE char255, l_checked TYPE string. WRITE
is_further_char-deffdname TO l_deffdname. WRITE
is_further_char-memoryid TO l_memoryid. WRITE is_further_char-shlpfield
TO l_shlpfield. WRITE is_further_char-shlpname TO l_shlpname. PERFORM
html_add_div_begin USING i_id i_on CHANGING ct_html. CONCATENATE
'<table class="titleTable">' '<tr>' '<td colspan="2">' INTO ls_html.
APPEND ls_html TO ct_html. REFRESH lt_ti. ls_ti-name = txt_name.
ls_ti-value = l_shlpname. ls_ti-input = abap_true. APPEND ls_ti TO
lt_ti. ls_ti-name = txt_parameters. ls_ti-value = l_shlpfield.
ls_ti-input = abap_true. APPEND ls_ti TO lt_ti. PERFORM
html_add_box_textinputnodiv USING txt_srch_help lt_ti CHANGING ct_html.
CLEAR l_checked. IF is_further_char-logflag = abap_true. l_checked =
' checked="checked"'. ENDIF. CONCATENATE '</td>' '</tr>'
'<tr><td colspan="2">&#160;</td></tr>' '<tr>'
'<td class="titleTableText">' txt_parameter_id '</td>'
'<td class="titleTableDescr">' l_memoryid '</td>' '</tr>'
'<tr><td colspan="5">&#160;</td></tr>' '<tr>'
'<td class="titleTableText">' txt_default_component_name '</td>'
'<td class="titleTableDescr">' l_deffdname '</td>' '</tr>'
'<tr><td colspan="2">&#160;</td></tr>' '<tr>' '<td colspan="2">'
'<table>' '<tr>' '<td>' '<input class="innerTableFlag"' l_checked
' disabled="disabled" type="checkbox"' ' value="'
is_further_char-logflag '"/>' '</td>' '<td>' txt_change_document
'</td>' '</tr>' '</table>' '</td>' '</tr>' '</table>' INTO ls_html.
APPEND ls_html TO ct_html. PERFORM html_add_div_end CHANGING ct_html.
ENDFORM. FORM html_add_iframe USING value(i_url) value(i_id)
value(i_on) CHANGING ct_html TYPE it_string. DATA: ls_html TYPE string.
PERFORM html_add_div_begin USING i_id i_on CHANGING ct_html. APPEND
'<table class="scrollTable">' TO ct_html. CONCATENATE '<tr>' '<td id="'
i_id 'iframe"' ' style="border-spacing:0px;padding:0px">' INTO ls_html.
APPEND ls_html TO ct_html. IF NOT i_url IS INITIAL. CONCATENATE
'<iframe frameborder="0"' ' height="400"' ' id="' i_id 'scroll"'
' scrolling="auto"' ' src="' i_url '"' ' width="90%">' '</iframe>' INTO
ls_html. APPEND ls_html TO ct_html. ENDIF. CONCATENATE '</td>' '</tr>'
'</table>' INTO ls_html. APPEND ls_html TO ct_html. PERFORM
html_add_div_end CHANGING ct_html. ENDFORM. FORM html_add_init_access
USING is_init_access TYPE st_init_access it_accessmode TYPE it_access
value(i_id) value(i_on) CHANGING ct_html TYPE it_string. DATA: ls_html
TYPE string, l_info1 TYPE char255, l_info2 TYPE char255, l_occurs TYPE
string. WRITE is_init_access-info1 TO l_info1. WRITE
is_init_access-info2 TO l_info2. PERFORM get_unpacked USING
is_init_access-occurs CHANGING l_occurs. PERFORM html_add_div_begin
USING i_id i_on CHANGING ct_html. APPEND '<table class="titleTable">'
TO ct_html. IF NOT is_init_access-info1 IS INITIAL. CONCATENATE '<tr>'
'<td class="info" colspan="3">' l_info1 '</td>' '</tr>' INTO ls_html.
APPEND ls_html TO ct_html. ENDIF. IF is_init_access-unknown =
abap_false. CONCATENATE '<tr>' '<td class="titleTableText">'
txt_initial_line_number '</td>' '<td class="titleTableDescr">' l_occurs
'</td>' '<td>&#160;</td>' '</tr>' INTO ls_html. APPEND ls_html TO
ct_html. ENDIF. IF NOT is_init_access-info2 IS INITIAL. CONCATENATE
'<tr>' '<td class="info" colspan="3">' l_info2 '</td>' '</tr>' INTO
ls_html. APPEND ls_html TO ct_html. ENDIF. CONCATENATE '<tr>'
'<td colspan="3">' INTO ls_html. APPEND ls_html TO ct_html. PERFORM
html_add_box_radiobuttonsnodiv USING txt_access 'accessmode'
it_accessmode CHANGING ct_html. CONCATENATE '</td>' '</tr>' '</table>'
INTO ls_html. APPEND ls_html TO ct_html. PERFORM html_add_div_end
CHANGING ct_html. ENDFORM. FORM html_add_key USING is_key TYPE st_key
it_keydef TYPE it_access it_keykind TYPE it_access i_keycomp_table TYPE
string it_keycomp_content TYPE ANY TABLE value(i_id) value(i_on)
CHANGING ct_html TYPE it_string. DATA: ls_html TYPE string. PERFORM
html_add_div_begin USING i_id i_on CHANGING ct_html. APPEND
'<table class="titleTable">' TO ct_html. IF NOT is_key-info IS INITIAL.
CONCATENATE '<tr>' '<td class="info" colspan="8">' is_key-info '</td>'
'</tr>' INTO ls_html. APPEND ls_html TO ct_html. ENDIF. CONCATENATE
'<tr>' '<td style="vertical-align:top">' INTO ls_html. APPEND ls_html
TO ct_html. PERFORM html_add_box_radiobuttonsnodiv USING
txt_key_definition 'keydef' it_keydef CHANGING ct_html. CONCATENATE
'</td>' '<td style="vertical-align:top">' INTO ls_html. APPEND ls_html
TO ct_html. PERFORM html_add_box_radiobuttonsnodiv USING
txt_key_category 'keykind' it_keykind CHANGING ct_html. CONCATENATE
'</td>' '</tr>' '<tr>' '<td colspan="2">&#160;</td>' '</tr>' '<tr>'
'<td colspan="2">' '<table border="0" cellpadding="0" cellspacing="0"'
' class="container">' '<tr>' '<td class="containerTitle">'
txt_key_components '</td>' '</tr>' '<tr>'
'<td class="containerContent">' INTO ls_html. APPEND ls_html TO
ct_html. PERFORM html_add_tablenodiv USING i_keycomp_table
it_keycomp_content it_keycomp_content CHANGING ct_html. CONCATENATE
'</td>' '</tr>' '</table>' '</td>' '</tr>' '</table>' INTO ls_html.
APPEND ls_html TO ct_html. PERFORM html_add_div_end CHANGING ct_html.
ENDFORM. FORM html_add_line_type_1 USING is_line_type TYPE st_line_type
value(i_id) value(i_on) CHANGING ct_html TYPE it_string. DATA: ls_html
TYPE string, l_info TYPE char255, l_checked_1 TYPE string, l_linetype_1
TYPE string, l_rowtype_1 TYPE char255, l_rowdescr_1 TYPE char255,
l_checked_2 TYPE string, l_datatype_2 TYPE char255, l_dataleng_2 TYPE
string, l_datadeci_2 TYPE string, l_info_2 TYPE string, l_checked_3
TYPE string, l_checked_31 TYPE string, l_reftypename_31 TYPE char255,
l_reftypedescr_31 TYPE char255, l_checked_32 TYPE string, l_datatype_32
TYPE char255, l_dataleng_32 TYPE string, l_datadeci_32 TYPE string.
CASE is_line_type-rowkind. WHEN 'E'. l_checked_1 =
' checked="checked" '. l_linetype_1 = txt_elementary_type. WRITE
is_line_type-rowtype TO l_rowtype_1. WRITE is_line_type-rowdescr TO
l_rowdescr_1. WHEN 'S'. l_checked_1 = ' checked="checked" '.
l_linetype_1 = txt_structured_type. WRITE is_line_type-rowtype TO
l_rowtype_1. WRITE is_line_type-rowdescr TO l_rowdescr_1. WHEN 'L'.
l_checked_1 = ' checked="checked" '. l_linetype_1 = txt_table_type.
WRITE is_line_type-rowtype TO l_rowtype_1. WRITE is_line_type-rowdescr
TO l_rowdescr_1. WHEN space. l_checked_2 = ' checked="checked" '. WRITE
is_line_type-datatype TO l_datatype_2. PERFORM get_unpacked USING
is_line_type-dataleng CHANGING l_dataleng_2. PERFORM get_unpacked USING
is_line_type-datadeci CHANGING l_datadeci_2. IF is_line_type-dataleng
IS INITIAL. l_info_2 = txt_no_length_restriction. ENDIF. WHEN 'R'.
l_checked_3 = ' checked="checked" '. CASE is_line_type-reftype. WHEN
'D' OR 'O'. l_checked_31 = ' checked="checked" '. WRITE
is_line_type-rowtype TO l_reftypename_31. WHEN 'B'. l_checked_32 =
' checked="checked" '. WRITE is_line_type-rowtype TO l_datatype_32.
PERFORM get_unpacked USING is_line_type-dataleng CHANGING
l_dataleng_32. PERFORM get_unpacked USING is_line_type-datadeci
CHANGING l_datadeci_32. WHEN 'E' OR 'S' OR 'C' OR 'I'. l_checked_31 =
' checked="checked" '. WRITE is_line_type-rowtype TO l_reftypename_31.
WRITE is_line_type-refdescr TO l_reftypedescr_31. ENDCASE. ENDCASE.
PERFORM html_add_div_begin USING i_id i_on CHANGING ct_html. WRITE
is_line_type-info TO l_info. CONCATENATE
'<form action="#" method="post">' '<table class="titleTable">' INTO
ls_html. APPEND ls_html TO ct_html. IF NOT l_info IS INITIAL.
CONCATENATE '<tr>' '<td class="info" colspan="8">' l_info '</td>'
'</tr>' INTO ls_html. APPEND ls_html TO ct_html. ENDIF. CONCATENATE
'<tr>' '<td>' '<input ' l_checked_1 ' class="radio"'
' disabled="disabled" name="subtype"' ' type="radio" value="domain"/>'
'</td>' '<td colspan="2">' txt_line_type '</td>'
'<td class="titleTableDescr" colspan="3">' l_rowtype_1 '</td>' '<td>'
l_rowdescr_1 '</td>' '<td>' l_linetype_1 '</td>' '</tr>'
'<tr><td colspan="8">&#160;</td></tr>' '<tr>' '<td>' '<input '
l_checked_2 ' class="radio"' ' disabled="disabled" name="subtype"'
' type="radio" value="buildinType"/>' '</td>' '<td colspan="2">'
txt_built_in_type '</td>' '<td colspan="5">&#160;</td>' '</tr>' '<tr>'
'<td colspan="2">&#160;</td>' '<td class="titleTableText" colspan="2">'
txt_data_type '</td>' '<td class="titleTableDescr" colspan="2">'
l_datatype_2 '</td>' '<td colspan="3">&#160;</td>' '</tr>' '<tr>'
'<td colspan="2">&#160;</td>' '<td class="titleTableText">'
txt_no_of_characters '</td>' '<td class="titleTableDescr">'
l_dataleng_2 '</td>' '<td>&#160;</td>'
'<td class="titleTableText" colspan="2">' txt_decimal_places___m
'</td>' '<td class="titleTableDescr">' l_datadeci_2 '</td>'
'<td>&#160;</td>' '</tr>' INTO ls_html. APPEND ls_html TO ct_html. IF
NOT l_info_2 IS INITIAL. CONCATENATE '<tr>'
'<td class="info" colspan="8">' l_info_2 '</td>' '</tr>' INTO ls_html.
APPEND ls_html TO ct_html. ENDIF. IF is_line_type-reftype <> '#'.
CONCATENATE '<tr><td colspan="8">&#160;</td></tr>' '<tr>' '<td>'
'<input ' l_checked_3 ' class="radio"'
' disabled="disabled" name="type"'
' type="radio" value="referenceType"/>' '</td>' '<td colspan="2">'
txt_reference_type '</td>' '<td colspan="5">&#160;</td>' '</tr>' '<tr>'
'<td>&#160;</td>' '<td>' '<input ' l_checked_31 ' class="radio"'
' disabled="disabled" name="subtype"'
' type="radio" value="referencedType"/>' '</td>' '<td colspan="2">'
txt_name_of_ref_type '</td>' '<td class="titleTableDescr" colspan="3">'
l_reftypename_31 '</td>' '<td>' l_reftypedescr_31 '</td>' '</tr>'
'<tr><td colspan="8">&#160;</td></tr>' '<tr>' '<td>&#160;</td>' '<td>'
'<input ' l_checked_32 ' class="radio"'
' disabled="disabled" name="subtype"'
' type="radio" value="referenceToBuildinType"/>' '</td>' '<td>'
txt_reference_to_predefined_ty '</td>' '<td colspan="5">&#160;</td>'
'</tr>' '<tr>' '<td colspan="3">&#160;</td>'
'<td class="titleTableText">' txt_data_type '</td>' '<td>'
l_datatype_32 '</td>' '<td colspan="3">&#160;</td>' '</tr>' '<tr>'
'<td colspan="3">&#160;</td>' '<td class="titleTableText">' txt_length
'</td>' '<td>' l_dataleng_32 '</td>'
'<td class="titleTableText" colspan="2">' txt_decimal_places___m
'</td>' '<td>' l_datadeci_32 '</td>' '</tr>' INTO ls_html. APPEND
ls_html TO ct_html. ENDIF. CONCATENATE '</table>' '</form>' INTO
ls_html. APPEND ls_html TO ct_html. PERFORM html_add_div_end CHANGING
ct_html. ENDFORM. FORM html_add_line_type_2 USING is_line_type TYPE
st_line_type value(i_id) value(i_on) CHANGING ct_html TYPE it_string.
DATA: ls_html TYPE string, l_info TYPE char255, l_checked_1 TYPE
string, l_range_ctyp_1 TYPE string, l_checked_2 TYPE string,
l_datatype_2 TYPE char255, l_datadescr_2 TYPE string, l_dataleng_2 TYPE
string, l_datadeci_2 TYPE string, l_rowtype TYPE char255. IF NOT
is_line_type-range_ctyp IS INITIAL. l_checked_1 =
' checked="checked" '. l_range_ctyp_1 = is_line_type-range_ctyp. ELSE.
l_checked_2 = ' checked="checked" '. WRITE is_line_type-ctdatatype TO
l_datatype_2. PERFORM get_dom_value_text USING 'DATATYP' l_datatype_2
CHANGING l_datadescr_2. PERFORM get_unpacked USING is_line_type-ctleng
CHANGING l_dataleng_2. PERFORM get_unpacked USING
is_line_type-ctdecimals CHANGING l_datadeci_2. ENDIF. WRITE
is_line_type-rowtype TO l_rowtype. PERFORM html_add_div_begin USING
i_id i_on CHANGING ct_html. CONCATENATE
'<form action="#" method="post">' '<table class="titleTable">' '<tr>'
'<td>' INTO ls_html. APPEND ls_html TO ct_html. PERFORM
html_add_box_begin USING txt_associated_type_for_low_hi '1' CHANGING
ct_html. CONCATENATE '<table>' '<tr>' '<td>' '<input ' l_checked_1
' class="radio"' ' disabled="disabled" name="subtype"'
' type="radio" value="domain"/>' '</td>' '<td>' txt_data_element___1
'</td>' '<td class="titleTableDescr" colspan="3">' l_range_ctyp_1
'</td>' '<td>&#160;</td>' '</tr>' '<tr>' '<td>' '<input ' l_checked_2
' class="radio"' ' disabled="disabled" name="subtype"'
' type="radio" value="domain"/>' '</td>' '<td>' txt_built_in_type
'</td>' '<td colspan="4">&#160;</td>' '</tr>' '<tr>' '<td>&#160;</td>'
'<td class="titleTableText">' txt_data_type '</td>'
'<td class="titleTableDescr" colspan="2">' l_datatype_2 '</td>'
'<td colspan="2">' l_datadescr_2 '</td>' '</tr>' '<tr>'
'<td>&#160;</td>' '<td class="titleTableText">' txt_no_of_characters
'</td>' '<td class="titleTableDescr">' l_dataleng_2 '</td>'
'<td>&#160;</td>' '<td class="titleTableText">' txt_decimal_places___m
'</td>' '<td class="titleTableDescr">' l_datadeci_2 '</td>' '</tr>'
'</table>' INTO ls_html. APPEND ls_html TO ct_html. PERFORM
html_add_box_end CHANGING ct_html. CONCATENATE '</td>' '</tr>'
'<tr><td>&#160;</td></tr>' '<tr>' '<td>' '<table>' '<tr>'
'<td class="titleTableText">' txt_structured_row_type '</td>'
'<td class="titleTableDescr">' l_rowtype '</td>' '</tr>' '</table>'
'</td>' '</tr>' '</table>' '</form>' INTO ls_html. APPEND ls_html TO
ct_html. PERFORM html_add_div_end CHANGING ct_html. ENDFORM. FORM
html_add_meta CHANGING ct_html TYPE it_string. DATA: l_laiso TYPE
laiso, l_sptxt TYPE sptxt, ls_html TYPE string. PERFORM get_spras USING
sy-langu l_laiso l_sptxt. APPEND '<meta charset="iso-8859-1"/>' TO
ct_html. APPEND '<meta name="application-name" content="SoftCopy"/>' TO
ct_html. APPEND '<meta name="author" content="Ruediger von Creytz"/>'
TO ct_html. APPEND '<meta name="copyright" content="globalBIT, LLC"/>'
TO ct_html. CONCATENATE '<meta name="date" content="' sy-datum+0(4) '-'
sy-datum+4(2) '-' sy-datum+6(2) '">' INTO ls_html. APPEND ls_html TO
ct_html. CONCATENATE '<meta name="generator" content="SoftCopy.'
gc_version '"/>' INTO ls_html. APPEND ls_html TO ct_html. CONCATENATE
'<meta name="language" content="' l_laiso '"/>' INTO ls_html. APPEND
ls_html TO ct_html. APPEND
'<meta name="rights" content="globalBIT, LLC"/>' TO ct_html. ENDFORM.
FORM html_add_methodnodiv USING value(i_cpdname) value(i_active)
value(i_text_method) i_table TYPE string it_table TYPE ANY TABLE
it_table_ext TYPE ANY TABLE it_source TYPE it_string value(i_filename)
value(i_filename_no_includes) value(i_filename_compressed)
value(i_extension) value(i_id) CHANGING ct_html TYPE it_string. DATA:
ls_html TYPE string, l_id_sc TYPE string. CONCATENATE
'<table class="titleTable">' '<tr>' '<td>' INTO ls_html. APPEND ls_html
TO ct_html. PERFORM html_add_tablenodiv USING i_table it_table
it_table_ext CHANGING ct_html. CONCATENATE '</td>' '</tr>' '<tr>'
'<td style="padding-bottom:2px;padding-top:5px">'
'<table class="titleTable">' '<tr>' '<td class="titleTableText">'
i_text_method '</td>' '<td class="titleTableDescr">' i_cpdname '</td>'
'<td>' i_active '</td>' '<td>&#160;</td>' '</tr>' '</table>' '</td>'
'</tr>' '<tr>' '<td>' INTO ls_html. APPEND ls_html TO ct_html. PERFORM
get_id USING i_id 'SC' CHANGING l_id_sc. PERFORM
html_add_sourcecodenodiv USING it_source i_filename
i_filename_no_includes i_filename_compressed i_extension l_id_sc
CHANGING ct_html. CONCATENATE '</td>' '</tr>' '</table>' INTO ls_html.
APPEND ls_html TO ct_html. ENDFORM. FORM html_add_properties USING
is_properties TYPE st_properties it_ti TYPE it_textinput
i_typegroup_table TYPE string it_typegroup TYPE ANY TABLE value(i_id)
value(i_on) CHANGING ct_html TYPE it_string. DATA: ls_html TYPE string,
l_superclass TYPE char255, l_check_model_inh TYPE flag, l_description
TYPE char255, l_creatable TYPE char255, l_clsfinal TYPE flag, l_checked
TYPE string. WRITE is_properties-superclass TO l_superclass. WRITE
is_properties-check_model_inh TO l_check_model_inh. WRITE
is_properties-descript TO l_description. WRITE is_properties-creatable
TO l_creatable. WRITE is_properties-clsfinal TO l_clsfinal. PERFORM
html_add_div_begin USING i_id i_on CHANGING ct_html. CONCATENATE
'<table class="titleTable">' '<tr>' '<td>' '<table class="titleTable">'
INTO ls_html. APPEND ls_html TO ct_html. IF NOT l_superclass IS
INITIAL. CLEAR l_checked. IF l_check_model_inh = abap_true. l_checked =
' checked="checked"'. ENDIF. CONCATENATE '<tr>'
'<td class="titleTableText">' txt_superclass '</td>'
'<td class="titleTableDescr" colspan="2">' l_superclass '</td>'
'<td colspan="2">' '<table>' '<tr>' '<td>'
'<input class="innerTableFlag"' l_checked
' disabled="disabled" type="checkbox"' ' value="' l_check_model_inh
'"/>' '</td>' '<td>' txt_modeled_only '</td>' '</tr>' '</table>'
'</td>' '</tr>' INTO ls_html. APPEND ls_html TO ct_html. ENDIF. IF NOT
l_description IS INITIAL. CONCATENATE '<tr>'
'<td class="titleTableText">' txt_description '</td>'
'<td class="titleTableDescr" colspan="3">' l_description '</td>'
'<td>&#160;</td>' '</tr>' INTO ls_html. APPEND ls_html TO ct_html.
ENDIF. IF NOT l_creatable IS INITIAL. IF l_clsfinal = abap_true.
l_checked = ' checked="checked"'. ENDIF. CONCATENATE '<tr>'
'<td class="titleTableText">' txt_instantiation '</td>'
'<td class="titleTableDescr">' l_creatable '</td>'
'<td colspan="3">&#160;</td>' '</tr>' '<tr>' '<td colspan="5">'
'<table>' '<tr>' '<td>' '<input class="innerTableFlag"' l_checked
' disabled="disabled" type="checkbox"' ' value="' l_clsfinal '"/>'
'</td>' '<td>' txt_final '</td>' '</tr>' '</table>' '</td>' '</tr>'
INTO ls_html. APPEND ls_html TO ct_html. ENDIF. CONCATENATE '</table>'
'</td>' '<td rowspan="2">'
'<table border="0" cellpadding="0" cellspacing="0"'
' class="container">' '<tr>' '<td class="containerTitle">'
txt_forward_declarations '</td>' '</tr>' '<tr>'
'<td class="containerContent">' INTO ls_html. APPEND ls_html TO
ct_html. PERFORM html_add_tablenodiv USING i_typegroup_table
it_typegroup it_typegroup CHANGING ct_html. CONCATENATE '</td>' '</tr>'
'</table>' '</td>' '</tr>' '<tr>' '<td>' INTO ls_html. APPEND ls_html
TO ct_html. PERFORM html_add_box_textinputnodiv USING txt_general_data
it_ti CHANGING ct_html. CONCATENATE '</td>' '</tr>' '</table>' INTO
ls_html. APPEND ls_html TO ct_html. PERFORM html_add_div_end CHANGING
ct_html. ENDFORM. FORM html_add_properties_o2 USING it_header TYPE
it_textinput i_page_type_title TYPE string it_page_type_rb TYPE
it_access it_page_type_ti TYPE it_textinput i_error_title TYPE string
it_error TYPE it_textinput i_status_title TYPE string it_status_rb TYPE
it_access it_status_ti TYPE it_textinput i_cache_title TYPE string
it_cache_li TYPE it_textinput it_cache_re TYPE it_textinput
i_transfer_title TYPE string it_transfer_li TYPE it_textinput
it_transfer_re TYPE it_textinput it_footer TYPE it_textinput
value(i_id) value(i_on) CHANGING ct_html TYPE it_string. DATA: ls_html
TYPE string. PERFORM html_add_div_begin USING i_id i_on CHANGING
ct_html. APPEND '<table class="titleTable">' TO ct_html. IF NOT
it_header IS INITIAL. CONCATENATE '<tr>' '<td>' INTO ls_html. APPEND
ls_html TO ct_html. PERFORM html_add_textinputnodiv USING it_header
CHANGING ct_html. CONCATENATE '</td>' '</tr>' INTO ls_html. APPEND
ls_html TO ct_html. ENDIF. IF NOT it_page_type_rb IS INITIAL AND NOT
it_page_type_ti IS INITIAL. CONCATENATE '<tr>' '<td>' INTO ls_html.
APPEND ls_html TO ct_html. PERFORM html_add_box1rb_1tihornodiv USING
i_page_type_title it_page_type_rb it_page_type_ti CHANGING ct_html.
CONCATENATE '</td>' '</tr>' INTO ls_html. APPEND ls_html TO ct_html.
ENDIF. IF NOT it_error IS INITIAL. CONCATENATE '<tr>' '<td>' INTO
ls_html. APPEND ls_html TO ct_html. PERFORM html_add_box_textinputnodiv
USING i_error_title it_error CHANGING ct_html. CONCATENATE '</td>'
'</tr>' INTO ls_html. APPEND ls_html TO ct_html. ENDIF. IF NOT
it_status_ti IS INITIAL AND NOT it_status_rb IS INITIAL. CONCATENATE
'<tr>' '<td>' INTO ls_html. APPEND ls_html TO ct_html. PERFORM
html_add_box1rb_1tivernodiv USING i_status_title it_status_rb
it_status_ti CHANGING ct_html. CONCATENATE '</td>' '</tr>' INTO
ls_html. APPEND ls_html TO ct_html. ENDIF. IF NOT it_cache_li IS
INITIAL AND NOT it_cache_re IS INITIAL. CONCATENATE '<tr>' '<td>' INTO
ls_html. APPEND ls_html TO ct_html. PERFORM
html_add_box_textinputdblnodiv USING i_cache_title it_cache_li
it_cache_re CHANGING ct_html. CONCATENATE '</td>' '</tr>' INTO ls_html.
APPEND ls_html TO ct_html. ENDIF. IF NOT it_transfer_li IS INITIAL AND
NOT it_transfer_re IS INITIAL. CONCATENATE '<tr>' '<td>' INTO ls_html.
APPEND ls_html TO ct_html. PERFORM html_add_box_textinputdblnodiv USING
i_transfer_title it_transfer_li it_transfer_re CHANGING ct_html.
CONCATENATE '</td>' '</tr>' INTO ls_html. APPEND ls_html TO ct_html.
ENDIF. IF NOT it_footer IS INITIAL. CONCATENATE '<tr>' '<td>' INTO
ls_html. APPEND ls_html TO ct_html. PERFORM html_add_textinputnodiv
USING it_footer CHANGING ct_html. CONCATENATE '</td>' '</tr>' INTO
ls_html. APPEND ls_html TO ct_html. ENDIF. APPEND '</table>' TO
ct_html. PERFORM html_add_div_end CHANGING ct_html. ENDFORM. FORM
html_add_radiobuttonsnodiv USING value(i_name) it_accessmode TYPE
it_access CHANGING ct_html TYPE it_string. DATA: l_first_row TYPE flag
VALUE abap_true, ls_html TYPE string, l_colspan TYPE n, l_name TYPE
string, l_ddtext TYPE char255, l_tabix TYPE string. FIELD-SYMBOLS:
<ls_access> TYPE st_access. APPEND '<table class="titleTable">' TO
ct_html. LOOP AT it_accessmode ASSIGNING <ls_access>. l_tabix =
sy-tabix. CONDENSE l_tabix. WRITE <ls_access>-ddtext TO l_ddtext.
APPEND '<tr>' TO ct_html. IF <ls_access>-sub IS INITIAL. l_colspan = 2.
ELSE. l_colspan = 1. APPEND '<td>&#160;</td>' TO ct_html. ENDIF.
CONCATENATE '<td>' '<input ' INTO ls_html. IF <ls_access>-checked =
abap_true. CONCATENATE ls_html ' checked="checked"' INTO ls_html.
ENDIF. CONCATENATE i_name <ls_access>-sub INTO l_name. CONCATENATE
ls_html ' class="radio"' ' disabled="disabled" name="' l_name '"'
' type="radio"' ' value="' <ls_access>-sub 'x' l_tabix '"/>' '</td>'
'<td colspan="' l_colspan '">' '<span>' l_ddtext '</span>' '</td>'
'</tr>' INTO ls_html. APPEND ls_html TO ct_html. ENDLOOP. APPEND
'</table>' TO ct_html. ENDFORM. FORM html_add_sourcecode USING
it_source TYPE it_string value(i_filename)
value(i_filename_no_includes) value(i_filename_compressed)
value(i_extension) value(i_id) value(i_on) TYPE flag CHANGING ct_html
TYPE it_string. PERFORM html_add_div_begin USING i_id i_on CHANGING
ct_html. PERFORM html_add_sourcecodenodiv USING it_source i_filename
i_filename_no_includes i_filename_compressed i_extension i_id CHANGING
ct_html. PERFORM html_add_div_end CHANGING ct_html. ENDFORM. FORM
html_add_sourcecodenodiv USING it_source TYPE it_string
value(i_filename) value(i_filename_no_includes)
value(i_filename_compressed) value(i_extension) value(i_id) CHANGING
ct_html TYPE it_string. DATA: l_style TYPE string, l_source TYPE
string, ls_html TYPE string, l_tabix TYPE string, lt_filename TYPE
it_string, l_filename TYPE string, l_filename_no_includes TYPE string,
l_filename_compressed TYPE string, l_strlen TYPE i. FIELD-SYMBOLS:
<ls_source> TYPE string. SPLIT i_filename AT '/' INTO TABLE
lt_filename. LOOP AT lt_filename INTO l_filename. ENDLOOP. PERFORM
replace_all USING '<' '-' CHANGING l_filename. PERFORM replace_all
USING '>' '-' CHANGING l_filename. SPLIT i_filename_no_includes AT '/'
INTO TABLE lt_filename. LOOP AT lt_filename INTO
l_filename_no_includes. ENDLOOP. PERFORM replace_all USING '<' '-'
CHANGING l_filename_no_includes. PERFORM replace_all USING '>' '-'
CHANGING l_filename_no_includes. SPLIT i_filename_compressed AT '/'
INTO TABLE lt_filename. LOOP AT lt_filename INTO l_filename_compressed.
ENDLOOP. PERFORM replace_all USING '<' '-' CHANGING
l_filename_compressed. PERFORM replace_all USING '>' '-' CHANGING
l_filename_compressed. APPEND '<table class="scrollTable">' TO ct_html.
IF NOT l_filename IS INITIAL AND NOT i_extension IS INITIAL.
CONCATENATE '<tr>' '<td style="border-spacing:0px;margin-right:1em;'
'padding:0px;text-align:right">' '<table class="titleTable">' '<tr>'
'<td class="button">' '<a href="' l_filename '.' i_extension '"'
' onclick="window.open(this.href); return false">' i_extension '</a>'
'</td>' INTO ls_html. APPEND ls_html TO ct_html. IF NOT
l_filename_no_includes IS INITIAL. CONCATENATE '<td>&#160;</td>'
'<td class="button">' '<a href="' l_filename_no_includes '.'
i_extension '"' ' onclick="window.open(this.href); return false">'
txt_complete '.' i_extension '</a>' '</td>' INTO ls_html. APPEND
ls_html TO ct_html. ENDIF. IF NOT l_filename_compressed IS INITIAL.
CONCATENATE '<td>&#160;</td>' '<td class="button">' '<a href="'
l_filename_compressed '.' i_extension '"'
' onclick="window.open(this.href); return false">' txt_compressed '.'
i_extension '</a>' '</td>' INTO ls_html. APPEND ls_html TO ct_html.
ENDIF. CONCATENATE '</tr>' '</table>' '</td>' '</tr>' INTO ls_html.
APPEND ls_html TO ct_html. ENDIF. CONCATENATE '<tr>'
'<td style="border-spacing:0px;padding:0px">' '<div id="' i_id
'scroll" class="scrollDiv">' '<table class="src">' INTO ls_html. APPEND
ls_html TO ct_html. LOOP AT it_source ASSIGNING <ls_source>. l_tabix =
sy-tabix. CONDENSE l_tabix. l_style = 'srcLine'. l_strlen = strlen(
<ls_source> ). IF l_strlen > 1 AND <ls_source>(1) = '*'. l_style =
'srcLineComment'. ENDIF. l_source = <ls_source>. PERFORM
encode_html_force CHANGING l_source. IF l_source IS INITIAL. l_source =
'&#160;'. ENDIF. CONCATENATE '<tr>' '<td class="srcLineNumber">'
'<pre>' l_tabix '</pre>' '</td>' '<td class="' l_style '">' '<pre>'
l_source '</pre>' '</td>' '</tr>' INTO ls_html. APPEND ls_html TO
ct_html. ENDLOOP. CONCATENATE '</table>' '</div>' '</td>' '</tr>'
'</table>' INTO ls_html. APPEND ls_html TO ct_html. ENDFORM. FORM
html_add_table USING i_table TYPE string it_content TYPE ANY TABLE
it_content_ext TYPE ANY TABLE value(i_id) value(i_on) CHANGING ct_html
TYPE it_string. DATA: ls_html TYPE string. PERFORM html_add_div_begin
USING i_id i_on CHANGING ct_html. PERFORM html_add_tablenodiv USING
i_table it_content it_content_ext CHANGING ct_html. PERFORM
html_add_div_end CHANGING ct_html. ENDFORM. FORM html_add_table2hor
USING i_table_l TYPE string it_content_l TYPE ANY TABLE
it_content_ext_l TYPE ANY TABLE i_table_r TYPE string it_content_r TYPE
ANY TABLE it_content_ext_r TYPE ANY TABLE value(i_id) value(i_on)
CHANGING ct_html TYPE it_string. DATA: ls_html TYPE string. PERFORM
html_add_div_begin USING i_id i_on CHANGING ct_html. CONCATENATE
'<table>' '<tr>' '<td style="vertical-align:top">' INTO ls_html. APPEND
ls_html TO ct_html. PERFORM html_add_tablenodiv USING i_table_l
it_content_l it_content_ext_l CHANGING ct_html. APPEND
'</td><td>&#160;</td><td style="vertical-align:top">' TO ct_html.
PERFORM html_add_tablenodiv USING i_table_r it_content_r
it_content_ext_r CHANGING ct_html. APPEND '</td></tr></table>' TO
ct_html. PERFORM html_add_div_end CHANGING ct_html. ENDFORM. FORM
html_add_table2ver USING i_table_o TYPE string it_content_o TYPE ANY
TABLE it_content_ext_o TYPE ANY TABLE i_table_u TYPE string
it_content_u TYPE ANY TABLE it_content_ext_u TYPE ANY TABLE value(i_id)
value(i_on) CHANGING ct_html TYPE it_string. DATA: ls_html TYPE string.
PERFORM html_add_div_begin USING i_id i_on CHANGING ct_html.
CONCATENATE '<table>' '<tr>' '<td>' INTO ls_html. APPEND ls_html TO
ct_html. PERFORM html_add_tablenodiv USING i_table_o it_content_o
it_content_ext_o CHANGING ct_html. CONCATENATE '</td>' '</tr>' '<tr>'
'<td>&#160;</td>' '</tr>' '<tr>' '<td>' INTO ls_html. APPEND ls_html TO
ct_html. PERFORM html_add_tablenodiv USING i_table_u it_content_u
it_content_ext_u CHANGING ct_html. APPEND '</td></tr></table>' TO
ct_html. PERFORM html_add_div_end CHANGING ct_html. ENDFORM. FORM
html_add_tablemaintgenerator USING value(i_tdd_title) it_tdd_textinput
TYPE it_textinput value(i_tdd_subtitle) value(i_tdd_step) TYPE c
value(i_tdd_overview_screen) value(i_tdd_single_screen)
value(i_ddtd_title) value(i_ddtd_recording) TYPE flag
value(i_ddtd_compare_flag) TYPE string value(i_id) value(i_on) CHANGING
ct_html TYPE it_string. DATA: ls_html TYPE string. PERFORM
html_add_div_begin USING i_id i_on CHANGING ct_html. CONCATENATE
'<table>' '<tr>' '<td>' INTO ls_html. APPEND ls_html TO ct_html.
PERFORM html_add_box1ti_subboxmsnodiv USING i_tdd_title
it_tdd_textinput i_tdd_subtitle i_tdd_step i_tdd_overview_screen
i_tdd_single_screen CHANGING ct_html. CONCATENATE '</td>' '</tr>'
'<tr>' '<td>&#160;</td>' '</tr>' '<tr>' '<td>' INTO ls_html. APPEND
ls_html TO ct_html. PERFORM html_add_box_data_transport USING
i_ddtd_title i_ddtd_recording i_ddtd_compare_flag CHANGING ct_html.
APPEND '</td></tr></table>' TO ct_html. PERFORM html_add_div_end
CHANGING ct_html. ENDFORM. FORM html_add_tablenodiv USING i_table TYPE
string it_content TYPE ANY TABLE it_content_ext TYPE ANY TABLE CHANGING
ct_html TYPE it_string. DATA: l_tabid TYPE string, l_tabcomp TYPE
string, l_txt TYPE char255, l_text TYPE string, l_link TYPE char255,
l_colored TYPE flag, l_class TYPE string, ls_html TYPE string, l_align
TYPE string, l_tabix TYPE sytabix, l_int TYPE i, l_checked TYPE string,
l_title TYPE string. FIELD-SYMBOLS: <ls_tabdef> TYPE
st_table_structure, <ls_content> TYPE ANY, <ls_content_ext> TYPE ANY,
<l_value> TYPE ANY, <l_link> TYPE ANY, <l_colored> TYPE ANY. SPLIT
i_table AT '|' INTO l_tabid l_tabcomp. CONCATENATE
'<table border="0" cellpadding="0" cellspacing="0"'
' class="innerTable">' '<tr>' INTO ls_html. APPEND ls_html TO ct_html.
LOOP AT gt_table_structure ASSIGNING <ls_tabdef> WHERE id = l_tabid.
CASE <ls_tabdef>-comparator. WHEN 'CO'. IF NOT l_tabcomp CO
<ls_tabdef>-comp_value. CONTINUE. ENDIF. ENDCASE. l_title =
<ls_tabdef>-title. PERFORM encode_html CHANGING l_title. IF l_title IS
INITIAL. l_title = '&#160;'. ENDIF. CONCATENATE
'<th class="innerTableTH">' l_title '</th>' INTO ls_html. APPEND
ls_html TO ct_html. ENDLOOP. APPEND '</tr>' TO ct_html. LOOP AT
it_content ASSIGNING <ls_content>. l_tabix = sy-tabix. LOOP AT
it_content_ext ASSIGNING <ls_content_ext>. IF sy-tabix = l_tabix. EXIT.
ENDIF. ENDLOOP. APPEND '<tr>' TO ct_html. LOOP AT gt_table_structure
ASSIGNING <ls_tabdef> WHERE id = l_tabid. CASE <ls_tabdef>-comparator.
WHEN 'CO'. IF NOT l_tabcomp CO <ls_tabdef>-comp_value. CONTINUE. ENDIF.
ENDCASE. CLEAR l_txt. CLEAR l_text. ASSIGN COMPONENT
<ls_tabdef>-fieldname OF STRUCTURE <ls_content> TO <l_value>. IF NOT
<l_value> IS ASSIGNED. ASSIGN COMPONENT <ls_tabdef>-fieldname OF
STRUCTURE <ls_content_ext> TO <l_value>. ENDIF. IF <l_value> IS
ASSIGNED. WRITE <l_value> TO l_txt. UNASSIGN <l_value>. ENDIF. l_text =
l_txt. PERFORM encode_html CHANGING l_text. CLEAR l_link. IF NOT
<ls_tabdef>-link_row IS INITIAL. ASSIGN COMPONENT <ls_tabdef>-link_row
OF STRUCTURE <ls_content> TO <l_link>. IF NOT <l_link> IS ASSIGNED.
ASSIGN COMPONENT <ls_tabdef>-link_row OF STRUCTURE <ls_content_ext> TO
<l_link>. ENDIF. IF <l_link> IS ASSIGNED. WRITE <l_link> TO l_link.
UNASSIGN <l_link>. ENDIF. ENDIF. CLEAR l_colored. IF NOT
<ls_tabdef>-colored_row IS INITIAL. ASSIGN COMPONENT
<ls_tabdef>-colored_row OF STRUCTURE <ls_content> TO <l_colored>. IF
NOT <l_colored> IS ASSIGNED. ASSIGN COMPONENT <ls_tabdef>-colored_row
OF STRUCTURE <ls_content_ext> TO <l_colored>. ENDIF. IF <l_colored> IS
ASSIGNED. l_colored = <l_colored>. UNASSIGN <l_colored>. ENDIF. ENDIF.
l_align = 'left'. CASE <ls_tabdef>-row_def. WHEN 'B'. l_align =
'center'. IF NOT l_text IS INITIAL. CONCATENATE
'<input class="innerTableButton"' ' onclick="' l_link '"' ' value="'
l_text '"/>' INTO l_text. ENDIF. WHEN 'C'. l_align = 'center'. WHEN
'F'. l_align = 'center'. CLEAR l_checked. IF l_text = abap_undefined.
l_text = space. ELSE. IF l_text = abap_true. l_checked =
' checked="checked"'. ENDIF. CONCATENATE
'<input class="innerTableFlag"' l_checked
' disabled="disabled" type="checkbox"' ' value="' l_text '"/>' INTO
l_text. ENDIF. WHEN 'H'. l_align = 'left'. IF l_colored IS INITIAL.
l_class = 'tableLink'. ELSE. l_class = 'tableLinkColored'. ENDIF.
CONCATENATE '<a class="' l_class '" href="#"' ' onclick="' l_link '">'
l_text '</a>' INTO l_text. WHEN 'I'. l_align = 'right'. l_int = l_text.
l_text = l_int. CONDENSE l_text. WHEN 'L'. l_align = 'left'. WHEN 'R'.
l_align = 'right'. ENDCASE. IF l_text IS INITIAL. l_text = '&#160;'.
ENDIF. IF l_colored IS INITIAL. l_class = 'innerTableTD'. ELSE. l_class
= 'innerTableTDColored'. ENDIF. CONCATENATE '<td class="' l_class '"'
' style="text-align:' l_align ';vertical-align:middle">' l_text '</td>'
INTO ls_html. APPEND ls_html TO ct_html. ENDLOOP. APPEND '</tr>' TO
ct_html. ENDLOOP. APPEND '</table>' TO ct_html. ENDFORM. FORM
html_add_tables USING it_tables TYPE it_tables value(i_id) value(i_on)
CHANGING ct_html TYPE it_string. DATA: ls_html TYPE string, ls_tables
TYPE st_tables, lt_ti TYPE it_textinput, ls_ti TYPE st_textinput,
l_enqmode TYPE char255, l_tabname TYPE char255. FIELD-SYMBOLS:
<ls_tables> TYPE st_tables. READ TABLE it_tables INTO ls_tables WITH
KEY primary = abap_true. WRITE ls_tables-enqmode TO l_enqmode. WRITE
ls_tables-tabname TO l_tabname. PERFORM html_add_div_begin USING i_id
i_on CHANGING ct_html. CONCATENATE '<table class="titleTable">' '<tr>'
'<td colspan="5">' INTO ls_html. APPEND ls_html TO ct_html. REFRESH
lt_ti. CLEAR ls_ti. ls_ti-name = txt_name. ls_ti-value = l_tabname.
ls_ti-input = abap_true. APPEND ls_ti TO lt_ti. CLEAR ls_ti. ls_ti-name
= txt_lock_mode. ls_ti-value = l_enqmode. ls_ti-input = abap_true.
APPEND ls_ti TO lt_ti. PERFORM html_add_box_textinputnodiv USING
txt_primary_table lt_ti CHANGING ct_html. CONCATENATE
'<tr><td colspan="5">&#160;</td></tr>' '<tr>' '<td>'
'<table border="0" cellpadding="0" cellspacing="0"' ' class="box">'
'<tr class="boxContent">' '<td class="boxContent">'
'<table class="boxName">' '<tr>' '<td>' '<span>' txt_secondary_tables
'</span>' '</td>' '</tr>' '</table>' '</td>' '</tr>'
'<tr class="boxContent">' '<td class="boxContent">'
'<table border="0" cellpadding="0" cellspacing="0"'
' class="innerTable">' '<tr>' '<th class="innerTableTH"'
' style="text-align:left">' txt_name '</th>' '<th class="innerTableTH"'
' style="text-align:left">' txt_lock_mode '</th>' '</tr>' INTO ls_html.
APPEND ls_html TO ct_html. LOOP AT it_tables ASSIGNING <ls_tables>
WHERE primary = abap_false. WRITE <ls_tables>-enqmode TO l_enqmode.
WRITE <ls_tables>-tabname TO l_tabname. CONCATENATE '<tr>'
'<td class="innerTableTD">' l_tabname '</td>'
'<td class="innerTableTD">' l_enqmode '</td>' '</tr>' INTO ls_html.
APPEND ls_html TO ct_html. ENDLOOP. CONCATENATE '</table>' '</td>'
'</tr>' '</table>' '</td>' '</tr>' '</table>' INTO ls_html. APPEND
ls_html TO ct_html. PERFORM html_add_div_end CHANGING ct_html. ENDFORM.
FORM html_add_tech_settings USING i_title_params TYPE string
it_ti_params TYPE it_textinput i_title_buffer TYPE string
it_access_buffer TYPE it_access i_title_buffer_type TYPE string
it_ti_buffer_type_l TYPE it_textinput it_ti_buffer_type_r TYPE
it_textinput it_ti_bottom TYPE it_textinput value(i_id) value(i_on)
CHANGING ct_html TYPE it_string. DATA: ls_html TYPE string. PERFORM
html_add_div_begin USING i_id i_on CHANGING ct_html. CONCATENATE
'<table>' '<tr>' '<td>' INTO ls_html. APPEND ls_html TO ct_html.
PERFORM html_add_box_textinputnodiv USING i_title_params it_ti_params
CHANGING ct_html. CONCATENATE '</td>' '</tr>'
'<tr><td>&#160;</td></tr>' '<tr>' '<td>' INTO ls_html. APPEND ls_html
TO ct_html. PERFORM html_add_box1rb_subbox2tinodiv USING i_title_buffer
it_access_buffer i_title_buffer_type it_ti_buffer_type_l
it_ti_buffer_type_r CHANGING ct_html. CONCATENATE '</td>' '</tr>'
'<tr><td>&#160;</td></tr>' '<tr>' '<td>' INTO ls_html. APPEND ls_html
TO ct_html. PERFORM html_add_textinputnodiv USING it_ti_bottom CHANGING
ct_html. CONCATENATE '</td>' '</tr>' '</table>' INTO ls_html. APPEND
ls_html TO ct_html. PERFORM html_add_div_end CHANGING ct_html. ENDFORM.
FORM html_add_textinput USING it_ti TYPE it_textinput value(i_id)
value(i_on) CHANGING ct_html TYPE it_string. DATA: ls_html TYPE string.
PERFORM html_add_div_begin USING i_id i_on CHANGING ct_html. PERFORM
html_add_textinputnodiv USING it_ti CHANGING ct_html. PERFORM
html_add_div_end CHANGING ct_html. ENDFORM. FORM
html_add_textinputnodiv USING it_ti TYPE it_textinput CHANGING ct_html
TYPE it_string. DATA: l_first_row TYPE flag VALUE abap_true, ls_html
TYPE string, ls_ti TYPE st_textinput, ls_ti2 TYPE st_textinput,
l_has_description TYPE flag, l_description TYPE char255, l_name TYPE
char255, l_name_suffix TYPE char255, l_value TYPE char255, l_value_text
TYPE char255, l_value_ext TYPE char255, l_value_ext_text TYPE char255,
l_value_class TYPE string, l_tabix TYPE i, l_colspan TYPE string,
l_checked TYPE string. FIELD-SYMBOLS: <ls_ti> TYPE st_textinput. LOOP
AT it_ti ASSIGNING <ls_ti> WHERE description <> space.
l_has_description = abap_true. EXIT. ENDLOOP. APPEND
'<table class="titleTable">' TO ct_html. LOOP AT it_ti INTO ls_ti WHERE
flag_col <= 1. l_tabix = sy-tabix. WRITE ls_ti-description TO
l_description. IF l_description IS INITIAL. l_description = '&#160;'.
ENDIF. WRITE ls_ti-name TO l_name. IF l_name IS INITIAL. l_name =
'&#160;'. ENDIF. WRITE ls_ti-name_suffix TO l_name_suffix. WRITE
ls_ti-value TO l_value. IF l_value IS INITIAL. l_value = '&#160;'.
ENDIF. WRITE ls_ti-value_text TO l_value_text. WRITE ls_ti-value_ext TO
l_value_ext. WRITE ls_ti-value_ext_text TO l_value_ext_text. IF
l_value_ext IS INITIAL. l_value_ext = '&#160;'. ENDIF. APPEND '<tr>' TO
ct_html. IF ls_ti-space = abap_true. CONCATENATE '<td colspan="4">'
'&#160;' '</td>' INTO ls_html. APPEND ls_html TO ct_html. ELSEIF
ls_ti-flag = abap_true. CLEAR l_checked. IF l_value = abap_true.
l_checked = ' checked="checked"'. ENDIF. CONCATENATE '<td colspan="5">'
'<table>' '<tr>' '<td>' '<input class="innerTableFlag"' l_checked
' disabled="disabled" type="checkbox"' ' value="' l_value '"/>' '</td>'
'<td>' l_name '</td>' INTO ls_html. APPEND ls_html TO ct_html. l_tabix
= l_tabix + 1. LOOP AT it_ti INTO ls_ti2 FROM l_tabix. IF
ls_ti2-flag_col > 1. WRITE ls_ti2-name TO l_name. IF l_name IS INITIAL.
l_name = '&#160;'. ENDIF. WRITE ls_ti2-value TO l_value. IF l_value IS
INITIAL. l_value = '&#160;'. ENDIF. CLEAR l_checked. IF l_value =
abap_true. l_checked = ' checked="checked"'. ENDIF. CONCATENATE
'<td>&#160;</td>' '<td>' '<input class="innerTableFlag"' l_checked
' disabled="disabled" type="checkbox"' ' value="' l_value '"/>' '</td>'
'<td>' l_name '</td>' INTO ls_html. APPEND ls_html TO ct_html. ELSE.
EXIT. ENDIF. ENDLOOP. CONCATENATE '</tr>' '</table>' '</td>' INTO
ls_html. APPEND ls_html TO ct_html. ELSE. IF ls_ti-no_name =
abap_false. IF l_name_suffix IS INITIAL. CONCATENATE
'<td class="titleTableText" colspan="2">' l_name '</td>' INTO ls_html.
ELSE. CONCATENATE '<td class="titleTableText">' l_name '</td>'
'<td class="titleTableText">' l_name_suffix '</td>' INTO ls_html.
ENDIF. APPEND ls_html TO ct_html. ENDIF. IF ls_ti-has_value_ext =
abap_true AND ls_ti-value_double_length = abap_false. l_colspan = '1'.
ELSE. l_colspan = '3'. ENDIF. IF ls_ti-no_name = abap_true. l_colspan =
l_colspan + 1. ENDIF. IF ls_ti-input = abap_true. l_value_class =
' class="titleTableDescr"'. ELSE. CLEAR l_value_class. ENDIF.
CONCATENATE '<td ' l_value_class ' colspan="' l_colspan '">' '<span>'
INTO ls_html. APPEND ls_html TO ct_html. IF NOT l_value_text IS
INITIAL. CONCATENATE '<a href="#" onclick="return false;"' ' title="'
l_value_text '">' l_value '</a>' INTO ls_html. APPEND ls_html TO
ct_html. ELSE. APPEND l_value TO ct_html. ENDIF. CONCATENATE '</span>'
'</td>' INTO ls_html. APPEND ls_html TO ct_html. IF ls_ti-has_value_ext
= abap_true AND ls_ti-value_double_length = abap_false. IF
ls_ti-value_ext_space = abap_true. CLEAR l_value_class. ENDIF.
CONCATENATE '<td>&#160;</td>' '<td' l_value_class '>' '<span>' INTO
ls_html. APPEND ls_html TO ct_html. IF NOT l_value_ext_text IS INITIAL.
CONCATENATE '<a href="#" onclick="return false;"' ' title="'
l_value_ext_text '">' l_value_ext '</a>' INTO ls_html. APPEND ls_html
TO ct_html. ELSE. APPEND l_value_ext TO ct_html. ENDIF. CONCATENATE
'</span>' '</td>' INTO ls_html. APPEND ls_html TO ct_html. ENDIF.
ENDIF. IF l_has_description = abap_true. CONCATENATE '<td>'
l_description '</td>' INTO ls_html. APPEND ls_html TO ct_html. ENDIF.
APPEND '</tr>' TO ct_html. ENDLOOP. APPEND '</table>' TO ct_html.
ENDFORM. FORM html_add_textinput_subbox USING it_ti TYPE it_textinput
value(i_subbox_title) it_subbox_ti TYPE it_textinput value(i_id)
value(i_on) CHANGING ct_html TYPE it_string. DATA: ls_html TYPE string.
PERFORM html_add_div_begin USING i_id i_on CHANGING ct_html.
CONCATENATE '<table>' '<tr>' '<td style="vertical-align:top">' INTO
ls_html. APPEND ls_html TO ct_html. PERFORM html_add_textinputnodiv
USING it_ti CHANGING ct_html. CONCATENATE '</td>' '</tr>' '<tr>'
'<td>&#160;</td>' '</tr>' '<tr>' '<td style="vertical-align:top">' INTO
ls_html. APPEND ls_html TO ct_html. PERFORM html_add_box_textinputnodiv
USING i_subbox_title it_subbox_ti CHANGING ct_html. APPEND
'</td></tr></table>' TO ct_html. PERFORM html_add_div_end CHANGING
ct_html. ENDFORM. FORM html_add_textinput_subboxes USING it_ti TYPE
it_textinput value(i_subbox1_title) value(i_subbox1_name) it_subbox1
TYPE it_access value(i_subbox2_title) it_subbox2 TYPE it_textinput
value(i_subbox3_title) it_subbox3 TYPE it_textinput value(i_id)
value(i_on) CHANGING ct_html TYPE it_string. DATA: ls_html TYPE string.
PERFORM html_add_div_begin USING i_id i_on CHANGING ct_html.
CONCATENATE '<table>' '<tr>' '<td style="vertical-align:top">' INTO
ls_html. APPEND ls_html TO ct_html. PERFORM html_add_textinputnodiv
USING it_ti CHANGING ct_html. CONCATENATE '</td>' '</tr>' '<tr>'
'<td>&#160;</td>' '</tr>' '<tr>' '<td style="vertical-align:top">' INTO
ls_html. APPEND ls_html TO ct_html. PERFORM
html_add_box_radiobuttonsnodiv USING i_subbox1_title i_subbox1_name
it_subbox1 CHANGING ct_html. CONCATENATE '</td>' '</tr>' '<tr>'
'<td>&#160;</td>' '</tr>' '<tr>' '<td style="vertical-align:top">' INTO
ls_html. APPEND ls_html TO ct_html. PERFORM html_add_box_textinputnodiv
USING i_subbox2_title it_subbox2 CHANGING ct_html. CONCATENATE '</td>'
'</tr>' '<tr>' '<td>&#160;</td>' '</tr>' '<tr>'
'<td style="vertical-align:top">' INTO ls_html. APPEND ls_html TO
ct_html. PERFORM html_add_box_textinputnodiv USING i_subbox3_title
it_subbox3 CHANGING ct_html. APPEND '</td></tr></table>' TO ct_html.
PERFORM html_add_div_end CHANGING ct_html. ENDFORM. FORM
html_add_transaction USING is_tran TYPE st_transaction it_auth_value
TYPE ANY TABLE it_defval_for TYPE it_textinput it_gui_support TYPE
it_textinput it_defval TYPE ANY TABLE value(i_id) value(i_on) CHANGING
ct_html TYPE it_string. DATA: ls_html TYPE string. PERFORM
html_add_div_begin USING i_id i_on CHANGING ct_html. CONCATENATE
'<table>' '<tr>' '<td>' '<table>' '<tr>'
'<td class="titleTableText" colspan="2">' txt_transaction_text '</td>'
'<td class="titleTableDescr" colspan="4">' is_tran-ttext '</td>'
'</tr>' INTO ls_html. APPEND ls_html TO ct_html. IF is_tran-ttype =
gc_tcode_dialog. CONCATENATE '<tr>'
'<td class="titleTableText" colspan="2">' txt_program '</td>'
'<td class="titleTableDescr" colspan="4">' is_tran-pgmna '</td>'
'<td>&#160;</td>' '<td>&#160;</td>' '</tr>' '<tr>'
'<td class="titleTableText" colspan="2">' txt_selection_screen '</td>'
'<td class="titleTableDescr" colspan="2">' is_tran-dypno '</td>'
'<td>&#160;</td>' '<td>&#160;</td>' '</tr>' '<tr>'
'<td class="titleTableText" colspan="2">' txt_authorization_object___1
'</td>' '<td class="titleTableDescr" colspan="2">' is_tran-objct
'</td>' '<td>&#160;</td>' '<td>&#160;</td>' '</tr>' '<tr>'
'<td>&#160;</td>' '<td>&#160;</td>' '<td colspan="4">' INTO ls_html.
APPEND ls_html TO ct_html. PERFORM html_add_tablenodiv USING
'TRAN_AUTHV' it_auth_value it_auth_value CHANGING ct_html. CONCATENATE
'</td>' '</tr>' '<tr>' '<td>&#160;</td>' '<td>&#160;</td>'
'<td>&#160;</td>' '<td>&#160;</td>' '<td>&#160;</td>' '<td>&#160;</td>'
'</tr>' '<tr>' '<td>' '<input ' INTO ls_html. IF is_tran-trans_var =
abap_true. CONCATENATE ls_html ' checked="checked"' INTO ls_html.
ENDIF. CONCATENATE ls_html ' class="innerTableFlag"'
' disabled="disabled"' ' type="checkbox"' ' value="transvar"/>' '</td>'
'<td colspan="5">' '<span>' txt_maintenance_of_standard_tr '</span>'
'</td>' '</tr>' INTO ls_html. APPEND ls_html TO ct_html. ENDIF. IF
is_tran-ttype = gc_tcode_report. CONCATENATE '<tr>'
'<td class="titleTableText" colspan="2">' txt_program '</td>'
'<td class="titleTableDescr" colspan="4">' is_tran-pgmna '</td>'
'<td>&#160;</td>' '<td>&#160;</td>' '</tr>' '<tr>'
'<td class="titleTableText" colspan="2">' txt_selection_screen '</td>'
'<td class="titleTableDescr" colspan="2">' is_tran-dypno '</td>'
'<td>&#160;</td>' '<td>&#160;</td>' '</tr>' '<tr>'
'<td class="titleTableText" colspan="2">' txt_start_with_variant
'</td>' '<td class="titleTableDescr" colspan="2">' is_tran-repo_vari
'</td>' '<td>&#160;</td>' '<td>&#160;</td>' '</tr>' '<tr>'
'<td class="titleTableText" colspan="2">' txt_authorization_object___1
'</td>' '<td class="titleTableDescr" colspan="2">' is_tran-objct
'</td>' '<td>&#160;</td>' '<td>&#160;</td>' '</tr>' '<tr>'
'<td>&#160;</td>' '<td>&#160;</td>' '<td colspan="4">' INTO ls_html.
APPEND ls_html TO ct_html. PERFORM html_add_tablenodiv USING
'TRAN_AUTHV' it_auth_value it_auth_value CHANGING ct_html. CONCATENATE
'</td>' '</tr>' INTO ls_html. APPEND ls_html TO ct_html. ENDIF. IF
is_tran-ttype = gc_tcode_object. CONCATENATE '<tr>' '<td>' '<input '
INTO ls_html. IF is_tran-trframe = abap_true. CONCATENATE ls_html
' checked="checked"' INTO ls_html. ENDIF. CONCATENATE ls_html
' class="innerTableFlag"' ' disabled="disabled"' ' type="checkbox"'
' value="trframe"/>' '</td>' '<td colspan="2">' '<span>'
txt_oo_transaction_model '</span>' '</td>' '<td>&#160;</td>'
'<td>&#160;</td>' '<td>&#160;</td>' '</tr>'
'<tr><td colspan="6">&#160;</td></tr>' '<tr>'
'<td class="titleTableText" colspan="2">' txt_class_name '</td>'
'<td class="titleTableDescr" colspan="2">' is_tran-classname '</td>'
'<td>&#160;</td>' '<td>&#160;</td>' '</tr>' '<tr>'
'<td class="titleTableText" colspan="2">' txt_method '</td>'
'<td class="titleTableDescr" colspan="4">' is_tran-method '</td>'
'</tr>' '<tr>' '<td>' '<input ' INTO ls_html. IF is_tran-local =
abap_true. CONCATENATE ls_html ' checked="checked"' INTO ls_html.
ENDIF. CONCATENATE ls_html ' class="innerTableFlag"'
' disabled="disabled"' ' type="checkbox"' ' value="local"/>' '</td>'
'<td>' '<span>' txt_local_in_program '</span>' '</td>'
'<td class="titleTableDescr" colspan="2">' is_tran-pgmna '</td>'
'<td>&#160;</td>' '<td>&#160;</td>' '</tr>' '<tr>' '<td>&#160;</td>'
'<td>&#160;</td>' '<td>&#160;</td>' '<td>&#160;</td>' '<td>&#160;</td>'
'<td>&#160;</td>' '</tr>' '<tr>'
'<td class="titleTableText" colspan="2">' txt_authorization_object___1
'</td>' '<td class="titleTableDescr" colspan="2">' is_tran-objct
'</td>' '<td>&#160;</td>' '<td>&#160;</td>' '</tr>' '<tr>'
'<td>&#160;</td>' '<td>&#160;</td>' '<td colspan="4">' INTO ls_html.
APPEND ls_html TO ct_html. PERFORM html_add_tablenodiv USING
'TRAN_AUTHV' it_auth_value it_auth_value CHANGING ct_html. CONCATENATE
'</td>' '</tr>' INTO ls_html. APPEND ls_html TO ct_html. ENDIF. IF
is_tran-ttype = gc_tcode_variant. CONCATENATE '<tr>'
'<td class="titleTableText" colspan="2">' txt_transaction '</td>'
'<td class="titleTableDescr" colspan="2">' is_tran-def_call_tcode
'</td>' '<td>&#160;</td>' '<td>&#160;</td>' '</tr>' '<tr>'
'<td class="titleTableText" colspan="2">' txt_transaction_variant
'</td>' '<td class="titleTableDescr" colspan="2">' is_tran-variant
'</td>' '<td>&#160;</td>' '<td>&#160;</td>' '</tr>' '<tr>'
'<td>&#160;</td>' '<td>&#160;</td>' '<td>' '<input ' INTO ls_html. IF
is_tran-ind_vari = abap_true. CONCATENATE ls_html ' checked="checked"'
INTO ls_html. ENDIF. CONCATENATE ls_html ' class="innerTableFlag"'
' disabled="disabled"' ' type="checkbox"' ' value="cross"/>' '</td>'
'<td colspan="3">' txt_cross_client '</td>' '</tr>' INTO ls_html.
APPEND ls_html TO ct_html. ENDIF. CONCATENATE '</table>' '</td>'
'</tr>' INTO ls_html. APPEND ls_html TO ct_html. IF is_tran-ttype =
gc_tcode_parameter. CONCATENATE '<tr><td>&#160;</td></tr>' '<tr>'
'<td>' INTO ls_html. APPEND ls_html TO ct_html. PERFORM
html_add_box_textinputnodiv USING txt_default_values_for it_defval_for
CHANGING ct_html. CONCATENATE '</td>' '</tr>' INTO ls_html. APPEND
ls_html TO ct_html. ENDIF. CONCATENATE '<tr><td>&#160;</td></tr>'
'<tr>' '<td>' INTO ls_html. APPEND ls_html TO ct_html. PERFORM
html_add_box_begin USING txt_classification '1' CHANGING ct_html.
APPEND '<table class="titleTable">' TO ct_html. IF is_tran-ttype =
gc_tcode_parameter OR is_tran-ttype = gc_tcode_variant. CONCATENATE
'<tr>' '<td>' '<table class="titleTable">' '<tr>' '<td>' '<input ' INTO
ls_html. IF is_tran-clf_inhe = abap_true. CONCATENATE ls_html
' checked="checked"' INTO ls_html. ENDIF. CONCATENATE ls_html
' class="innerTableFlag"' ' disabled="disabled"' ' type="checkbox"'
' value="inherit"/>' '</td>' '<td>' '<span>' txt_inherit_gui_attributes
'</span>' '</td>' '</tr>' '</table>' '</td>' '</tr>' INTO ls_html.
APPEND ls_html TO ct_html. ENDIF. CONCATENATE '<tr>' '<td>' INTO
ls_html. APPEND ls_html TO ct_html. PERFORM html_add_box_begin USING
txt_transaction_classification '1' CHANGING ct_html. CONCATENATE
'<table class="titleTable">' '<tr>' '<td>' '<input ' INTO ls_html. IF
is_tran-clf_profi = abap_true. CONCATENATE ls_html ' checked="checked"'
INTO ls_html. ENDIF. CONCATENATE ls_html ' class="radio"'
' disabled="disabled"' ' name="tranclass"' ' type="radio"'
' value="profi"/>' '</td>' '<td colspan="2">' '<span>'
txt_professional_user_transact '</span>' '</td>'
'<td colspan="3">&#160;</td>' '</tr>' '<tr>' '<td>' '<input ' INTO
ls_html. IF is_tran-clf_ewt = abap_true. CONCATENATE ls_html
' checked="checked"' INTO ls_html. ENDIF. CONCATENATE ls_html
' class="radio"' ' disabled="disabled"' ' name="tranclass"'
' type="radio"' ' value="profi"/>' '</td>' '<td colspan="2">' '<span>'
txt_easy_web_transaction '</span>' '</td>' '<td>&#160;</td>'
'<td class="titleTableText">' txt_service '</td>'
'<td class="titleTableDescr">' is_tran-clf_service '</td>' '</tr>'
'<tr>' '<td>&#160;</td>' '<td>' '<input ' INTO ls_html. IF
is_tran-clf_pervas = abap_true. CONCATENATE ls_html
' checked="checked"' INTO ls_html. ENDIF. CONCATENATE ls_html
' class="innerTableFlag"' ' disabled="disabled"' ' type="checkbox"'
' value="pervasive"/>' '</td>' '<td><span>' txt_pervasive_enabled
'</span></td>' '<td>&#160;</td>' '<td>&#160;</td>' '<td>&#160;</td>'
'</tr>' '</table>' INTO ls_html. APPEND ls_html TO ct_html. PERFORM
html_add_box_end CHANGING ct_html. CONCATENATE '</td>' '</tr>' '<tr>'
'<td>' INTO ls_html. APPEND ls_html TO ct_html. PERFORM
html_add_box_textinputnodiv USING txt_gui_support it_gui_support
CHANGING ct_html. CONCATENATE '</td>' '</tr>' '</table>' INTO ls_html.
APPEND ls_html TO ct_html. PERFORM html_add_box_end CHANGING ct_html.
CONCATENATE '</td>' '</tr>' INTO ls_html. APPEND ls_html TO ct_html. IF
is_tran-ttype = gc_tcode_parameter. CONCATENATE
'<tr><td>&#160;</td></tr>' '<tr>' '<td>' INTO ls_html. APPEND ls_html
TO ct_html. PERFORM html_add_box_begin USING txt_default_values '1'
CHANGING ct_html. CONCATENATE '<table>' '<tr>' '<td>' INTO ls_html.
APPEND ls_html TO ct_html. PERFORM html_add_tablenodiv USING
'TRAN_DEFVA' it_defval it_defval CHANGING ct_html. CONCATENATE '</td>'
'</tr>' '</table>' INTO ls_html. APPEND ls_html TO ct_html. PERFORM
html_add_box_end CHANGING ct_html. CONCATENATE '</td>' '</tr>' INTO
ls_html. APPEND ls_html TO ct_html. ENDIF. APPEND '</table>' TO
ct_html. PERFORM html_add_div_end CHANGING ct_html. ENDFORM. FORM
html_add_value_range USING it_value_range TYPE it_value_range
value(i_id) value(i_on) CHANGING ct_html TYPE it_string. DATA: ls_html
TYPE string, l_ddtext TYPE char255, l_domvalue_h TYPE char255,
l_domvalue_l TYPE char255. FIELD-SYMBOLS: <ls_value_range> TYPE
st_value_range. PERFORM html_add_div_begin USING i_id i_on CHANGING
ct_html. CONCATENATE '<table class="titleTable">' '<tr>' '<td>'
'<table border="0" cellpadding="0" cellspacing="0"'
' class="innerTable">' '<tr>' '<th class="innerTableTHtop" colspan="2"'
' style="text-align:left">' txt_single_vars '</th>' '</tr>' '<tr>'
'<th class="innerTableTH" style="text-align:left">' txt_fix_val '</th>'
'<th class="innerTableTH" style="text-align:left">'
txt_short_description___1 '</th>' '</tr>' INTO ls_html. APPEND ls_html
TO ct_html. LOOP AT it_value_range ASSIGNING <ls_value_range> WHERE
domvalue_h = space. WRITE <ls_value_range>-ddtext TO l_ddtext. WRITE
<ls_value_range>-domvalue_l TO l_domvalue_l. CONCATENATE '<tr>'
'<td class="innerTableTD">' l_domvalue_l '</td>'
'<td class="innerTableTD">' l_ddtext '</td>' '</tr>' INTO ls_html.
APPEND ls_html TO ct_html. ENDLOOP. CONCATENATE '</table>' '</td>'
'</tr>' '<tr><td>&#160;</td></tr>' '<tr>' '<td>'
'<table border="0" cellpadding="0" cellspacing="0"'
' class="innerTable">' '<tr>' '<th class="innerTableTHtop" colspan="3"'
' style="text-align:left">' txt_intervals '</th>' '</tr>' '<tr>'
'<th class="innerTableTH" style="text-align:left">' txt_lower_limit
'</th>' '<th class="innerTableTH" style="text-align:left">'
txt_upperlimit '</th>'
'<th class="innerTableTH" style="text-align:left">'
txt_short_description___1 '</th>' '</tr>' INTO ls_html. APPEND ls_html
TO ct_html. LOOP AT it_value_range ASSIGNING <ls_value_range> WHERE
domvalue_h <> space. WRITE <ls_value_range>-ddtext TO l_ddtext. WRITE
<ls_value_range>-domvalue_h TO l_domvalue_h. WRITE
<ls_value_range>-domvalue_l TO l_domvalue_l. CONCATENATE '<tr>'
'<td class="innerTableTD">' l_domvalue_l '</td>'
'<td class="innerTableTD">' l_domvalue_h '</td>'
'<td class="innerTableTD">' l_ddtext '</td>' '</tr>' INTO ls_html.
APPEND ls_html TO ct_html. ENDLOOP. CONCATENATE '</table>' '</td>'
'</tr>' '</table>' INTO ls_html. APPEND ls_html TO ct_html. PERFORM
html_add_div_end CHANGING ct_html. ENDFORM. FORM html_base. PERFORM
html_base_about. PERFORM html_base_gpl. PERFORM html_base_index.
PERFORM html_base_default_main. ENDFORM. FORM html_base_about. DATA:
ls_html TYPE string, lt_html TYPE it_string, l_laiso TYPE laiso,
l_sptxt TYPE sptxt, l_gpl TYPE string, l_link TYPE string. PERFORM
get_spras USING sy-langu l_laiso l_sptxt. l_gpl =
txt_product_under_gpl. CONCATENATE '<a href="GPL.' gc_extension_htm '"'
' onclick="parent.openDropDownLink(''gpl'');return false">'
'GNU General Public License' '</a>' INTO l_link. PERFORM replace_single
USING '#GPL#' l_link CHANGING l_gpl. CONCATENATE
'<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"'
' "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">' INTO ls_html.
APPEND ls_html TO lt_html. CONCATENATE
'<html xmlns="http://www.w3.org/1999/xhtml"' ' xml:lang="' l_laiso
'" lang="' l_laiso '">' '<head>' '<title>'
'&#x53;&#x6f;&#x66;&#x74;&#x43;&#x6f;&#x70;&#x79;' '</title>' INTO
ls_html. APPEND ls_html TO lt_html. PERFORM html_add_meta CHANGING
lt_html. APPEND '<script type="text/javascript"><!--' TO lt_html.
CONCATENATE 'if(top==self){' 'window.location.href="../index.'
gc_extension_htm '";' '}' INTO ls_html. APPEND ls_html TO lt_html.
APPEND '//--></script>' TO lt_html. APPEND '<style type="text/css">' TO
lt_html. CONCATENATE 'h1 {' 'color:black;' 'font-family:arial;'
'font-size:30px;' 'font-style:normal;' 'font-weight:bold;'
'text-decoration:none;' '}' 'table {' 'width:100%;' '}' 'td {'
'font-family:arial;' 'font-size:12px;' 'vertical-align:middle;'
'width:100%;' '}' INTO ls_html. APPEND ls_html TO lt_html. CONCATENATE
'</style>' '</head>' '<body>' '<table>' '<tr>' '<td>' '<h1>'
'&#x53;&#x6f;&#x66;&#x74;&#x43;&#x6f;&#x70;&#x79;' '</h1>' '</td>'
'</tr>' '<tr>' '<td>' txt_version ':&#160;' gc_version '</td>' '</tr>'
'<tr>' '<td>' '&#160;' '</td>' '</tr>' '<tr>' '<td>' '&#xa9;2008-'
gc_version+0(4) ' globalBIT, LLC.' '<br/>' txt_all_rights_reserved
'</td>' '</tr>' '<tr>' '<td>' '&#160;' '</td>' '</tr>' '<tr>' '<td>'
l_gpl '</td>' '</tr>' '</table>' '</body>' '</html>' INTO ls_html.
APPEND ls_html TO lt_html. PERFORM download USING lt_html 'MENU' 'HELP'
'about' gc_extension_htm abap_false. ENDFORM. FORM
html_base_default_main. DATA: ls_html TYPE string, lt_html TYPE
it_string, l_laiso TYPE laiso, l_sptxt TYPE sptxt. PERFORM get_spras
USING sy-langu l_laiso l_sptxt. CONCATENATE
'<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"'
' "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">' INTO ls_html.
APPEND ls_html TO lt_html. CONCATENATE
'<html xmlns="http://www.w3.org/1999/xhtml"' ' xml:lang="' l_laiso
'" lang="' l_laiso '">' '<head>' '<title>'
'&#x53;&#x6f;&#x66;&#x74;&#x43;&#x6f;&#x70;&#x79;' '</title>' INTO
ls_html. APPEND ls_html TO lt_html. PERFORM html_add_meta CHANGING
lt_html. APPEND '<script type="text/javascript"><!--' TO lt_html.
CONCATENATE 'if(top==self){' 'window.location.href="index.'
gc_extension_htm '";' '}' INTO ls_html. APPEND ls_html TO lt_html.
APPEND '//--></script>' TO lt_html. APPEND '<style type="text/css">' TO
lt_html. CONCATENATE 'h1{' 'color:black;' 'font-family:arial;'
'font-size:30px;' 'font-style:normal;' 'font-weight:bold;'
'text-decoration:none;' '}' 'table{' 'height:100%;' 'width:100%;' '}'
'td{' 'height:100%;' 'text-align:center;' 'vertical-align:middle;'
'width:100%;' '}' INTO ls_html. APPEND ls_html TO lt_html. CONCATENATE
'</style>' '</head>' '<body>' '<table>' '<tr>' '<td>' '<h1>'
'&#x53;&#x6f;&#x66;&#x74;&#x43;&#x6f;&#x70;&#x79;' '</h1>' '</td>'
'</tr>' '</table>' '</body>' '</html>' INTO ls_html. APPEND ls_html TO
lt_html. PERFORM download USING lt_html space space 'default'
gc_extension_htm abap_false. ENDFORM. FORM html_base_gpl. DATA: l_title
TYPE string, lt_html TYPE it_string. PERFORM html_main_popupheader
USING 'GNU General Public License' CHANGING lt_html. PERFORM
lic_gpl_html CHANGING l_title lt_html. PERFORM html_main_popupfooter
CHANGING lt_html. PERFORM download USING lt_html 'MENU' 'HELP' 'GPL'
gc_extension_htm abap_false. ENDFORM. FORM html_base_index. DATA:
ls_html TYPE string, lt_html TYPE it_string, lt_prop TYPE it_prop,
l_laiso TYPE laiso, l_sptxt TYPE sptxt, l_height TYPE string, l_width
TYPE string, l_props TYPE string, l_uri_props TYPE string. CONSTANTS:
l_c_info_height TYPE i VALUE 400, l_c_info_width TYPE i VALUE 600.
FIELD-SYMBOLS: <ls_prop> TYPE st_prop. PERFORM get_spras USING sy-langu
l_laiso l_sptxt. CONCATENATE
'<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"'
' "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">' INTO
ls_html. APPEND ls_html TO lt_html. CONCATENATE
'<html xmlns="http://www.w3.org/1999/xhtml"' ' xml:lang="' l_laiso
'" lang="' l_laiso '">' '<head>' '<title>'
'&#x53;&#x6f;&#x66;&#x74;&#x43;&#x6f;&#x70;&#x79;' '</title>' INTO
ls_html. APPEND ls_html TO lt_html. PERFORM html_add_meta CHANGING
lt_html. APPEND '<script type="text/javascript">' TO lt_html. APPEND
'<!--' TO lt_html. CONCATENATE 'var popupCallbacks=new Array();'
'var popupClicked="";' 'var popupMouseX=0;' 'var popupMouseY=0;'
'var popupValues=new Array();' 'var resizeMouseX=0;' INTO ls_html.
APPEND ls_html TO lt_html. PERFORM get_props CHANGING lt_prop. ls_html
= 'var props=new Array(new Array("page","index")'. l_props =
'page=index'. LOOP AT lt_prop ASSIGNING <ls_prop>. CONCATENATE ls_html
',new Array("' <ls_prop>-name '","' <ls_prop>-value '")' INTO ls_html.
CONCATENATE l_props '&amp;' <ls_prop>-name '=' <ls_prop>-value INTO
l_props. ENDLOOP. l_uri_props = l_props. PERFORM encode_uri CHANGING
l_uri_props. CONCATENATE ls_html ');' INTO ls_html. APPEND ls_html TO
lt_html. CONCATENATE 'function addFrame() {'
'var mySearch=window.location.search;' 'if(mySearch.length>10){'
'if(mySearch.indexOf("?")>=0){' 'mySearch=mySearch.substring('
'mySearch.indexOf("?")+1,' 'mySearch.length' ');' '}'
'var myProps=mySearch.split("&");' 'var myPgmid="";' 'var myObject="";'
'var myObjName="";' 'for(var i=0;i<myProps.length;i++){'
'var myProp=myProps[i].split("=");' 'switch(myProp[0]){'
'case "pgmid":' 'myPgmid=myProp[1];' 'break;' 'case "object":'
'myObject=myProp[1];' 'break;' 'case "obj_name":'
'myObjName=myProp[1];' 'break;' '}' '}'
'showObject(myPgmid+"_"+myObject, myObjName);' '}' 'else{'
'showObject();' '}' '}' INTO ls_html. APPEND ls_html TO lt_html.
CONCATENATE 'function closeDropDownMenus(){'
'var elem=document.getElementById("tm_help");' 'if(elem) {'
'elem.style.display="none";' 'elem.style.visibility="hidden";' '}'
'var elem=document.getElementById("tm_menu");' 'if(elem) {'
'elem.style.display="none";' 'elem.style.visibility="hidden";' '}'
'elem=document.getElementById("tm_system");' 'if(elem) {'
'elem.style.display="none";' 'elem.style.visibility="hidden";' '}' '}'
INTO ls_html. APPEND ls_html TO lt_html. CONCATENATE
'function findLinkElem(objID, objName){'
'var aElems=document.getElementsByClassName("leafLink");'
'for(var i=0; i<aElems.length; ++i){'
'if(aElems[i].href.endsWith(objID+"/"+objName+".htm")){'
'return aElems[i];' '}' '}' 'return null;' '}' INTO ls_html. APPEND
ls_html TO lt_html. CONCATENATE 'function getLinks(id) {' 'var links;'
'switch(id){' 'case "tm_menu":' 'links=new Array(' 'new Array('
'"first_page",' '"menu_first_page",' '"' txt_first_page '",' '"",""'
')' ');' 'break;' 'case "tm_system":' 'links=new Array(' 'new Array('
'"status",' '"system_status",' '"' txt_status '",' '"",""' '),'
'new Array(' '"kernel",' '"system_kernel",' '"'
txt_kernel_information___1 '",' '"",""' '),' 'new Array('
'"component",' '"system_component",' '"' txt_component_information '",'
'"",""' ')' ');' 'break;' 'case "tm_help":' 'links=new Array('
'new Array(' '"about",' '"help_about",' '"' txt_about '",' '"",""' '),'
'new Array(' '"updates",' '"popup",' '"' txt_updates '",'
'"http://www.globalbit.org/sc/updates?' 'langu=' l_laiso '&#38;scver='
gc_version '",' '"' txt_updates '"' '),' 'new Array(' '"globalbit",'
'"newWindow",' '"globalBIT",' '"http://www.globalbit.org",""' ')' ');'
'break;' 'default:' 'links=new Array();' '}' 'return links;' '}' INTO
ls_html. APPEND ls_html TO lt_html. CONCATENATE 'function getProps(){'
'return props;' '}' INTO ls_html. APPEND ls_html TO lt_html.
CONCATENATE 'function init(){' 'addFrame();' 'makeFrameSize();' '}'
INTO ls_html. APPEND ls_html TO lt_html. CONCATENATE
'function makeFrameSize(){'
'var capElem=document.getElementById("cap");'
'var contentElem=document.getElementById("content");'
'var contentDivElem=document.getElementById("contentDiv");'
'var linksElem=document.getElementById("links");'
'var scElem=document.getElementById("sc");'
'var scResizerElem=document.getElementById("scResizer");'
'var winHeight=window.innerHeight;' 'var winWidth=window.innerWidth;'
'if(winHeight<4){winHeight=4;}' 'if(winWidth<4){winWidth=4;}'
'var capHeight=capElem.offsetHeight;'
'var linksWidth=linksElem.offsetWidth;' 'if(linksWidth+2>winWidth){'
'linksWidth=winWidth-2;' 'linksElem.style.width=winWidth-2 + "px";'
'scResizerElem.style.left=winWidth-4 + "px";' '}'
'var scHeightNew=winHeight-capHeight;'
'var contentWidthNew=winWidth-linksWidth;'
'scResizerElem.style.top=capHeight+"px";'
'scElem.style.height=scHeightNew+"px";'
'contentDivElem.style.height=scHeightNew+"px";'
'contentElem.style.height=scHeightNew+"px";'
'linksElem.style.height=scHeightNew+"px";'
'scResizerElem.style.height=scHeightNew+"px";'
'scElem.style.width=winWidth+"px";'
'contentDivElem.style.width=contentWidthNew+"px";'
'contentElem.style.width=contentWidthNew+"px";' '}' INTO ls_html.
APPEND ls_html TO lt_html. CONCATENATE
'function openDropDownLink(elemId,url,title){' 'closeDropDownMenus();'
'switch(elemId) {' 'case "help_about":' 'showMenuObject('
'"MENU_HELP/about.' gc_extension_htm '",' '"' txt_about '"' ');'
'break;' 'case "menu_first_page":' 'showObject();' 'break;'
'case "gpl":' 'showMenuObject(' '"MENU_HELP/GPL.' gc_extension_htm '",'
'"GNU General Public License"' ');' 'break;' 'case "newWindow":'
'window.open(url);' 'break;' 'case "popup":'
'showMenuObject(url,title);' 'break;' 'case "system_component":'
'showMenuObject(' '"MENU_SYSTEM/COMPONENT.' gc_extension_htm '",' '"'
txt_system ':&#160;' txt_component_information '"' ');' 'break;'
'case "system_kernel":' 'showMenuObject(' '"MENU_SYSTEM/KERNEL.'
gc_extension_htm '",' '"' txt_system ':&#160;'
txt_kernel_information___1 '"' ');' 'break;' 'case "system_status":'
'showMenuObject(' '"MENU_SYSTEM/STATUS.' gc_extension_htm '",' '"'
txt_system ':&#160;' txt_status '"' ');' 'break;' '}' '}' INTO ls_html.
APPEND ls_html TO lt_html. CONCATENATE 'function postResizeSc(){'
'resizeMouseX=0;' 'document.onmousemove=null;'
'document.onmouseup=null;'
'var linksElem=document.getElementById("links");'
'var scResizerElem=document.getElementById("scResizer");'
'scResizerElem.style.width="4px";'
'scResizerElem.style.left = linksElem.offsetWidth-2 + "px";' '}' INTO
ls_html. APPEND ls_html TO lt_html. CONCATENATE
'function preResizeSc(event){' 'if(event){'
'resizeMouseX=event.layerX;' '}'
'var scResizerElem=document.getElementById("scResizer");'
'scResizerElem.style.left="0px";'
'scResizerElem.style.width=window.innerWidth+"px";'
'document.onmousemove=resizeSc;' 'document.onmouseout=postResizeSc;'
'document.onmouseup=postResizeSc;' '}' INTO ls_html. APPEND ls_html TO
lt_html. CONCATENATE 'function rebuildMenu(id,links){'
'var elem = document.getElementById(id);' 'if(elem == null){' 'return;'
'}' 'var content;' 'for(var i=0; i<links.length; i++){' 'content += '''
'<tr>' '<td class="topmenu_dropdown_td">'
'<a class="topmenu_dropdown_link"' ' href="#" onclick="'
'openDropDownLink(''+"''"+links[i][1]+"'',''"'
'+links[i][3]+"'',''"+links[i][4]+"''"+'');' 'return false">'
'''+links[i][2]+''' '<''+''/td>' '<''+''/tr>'';' '}'
'elem.getElementsByTagName("table")[0].innerHTML' ' = content;' '}'
INTO ls_html. APPEND ls_html TO lt_html. CONCATENATE
'function resizeSc(event){' 'var posX=event.pageX-resizeMouseX;'
'if(posX<2){' 'posX=2;' '}' 'if(posX>window.innerWidth-2){'
'posX=window.innerWidth-2;' '}'
'var contentWidthNew=window.innerWidth-posX;'
'var contentElem=document.getElementById("content");'
'var contentDivElem=document.getElementById("contentDiv");'
'var linksElem=document.getElementById("links");'
'linksElem.style.width=posX+"px";'
'contentDivElem.style.width=contentWidthNew+"px";'
'contentElem.style.width=contentWidthNew+"px";' '}' INTO ls_html.
APPEND ls_html TO lt_html. CONCATENATE
'function setObjectTitle(objID, objName){' 'var objIDarr;'
'var pgmid="";' 'var object="";' 'var title="SoftCopy";' 'var name="";'
'var ppID="";' 'if(objID!=null){' 'objIDarr=objID.split("_");'
'if(objIDarr.length>1){' 'pgmid=objIDarr[0];' 'object=objIDarr[1];'
'aElem=findLinkElem(objID, objName);' 'if(aElem!=null){'
'name=aElem.innerHTML;' '}' '}' '}' 'switch(pgmid){' 'case "R3TR":'
'switch(object){' 'case "CLAS":' 'title="' tpt_seo_clas '";' 'break;'
'case "DOMA":' 'title="' tpt_ddic_doma '";' 'break;' 'case "DTEL":'
'title="' tpt_ddic_dtel '";' 'break;' 'case "ENQU":' 'title="'
tpt_ddic_enqu '";' 'break;' 'case "FUGR":'
'ppID=aElem.parentElement.parentElement.id;' 'if(ppID="R3TR_FUGR"){'
'title="' tpt_fugr_fugr '";' '}'
'else if(ppID.startsWith("fugr_fuba")){' 'title="' tpt_fugr_fuba '";'
'}' 'else if(ppID.startsWith("fugr_scr")){' 'title="' tpt_fugr_scr '";'
'}' 'else if(ppID.startsWith("fugr_incl")){' 'title="' tpt_fugr_incl
'";' '}' 'break;' 'case "INTF":' 'title="' tpt_seo_intf '";' 'break;'
'case "MSAG":' 'title="' tpt_msag '";' 'break;' 'case "PARA":'
'title="' tpt_para '";' 'break;' 'case "PROG":'
'ppID=aElem.parentElement.parentElement.id;' 'if(ppID="prog_1"){'
'title="' tpt_prog_repo '";' '}' 'else if(ppID="prog_I"){' 'title="'
tpt_prog_incl '";' '}' 'break;' 'case "SHLP":' 'title="' tpt_ddic_shlp
'";' 'break;' 'case "SUSO":' 'title="' tpt_tobj '";' 'break;'
'case "TABL":' 'ppID=aElem.parentElement.parentElement.id;'
'if(ppID="R3TR_TABL_2"){' 'title="' tpt_ddic_tabl '";' '}'
'else if(ppID="R3TR_TABL_VIEWAPPEND"){' 'title="' tpt_ddic_stru '";'
'}' 'break;' 'case "TRAN":' 'title="' tpt_tran '";'
'if(aElem.id==null || aElem.id==""){' '}'
'else if(aElem.id.startsWith("R3TR_TRAN_' gc_tcode_dialog '")){'
'title="' tpt_tran_dialog '";' '}'
'else if(aElem.id.startsWith("R3TR_TRAN_' gc_tcode_object '")){'
'title="' tpt_tran_obj '";' '}'
'else if(aElem.id.startsWith("R3TR_TRAN_' gc_tcode_parameter '")){'
'title="' tpt_tran_param '";' '}'
'else if(aElem.id.startsWith("R3TR_TRAN_' gc_tcode_report '")){'
'title="' tpt_tran_repo '";' '}'
'else if(aElem.id.startsWith("R3TR_TRAN_' gc_tcode_variant '")){'
'title="' tpt_tran_vari '";' '}' 'break;' 'case "TTYP":' 'title="'
tpt_ddic_ttyp '";' 'break;' 'case "TYPE":' 'title="' tpt_ddic_type '";'
'break;' 'case "VIEW":' 'title="' tpt_ddic_view '";' 'break;'
'case "WAPA":' 'title="' tpt_o2_wapa '";'
'if(aElem.id==null || aElem.id==""){' '}'
'else if(aElem.id.startsWith("bsp")){' 'title="' txt_page '";' '}'
'else if(aElem.id.startsWith("ctrl")){' 'title="' tpt_o2_wapa_ctrl '";'
'}' 'else if(aElem.id.startsWith("incl")){' 'title="' txt_page '";' '}'
'else if(aElem.id.startsWith("mime")){' 'title="' tpt_o2_wapa_page '";'
'}' 'else if(aElem.id.startsWith("view")){' 'title="' tpt_o2_wapa_page
'";' '}' 'break;' 'case "WTAG":' 'title="' tpt_o2_wtag '";' 'break;'
'case "XSLT":' 'title="' tpt_o2_xslt '";' 'break;' '}' 'break;' '}'
'setTitle(title.replace("#NAME_VALUE#", name));' '}' INTO ls_html.
APPEND ls_html TO lt_html. CONCATENATE 'function setTitle(theTitle){'
'closeDropDownMenus();' 'var elem;' 'var myCaption;' 'var myTitle;'
'myTitle="SoftCopy";' 'if(theTitle==null || theTitle==""){'
'myCaption = myTitle;' '}' 'else {' 'myCaption=theTitle;'
'myTitle+=" - "+theTitle;' '}' 'document.title=myTitle;'
'elem=document.getElementById("title");' 'elem.innerHTML=myCaption;'
'}' INTO ls_html. APPEND ls_html TO lt_html. l_height =
l_c_info_height. CONDENSE l_height. l_width = l_c_info_width. CONDENSE
l_width. CONCATENATE 'function showMenuObject(url, caption){'
'closeDropDownMenus();' 'var content=''<iframe frameborder="0"'
' height="' l_height '"' ' id="infoscroll" scrolling="auto"'
' src="''+url+''"' ' width="' l_width '"><''+''/iframe>'';'
'displayPopupLayer("info",caption,content);' '}' INTO ls_html. APPEND
ls_html TO lt_html. CONCATENATE
'function showObject(objID, objName, target, caption){'
'var src="default.htm";' 'if(objName!=null){'
'src=objID+"/"+objName+".htm";' '}' 'if(target=="POPUP"){'
'showMenuObject(src,caption);' '}' 'else{' 'var height=400;'
'var width=400;' 'var contentElem=document.getElementById("content");'
'if(contentElem){' 'height=contentElem.offsetHeight;'
'width=contentElem.offsetWidth;' '}'
'document.getElementById("contentDiv").innerHTML'
'=''<iframe class="content" frameborder="0" id="content"'
' name="content" scrolling="auto" src="''+src+''"'
' style="height:''+height+''px;width:''+width+''px">' '</iframe>'';'
'setObjectTitle(objID, objName);' '}' '}' INTO ls_html. APPEND ls_html
TO lt_html. CONCATENATE 'function toggleDropDown(elemId) {'
'var elem=document.getElementById(elemId);' 'if(elem==null){' 'return;'
'}' 'var isOpen=(elem.style.visibility=="visible");'
'closeDropDownMenus();' 'if(!isOpen) {' 'elem.style.top="19px";'
'elem.style.visibility="visible";' 'elem.style.display="block";' '}'
'}' INTO ls_html. APPEND ls_html TO lt_html. CONCATENATE
'function toggleVisibility(elemID){' 'try{' 'if(elemID==null)'
'return false;' 'elem=document.getElementById(elemID);'
'if(elem==null)' 'return false;' 'if(elem.style.visibility==null'
' || elem.style.visibility==""' ' || elem.style.visibility=="hidden"){'
'elem.style.visibility="visible";' 'elem.style.display="block";' '}'
'else{' 'elem.style.visibility="hidden";' 'elem.style.display="none";'
'}' '}' 'catch(e){}' '}' INTO ls_html. APPEND ls_html TO lt_html.
PERFORM html_base_popup_js CHANGING lt_html. APPEND '//-->' TO lt_html.
APPEND '</script>' TO lt_html. APPEND '<style type="text/css">' TO
lt_html. CONCATENATE 'body{' 'margin-left:0px;' 'margin-top:0px;'
'margin-right:0px;' 'margin-bottom:0px;' 'overflow:hidden;' '}'
'iframe{' 'margin-left:0px;' 'margin-top:0px;' 'margin-right:0px;'
'margin-bottom:0px;' '}' 'li{' 'color:black;' 'font-family:arial;'
'font-size:10px;' 'font-style:normal;' 'font-weight:normal;'
'text-decoration:none;' '}' 'ul{' 'margin-left:15px;'
'padding-left:0px;' '}' 'ul ul * ul{' 'display:none;'
'visibility:hidden;' '}' 'table{' 'border:0;' 'margin:0;' 'padding:0;'
'spacing:0;' '}' 'td{' 'border:0;' 'margin:0;' 'padding:0;'
'spacing:0;' '}' 'tr{' 'border:0;' 'margin:0;' 'padding:0;'
'spacing:0;' '}' '.cap{' 'border-bottom:1px solid #3a3d3a;'
'height:56px;' 'width:100%;' '}' '.content{' 'float:left' '}'
'.contentDiv{' 'float:left' '}' '.info{' 'color:#0000ff !important;'
'font-family:arial;' 'font-size:10px;' 'font-style:normal;'
'text-decoration:none;' 'vertical-align:top;' '}' '.leaf{' '}'
'.leafLink{' 'color:#666666 !important;' 'font-family:arial;'
'font-size:10px;' 'font-style:normal;' 'font-weight:normal;'
'text-decoration:none;' '}' '.node{' '}' '.nodeLink{' 'color:black;'
'font-family:arial;' 'font-size:10px;' 'font-style:normal;'
'font-weight:normal;' 'text-decoration:none;' '}' '.nodeLink:active{'
'color:darkred;' '}' '.nodeLink:focus{' 'color:darkred;' '}'
'.nodeLink:hover{' 'color:red' '}' '.nodeLink:link{' 'color:black;' '}'
'.nodeLink:visited{' 'color:black;' '}' '.links{' 'float:left;'
'height:400px;' 'margin-bottom:0px;' 'margin-left:0px;'
'margin-right:0px;' 'margin-top:0px;' 'overflow:scroll;'
'scrolling:auto;' 'width:200px;' '}' '.scResizer{' 'cursor:col-resize;'
'height:400px;' 'left:198px;' 'position:absolute;' 'top:57px;'
'user-select:none;' 'width:4px;' 'z-index:10;' '}' '.topmenu{'
'background-color:#102873;' 'border-bottom:1px solid #4a5973;'
'color:#9ca6c5;' 'font-family:arial;' 'font-size:12px;'
'font-style:normal;' 'font-weight:normal;' 'height:14px;'
'padding-left:10px;' 'text-align:left;' 'text-decoration:none;'
'vertical-align:middle;' '}' '.topmenu_dropdown{'
'border-bottom:1px solid #3a3d3a;' 'border-left:1px solid #a59e94;'
'border-right:1px solid #3a3d3a;' 'border-top:1px solid #a59e94;'
'display:none;' 'position:absolute;' 'visibility:hidden;' 'z-index:80;'
'}' '.topmenu_dropdown_tab{' 'border-bottom:1px solid #cecabd;'
'border-left:1px solid #ffffef;' 'border-right:1px solid #cecabd;'
'border-top:1px solid #cecabd;' '}' '.topmenu_dropdown_td{'
'background-color:#f7f3e6;' 'border:1px solid #f7f3e6;'
'color:#000000;' 'font-family:arial;' 'font-size:12px;'
'font-style:normal;' 'font-weight:normal;' 'height:16px;'
'padding-left:5px;' 'padding-right:5px;' 'text-align:left;'
'text-decoration:none;' 'vertical-align:middle;' '}'
'.topmenu_dropdown_td:hover{' 'background-color:#cecabd;'
'border-bottom:1px solid #ffffef;' 'border-left:1px solid #f7f3e6;'
'border-right:1px solid #c5c2b5;' 'border-top:1px solid #73716b;' '}'
'.topmenu_dropdown_link{' 'color:#000000;' 'font-family:arial;'
'font-size:12px;' 'font-style:normal;' 'font-weight:normal;'
'text-align:left;' 'text-decoration:none;' 'vertical-align:middle;' '}'
'.topmenu_link{' 'color:#9ca6c5;' 'font-family:arial;'
'font-size:12px;' 'font-style:normal;' 'font-weight:normal;'
'text-align:left;' 'text-decoration:none;' 'vertical-align:middle;' '}'
'.topmenu_link:hover{' 'color:#ffffff;' '}' '.topmenu_tab{'
'background-color:#102873;' 'color:#9ca6c5;' 'font-family:arial;'
'font-size:12px;' 'font-style:normal;' 'font-weight:normal;'
'height:14px;' 'padding-left:10px;' 'text-align:left;'
'text-decoration:none;' 'vertical-align:middle;' '}' '.topmenu_td{'
'color:#9ca6c5;' 'font-family:arial;' 'font-size:12px;'
'font-style:normal;' 'font-weight:normal;' 'padding-right:10px;'
'text-align:left;' 'text-decoration:none;' 'vertical-align:middle;' '}'
'.toptitle{' 'border-bottom:4px solid #ded7c5;'
'border-top:4px solid #bdbebd;' 'color:#5a699c;' 'font-family:arial;'
'font-size:20px;' 'font-style:italic;' 'font-weight:bold;'
'height:32px;' 'padding-left:10px;' 'text-align:left;'
'text-decoration:none;' 'vertical-align:middle;' '}' INTO ls_html.
APPEND ls_html TO lt_html. PERFORM html_base_popup_css CHANGING
lt_html. CONCATENATE '</style>' '</head>' '<body onload="init()">'
'<table border="0" cellpadding="1" cellspacing="0"'
' class="cap" id="cap">' '<tr>' '<td class="topmenu">'
'<table border="0" cellpadding="0" cellspacing="0"'
' class="topmenu_tab">' '<tr id="tm">' '<td class="topmenu_td">'
'<a class="topmenu_link" href="#"'
' onclick="toggleDropDown(''tm_menu'');' 'return false">' txt_menu
'</a>' '<br/>' '<div class="topmenu_dropdown" id="tm_menu">'
'<table border="0" cellpadding="0"' ' cellspacing="0"'
' class="topmenu_dropdown_tab">' '<tr>'
'<td class="topmenu_dropdown_td">' '<a class="topmenu_dropdown_link"'
' href="default.' gc_extension_htm '"' ' onclick="'
'openDropDownLink(''menu_first_page'');' 'return false">'
txt_first_page '</a>' '</td>' '</tr>' '</table>' '</div>' '</td>'
'<td class="topmenu_td">' '<a class="topmenu_link" href="#"'
' onclick="toggleDropDown(''tm_system'');' 'return false">' txt_system
'</a>' '<br/>' '<div class="topmenu_dropdown" id="tm_system">'
'<table border="0" cellpadding="0"' ' cellspacing="0"'
' class="topmenu_dropdown_tab">' '<tr>'
'<td class="topmenu_dropdown_td">' '<a class="topmenu_dropdown_link"'
' href="MENU_SYSTEM/STATUS.' gc_extension_htm '" onclick="'
'openDropDownLink(''system_status'');' 'return false">' txt_status
'</a>' '</td>' '</tr>' '<tr>' '<td class="topmenu_dropdown_td">'
'<a class="topmenu_dropdown_link"' ' href="MENU_SYSTEM/KERNEL.'
gc_extension_htm '" onclick="' 'openDropDownLink(''system_kernel'');'
'return false">' txt_kernel_information___1 '</a>' '</td>' '</tr>'
'<tr>' '<td class="topmenu_dropdown_td">'
'<a class="topmenu_dropdown_link"' ' href="MENU_SYSTEM/COMPONENT.'
gc_extension_htm '" onclick="'
'openDropDownLink(''system_component'');' 'return false">'
txt_component_information '</a>' '</td>' '</tr>' '</table>' '</div>'
'</td>' '<td class="topmenu_td">' '<a class="topmenu_link" href="#"'
' onclick="toggleDropDown(''tm_help'');' 'return false">' txt_help
'</a>' '<br/>' '<div class="topmenu_dropdown" id="tm_help">'
'<table border="0" cellpadding="0"' ' cellspacing="0"'
' class="topmenu_dropdown_tab">' '<tr>'
'<td class="topmenu_dropdown_td">' '<a class="topmenu_dropdown_link"'
' href="http://www.globalbit.org"' ' onclick="'
'openDropDownLink(''newWindow'',' '''http://www.globalbit.org'');'
'return false">' 'globalBIT' '</a>' '</td>' '</tr>' '<tr>'
'<td class="topmenu_dropdown_td">' '<a class="topmenu_dropdown_link"'
' href="http://www.globalbit.org/' 'opensource/softcopy"' ' onclick="'
'openDropDownLink(''popup'',' '''http://www.globalbit.org/sc/updates?'
'langu=' l_laiso '&#38;' 'scver=' gc_version ''',''' txt_updates ''');'
'return false">' txt_updates '</a>' '</td>' '</tr>' '<tr>'
'<td class="topmenu_dropdown_td">' '<a class="topmenu_dropdown_link"'
' href="MENU_HELP/about.' gc_extension_htm '"' ' onclick="'
'openDropDownLink(''help_about'');' 'return false">' txt_about '</a>'
'</td>' '</tr>' '</table>' '</div>' '</td>' '</tr>' '</table>' '</td>'
'<td class="topmenu"' ' style="padding-right:5px;text-align:right">'
'powered by globalBIT' '</td>' '</tr>' '<tr>'
'<td class="toptitle" colspan="2" id="title">'
'&#x53;&#x6f;&#x66;&#x74;&#x43;&#x6f;&#x70;&#x79;' '</td>' '</tr>'
'</table>' '<table border="0" cellpadding="0" cellspacing="0" id="sc">'
'<tr>' '<td class="links" id="links">' INTO ls_html. APPEND ls_html TO
lt_html. PERFORM links CHANGING lt_html. CONCATENATE '</td>'
'<td id="contentDiv" class="content"></td>' '</tr>' '</table>'
'<div class="scResizer" id="scResizer"'
' onmousedown="preResizeSc(event); return false;"></div>' INTO ls_html.
APPEND ls_html TO lt_html. PERFORM html_base_popup USING 'info'
l_c_info_width l_c_info_height CHANGING lt_html. APPEND
'<script type="text/javascript"><!--' TO lt_html. APPEND
'window.onresize = makeFrameSize;' TO lt_html. APPEND '//--></script>'
TO lt_html. CONCATENATE '</body>' '</html>' INTO ls_html. APPEND
ls_html TO lt_html. PERFORM download USING lt_html space space 'index'
gc_extension_htm abap_false. ENDFORM. FORM html_base_popup USING
value(i_id) TYPE string value(i_width) TYPE i value(i_height) TYPE i
CHANGING ct_html TYPE it_string. DATA: l_width TYPE string, l_height
TYPE string, l_caption_width TYPE string, l_div_width TYPE string,
l_div_height TYPE string, ls_html TYPE string. l_width = i_width.
CONDENSE l_width. l_height = i_height. CONDENSE l_height.
l_caption_width = i_width - 16. CONDENSE l_caption_width. l_div_width =
i_width + 4. CONDENSE l_div_width. l_div_height = i_height + 20.
CONDENSE l_div_height. CONCATENATE '<div class="popupDiv" id="popup'
i_id '"' ' style="height:' l_div_height 'px;width:' l_div_width 'px">'
'<table border="0" cellpadding="0" cellspacing="0"'
' class="popupTable" style="width:' l_width 'px">' '<tr>'
'<td align="left" class="popupTitle"' ' id="popupCaption' i_id '"'
' nowrap="nowrap"' ' onmousedown="preMovePopupLayer(event,''' i_id
'''); return false;"' ' style="width:' l_caption_width 'px"'
' width="90%">' 'Filter' '</td>' '<td class="popupClose">'
'<div class="popupCloseButton">' '<a class="popupCloseLink"'
' href="JavaScript:hidePopupLayer(''' i_id ''')">' '&#215;' '</a>'
'</div>' '</td>' '</tr>' '<tr>'
'<td align="center" class="popupContentArea" colspan="2">'
'<table border="0" cellpadding="0" cellspacing="0"'
' class="popupContentTable">' '<tr>'
'<td class="popupContent" id="popupContent' i_id '"' ' nowrap="nowrap"'
' style="height:' l_height 'px;width:' l_width 'px">' '&#160;' '</td>'
'</tr>' '</table>' '</td>' '</tr>' '</table>' '</div>' INTO ls_html.
APPEND ls_html TO ct_html. APPEND '<script type="text/javascript"><!--'
TO ct_html. CONCATENATE 'popupValues[popupValues.length]'
' = new Array("' i_id '", ' l_width ', ' l_height ');' INTO ls_html.
APPEND ls_html TO ct_html. APPEND '//--></script>' TO ct_html. ENDFORM.
FORM html_base_popup_css CHANGING ct_html TYPE it_string. DATA: ls_html
TYPE string. CONCATENATE '.popupClose{' 'background-color:#102873;'
'border-bottom:1px solid #63828c;' 'border-left-width:0px;'
'border-right:1px solid #63828c;' 'border-top:1px solid #adb6ce;'
'border-spacing:0px;' 'font-size:12px;' 'padding-bottom:0px;'
'padding-left:3px;' 'padding-right:0px;' 'padding-top:1px;'
'text-align:right !important;' 'vertical-align:top !important;'
'width:20px;' '}' '.popupCloseButton{' 'background-color:#102873;'
'border:1px solid #5a69a5;' 'color:#5a69a5;' 'height:12px;'
'overflow:hidden;' 'text-align:center;' 'vertical-align:top;'
'width:12px;' '}' '.popupCloseLink{' 'color:#5a69a5;' 'font-size:13px;'
'font-style:normal;' 'font-weight:normal;' 'line-height:13px;'
'margin:0px;' 'text-align:right !important;' 'text-decoration:none;'
'vertical-align:top;' '}' '.popupContent{' 'background-color:#94b2c5;'
'border-width:0px;' 'border-spacing:0px;' 'color:#000000;'
'font-family:arial,helvetica,sans-serif;' 'font-size:12px;'
'font-style:normal;' 'font-weight:normal;' 'margin:0px 0px;'
'padding:2px;' 'text-align:left;' '}' '.popupContentArea{'
'background-color:#94b2c5;' 'border-bottom:1px solid #3a3d3a;'
'border-left:1px solid #b5b6ad;' 'border-right:1px solid #cecabd;'
'border-top:1px solid #849ead;' 'border-spacing:0px;' 'color:#000000;'
'font-family:arial,helvetica,sans-serif;' 'font-size:12px;'
'font-style:normal;' 'font-weight:normal;' 'margin:0px 0px;'
'padding:0px;' 'text-align:center;' '}' '.popupContentTable{'
'background-color:#94b2c5;' 'border-bottom:1px solid #63828c;'
'border-left:1px solid #94b2c5;' 'border-right:1px solid #63828c;'
'border-top:1px solid #8caab5;' 'border-spacing:0px;' 'color:#000000;'
'font-family:arial,helvetica,sans-serif;' 'font-size:12px;'
'font-style:normal;' 'font-weight:normal;' 'margin:0px 0px;'
'padding:0px;' 'text-align:center;' '}' '.popupDiv{'
'background-color:#94b2c5;' 'display:none;' 'left:0px;'
'position:absolute;' 'top:0px;' 'visibility:hidden;' 'z-index:90;' '}'
'.popupTable{' 'background-color:#d6d2ce;' 'border-width:0px;'
'border-spacing:0px;' 'padding:0px;' '}' '.popupTitle{'
'background-color:#102873;' 'border-bottom:1px solid #63828c;'
'border-left:1px solid #adb6ce;' 'border-right-width:0px;'
'border-top:1px solid #adb6ce;' 'border-spacing:0px;' 'color:#9ca6c5;'
'cursor:move;' 'font-family:arial,helvetica,sans-serif;'
'font-size:12px;' 'font-style:normal;' 'font-weight:normal;'
'padding-bottom:1px;' 'padding-left:3px;' 'padding-right:3px;'
'padding-top:1px;' 'text-align:left;' 'white-space:nowrap;' '}' INTO
ls_html. APPEND ls_html TO ct_html. ENDFORM. FORM html_base_popup_js
CHANGING ct_html TYPE it_string. DATA: ls_html TYPE string. CONCATENATE
'var popupCallbacks=new Array();' 'var popupClicked="";'
'var popupMouseX=0;' 'var popupMouseY=0;'
'var popupValues=new Array();' INTO ls_html. APPEND ls_html TO ct_html.
CONCATENATE 'function displayPopupLayer(id,caption,content,callback){'
'var width;' 'var height;' 'for(var i=0;i<popupValues.length;i++){'
'if(popupValues[i][0] == id){' 'width=popupValues[i][1]+4;'
'height=popupValues[i][2]+20;' '}' '}'
'for(var i=0; i<popupCallbacks.length; i++){'
'if(popupCallbacks[i]!=null && popupCallbacks[i][0]==id){'
'if(popupCallbacks[i][1]==callback)' 'return;'
'window.setTimeout(popupCallbacks[i][1],1);' 'popupCallbacks[i]=null;'
'}' '}' 'if(content!=null)'
'document.getElementById("popupContent"+id).innerHTML=content;'
'if(caption!=null)'
'document.getElementById("popupCaption"+id).innerHTML=caption;'
'var userAgent=navigator.userAgent.toLowerCase();' 'var msieVersion=0;'
'if(userAgent.indexOf("msie")){'
'var myArr=userAgent.split("(")[1].split(")")[0].split(";");'
'for(var j=0;j<myArr.length;j++){' 'if(myArr[j].indexOf("msie")>=0){'
'msieVersion=((((myArr[j].replace(/^[^\S]+/,"")'
'.replace(/[^\S]+$/,"")).split(" "))[1]).split("."))[0];' '}' '}' '}'
'var filterDivObj=document.getElementById("popup"+id);'
'var left = (document.body.clientWidth - width) / 2;'
'var top = (document.body.clientHeight - height) / 2;'
'left=((window.innerWidth/2)+window.pageXOffset)'
'-((parseInt(filterDivObj.style.width))/2)+"px";'
'top=((window.innerHeight/2)+window.pageYOffset)'
'-((parseInt(filterDivObj.style.height))/2)+"px";'
'filterDivObj.style.left=left;' 'filterDivObj.style.top=top;'
'filterDivObj.style.display="block";'
'filterDivObj.style.visibility="visible";'
'if(callback!=null && callback!="")'
'popupCallbacks[popupCallbacks.length]=new Array(id,callback);' '}'
INTO ls_html. APPEND ls_html TO ct_html. CONCATENATE
'function hidePopupLayer(id){'
'document.getElementById("popup"+id).style.display="none";'
'for(var i=0;i<popupCallbacks.length;i++){'
'if(popupCallbacks[i]!=null && popupCallbacks[i][0]==id){'
'window.setTimeout(popupCallbacks[i][1],100);'
'popupCallbacks[i]=null;' '}' '}' '}' INTO ls_html. APPEND ls_html TO
ct_html. CONCATENATE 'function movePopupLayer(event){'
'var filterDivObj=document.getElementById("popup"+popupClicked);'
'filterDivObj.style.left=event.pageX-popupMouseX+"px";'
'filterDivObj.style.top=event.pageY-popupMouseY+"px";' '}' INTO
ls_html. APPEND ls_html TO ct_html. CONCATENATE
'function postMovePopupLayer(){' 'popupClicked="";' 'popupMouseX=0;'
'popupMouseY=0;' 'document.onmousemove=null;'
'document.onmouseup=null;' '}' INTO ls_html. APPEND ls_html TO ct_html.
CONCATENATE 'function preMovePopupLayer(event,id){' 'popupClicked=id;'
'if(event){' 'popupMouseX=event.layerX;' 'popupMouseY=event.layerY;'
'}' 'document.onmousemove=movePopupLayer;'
'document.onmouseup=postMovePopupLayer;' '}' INTO ls_html. APPEND
ls_html TO ct_html. CONCATENATE
'function updatePopupCaption(id, caption){' 'if(caption!=null)'
'document.getElementById("popupCaption"+id).innerHTML=caption;' '}'
INTO ls_html. APPEND ls_html TO ct_html. ENDFORM. FORM html_links_leaf
USING value(i_id) value(i_sub_id) value(i_name) value(i_descript)
CHANGING ct_html TYPE it_string. PERFORM html_links_leaf_filename USING
i_id i_sub_id i_name i_name i_descript CHANGING ct_html. ENDFORM. FORM
html_links_leaf_filename USING value(i_id) value(i_sub_id)
value(i_name) value(i_filename) value(i_descript) CHANGING ct_html TYPE
it_string. DATA: ls_html TYPE string, l_text TYPE string, l_title TYPE
string, l_fname TYPE string. l_text = i_name. l_title = i_descript.
PERFORM encode_html CHANGING l_text. PERFORM encode_html CHANGING
l_title. l_fname = i_filename. SHIFT l_fname LEFT DELETING LEADING '/'.
PERFORM replace_all USING '<' '-' CHANGING l_fname. PERFORM replace_all
USING '>' '-' CHANGING l_fname. PERFORM encode_uri CHANGING l_fname.
ADD 1 TO g_cnt_link_leaves. CONCATENATE '<li class="leaf">'
'<a class="leafLink"' ' href="' i_id '/' l_fname '.' gc_extension_htm
'"' ' id="' i_id '_' i_sub_id '_' g_cnt_link_leaves '"'
' onclick="showObject(''' i_id ''',''' l_fname ''');'
'return false" title="' l_title '">' l_text '</a>' '</li>' INTO
ls_html. APPEND ls_html TO ct_html. ENDFORM. FORM html_links_leaf_mime
USING value(i_id) value(i_name) value(i_filename) value(i_descript)
CHANGING ct_html TYPE it_string. DATA: ls_html TYPE string, l_text TYPE
string, l_title TYPE string, l_fname TYPE string. l_text = i_name.
l_title = i_descript. PERFORM encode_html CHANGING l_text. PERFORM
encode_html CHANGING l_title. l_fname = i_filename. SHIFT l_fname LEFT
DELETING LEADING '/'. PERFORM replace_all USING '<' '-' CHANGING
l_fname. PERFORM replace_all USING '>' '-' CHANGING l_fname. PERFORM
encode_uri CHANGING l_fname. CONCATENATE '<li class="leaf">'
'<a class="leafLink" href="' i_id '/' l_fname '"'
' onclick="window.open(''' i_id '/' l_fname ''');'
'return false" title="' l_title '">' l_text '</a>' '</li>' INTO
ls_html. APPEND ls_html TO ct_html. ENDFORM. FORM html_links_leaf_popup
USING value(i_id) value(i_name) value(i_filename) value(i_descript)
value(i_caption) CHANGING ct_html TYPE it_string. DATA: ls_html TYPE
string, l_text TYPE string, l_title TYPE string, l_fname TYPE string.
l_text = i_name. l_title = i_descript. PERFORM encode_html CHANGING
l_text. PERFORM encode_html CHANGING l_title. l_fname = i_filename.
SHIFT l_fname LEFT DELETING LEADING '/'. PERFORM replace_all USING '<'
'-' CHANGING l_fname. PERFORM replace_all USING '>' '-' CHANGING
l_fname. PERFORM encode_uri CHANGING l_fname. CONCATENATE
'<li class="leaf">' '<a class="leafLink" href="' i_id '/' l_fname '"'
' onclick="parent.parent.showObject(''' i_id '/' l_fname ''', '''
i_caption ''');' 'return false" title="' l_title '">' l_text '</a>'
'</li>' INTO ls_html. APPEND ls_html TO ct_html. ENDFORM. FORM
html_links_node_end CHANGING ct_html TYPE it_string. APPEND
'</ul></li>' TO ct_html. ENDFORM. FORM html_links_node_start USING
value(i_id) value(i_text) value(i_filename) value(i_descript) CHANGING
ct_html TYPE it_string. DATA: ls_html TYPE string, l_dir TYPE string,
l_suffix TYPE string, l_title TYPE string, l_fname TYPE string,
l_dblclick TYPE string, l_info TYPE string. l_title = i_descript.
PERFORM encode_html CHANGING l_title. SPLIT i_id AT '__' INTO l_dir
l_suffix. IF NOT i_filename IS INITIAL. l_fname = i_filename. SHIFT
l_fname LEFT DELETING LEADING '/'. PERFORM replace_all USING '<' '-'
CHANGING l_fname. PERFORM replace_all USING '>' '-' CHANGING l_fname.
PERFORM encode_uri CHANGING l_fname. CONCATENATE
' ondblclick="showObject(''' l_dir ''',''' l_fname ''',' '''POPUP'','''
txt_info ''');return false"' INTO l_dblclick. CONCATENATE
'&#160;<a class="info"' ' href="' l_dir '/' l_fname '.'
gc_extension_htm '"' ' onclick="showObject(''' l_dir ''',''' l_fname
''',' '''POPUP'',''' txt_info ''');return false">*</a>' INTO l_info.
ENDIF. CONCATENATE '<li class="node">' '<a class="nodeLink" href="#"'
' onclick="toggleVisibility(''' i_id ''');return false"' l_dblclick
' title="' l_title '">' i_text '</a>' l_info '<ul id="' i_id '">' INTO
ls_html. APPEND ls_html TO ct_html. ENDFORM. FORM html_main_header
USING value(i_title) value(i_name_field) value(i_name_value)
value(i_name_active) value(i_descr_field) value(i_descr_value)
value(i_onresize) it_tabstrip TYPE it_tabstrip it_link TYPE it_link
CHANGING ct_html TYPE it_string. DATA: lt_tabstrip TYPE it_tabstrip,
ls_html TYPE string, l_class TYPE string, l_laiso TYPE laiso, l_sptxt
TYPE sptxt, l_title TYPE string. FIELD-SYMBOLS: <ls_link> TYPE st_link,
<ls_tabstrip> TYPE st_tabstrip. l_title = i_title. PERFORM
replace_single USING '#NAME_VALUE#' i_name_value CHANGING l_title.
PERFORM get_spras USING sy-langu l_laiso l_sptxt. PERFORM
get_tabstrip_defined USING it_tabstrip CHANGING lt_tabstrip.
CONCATENATE '<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"'
' "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">' INTO ls_html.
APPEND ls_html TO ct_html. CONCATENATE
'<html xmlns="http://www.w3.org/1999/xhtml"' ' xml:lang="' l_laiso
'" lang="' l_laiso '">' INTO ls_html. APPEND ls_html TO ct_html.
CONCATENATE '<head>' '<title id="title">' l_title '</title>' INTO
ls_html. APPEND ls_html TO ct_html. PERFORM html_add_meta CHANGING
ct_html. PERFORM html_main_js USING l_title i_onresize lt_tabstrip
CHANGING ct_html. PERFORM html_main_style CHANGING ct_html. CONCATENATE
'</head>' '<body id="body" onload="myOnResize()">' INTO ls_html. APPEND
ls_html TO ct_html. CONCATENATE '<script type="text/javascript">'
'<!--' INTO ls_html. APPEND ls_html TO ct_html. CONCATENATE
'if(top==self){' 'document.write("' '<table>' '<tr>'
'<td class=\"button\">' '<a href=\"../index.htm\"'
' onclick=\"addFrame();return false\">' txt_frameset '<\/a>' '<\/td>'
'<\/tr>' '<\/table>' '");' '}' INTO ls_html. APPEND ls_html TO ct_html.
APPEND '//-->' TO ct_html. APPEND '</script>' TO ct_html. CONCATENATE
'<form action="../index.htm" id="addFrame"' ' method="get">'
'<p style="display:none;visibility:hidden">'
'<input id="addFrameA" name="pgmid" type="hidden"/>'
'<input id="addFrameB" name="object" type="hidden"/>'
'<input id="addFrameC" name="obj_name" type="hidden"/>' '</p>'
'</form>' INTO ls_html. APPEND ls_html TO ct_html. IF ( NOT
i_name_field IS INITIAL AND NOT i_name_value IS INITIAL ) OR ( NOT
i_descr_field IS INITIAL AND NOT i_descr_value IS INITIAL ). APPEND
'<table class="titleTable">' TO ct_html. IF NOT i_name_field IS INITIAL
AND NOT i_name_value IS INITIAL. CONCATENATE '<tr>'
'<td class="titleTableText">' i_name_field '</td>'
'<td class="titleTableDescr">' i_name_value '</td>' '<td>'
i_name_active '</td>' '<td style="width:100px">'
'&#160;&#160;&#160;&#160;&#160;' '</td>' INTO ls_html. LOOP AT it_link
ASSIGNING <ls_link>. CONCATENATE ls_html '<td>&#160;</td>'
'<td class="button">' '<a href="' <ls_link>-href '"' ' onclick="'
<ls_link>-onclick ';return false"' ' title="' <ls_link>-title '">'
<ls_link>-descript '</a>' '</td>' INTO ls_html. ENDLOOP. CONCATENATE
ls_html '</tr>' INTO ls_html. APPEND ls_html TO ct_html. ENDIF. IF NOT
i_descr_field IS INITIAL AND NOT i_descr_value IS INITIAL. CONCATENATE
'<tr>' '<td class="titleTableText">' i_descr_field '</td>'
'<td class="titleTableDescr" colspan="2">' i_descr_value '</td>'
'<td>&#160;</td>' INTO ls_html. LOOP AT it_link ASSIGNING <ls_link>.
CONCATENATE ls_html '<td colspan="2">&#160;</td>' INTO ls_html.
ENDLOOP. CONCATENATE ls_html '</tr>' INTO ls_html. APPEND ls_html TO
ct_html. ENDIF. APPEND '</table><div>&#160;</div>' TO ct_html. ENDIF.
CONCATENATE '<table border="0" cellpadding="0" cellspacing="0"'
' class="contentTable" width="100%">' INTO ls_html. APPEND ls_html TO
ct_html. IF NOT lt_tabstrip IS INITIAL. READ TABLE lt_tabstrip
TRANSPORTING NO FIELDS WITH KEY firstrow = abap_true hidden =
abap_false parent_id = space. IF sy-subrc = 0. CONCATENATE '<tr>'
'<td class="contentTable">'
'<table border="0" cellpadding="0" cellspacing="0"'
' class="contentTable">' '<tr>' INTO ls_html. APPEND ls_html TO
ct_html. LOOP AT lt_tabstrip ASSIGNING <ls_tabstrip> WHERE hidden =
abap_false AND firstrow = abap_true AND parent_id IS INITIAL. IF
<ls_tabstrip>-disabled = abap_true. l_class = 'contentTabDisabled'.
ELSEIF <ls_tabstrip>-active = abap_true. l_class = 'contentTabOn'.
ELSE. l_class = 'contentTabOff'. ENDIF. IF <ls_tabstrip>-disabled =
abap_false. CONCATENATE '<td class="' l_class '" id="' <ls_tabstrip>-id
'tab"><a href="#" onclick="openTab(''' <ls_tabstrip>-id ''')">'
<ls_tabstrip>-text '</a></td>' INTO ls_html. APPEND ls_html TO ct_html.
ELSE. CONCATENATE '<td class="' l_class '" id="' <ls_tabstrip>-id
'tab"><a class="linkDisabled" href="#"' ' onclick="return false">'
<ls_tabstrip>-text '</a></td>' INTO ls_html. APPEND ls_html TO ct_html.
ENDIF. ENDLOOP. CONCATENATE '</tr>' '</table>' '</td>' '</tr>' INTO
ls_html. APPEND ls_html TO ct_html. ENDIF. CONCATENATE '<tr>'
'<td class="contentTable">'
'<table border="0" cellpadding="0" cellspacing="0"'
' class="contentTable">' '<tr>' INTO ls_html. APPEND ls_html TO
ct_html. LOOP AT lt_tabstrip ASSIGNING <ls_tabstrip> WHERE hidden =
abap_false AND firstrow = abap_false AND parent_id IS INITIAL. IF
<ls_tabstrip>-disabled = abap_true. l_class = 'contentTabDisabled'.
ELSEIF <ls_tabstrip>-active = abap_true. l_class = 'contentTabOn'.
ELSE. l_class = 'contentTabOff'. ENDIF. IF <ls_tabstrip>-disabled =
abap_false. CONCATENATE '<td class="' l_class '" id="' <ls_tabstrip>-id
'tab"><a href="#" onclick="openTab(''' <ls_tabstrip>-id ''')">'
<ls_tabstrip>-text '</a></td>' INTO ls_html. APPEND ls_html TO ct_html.
ELSE. CONCATENATE '<td class="' l_class '" id="' <ls_tabstrip>-id
'tab"><a class="linkDisabled" href="#"' ' onclick="return false">'
<ls_tabstrip>-text '</a></td>' INTO ls_html. APPEND ls_html TO ct_html.
ENDIF. ENDLOOP. CONCATENATE '</tr>' '</table>' '</td>' '</tr>' INTO
ls_html. APPEND ls_html TO ct_html. ENDIF. APPEND '<tr>' TO ct_html.
APPEND '<td class="contentBox">' TO ct_html. ENDFORM. FORM html_main_js
USING value(i_title) value(i_onresize) it_tabstrip TYPE it_tabstrip
CHANGING ct_html TYPE it_string. DATA: ls_html TYPE string.
FIELD-SYMBOLS: <ls_tabstrip> TYPE st_tabstrip. CONCATENATE
'<script type="text/javascript">' '<!--' INTO ls_html. APPEND ls_html
TO ct_html. CONCATENATE 'function addFrame() {' 'var parts;'
'if(window.location.pathname.indexOf("\\") >= 0) {'
'parts = window.location.pathname.split("\\");' '}' 'else {'
'parts = window.location.pathname.split("/");' '}'
'var po = parts[parts.length-2].split("_");'
'document.getElementById("addFrameA").value = po[0];'
'document.getElementById("addFrameB").value = po[1];'
'var objName = parts[parts.length-1];'
'objName = objName.substring(0,objName.lastIndexOf("."));'
'document.getElementById("addFrameC").value = objName;'
'document.getElementById("addFrame").submit();' '}' INTO ls_html.
APPEND ls_html TO ct_html. CONCATENATE 'function loadIFrame(id, url) {'
'var iframeElem;' 'var myHTML;' 'myHTML="<iframe frameborder=\"0\"'
' height=\"400\"' ' id=\""+id+"scroll\"' ' scrolling=\"auto\"'
' src=\""+url+"\"' ' width=\"90%\">' '<\/iframe>";'
'iframeElem=document.getElementById(id+"iframe");'
'iframeElem.innerHTML=myHTML;' '}' INTO ls_html. APPEND ls_html TO
ct_html. CONCATENATE 'function makeDivSize(divName) {' 'var winHeight;'
'var winWidth;' 'var bodyHeight;' 'var divPar;' 'var divElem;'
'var divHeight;' 'var divHeightNew;' 'var divWidthNew;'
'divPar = document.getElementById(divName+"div");' 'if(divPar == null'
' || divPar.style.visibility == "hidden") {' 'return;' '}'
'divElem = document.getElementById(divName+"scroll");'
'if(divElem == null) {' 'return;' '}'
'divElem.style.overflowX = "auto";' 'divElem.style.overflowY = "auto";'
'winHeight = window.innerHeight;' 'winWidth = window.innerWidth;'
'bodyHeight = document.body.offsetHeight;'
'divHeight = divElem.offsetHeight;'
'divHeightNew = divHeight+winHeight-bodyHeight-20;'
'divWidthNew = winWidth-40;'
'divElem.style.height = divHeightNew + "px";'
'divElem.style.width = divWidthNew + "px";' '}' INTO ls_html. APPEND
ls_html TO ct_html. CONCATENATE 'function myOnResize() {' i_onresize
';' '}' INTO ls_html. APPEND ls_html TO ct_html. CONCATENATE
'function openChildTab(parentID, tabID) {' 'var elem;'
'switchChildContent(parentID, tabID);' INTO ls_html. APPEND ls_html TO
ct_html. LOOP AT it_tabstrip ASSIGNING <ls_tabstrip> WHERE disabled =
abap_false AND NOT parent_id IS INITIAL. IF <ls_tabstrip>-hidden =
abap_false. CONCATENATE 'document.getElementById("' <ls_tabstrip>-id
'tab")' '.className="contentTabOff";' INTO ls_html. APPEND ls_html TO
ct_html. ENDIF. ENDLOOP. LOOP AT it_tabstrip ASSIGNING <ls_tabstrip>
WHERE disabled = abap_false AND NOT parent_id IS INITIAL and ACTIVE =
abap_true. CONCATENATE 'if(parentID!="' <ls_tabstrip>-parent_id '"){'
'document.getElementById(tabID+"tab")' '.className="contentTabOn";' '}'
INTO ls_html. APPEND ls_html TO ct_html. ENDLOOP. CONCATENATE
'document.getElementById(tabID+"tab")' '.className="contentTabOn";' '}'
INTO ls_html. APPEND ls_html TO ct_html. CONCATENATE
'function openTab(tabID) {' 'var elem;' 'switchContent(tabID);' INTO
ls_html. APPEND ls_html TO ct_html. LOOP AT it_tabstrip ASSIGNING
<ls_tabstrip> WHERE disabled = abap_false AND parent_id IS INITIAL. IF
<ls_tabstrip>-hidden = abap_false. CONCATENATE
'document.getElementById("' <ls_tabstrip>-id 'tab")'
'.className="contentTabOff";' INTO ls_html. APPEND ls_html TO ct_html.
ENDIF. ENDLOOP. CONCATENATE 'document.getElementById(tabID+"tab")'
'.className="contentTabOn";' '}' INTO ls_html. APPEND ls_html TO
ct_html. CONCATENATE 'function setTitle() {' 'try {' 'if(top!=self) {'
'parent.setTitle("' i_title '");' '}' '}' 'catch(e) {' '}' '}' INTO
ls_html. APPEND ls_html TO ct_html. CONCATENATE
'function switchChildContent(parentID, tabID) {' 'var elem;' INTO
ls_html. APPEND ls_html TO ct_html. LOOP AT it_tabstrip ASSIGNING
<ls_tabstrip> WHERE disabled = abap_false AND NOT parent_id IS INITIAL.
CONCATENATE 'elem=document.getElementById("' <ls_tabstrip>-id 'div");'
'elem.style.display="none";' 'elem.style.visibility="hidden";' INTO
ls_html. APPEND ls_html TO ct_html. ENDLOOP. LOOP AT it_tabstrip
ASSIGNING <ls_tabstrip> WHERE disabled = abap_false AND NOT parent_id
IS INITIAL and ACTIVE = abap_true. CONCATENATE 'if(parentID!="'
<ls_tabstrip>-parent_id '"){'
'elem=document.getElementById(tabID+"div");'
'elem.style.display="block";' 'elem.style.visibility="visible";' '}'
INTO ls_html. APPEND ls_html TO ct_html. ENDLOOP. CONCATENATE
'elem=document.getElementById(tabID+"div");'
'elem.style.display="block";' 'elem.style.visibility="visible";'
i_onresize ';' '}' INTO ls_html. APPEND ls_html TO ct_html. CONCATENATE
'function switchContent(tabID) {' 'var elem;' INTO ls_html. APPEND
ls_html TO ct_html. LOOP AT it_tabstrip ASSIGNING <ls_tabstrip> WHERE
disabled = abap_false AND parent_id IS INITIAL. CONCATENATE
'elem=document.getElementById("' <ls_tabstrip>-id 'div");'
'elem.style.display="none";' 'elem.style.visibility="hidden";' INTO
ls_html. APPEND ls_html TO ct_html. ENDLOOP. CONCATENATE
'elem=document.getElementById(tabID+"div");'
'elem.style.display="block";' 'elem.style.visibility="visible";'
i_onresize ';' '}' INTO ls_html. APPEND ls_html TO ct_html. APPEND
'//--></script>' TO ct_html. ENDFORM. FORM html_main_footer CHANGING
ct_html TYPE it_string. DATA: ls_html TYPE string. CONCATENATE '</td>'
'</tr>' '</table>' '<script type="text/javascript">' '<!--' INTO
ls_html. APPEND ls_html TO ct_html. APPEND
'window.setTimeout("setTitle()",50);' TO ct_html. APPEND
'window.onresize = myOnResize;' TO ct_html. APPEND '//-->' TO ct_html.
APPEND '</script>' TO ct_html. CONCATENATE '</body>' '</html>' INTO
ls_html. APPEND ls_html TO ct_html. ENDFORM. FORM
html_main_iframeheader USING value(i_title) CHANGING ct_html TYPE
it_string. DATA: ls_html TYPE string, l_laiso TYPE laiso, l_sptxt TYPE
sptxt. FIELD-SYMBOLS: <ls_tabstrip> TYPE st_tabstrip. PERFORM get_spras
USING sy-langu l_laiso l_sptxt. CONCATENATE
'<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"'
' "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">' INTO ls_html.
APPEND ls_html TO ct_html. CONCATENATE
'<html xmlns="http://www.w3.org/1999/xhtml"' ' xml:lang="' l_laiso
'" lang="' l_laiso '">' INTO ls_html. APPEND ls_html TO ct_html.
CONCATENATE '<head>' '<title id="title">' i_title '</title>' INTO
ls_html. APPEND ls_html TO ct_html. PERFORM html_add_meta CHANGING
ct_html. PERFORM html_main_style CHANGING ct_html. CONCATENATE
'</head>' '<body class="iframebody" id="body">' INTO ls_html. APPEND
ls_html TO ct_html. ENDFORM. FORM html_main_iframefooter CHANGING
ct_html TYPE it_string. DATA: ls_html TYPE string. CONCATENATE
'</body>' '</html>' INTO ls_html. APPEND ls_html TO ct_html. ENDFORM.
FORM html_main_popupheader USING value(i_title) CHANGING ct_html TYPE
it_string. DATA: ls_html TYPE string, l_laiso TYPE laiso, l_sptxt TYPE
sptxt. FIELD-SYMBOLS: <ls_tabstrip> TYPE st_tabstrip. PERFORM get_spras
USING sy-langu l_laiso l_sptxt. CONCATENATE
'<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"'
' "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">' INTO ls_html.
APPEND ls_html TO ct_html. CONCATENATE
'<html xmlns="http://www.w3.org/1999/xhtml"' ' xml:lang="' l_laiso
'" lang="' l_laiso '">' INTO ls_html. APPEND ls_html TO ct_html.
CONCATENATE '<head>' '<title id="title">' i_title '</title>' INTO
ls_html. APPEND ls_html TO ct_html. PERFORM html_add_meta CHANGING
ct_html. PERFORM html_main_style CHANGING ct_html. CONCATENATE
'</head>' '<body class="popupbody" id="body">' INTO ls_html. APPEND
ls_html TO ct_html. ENDFORM. FORM html_main_popupfooter CHANGING
ct_html TYPE it_string. DATA: ls_html TYPE string. CONCATENATE
'</body>' '</html>' INTO ls_html. APPEND ls_html TO ct_html. ENDFORM.
FORM html_main_style CHANGING ct_html TYPE it_string. DATA: ls_html
TYPE string. APPEND '<style type="text/css">' TO ct_html. CONCATENATE
'a {' 'color:black;' 'font-family:arial;' 'font-size:10px;'
'font-style:normal;' 'font-weight:normal;' 'text-decoration:none;' '}'
'a:active {' 'color:darkred;' '}' 'a:focus {' 'color:darkred;' '}'
'a:hover {' 'color:red;' '}' 'a:link {' 'color:black;' '}'
'a:visited {' 'color:#000000;' '}' 'body {' 'background-color:#94b6c6;'
'margin:10px;' '}' 'pre {' 'font-size:11px;' 'margin:0px;'
'padding:0px;' '}' 'span {' 'color:#000000;' 'font-family:arial;'
'font-size:10px;' 'font-style:normal;' 'font-weight:normal;'
'text-decoration:none;' 'white-space:nowrap;' '}' 'td {' 'color:black;'
'empty-cells:show;' 'font-family:arial;' 'font-size:10px;'
'font-style:normal;' 'font-weight:normal;' 'text-align:left;'
'text-decoration:none;' 'white-space:nowrap;' '}' 'th {' 'color:black;'
'empty-cells:show;' 'font-family:arial;' 'font-size:10px;'
'font-style:normal;' 'font-weight:normal;' 'text-align:center;'
'text-decoration:none;' 'white-space:nowrap;' '}' '.box {'
'border:1px solid #73716b;' 'border-spacing:0px !important;'
'padding:0px !important;' 'margin:0px !important;' '}' '.boxContent {'
'background-color:#ded7c5;' 'border-spacing:0px !important;'
'padding:0px !important;' 'margin:0px !important;' '}' '.boxName {'
'background-color:#cecabd;' 'border-bottom:1px solid #73716b;'
'border-left-width:0px;' 'border-right:1px solid #73716b;'
'border-top-width:0px;' 'border-spacing:0px !important;'
'margin:0px 3px 2px 0px !important;' 'padding:1px 2px 1px 2px;' '}'
'.boxContainerTd {' 'border-spacing:0px !important;'
'padding:0px !important;' 'margin:0px !important;'
'vertical-align:top;' '}' '.button {' 'background-color:#efefde;'
'border:1px solid #73716b;' 'color:#000000;' 'font-weight:bolder;'
'font-size:8px;' 'padding:1px 3px 1px 3px;' 'text-align:center;'
'vertical-align:middle;' '}' '.container {'
'border-spacing:0px !important;' '}' '.containerContent {'
'border:1px solid #73716b;' 'border-spacing:0px !important;'
'padding:2px;' 'margin:0px !important;' '}' '.containerTitle {'
'background-color:#cecabd;' 'border-color:#73716b;'
'border-spacing:0px !important;' 'border-style:solid;'
'border-width:1px 1px 0px 1px;' 'margin:0px !important;'
'padding:1px 2px 1px 2px;' '}' '.contentBox {'
'background-color:#ded7c5;'
'border-color:#ffffff #000000 #000000 #ffffff;' 'border-style:solid;'
'border-width:1px;' 'padding:20px 5px 20px 5px;' '}' '.contentDiv {'
'background-color:#ded7c5;' 'height:100%;' 'width:100%;' '}'
'.contentTable {' 'padding:0px;' 'border-spacing:0px;' '}'
'.contentTabDisabled {' 'background-color:#c5c6b5;'
'border-color:#ffffff #000000 #000000 #ffffff;' 'border-style:solid;'
'border-width:1px;' 'color:#999999;' 'padding:1px 10px 1px 10px;' '}'
'.contentTabOff {' 'background-color:#c5c6b5;'
'border-color:#ffffff #000000 #000000 #ffffff;' 'border-style:solid;'
'border-width:1px;' 'padding:1px 10px 1px 10px;' '}' '.contentTabOn {'
'background-color:#ded7c5;'
'border-color:#ffffff #000000 #000000 #ffffff;' 'border-style:solid;'
'border-width:1px 1px 0px 1px;' 'padding:1px 10px 1px 10px;' '}'
'.iframebody {' 'background-color:#ded7c5;' 'margin:0px;' '}' '.info {'
'color:#0000ff' '}' '.innerTable {' 'border-color:#73716b;'
'border-style:solid;' 'border-width:0px 0px 1px 1px;' '}'
'.innerTableButton {' 'background-color:#efefde;'
'border:1px solid #73716b;' 'color:#000000;' 'font-weight:bolder;'
'font-size:8px;' 'padding:1px 3px 1px 3px;' 'text-align:center;'
'vertical-align:middle;' 'width:20px;' '}' '.innerTableFlag {'
'background-color:#cecebd;' 'border:1px solid #ffffff;'
'border-spacing:0px;' 'color:#73716b;' 'height:12px !important;'
'margin:0px;' 'padding:0px;' 'width:12px !important;' '}'
'.innerTableTD {' 'background-color:#cecebd;' 'border-color:#73716b;'
'border-style:solid;' 'border-width:1px 1px 0px 0px;'
'empty-cells:show;' 'padding:1px 3px 1px 3px;' '}'
'.innerTableTDColored {' 'background-color:#cecebd;'
'border-color:#73716b;' 'border-style:solid;'
'border-width:1px 1px 0px 0px;' 'color:#0000ff !important;'
'empty-cells:show;' 'padding:1px 3px 1px 3px;' '}' '.innerTableTH {'
'background-color:#efefde;' 'border-color:#73716b;'
'border-style:solid;' 'border-width:1px 1px 0px 0px;'
'padding:1px 3px 1px 3px;' '}' '.innerTableTHtop {'
'background-color:#cecabd;' 'border-color:#73716b;'
'border-style:solid;' 'border-width:1px 1px 0px 0px;'
'padding:1px 3px 1px 3px;' '}' '.linkDisabled {'
'color:#888888 !important;' '}' '.popupbody {'
'background-color:#94b2c5;' 'margin:0px;' '}' '.radio {' 'margin:0px'
'}' '.scrollDiv {' 'background-color:#ded7c5;' '}' '.scrollTable {'
'border-spacing:0px;' 'padding:0px;' '}' '.src {'
'background-color:#cdcbbd;'
'border-color:#ffffff #8c8e8c #8c8e8c #ffffff;' 'border-style:solid;'
'border-width:1px;' 'overflow:auto;' '}' '.srcLine {' 'color:#000000;'
'empty-cells:show;' '}' '.srcLineComment {' 'color:#0000ff;'
'empty-cells:show;' '}' '.srcLineNumber {' 'padding-right:5px;'
'text-align:right;' '}' '.tableLink {' 'color:#000000 !important;' '}'
'.tableLinkColored {' 'color:#0000ff !important;' '}' '.titleTable {'
'border-spacing:2px;' '}' '.titleTableDescr {'
'background-color:#cecebd;' 'border:1px solid #ffffff;'
'padding:1px 5px 1px 5px;' '}' '.titleTableText {'
'border-bottom:1px solid #ffffff;' 'padding-right:20px;' '}' INTO
ls_html. APPEND ls_html TO ct_html. APPEND '</style>' TO ct_html.
ENDFORM. FORM links CHANGING ct_html TYPE it_string. DATA: l_descript
TYPE as4text. clear g_cnt_link_leaves. PERFORM get_devclass USING
gs_tdevc-devclass CHANGING l_descript. APPEND '<ul>' TO ct_html.
PERFORM html_links_node_start USING 'R3TR_DEVC' gs_tdevc-devclass
gs_tdevc-devclass l_descript CHANGING ct_html. SORT gt_ztadir BY pgmid
object obj_name funcname subc dynpronr o2pagekey. PERFORM links_ddic
CHANGING ct_html. PERFORM links_seo CHANGING ct_html. PERFORM
links_prog CHANGING ct_html. PERFORM links_fugr CHANGING ct_html.
PERFORM links_incl CHANGING ct_html. PERFORM links_tran CHANGING
ct_html. PERFORM links_para CHANGING ct_html. PERFORM links_msag
CHANGING ct_html. PERFORM links_tobj CHANGING ct_html. PERFORM
links_xslt CHANGING ct_html. PERFORM links_bsp CHANGING ct_html.
PERFORM html_links_node_end CHANGING ct_html. APPEND '</ul>' TO
ct_html. ENDFORM. FORM links_bsp CHANGING ct_html TYPE it_string. DATA:
l_step_a TYPE flag. PERFORM links_bsp_apps CHANGING ct_html l_step_a.
PERFORM links_bsp_tags CHANGING ct_html l_step_a. IF l_step_a =
abap_true. PERFORM html_links_node_end CHANGING ct_html. l_step_a =
abap_false. ENDIF. ENDFORM. FORM links_bsp_apps CHANGING ct_html TYPE
it_string c_step_a TYPE flag. DATA: l_step_b TYPE flag, ls_ztadir TYPE
st_ztadir, l_id TYPE string. LOOP AT gt_ztadir INTO ls_ztadir WHERE
pgmid = 'R3TR' AND object = 'WAPA' AND o2pagekey = space. IF l_step_b
IS INITIAL. l_step_b = abap_true. IF c_step_a = abap_false. c_step_a =
abap_true. PERFORM html_links_node_start USING 'bsplib' txt_bsp_library
space space CHANGING ct_html. ENDIF. PERFORM html_links_node_start
USING 'R3TR_WAPA' txt_bsp_applications space space CHANGING ct_html.
ENDIF. PERFORM get_id USING 'R3TR_WAPA__' ls_ztadir-obj_name CHANGING
l_id. PERFORM html_links_node_start USING l_id ls_ztadir-o2name
ls_ztadir-obj_name ls_ztadir-descript CHANGING ct_html. PERFORM
links_bsp_appl USING ls_ztadir-obj_name gc_o2type_ctrl CHANGING
ct_html. PERFORM links_bsp_appl USING ls_ztadir-obj_name gc_o2type_view
CHANGING ct_html. PERFORM links_bsp_appl USING ls_ztadir-obj_name
gc_o2type_bsp CHANGING ct_html. PERFORM links_bsp_appl USING
ls_ztadir-obj_name gc_o2type_incl CHANGING ct_html. PERFORM
links_bsp_appl USING ls_ztadir-obj_name gc_o2type_mime CHANGING
ct_html. PERFORM html_links_node_end CHANGING ct_html. ENDLOOP. IF
l_step_b = abap_true. CLEAR l_step_b. PERFORM html_links_node_end
CHANGING ct_html. ENDIF. ENDFORM. FORM links_bsp_appl USING
value(i_obj_name) value(i_o2type) CHANGING ct_html TYPE it_string.
DATA: l_filename TYPE string, l_id TYPE string, l_type TYPE string,
l_step_c TYPE flag, l_text TYPE string, lt_node_new TYPE it_string,
lt_node_old TYPE it_string, l_subdir_cnt TYPE i, l_node_id TYPE string,
l_node_id_cnt(3) TYPE n. FIELD-SYMBOLS: <ls_ztadir> TYPE st_ztadir,
<ls_node_new> TYPE string, <ls_node_old> TYPE string. CASE i_o2type.
WHEN gc_o2type_ctrl. l_type = 'ctrl'. l_text = txt_controller. WHEN
gc_o2type_view. l_type = 'view'. l_text = txt_views. WHEN
gc_o2type_bsp. l_type = 'bsp'. l_text = txt_pages_with_flow_logic. WHEN
gc_o2type_incl. l_type = 'incl'. l_text = txt_page_fragments. WHEN
gc_o2type_mime. l_type = 'mime'. l_text = txt_mimes. ENDCASE. PERFORM
get_id USING l_type i_obj_name CHANGING l_id. LOOP AT gt_ztadir
ASSIGNING <ls_ztadir> WHERE pgmid = 'R3TR' AND object = 'WAPA' AND
obj_name = i_obj_name AND o2type = i_o2type AND o2pagekey <> space. IF
l_step_c = abap_false. l_step_c = abap_true. PERFORM
html_links_node_start USING l_id l_text space space CHANGING ct_html.
ENDIF. SPLIT <ls_ztadir>-o2pagename AT '/' INTO TABLE lt_node_new. LOOP
AT lt_node_old ASSIGNING <ls_node_old>. AT LAST. EXIT. ENDAT. READ
TABLE lt_node_new ASSIGNING <ls_node_new> INDEX sy-tabix. IF sy-subrc
<> 0 OR <ls_node_old> <> <ls_node_new>. PERFORM html_links_node_end
CHANGING ct_html. l_subdir_cnt = l_subdir_cnt - 1. ENDIF. ENDLOOP. LOOP
AT lt_node_new ASSIGNING <ls_node_new>. AT LAST. EXIT. ENDAT. READ
TABLE lt_node_old ASSIGNING <ls_node_old> INDEX sy-tabix. IF sy-subrc
<> 0 OR <ls_node_new> <> <ls_node_old>. ADD 1 TO l_node_id_cnt.
CONCATENATE 'R3TR_WAPA_' l_node_id_cnt INTO l_node_id. PERFORM
html_links_node_start USING l_node_id <ls_node_new> space space
CHANGING ct_html. l_subdir_cnt = l_subdir_cnt + 1. ENDIF. ENDLOOP.
CONCATENATE <ls_ztadir>-obj_name '-' l_type '/' <ls_ztadir>-o2pagename
INTO l_filename. IF l_type = 'mime'. PERFORM html_links_leaf_mime USING
'R3TR_WAPA' <ls_node_new> l_filename <ls_ztadir>-descript CHANGING
ct_html. ELSE. PERFORM html_links_leaf_filename USING 'R3TR_WAPA'
l_type <ls_node_new> l_filename <ls_ztadir>-descript CHANGING ct_html.
ENDIF. REFRESH lt_node_old. lt_node_old[] = lt_node_new[]. REFRESH
lt_node_new. ENDLOOP. DO l_subdir_cnt TIMES. PERFORM
html_links_node_end CHANGING ct_html. ENDDO. IF l_step_c = abap_true.
PERFORM html_links_node_end CHANGING ct_html. l_step_c = abap_false.
ENDIF. ENDFORM. FORM links_bsp_tags CHANGING ct_html TYPE it_string
c_step_a TYPE flag. DATA: l_step_b TYPE flag, l_id TYPE string,
ls_ztadir TYPE st_ztadir. LOOP AT gt_ztadir INTO ls_ztadir WHERE pgmid
= 'R3TR' AND object = 'WTAG' AND o2type = space. IF l_step_b IS
INITIAL. l_step_b = abap_true. IF c_step_a = abap_false. c_step_a =
abap_true. PERFORM html_links_node_start USING 'bsplib' txt_bsp_library
space space CHANGING ct_html. ENDIF. PERFORM html_links_node_start
USING 'R3TR_WTAG' txt_bsp_extensions space space CHANGING ct_html.
ENDIF. PERFORM get_id USING 'R3TR_WTAG__' ls_ztadir-obj_name CHANGING
l_id. PERFORM html_links_node_start USING l_id ls_ztadir-obj_name
ls_ztadir-obj_name ls_ztadir-descript CHANGING ct_html. PERFORM
links_bsp_tag USING ls_ztadir-obj_name CHANGING ct_html. PERFORM
html_links_node_end CHANGING ct_html. ENDLOOP. IF l_step_b = abap_true.
CLEAR l_step_b. PERFORM html_links_node_end CHANGING ct_html. ENDIF.
ENDFORM. FORM links_bsp_tag USING value(i_obj_name) CHANGING ct_html
TYPE it_string. DATA: l_filename TYPE string, l_id TYPE string.
FIELD-SYMBOLS: <ls_ztadir> TYPE st_ztadir. PERFORM get_id USING 'tag_'
i_obj_name CHANGING l_id. LOOP AT gt_ztadir ASSIGNING <ls_ztadir> WHERE
pgmid = 'R3TR' AND object = 'WTAG' AND obj_name = i_obj_name AND o2type
= gc_o2type_tag. CONCATENATE <ls_ztadir>-obj_name '-'
<ls_ztadir>-o2name INTO l_filename. PERFORM html_links_leaf_filename
USING 'R3TR_WTAG' '' <ls_ztadir>-o2name l_filename <ls_ztadir>-descript
CHANGING ct_html. ENDLOOP. ENDFORM. FORM links_ddic CHANGING ct_html
TYPE it_string. DATA: l_step_a TYPE flag. PERFORM links_ddic_db
CHANGING ct_html l_step_a. PERFORM links_ddic_view CHANGING ct_html
l_step_a. PERFORM links_ddic_ttyp CHANGING ct_html l_step_a. PERFORM
links_ddic_struc CHANGING ct_html l_step_a. PERFORM links_ddic_dtel
CHANGING ct_html l_step_a. PERFORM links_ddic_doma CHANGING ct_html
l_step_a. PERFORM links_ddic_shlp CHANGING ct_html l_step_a. PERFORM
links_ddic_enqu CHANGING ct_html l_step_a. PERFORM links_ddic_type
CHANGING ct_html l_step_a. IF l_step_a = abap_true. PERFORM
html_links_node_end CHANGING ct_html. l_step_a = abap_false. ENDIF.
ENDFORM. FORM links_ddic_db CHANGING ct_html TYPE it_string c_step_a
TYPE flag. DATA: l_step_b TYPE flag. FIELD-SYMBOLS: <ls_ztadir> TYPE
st_ztadir. LOOP AT gt_ztadir ASSIGNING <ls_ztadir> WHERE pgmid = 'R3TR'
AND object = 'TABL' AND ( tabclass = 'CLUSTER' OR tabclass = 'POOL' OR
tabclass = 'TRANSP' ). IF l_step_b IS INITIAL. l_step_b = abap_true. IF
c_step_a = abap_false. c_step_a = abap_true. PERFORM
html_links_node_start USING 'tabllib' txt_dict_objs space space
CHANGING ct_html. ENDIF. PERFORM html_links_node_start USING
'R3TR_TABL_2' txt_database_tables space space CHANGING ct_html. ENDIF.
PERFORM html_links_leaf USING 'R3TR_TABL' '' <ls_ztadir>-obj_name
<ls_ztadir>-descript CHANGING ct_html. ENDLOOP. IF l_step_b =
abap_true. CLEAR l_step_b. PERFORM html_links_node_end CHANGING
ct_html. ENDIF. ENDFORM. FORM links_ddic_doma CHANGING ct_html TYPE
it_string c_step_a TYPE flag. DATA: l_step_b TYPE flag. FIELD-SYMBOLS:
<ls_ztadir> TYPE st_ztadir. LOOP AT gt_ztadir ASSIGNING <ls_ztadir>
WHERE pgmid = 'R3TR' AND object = 'DOMA'. IF l_step_b = abap_false.
l_step_b = abap_true. IF c_step_a = abap_false. c_step_a = abap_true.
PERFORM html_links_node_start USING 'tabllib' txt_dict_objs space space
CHANGING ct_html. ENDIF. PERFORM html_links_node_start USING
'R3TR_DOMA' txt_domains space space CHANGING ct_html. ENDIF. PERFORM
html_links_leaf USING 'R3TR_DOMA' '' <ls_ztadir>-obj_name
<ls_ztadir>-descript CHANGING ct_html. ENDLOOP. IF l_step_b =
abap_true. l_step_b = abap_false. PERFORM html_links_node_end CHANGING
ct_html. ENDIF. ENDFORM. FORM links_ddic_dtel CHANGING ct_html TYPE
it_string c_step_a TYPE flag. DATA: l_step_b TYPE flag. FIELD-SYMBOLS:
<ls_ztadir> TYPE st_ztadir. LOOP AT gt_ztadir ASSIGNING <ls_ztadir>
WHERE pgmid = 'R3TR' AND object = 'DTEL'. IF l_step_b = abap_false.
l_step_b = abap_true. IF c_step_a = abap_false. c_step_a = abap_true.
PERFORM html_links_node_start USING 'tabllib' txt_dict_objs space space
CHANGING ct_html. ENDIF. PERFORM html_links_node_start USING
'R3TR_DTEL' txt_data_elements space space CHANGING ct_html. ENDIF.
PERFORM html_links_leaf USING 'R3TR_DTEL' '' <ls_ztadir>-obj_name
<ls_ztadir>-descript CHANGING ct_html. ENDLOOP. IF l_step_b =
abap_true. l_step_b = abap_false. PERFORM html_links_node_end CHANGING
ct_html. ENDIF. ENDFORM. FORM links_ddic_enqu CHANGING ct_html TYPE
it_string c_step_a TYPE flag. DATA: l_step_b TYPE flag. FIELD-SYMBOLS:
<ls_ztadir> TYPE st_ztadir. LOOP AT gt_ztadir ASSIGNING <ls_ztadir>
WHERE pgmid = 'R3TR' AND object = 'ENQU'. IF l_step_b = abap_false.
l_step_b = abap_true. IF c_step_a = abap_false. c_step_a = abap_true.
PERFORM html_links_node_start USING 'tabllib' txt_dict_objs space space
CHANGING ct_html. ENDIF. PERFORM html_links_node_start USING
'R3TR_ENQU' txt_lock_objects space space CHANGING ct_html. ENDIF.
PERFORM html_links_leaf USING 'R3TR_ENQU' '' <ls_ztadir>-obj_name
<ls_ztadir>-descript CHANGING ct_html. ENDLOOP. IF l_step_b =
abap_true. l_step_b = abap_false. PERFORM html_links_node_end CHANGING
ct_html. ENDIF. ENDFORM. FORM links_ddic_shlp CHANGING ct_html TYPE
it_string c_step_a TYPE flag. DATA: l_step_b TYPE flag. FIELD-SYMBOLS:
<ls_ztadir> TYPE st_ztadir. LOOP AT gt_ztadir ASSIGNING <ls_ztadir>
WHERE pgmid = 'R3TR' AND object = 'SHLP'. IF l_step_b = abap_false.
l_step_b = abap_true. IF c_step_a = abap_false. c_step_a = abap_true.
PERFORM html_links_node_start USING 'tabllib' txt_dict_objs space space
CHANGING ct_html. ENDIF. PERFORM html_links_node_start USING
'R3TR_SHLP' txt_srch_helps space space CHANGING ct_html. ENDIF. PERFORM
html_links_leaf USING 'R3TR_SHLP' '' <ls_ztadir>-obj_name
<ls_ztadir>-descript CHANGING ct_html. ENDLOOP. IF l_step_b =
abap_true. l_step_b = abap_false. PERFORM html_links_node_end CHANGING
ct_html. ENDIF. ENDFORM. FORM links_ddic_struc CHANGING ct_html TYPE
it_string c_step_a TYPE flag. DATA: l_step_b TYPE flag. FIELD-SYMBOLS:
<ls_ztadir> TYPE st_ztadir. LOOP AT gt_ztadir ASSIGNING <ls_ztadir>
WHERE pgmid = 'R3TR' AND object = 'TABL' AND ( tabclass = 'INTTAB' OR
tabclass = 'VIEW' OR tabclass = 'APPEND' ). IF l_step_b = abap_false.
l_step_b = abap_true. IF c_step_a = abap_false. c_step_a = abap_true.
PERFORM html_links_node_start USING 'tabllib' txt_dict_objs space space
CHANGING ct_html. ENDIF. PERFORM html_links_node_start USING
'R3TR_TABL_VIEWAPPEND' txt_structures space space CHANGING ct_html.
ENDIF. PERFORM html_links_leaf USING 'R3TR_TABL' 'VIEWAPPEND'
<ls_ztadir>-obj_name <ls_ztadir>-descript CHANGING ct_html. ENDLOOP. IF
l_step_b = abap_true. l_step_b = abap_false. PERFORM
html_links_node_end CHANGING ct_html. ENDIF. ENDFORM. FORM
links_ddic_ttyp CHANGING ct_html TYPE it_string c_step_a TYPE flag.
DATA: l_step_b TYPE flag. FIELD-SYMBOLS: <ls_ztadir> TYPE st_ztadir.
LOOP AT gt_ztadir ASSIGNING <ls_ztadir> WHERE pgmid = 'R3TR' AND object
= 'TTYP'. IF l_step_b = abap_false. l_step_b = abap_true. IF c_step_a =
abap_false. c_step_a = abap_true. PERFORM html_links_node_start USING
'tabllib' txt_dict_objs space space CHANGING ct_html. ENDIF. PERFORM
html_links_node_start USING 'R3TR_TTYP' txt_table_types space space
CHANGING ct_html. ENDIF. PERFORM html_links_leaf USING 'R3TR_TTYP' ''
<ls_ztadir>-obj_name <ls_ztadir>-descript CHANGING ct_html. ENDLOOP. IF
l_step_b = abap_true. l_step_b = abap_false. PERFORM
html_links_node_end CHANGING ct_html. ENDIF. ENDFORM. FORM
links_ddic_type CHANGING ct_html TYPE it_string c_step_a TYPE flag.
DATA: l_step_b TYPE flag. FIELD-SYMBOLS: <ls_ztadir> TYPE st_ztadir.
LOOP AT gt_ztadir ASSIGNING <ls_ztadir> WHERE pgmid = 'R3TR' AND object
= 'TYPE'. IF l_step_b = abap_false. l_step_b = abap_true. IF c_step_a =
abap_false. c_step_a = abap_true. PERFORM html_links_node_start USING
'tabllib' txt_dict_objs space space CHANGING ct_html. ENDIF. PERFORM
html_links_node_start USING 'R3TR_TYPE' txt_type_grps space space
CHANGING ct_html. ENDIF. PERFORM html_links_leaf USING 'R3TR_TYPE' ''
<ls_ztadir>-obj_name <ls_ztadir>-descript CHANGING ct_html. ENDLOOP. IF
l_step_b = abap_true. l_step_b = abap_false. PERFORM
html_links_node_end CHANGING ct_html. ENDIF. ENDFORM. FORM
links_ddic_view CHANGING ct_html TYPE it_string c_step_a TYPE flag.
DATA: l_step_b TYPE flag. FIELD-SYMBOLS: <ls_ztadir> TYPE st_ztadir.
LOOP AT gt_ztadir ASSIGNING <ls_ztadir> WHERE pgmid = 'R3TR' AND object
= 'VIEW'. IF l_step_b = abap_false. l_step_b = abap_true. IF c_step_a =
abap_false. c_step_a = abap_true. PERFORM html_links_node_start USING
'tabllib' txt_dict_objs space space CHANGING ct_html. ENDIF. PERFORM
html_links_node_start USING 'R3TR_VIEW_VIEW' txt_views space space
CHANGING ct_html. ENDIF. PERFORM html_links_leaf USING 'R3TR_VIEW' ''
<ls_ztadir>-obj_name <ls_ztadir>-descript CHANGING ct_html. ENDLOOP. IF
l_step_b = abap_true. l_step_b = abap_false. PERFORM
html_links_node_end CHANGING ct_html. ENDIF. ENDFORM. FORM links_fugr
CHANGING ct_html TYPE it_string. DATA: l_step_a TYPE flag, l_step_b
TYPE flag, ls_ztadir TYPE st_ztadir, l_id TYPE string, l_progname TYPE
progname. LOOP AT gt_ztadir INTO ls_ztadir WHERE pgmid = 'R3TR' AND
object = 'FUGR' AND futype = gc_futype_group. IF l_step_a = abap_false.
l_step_a = abap_true. PERFORM html_links_node_start USING 'R3TR_FUGR'
txt_function_groups space space CHANGING ct_html. ENDIF. PERFORM get_id
USING 'R3TR_FUGR__' ls_ztadir-obj_name CHANGING l_id. CALL FUNCTION
'RS_TADIR_TO_PROGNAME' EXPORTING object = ls_ztadir-object obj_name =
ls_ztadir-obj_name IMPORTING progname = l_progname. PERFORM
html_links_node_start USING l_id ls_ztadir-obj_name l_progname
ls_ztadir-descript CHANGING ct_html. PERFORM links_fugr_modules USING
ls_ztadir-obj_name CHANGING ct_html. PERFORM links_fugr_screens USING
ls_ztadir-obj_name CHANGING ct_html. PERFORM links_fugr_includes USING
ls_ztadir-obj_name CHANGING ct_html. PERFORM html_links_node_end
CHANGING ct_html. ENDLOOP. IF l_step_a = abap_true. PERFORM
html_links_node_end CHANGING ct_html. l_step_a = abap_false. ENDIF.
ENDFORM. FORM links_fugr_includes USING value(i_obj_name) CHANGING
ct_html TYPE it_string. DATA: l_id TYPE string, l_step_b TYPE flag.
FIELD-SYMBOLS: <ls_ztadir> TYPE st_ztadir. PERFORM get_id USING
'fugr_incl_' i_obj_name CHANGING l_id. LOOP AT gt_ztadir ASSIGNING
<ls_ztadir> WHERE pgmid = 'R3TR' AND object = 'FUGR' AND obj_name =
i_obj_name AND futype = gc_futype_include. IF l_step_b = abap_false.
l_step_b = abap_true. PERFORM html_links_node_start USING l_id
txt_includes space space CHANGING ct_html. ENDIF. PERFORM
html_links_leaf USING 'R3TR_FUGR' 'INCL' <ls_ztadir>-progname
<ls_ztadir>-descript CHANGING ct_html. ENDLOOP. IF l_step_b =
abap_true. PERFORM html_links_node_end CHANGING ct_html. l_step_b =
abap_false. ENDIF. ENDFORM. FORM links_fugr_modules USING
value(i_obj_name) CHANGING ct_html TYPE it_string. DATA: l_id TYPE
string, l_step_b TYPE flag. FIELD-SYMBOLS: <ls_ztadir> TYPE st_ztadir.
PERFORM get_id USING 'fugr_fuba_' i_obj_name CHANGING l_id. LOOP AT
gt_ztadir ASSIGNING <ls_ztadir> WHERE pgmid = 'R3TR' AND object =
'FUGR' AND obj_name = i_obj_name AND futype = gc_futype_module. IF
l_step_b = abap_false. l_step_b = abap_true. PERFORM
html_links_node_start USING l_id txt_function_modules space space
CHANGING ct_html. ENDIF. PERFORM html_links_leaf_filename USING
'R3TR_FUGR' 'FUBA' <ls_ztadir>-funcname <ls_ztadir>-progname
<ls_ztadir>-descript CHANGING ct_html. ENDLOOP. IF l_step_b =
abap_true. PERFORM html_links_node_end CHANGING ct_html. l_step_b =
abap_false. ENDIF. ENDFORM. FORM links_fugr_screens USING
value(i_obj_name) CHANGING ct_html TYPE it_string. DATA: l_filename
TYPE string, l_id TYPE string, l_step_b TYPE flag. FIELD-SYMBOLS:
<ls_ztadir> TYPE st_ztadir. PERFORM get_id USING 'fugr_scr_' i_obj_name
CHANGING l_id. LOOP AT gt_ztadir ASSIGNING <ls_ztadir> WHERE pgmid =
'R3TR' AND object = 'FUGR' AND obj_name = i_obj_name AND futype =
gc_futype_screen. IF l_step_b = abap_false. l_step_b = abap_true.
PERFORM html_links_node_start USING l_id txt_screens space space
CHANGING ct_html. ENDIF. CONCATENATE <ls_ztadir>-progname '-'
<ls_ztadir>-dynpronr INTO l_filename. PERFORM html_links_leaf_filename
USING 'R3TR_FUGR' 'SCR' <ls_ztadir>-dynpronr l_filename
<ls_ztadir>-descript CHANGING ct_html. ENDLOOP. IF l_step_b =
abap_true. PERFORM html_links_node_end CHANGING ct_html. l_step_b =
abap_false. ENDIF. ENDFORM. FORM links_incl CHANGING ct_html TYPE
it_string. DATA: l_step_a TYPE flag, l_step_b TYPE flag. FIELD-SYMBOLS:
<ls_ztadir> TYPE st_ztadir. LOOP AT gt_ztadir ASSIGNING <ls_ztadir>
WHERE pgmid = 'R3TR' AND object = 'PROG' AND subc = 'I'. IF l_step_a =
abap_false. l_step_a = abap_true. PERFORM html_links_node_start USING
'prog_I' txt_includes space space CHANGING ct_html. ENDIF. PERFORM
html_links_leaf USING 'R3TR_PROG' 'INCL' <ls_ztadir>-obj_name
<ls_ztadir>-descript CHANGING ct_html. ENDLOOP. IF l_step_a =
abap_true. PERFORM html_links_node_end CHANGING ct_html. l_step_a =
abap_false. ENDIF. ENDFORM. FORM links_msag CHANGING ct_html TYPE
it_string. DATA: l_step_a TYPE flag, l_step_b TYPE flag. FIELD-SYMBOLS:
<ls_ztadir> TYPE st_ztadir. LOOP AT gt_ztadir ASSIGNING <ls_ztadir>
WHERE pgmid = 'R3TR' AND object = 'MSAG'. IF l_step_a = abap_false.
l_step_a = abap_true. PERFORM html_links_node_start USING 'msag'
txt_message_classes space space CHANGING ct_html. ENDIF. PERFORM
html_links_leaf USING 'R3TR_MSAG' '' <ls_ztadir>-obj_name
<ls_ztadir>-descript CHANGING ct_html. ENDLOOP. IF l_step_a =
abap_true. PERFORM html_links_node_end CHANGING ct_html. l_step_a =
abap_false. ENDIF. ENDFORM. FORM links_para CHANGING ct_html TYPE
it_string. DATA: l_step_a TYPE flag, l_step_b TYPE flag, l_filename
TYPE string. FIELD-SYMBOLS: <ls_ztadir> TYPE st_ztadir. LOOP AT
gt_ztadir ASSIGNING <ls_ztadir> WHERE pgmid = 'R3TR' AND object =
'PARA'. IF l_step_a = abap_false. l_step_a = abap_true. PERFORM
html_links_node_start USING 'para' txt_set_get_parameters space space
CHANGING ct_html. ENDIF. CONCATENATE <ls_ztadir>-obj_name '.'
gc_extension_htm INTO l_filename. PERFORM encode_uri_link CHANGING
l_filename. PERFORM replace_all USING '%' 'x' CHANGING l_filename.
PERFORM html_links_leaf_popup USING 'R3TR_PARA' <ls_ztadir>-obj_name
l_filename <ls_ztadir>-descript tpt_para CHANGING ct_html. ENDLOOP. IF
l_step_a = abap_true. PERFORM html_links_node_end CHANGING ct_html.
l_step_a = abap_false. ENDIF. ENDFORM. FORM links_prog CHANGING ct_html
TYPE it_string. DATA: l_step_a TYPE flag, l_step_b TYPE flag.
FIELD-SYMBOLS: <ls_ztadir> TYPE st_ztadir. LOOP AT gt_ztadir ASSIGNING
<ls_ztadir> WHERE pgmid = 'R3TR' AND object = 'PROG' AND subc = '1'. IF
l_step_a = abap_false. l_step_a = abap_true. PERFORM
html_links_node_start USING 'prog_1' txt_programs space space CHANGING
ct_html. ENDIF. PERFORM html_links_leaf USING 'R3TR_PROG' 'REPO'
<ls_ztadir>-obj_name <ls_ztadir>-descript CHANGING ct_html. ENDLOOP. IF
l_step_a = abap_true. PERFORM html_links_node_end CHANGING ct_html.
l_step_a = abap_false. ENDIF. ENDFORM. FORM links_seo CHANGING ct_html
TYPE it_string. DATA: l_step_a TYPE flag. PERFORM links_seo_clas
CHANGING ct_html l_step_a. PERFORM links_seo_intf CHANGING ct_html
l_step_a. IF l_step_a = abap_true. PERFORM html_links_node_end CHANGING
ct_html. l_step_a = abap_false. ENDIF. ENDFORM. FORM links_seo_clas
CHANGING ct_html TYPE it_string c_step_a TYPE flag. DATA: l_step_b TYPE
flag. FIELD-SYMBOLS: <ls_ztadir> TYPE st_ztadir. LOOP AT gt_ztadir
ASSIGNING <ls_ztadir> WHERE pgmid = 'R3TR' AND object = 'CLAS'. IF
l_step_b = abap_false. l_step_b = abap_true. IF c_step_a = abap_false.
c_step_a = abap_true. PERFORM html_links_node_start USING 'claslib'
txt_class_library space space CHANGING ct_html. ENDIF. PERFORM
html_links_node_start USING 'R3TR_CLAS' txt_classes space space
CHANGING ct_html. ENDIF. PERFORM html_links_leaf USING 'R3TR_CLAS' ''
<ls_ztadir>-obj_name <ls_ztadir>-descript CHANGING ct_html. ENDLOOP. IF
l_step_b = abap_true. l_step_b = abap_false. PERFORM
html_links_node_end CHANGING ct_html. ENDIF. ENDFORM. FORM
links_seo_intf CHANGING ct_html TYPE it_string c_step_a TYPE flag.
DATA: l_step_b TYPE flag. FIELD-SYMBOLS: <ls_ztadir> TYPE st_ztadir.
LOOP AT gt_ztadir ASSIGNING <ls_ztadir> WHERE pgmid = 'R3TR' AND object
= 'INTF'. IF l_step_b = abap_false. l_step_b = abap_true. IF c_step_a =
abap_false. c_step_a = abap_true. PERFORM html_links_node_start USING
'claslib' txt_class_library space space CHANGING ct_html. ENDIF.
PERFORM html_links_node_start USING 'R3TR_INTF' txt_interfaces space
space CHANGING ct_html. ENDIF. PERFORM html_links_leaf USING
'R3TR_INTF' '' <ls_ztadir>-obj_name <ls_ztadir>-descript CHANGING
ct_html. ENDLOOP. IF l_step_b = abap_true. l_step_b = abap_false.
PERFORM html_links_node_end CHANGING ct_html. ENDIF. ENDFORM. FORM
links_tobj CHANGING ct_html TYPE it_string. DATA: l_step_a TYPE flag,
l_step_b TYPE flag. FIELD-SYMBOLS: <ls_ztadir> TYPE st_ztadir. LOOP AT
gt_ztadir ASSIGNING <ls_ztadir> WHERE pgmid = 'R3TR' AND object =
'SUSO'. IF l_step_a = abap_false. l_step_a = abap_true. PERFORM
html_links_node_start USING 'suso' txt_authorization_object___2 space
space CHANGING ct_html. ENDIF. PERFORM html_links_leaf USING
'R3TR_SUSO' '' <ls_ztadir>-obj_name <ls_ztadir>-descript CHANGING
ct_html. ENDLOOP. IF l_step_a = abap_true. PERFORM html_links_node_end
CHANGING ct_html. l_step_a = abap_false. ENDIF. ENDFORM. FORM
links_tran CHANGING ct_html TYPE it_string. DATA: l_cinfo TYPE syhex01,
l_def_call_tcode TYPE tcode, l_length TYPE i, l_off TYPE i, l_param
TYPE tcdparam, l_step_a TYPE flag, l_step_b TYPE flag, l_tcode TYPE
tcode, l_ttype TYPE c. CONSTANTS: lc_hex_tra TYPE x VALUE '00',
lc_hex_men TYPE x VALUE '01', lc_hex_par TYPE x VALUE '02', lc_hex_rep
TYPE x VALUE '80', lc_hex_rpv TYPE x VALUE '10', lc_hex_obj TYPE x
VALUE '08', lc_hex_chk TYPE x VALUE '04', lc_oo_tcode LIKE tstc-tcode
VALUE 'OS_APPLICATION'. FIELD-SYMBOLS: <ls_ztadir> TYPE st_ztadir. LOOP
AT gt_ztadir ASSIGNING <ls_ztadir> WHERE pgmid = 'R3TR' AND object =
'TRAN'. l_tcode = <ls_ztadir>-obj_name. SELECT SINGLE cinfo FROM tstc
INTO l_cinfo WHERE tcode = l_tcode. SELECT SINGLE param FROM tstcp INTO
l_param WHERE tcode = l_tcode. CASE l_param(1). WHEN '@'. l_off = 1. IF
l_param(2) = '@@'. l_off = 2. ENDIF. IF l_param CA space. ENDIF.
l_length = sy-fdpos - l_off. l_def_call_tcode =
l_param+l_off(l_length). WHEN '/'. IF l_param CA space. ENDIF. l_length
= sy-fdpos. IF l_length > 2. SUBTRACT 2 FROM l_length. l_def_call_tcode
= l_param+2(l_length). ENDIF. ENDCASE. IF l_cinfo O lc_hex_rep. l_ttype
= gc_tcode_report. ELSEIF l_cinfo O lc_hex_obj. l_ttype =
gc_tcode_object. ELSEIF l_cinfo O lc_hex_par. l_ttype =
gc_tcode_parameter. IF NOT l_param IS INITIAL AND l_param(1) = '@'.
l_ttype = gc_tcode_variant. ELSEIF l_def_call_tcode = lc_oo_tcode.
l_ttype = gc_tcode_object. ENDIF. ELSEIF l_cinfo O lc_hex_men. ELSE.
l_ttype = gc_tcode_dialog. ENDIF. IF l_step_a = abap_false. l_step_a =
abap_true. PERFORM html_links_node_start USING 'tran' txt_transactions
space space CHANGING ct_html. ENDIF. PERFORM html_links_leaf USING
'R3TR_TRAN' l_ttype <ls_ztadir>-obj_name <ls_ztadir>-descript CHANGING
ct_html. ENDLOOP. IF l_step_a = abap_true. PERFORM html_links_node_end
CHANGING ct_html. l_step_a = abap_false. ENDIF. ENDFORM. FORM
links_xslt CHANGING ct_html TYPE it_string. DATA: l_step_a TYPE flag,
l_step_b TYPE flag. FIELD-SYMBOLS: <ls_ztadir> TYPE st_ztadir. LOOP AT
gt_ztadir ASSIGNING <ls_ztadir> WHERE pgmid = 'R3TR' AND object =
'XSLT'. IF l_step_a = abap_false. l_step_a = abap_true. PERFORM
html_links_node_start USING 'xslt' txt_transformations space space
CHANGING ct_html. ENDIF. PERFORM html_links_leaf USING 'R3TR_XSLT' ''
<ls_ztadir>-obj_name <ls_ztadir>-descript CHANGING ct_html. ENDLOOP. IF
l_step_a = abap_true. PERFORM html_links_node_end CHANGING ct_html.
l_step_a = abap_false. ENDIF. ENDFORM. FORM select. DATA: lt_tadir TYPE
STANDARD TABLE OF tadir. SELECT * FROM tadir INTO TABLE lt_tadir WHERE
devclass = g_pack. PERFORM select_obj TABLES lt_tadir. DESCRIBE TABLE
gt_ztadir LINES g_cnt_elems. ENDFORM. FORM select_obj TABLES tt_tadir
STRUCTURE tadir. DATA: l_where TYPE string, ls_ztadir TYPE st_ztadir,
l_last_pgmid TYPE pgmid, l_last_object TYPE trobjtype. FIELD-SYMBOLS:
<ls_tadir> TYPE tadir. SORT tt_tadir BY pgmid object. LOOP AT tt_tadir
ASSIGNING <ls_tadir>. CLEAR ls_ztadir. MOVE-CORRESPONDING <ls_tadir> TO
ls_ztadir. CASE <ls_tadir>-pgmid. WHEN 'R3TR'. CASE <ls_tadir>-object.
WHEN 'CLAS'. PERFORM select_seoclass CHANGING ls_ztadir. WHEN 'DOMA'.
PERFORM select_dd01 CHANGING ls_ztadir. WHEN 'DTEL'. PERFORM
select_dd04 CHANGING ls_ztadir. WHEN 'ENQU'. PERFORM select_dd25
CHANGING ls_ztadir. WHEN 'FUGR'. PERFORM select_fdir CHANGING
ls_ztadir. WHEN 'INTF'. PERFORM select_seoclass CHANGING ls_ztadir.
WHEN 'MSAG'. PERFORM select_t100 CHANGING ls_ztadir. WHEN 'PARA'.
PERFORM select_tpara CHANGING ls_ztadir. WHEN 'PROG'. PERFORM
select_trdir CHANGING ls_ztadir. WHEN 'SHLP'. PERFORM select_dd30
CHANGING ls_ztadir. WHEN 'SUSO'. PERFORM select_tobj CHANGING
ls_ztadir. WHEN 'TABL'. PERFORM select_dd02 CHANGING ls_ztadir. WHEN
'TRAN'. PERFORM select_tstc CHANGING ls_ztadir. WHEN 'TTYP'. PERFORM
select_dd40 CHANGING ls_ztadir. WHEN 'TYPE'. PERFORM select_ddtypet
CHANGING ls_ztadir. WHEN 'VIEW'. PERFORM select_dd25 CHANGING
ls_ztadir. WHEN 'WAPA'. PERFORM select_o2_appl CHANGING ls_ztadir. WHEN
'WTAG'. PERFORM select_o2_taglib CHANGING ls_ztadir. WHEN 'XSLT'.
PERFORM select_o2_xslt CHANGING ls_ztadir. WHEN OTHERS. ls_ztadir-subrc
= gc_subrc_not_found. ENDCASE. WHEN OTHERS. ls_ztadir-subrc =
gc_subrc_not_found. ENDCASE. IF ls_ztadir-subrc = 0. APPEND ls_ztadir
TO gt_ztadir. ENDIF. ENDLOOP. SORT gt_ztadir BY obj_name. ENDFORM. FORM
select_dd01 CHANGING cs_ztadir TYPE st_ztadir. DATA: l_ddtext TYPE
as4text, l_domname TYPE domname. IF g_add_elem_doma = abap_false.
cs_ztadir-subrc = gc_subrc_deselected. ELSE. SELECT SINGLE ddtext FROM
dd01t INTO l_ddtext WHERE domname = cs_ztadir-obj_name AND ddlanguage =
sy-langu AND as4local = 'A'. IF sy-subrc = 0. cs_ztadir-descript =
l_ddtext. ELSE. SELECT SINGLE domname FROM dd01l INTO l_domname WHERE
domname = cs_ztadir-obj_name AND as4local = 'A'. IF sy-subrc = 0.
cs_ztadir-obj_name = l_domname. ELSE. cs_ztadir-subrc =
gc_subrc_not_found. ENDIF. ENDIF. ENDIF. ENDFORM. FORM select_dd02
CHANGING cs_ztadir TYPE st_ztadir. DATA: l_ddtext TYPE as4text,
l_tabname TYPE tabname. l_tabname = cs_ztadir-obj_name. SELECT SINGLE
tabclass FROM dd02l INTO cs_ztadir-tabclass WHERE tabname = l_tabname
AND as4local = 'A'. IF sy-subrc = 0. IF ( cs_ztadir-tabclass = 'INTTAB'
OR cs_ztadir-tabclass = 'VIEW' OR cs_ztadir-tabclass = 'APPEND' ) AND
g_add_elem_struc = abap_false. cs_ztadir-subrc = gc_subrc_deselected.
ELSEIF ( cs_ztadir-tabclass = 'CLUSTER' OR cs_ztadir-tabclass = 'POOL'
OR cs_ztadir-tabclass = 'TRANSP' ) AND g_add_elem_tabl = abap_false.
cs_ztadir-subrc = gc_subrc_deselected. ELSE. SELECT SINGLE ddtext FROM
dd02t INTO l_ddtext WHERE tabname = l_tabname AND ddlanguage = sy-langu
AND as4local = 'A'. IF sy-subrc = 0. cs_ztadir-descript = l_ddtext.
ENDIF. ENDIF. ELSE. cs_ztadir-subrc = gc_subrc_not_found. ENDIF.
ENDFORM. FORM select_dd04 CHANGING cs_ztadir TYPE st_ztadir. DATA:
l_ddtext TYPE as4text, l_rollname TYPE rollname. IF g_add_elem_dtel =
abap_false. cs_ztadir-subrc = gc_subrc_deselected. ELSE. l_rollname =
cs_ztadir-obj_name. SELECT SINGLE ddtext FROM dd04t INTO l_ddtext WHERE
rollname = l_rollname AND ddlanguage = sy-langu AND as4local = 'A'. IF
sy-subrc = 0. cs_ztadir-descript = l_ddtext. ELSE. SELECT SINGLE
rollname FROM dd04l INTO l_rollname WHERE rollname = l_rollname AND
as4local = 'A'. IF sy-subrc <> 0. cs_ztadir-subrc = gc_subrc_not_found.
ENDIF. ENDIF. ENDIF. ENDFORM. FORM select_dd25 CHANGING cs_ztadir TYPE
st_ztadir. DATA: l_ddtext TYPE ddtext, l_viewname TYPE viewname. IF (
cs_ztadir-object = 'ENQU' AND g_add_elem_enqu = abap_false ) OR (
cs_ztadir-object = 'VIEW' AND g_add_elem_view = abap_false ).
cs_ztadir-subrc = gc_subrc_deselected. ELSE. l_viewname =
cs_ztadir-obj_name. SELECT SINGLE aggtype FROM dd25l INTO
cs_ztadir-aggtype WHERE viewname = l_viewname AND as4local = 'A'. IF
sy-subrc = 0. SELECT SINGLE ddtext FROM dd25t INTO l_ddtext WHERE
viewname = l_viewname AND ddlanguage = sy-langu AND as4local = 'A'. IF
sy-subrc = 0. cs_ztadir-descript = l_ddtext. ENDIF. ELSE.
cs_ztadir-subrc = gc_subrc_not_found. ENDIF. ENDIF. ENDFORM. FORM
select_dd30 CHANGING cs_ztadir TYPE st_ztadir. DATA: l_ddtext TYPE
ddtext, l_shlpname TYPE shlpname. IF g_add_elem_shlp = abap_false.
cs_ztadir-subrc = gc_subrc_deselected. ELSE. l_shlpname =
cs_ztadir-obj_name. SELECT SINGLE ddtext FROM dd30t INTO l_ddtext WHERE
shlpname = l_shlpname AND ddlanguage = sy-langu AND as4local = 'A'. IF
sy-subrc = 0. cs_ztadir-descript = l_ddtext. ELSE. SELECT SINGLE
shlpname FROM dd30l INTO l_shlpname WHERE shlpname = l_shlpname AND
as4local = 'A'. IF sy-subrc <> 0. cs_ztadir-subrc = gc_subrc_not_found.
ENDIF. ENDIF. ENDIF. ENDFORM. FORM select_dd40 CHANGING cs_ztadir TYPE
st_ztadir. DATA: l_ddtext TYPE ddtext, l_typename TYPE typename. IF
g_add_elem_ttyp = abap_false. cs_ztadir-subrc = gc_subrc_deselected.
ELSE. l_typename = cs_ztadir-obj_name. SELECT SINGLE ddtext FROM dd40t
INTO l_ddtext WHERE typename = l_typename AND ddlanguage = sy-langu AND
as4local = 'A'. IF sy-subrc = 0. cs_ztadir-descript = l_ddtext. ELSE.
SELECT SINGLE typename FROM dd40l INTO l_typename WHERE typename =
l_typename AND as4local = 'A'. IF sy-subrc <> 0. cs_ztadir-subrc =
gc_subrc_not_found. ENDIF. ENDIF. ENDIF. ENDFORM. FORM select_ddtypet
CHANGING cs_ztadir TYPE st_ztadir. DATA: l_ddtext TYPE ddtext,
l_typegroup TYPE typegroup. IF g_add_elem_type = abap_false.
cs_ztadir-subrc = gc_subrc_deselected. ELSE. l_typegroup =
cs_ztadir-obj_name. SELECT SINGLE ddtext FROM ddtypet INTO l_ddtext
WHERE typegroup = l_typegroup AND ddlanguage = sy-langu. IF sy-subrc =
0. cs_ztadir-descript = l_ddtext. ELSE. cs_ztadir-subrc =
gc_subrc_not_found. ENDIF. ENDIF. ENDFORM. FORM select_fdir CHANGING
cs_ztadir TYPE st_ztadir. DATA: ls_ztadir TYPE st_ztadir, lt_ztadir
TYPE it_ztadir, lt_fdir TYPE STANDARD TABLE OF v_fdir, l_progname TYPE
progname, lt_incl TYPE STANDARD TABLE OF progname, l_incl TYPE
progname, l_group TYPE area, l_include_number TYPE includenr, lt_d020s
TYPE STANDARD TABLE OF d020s, l_area TYPE rs38l_area, l_areat TYPE
areat, l_stext TYPE rs38l_ftxt, l_dtxt TYPE as4text, l_text TYPE repti.
FIELD-SYMBOLS: <ls_fdir> TYPE v_fdir, <ls_d020s> TYPE d020s. l_area =
cs_ztadir-obj_name. IF g_add_elem_fugr = abap_false. cs_ztadir-subrc =
gc_subrc_deselected. ELSE. cs_ztadir-futype = gc_futype_group. SELECT
SINGLE areat FROM tlibt INTO l_areat WHERE area = l_area AND spras =
sy-langu. IF sy-subrc = 0. cs_ztadir-descript = l_areat. ELSE. SELECT
SINGLE area FROM tlibg INTO l_area WHERE area = l_area. IF sy-subrc <>
0. cs_ztadir-subrc = gc_subrc_not_found. CHECK sy-subrc = 0. ENDIF.
ENDIF. CALL FUNCTION 'RS_TADIR_TO_PROGNAME' EXPORTING object =
cs_ztadir-object obj_name = cs_ztadir-obj_name IMPORTING progname =
l_progname. ENDIF. IF g_add_elem_fuba = abap_true OR g_add_elem_fuincl
= abap_true. SELECT * FROM v_fdir INTO TABLE lt_fdir WHERE area =
l_area AND active = abap_true. LOOP AT lt_fdir ASSIGNING <ls_fdir>.
CLEAR ls_ztadir. MOVE-CORRESPONDING cs_ztadir TO ls_ztadir. CLEAR
ls_ztadir-descript. ls_ztadir-futype = gc_futype_module.
ls_ztadir-funcname = <ls_fdir>-funcname. IF NOT <ls_fdir>-masterlang IS
INITIAL. ls_ztadir-masterlang = <ls_fdir>-masterlang. ENDIF. SELECT
SINGLE stext FROM tftit INTO l_stext WHERE funcname =
<ls_fdir>-funcname AND spras = sy-langu. IF sy-subrc = 0.
ls_ztadir-descript = l_stext. ENDIF. CALL FUNCTION
'FUNCTION_INCLUDE_CONCATENATE' EXPORTING include_number =
<ls_fdir>-include IMPORTING include = ls_ztadir-progname CHANGING group
= <ls_fdir>-area. APPEND ls_ztadir TO lt_ztadir. IF g_add_elem_fuba =
abap_true. APPEND ls_ztadir TO gt_ztadir. ENDIF. ENDLOOP. ENDIF. IF
g_add_elem_scr = abap_true. SELECT * FROM d020s INTO TABLE lt_d020s
WHERE prog = l_progname. LOOP AT lt_d020s ASSIGNING <ls_d020s>. CLEAR
ls_ztadir. MOVE-CORRESPONDING cs_ztadir TO ls_ztadir. CLEAR
ls_ztadir-descript. SELECT SINGLE dtxt FROM d020t INTO l_dtxt WHERE
prog = l_progname AND dynr = <ls_d020s>-dnum AND lang = sy-langu. IF
sy-subrc = 0. ls_ztadir-descript = l_dtxt. ENDIF. ls_ztadir-futype =
gc_futype_screen. ls_ztadir-progname = l_progname. ls_ztadir-dynpronr =
<ls_d020s>-dnum. ls_ztadir-masterlang = <ls_d020s>-spra. APPEND
ls_ztadir TO gt_ztadir. ENDLOOP. ENDIF. IF g_add_elem_fuincl =
abap_true. CALL FUNCTION 'GET_INCLUDETAB' EXPORTING progname =
l_progname TABLES incltab = lt_incl. SORT lt_incl. LOOP AT lt_incl INTO
l_incl. l_progname = l_incl. CALL FUNCTION 'FUNCTION_INCLUDE_SPLIT'
IMPORTING group = l_group include_number = l_include_number CHANGING
include = l_progname. READ TABLE lt_ztadir TRANSPORTING NO FIELDS WITH
KEY progname = l_progname. IF sy-subrc = 0. CONTINUE. ENDIF. IF l_group
= cs_ztadir-obj_name AND NOT l_include_number IS INITIAL. CONTINUE.
ENDIF. CLEAR ls_ztadir. MOVE-CORRESPONDING cs_ztadir TO ls_ztadir.
CLEAR ls_ztadir-descript. SELECT SINGLE text FROM trdirt INTO l_text
WHERE name = l_incl AND sprsl = sy-langu. IF sy-subrc = 0.
ls_ztadir-descript = l_text. ENDIF. ls_ztadir-futype =
gc_futype_include. ls_ztadir-funcname = l_incl. ls_ztadir-progname =
l_incl. CALL FUNCTION 'RS_PROGRAM_GET_DEVCLASS' EXPORTING progname =
ls_ztadir-progname IMPORTING devclass = ls_ztadir-devclass. APPEND
ls_ztadir TO gt_ztadir. ENDLOOP. ENDIF. ENDFORM. FORM select_o2_appl
CHANGING cs_ztadir TYPE st_ztadir. DATA: l_text TYPE as4text,
l_applname(30) TYPE c, l_applext(30) TYPE c, l_descript(60) TYPE c,
ls_ztadir TYPE st_ztadir, l_pagekey(70) TYPE c, l_pagename(70) TYPE c,
l_pagetype TYPE c, lt_mime TYPE it_mime. FIELD-SYMBOLS: <ls_mime> TYPE
st_mime. IF g_add_elem_o2appl = abap_false. cs_ztadir-subrc =
gc_subrc_deselected. ELSE. l_applname = cs_ztadir-obj_name. SELECT
SINGLE applname applext FROM ('O2APPL') INTO (l_applname, l_applext)
WHERE applname = l_applname AND version = 'A'. IF sy-subrc = 0.
cs_ztadir-o2name = l_applext. SELECT SINGLE text FROM ('O2APPLT') INTO
l_text WHERE applname = l_applname AND langu = sy-langu. IF sy-subrc =
0. cs_ztadir-descript = l_text. ENDIF. SELECT pagekey pagename pagetype
FROM ('O2PAGDIR') INTO (l_pagekey, l_pagename, l_pagetype) WHERE
applname = l_applname ORDER BY pagekey. IF ( l_pagetype = gc_o2type_bsp
AND g_add_elem_o2applbsp = abap_true ) OR ( l_pagetype = gc_o2type_ctrl
AND g_add_elem_o2applctrl = abap_true ) OR ( l_pagetype =
gc_o2type_incl AND g_add_elem_o2applincl = abap_true ) OR ( l_pagetype
= gc_o2type_view AND g_add_elem_o2applview = abap_true ). CLEAR:
ls_ztadir. MOVE-CORRESPONDING cs_ztadir TO ls_ztadir. CLEAR l_descript.
SELECT SINGLE descript FROM ('O2PAGDIRT') INTO l_descript WHERE
applname = l_applname AND pagekey = l_pagekey AND langu = sy-langu.
ls_ztadir-descript = l_descript. ls_ztadir-o2pagekey = l_pagekey.
ls_ztadir-o2pagename = l_pagename. ls_ztadir-o2type = l_pagetype.
APPEND ls_ztadir TO gt_ztadir. ENDIF. ENDSELECT. IF
g_add_elem_o2applmime = abap_true. PERFORM o2_get_mimes USING
l_applname CHANGING lt_mime. LOOP AT lt_mime ASSIGNING <ls_mime>.
CLEAR: ls_ztadir. MOVE-CORRESPONDING cs_ztadir TO ls_ztadir. CLEAR
ls_ztadir-descript. ls_ztadir-o2pagekey = <ls_mime>-key.
ls_ztadir-o2pagename = <ls_mime>-name. ls_ztadir-o2type =
gc_o2type_mime. ls_ztadir-mime_objtype = <ls_mime>-objtype.
ls_ztadir-mime_class = <ls_mime>-class. ls_ztadir-mime_objid =
<ls_mime>-objid. ls_ztadir-descript = <ls_mime>-mimetype_descript.
APPEND ls_ztadir TO gt_ztadir. ENDLOOP. ENDIF. ELSE. cs_ztadir-subrc =
gc_subrc_not_found. ENDIF. ENDIF. ENDFORM. FORM select_o2_taglib
CHANGING cs_ztadir TYPE st_ztadir. DATA: l_descript TYPE as4text,
l_tlibid(30) TYPE c, l_tagid(30) TYPE c, ls_ztadir TYPE st_ztadir. IF
g_add_elem_o2taglib = abap_false. cs_ztadir-subrc =
gc_subrc_deselected. ELSE. l_tlibid = cs_ztadir-obj_name. SELECT SINGLE
tlibid FROM ('O2TAGLIB') INTO l_tlibid WHERE tlibid = l_tlibid AND
state = 'A'. IF sy-subrc = 0. SELECT SINGLE descript FROM ('TAGLIBT')
INTO l_descript WHERE tlibid = l_tlibid AND state = 'A' AND langu =
sy-langu. IF sy-subrc = 0. cs_ztadir-descript = l_descript. ENDIF.
SELECT tagid FROM ('O2TAG') INTO l_tagid WHERE tlibid = l_tlibid AND
state = 'A'. CLEAR: ls_ztadir. MOVE-CORRESPONDING cs_ztadir TO
ls_ztadir. CLEAR ls_ztadir-descript. SELECT SINGLE descript FROM
('TAGT') INTO l_descript WHERE tlibid = l_tlibid AND state = 'A' AND
langu = sy-langu AND tagid = l_tagid. IF sy-subrc = 0.
ls_ztadir-descript = l_descript. ENDIF. ls_ztadir-o2type =
gc_o2type_tag. ls_ztadir-o2name = l_tagid. ls_ztadir-o2pagekey =
l_tagid. TRANSLATE ls_ztadir-o2pagekey TO UPPER CASE. APPEND ls_ztadir
TO gt_ztadir. ENDSELECT. ELSE. cs_ztadir-subrc = gc_subrc_not_found.
ENDIF. ENDIF. ENDFORM. FORM select_o2_xslt CHANGING cs_ztadir TYPE
st_ztadir. DATA: l_descript TYPE as4text, l_xsltdesc(40) TYPE c. IF
g_add_elem_xslt = abap_false. cs_ztadir-subrc = gc_subrc_deselected.
ELSE. l_xsltdesc = cs_ztadir-obj_name. SELECT SINGLE descript FROM
('O2XSLTTEXT') INTO l_descript WHERE xsltdesc = l_xsltdesc AND langu =
sy-langu AND state = 'A'. IF sy-subrc = 0. cs_ztadir-descript =
l_descript. ELSE. cs_ztadir-subrc = gc_subrc_not_found. ENDIF. ENDIF.
ENDFORM. FORM select_seoclass CHANGING cs_ztadir TYPE st_ztadir. DATA:
l_descript TYPE seodescr, l_clsname TYPE seoclsname, l_type TYPE
seoclstype. l_clsname = cs_ztadir-obj_name. CASE cs_ztadir-object. WHEN
'CLAS'. l_type = 0. IF g_add_elem_clas = abap_false. cs_ztadir-subrc =
gc_subrc_deselected. ENDIF. WHEN 'INTF'. l_type = 1. IF g_add_elem_intf
= abap_false. cs_ztadir-subrc = gc_subrc_deselected. ENDIF. WHEN
OTHERS. l_type = 2. ENDCASE. IF cs_ztadir-subrc = 0. SELECT SINGLE
clsname FROM seoclass INTO l_clsname WHERE clsname = l_clsname AND
clstype = l_type. IF sy-subrc <> 0. cs_ztadir-subrc =
gc_subrc_not_found. ELSE. SELECT SINGLE descript FROM seoclasstx INTO
l_descript WHERE clsname = l_clsname AND langu = sy-langu. IF sy-subrc
= 0. cs_ztadir-descript = l_descript. ENDIF. ENDIF. ENDIF. ENDFORM.
FORM select_t100 CHANGING cs_ztadir TYPE st_ztadir. DATA: l_arbgb TYPE
arbgb, l_stext TYPE as4text. l_arbgb = cs_ztadir-obj_name. IF
g_add_elem_msag = abap_false. cs_ztadir-subrc = gc_subrc_deselected.
ELSE. SELECT SINGLE stext FROM t100a INTO l_stext WHERE arbgb =
l_arbgb. IF sy-subrc <> 0. cs_ztadir-subrc = gc_subrc_not_found. ELSE.
SELECT SINGLE stext FROM t100t INTO l_stext WHERE arbgb = l_arbgb AND
sprsl = sy-langu. cs_ztadir-descript = l_stext. ENDIF. ENDIF. ENDFORM.
FORM select_tobj CHANGING cs_ztadir TYPE st_ztadir. DATA: l_objct TYPE
xuobject, l_ttext TYPE xutext. l_objct = cs_ztadir-obj_name. IF
g_add_elem_tobj = abap_false. cs_ztadir-subrc = gc_subrc_deselected.
ELSE. SELECT SINGLE objct FROM tobj INTO l_objct WHERE objct = l_objct.
IF sy-subrc <> 0. cs_ztadir-subrc = gc_subrc_not_found. ELSE. SELECT
SINGLE ttext FROM tobjt INTO l_ttext WHERE object = l_objct AND langu =
sy-langu. IF sy-subrc = 0. cs_ztadir-descript = l_ttext. ENDIF. ENDIF.
ENDIF. ENDFORM. FORM select_tpara CHANGING cs_ztadir TYPE st_ztadir.
DATA: l_paramid TYPE memoryid, l_partext TYPE as4text. l_paramid =
cs_ztadir-obj_name. IF g_add_elem_para = abap_false. cs_ztadir-subrc =
gc_subrc_deselected. ELSE. SELECT SINGLE partext FROM tpara INTO
l_partext WHERE paramid = l_paramid. IF sy-subrc <> 0. cs_ztadir-subrc
= gc_subrc_not_found. ELSE. cs_ztadir-descript = l_partext. SELECT
SINGLE partext FROM tparat INTO l_partext WHERE paramid = l_paramid AND
sprache = sy-langu. IF sy-subrc = 0. cs_ztadir-descript = l_partext.
ENDIF. ENDIF. ENDIF. ENDFORM. FORM select_tstc CHANGING cs_ztadir TYPE
st_ztadir. DATA: l_tcode TYPE tcode, l_ttext TYPE ttext_stct. l_tcode =
cs_ztadir-obj_name. IF g_add_elem_tran = abap_false. cs_ztadir-subrc =
gc_subrc_deselected. ELSE. SELECT SINGLE tcode FROM tstc INTO l_tcode
WHERE tcode = l_tcode. IF sy-subrc <> 0. cs_ztadir-subrc =
gc_subrc_not_found. ELSE. SELECT SINGLE ttext FROM tstct INTO l_ttext
WHERE tcode = l_tcode AND sprsl = sy-langu. IF sy-subrc = 0.
cs_ztadir-descript = l_ttext. ENDIF. ENDIF. ENDIF. ENDFORM. FORM
select_trdir CHANGING cs_ztadir TYPE st_ztadir. DATA: l_program TYPE
sy-repid, l_title TYPE rs38m-repti. l_program = cs_ztadir-obj_name.
CALL FUNCTION 'PROGRAM_TITLE' EXPORTING program = l_program language =
sy-langu IMPORTING title = l_title. cs_ztadir-descript = l_title.
cs_ztadir-progname = cs_ztadir-obj_name. SELECT SINGLE subc FROM trdir
INTO cs_ztadir-subc WHERE name = cs_ztadir-progname. IF sy-subrc <> 0
OR cs_ztadir-subc NA '1I'. cs_ztadir-subrc = gc_subrc_not_found. ELSEIF
( cs_ztadir-subc = 'I' AND g_add_elem_incl = abap_false ) OR (
cs_ztadir-subc = '1' AND g_add_elem_prog = abap_false ).
cs_ztadir-subrc = gc_subrc_deselected. ENDIF. ENDFORM. FORM text_tools.
PERFORM text_tools_text_elements. PERFORM text_tools_text_concatenated.
PERFORM text_tools_text_message. REFRESH: gt_text_element,
gt_text_element_t. ENDFORM. FORM text_tools_text_concatenated. DATA:
l_text TYPE string, l_str1 TYPE string, l_str2 TYPE string.
FIELD-SYMBOLS: <ls_txt> TYPE st_text_element, <l_fs> TYPE ANY, <l_fs1>
TYPE ANY, <l_fs2> TYPE ANY. LOOP AT gt_text_element ASSIGNING <ls_txt>
WHERE is_set = abap_false AND ( NOT conc_v1 IS INITIAL or NOT
conc_copula IS INITIAL OR NOT conc_v2 IS INITIAL ). CLEAR l_str1. CLEAR
l_str2. CLEAR l_text. IF NOT <ls_txt>-conc_v1 IS INITIAL. ASSIGN
(<ls_txt>-conc_v1) TO <l_fs1>. l_str1 = <l_fs1>. UNASSIGN <l_fs1>.
ENDIF. IF NOT <ls_txt>-conc_v2 IS INITIAL. ASSIGN (<ls_txt>-conc_v2) TO
<l_fs2>. l_str2 = <l_fs2>. UNASSIGN <l_fs2>. ENDIF. IF
<ls_txt>-conc_sep_space = abap_false. CONCATENATE l_str1
<ls_txt>-conc_copula l_str2 INTO l_text. ELSE. CONCATENATE l_str1
<ls_txt>-conc_copula l_str2 INTO l_text SEPARATED BY space. ENDIF. IF
NOT l_text IS INITIAL. <ls_txt>-is_set = abap_true. ASSIGN
(<ls_txt>-fieldname) TO <l_fs>. <l_fs> = l_text. UNASSIGN <l_fs>.
ENDIF. ENDLOOP. ENDFORM. FORM text_tools_text_elements. DATA: l_text
TYPE string, l_val_text TYPE val_text, l_str TYPE string.
FIELD-SYMBOLS: <ls_txt> TYPE st_text_element, <ls_txtt> TYPE
st_text_element_t, <l_fs> TYPE ANY. LOOP AT gt_text_element ASSIGNING
<ls_txt>. CLEAR: l_text, l_str. READ TABLE gt_text_element_t ASSIGNING
<ls_txtt> WITH KEY fieldname = <ls_txt>-fieldname spras = sy-langu. IF
sy-subrc = 0 AND NOT <ls_txtt>-text IS INITIAL. <ls_txt>-is_set =
abap_true. l_text = <ls_txtt>-text. ELSE. READ TABLE gt_text_element_t
ASSIGNING <ls_txtt> WITH KEY fieldname = <ls_txt>-fieldname spras =
'E'. IF sy-subrc = 0. l_text = <ls_txtt>-text. ENDIF. ENDIF. UNASSIGN
<ls_txtt>. IF <ls_txt>-is_set = abap_false AND NOT
<ls_txt>-dtel_rollname IS INITIAL. PERFORM get_dtel_text USING
<ls_txt>-dtel_rollname <ls_txt>-dtel_field CHANGING l_str. IF NOT l_str
IS INITIAL. <ls_txt>-is_set = abap_true. l_text = l_str. ENDIF. ENDIF.
IF <ls_txt>-is_set = abap_false AND NOT <ls_txt>-domname IS INITIAL.
PERFORM get_dom_value_text USING <ls_txt>-domname <ls_txt>-domvalue
CHANGING l_val_text. IF NOT l_val_text IS INITIAL. <ls_txt>-is_set =
abap_true. l_text = l_val_text. ENDIF. ENDIF. IF <ls_txt>-is_set =
abap_false AND NOT <ls_txt>-icon_id IS INITIAL. PERFORM get_icon_text
USING <ls_txt>-icon_id <ls_txt>-icon_field CHANGING l_str. IF NOT l_str
IS INITIAL. <ls_txt>-is_set = abap_true. l_text = l_str. ENDIF. ENDIF.
IF NOT l_text IS INITIAL. ASSIGN (<ls_txt>-fieldname) TO <l_fs>. <l_fs>
= l_text. UNASSIGN <l_fs>. ENDIF. ENDLOOP. ENDFORM. FORM
text_tools_text_message. DATA: l_text TYPE string, l_str1 TYPE string,
l_str2 TYPE string, l_str3 TYPE string, l_str4 TYPE string.
FIELD-SYMBOLS: <ls_txt> TYPE st_text_element, <l_fs> TYPE ANY, <l_fs1>
TYPE ANY, <l_fs2> TYPE ANY, <l_fs3> TYPE ANY, <l_fs4> TYPE ANY. LOOP AT
gt_text_element ASSIGNING <ls_txt> WHERE is_set = abap_false AND NOT
msg_id IS INITIAL. CLEAR: l_str1, l_str2, l_str3, l_str4, l_text. IF
NOT <ls_txt>-msg_v1 IS INITIAL. ASSIGN (<ls_txt>-msg_v1) TO <l_fs1>. IF
<l_fs1> IS ASSIGNED. l_str1 = <l_fs1>. ENDIF. UNASSIGN <l_fs1>. ENDIF.
IF NOT <ls_txt>-msg_v2 IS INITIAL. ASSIGN (<ls_txt>-msg_v2) TO <l_fs2>.
IF <l_fs2> IS ASSIGNED. l_str2 = <l_fs2>. ENDIF. UNASSIGN <l_fs2>.
ENDIF. IF NOT <ls_txt>-msg_v3 IS INITIAL. ASSIGN (<ls_txt>-msg_v3) TO
<l_fs3>. IF <l_fs3> IS ASSIGNED. l_str3 = <l_fs3>. ENDIF. UNASSIGN
<l_fs3>. ENDIF. IF NOT <ls_txt>-msg_v4 IS INITIAL. ASSIGN
(<ls_txt>-msg_v4) TO <l_fs4>. IF <l_fs4> IS ASSIGNED. l_str4 = <l_fs4>.
ENDIF. UNASSIGN <l_fs4>. ENDIF. PERFORM get_message_text USING
<ls_txt>-msg_id <ls_txt>-msg_nr l_str1 l_str2 l_str3 l_str4 CHANGING
l_text. IF NOT l_text IS INITIAL. <ls_txt>-is_set = abap_true. ASSIGN
(<ls_txt>-fieldname) TO <l_fs>. <l_fs> = l_text. UNASSIGN <l_fs>.
ENDIF. ENDLOOP. ENDFORM. FORM cl_gui_get_folder CHANGING
c_selected_folder TYPE string c_subrc TYPE sysubrc. DATA: l_len TYPE i,
l_char TYPE c. CALL FUNCTION 'WS_FILENAME_GET' EXPORTING def_path =
p_folder mask = ',*.txt,*.txt.' mode = 'O' title = 'Choose a directory'
IMPORTING filename = c_selected_folder EXCEPTIONS OTHERS = 1. c_subrc =
sy-subrc. IF c_subrc = 0 AND NOT c_selected_folder IS INITIAL. DO.
l_len = strlen( c_selected_folder ). l_len = l_len - 1. l_char =
c_selected_folder+l_len(1). IF l_len = 0. EXIT. ENDIF.
c_selected_folder = c_selected_folder+0(l_len). IF l_char =
gc_delimiter. EXIT. ENDIF. ENDDO. ENDIF. ENDFORM. FORM
try_create_src_no_includes USING it_src TYPE it_string
value(i_src_name) value(i_progname) CHANGING ct_src_no_includes TYPE
it_string. DATA: lt_abap TYPE abapsource OCCURS 0, lt_abap_no_includes
TYPE abapsource OCCURS 0, ls_abap LIKE LINE OF lt_abap, ls_src TYPE
string. REFRESH ct_src_no_includes. LOOP AT it_src INTO ls_src.
ls_abap-line = ls_src. APPEND ls_abap TO lt_abap. ENDLOOP. CALL
FUNCTION 'CREATE_SOURCE_WITHOUT_INCLUDES' EXPORTING source_i = lt_abap
source_name = i_src_name global_check = abap_true global_program =
i_progname replacing_source = space IMPORTING source_o =
lt_abap_no_includes EXCEPTIONS OTHERS = 1. LOOP AT lt_abap_no_includes
INTO ls_abap. ls_src = ls_abap-line. APPEND ls_src TO
ct_src_no_includes. ENDLOOP. ENDFORM. FORM try_read_report USING
value(i_progname) CHANGING ct_src TYPE it_string. TYPES: t_abap(72)
TYPE c. DATA: lt_abap TYPE STANDARD TABLE OF t_abap WITH HEADER LINE,
ls_abap TYPE t_abap, ls_src TYPE string. REFRESH ct_src. READ REPORT
i_progname INTO lt_abap STATE 'A'. LOOP AT lt_abap INTO ls_abap. ls_src
= ls_abap. APPEND ls_src TO ct_src. ENDLOOP. ENDFORM. FORM ddic.
PERFORM ddic_r3tr_doma. PERFORM ddic_r3tr_dtel. PERFORM ddic_r3tr_enqu.
PERFORM ddic_r3tr_shlp. PERFORM ddic_r3tr_tabl_1. PERFORM
ddic_r3tr_tabl_2. PERFORM ddic_r3tr_ttyp. PERFORM ddic_r3tr_type.
PERFORM ddic_r3tr_view. ENDFORM. FORM ddic_r3tr_doma. DATA: lt_html
TYPE it_string, lt_tabstrip TYPE it_tabstrip, l_domname TYPE domname,
ls_attributes TYPE st_attributes, ls_definition TYPE st_definition_1,
ls_value_range TYPE st_value_range, lt_value_range TYPE it_value_range,
ls_dd01v TYPE dd01v, ls_dd01v_n TYPE dd01v, lt_dd07v TYPE STANDARD
TABLE OF dd07v, lt_dd07v_n TYPE STANDARD TABLE OF dd07v, l_state TYPE
dcdomaget, lt_doc TYPE it_string. FIELD-SYMBOLS: <ls_ztadir> TYPE
st_ztadir, <ls_dd07v> TYPE dd07v, <ls_tabstrip> TYPE st_tabstrip.
PERFORM get_tabstrip USING 'DDIC_R3TR_DOMA' space CHANGING lt_tabstrip.
LOOP AT gt_ztadir ASSIGNING <ls_ztadir> WHERE pgmid = 'R3TR' AND object
= 'DOMA' AND downloaded = abap_false. <ls_ztadir>-downloaded =
abap_true. CLEAR: ls_attributes. REFRESH: lt_html, lt_value_range,
lt_dd07v, lt_dd07v_n, lt_doc. l_domname = <ls_ztadir>-obj_name. CALL
FUNCTION 'DD_DOMA_GET' EXPORTING domain_name = l_domname langu =
sy-langu withtext = abap_true IMPORTING dd01v_wa_a = ls_dd01v
dd01v_wa_n = ls_dd01v_n got_state = l_state TABLES dd07v_tab_a =
lt_dd07v dd07v_tab_n = lt_dd07v_n EXCEPTIONS OTHERS = 1. IF sy-subrc <>
0. <ls_ztadir>-subrc = sy-subrc. CONTINUE. ENDIF. ls_attributes-bname =
ls_dd01v-as4user. PERFORM get_date USING ls_dd01v-as4date CHANGING
ls_attributes-date_last_changed. ls_attributes-devclass =
<ls_ztadir>-devclass. PERFORM get_devclass USING <ls_ztadir>-devclass
CHANGING ls_attributes-devclass_descr. IF ls_dd01v-dommaster IS
INITIAL. SELECT SINGLE masterlang FROM tadir INTO ls_dd01v-dommaster
WHERE pgmid = 'R3TR' AND object = 'DOMA' AND obj_name = l_domname.
ENDIF. PERFORM get_spras USING ls_dd01v-dommaster CHANGING
ls_attributes-laiso ls_attributes-sptxt. PERFORM get_user USING
ls_dd01v-as4user CHANGING ls_attributes-name_text.
ls_definition-datatype = ls_dd01v-datatype. PERFORM get_dom_value_text
USING 'DATATYPE' ls_dd01v-datatype CHANGING ls_definition-datadescr.
ls_definition-dataleng = ls_dd01v-leng. ls_definition-datadeci =
ls_dd01v-decimals. ls_definition-outputlen = ls_dd01v-outputlen.
ls_definition-convexit = ls_dd01v-convexit. ls_definition-signflag =
ls_dd01v-signflag. ls_definition-lowercase = ls_dd01v-lowercase. SORT
lt_dd07v BY valpos. LOOP AT lt_dd07v ASSIGNING <ls_dd07v>.
ls_value_range-ddtext = <ls_dd07v>-ddtext. IF <ls_dd07v>-domval_ld IS
INITIAL. ls_value_range-domvalue_l = <ls_dd07v>-domvalue_l. ELSE.
ls_value_range-domvalue_l = <ls_dd07v>-domval_ld. ENDIF. IF
<ls_dd07v>-domval_hd IS INITIAL. ls_value_range-domvalue_h =
<ls_dd07v>-domval_hd. ELSE. ls_value_range-domvalue_h =
<ls_dd07v>-domvalue_h. ENDIF. APPEND ls_value_range TO lt_value_range.
ENDLOOP. PERFORM get_docu USING 'DO' <ls_ztadir>-obj_name 'T' CHANGING
lt_doc. LOOP AT lt_tabstrip ASSIGNING <ls_tabstrip>.
<ls_tabstrip>-empty = abap_false. CASE <ls_tabstrip>-id. WHEN 'DOC'. IF
lt_doc IS INITIAL. <ls_tabstrip>-empty = abap_true. ENDIF. ENDCASE.
ENDLOOP. PERFORM html_main_header USING tpt_ddic_doma txt_domain
<ls_ztadir>-obj_name txt_active___1 txt_short_text___2
<ls_ztadir>-descript space lt_tabstrip gt_link CHANGING lt_html. IF NOT
lt_doc IS INITIAL OR g_empty_tab = gc_empty_tab_display. PERFORM
html_add_doc USING lt_doc 'DOC' abap_false CHANGING lt_html. ENDIF.
PERFORM html_add_attributes_1 USING ls_attributes 'ATTRIBUTES'
abap_false CHANGING lt_html. PERFORM html_add_definition_1 USING
ls_definition 'DEFINITION' abap_true CHANGING lt_html. PERFORM
html_add_value_range USING lt_value_range 'VALUERANGE' abap_false
CHANGING lt_html. PERFORM html_main_footer USING lt_html. PERFORM
download USING lt_html <ls_ztadir>-pgmid <ls_ztadir>-object
<ls_ztadir>-obj_name gc_extension_htm abap_true. ENDLOOP. ENDFORM. FORM
ddic_r3tr_dtel. DATA: lt_html TYPE it_string, lt_tabstrip TYPE
it_tabstrip, ls_tabstrip TYPE st_tabstrip, l_rollname TYPE rollname,
ls_attributes TYPE st_attributes, ls_data_type TYPE st_data_type,
ls_further_char TYPE st_further_char, ls_field_label TYPE
st_field_label, lt_para TYPE tpara, ls_dd01l TYPE dd01l, lt_dd03p TYPE
STANDARD TABLE OF dd03p, ls_dd04l TYPE dd04l, ls_dd04l_n TYPE dd04l,
lt_dd04t TYPE STANDARD TABLE OF dd04t, ls_dd04t TYPE dd04t, lt_dd04t_n
TYPE STANDARD TABLE OF dd04t, l_state TYPE ddrefstruc-state, lt_doc
TYPE it_string, lt_docdz TYPE STANDARD TABLE OF docdz, l_tab_nr TYPE i,
l_tab_id TYPE string, l_doc_obj TYPE doku_obj, l_active TYPE flag.
FIELD-SYMBOLS: <l_dataleng> TYPE ANY, <l_datatype> TYPE ANY,
<l_decimals> TYPE ANY, <l_refkind> TYPE ANY, <l_reftype> TYPE ANY,
<ls_ztadir> TYPE st_ztadir, <ls_dd03p> TYPE dd03p, <ls_tabstrip> TYPE
st_tabstrip, <ls_docdz> TYPE docdz. LOOP AT gt_ztadir ASSIGNING
<ls_ztadir> WHERE pgmid = 'R3TR' AND object = 'DTEL' AND downloaded =
abap_false. <ls_ztadir>-downloaded = abap_true. CLEAR: ls_attributes.
REFRESH: lt_html, lt_tabstrip, lt_dd04t, lt_dd04t_n, lt_doc, lt_docdz.
l_rollname = <ls_ztadir>-obj_name. CALL FUNCTION 'DD_DTEL_GET'
EXPORTING roll_name = l_rollname langu = sy-langu withtext = abap_true
IMPORTING got_state = l_state dd04l_wa_a = ls_dd04l dd04l_wa_n =
ls_dd04l_n dd01l_wa = ls_dd01l tpara_wa = lt_para TABLES dd04t_tab_a =
lt_dd04t dd04t_tab_n = lt_dd04t_n EXCEPTIONS OTHERS = 1. IF sy-subrc <>
0. <ls_ztadir>-subrc = sy-subrc. CONTINUE. ENDIF. READ TABLE lt_dd04t
INTO ls_dd04t INDEX 1. ls_attributes-bname = ls_dd04l-as4user. PERFORM
get_date USING ls_dd04l-as4date CHANGING
ls_attributes-date_last_changed. ls_attributes-devclass =
<ls_ztadir>-devclass. PERFORM get_devclass USING <ls_ztadir>-devclass
CHANGING ls_attributes-devclass_descr. IF ls_dd04l-dtelmaster IS
INITIAL. SELECT SINGLE masterlang FROM tadir INTO ls_dd04l-dtelmaster
WHERE pgmid = 'R3TR' AND object = 'DTEL' AND obj_name = l_rollname.
ENDIF. PERFORM get_spras USING ls_dd04l-dtelmaster CHANGING
ls_attributes-laiso ls_attributes-sptxt. PERFORM get_user USING
ls_dd04l-as4user CHANGING ls_attributes-name_text. ls_data_type-domname
= ls_dd04l-domname. PERFORM get_dom USING ls_data_type-domname CHANGING
ls_data_type-domdescr. ASSIGN COMPONENT 'DATATYPE' OF STRUCTURE
ls_dd04l TO <l_datatype>. IF <l_datatype> IS ASSIGNED.
ls_data_type-datatype = <l_datatype>. UNASSIGN <l_datatype>. ENDIF.
PERFORM get_dom_value_text USING 'DATATYPE' ls_dd04l-domname CHANGING
ls_data_type-datadescr. ASSIGN COMPONENT 'LENG' OF STRUCTURE ls_dd04l
TO <l_dataleng>. IF <l_dataleng> IS ASSIGNED. ls_data_type-dataleng =
<l_dataleng>. UNASSIGN <l_dataleng>. ENDIF. ASSIGN COMPONENT 'DECIMALS'
OF STRUCTURE ls_dd04l TO <l_decimals>. IF <l_decimals> IS ASSIGNED.
ls_data_type-datadeci = <l_decimals>. UNASSIGN <l_decimals>. ENDIF.
ASSIGN COMPONENT 'REFKIND' OF STRUCTURE ls_dd04l TO <l_refkind>. IF
<l_refkind> IS ASSIGNED. ls_data_type-refkind = <l_refkind>. UNASSIGN
<l_refkind>. ENDIF. ASSIGN COMPONENT 'REFTYPE' OF STRUCTURE ls_dd04l TO
<l_reftype>. IF <l_reftype> IS ASSIGNED. ls_data_type-reftype =
<l_reftype>. UNASSIGN <l_reftype>. ELSE. ls_data_type-reftype = '#'.
ENDIF. ls_further_char-shlpname = ls_dd04l-shlpname.
ls_further_char-shlpfield = ls_dd04l-shlpfield.
ls_further_char-memoryid = ls_dd04l-memoryid. ls_further_char-deffdname
= ls_dd04l-deffdname. ls_further_char-logflag = ls_dd04l-logflag.
ls_field_label-scrlen_s = ls_dd04l-scrlen1. ls_field_label-scrtext_s =
ls_dd04t-scrtext_s. ls_field_label-scrlen_m = ls_dd04l-scrlen2.
ls_field_label-scrtext_m = ls_dd04t-scrtext_m. ls_field_label-scrlen_l
= ls_dd04l-scrlen3. ls_field_label-scrtext_l = ls_dd04t-scrtext_l.
ls_field_label-headlen = ls_dd04l-headlen. ls_field_label-reptext =
ls_dd04t-reptext. PERFORM get_docu USING 'DE' <ls_ztadir>-obj_name 'E'
CHANGING lt_doc. CALL FUNCTION 'DOCU_GET_DZ' EXPORTING langu = sy-langu
rollname = l_rollname TABLES dz_list = lt_docdz EXCEPTIONS OTHERS = 1.
SORT lt_docdz BY addition. PERFORM get_tabstrip USING 'DDIC_R3TR_DTEL'
space CHANGING lt_tabstrip. SORT lt_tabstrip BY tab_nr DESCENDING. READ
TABLE lt_tabstrip ASSIGNING <ls_tabstrip> INDEX 1. l_tab_nr =
<ls_tabstrip>-tab_nr. SORT lt_tabstrip BY tab_nr. CLEAR ls_tabstrip.
ls_tabstrip-active_order = 1. LOOP AT lt_docdz ASSIGNING <ls_docdz>.
l_tab_nr = l_tab_nr + 1. ls_tabstrip-form = 'DDIC_R3TR_DTEL'.
CONCATENATE 'DOCDZ_' <ls_docdz>-addition INTO ls_tabstrip-id.
ls_tabstrip-parent_id = 'DOCDZ'. ls_tabstrip-tab_nr = l_tab_nr.
ls_tabstrip-text = <ls_docdz>-addition. APPEND ls_tabstrip TO
lt_tabstrip. CLEAR ls_tabstrip. ENDLOOP. LOOP AT lt_tabstrip ASSIGNING
<ls_tabstrip>. <ls_tabstrip>-empty = abap_false. CASE <ls_tabstrip>-id.
WHEN 'DOC'. IF lt_doc IS INITIAL. <ls_tabstrip>-empty = abap_true.
ENDIF. WHEN 'DOCDZ'. IF lt_docdz IS INITIAL. <ls_tabstrip>-empty =
abap_true. ENDIF. ENDCASE. ENDLOOP. PERFORM html_main_header USING
tpt_ddic_dtel txt_data_element___1 <ls_ztadir>-obj_name txt_active___1
txt_short_text___2 <ls_ztadir>-descript space lt_tabstrip gt_link
CHANGING lt_html. IF NOT lt_doc IS INITIAL OR g_empty_tab =
gc_empty_tab_display. PERFORM html_add_doc USING lt_doc 'DOC'
abap_false CHANGING lt_html. ENDIF. IF NOT lt_docdz IS INITIAL OR
g_empty_tab = gc_empty_tab_display. PERFORM html_add_container_begin
USING lt_tabstrip 'DOCDZ' abap_false CHANGING lt_html. l_active =
abap_true. LOOP AT lt_docdz ASSIGNING <ls_docdz>. CLEAR: l_tab_id,
l_doc_obj. REFRESH lt_doc. CONCATENATE 'DOCDZ_' <ls_docdz>-addition
INTO l_tab_id. CALL FUNCTION 'DOCU_OBJECT_NAME_CONCATENATE' EXPORTING
docu_id = 'DZ' element = <ls_docdz>-rollname addition =
<ls_docdz>-addition IMPORTING object = l_doc_obj. PERFORM get_docu
USING 'DZ' l_doc_obj 'E' CHANGING lt_doc. PERFORM html_add_doc USING
lt_doc l_tab_id l_active CHANGING lt_html. l_active = abap_false.
ENDLOOP. PERFORM html_add_container_end CHANGING lt_html. ENDIF.
PERFORM html_add_attributes_1 USING ls_attributes 'ATTRIBUTES'
abap_false CHANGING lt_html. PERFORM html_add_data_type USING
ls_data_type 'DATATYPE' abap_true CHANGING lt_html. PERFORM
html_add_further_char USING ls_further_char 'FURTHERCHAR' abap_false
CHANGING lt_html. PERFORM html_add_field_label USING ls_field_label
'FIELDLABEL' abap_false CHANGING lt_html. PERFORM html_main_footer
USING lt_html. PERFORM download USING lt_html <ls_ztadir>-pgmid
<ls_ztadir>-object <ls_ztadir>-obj_name gc_extension_htm abap_true.
ENDLOOP. ENDFORM. FORM ddic_r3tr_enqu. DATA: lt_html TYPE it_string,
lt_tabstrip TYPE it_tabstrip, l_viewname TYPE viewname, ls_attributes
TYPE st_attributes, lt_tables TYPE it_tables, ls_tables TYPE st_tables,
ls_dd25v TYPE dd25v, ls_dd25v_n TYPE dd25v, lt_dd26v TYPE STANDARD
TABLE OF dd26v, lt_dd26v_n TYPE STANDARD TABLE OF dd26v, lt_dd27p TYPE
STANDARD TABLE OF dd27p, lt_dd27p_n TYPE STANDARD TABLE OF dd27p,
l_state TYPE dcenquget. FIELD-SYMBOLS: <ls_ztadir> TYPE st_ztadir,
<ls_dd27p> TYPE dd27p. PERFORM get_tabstrip USING 'DDIC_R3TR_ENQU'
space CHANGING lt_tabstrip. LOOP AT gt_ztadir ASSIGNING <ls_ztadir>
WHERE pgmid = 'R3TR' AND object = 'ENQU' AND aggtype = 'E' AND
downloaded = abap_false. <ls_ztadir>-downloaded = abap_true. CLEAR:
ls_attributes. REFRESH: lt_html, lt_dd26v, lt_dd26v_n, lt_dd27p,
lt_dd27p_n. l_viewname = <ls_ztadir>-obj_name. CALL FUNCTION
'DD_ENQU_GET' EXPORTING enqu_name = l_viewname langu = sy-langu
withtext = abap_true IMPORTING dd25v_wa_a = ls_dd25v dd25v_wa_n =
ls_dd25v_n got_state = l_state TABLES dd26v_tab_a = lt_dd26v
dd26v_tab_n = lt_dd26v_n dd27p_tab_a = lt_dd27p dd27p_tab_n =
lt_dd27p_n EXCEPTIONS OTHERS = 1. IF sy-subrc <> 0. <ls_ztadir>-subrc =
sy-subrc. CONTINUE. ENDIF. ls_attributes-bname = ls_dd25v-as4user.
PERFORM get_date USING ls_dd25v-as4date CHANGING
ls_attributes-date_last_changed. ls_attributes-devclass =
<ls_ztadir>-devclass. PERFORM get_devclass USING <ls_ztadir>-devclass
CHANGING ls_attributes-devclass_descr. IF ls_dd25v-masterlang IS
INITIAL. SELECT SINGLE masterlang FROM tadir INTO ls_dd25v-masterlang
WHERE pgmid = 'R3TR' AND object = 'ENQU' AND obj_name = l_viewname.
ENDIF. PERFORM get_spras USING ls_dd25v-masterlang CHANGING
ls_attributes-laiso ls_attributes-sptxt. PERFORM get_user USING
ls_dd25v-as4user CHANGING ls_attributes-name_text.
ls_attributes-display_rfcenable = abap_true. ls_attributes-rfcenable =
ls_dd25v-globalflag. SORT lt_dd27p BY viewname objpos. LOOP AT lt_dd27p
ASSIGNING <ls_dd27p> WHERE fieldname = '*'. CLEAR ls_tables. IF
<ls_dd27p>-tabname = ls_dd25v-roottab. ls_tables-primary = abap_true.
ENDIF. ls_tables-tabname = <ls_dd27p>-tabname. PERFORM
get_dom_value_text USING 'ENQMODE' <ls_dd27p>-enqmode CHANGING
ls_tables-enqmode. APPEND ls_tables TO lt_tables. ENDLOOP. PERFORM
html_main_header USING tpt_ddic_enqu txt_lock_object___1
<ls_ztadir>-obj_name txt_active___1 txt_short_text___2
<ls_ztadir>-descript space lt_tabstrip gt_link CHANGING lt_html.
PERFORM html_add_attributes_1 USING ls_attributes 'ATTRIBUTES'
abap_false CHANGING lt_html. PERFORM html_add_tables USING lt_tables
'TABLES' abap_true CHANGING lt_html. DELETE lt_dd27p WHERE fieldname =
'*'. PERFORM html_add_table USING 'ENQU_PARAM' lt_dd27p lt_dd27p
'LOCKPARAMETER' abap_false CHANGING lt_html. PERFORM html_main_footer
USING lt_html. PERFORM download USING lt_html <ls_ztadir>-pgmid
<ls_ztadir>-object <ls_ztadir>-obj_name gc_extension_htm abap_true.
ENDLOOP. ENDFORM. FORM ddic_r3tr_shlp. DATA: lt_html TYPE it_string,
l_shlpname TYPE shlpname, ls_dd30v TYPE dd30v, ls_dd30v_n TYPE dd30v,
lt_dd31v TYPE STANDARD TABLE OF dd31v, lt_dd31v_n TYPE STANDARD TABLE
OF dd31v, lt_dd32p TYPE STANDARD TABLE OF dd32p, lt_dd32p_n TYPE
STANDARD TABLE OF dd32p, lt_dd33v TYPE STANDARD TABLE OF dd33v,
lt_dd33v_n TYPE STANDARD TABLE OF dd33v, ls_attributes TYPE
st_attributes, lt_tabstrip TYPE it_tabstrip, ls_definition TYPE
st_definition_2, l_state TYPE dcshlpget. FIELD-SYMBOLS: <ls_ztadir>
TYPE st_ztadir, <ls_dd07v> TYPE dd07v. PERFORM get_tabstrip USING
'DDIC_R3TR_SHLP' space CHANGING lt_tabstrip. LOOP AT gt_ztadir
ASSIGNING <ls_ztadir> WHERE pgmid = 'R3TR' AND object = 'SHLP' AND
downloaded = abap_false. <ls_ztadir>-downloaded = abap_true. CLEAR:
ls_attributes, ls_definition. REFRESH: lt_html, lt_dd31v, lt_dd31v_n,
lt_dd32p, lt_dd32p_n, lt_dd33v, lt_dd33v_n. l_shlpname =
<ls_ztadir>-obj_name. CALL FUNCTION 'DD_SHLP_GET' EXPORTING shlp_name =
l_shlpname langu = sy-langu withtext = abap_true add_typeinfo =
abap_true IMPORTING dd30v_wa_a = ls_dd30v dd30v_wa_n = ls_dd30v_n
got_state = l_state TABLES dd31v_tab_a = lt_dd31v dd31v_tab_n =
lt_dd31v_n dd32p_tab_a = lt_dd32p dd32p_tab_n = lt_dd32p_n dd33v_tab_a
= lt_dd33v dd33v_tab_n = lt_dd33v_n EXCEPTIONS OTHERS = 1. IF sy-subrc
<> 0. <ls_ztadir>-subrc = sy-subrc. CONTINUE. ENDIF.
ls_attributes-bname = ls_dd30v-as4user. PERFORM get_date USING
ls_dd30v-as4date CHANGING ls_attributes-date_last_changed.
ls_attributes-devclass = <ls_ztadir>-devclass. PERFORM get_devclass
USING <ls_ztadir>-devclass CHANGING ls_attributes-devclass_descr. IF
ls_dd30v-ddlanguage IS INITIAL. SELECT SINGLE masterlang FROM tadir
INTO ls_dd30v-ddlanguage WHERE pgmid = 'R3TR' AND object = 'SHLP' AND
obj_name = l_shlpname. ENDIF. PERFORM get_spras USING
ls_dd30v-ddlanguage CHANGING ls_attributes-laiso ls_attributes-sptxt.
PERFORM get_user USING ls_dd30v-as4user CHANGING
ls_attributes-name_text. ls_definition-selmethod = ls_dd30v-selmethod.
ls_definition-texttab = ls_dd30v-texttab. ls_definition-dialogtype =
ls_dd30v-dialogtype. ls_definition-hotkey = ls_dd30v-hotkey.
ls_definition-selmexit = ls_dd30v-selmexit. PERFORM html_main_header
USING tpt_ddic_shlp txt_elementary_srch_hlp <ls_ztadir>-obj_name
txt_active___1 txt_short_text___2 <ls_ztadir>-descript space
lt_tabstrip gt_link CHANGING lt_html. PERFORM html_add_attributes_1
USING ls_attributes 'ATTRIBUTES' abap_false CHANGING lt_html. PERFORM
html_add_definition_2 USING ls_definition 'SHLP_PARAM' lt_dd32p
'DEFINITION' abap_true CHANGING lt_html. PERFORM html_main_footer USING
lt_html. PERFORM download USING lt_html <ls_ztadir>-pgmid
<ls_ztadir>-object <ls_ztadir>-obj_name gc_extension_htm abap_true.
ENDLOOP. ENDFORM. FORM ddic_r3tr_tabl_1. DATA: lt_html TYPE it_string,
lt_tabstrip TYPE it_tabstrip, ls_attributes TYPE st_attributes,
ls_deliv_maint TYPE st_deliv_maint, ls_dd02v TYPE dd02v, lt_dd03p TYPE
STANDARD TABLE OF dd03p, ls_dd09l TYPE dd09l, lt_zdd03p_ext TYPE
it_zdd03p_ext, l_state TYPE dctablget, lt_doc TYPE it_string,
lt_ddranking TYPE it_dom_value, lt_exclass TYPE it_access, ls_exclass
TYPE st_access. FIELD-SYMBOLS: <ls_ztadir> TYPE st_ztadir,
<ls_ddranking> TYPE st_dom_value, <ls_tabstrip> TYPE st_tabstrip,
<l_exclass> TYPE ANY. PERFORM get_tabstrip USING 'DDIC_R3TR_TABL_1'
space CHANGING lt_tabstrip. PERFORM get_dom_value_texts USING
'DDRANKING' CHANGING lt_ddranking. SORT lt_ddranking BY value
DESCENDING. LOOP AT gt_ztadir ASSIGNING <ls_ztadir> WHERE pgmid =
'R3TR' AND object = 'TABL' AND ( tabclass = 'INTTAB' OR tabclass =
'VIEW' OR tabclass = 'APPEND' ) AND downloaded = abap_false.
<ls_ztadir>-downloaded = abap_true. CLEAR: ls_attributes. REFRESH:
lt_html, lt_dd03p, lt_doc, lt_exclass. PERFORM ddic_r3tr_tabl_get
CHANGING <ls_ztadir> ls_dd02v lt_dd03p lt_zdd03p_ext ls_dd09l.
ls_attributes-bname = ls_dd02v-as4user. PERFORM get_date USING
ls_dd02v-as4date CHANGING ls_attributes-date_last_changed.
ls_attributes-devclass = <ls_ztadir>-devclass. PERFORM get_devclass
USING <ls_ztadir>-devclass CHANGING ls_attributes-devclass_descr.
PERFORM get_spras USING ls_dd02v-masterlang CHANGING
ls_attributes-laiso ls_attributes-sptxt. PERFORM get_user USING
ls_dd02v-as4user CHANGING ls_attributes-name_text.
ls_deliv_maint-contflag = ls_dd02v-contflag. PERFORM get_dom_value_text
USING 'CONTFLAG' ls_dd02v-contflag CHANGING
ls_deliv_maint-contflag_text. PERFORM get_dom_value_text USING
'MAINTFLAG' ls_dd02v-mainflag CHANGING ls_deliv_maint-mainflag_text.
ASSIGN COMPONENT 'EXCLASS' OF STRUCTURE ls_dd02v TO <l_exclass>. IF
<l_exclass> IS ASSIGNED. LOOP AT lt_ddranking ASSIGNING <ls_ddranking>.
ls_exclass-ddtext = <ls_ddranking>-text. ls_exclass-checked =
abap_false. IF <ls_ddranking>-value = <l_exclass>. ls_exclass-checked =
abap_true. ENDIF. APPEND ls_exclass TO lt_exclass. ENDLOOP. ENDIF.
PERFORM get_docu USING 'TB' <ls_ztadir>-obj_name 'E' CHANGING lt_doc.
LOOP AT lt_tabstrip ASSIGNING <ls_tabstrip>. <ls_tabstrip>-empty =
abap_false. CASE <ls_tabstrip>-id. WHEN 'DOC'. IF lt_doc IS INITIAL.
<ls_tabstrip>-empty = abap_true. ENDIF. WHEN 'EXCLASS'. IF lt_exclass
IS INITIAL. <ls_tabstrip>-hidden = abap_true. ENDIF. ENDCASE. ENDLOOP.
PERFORM html_main_header USING tpt_ddic_stru txt_structure
<ls_ztadir>-obj_name txt_active___1 txt_short_text___2
<ls_ztadir>-descript space lt_tabstrip gt_link CHANGING lt_html. IF NOT
lt_exclass IS INITIAL. PERFORM html_add_box_radiobuttons USING
txt_enhancement_category_for_s 'EXCLASS' lt_exclass 'EXCLASS'
abap_false CHANGING lt_html. ENDIF. IF NOT lt_doc IS INITIAL OR
g_empty_tab = gc_empty_tab_display. PERFORM html_add_doc USING lt_doc
'DOC' abap_false CHANGING lt_html. ENDIF. PERFORM html_add_attributes_1
USING ls_attributes 'ATTRIBUTES' abap_false CHANGING lt_html. PERFORM
html_add_table USING 'TABL1COMPO' lt_dd03p lt_zdd03p_ext 'COMPONENTS'
abap_true CHANGING lt_html. PERFORM html_add_table USING 'TABL1ENTRY'
lt_dd03p lt_zdd03p_ext 'ENTRY_HELP_CHECK' abap_false CHANGING lt_html.
PERFORM html_add_table USING 'TABL1CURRQ' lt_dd03p lt_zdd03p_ext
'CURR_QUANT_FIELDS' abap_false CHANGING lt_html. PERFORM
html_main_footer USING lt_html. PERFORM download USING lt_html
<ls_ztadir>-pgmid <ls_ztadir>-object <ls_ztadir>-obj_name
gc_extension_htm abap_true. ENDLOOP. ENDFORM. FORM ddic_r3tr_tabl_2.
DATA: lt_html TYPE it_string, lt_tabstrip TYPE it_tabstrip,
l_name_value TYPE string, ls_attributes TYPE st_attributes,
ls_deliv_maint TYPE st_deliv_maint, lt_access TYPE it_access, ls_dd02v
TYPE dd02v, lt_dd03p TYPE STANDARD TABLE OF dd03p, ls_dd09l TYPE dd09l,
lt_zdd03p_ext TYPE it_zdd03p_ext, l_state TYPE dctablget, lt_doc TYPE
it_string, lt_ddranking TYPE it_dom_value, lt_exclass TYPE it_access,
ls_exclass TYPE st_access, l_texttabname TYPE tabname, l_text_obj_name
TYPE sobj_name, l_text_devclass TYPE devclass, lt_link TYPE it_link,
ls_link TYPE st_link, lt_csv TYPE it_string, lt_xml TYPE it_string,
lt_ts_params TYPE it_textinput, lt_ts_buffer TYPE it_access,
lt_ts_buffer_type_l TYPE it_textinput, lt_ts_buffer_type_r TYPE
it_textinput, lt_ts_bottom TYPE it_textinput, ls_textinput TYPE
st_textinput, ls_access TYPE st_access, l_ddtext TYPE ddtext,
lt_dom_value TYPE it_dom_value, lt_tmg_tech_details TYPE it_textinput,
ls_tddat TYPE tddat, ls_tbrgt TYPE tbrgt, ls_tvdir TYPE tvdir, ls_objh
TYPE objh, l_compare_flag TYPE string, lt_str TYPE it_string.
FIELD-SYMBOLS: <ls_ztadir> TYPE st_ztadir, <ls_ddranking> TYPE
st_dom_value, <ls_tabstrip> TYPE st_tabstrip, <l_exclass> TYPE ANY,
<ls_dom_value> TYPE st_dom_value. PERFORM get_tabstrip USING
'DDIC_R3TR_TABL_2' space CHANGING lt_tabstrip. PERFORM
get_dom_value_texts USING 'DDRANKING' CHANGING lt_ddranking. SORT
lt_ddranking BY value DESCENDING. LOOP AT gt_ztadir ASSIGNING
<ls_ztadir> WHERE pgmid = 'R3TR' AND object = 'TABL' AND ( tabclass =
'CLUSTER' OR tabclass = 'POOL' OR tabclass = 'TRANSP' ) AND downloaded
= abap_false. <ls_ztadir>-downloaded = abap_true. CLEAR: ls_attributes,
l_state, l_texttabname, l_text_obj_name, l_text_devclass, ls_textinput,
l_ddtext, ls_tddat, ls_tbrgt, ls_tvdir, ls_objh, l_compare_flag.
REFRESH: lt_html, lt_doc, lt_exclass, lt_link, lt_csv, lt_xml,
lt_ts_params, lt_ts_buffer, lt_ts_buffer_type_l, lt_ts_buffer_type_r,
lt_ts_bottom, lt_tmg_tech_details. PERFORM ddic_r3tr_tabl_get CHANGING
<ls_ztadir> ls_dd02v lt_dd03p lt_zdd03p_ext ls_dd09l. l_tabname =
<ls_ztadir>-obj_name. ls_attributes-bname = ls_dd02v-as4user. PERFORM
get_date USING ls_dd02v-as4date CHANGING
ls_attributes-date_last_changed. ls_attributes-devclass =
<ls_ztadir>-devclass. PERFORM get_devclass USING <ls_ztadir>-devclass
CHANGING ls_attributes-devclass_descr. PERFORM get_spras USING
ls_dd02v-masterlang CHANGING ls_attributes-laiso ls_attributes-sptxt.
PERFORM get_user USING ls_dd02v-as4user CHANGING
ls_attributes-name_text. ls_deliv_maint-sqltab = ls_dd02v-sqltab.
ls_deliv_maint-display_cont = abap_true. ls_deliv_maint-contflag =
ls_dd02v-contflag. PERFORM get_dom_value_text USING 'CONTFLAG'
ls_dd02v-contflag CHANGING ls_deliv_maint-contflag_text.
ls_deliv_maint-display_main = abap_true. PERFORM get_dom_value_text
USING 'MAINTFLAG' ls_dd02v-mainflag CHANGING
ls_deliv_maint-mainflag_text. CLEAR ls_textinput. ls_textinput-name =
txt_data_class. ls_textinput-value = ls_dd09l-tabart. SELECT SINGLE
darttext FROM dartt INTO l_ddtext WHERE tabart = ls_dd09l-tabart AND
ddlangu = sy-langu. ls_textinput-description = l_ddtext.
ls_textinput-input = abap_true. APPEND ls_textinput TO lt_ts_params.
CLEAR ls_textinput. ls_textinput-name = txt_size_category.
ls_textinput-value = ls_dd09l-tabkat. ls_textinput-input = abap_true.
APPEND ls_textinput TO lt_ts_params. PERFORM get_dom_value_texts USING
'BUFALLOW' CHANGING lt_dom_value. LOOP AT lt_dom_value ASSIGNING
<ls_dom_value>. CLEAR ls_access. ls_access-ddtext =
<ls_dom_value>-text. IF <ls_dom_value>-value = ls_dd09l-bufallow.
ls_access-checked = abap_true. ENDIF. APPEND ls_access TO lt_ts_buffer.
ENDLOOP. CLEAR ls_textinput. ls_textinput-name =
txt_single_records_buff. IF ls_dd09l-pufferung = 'P'.
ls_textinput-value = abap_true. ENDIF. ls_textinput-flag = abap_true.
APPEND ls_textinput TO lt_ts_buffer_type_l. CLEAR ls_textinput.
ls_textinput-name = txt_generic_area_buffered. IF ls_dd09l-pufferung =
'G'. ls_textinput-value = abap_true. ENDIF. ls_textinput-flag =
abap_true. APPEND ls_textinput TO lt_ts_buffer_type_l. CLEAR
ls_textinput. ls_textinput-name = txt_fully_buffered. IF
ls_dd09l-pufferung = 'X'. ls_textinput-value = abap_true. ENDIF.
ls_textinput-flag = abap_true. APPEND ls_textinput TO
lt_ts_buffer_type_l. CLEAR ls_textinput. ls_textinput-space =
abap_true. APPEND ls_textinput TO lt_ts_buffer_type_r. CLEAR
ls_textinput. ls_textinput-name = txt_no_of_key_fields. PERFORM
get_unpacked USING ls_dd09l-schfeldanz CHANGING ls_textinput-value.
ls_textinput-input = abap_true. APPEND ls_textinput TO
lt_ts_buffer_type_r. CLEAR ls_textinput. ls_textinput-space =
abap_true. APPEND ls_textinput TO lt_ts_buffer_type_r. CLEAR
ls_textinput. ls_textinput-name = txt_log_data_changes.
ls_textinput-value = ls_dd09l-protokoll. ls_textinput-flag = abap_true.
APPEND ls_textinput TO lt_ts_bottom. ASSIGN COMPONENT 'EXCLASS' OF
STRUCTURE ls_dd02v TO <l_exclass>. IF <l_exclass> IS ASSIGNED. LOOP AT
lt_ddranking ASSIGNING <ls_ddranking>. ls_exclass-ddtext =
<ls_ddranking>-text. ls_exclass-checked = abap_false. IF
<ls_ddranking>-value = <l_exclass>. ls_exclass-checked = abap_true.
ENDIF. APPEND ls_exclass TO lt_exclass. ENDLOOP. ENDIF. SELECT SINGLE *
FROM tvdir INTO ls_tvdir WHERE tabname = l_tabname. SELECT SINGLE *
FROM objh INTO ls_objh WHERE objectname = l_tabname AND objecttype =
'S'. SELECT SINGLE * FROM tddat INTO ls_tddat WHERE tabname =
l_tabname. SELECT SINGLE * FROM tbrgt INTO ls_tbrgt WHERE brgru =
ls_tddat-cclass AND spras = sy-langu. CLEAR ls_textinput.
ls_textinput-name = txt_authorization_group. ls_textinput-value =
ls_tddat-cclass. PERFORM encode_html CHANGING ls_textinput-value.
ls_textinput-input = abap_true. ls_textinput-description =
ls_tbrgt-bezei. PERFORM encode_html CHANGING ls_textinput-description.
APPEND ls_textinput TO lt_tmg_tech_details. CLEAR ls_textinput.
ls_textinput-name = txt_authorization_object___1. ls_textinput-value =
ls_tbrgt-brobj. APPEND ls_textinput TO lt_tmg_tech_details. CLEAR
ls_textinput. ls_textinput-name = txt_function_group.
ls_textinput-value = ls_tvdir-area. ls_textinput-input = abap_true.
APPEND ls_textinput TO lt_tmg_tech_details. CLEAR ls_textinput.
ls_textinput-name = txt_package. ls_textinput-value =
ls_tvdir-devclass. ls_textinput-input = abap_true. APPEND ls_textinput
TO lt_tmg_tech_details. PERFORM get_dom_value_text USING 'OBJIMP'
ls_objh-importable CHANGING l_compare_flag. PERFORM get_docu USING 'TB'
<ls_ztadir>-obj_name 'E' CHANGING lt_doc. CLEAR ls_link. CALL FUNCTION
'TABLE_GET_TEXTTABLE' EXPORTING checktable = l_tabname IMPORTING
tabname = l_texttabname EXCEPTIONS OTHERS = 1. IF sy-subrc = 0.
l_text_obj_name = l_texttabname. SELECT SINGLE devclass FROM tadir INTO
l_text_devclass WHERE pgmid = <ls_ztadir>-pgmid AND object =
<ls_ztadir>-object AND obj_name = l_text_obj_name. IF l_text_devclass =
g_pack. CONCATENATE l_texttabname '.' gc_extension_htm INTO
ls_link-href. ls_link-onclick = 'window.location=this.href'. ENDIF.
ls_link-descript = txt_text_table. ls_link-title = l_texttabname.
APPEND ls_link TO lt_link. ENDIF. CLEAR ls_link. READ TABLE gt_tadir
TRANSPORTING NO FIELDS WITH KEY obj_name = <ls_ztadir>-obj_name. IF
sy-subrc = 0. IF g_add_db_format_csv = abap_true. PERFORM data2csv
USING l_tabname CHANGING lt_csv. PERFORM download USING lt_csv
<ls_ztadir>-pgmid <ls_ztadir>-object <ls_ztadir>-obj_name
gc_extension_csv abap_false. ls_link-href = <ls_ztadir>-obj_name. SPLIT
ls_link-href AT '/' INTO TABLE lt_str. LOOP AT lt_str INTO
ls_link-href. ENDLOOP. CONCATENATE ls_link-href '.' gc_extension_csv
INTO ls_link-href. ls_link-onclick = 'window.open(this.href)'.
ls_link-descript = gc_extension_csv. APPEND ls_link TO lt_link. ENDIF.
IF g_add_db_format_xml = abap_true. PERFORM data2xml USING l_tabname
CHANGING lt_xml. PERFORM download USING lt_xml <ls_ztadir>-pgmid
<ls_ztadir>-object <ls_ztadir>-obj_name gc_extension_xml abap_false.
ls_link-href = <ls_ztadir>-obj_name. SPLIT ls_link-href AT '/' INTO
TABLE lt_str. LOOP AT lt_str INTO ls_link-href. ENDLOOP. CONCATENATE
ls_link-href '.' gc_extension_xml INTO ls_link-href. ls_link-onclick =
'window.open(this.href)'. ls_link-descript = gc_extension_xml. APPEND
ls_link TO lt_link. ENDIF. ENDIF. LOOP AT lt_tabstrip ASSIGNING
<ls_tabstrip>. <ls_tabstrip>-empty = abap_false. CASE <ls_tabstrip>-id.
WHEN 'DOC'. IF lt_doc IS INITIAL. <ls_tabstrip>-empty = abap_true.
ENDIF. WHEN 'EXCLASS'. IF lt_exclass IS INITIAL. <ls_tabstrip>-hidden =
abap_true. ENDIF. ENDCASE. ENDLOOP. CASE <ls_ztadir>-tabclass. WHEN
'CLUSTER'. l_name_value = txt_cluster_table. WHEN 'POOL'. l_name_value
= txt_pooled_table. WHEN 'TRANSP'. l_name_value = txt_transp_table.
WHEN OTHERS. l_name_value = txt_table. ENDCASE. PERFORM
html_main_header USING tpt_ddic_tabl l_name_value <ls_ztadir>-obj_name
txt_active___1 txt_short_text___2 <ls_ztadir>-descript space
lt_tabstrip lt_link CHANGING lt_html. PERFORM html_add_tech_settings
USING txt_logical_storage_parameters lt_ts_params txt_buffering
lt_ts_buffer txt_buffering_type lt_ts_buffer_type_l lt_ts_buffer_type_r
lt_ts_bottom 'TECH_SETTINGS' abap_false CHANGING lt_html. IF NOT
lt_exclass IS INITIAL. PERFORM html_add_box_radiobuttons USING
txt_enhancement_category_for_s 'EXCLASS' lt_exclass 'EXCLASS'
abap_false CHANGING lt_html. ENDIF. PERFORM
html_add_tablemaintgenerator USING txt_technical_dialog_details
lt_tmg_tech_details txt_maintenance_screens ls_tvdir-type
ls_tvdir-liste ls_tvdir-detail txt_dialog_data_transport_deta
ls_tvdir-flag l_compare_flag 'TABLE_MAINT_GEN' abap_false CHANGING
lt_html. IF NOT lt_doc IS INITIAL OR g_empty_tab =
gc_empty_tab_display. PERFORM html_add_doc USING lt_doc 'DOC'
abap_false CHANGING lt_html. ENDIF. PERFORM html_add_attributes_1 USING
ls_attributes 'ATTRIBUTES' abap_false CHANGING lt_html. PERFORM
html_add_deliv_maint USING ls_deliv_maint lt_access 'DELIVMAINT'
abap_false CHANGING lt_html. PERFORM html_add_table USING 'TABL2FIELD'
lt_dd03p lt_zdd03p_ext 'FIELDS' abap_true CHANGING lt_html. PERFORM
html_add_table USING 'TABL2ENTRY' lt_dd03p lt_zdd03p_ext
'ENTRY_HELP_CHECK' abap_false CHANGING lt_html. PERFORM html_add_table
USING 'TABL2CURRQ' lt_dd03p lt_zdd03p_ext 'CURR_QUANT_FIELDS'
abap_false CHANGING lt_html. PERFORM html_main_footer USING lt_html.
PERFORM download USING lt_html <ls_ztadir>-pgmid <ls_ztadir>-object
<ls_ztadir>-obj_name gc_extension_htm abap_true. ENDLOOP. ENDFORM. FORM
ddic_r3tr_tabl_get CHANGING cs_ztadir TYPE st_ztadir cs_dd02v TYPE
dd02v ct_dd03p TYPE dd03ttyp ct_zdd03p_ext TYPE it_zdd03p_ext cs_dd09l
TYPE dd09l. CLEAR: cs_dd02v, cs_dd09l. REFRESH: ct_dd03p,
ct_zdd03p_ext. DATA: l_strukname TYPE strukname, ls_dd02v_n TYPE dd02v,
lt_dd03p_n TYPE STANDARD TABLE OF dd03p, lt_dd05m TYPE STANDARD TABLE
OF dd05m, lt_dd05m_n TYPE STANDARD TABLE OF dd05m, lt_dd08v TYPE
STANDARD TABLE OF dd08v, lt_dd08v_n TYPE STANDARD TABLE OF dd08v,
ls_dd09v_n TYPE dd09v, lt_dd12v TYPE STANDARD TABLE OF dd12v,
lt_dd12v_n TYPE STANDARD TABLE OF dd12v, lt_dd17v TYPE STANDARD TABLE
OF dd17v, lt_dd17v_n TYPE STANDARD TABLE OF dd17v, lt_dd35v TYPE
STANDARD TABLE OF dd35v, lt_dd35v_n TYPE STANDARD TABLE OF dd35v,
lt_dd36m TYPE STANDARD TABLE OF dd36m, lt_dd36m_n TYPE STANDARD TABLE
OF dd36m, ls_zdd03p_ext TYPE st_zdd03p_ext, l_state TYPE dctablget.
FIELD-SYMBOLS: <ls_dd03p> TYPE dd03p. l_strukname = cs_ztadir-obj_name.
CALL FUNCTION 'DD_TABL_GET' EXPORTING tabl_name = l_strukname withtext
= abap_true add_typeinfo = abap_true IMPORTING dd02v_wa_a = cs_dd02v
dd02v_wa_n = ls_dd02v_n dd09l_wa_a = cs_dd09l dd09l_wa_n = ls_dd09v_n
got_state = l_state TABLES dd03p_tab_a = ct_dd03p dd03p_tab_n =
lt_dd03p_n dd05m_tab_a = lt_dd05m dd05m_tab_n = lt_dd05m_n dd08v_tab_a
= lt_dd08v dd08v_tab_n = lt_dd08v_n dd12v_tab_a = lt_dd12v dd12v_tab_n
= lt_dd12v_n dd17v_tab_a = lt_dd17v dd17v_tab_n = lt_dd17v_n
dd35v_tab_a = lt_dd35v dd35v_tab_n = lt_dd35v_n dd36m_tab_a = lt_dd36m
dd36m_tab_n = lt_dd36m_n EXCEPTIONS OTHERS = 1. IF sy-subrc <> 0.
cs_ztadir-subrc = sy-subrc. RETURN. ENDIF. IF cs_dd02v-masterlang IS
INITIAL. SELECT SINGLE masterlang FROM tadir INTO cs_dd02v-masterlang
WHERE pgmid = 'R3TR' AND object = 'TABL' AND obj_name = l_strukname.
ENDIF. LOOP AT ct_dd03p ASSIGNING <ls_dd03p>. IF <ls_dd03p>-fieldname =
'.INCLU--AP'. <ls_dd03p>-fieldname = '.APPEND'. ENDIF. IF
<ls_dd03p>-rollname IS INITIAL AND NOT <ls_dd03p>-precfield IS INITIAL.
SELECT SINGLE tabname FROM dd02l INTO <ls_dd03p>-rollname WHERE tabname
= <ls_dd03p>-precfield AND as4local = 'A'. IF sy-subrc = 0.
<ls_dd03p>-datatype = 'STRU'. ELSE. SELECT SINGLE typename FROM dd40l
INTO <ls_dd03p>-rollname WHERE typename = <ls_dd03p>-precfield AND
as4local = 'A'. IF sy-subrc = 0. <ls_dd03p>-datatype = 'TTYP'. ENDIF.
ENDIF. ENDIF. CLEAR ls_zdd03p_ext. CASE <ls_dd03p>-shlporigin. WHEN
'F'. ls_zdd03p_ext-shlporigin_f = abap_true. WHEN 'P'.
ls_zdd03p_ext-shlporigin_p = abap_true. ENDCASE. IF NOT
<ls_dd03p>-shlporigin IS INITIAL. PERFORM get_dom_value_text USING
'SHLPORIGIN' <ls_dd03p>-shlporigin CHANGING
ls_zdd03p_ext-shlporigin_ddtext. ENDIF. APPEND ls_zdd03p_ext TO
ct_zdd03p_ext. ENDLOOP. ENDFORM. FORM ddic_r3tr_ttyp. DATA: lt_html
TYPE it_string, lt_tabstrip TYPE it_tabstrip, l_typename TYPE typename,
lt_dom_value_accessmode TYPE it_dom_value, lt_dom_value_keydef TYPE
it_dom_value, lt_dom_value_keykind TYPE it_dom_value, ls_access TYPE
st_access, ls_attributes TYPE st_attributes, ls_line_type TYPE
st_line_type, ls_init_access TYPE st_init_access, ls_key TYPE st_key,
lt_accessmode TYPE it_access, lt_keykind TYPE it_access, lt_keydef TYPE
it_access, ls_dd40v TYPE dd40v, ls_dd40v_n TYPE dd40v, ls_dd42v TYPE
dd42v, lt_dd42v TYPE STANDARD TABLE OF dd42v, lt_dd42v_n TYPE STANDARD
TABLE OF dd42v, l_state TYPE dcttypget, l_ttypkind TYPE c.
FIELD-SYMBOLS: <l_datatype> TYPE ANY, <l_dataleng> TYPE ANY,
<l_decimals> TYPE ANY, <l_reftype> TYPE ANY, <l_rowkind> TYPE ANY,
<l_rowtype> TYPE ANY, <l_occurs> TYPE ANY, <l_range_ctyp> TYPE ANY,
<l_ttypkind> TYPE ANY, <ls_ztadir> TYPE st_ztadir, <ls_dom_value> TYPE
st_dom_value. PERFORM get_tabstrip USING 'DDIC_R3TR_TTYP' space
CHANGING lt_tabstrip. PERFORM get_dom_value_texts USING 'ACCESSMODE'
CHANGING lt_dom_value_accessmode. PERFORM get_dom_value_texts USING
'TTYPKEYDEF' CHANGING lt_dom_value_keydef. PERFORM get_dom_value_texts
USING 'KEYKIND' CHANGING lt_dom_value_keykind. LOOP AT gt_ztadir
ASSIGNING <ls_ztadir> WHERE pgmid = 'R3TR' AND object = 'TTYP' AND
downloaded = abap_false. <ls_ztadir>-downloaded = abap_true. CLEAR:
ls_attributes, ls_line_type, ls_init_access, ls_key, l_ttypkind.
REFRESH: lt_html, lt_dd42v, lt_dd42v_n. l_typename =
<ls_ztadir>-obj_name. CALL FUNCTION 'DD_TTYP_GET' EXPORTING ttyp_name =
l_typename langu = sy-langu withtext = abap_true IMPORTING got_state =
l_state dd40v_wa_a = ls_dd40v dd40v_wa_n = ls_dd40v_n TABLES
dd42v_tab_a = lt_dd42v dd42v_tab_n = lt_dd42v_n EXCEPTIONS OTHERS = 1.
IF sy-subrc <> 0. <ls_ztadir>-subrc = sy-subrc. CONTINUE. ENDIF. ASSIGN
COMPONENT 'TTYPKIND' OF STRUCTURE ls_dd40v TO <l_ttypkind>. IF
<l_ttypkind> IS ASSIGNED. l_ttypkind = <l_ttypkind>. UNASSIGN
<l_ttypkind>. ENDIF. ls_attributes-bname = ls_dd40v-as4user. PERFORM
get_date USING ls_dd40v-as4date CHANGING
ls_attributes-date_last_changed. ls_attributes-devclass =
<ls_ztadir>-devclass. PERFORM get_devclass USING <ls_ztadir>-devclass
CHANGING ls_attributes-devclass_descr. IF ls_dd40v-ddlanguage IS
INITIAL. SELECT SINGLE masterlang FROM tadir INTO ls_dd40v-ddlanguage
WHERE pgmid = 'R3TR' AND object = 'TTYP' AND obj_name = l_typename.
ENDIF. PERFORM get_spras USING ls_dd40v-ddlanguage CHANGING
ls_attributes-laiso ls_attributes-sptxt. PERFORM get_user USING
ls_dd40v-as4user CHANGING ls_attributes-name_text. ls_line_type-rowkind
= ls_dd40v-rowkind. ASSIGN COMPONENT 'ROWKIND' OF STRUCTURE ls_dd40v TO
<l_rowkind>. IF <l_rowkind> IS ASSIGNED. ls_line_type-rowkind =
<l_rowkind>. UNASSIGN <l_rowkind>. ENDIF. ASSIGN COMPONENT 'ROWTYPE' OF
STRUCTURE ls_dd40v TO <l_rowtype>. IF <l_rowtype> IS ASSIGNED.
ls_line_type-rowtype = <l_rowtype>. UNASSIGN <l_rowtype>. ENDIF.
PERFORM get_dom_value_text USING 'TYPEKIND' ls_dd40v-rowtype CHANGING
ls_line_type-rowdescr. ASSIGN COMPONENT 'DATATYPE' OF STRUCTURE
ls_dd40v TO <l_datatype>. IF <l_datatype> IS ASSIGNED.
ls_line_type-datatype = <l_datatype>. UNASSIGN <l_datatype>. ENDIF.
ASSIGN COMPONENT 'LENG' OF STRUCTURE ls_dd40v TO <l_dataleng>. IF
<l_dataleng> IS ASSIGNED. ls_line_type-dataleng = <l_dataleng>.
UNASSIGN <l_dataleng>. ENDIF. ASSIGN COMPONENT 'DECIMALS' OF STRUCTURE
ls_dd40v TO <l_decimals>. IF <l_decimals> IS ASSIGNED.
ls_line_type-datadeci = <l_decimals>. UNASSIGN <l_decimals>. ENDIF.
ls_line_type-datadeci = ls_dd40v-decimals. ASSIGN COMPONENT 'REFTYPE'
OF STRUCTURE ls_dd40v TO <l_reftype>. IF <l_reftype> IS ASSIGNED.
ls_line_type-reftype = <l_reftype>. PERFORM get_dom_value_text USING
'DDREFTYPE' <l_reftype> CHANGING ls_line_type-refdescr. UNASSIGN
<l_reftype>. ELSE. ls_line_type-reftype = '#'. ENDIF. ASSIGN COMPONENT
'RANGE_CTYP' OF STRUCTURE ls_dd40v TO <l_range_ctyp>. IF <l_range_ctyp>
IS ASSIGNED. ls_line_type-range_ctyp = <l_range_ctyp>. UNASSIGN
<l_range_ctyp>. ENDIF. ASSIGN COMPONENT 'CTDATATYPE' OF STRUCTURE
ls_dd40v TO <l_datatype>. IF <l_datatype> IS ASSIGNED.
ls_line_type-ctdatatype = <l_datatype>. UNASSIGN <l_datatype>. ENDIF.
ASSIGN COMPONENT 'CTLENG' OF STRUCTURE ls_dd40v TO <l_dataleng>. IF
<l_dataleng> IS ASSIGNED. ls_line_type-ctleng = <l_dataleng>. UNASSIGN
<l_dataleng>. ENDIF. ASSIGN COMPONENT 'CTDECIMALS' OF STRUCTURE
ls_dd40v TO <l_decimals>. IF <l_decimals> IS ASSIGNED.
ls_line_type-ctdecimals = <l_decimals>. UNASSIGN <l_decimals>. ENDIF.
ASSIGN COMPONENT 'OCCURS' OF STRUCTURE ls_dd40v TO <l_occurs>. IF
<l_occurs> IS ASSIGNED. ls_init_access-occurs = <l_occurs>. UNASSIGN
<l_occurs>. ELSE. ls_init_access-unknown = abap_true. ENDIF. REFRESH
lt_accessmode. LOOP AT lt_dom_value_accessmode ASSIGNING
<ls_dom_value>. CLEAR ls_access. ls_access-ddtext =
<ls_dom_value>-text. IF ls_dd40v-accessmode = <ls_dom_value>-value.
ls_access-checked = abap_true. ENDIF. APPEND ls_access TO
lt_accessmode. ENDLOOP. REFRESH lt_keydef. LOOP AT lt_dom_value_keydef
ASSIGNING <ls_dom_value>. CLEAR ls_access. ls_access-ddtext =
<ls_dom_value>-text. IF ls_dd40v-keydef = <ls_dom_value>-value.
ls_access-checked = abap_true. ENDIF. APPEND ls_access TO lt_keydef.
ENDLOOP. REFRESH lt_keykind. LOOP AT lt_dom_value_keykind ASSIGNING
<ls_dom_value>. CLEAR ls_access. ls_access-ddtext =
<ls_dom_value>-text. IF ls_dd40v-keykind = <ls_dom_value>-value.
ls_access-checked = abap_true. ENDIF. APPEND ls_access TO lt_keykind.
ENDLOOP. IF ls_dd40v-generic = abap_true. ls_line_type-info =
txt_type_is_generic. ls_init_access-info1 = txt_type_is_generic.
ls_key-info = txt_type_is_generic. ENDIF. IF l_ttypkind = 'R'.
ls_init_access-info2 = txt_access_type_is_given_for_a. CONCATENATE
txt_key_attribute_defined_for1 txt_key_attribute_defined_for2 INTO
ls_key-info SEPARATED BY space. ENDIF. PERFORM html_main_header USING
tpt_ddic_ttyp txt_table_type <ls_ztadir>-obj_name txt_active___1
txt_short_text___2 <ls_ztadir>-descript space lt_tabstrip gt_link
CHANGING lt_html. PERFORM html_add_attributes_1 USING ls_attributes
'ATTRIBUTES' abap_false CHANGING lt_html. IF l_ttypkind = 'R'. PERFORM
html_add_line_type_2 USING ls_line_type 'LINETYPE' abap_true CHANGING
lt_html. ELSE. PERFORM html_add_line_type_1 USING ls_line_type
'LINETYPE' abap_true CHANGING lt_html. ENDIF. PERFORM
html_add_init_access USING ls_init_access lt_accessmode 'INITACCESS'
abap_false CHANGING lt_html. PERFORM html_add_key USING ls_key
lt_keydef lt_keykind 'TTYP_DD42V' lt_dd42v 'KEY' abap_false CHANGING
lt_html. PERFORM html_main_footer USING lt_html. PERFORM download USING
lt_html <ls_ztadir>-pgmid <ls_ztadir>-object <ls_ztadir>-obj_name
gc_extension_htm abap_true. ENDLOOP. ENDFORM. FORM ddic_r3tr_type.
DATA: lt_html TYPE it_string, l_progname TYPE progname, ls_trdir TYPE
trdir, lt_source TYPE it_string, ls_attributes TYPE st_attributes,
lt_tabstrip TYPE it_tabstrip. FIELD-SYMBOLS: <ls_ztadir> TYPE
st_ztadir. PERFORM get_tabstrip USING 'DDIC_R3TR_TYPE' space CHANGING
lt_tabstrip. LOOP AT gt_ztadir ASSIGNING <ls_ztadir> WHERE pgmid =
'R3TR' AND object = 'TYPE' AND downloaded = abap_false.
<ls_ztadir>-downloaded = abap_true. CLEAR: ls_attributes. REFRESH:
lt_html. CALL FUNCTION 'RS_TADIR_TO_PROGNAME' EXPORTING object = 'TYPE'
obj_name = <ls_ztadir>-obj_name IMPORTING progname = l_progname. SELECT
SINGLE * FROM trdir INTO ls_trdir WHERE name = l_progname. IF sy-subrc
<> 0. <ls_ztadir>-subrc = sy-subrc. CONTINUE. ENDIF.
ls_attributes-bname = ls_trdir-unam. PERFORM get_date USING
ls_trdir-udat CHANGING ls_attributes-date_last_changed.
ls_attributes-devclass = <ls_ztadir>-devclass. PERFORM get_devclass
USING <ls_ztadir>-devclass CHANGING ls_attributes-devclass_descr. IF
ls_trdir-rload IS INITIAL. SELECT SINGLE masterlang FROM tadir INTO
ls_trdir-rload WHERE pgmid = 'R3TR' AND object = 'TYPE' AND obj_name =
<ls_ztadir>-obj_name. ENDIF. PERFORM get_spras USING ls_trdir-rload
CHANGING ls_attributes-laiso ls_attributes-sptxt. PERFORM get_user
USING ls_trdir-unam CHANGING ls_attributes-name_text. PERFORM
try_read_report USING l_progname CHANGING lt_source. PERFORM
html_main_header USING tpt_ddic_type txt_type_group
<ls_ztadir>-obj_name txt_active___1 txt_short_text___2
<ls_ztadir>-descript 'makeDivSize(''SOURCECODE'')' lt_tabstrip gt_link
CHANGING lt_html. PERFORM html_add_attributes_1 USING ls_attributes
'ATTRIBUTES' abap_false CHANGING lt_html. PERFORM html_add_sourcecode
USING lt_source <ls_ztadir>-obj_name space space gc_extension_txt
'SOURCECODE' abap_true CHANGING lt_html. PERFORM html_main_footer USING
lt_html. PERFORM download USING lt_html <ls_ztadir>-pgmid
<ls_ztadir>-object <ls_ztadir>-obj_name gc_extension_htm abap_true. IF
g_add_sourcecode = abap_true. PERFORM download USING lt_source
<ls_ztadir>-pgmid <ls_ztadir>-object <ls_ztadir>-obj_name
gc_extension_txt abap_false. ENDIF. ENDLOOP. ENDFORM. FORM
ddic_r3tr_view. DATA: lt_html TYPE it_string, lt_tabstrip TYPE
it_tabstrip, l_viewname TYPE viewname, ls_attributes TYPE
st_attributes, ls_tabname TYPE st_tabname, lt_tabname TYPE it_tabname,
ls_join_conditions TYPE st_join_conditions, lt_join_conditions TYPE
it_join_conditions, lt_tables TYPE it_tables, ls_table TYPE
st_table_structure, ls_deliv_maint TYPE st_deliv_maint,
lt_dom_value_viewgrant TYPE it_dom_value, lt_access TYPE it_access,
ls_access TYPE st_access, ls_dd09v TYPE dd09v, ls_dd09v_n TYPE dd09v,
ls_dd25v TYPE dd25v, ls_dd25v_n TYPE dd25v, lt_dd26v TYPE STANDARD
TABLE OF dd26v, lt_dd26v_n TYPE STANDARD TABLE OF dd26v, lt_dd27p TYPE
STANDARD TABLE OF dd27p, lt_dd27p_n TYPE STANDARD TABLE OF dd27p,
lt_dd28v TYPE STANDARD TABLE OF dd28v, lt_dd28v_n TYPE STANDARD TABLE
OF dd28v, l_state TYPE dcviewget, l_id TYPE string, l_txt_viewclass
TYPE as4text, lt_ts_buffer TYPE it_access, lt_ts_buffer_type_l TYPE
it_textinput, lt_ts_buffer_type_r TYPE it_textinput, ls_textinput TYPE
st_textinput, l_ddtext TYPE ddtext, lt_dom_value TYPE it_dom_value,
lt_create TYPE it_string, l_filename TYPE string. FIELD-SYMBOLS:
<ls_ztadir> TYPE st_ztadir, <ls_dom_value> TYPE st_dom_value,
<ls_dd26v> TYPE dd26v, <ls_dd27p> TYPE dd27p, <ls_dd28v> TYPE dd28v,
<ls_tabstrip> TYPE st_tabstrip. PERFORM get_dom_value_texts USING
'VIEWGRANT' CHANGING lt_dom_value_viewgrant. LOOP AT gt_ztadir
ASSIGNING <ls_ztadir> WHERE pgmid = 'R3TR' AND object = 'VIEW' AND
downloaded = abap_false. <ls_ztadir>-downloaded = abap_true. CLEAR:
ls_attributes, l_txt_viewclass, ls_textinput, l_ddtext, l_filename.
REFRESH: lt_html, lt_dd26v, lt_dd26v_n, lt_dd27p, lt_dd27p_n, lt_dd28v,
lt_dd28v_n, lt_ts_buffer, lt_ts_buffer_type_l, lt_ts_buffer_type_r,
lt_create. l_viewname = <ls_ztadir>-obj_name. CALL FUNCTION
'DD_VIEW_GET' EXPORTING view_name = l_viewname langu = sy-langu
withtext = abap_true IMPORTING dd25v_wa_a = ls_dd25v dd25v_wa_n =
ls_dd25v_n dd09l_wa_a = ls_dd09v dd09l_wa_n = ls_dd09v_n got_state =
l_state TABLES dd26v_tab_a = lt_dd26v dd26v_tab_n = lt_dd26v_n
dd27p_tab_a = lt_dd27p dd27p_tab_n = lt_dd27p_n dd28v_tab_a = lt_dd28v
dd28v_tab_n = lt_dd28v_n EXCEPTIONS OTHERS = 1. IF sy-subrc <> 0.
<ls_ztadir>-subrc = sy-subrc. CONTINUE. ENDIF. ls_attributes-bname =
ls_dd25v-as4user. PERFORM get_date USING ls_dd25v-as4date CHANGING
ls_attributes-date_last_changed. ls_attributes-devclass =
<ls_ztadir>-devclass. PERFORM get_devclass USING <ls_ztadir>-devclass
CHANGING ls_attributes-devclass_descr. IF ls_dd25v-masterlang IS
INITIAL. SELECT SINGLE masterlang FROM tadir INTO ls_dd25v-masterlang
WHERE pgmid = 'R3TR' AND object = 'VIEW' AND obj_name = l_viewname.
ENDIF. PERFORM get_spras USING ls_dd25v-masterlang CHANGING
ls_attributes-laiso ls_attributes-sptxt. PERFORM get_user USING
ls_dd25v-as4user CHANGING ls_attributes-name_text. IF
ls_dd25v-viewclass CO 'A'. ls_attributes-display_appview = abap_true.
ls_attributes-appview = ls_dd25v-roottab. ENDIF. IF NOT
ls_dd09v-tabname IS INITIAL. PERFORM get_dom_value_texts USING
'BUFALLOW' CHANGING lt_dom_value. LOOP AT lt_dom_value ASSIGNING
<ls_dom_value>. CLEAR ls_access. ls_access-ddtext =
<ls_dom_value>-text. IF <ls_dom_value>-value = ls_dd09v-bufallow.
ls_access-checked = abap_true. ENDIF. APPEND ls_access TO lt_ts_buffer.
ENDLOOP. CLEAR ls_textinput. ls_textinput-name =
txt_single_records_buff. IF ls_dd09v-pufferung = 'P'.
ls_textinput-value = abap_true. ENDIF. ls_textinput-flag = abap_true.
APPEND ls_textinput TO lt_ts_buffer_type_l. CLEAR ls_textinput.
ls_textinput-name = txt_generic_area_buffered. IF ls_dd09v-pufferung =
'G'. ls_textinput-value = abap_true. ENDIF. ls_textinput-flag =
abap_true. APPEND ls_textinput TO lt_ts_buffer_type_l. CLEAR
ls_textinput. ls_textinput-name = txt_fully_buffered. IF
ls_dd09v-pufferung = 'X'. ls_textinput-value = abap_true. ENDIF.
ls_textinput-flag = abap_true. APPEND ls_textinput TO
lt_ts_buffer_type_l. CLEAR ls_textinput. ls_textinput-space =
abap_true. APPEND ls_textinput TO lt_ts_buffer_type_r. CLEAR
ls_textinput. ls_textinput-name = txt_no_of_key_fields. PERFORM
get_unpacked USING ls_dd09v-schfeldanz CHANGING ls_textinput-value.
ls_textinput-input = abap_true. APPEND ls_textinput TO
lt_ts_buffer_type_r. CLEAR ls_textinput. ls_textinput-space =
abap_true. APPEND ls_textinput TO lt_ts_buffer_type_r. ENDIF. CALL
FUNCTION 'DB_GET_VIEW_DEFINITION_RAW' EXPORTING viewname = l_viewname
TABLES text_tab = lt_create EXCEPTIONS OTHERS = 1. REFRESH lt_tabname.
LOOP AT lt_dd26v ASSIGNING <ls_dd26v>. ls_tabname-tabname =
<ls_dd26v>-tabname. APPEND ls_tabname TO lt_tabname. ENDLOOP. SORT
lt_tabname BY tabname. DELETE ADJACENT DUPLICATES FROM lt_tabname.
REFRESH lt_join_conditions. IF ls_dd25v-viewclass CO 'HDCV'. REFRESH
lt_join_conditions. SORT lt_dd28v BY position. LOOP AT lt_dd28v
ASSIGNING <ls_dd28v>. IF <ls_dd28v>-negation = 'JL'.
ls_join_conditions-tabname_l = <ls_dd28v>-tabname.
ls_join_conditions-fieldname_l = <ls_dd28v>-fieldname. PERFORM
get_gui_operator USING <ls_dd28v>-operator CHANGING
ls_join_conditions-operator. ELSE. ls_join_conditions-tabname_r =
<ls_dd28v>-tabname. ls_join_conditions-fieldname_r =
<ls_dd28v>-fieldname. APPEND ls_join_conditions TO lt_join_conditions.
ENDIF. ENDLOOP. ENDIF. IF ls_dd25v-viewclass CO 'HDCV'. DELETE lt_dd28v
WHERE constants = space. ENDIF. REFRESH lt_access. LOOP AT
lt_dom_value_viewgrant ASSIGNING <ls_dom_value>. CLEAR ls_access. IF
ls_dd25v-viewclass CO 'HCV' OR <ls_dom_value>-value NA 'MU'.
ls_access-ddtext = <ls_dom_value>-text. IF ls_dd25v-viewgrant =
<ls_dom_value>-value. ls_access-checked = abap_true. ENDIF. APPEND
ls_access TO lt_access. ENDIF. ENDLOOP. CLEAR ls_deliv_maint.
ls_deliv_maint-display_cont = abap_false. ls_deliv_maint-display_main =
abap_false. IF ls_dd25v-viewclass CO 'CV'. ls_deliv_maint-display_cont
= abap_true. ls_deliv_maint-contflag = ls_dd25v-customauth. PERFORM
get_dom_value_text USING 'CONTFLAG' ls_dd25v-customauth CHANGING
ls_deliv_maint-contflag_text. ENDIF. IF ls_dd25v-viewclass CO 'DPCV'.
ls_deliv_maint-display_main = abap_true. PERFORM get_dom_value_text
USING 'MAINTFLAG' ls_dd25v-globalflag CHANGING
ls_deliv_maint-mainflag_text. ENDIF. PERFORM get_tabstrip USING
'DDIC_R3TR_VIEW' ls_dd25v-viewclass CHANGING lt_tabstrip. LOOP AT
lt_tabstrip ASSIGNING <ls_tabstrip>. <ls_tabstrip>-empty = abap_false.
CASE <ls_tabstrip>-id. WHEN 'CREATE'. IF lt_create IS INITIAL.
<ls_tabstrip>-empty = abap_true. ENDIF. WHEN 'SELECTIONCONDITIONS'. IF
lt_dd28v IS INITIAL. <ls_tabstrip>-empty = abap_true. ENDIF. ENDCASE.
ENDLOOP. PERFORM get_dom_value_text USING 'VIEWCLASS'
ls_dd25v-viewclass CHANGING l_txt_viewclass. PERFORM html_main_header
USING tpt_ddic_view l_txt_viewclass <ls_ztadir>-obj_name txt_active___1
txt_short_text___2 <ls_ztadir>-descript space lt_tabstrip gt_link
CHANGING lt_html. IF ls_dd25v-viewclass CO 'HDPSCV'. PERFORM
html_add_box1rb_subbox2ti USING txt_buffering lt_ts_buffer
txt_buffering_type lt_ts_buffer_type_l lt_ts_buffer_type_r
'TECH_SETTINGS' abap_false CHANGING lt_html. ENDIF. IF
ls_dd25v-viewclass CO 'HDPSCV'. IF NOT lt_create IS INITIAL OR
g_empty_tab = gc_empty_tab_display. CONCATENATE l_viewname '_CREATE'
INTO l_filename. PERFORM html_add_sourcecode USING lt_create l_filename
space space gc_extension_txt 'CREATE' abap_false CHANGING lt_html. IF
NOT lt_create IS INITIAL AND g_add_sourcecode = abap_true. PERFORM
download USING lt_create <ls_ztadir>-pgmid <ls_ztadir>-object
l_filename gc_extension_txt abap_false. ENDIF. ENDIF. ENDIF. PERFORM
html_add_attributes_1 USING ls_attributes 'ATTRIBUTES' abap_false
CHANGING lt_html. IF ls_dd25v-viewclass CO 'HDCV'. PERFORM
html_add_table2hor USING 'VIEW_JOINT' lt_tabname lt_tabname
'VIEW_JOINC' lt_join_conditions lt_join_conditions 'TABJOINCONDITIONS'
abap_false CHANGING lt_html. ENDIF. PERFORM get_id USING 'VIEW_FIELD|'
ls_dd25v-viewclass CHANGING l_id. IF ls_dd25v-viewclass CO 'HDPCV'.
PERFORM html_add_table USING l_id lt_dd27p lt_dd27p 'VIEWFIELDS'
abap_true CHANGING lt_html. ELSEIF ls_dd25v-viewclass CO 'AS'. PERFORM
html_add_table2hor USING 'VIEW_JOINT' lt_tabname lt_tabname l_id
lt_dd27p lt_dd27p 'VIEWFIELDS' abap_true CHANGING lt_html. ENDIF. IF
ls_dd25v-viewclass CO 'HDCV'. IF NOT lt_dd28v IS INITIAL OR g_empty_tab
= gc_empty_tab_display. PERFORM html_add_table USING 'VIEW_SELEC'
lt_dd28v lt_dd28v 'SELECTIONCONDITIONS' abap_false CHANGING lt_html.
ENDIF. ENDIF. IF ls_dd25v-viewclass CO 'HDCV'. PERFORM
html_add_deliv_maint USING ls_deliv_maint lt_access 'DELIVMAINT'
abap_false CHANGING lt_html. ENDIF. PERFORM html_main_footer USING
lt_html. PERFORM download USING lt_html <ls_ztadir>-pgmid
<ls_ztadir>-object <ls_ztadir>-obj_name gc_extension_htm abap_true.
ENDLOOP. ENDFORM. FORM fugr. PERFORM fugr_r3tr_fugr. PERFORM
fugr_r3tr_includes. PERFORM fugr_r3tr_modules. PERFORM
fugr_r3tr_screen. ENDFORM. FORM fugr_get_feldtab USING is_d020s TYPE
d020s it_d021s TYPE it_d021s it_d023x TYPE d023s_xtab is_dynpro_release
TYPE st_dynpro_release CHANGING ct_feld TYPE it_feld ct_feld_redef TYPE
it_feld_redef. DATA: ls_d021s_res1 LIKE d021s_res1, ls_feld TYPE feld,
ls_feld_redef TYPE st_feld_redef, ls_func_old TYPE
st_dynpro_function_old, ls_func_new TYPE st_dynpro_function_new,
l_length TYPE i, l_strlen TYPE i. FIELD-SYMBOLS: <ls_d021s> TYPE d021s,
<ls_d023x> TYPE d023s_xh, <l_recentry> TYPE ANY. CONSTANTS: lc_flg1ddf
TYPE x VALUE '20', lc_flg1ddm TYPE x VALUE '10', lc_flg1edt TYPE x
VALUE '80', lc_flg1scr TYPE x VALUE '01', lc_flg3obl TYPE x VALUE '20',
lc_fmb1ges TYPE x VALUE '20', lc_fmb1out TYPE x VALUE '01',
lcs_dynpro_rel_400 TYPE st_dynpro_release VALUE '4.00',
lcs_dynpro_rel_401 TYPE st_dynpro_release VALUE '4.01',
lcs_dynpro_rel_402 TYPE st_dynpro_release VALUE '4.02',
lcs_dynpro_rel_46a TYPE st_dynpro_release VALUE '4.60',
lcs_dynpro_rel_610 TYPE st_dynpro_release VALUE '6.10'. REFRESH:
ct_feld, ct_feld_redef. LOOP AT it_d021s ASSIGNING <ls_d021s>. CLEAR
ls_d021s_res1. CLEAR ls_feld. CLEAR ls_feld_redef. CLEAR ls_func_new.
CLEAR ls_func_old. ls_d021s_res1 = <ls_d021s>-res1. ls_feld-name =
<ls_d021s>-fnam. ls_feld-dynnr = is_d020s-dnum. ls_feld-line =
<ls_d021s>-line. IF ( <ls_d021s>-lanf <> 0 AND <ls_d021s>-ltyp = 'T' )
OR ( <ls_d021s>-ltyp = 'I' AND <ls_d021s>-fill = 'P' ) OR
<ls_d021s>-ltyp = 'S'. ls_feld-coln = <ls_d021s>-coln. ELSE.
ls_feld-coln = <ls_d021s>-coln - 1. ENDIF. ls_feld-leng =
<ls_d021s>-leng. ls_feld-vleng = 1. IF <ls_d021s>-didx <= 0. IF
<ls_d021s>-stxt(1) = '@'. IF <ls_d021s>-leng > 2. ls_feld-vleng =
<ls_d021s>-leng - 2. ENDIF. ELSE. IF <ls_d021s>-leng > 1. ls_feld-vleng
= <ls_d021s>-leng. ENDIF. ENDIF. ELSE. IF <ls_d021s>-fill CA 'TBSUIR'.
ls_feld-vleng = <ls_d021s>-leng. ELSE. IF <ls_d021s>-flg1 Z lc_flg1edt.
IF <ls_d021s>-ltyp CA 'TP'. ls_feld-vleng = <ls_d021s>-didx. ELSE. IF
<ls_d021s>-didx > 0. ls_feld-vleng = <ls_d021s>-didx. ELSE.
ls_feld-vleng = <ls_d021s>-leng. ENDIF. ENDIF. ELSE. ls_feld-vleng =
<ls_d021s>-didx. ENDIF. ENDIF. ENDIF. ls_feld-high = 1. IF
<ls_d021s>-didx > 0 AND <ls_d021s>-fill CA 'TBSUIR'. ls_feld-high =
<ls_d021s>-didx. ENDIF. IF <ls_d021s>-flg1 O lc_flg1edt AND
<ls_d021s>-flg1 O lc_flg1scr AND <ls_d021s>-fill NA 'TSI'.
ls_feld-scroll = abap_true. ELSE. ls_feld-scroll = abap_false. ENDIF.
IF <ls_d021s>-type = 'STRG' OR <ls_d021s>-type = 'RSTR' OR
<ls_d021s>-type = 'SSTR'. ls_feld-scroll = abap_true. ENDIF. IF
<ls_d021s>-flg1 O lc_flg1ddf. ls_feld-dict = abap_true. ELSE.
ls_feld-dict = abap_false. ENDIF. IF <ls_d021s>-flg1 O lc_flg1edt. IF
<ls_d021s>-flg1 O lc_flg1ddf AND <ls_d021s>-flg1 O lc_flg1ddm.
ls_feld-dmod = abap_true. ENDIF. ELSE. IF <ls_d021s>-flg1 O lc_flg1ddf.
IF <ls_d021s>-ityp = '4'. ls_feld-dmod = '4'. ELSE. IF <ls_d021s>-ityp
= '1' OR <ls_d021s>-ityp = '2' OR <ls_d021s>-ityp = '3'. IF
<ls_d021s>-flg1 O lc_flg1ddm. ls_feld-dmod = <ls_d021s>-ityp. ELSE.
ls_feld-dmod = 'V'. ENDIF. ELSEIF <ls_d021s>-ityp = '0'. IF
<ls_d021s>-flg1 O lc_flg1ddm. ls_feld-dmod = 'F'. ELSE. ls_feld-dmod =
'V'. ENDIF. ELSE. ls_feld-dmod = 'F'. ENDIF. ENDIF. ENDIF. ENDIF.
ls_feld-grp1 = <ls_d021s>-grp1. ls_feld-grp2 = <ls_d021s>-grp2.
ls_feld-grp3 = <ls_d021s>-grp3. ls_feld-grp4 = <ls_d021s>-grp4. IF
<ls_d021s>-ltyp = 'L'. ls_feld-loop = <ls_d021s>-lrep. IF is_d020s-valp
= <ls_d021s>-lanf. ls_feld-ltyp = 'Var'. ELSE. ls_feld-ltyp = 'Fix'.
ENDIF. ENDIF. IF <ls_d021s>-fmb1 O lc_fmb1ges. ls_feld-fobl = 'N'.
ELSEIF <ls_d021s>-flg3 O lc_flg3obl. ls_feld-fobl = 'O'. ls_feld-fein =
abap_true. ELSE. ls_feld-fein = abap_true. ASSIGN COMPONENT 'RECENTRY'
OF STRUCTURE ls_d021s_res1 TO <l_recentry>. IF <l_recentry> IS ASSIGNED
AND NOT <l_recentry> IS INITIAL. ls_feld-fobl = 'R'. ENDIF. UNASSIGN
<l_recentry>. ENDIF. PERFORM get_dom_value_text USING 'SCRPFOBL'
ls_feld-fobl CHANGING ls_feld_redef-fobl. IF <ls_d021s>-fill <> 'R'.
ls_feld-fout = abap_true. ENDIF. PERFORM fugr_get_feld_fill_na_btisu
USING <ls_d021s> is_dynpro_release CHANGING ls_feld. ls_feld-colr =
<ls_d021s>-colr. ls_feld-mtch = <ls_d021s>-dmac. ls_feld-waer =
<ls_d021s>-wnam. IF is_dynpro_release <= lcs_dynpro_rel_400.
ls_func_old = <ls_d021s>-dmac. ls_feld-fcod = ls_func_old-code.
ls_feld-ptype = ls_func_old-type. ELSEIF is_dynpro_release <=
lcs_dynpro_rel_402. ls_func_new = <ls_d021s>-dmac. ls_feld-fcod =
ls_func_new-code. ls_feld-ptype = ls_func_new-type. ELSE. ls_feld-fcod
= ls_d021s_res1-funccode. ls_feld-ptype = ls_d021s_res1-functype.
ENDIF. IF ls_d021s_res1-ctmenuflg = abap_true. ls_feld-ctmenust =
abap_true. ls_feld-ctmenuprog = ls_d021s_res1-ctmenuprog.
ls_feld-ctmenustat = ls_d021s_res1-ctmenustat. ELSE. ls_feld-ctmenudy =
abap_true. ls_feld-ctmenuonct = ls_d021s_res1-ctmenustat. ENDIF. READ
TABLE it_d023x ASSIGNING <ls_d023x> WITH KEY cccustom =
<ls_d021s>-fnam. IF sy-subrc = 0. ls_feld-ccname = <ls_d023x>-ccname.
ENDIF. CALL FUNCTION 'RS_SCRP_GET_FIELD_TYPE_TEXT' EXPORTING field =
<ls_d021s> text_kind = 'SHORT' IMPORTING field_type_without_modif =
ls_feld-gtyp EXCEPTIONS OTHERS = 1. ls_feld-stxt = <ls_d021s>-stxt.
ls_feld-dropfrom = ls_d021s_res1-dropval. IF ls_d021s_res1-dropdown =
'D'. CASE ls_d021s_res1-dropstyle. WHEN 'K'. ls_feld-dropdown =
ls_d021s_res1-dropstyle. WHEN OTHERS. ls_feld-dropdown =
ls_d021s_res1-droptyp. ENDCASE. PERFORM get_dom_value_text USING
'SCRPCOTYPE' ls_feld-dropdown CHANGING ls_feld_redef-dropdown. ENDIF.
IF <ls_d021s>-colr = '8'. ls_feld-extend = 'N'. ELSEIF <ls_d021s>-colr
= '7'. ls_feld-extend = 'C'. ENDIF. IF <ls_d021s>-fill CA 'BTSUI'.
ls_feld-hierarchy = '+ '. ENDIF. IF <ls_d021s>-ltyp CA 'TSI'.
ls_feld-hierarchy = ' -'. ENDIF. PERFORM fugr_get_feld_icon USING
<ls_d021s> CHANGING ls_feld. ls_feld-prog = is_d020s-prog. ls_feld-dnum
= is_d020s-dnum. CASE <ls_d021s>-ltyp. WHEN 'O'. ls_feld-type = ' OK '.
ls_feld-line = '0'. ls_feld-coln = '0'. ls_feld-leng = ls_feld-vleng.
ls_feld-fein = abap_undefined. ls_feld-fout = abap_undefined.
ls_feld-oout = abap_undefined. ls_feld_redef-fobl = space. ls_feld-fixf
= abap_false. WHEN OTHERS. ls_feld-type = <ls_d021s>-type. ENDCASE.
CASE <ls_d021s>-fill. WHEN 'C'. ls_feld-scroll = abap_undefined.
ls_feld-icon_x = abap_undefined. ls_feld_redef-fobl = space.
ls_feld-fixf = abap_false. WHEN 'P'. ls_feld-scroll = abap_undefined.
ls_feld_redef-fobl = space. WHEN 'R'. ls_feld-fout = abap_true.
ls_feld-scroll = abap_undefined. ls_feld_redef-fobl = space. WHEN 'T'.
ls_feld_redef-fobl = space. ENDCASE. CASE ls_feld-gtyp. WHEN 'Check'.
IF <ls_d021s>-ityp = '0'. ls_feld-scroll = abap_undefined. ls_feld-fein
= abap_false. ls_feld-fout = abap_false. ls_feld-oout = abap_false.
ls_feld-type = space. ls_feld-icon_x = abap_undefined.
ls_feld_redef-fobl = space. ls_feld-paid = space. ls_feld-cmbfoc =
abap_false. ls_feld-ucnv = space. ENDIF. WHEN 'CuCtr'. ls_feld-scroll =
abap_undefined. ls_feld-fein = abap_false. ls_feld-fout = abap_false.
ls_feld-oout = abap_false. ls_feld-type = space. ls_feld-icon_x =
abap_undefined. ls_feld_redef-fobl = space. ls_feld-paid = space.
ls_feld-cmbfoc = abap_false. ls_feld-ucnv = space. WHEN 'Frame'.
ls_feld-scroll = abap_undefined. ls_feld-icon_x = abap_undefined. IF
ls_feld-stxt CN ' _'. ls_feld-fein = abap_false. ls_feld-fout =
abap_false. ls_feld-oout = abap_false. ls_feld-type = space.
ls_feld_redef-fobl = space. ls_feld-paid = space. ls_feld-cmbfoc =
abap_false. ls_feld-ucnv = space. ENDIF. WHEN 'I/O'. IF
is_dynpro_release <= lcs_dynpro_rel_402. ls_feld-fixf = abap_false.
ENDIF. WHEN 'Push'. ls_feld-scroll = abap_undefined. ls_feld-mtch =
space. IF <ls_d021s>-flg1 Z lc_flg1edt. ls_feld-fein = abap_false.
ls_feld-fout = abap_false. ls_feld-oout = abap_false. ls_feld-type =
space. ls_feld-icon_x = abap_undefined. ls_feld_redef-fobl = space.
ls_feld-paid = space. ls_feld-cmbfoc = abap_false. ls_feld-ucnv =
space. ENDIF. WHEN 'Radio'. ls_feld-scroll = abap_undefined.
ls_feld-icon_x = abap_undefined. ls_feld_redef-fobl = space. IF
ls_feld-fcod IS INITIAL. ls_feld-fein = abap_false. ls_feld-fout =
abap_false. ls_feld-oout = abap_false. ls_feld-type = space.
ls_feld-icon_x = abap_undefined. ls_feld_redef-fobl = space.
ls_feld-paid = space. ls_feld-cmbfoc = abap_false. ls_feld-ucnv =
space. ENDIF. WHEN 'SubSc'. ls_feld-scroll = abap_undefined.
ls_feld-icon_x = abap_undefined. ls_feld_redef-fobl = space. IF
ls_feld-fcod IS INITIAL. ls_feld-fein = abap_false. ls_feld-fout =
abap_false. ls_feld-oout = abap_false. ls_feld-type = space.
ls_feld-icon_x = abap_undefined. ls_feld_redef-fobl = space.
ls_feld-paid = space. ls_feld-cmbfoc = abap_false. ls_feld-ucnv =
space. ENDIF. WHEN 'Table'. ls_feld-fein = abap_false. ls_feld-fout =
abap_false. ls_feld-oout = abap_false. ls_feld-type = space.
ls_feld-dict = abap_false. ls_feld-dmod = abap_false. WHEN 'TbStr'.
ls_feld-scroll = abap_undefined. ls_feld-fein = abap_false.
ls_feld-fout = abap_false. ls_feld-oout = abap_false. ls_feld-type =
space. ls_feld-icon_x = abap_undefined. ls_feld_redef-fobl = space.
ls_feld-paid = space. ls_feld-cmbfoc = abap_false. ls_feld-ucnv =
space. WHEN 'Text'. ls_feld-scroll = abap_undefined. ls_feld-fein =
abap_false. ls_feld-fout = abap_false. ls_feld-oout = abap_false.
ls_feld-type = space. ls_feld-icon_x = abap_undefined.
ls_feld_redef-fobl = space. ls_feld-paid = space. ls_feld-cmbfoc =
abap_false. ls_feld-ucnv = space. IF ls_feld-fixf = abap_false AND
ls_feld-hell = abap_false AND ls_feld-unsi = abap_false AND
<ls_d021s>-ltyp = space AND ls_feld-labelright = abap_false AND
<ls_d021s>-flg1 <> '00'. ls_feld-labelleft = abap_true. ENDIF. ENDCASE.
IF NOT ls_feld-stxt IS INITIAL. IF ls_feld-stxt NA '_'. l_length =
<ls_d021s>-leng. IF l_length > 132. l_length = 132. ENDIF. l_strlen =
strlen( ls_feld-stxt ). WHILE l_strlen < l_length. CONCATENATE
ls_feld-stxt '_' INTO ls_feld-stxt. l_strlen = strlen( ls_feld-stxt ).
ENDWHILE. ENDIF. IF <ls_d021s>-fill = 'R'. l_strlen = strlen(
ls_feld-stxt ). l_length = l_strlen - 2. IF l_length > 0. ls_feld-stxt
= ls_feld-stxt+0(l_length). ENDIF. ENDIF. ENDIF. APPEND ls_feld TO
ct_feld. APPEND ls_feld_redef TO ct_feld_redef. ENDLOOP. ENDFORM. FORM
fugr_get_feld_fill_na_btisu USING is_d021s TYPE d021s is_dynpro_release
TYPE st_dynpro_release CHANGING cs_feld TYPE feld. DATA: ls_d021s_res1
LIKE d021s_res1. CONSTANTS: lc_flg1ddf TYPE x VALUE '20', lc_flg1edt
TYPE x VALUE '80', lc_flg1osb TYPE x VALUE '04', lc_flg2gks TYPE x
VALUE '02', lc_flg2gpa TYPE x VALUE '08', lc_flg2jus TYPE x VALUE '20',
lc_flg2nrs TYPE x VALUE '40', lc_flg2spa TYPE x VALUE '04', lc_flg2str
TYPE x VALUE '80', lc_flg3fdu TYPE x VALUE '02', lc_flg3fix TYPE x
VALUE '40', lc_flg3fku TYPE x VALUE '08', lc_flg3for TYPE x VALUE '04',
lc_flg3out TYPE x VALUE '80', lc_fmb1d23 TYPE x VALUE '02', lc_fmb1dnk
TYPE x VALUE '04', lc_fmb1fix TYPE x VALUE '40', lc_fmb1ges TYPE x
VALUE '20', lc_fmb1hll TYPE x VALUE '08', lc_fmb1out TYPE x VALUE '01',
lc_fmb2cmb TYPE x VALUE '08', lc_fmb2cmi TYPE x VALUE '04', lc_fmb2cmu
TYPE x VALUE '10', lcs_dynpro_rel_400 TYPE st_dynpro_release VALUE
'4.00', lcs_dynpro_rel_401 TYPE st_dynpro_release VALUE '4.01',
lcs_dynpro_rel_402 TYPE st_dynpro_release VALUE '4.02',
lcs_dynpro_rel_46a TYPE st_dynpro_release VALUE '4.60',
lcs_dynpro_rel_610 TYPE st_dynpro_release VALUE '6.10'. CHECK
is_d021s-fill NA 'BTISU'. ls_d021s_res1 = is_d021s-res1. IF
is_d021s-flg2 O lc_flg2str. cs_feld-fstr = abap_true. ENDIF. IF
is_d021s-flg2 O lc_flg2nrs. cs_feld-fnrs = abap_true. ENDIF. IF
is_d021s-flg2 O lc_flg2gks. cs_feld-fgks = abap_true. ENDIF. IF
is_d021s-flg3 O lc_flg3fix. cs_feld-ffix = abap_true. ENDIF. IF
is_d021s-flg1 O lc_flg1osb. cs_feld-fosb = abap_true. ENDIF. IF
is_d021s-flg2 O lc_flg2jus. cs_feld-fjus = abap_true. ENDIF. IF
is_d021s-fill = '0'. cs_feld-fill = abap_true. ENDIF. IF is_d021s-flg2
O lc_flg2gpa. cs_feld-fgpa = abap_true. ENDIF. IF is_d021s-flg2 O
lc_flg2spa. cs_feld-fspa = abap_true. ENDIF. IF is_d021s-flg1 O
lc_flg1ddf AND is_d021s-flg3 O lc_flg3for AND is_d021s-flg3 Z
lc_flg3fdu AND is_d021s-flg3 Z lc_flg3fku. cs_feld-ffky = 'X'. ENDIF.
IF is_d021s-flg1 O lc_flg1edt. IF is_d021s-fmb1 Z lc_fmb1ges.
cs_feld-fein = abap_true. ELSE. cs_feld-fein = abap_false. ENDIF. IF
is_d021s-flg3 O lc_flg3out. cs_feld-fout = abap_true. ELSE.
cs_feld-fout = abap_false. ENDIF. IF is_d021s-fmb1 O lc_fmb1out.
cs_feld-oout = abap_true. ELSE. cs_feld-oout = abap_false. ENDIF.
ENDIF. cs_feld-paid = is_d021s-paid. cs_feld-ucnv = is_d021s-ucnv. IF
is_d021s-fmb1 O lc_fmb1hll. cs_feld-hell = abap_true. ENDIF. IF
is_d021s-fmb1 O lc_fmb1dnk. cs_feld-unsi = abap_true. ENDIF. IF
is_d021s-fmb1 O lc_fmb1d23. cs_feld-no3d = abap_true. ENDIF. IF
is_dynpro_release <= lcs_dynpro_rel_402. IF cs_feld-oout = abap_true
AND cs_feld-fout = abap_true AND is_d021s-flg3 Z lc_flg3out.
cs_feld-fixf = abap_true. ELSEIF cs_feld-oout = abap_false AND
is_d021s-fmb1 O lc_fmb1out. cs_feld-fixf = abap_true. ENDIF. ENDIF. IF
is_d021s-fmb1 O lc_fmb1fix. cs_feld-fixf = abap_true. ENDIF.
cs_feld-labelleft = ls_d021s_res1-labelleft. cs_feld-labelright =
ls_d021s_res1-labelright. cs_feld-dblclick = ls_d021s_res1-dblclick. IF
is_d021s-fill <> 'P' AND is_d021s-dmac <> space. cs_feld-cmbfoc =
abap_true. ENDIF. IF is_d021s-fmb2 Z lc_fmb2cmb. cs_feld-cmbfoc =
abap_false. ELSE. cs_feld-cmbfoc = abap_true. ENDIF. IF is_d021s-fmb2 Z
lc_fmb2cmu AND is_d021s-fmb2 Z lc_fmb2cmi. cs_feld-cmbtast = space.
ELSEIF is_d021s-fmb2 O lc_fmb2cmu AND is_d021s-fmb2 O lc_fmb2cmi.
cs_feld-cmbtast = '0'. ELSEIF is_d021s-fmb2 O lc_fmb2cmu AND
is_d021s-fmb2 Z lc_fmb2cmi. cs_feld-cmbtast = '1'. ELSEIF is_d021s-fmb2
Z lc_fmb2cmu AND is_d021s-fmb2 O lc_fmb2cmi. cs_feld-cmbtast = '2'.
ENDIF. ENDFORM. FORM fugr_get_feld_icon USING is_d021s TYPE d021s
CHANGING cs_feld TYPE feld. DATA: l_icon_id_pure(2) TYPE c, ls_icon
TYPE icon, ls_icont TYPE icont, l_id_and_param(132) TYPE c,
l_is_non_icon TYPE flag, l_pos_at TYPE i, l_quick_is TYPE flag,
l_strlen TYPE i. FIELD-SYMBOLS: <l_fs> TYPE ANY. CONSTANTS: lc_flg1edt
TYPE x VALUE '80'. CHECK is_d021s-stxt(1) = '@'. ASSIGN
is_d021s-stxt+1(*) TO <l_fs>. IF <l_fs> CA '@'. l_pos_at = sy-fdpos +
1. l_id_and_param = <l_fs>(sy-fdpos). IF l_id_and_param CS '\Q'.
l_quick_is = abap_true. SPLIT l_id_and_param AT '\Q' INTO
l_icon_id_pure cs_feld-icon_q. CONCATENATE '@' l_icon_id_pure '@' INTO
cs_feld-icon. ELSE. l_quick_is = abap_false. CONCATENATE '@'
l_id_and_param '@' INTO cs_feld-icon. ENDIF. IF cs_feld-icon = '@@'.
CLEAR cs_feld-icon. l_is_non_icon = abap_true. ENDIF. SELECT SINGLE *
FROM icon INTO ls_icon WHERE id = cs_feld-icon. IF sy-subrc = 0. SELECT
SINGLE * FROM icont INTO ls_icont WHERE id = cs_feld-icon AND langu =
sy-langu. cs_feld-icon_n = ls_icon-name. ELSE. cs_feld-icon_n = space.
ENDIF. IF cs_feld-icon_q IS INITIAL AND l_quick_is = abap_false.
cs_feld-icon_q = ls_icont-quickinfo. ENDIF. l_pos_at = l_pos_at + 1.
ASSIGN is_d021s-stxt+l_pos_at(*) TO <l_fs>. l_strlen = strlen( <l_fs>
). IF l_strlen > 0. IF l_is_non_icon = abap_true. ELSE. l_pos_at =
l_pos_at + 1. ENDIF. cs_feld-stxt = is_d021s-stxt+l_pos_at. ELSE.
cs_feld-stxt = space. ENDIF. ENDIF. UNASSIGN <l_fs>. IF cs_feld-icon =
'@00@' AND is_d021s-flg1 O lc_flg1edt. cs_feld-icon_x = abap_true.
ENDIF. ENDFORM. FORM fugr_r3tr_fugr. DATA: l_progname TYPE progname,
lt_tabstrip TYPE it_tabstrip, ls_ti TYPE st_textinput, lt_attributes
TYPE it_textinput, lt_documentation TYPE it_string, ls_progdir TYPE
progdir, ls_tadir TYPE tadir, l_name TYPE ad_namtext, lt_html TYPE
it_string. FIELD-SYMBOLS: <ls_ztadir> TYPE st_ztadir, <ls_tabstrip>
TYPE st_tabstrip. PERFORM get_tabstrip USING 'FUGR_R3TR_FUGR' space
CHANGING lt_tabstrip. LOOP AT gt_ztadir ASSIGNING <ls_ztadir> WHERE
pgmid = 'R3TR' AND object = 'FUGR' AND futype = gc_futype_group AND
downloaded = abap_false. <ls_ztadir>-downloaded = abap_true. CLEAR:
l_name, l_progname, ls_progdir, ls_tadir. REFRESH: lt_attributes,
lt_documentation, lt_html. CALL FUNCTION 'RS_TADIR_TO_PROGNAME'
EXPORTING object = <ls_ztadir>-object obj_name = <ls_ztadir>-obj_name
IMPORTING progname = l_progname. SELECT SINGLE * FROM progdir INTO
ls_progdir WHERE name = l_progname. SELECT SINGLE * FROM tadir INTO
ls_tadir WHERE pgmid = 'R3TR' AND object = 'FUGR' AND obj_name =
<ls_ztadir>-obj_name. CLEAR ls_ti. ls_ti-name = txt_function_group.
ls_ti-input = abap_true. ls_ti-value = <ls_ztadir>-obj_name. APPEND
ls_ti TO lt_attributes. CLEAR ls_ti. ls_ti-name = txt_short_text___1.
ls_ti-input = abap_true. ls_ti-value = <ls_ztadir>-descript. APPEND
ls_ti TO lt_attributes. CLEAR ls_ti. ls_ti-space = abap_true. APPEND
ls_ti TO lt_attributes. CLEAR ls_ti. ls_ti-name =
txt_person_responsible___1. ls_ti-input = abap_true. ls_ti-value =
ls_tadir-author. PERFORM get_user USING ls_tadir-author CHANGING
l_name. ls_ti-value_text = l_name. APPEND ls_ti TO lt_attributes. CLEAR
ls_ti. ls_ti-name = txt_package. ls_ti-input = abap_true. ls_ti-value =
ls_tadir-devclass. APPEND ls_ti TO lt_attributes. CLEAR ls_ti.
ls_ti-name = txt_application. ls_ti-input = abap_true. ls_ti-value =
ls_progdir-appl. APPEND ls_ti TO lt_attributes. CLEAR ls_ti. ls_ti-name
= txt_status. ls_ti-input = abap_true. IF ls_progdir-state = 'A'.
ls_ti-value = txt_activated. ELSE. ls_ti-value = txt_inactive. ENDIF.
APPEND ls_ti TO lt_attributes. CLEAR ls_ti. ls_ti-name =
txt_program_status. ls_ti-input = abap_true. ls_ti-value =
ls_progdir-rstat. PERFORM get_dom_value_text USING 'RSTAT'
ls_progdir-rstat CHANGING ls_ti-value_text. APPEND ls_ti TO
lt_attributes. CLEAR ls_ti. ls_ti-name = txt_editor_lock. ls_ti-flag =
abap_true. ls_ti-value = ls_progdir-edtx. APPEND ls_ti TO
lt_attributes. CLEAR ls_ti. ls_ti-name = txt_fixed_point_arithmetic.
ls_ti-flag = abap_true. ls_ti-value = ls_progdir-fixpt. APPEND ls_ti TO
lt_attributes. CLEAR ls_ti. ls_ti-name = txtt_unicode_checks_active.
ls_ti-flag = abap_true. ls_ti-value = ls_progdir-uccheck. APPEND ls_ti
TO lt_attributes. PERFORM get_docu USING 'RE' l_progname 'E' CHANGING
lt_documentation. LOOP AT lt_tabstrip ASSIGNING <ls_tabstrip>.
<ls_tabstrip>-empty = abap_false. CASE <ls_tabstrip>-id. WHEN
'DOCUMENTATION'. IF lt_documentation IS INITIAL. <ls_tabstrip>-empty =
abap_true. ENDIF. ENDCASE. ENDLOOP. PERFORM html_main_header USING
tpt_fugr_fugr space <ls_ztadir>-obj_name space space space
'makeDivSize(''MAIN_PROG'');makeDivSize(''DOCUMENTATION'');'
lt_tabstrip gt_link CHANGING lt_html. PERFORM html_add_textinput USING
lt_attributes 'ATTRIBUTES' abap_true CHANGING lt_html. PERFORM
add_report_sourcecode USING l_progname l_progname gc_extension_txt
abap_true <ls_ztadir> 'MAIN_PROG' abap_false CHANGING lt_html. IF NOT
lt_documentation IS INITIAL OR g_empty_tab = gc_empty_tab_display.
PERFORM html_add_doc USING lt_documentation 'DOCUMENTATION' abap_false
CHANGING lt_html. ENDIF. PERFORM html_main_footer USING lt_html.
PERFORM download USING lt_html <ls_ztadir>-pgmid <ls_ztadir>-object
l_progname gc_extension_htm abap_true. ENDLOOP. ENDFORM. FORM
fugr_r3tr_includes. DATA: lt_tabstrip TYPE it_tabstrip, lt_html TYPE
it_string, ls_attributes TYPE st_attributes, lt_ti TYPE it_textinput,
lt_ti_box TYPE it_textinput, ls_ti TYPE st_textinput, l_masterlang TYPE
masterlang, l_filename TYPE string, ls_trdir TYPE trdir, l_laiso TYPE
laiso, l_sptxt TYPE sptxt, l_name TYPE ad_namtext, l_text TYPE as4text,
l_atext TYPE appltxt. FIELD-SYMBOLS: <ls_ztadir> TYPE st_ztadir.
PERFORM get_tabstrip USING 'FUGR_R3TR_INCLUDES' space CHANGING
lt_tabstrip. LOOP AT gt_ztadir ASSIGNING <ls_ztadir> WHERE pgmid =
'R3TR' AND object = 'FUGR' AND futype = gc_futype_include AND
downloaded = abap_false. CLEAR: ls_attributes, ls_trdir, l_text,
l_atext. REFRESH: lt_html, lt_ti, lt_ti_box. SELECT SINGLE * FROM trdir
INTO ls_trdir WHERE name = <ls_ztadir>-progname. IF sy-subrc <> 0.
<ls_ztadir>-subrc = sy-subrc. CONTINUE. ENDIF. CLEAR ls_ti. ls_ti-name
= txt_title. ls_ti-value = <ls_ztadir>-descript.
ls_ti-value_double_length = abap_true. ls_ti-input = abap_true. APPEND
ls_ti TO lt_ti. CLEAR ls_ti. ls_ti-name = txt_original_language.
l_masterlang = ls_trdir-rload. IF l_masterlang IS INITIAL. l_masterlang
= <ls_ztadir>-masterlang. ENDIF. PERFORM get_spras USING l_masterlang
CHANGING l_laiso l_sptxt. ls_ti-value = l_laiso. ls_ti-description =
l_sptxt. ls_ti-input = abap_true. APPEND ls_ti TO lt_ti. CLEAR ls_ti.
ls_ti-space = abap_true. APPEND ls_ti TO lt_ti. CLEAR ls_ti. ls_ti-name
= txt_created. PERFORM get_date USING ls_trdir-cdat CHANGING
ls_ti-value. ls_ti-value_ext = ls_trdir-cnam. PERFORM get_user USING
ls_trdir-cnam CHANGING l_name. ls_ti-value_ext_text = l_name.
ls_ti-has_value_ext = abap_true. ls_ti-input = abap_true. APPEND ls_ti
TO lt_ti. CLEAR ls_ti. ls_ti-name = txt_last_changed_by___1. PERFORM
get_date USING ls_trdir-udat CHANGING ls_ti-value. ls_ti-value_ext =
ls_trdir-unam. PERFORM get_user USING ls_trdir-unam CHANGING l_name.
ls_ti-value_ext_text = l_name. ls_ti-input = abap_true.
ls_ti-has_value_ext = abap_true. APPEND ls_ti TO lt_ti. CLEAR ls_ti.
ls_ti-name = txt_status. ls_ti-value = txt_active___1. APPEND ls_ti TO
lt_ti. CLEAR ls_ti. ls_ti-name = txt_type___1. PERFORM
get_dom_value_text USING 'SUBC' ls_trdir-subc CHANGING ls_ti-value.
ls_ti-input = abap_true. APPEND ls_ti TO lt_ti_box. CLEAR ls_ti.
ls_ti-name = txt_status. PERFORM get_dom_value_text USING 'RSTAT'
ls_trdir-rstat CHANGING ls_ti-value. ls_ti-input = abap_true. APPEND
ls_ti TO lt_ti_box. CLEAR ls_ti. ls_ti-name = txt_application. SELECT
SINGLE atext FROM taplt INTO l_atext WHERE appl = ls_trdir-appl AND
sprsl = sy-langu. ls_ti-value = l_atext. ls_ti-input = abap_true.
APPEND ls_ti TO lt_ti_box. CLEAR ls_ti. ls_ti-space = abap_true. APPEND
ls_ti TO lt_ti_box. CLEAR ls_ti. ls_ti-name = txt_package. ls_ti-value
= <ls_ztadir>-devclass. PERFORM get_devclass USING <ls_ztadir>-devclass
CHANGING l_text. ls_ti-description = l_text. ls_ti-input = abap_true.
APPEND ls_ti TO lt_ti_box. CLEAR ls_ti. ls_ti-space = abap_true. APPEND
ls_ti TO lt_ti_box. CLEAR ls_ti. ls_ti-name = txt_editor_lock.
ls_ti-value = ls_trdir-edtx. ls_ti-flag = abap_true. APPEND ls_ti TO
lt_ti_box. PERFORM html_main_header USING tpt_fugr_incl space
<ls_ztadir>-progname txt_active___1 space space
'makeDivSize(''SOURCECODE'');' lt_tabstrip gt_link CHANGING lt_html.
PERFORM html_add_textinput_subbox USING lt_ti txt_attributes___2
lt_ti_box 'ATTRIBUTES' abap_false CHANGING lt_html. PERFORM
add_report_sourcecode USING <ls_ztadir>-progname <ls_ztadir>-progname
gc_extension_txt abap_false <ls_ztadir> 'SOURCECODE' abap_true CHANGING
lt_html. PERFORM html_main_footer USING lt_html. PERFORM download USING
lt_html <ls_ztadir>-pgmid <ls_ztadir>-object <ls_ztadir>-progname
gc_extension_htm abap_true. <ls_ztadir>-downloaded = abap_true.
ENDLOOP. ENDFORM. FORM fugr_r3tr_modules. DATA: ls_tabstrip TYPE
st_tabstrip, lt_tabstrip TYPE it_tabstrip, lt_classification TYPE
it_textinput, ls_classification TYPE st_textinput, lt_processing_type
TYPE it_access, ls_processing_type TYPE st_access, lt_general_data TYPE
it_textinput, ls_general_data TYPE st_textinput, lt_html TYPE
it_string, lt_ptfdir TYPE STANDARD TABLE OF tfdir, ls_ptfdir TYPE
tfdir, lt_ptftit TYPE STANDARD TABLE OF tftit, ls_ptftit TYPE tftit,
lt_pfunct TYPE STANDARD TABLE OF funct, ls_pfunct TYPE funct,
lt_penlfdir TYPE STANDARD TABLE OF enlfdir, ls_penlfdir TYPE enlfdir,
lt_ptrdir TYPE STANDARD TABLE OF trdir, ls_ptrdir TYPE trdir,
lt_pfupararef TYPE STANDARD TABLE OF sfupararef, lt_uincl TYPE
it_abaptxt255, lt_vsmodisrc TYPE STANDARD TABLE OF smodisrc,
lt_vsmodilog TYPE STANDARD TABLE OF smodilog, lt_parameter TYPE
it_parameter, ls_parameter TYPE st_parameter, lt_importing TYPE
it_parameter, lt_exporting TYPE it_parameter, lt_changing TYPE
it_parameter, lt_table TYPE it_parameter, lt_exception TYPE
it_parameter, l_kind TYPE char1, lt_doku TYPE it_string,
lt_documentation TYPE it_string, lt_sourcecode TYPE it_string,
l_sourcecode TYPE string, l_namtext TYPE ad_namtext, l_javascript TYPE
string, l_id TYPE string, l_filename TYPE string, l_on TYPE flag,
l_areat TYPE areat. FIELD-SYMBOLS: <ls_tabstrip> TYPE st_tabstrip,
<ls_ztadir> TYPE st_ztadir, <ls_parameter> TYPE st_parameter,
<ls_pfupararef> TYPE sfupararef, <ls_uincl> TYPE st_abaptxt255. LOOP AT
gt_ztadir ASSIGNING <ls_ztadir> WHERE pgmid = 'R3TR' AND object =
'FUGR' AND futype = gc_futype_module AND downloaded = abap_false.
<ls_ztadir>-downloaded = abap_true. CLEAR: ls_classification,
ls_general_data, l_javascript, ls_parameter, ls_penlfdir, ls_pfunct,
ls_processing_type, ls_ptfdir, ls_ptftit, ls_ptrdir, l_sourcecode,
l_areat. REFRESH: lt_changing, lt_classification, lt_exception,
lt_exporting, lt_general_data, lt_html, lt_importing, lt_parameter,
lt_processing_type, lt_sourcecode, lt_table, lt_uincl. CALL FUNCTION
'FUNC_GET_OBJECT' EXPORTING funcname = <ls_ztadir>-funcname r3state =
'A' TABLES ptfdir = lt_ptfdir ptftit = lt_ptftit pfunct = lt_pfunct
penlfdir = lt_penlfdir ptrdir = lt_ptrdir pfupararef = lt_pfupararef
uincl = lt_uincl vsmodisrc = lt_vsmodisrc vsmodilog = lt_vsmodilog
EXCEPTIONS OTHERS = 1. IF sy-subrc <> 0. <ls_ztadir>-subrc = sy-subrc.
CONTINUE. ENDIF. IF NOT lt_ptfdir IS INITIAL. READ TABLE lt_ptfdir INTO
ls_ptfdir INDEX 1. ENDIF. IF NOT lt_ptftit IS INITIAL. READ TABLE
lt_ptftit INTO ls_ptftit INDEX 1. ENDIF. IF NOT lt_penlfdir IS INITIAL.
READ TABLE lt_penlfdir INTO ls_penlfdir INDEX 1. ENDIF. IF NOT
lt_ptrdir IS INITIAL. READ TABLE lt_ptrdir INTO ls_ptrdir INDEX 1.
ENDIF. ls_classification-name = txt_function_group.
ls_classification-value = ls_penlfdir-area. ls_classification-input =
abap_true. ls_classification-has_value_ext = abap_true. SELECT SINGLE
areat FROM tlibt INTO l_areat WHERE area = <ls_ztadir>-obj_name AND
spras = sy-langu. ls_classification-value_ext = l_areat. APPEND
ls_classification TO lt_classification. CLEAR ls_classification.
ls_classification-name = txt_short_text___1. ls_classification-value =
ls_ptftit-stext. ls_classification-input = abap_true. APPEND
ls_classification TO lt_classification. ls_processing_type-ddtext =
txt_normal_function_module. IF ls_ptfdir-fmode IS INITIAL AND
ls_ptfdir-utask IS INITIAL. ls_processing_type-checked = abap_true.
ELSE. ls_processing_type-checked = abap_true. ENDIF. APPEND
ls_processing_type TO lt_processing_type. ls_processing_type-ddtext =
txt_remote_enabled_module. IF NOT ls_ptfdir-fmode IS INITIAL.
ls_processing_type-checked = abap_true. ELSE.
ls_processing_type-checked = abap_true. ENDIF. APPEND
ls_processing_type TO lt_processing_type. ls_processing_type-ddtext =
txt_update_module. IF NOT ls_ptfdir-utask IS INITIAL.
ls_processing_type-checked = abap_true. ELSE.
ls_processing_type-checked = abap_true. ENDIF. APPEND
ls_processing_type TO lt_processing_type. ls_processing_type-ddtext =
txt_start_immed. ls_processing_type-sub = '1'. IF ls_ptfdir-utask IS
INITIAL OR ls_ptfdir-utask = '1'. ls_processing_type-checked =
abap_true. ELSE. ls_processing_type-checked = abap_false. ENDIF. APPEND
ls_processing_type TO lt_processing_type. ls_processing_type-ddtext =
txt_immediate_start_no_restart. ls_processing_type-sub = '1'. IF
ls_ptfdir-utask = '3'. ls_processing_type-checked = abap_true. ELSE.
ls_processing_type-checked = abap_false. ENDIF. APPEND
ls_processing_type TO lt_processing_type. ls_processing_type-ddtext =
txt_start_delayed. ls_processing_type-sub = '1'. IF ls_ptfdir-utask =
'2'. ls_processing_type-checked = abap_true. ELSE.
ls_processing_type-checked = abap_false. ENDIF. APPEND
ls_processing_type TO lt_processing_type. ls_processing_type-ddtext =
txt_coll_run. ls_processing_type-sub = '1'. IF ls_ptfdir-utask = '5'.
ls_processing_type-checked = abap_true. ELSE.
ls_processing_type-checked = abap_false. ENDIF. APPEND
ls_processing_type TO lt_processing_type. ls_general_data-name =
txt_person_responsible___1. ls_general_data-input = abap_true.
ls_general_data-value = ls_ptrdir-cnam. PERFORM get_user USING
ls_ptrdir-cnam CHANGING l_namtext. ls_general_data-value_text =
l_namtext. APPEND ls_general_data TO lt_general_data. CLEAR
ls_general_data. ls_general_data-name = txt_last_changed_by___2.
ls_general_data-input = abap_true. ls_general_data-value =
ls_ptrdir-unam. PERFORM get_user USING ls_ptrdir-unam CHANGING
l_namtext. ls_general_data-value_text = l_namtext. APPEND
ls_general_data TO lt_general_data. CLEAR ls_general_data.
ls_general_data-name = txt_changed_on. ls_general_data-input =
abap_true. PERFORM get_date USING ls_ptrdir-udat CHANGING
ls_general_data-value. APPEND ls_general_data TO lt_general_data.
ls_general_data-name = txt_package. ls_general_data-input = abap_true.
ls_general_data-value = <ls_ztadir>-devclass. APPEND ls_general_data TO
lt_general_data. ls_general_data-name = txt_program_name.
ls_general_data-input = abap_true. ls_general_data-value =
ls_ptfdir-pname. APPEND ls_general_data TO lt_general_data.
ls_general_data-name = txt_include_name. ls_general_data-input =
abap_true. ls_general_data-value = ls_ptrdir-name. APPEND
ls_general_data TO lt_general_data. ls_general_data-name =
txt_original_language. ls_general_data-input = abap_true.
ls_general_data-value = ls_ptftit-spras. APPEND ls_general_data TO
lt_general_data. IF NOT ls_ptfdir-freedate IS INITIAL AND
ls_ptfdir-freedate > 19000101. ls_general_data-name =
txt_internally_released_on. PERFORM get_date USING ls_ptfdir-freedate
CHANGING ls_general_data-value. ls_general_data-input = abap_true.
ELSE. ls_general_data-name = txt_not_released. ls_general_data-value =
space. ls_general_data-input = abap_false. ENDIF. APPEND
ls_general_data TO lt_general_data. CLEAR ls_general_data.
ls_general_data-name = txt_edit_lock. ls_general_data-flag = abap_true.
ls_general_data-value = ls_ptrdir-edtx. APPEND ls_general_data TO
lt_general_data. ls_general_data-name = txt_global.
ls_general_data-flag = abap_true. ls_general_data-value =
ls_penlfdir-global. APPEND ls_general_data TO lt_general_data. SORT
lt_pfupararef BY pposition. LOOP AT lt_pfupararef ASSIGNING
<ls_pfupararef>. CLEAR ls_parameter. l_kind = 'P'. IF
<ls_pfupararef>-paramtype = 'X'. l_kind = 'X'. ENDIF. ls_parameter-name
= <ls_pfupararef>-parameter. IF <ls_pfupararef>-type = abap_true.
ls_parameter-typing = 'TYPE'. ELSEIF <ls_pfupararef>-ref_class =
abap_true. ls_parameter-typing = 'TYPE REF TO'. ELSE.
ls_parameter-typing = 'LIKE'. ENDIF. ls_parameter-structure =
<ls_pfupararef>-structure. ls_parameter-defvalue =
<ls_pfupararef>-defaultval. ls_parameter-optional =
<ls_pfupararef>-optional. IF <ls_pfupararef>-reference = abap_false.
ls_parameter-passvalue = abap_true. ENDIF. READ TABLE lt_pfunct INTO
ls_pfunct WITH KEY parameter = <ls_pfupararef>-parameter kind = l_kind
spras = sy-langu. IF sy-subrc <> 0. READ TABLE lt_pfunct INTO ls_pfunct
WITH KEY parameter = <ls_pfupararef>-parameter kind = l_kind spras =
sy-langu. ENDIF. ls_parameter-stext = ls_pfunct-stext.
ls_parameter-ltext_doku_obj = <ls_ztadir>-funcname.
ls_parameter-ltext_doku_obj+30 = <ls_pfupararef>-parameter. SELECT
SINGLE object FROM dokhl INTO ls_parameter-ltext_doku_obj WHERE id =
'FU' AND object = ls_parameter-ltext_doku_obj AND langu = sy-langu. IF
sy-subrc = 0. ls_parameter-ltext = '-->'. CONCATENATE
'switchContent(''LTEXT_' <ls_pfupararef>-parameter ''')' INTO
ls_parameter-ltext_onclick. ELSE. CLEAR ls_parameter-ltext_doku_obj.
ENDIF. APPEND ls_parameter TO lt_parameter. CASE
<ls_pfupararef>-paramtype. WHEN 'I'. APPEND ls_parameter TO
lt_importing. WHEN 'E'. APPEND ls_parameter TO lt_exporting. WHEN 'C'.
APPEND ls_parameter TO lt_changing. WHEN 'T'. APPEND ls_parameter TO
lt_table. WHEN 'X'. APPEND ls_parameter TO lt_exception. ENDCASE.
ENDLOOP. PERFORM get_docu USING 'FU' <ls_ztadir>-funcname 'T' CHANGING
lt_documentation. LOOP AT lt_uincl ASSIGNING <ls_uincl>. l_sourcecode =
<ls_uincl>-line. APPEND l_sourcecode TO lt_sourcecode. ENDLOOP. PERFORM
get_tabstrip USING 'FUGR_R3TR_MODULES' space CHANGING lt_tabstrip. LOOP
AT lt_tabstrip ASSIGNING <ls_tabstrip>. <ls_tabstrip>-empty =
abap_false. CASE <ls_tabstrip>-id. WHEN 'DOCUMENTATION'. IF
lt_documentation IS INITIAL. <ls_tabstrip>-empty = abap_true. ENDIF.
WHEN 'IMPORT'. IF lt_importing IS INITIAL. <ls_tabstrip>-empty =
abap_true. ENDIF. WHEN 'EXPORT'. IF lt_exporting IS INITIAL.
<ls_tabstrip>-empty = abap_true. ENDIF. WHEN 'CHANGING'. IF lt_changing
IS INITIAL. <ls_tabstrip>-empty = abap_true. ENDIF. WHEN 'TABLES'. IF
lt_table IS INITIAL. <ls_tabstrip>-empty = abap_true. ENDIF. WHEN
'EXCEPTIONS'. IF lt_exception IS INITIAL. <ls_tabstrip>-empty =
abap_true. ENDIF. WHEN 'SOURCECODE'. IF lt_sourcecode IS INITIAL.
<ls_tabstrip>-empty = abap_true. ENDIF. ENDCASE. ENDLOOP. CONCATENATE
'makeDivSize(''DOCUMENTATION'');' 'makeDivSize(''SOURCECODE'');' INTO
l_javascript. LOOP AT lt_parameter ASSIGNING <ls_parameter> WHERE ltext
= '-->'. CLEAR ls_tabstrip. CONCATENATE 'LTEXT_' <ls_parameter>-name
INTO ls_tabstrip-id. ls_tabstrip-hidden = abap_true. APPEND ls_tabstrip
TO lt_tabstrip. CONCATENATE l_javascript 'makeDivSize('''
ls_tabstrip-id ''');' INTO l_javascript. ENDLOOP. PERFORM
html_main_header USING tpt_fugr_fuba txt_function_module
<ls_ztadir>-funcname txt_active___1 space space l_javascript
lt_tabstrip gt_link CHANGING lt_html. IF lt_sourcecode IS INITIAL AND
g_empty_tab <> gc_empty_tab_display. l_on = abap_true. ELSE. l_on =
abap_false. ENDIF. PERFORM html_add_box1ti_2rb_ti USING
txt_classification lt_classification txt_processing_type 'PTYPE'
lt_processing_type txt_general_data lt_general_data 'ATTRIBUTES' l_on
CHANGING lt_html. IF NOT lt_importing IS INITIAL OR g_empty_tab =
gc_empty_tab_display. PERFORM html_add_table USING 'MODU_IMPOR'
lt_importing lt_importing 'IMPORT' abap_false CHANGING lt_html. ENDIF.
IF NOT lt_exporting IS INITIAL OR g_empty_tab = gc_empty_tab_display.
PERFORM html_add_table USING 'MODU_EXPOR' lt_exporting lt_exporting
'EXPORT' abap_false CHANGING lt_html. ENDIF. IF NOT lt_changing IS
INITIAL OR g_empty_tab = gc_empty_tab_display. PERFORM html_add_table
USING 'MODU_IMPOR' lt_changing lt_changing 'CHANGING' abap_false
CHANGING lt_html. ENDIF. IF NOT lt_table IS INITIAL OR g_empty_tab =
gc_empty_tab_display. PERFORM html_add_table USING 'MODU_TABLE'
lt_table lt_table 'TABLES' abap_false CHANGING lt_html. ENDIF. IF NOT
lt_exception IS INITIAL OR g_empty_tab = gc_empty_tab_display. PERFORM
html_add_table USING 'MODU_EXCEP' lt_exception lt_exception
'EXCEPTIONS' abap_false CHANGING lt_html. ENDIF. IF NOT lt_sourcecode
IS INITIAL OR g_empty_tab = gc_empty_tab_display. IF g_add_sourcecode =
abap_true. l_filename = <ls_ztadir>-funcname. PERFORM download USING
lt_sourcecode <ls_ztadir>-pgmid <ls_ztadir>-object l_filename
gc_extension_txt abap_false. ENDIF. PERFORM html_add_sourcecode USING
lt_sourcecode l_filename space space gc_extension_txt 'SOURCECODE'
abap_true CHANGING lt_html. ENDIF. IF NOT lt_documentation IS INITIAL
OR g_empty_tab = gc_empty_tab_display. PERFORM html_add_doc USING
lt_documentation 'DOCUMENTATION' abap_false CHANGING lt_html. ENDIF.
LOOP AT lt_parameter ASSIGNING <ls_parameter> WHERE ltext = '-->'.
REFRESH lt_doku. PERFORM get_docu USING 'FU'
<ls_parameter>-ltext_doku_obj 'T' CHANGING lt_doku. PERFORM get_id
USING 'LTEXT_' <ls_parameter>-name CHANGING l_id. PERFORM html_add_doc
USING lt_doku l_id abap_false CHANGING lt_html. ENDLOOP. PERFORM
html_main_footer USING lt_html. PERFORM download USING lt_html
<ls_ztadir>-pgmid <ls_ztadir>-object <ls_ztadir>-progname
gc_extension_htm abap_true. ENDLOOP. ENDFORM. FORM fugr_r3tr_screen.
DATA: lt_tabstrip TYPE it_tabstrip, ls_dynpro_name TYPE st_dynpro_name,
ls_d020s TYPE d020s, lt_d021s TYPE STANDARD TABLE OF d021s, lt_d022s
TYPE STANDARD TABLE OF d022s, lt_d023s TYPE d023s_tab, ls_d023sx TYPE
d023s_x, lt_d023x TYPE d023s_xtab, lt_feld TYPE STANDARD TABLE OF feld,
lt_feld_redef TYPE it_feld_redef, lt_source TYPE it_string, lt_html
TYPE it_string, ls_attributes TYPE st_attributes, lt_access_screen_type
TYPE it_access, ls_access TYPE st_access, lt_ti_settings TYPE
it_textinput, lt_ti_other TYPE it_textinput, ls_ti TYPE st_textinput,
l_date_last_generation TYPE d, l_time_last_generation TYPE t, l_lines
TYPE sycurow, l_cols TYPE sycucol, l_filename TYPE string,
ls_dynpro_release TYPE st_dynpro_release, l_dynpro_release(4) TYPE c,
l_title TYPE string. FIELD-SYMBOLS: <ls_d022s> TYPE d022s, <ls_d023s>
TYPE d023s, <ls_ztadir> TYPE st_ztadir, <l_x> TYPE x. CONSTANTS:
lc_type_cntcmp TYPE scrpdytype VALUE 'CNTCMP    ', lc_milikmp TYPE x
VALUE '40', lc_miliksc TYPE x VALUE '08', lc_milinog TYPE x VALUE '20',
lc_milinot TYPE x VALUE '04'. PERFORM get_tabstrip USING
'FUGR_R3TR_SCREEN' space CHANGING lt_tabstrip. LOOP AT gt_ztadir
ASSIGNING <ls_ztadir> WHERE pgmid = 'R3TR' AND object = 'FUGR' AND
futype = gc_futype_screen AND downloaded = abap_false. CLEAR:
ls_access, ls_attributes, ls_d020s, ls_d023sx, l_dynpro_release, ls_ti.
REFRESH: lt_access_screen_type, lt_d021s, lt_d022s, lt_d023s, lt_d023x,
lt_feld, lt_feld_redef, lt_html, lt_source, lt_ti_settings,
lt_ti_other. ls_dynpro_name-prog = <ls_ztadir>-progname.
ls_dynpro_name-dnum = <ls_ztadir>-dynpronr. IMPORT DYNPRO ls_d020s
lt_d021s lt_d022s lt_d023s ID ls_dynpro_name. IF sy-subrc <> 0.
<ls_ztadir>-subrc = sy-subrc. CONTINUE. ENDIF. CALL FUNCTION
'RS_DYNPRO_RELEASE_GET' EXPORTING dynpro_header = ls_d020s IMPORTING
dynpro_release = l_dynpro_release EXCEPTIONS OTHERS = 1.
ls_dynpro_release = l_dynpro_release. LOOP AT lt_d023s ASSIGNING
<ls_d023s> WHERE type = lc_type_cntcmp. ls_d023sx = <ls_d023s>-content.
APPEND ls_d023sx-cccont TO lt_d023x. ENDLOOP. ls_attributes-descript =
<ls_ztadir>-descript. ls_attributes-devclass = <ls_ztadir>-devclass.
PERFORM get_devclass USING <ls_ztadir>-devclass CHANGING
ls_attributes-devclass_descr. PERFORM get_spras USING ls_d020s-spra
CHANGING ls_attributes-laiso ls_attributes-sptxt. PERFORM get_date
USING ls_d020s-dgen CHANGING ls_attributes-date_last_changed. PERFORM
get_time USING ls_d020s-tgen CHANGING ls_attributes-time_last_changed.
CALL FUNCTION 'RS_SCRP_GET_GEN_DATA' EXPORTING progname = ls_d020s-prog
dynnr = ls_d020s-dnum IMPORTING gen_date = l_date_last_generation
gen_time = l_time_last_generation EXCEPTIONS OTHERS = 1. PERFORM
get_date USING l_date_last_generation CHANGING
ls_attributes-date_last_generation. PERFORM get_time USING
l_time_last_generation CHANGING ls_attributes-time_last_generation.
CLEAR ls_access. ls_access-ddtext = txt_normal. ls_access-checked =
abap_false. IF ls_d020s-type NA 'IMSWJ'. ls_access-checked = abap_true.
ENDIF. APPEND ls_access TO lt_access_screen_type. ls_access-ddtext =
txt_subscreen. ls_access-checked = abap_false. IF ls_d020s-type = 'I'.
ls_access-checked = abap_true. ENDIF. APPEND ls_access TO
lt_access_screen_type. ls_access-ddtext = txt_modal_dialog_box.
ls_access-checked = abap_false. IF ls_d020s-type = 'M'.
ls_access-checked = abap_true. ENDIF. APPEND ls_access TO
lt_access_screen_type. ls_access-ddtext = txt_selection_screen.
ls_access-checked = abap_false. IF ls_d020s-type CA 'SWJ'.
ls_access-checked = abap_true. ENDIF. APPEND ls_access TO
lt_access_screen_type. CLEAR ls_ti. IF ls_d020s-type <> 'I'. ls_ti-name
= txt_hold_data. ls_ti-flag = abap_true. ls_ti-value = ls_d020s-hdat.
APPEND ls_ti TO lt_ti_settings. ENDIF. ASSIGN ls_d020s-mili TO <l_x>
CASTING. ls_ti-name = txt_switch_off_runtime_compres. ls_ti-flag =
abap_true. IF <l_x> O lc_milikmp. ls_ti-value = abap_false. ELSE.
ls_ti-value = abap_true. ENDIF. APPEND ls_ti TO lt_ti_settings.
ls_ti-name = txt_template_non_executable. ls_ti-flag = abap_true. IF
<l_x> O lc_milinog. ls_ti-value = abap_true. ELSE. ls_ti-value =
abap_false. ENDIF. APPEND ls_ti TO lt_ti_settings. ls_ti-name =
txt_hold_scroll_position. ls_ti-flag = abap_true. IF <l_x> O
lc_miliksc. ls_ti-value = abap_true. ELSE. ls_ti-value = abap_false.
ENDIF. APPEND ls_ti TO lt_ti_settings. ls_ti-name =
txt_without_application_toolba. ls_ti-flag = abap_true. IF <l_x> O
lc_milinot. ls_ti-value = abap_true. ELSE. ls_ti-value = abap_false.
ENDIF. APPEND ls_ti TO lt_ti_settings. CLEAR ls_ti. ls_ti-name =
txt_next_screen. ls_ti-value = ls_d020s-fnum. ls_ti-input = abap_true.
APPEND ls_ti TO lt_ti_other. ls_ti-name = txt_cursor_position.
ls_ti-value = ls_d020s-cupo. ls_ti-input = abap_true. APPEND ls_ti TO
lt_ti_other. ls_ti-name = txt_screen_group. ls_ti-value =
ls_d020s-dgrp. ls_ti-input = abap_true. APPEND ls_ti TO lt_ti_other.
ls_ti-name = txtt_lines_columns. ls_ti-name_suffix = txt_occupied. CALL
FUNCTION 'RS_SCRP_GET_SCREEN_INFOS' EXPORTING progname = ls_d020s-prog
dynnr = ls_d020s-dnum IMPORTING lines = l_lines columns = l_cols
EXCEPTIONS OTHERS = 1. IF sy-subrc <> 0 OR l_lines > 999 OR l_cols >
999. l_lines = 0. l_cols = 0. ENDIF. ls_ti-value = l_lines.
ls_ti-value_ext = l_cols. ls_ti-input = abap_true. ls_ti-has_value_ext
= abap_true. APPEND ls_ti TO lt_ti_other. ls_ti-name = space.
ls_ti-name_suffix = txt_maintenance. ls_ti-value = ls_d020s-noli.
ls_ti-value_ext = ls_d020s-noco. ls_ti-input = abap_true.
ls_ti-has_value_ext = abap_true. APPEND ls_ti TO lt_ti_other. CLEAR
ls_ti. ls_ti-name = txtt_context_menu_form_on_ctme. READ TABLE lt_d023s
ASSIGNING <ls_d023s> WITH KEY type = 'CTMENU'. IF sy-subrc = 0.
ls_ti-value = <ls_d023s>-content. ENDIF. ls_ti-input = abap_true.
UNASSIGN <ls_d023s>. APPEND ls_ti TO lt_ti_other. PERFORM
fugr_get_feldtab USING ls_d020s lt_d021s lt_d023x ls_dynpro_release
CHANGING lt_feld lt_feld_redef. LOOP AT lt_d022s ASSIGNING <ls_d022s>.
APPEND <ls_d022s>-line TO lt_source. ENDLOOP. l_title = tpt_fugr_scr.
PERFORM replace_single USING '#NAME_VALUE#' <ls_ztadir>-progname
CHANGING l_title. PERFORM html_main_header USING l_title
txt_screen_number <ls_ztadir>-dynpronr txt_active___1 space space
'makeDivSize(''FLOW_LOGIC'');' lt_tabstrip gt_link CHANGING lt_html.
PERFORM html_add_attributes_3 USING ls_attributes txt_screen_type
'scrType' lt_access_screen_type txt_settings lt_ti_settings
txt_other_attributes lt_ti_other 'ATTRIBUTES' abap_false CHANGING
lt_html. PERFORM html_add_container_begin USING lt_tabstrip
'ELEMENT_LIST' abap_false CHANGING lt_html. PERFORM html_add_table
USING 'SCRN_GENER' lt_feld_redef lt_feld 'GENERAL_ATTR' abap_true
CHANGING lt_html. PERFORM html_add_table USING 'SCRN_IOTEM'
lt_feld_redef lt_feld 'TEXTS_IO_TEMPLATES' abap_false CHANGING lt_html.
PERFORM html_add_table USING 'SCRN_SPECI' lt_feld_redef lt_feld
'SPECIAL_ATTR' abap_false CHANGING lt_html. PERFORM html_add_table
USING 'SCRN_DISPL' lt_feld_redef lt_feld 'DISPLAY_ATTR' abap_false
CHANGING lt_html. PERFORM html_add_table USING 'SCRN_MODGR'
lt_feld_redef lt_feld 'MOD_GROUPS_FUNCTIONS' abap_false CHANGING
lt_html. PERFORM html_add_table USING 'SCRN_REFER' lt_feld_redef
lt_feld 'REFERENCES' abap_false CHANGING lt_html. PERFORM
html_add_container_end CHANGING lt_html. CONCATENATE
<ls_ztadir>-progname '-' <ls_ztadir>-dynpronr INTO l_filename. PERFORM
html_add_sourcecode USING lt_source l_filename space space
gc_extension_txt 'FLOW_LOGIC' abap_true CHANGING lt_html. IF
g_add_sourcecode = abap_true. PERFORM download USING lt_source
<ls_ztadir>-pgmid <ls_ztadir>-object l_filename gc_extension_txt
abap_false. ENDIF. PERFORM html_main_footer USING lt_html. PERFORM
download USING lt_html <ls_ztadir>-pgmid <ls_ztadir>-object l_filename
gc_extension_htm abap_true. <ls_ztadir>-downloaded = abap_true.
ENDLOOP. ENDFORM. FORM o2. PERFORM o2_r3tr_wapa. PERFORM
o2_r3tr_wapa_appl. PERFORM o2_r3tr_wapa_mime. PERFORM o2_r3tr_wtag.
PERFORM o2_r3tr_wtag_ext. PERFORM o2_r3tr_xslt. ENDFORM. FORM
o2_get_mime_content USING value(i_objtype) value(i_class)
value(i_objid) CHANGING ct_content_ascii TYPE it_o2content_ascii
ct_content_binary TYPE it_o2content_binary c_filesize TYPE i. DATA:
lo_io TYPE REF TO data, lo_phio TYPE REF TO data, lo_error TYPE REF TO
data, lt_class_filter TYPE it_o2class_filter, lt_relation TYPE
it_o2relation, lt_file_info TYPE it_o2file_info. FIELD-SYMBOLS: <ls_io>
TYPE ANY, <ls_phio> TYPE ANY, <ls_error> TYPE ANY, <l_fs> TYPE ANY,
<ls_relation> TYPE st_o2relation, <ls_file_info> TYPE st_o2file_info.
CREATE DATA lo_io TYPE ('SKWF_IO'). ASSIGN lo_io->* TO <ls_io>. CREATE
DATA lo_phio TYPE ('SKWF_IO'). ASSIGN lo_phio->* TO <ls_phio>. CREATE
DATA lo_error TYPE ('SKWF_ERROR'). ASSIGN lo_error->* TO <ls_error>.
ASSIGN COMPONENT 'OBJTYPE' OF STRUCTURE <ls_io> TO <l_fs>. <l_fs> =
i_objtype. ASSIGN COMPONENT 'CLASS' OF STRUCTURE <ls_io> TO <l_fs>.
<l_fs> = i_class. ASSIGN COMPONENT 'OBJID' OF STRUCTURE <ls_io> TO
<l_fs>. <l_fs> = i_objid. CALL FUNCTION 'SKWF_IO_FROM_RELATIONS_GET'
EXPORTING io = <ls_io> IMPORTING error = <ls_error> TABLES class_filter
= lt_class_filter relations = lt_relation. CHECK <ls_error> IS INITIAL.
LOOP AT lt_relation ASSIGNING <ls_relation>. CLEAR <ls_error>. ASSIGN
COMPONENT 'OBJTYPE' OF STRUCTURE <ls_phio> TO <l_fs>. <l_fs> =
<ls_relation>-objtype. ASSIGN COMPONENT 'CLASS' OF STRUCTURE <ls_phio>
TO <l_fs>. <l_fs> = <ls_relation>-prtn_class. ASSIGN COMPONENT 'OBJID'
OF STRUCTURE <ls_phio> TO <l_fs>. <l_fs> = <ls_relation>-prtn_id. CALL
FUNCTION 'SKWF_PHIO_LOAD_CONTENT' EXPORTING phio = <ls_phio> IMPORTING
error = <ls_error> TABLES file_access_info = lt_file_info
file_content_ascii = ct_content_ascii file_content_binary =
ct_content_binary. LOOP AT lt_file_info ASSIGNING <ls_file_info>.
c_filesize = <ls_file_info>-file_size. ENDLOOP. ENDLOOP. ENDFORM. FORM
o2_get_mimes USING value(i_folder_name) CHANGING ct_mime TYPE it_mime.
DATA: l_folder_name1(4096) TYPE c, l_folder_name2(4096) TYPE c,
ls_folder TYPE st_skwf_io, ls_error TYPE st_skwf_error, ls_parent TYPE
st_skwf_io, lt_io TYPE it_skwf_io, ls_io TYPE st_skwf_io,
l_prefix(4096) TYPE c, l_len TYPE i, ls_mime TYPE st_mime, l_url(4096)
TYPE c, l_rel_url(64) TYPE c, l_filename(255) TYPE c, l_url_prefix TYPE
seovalue. REFRESH ct_mime. PERFORM get_class_attribute_value USING
'CL_WB_MIME_REPOSITORY' 'MR_URL_PREFIX' CHANGING l_url_prefix. IF
l_url_prefix IS INITIAL. l_url_prefix = '/'. ENDIF. CONCATENATE
l_url_prefix 'SAP' INTO l_url. CALL FUNCTION
'SKWF_NMSPC_IO_FIND_BY_ADDRESS' EXPORTING url = l_url appl = 'MIME'
IMPORTING io = ls_parent error = ls_error. IF NOT ls_parent IS INITIAL.
l_folder_name1 = i_folder_name. DO. IF l_folder_name1 CS '/'. SPLIT
l_folder_name1 AT '/' INTO l_folder_name2 l_folder_name1. ELSE.
l_folder_name2 = l_folder_name1. ENDIF. CALL FUNCTION
'SKWF_NMSPC_IO_FIND_BY_ADDRESS' EXPORTING url = l_folder_name2 folder =
ls_parent IMPORTING io = ls_folder error = ls_error. IF ls_folder IS
INITIAL OR l_folder_name2 = l_folder_name1. EXIT. ENDIF. ls_parent =
ls_folder. ENDDO. IF NOT ls_folder IS INITIAL. CALL FUNCTION
'SKWF_FOLDER_SUB_IOS_GET' EXPORTING folder = ls_folder io_type = 'L'
IMPORTING error = ls_error TABLES ios = lt_io. IF ls_error IS INITIAL.
CONCATENATE l_url_prefix 'SAP/' i_folder_name '/' INTO l_prefix. l_len
= strlen( l_prefix ). LOOP AT lt_io INTO ls_io. CLEAR ls_mime. CALL
FUNCTION 'SKWF_NMSPC_IO_ADDRESS_GET' EXPORTING io = ls_io IMPORTING url
= l_url relative_url = l_rel_url error = ls_error. IF ls_error IS
INITIAL. SHIFT l_url BY l_len PLACES. ls_mime-key = l_url. TRANSLATE
ls_mime-key TO UPPER CASE. ls_mime-name = l_url. ls_mime-objtype =
ls_io-objtype. ls_mime-class = ls_io-class. ls_mime-objid =
ls_io-objid. l_filename = l_rel_url. CALL FUNCTION
'SKWF_MIMETYPE_OF_FILE_GET' EXPORTING filename = l_filename IMPORTING
mimetype = ls_mime-mimetype. IF NOT ls_mime-mimetype IS INITIAL. CALL
FUNCTION 'SKWF_MIMETYPE_DESCRIPTION_GET' EXPORTING mimetype =
ls_mime-mimetype language = sy-langu IMPORTING descript =
ls_mime-mimetype_descript. ENDIF. IF NOT ls_mime IS INITIAL. APPEND
ls_mime TO ct_mime. ENDIF. ENDIF. ENDLOOP. ENDIF. ENDIF. ENDIF. SORT
ct_mime BY key. ENDFORM. FORM o2_get_url USING value(i_https) TYPE flag
value(i_applname) value(i_pagekey) value(i_pagename) value(i_pagetype)
TYPE c value(i_is_error_page) TYPE flag CHANGING c_url TYPE string.
DATA: lo_page TYPE REF TO data. FIELD-SYMBOLS: <ls_page> TYPE ANY,
<l_fs> TYPE ANY. CREATE DATA lo_page TYPE ('O2PAGENAME'). ASSIGN
lo_page->* TO <ls_page>. ASSIGN COMPONENT 'APPLNAME' OF STRUCTURE
<ls_page> TO <l_fs>. <l_fs> = i_applname. ASSIGN COMPONENT 'PAGEKEY' OF
STRUCTURE <ls_page> TO <l_fs>. <l_fs> = i_pagekey. ASSIGN COMPONENT
'PAGENAME' OF STRUCTURE <ls_page> TO <l_fs>. <l_fs> = i_pagename.
ASSIGN COMPONENT 'PAGETYPE' OF STRUCTURE <ls_page> TO <l_fs>. <l_fs> =
i_pagetype. ASSIGN COMPONENT 'IS_ERROR_PAGE' OF STRUCTURE <ls_page> TO
<l_fs>. <l_fs> = i_is_error_page. CALL METHOD
('CL_O2_HELPER')=>generate_url_for_page EXPORTING p_page = <ls_page>
p_secure_http = i_https IMPORTING p_url = c_url EXCEPTIONS OTHERS = 1.
ENDFORM. FORM o2_r3tr_wapa. DATA: lt_tabstrip TYPE it_tabstrip, lt_html
TYPE it_string, ls_attributes TYPE st_attributes, lo_appl TYPE REF TO
data, lo_applt TYPE REF TO data, l_applname(30) TYPE c, l_applext(30)
TYPE c, l_bname TYPE xubname, l_name_text TYPE ad_namtext,
ls_o2navigation TYPE st_o2navigation, lt_o2navigation TYPE
it_o2navigation, lo_navgraph TYPE REF TO data, l_pagekey(70) TYPE c,
l_flag TYPE flag. FIELD-SYMBOLS: <ls_ztadir> TYPE st_ztadir, <ls_appl>
TYPE ANY, <ls_applt> TYPE ANY, <l_fs> TYPE ANY, <ls_navgraph> TYPE ANY,
<ls_tabstrip> TYPE st_tabstrip. LOOP AT gt_ztadir ASSIGNING <ls_ztadir>
WHERE pgmid = 'R3TR' AND object = 'WAPA' AND o2pagekey = space AND
downloaded = abap_false. <ls_ztadir>-downloaded = abap_true. IF NOT
<ls_navgraph> IS ASSIGNED. PERFORM get_tabstrip USING 'O2_R3TR_WAPA'
space CHANGING lt_tabstrip. CREATE DATA lo_navgraph TYPE
('O2NAVGRAPH'). ASSIGN lo_navgraph->* TO <ls_navgraph>. CREATE DATA
lo_appl TYPE ('O2APPL'). ASSIGN lo_appl->* TO <ls_appl>. CREATE DATA
lo_applt TYPE ('O2APPLT'). ASSIGN lo_applt->* TO <ls_applt>. ENDIF.
REFRESH: lt_html, lt_o2navigation. CLEAR: ls_attributes, l_applname,
l_applext, <ls_appl>, <ls_applt>. l_applname = <ls_ztadir>-obj_name.
SELECT SINGLE * FROM ('O2APPL') INTO <ls_appl> WHERE applname =
l_applname AND version = 'A'. IF sy-subrc = 0. ASSIGN COMPONENT
'APPLEXT' OF STRUCTURE <ls_appl> TO <l_fs>. l_applext = <l_fs>.
ls_attributes-space_after_descript = abap_true.
ls_attributes-is_bsp_appl = abap_true. ls_attributes-descript =
<ls_ztadir>-descript. ASSIGN COMPONENT 'AUTHOR' OF STRUCTURE <ls_appl>
TO <l_fs>. ls_attributes-author = <l_fs>. l_bname = <l_fs>. PERFORM
get_user USING l_bname CHANGING l_name_text. ls_attributes-author_text
= l_name_text. ASSIGN COMPONENT 'CREATEDON' OF STRUCTURE <ls_appl> TO
<l_fs>. PERFORM get_date USING <l_fs> CHANGING
ls_attributes-date_created. ASSIGN COMPONENT 'CHANGEDBY' OF STRUCTURE
<ls_appl> TO <l_fs>. ls_attributes-bname = <l_fs>. l_bname = <l_fs>.
PERFORM get_user USING l_bname CHANGING l_name_text.
ls_attributes-name_text = l_name_text. ASSIGN COMPONENT 'CHANGEDON' OF
STRUCTURE <ls_appl> TO <l_fs>. PERFORM get_date USING <l_fs> CHANGING
ls_attributes-date_last_changed. ls_attributes-devclass =
<ls_ztadir>-devclass. PERFORM get_devclass USING <ls_ztadir>-devclass
CHANGING ls_attributes-devclass_descr. PERFORM get_spras USING
<ls_ztadir>-masterlang CHANGING ls_attributes-laiso
ls_attributes-sptxt. ASSIGN COMPONENT 'APPLNAME' OF STRUCTURE <ls_appl>
TO <l_fs>. ls_attributes-internal_name = <l_fs>. ASSIGN COMPONENT
'STARTPAGE' OF STRUCTURE <ls_appl> TO <l_fs>. ls_attributes-initial_bsp
= <l_fs>. ASSIGN COMPONENT 'APPLCLAS' OF STRUCTURE <ls_appl> TO <l_fs>.
ls_attributes-application_class = <l_fs>. ASSIGN COMPONENT 'THEME' OF
STRUCTURE <ls_appl> TO <l_fs>. ls_attributes-initial_bsp = <l_fs>.
ASSIGN COMPONENT 'STATEFUL' OF STRUCTURE <ls_appl> TO <l_fs>.
ls_attributes-stateful = <l_fs>. ASSIGN COMPONENT 'SESSIONMANAGEMNT' OF
STRUCTURE <ls_appl> TO <l_fs>.
ls_attributes-supports_portal_integration = <l_fs>. ENDIF. SELECT *
FROM ('O2NAVGRAPH') INTO <ls_navgraph> WHERE applname = l_applname AND
version = 'A'. CLEAR ls_o2navigation. ASSIGN COMPONENT 'NODEEXIT' OF
STRUCTURE <ls_navgraph> TO <l_fs>. ls_o2navigation-navrequest = <l_fs>.
ASSIGN COMPONENT 'CURRNODE' OF STRUCTURE <ls_navgraph> TO <l_fs>.
SELECT SINGLE pagekey FROM ('O2NAVMAP') INTO l_pagekey WHERE applname =
l_applname AND version = 'A' AND node = <l_fs>. IF sy-subrc = 0. SELECT
SINGLE pagename FROM ('O2PAGDIR') INTO ls_o2navigation-start WHERE
applname = l_applname AND pagekey = l_pagekey. ENDIF. ASSIGN COMPONENT
'FUPNODE' OF STRUCTURE <ls_navgraph> TO <l_fs>. SELECT SINGLE pagekey
FROM ('O2NAVMAP') INTO l_pagekey WHERE applname = l_applname AND
version = 'A' AND node = <l_fs>. IF sy-subrc = 0. SELECT SINGLE
pagename FROM ('O2PAGDIR') INTO ls_o2navigation-target WHERE applname =
l_applname AND pagekey = l_pagekey. ENDIF. APPEND ls_o2navigation TO
lt_o2navigation. ENDSELECT. LOOP AT lt_tabstrip ASSIGNING
<ls_tabstrip>. <ls_tabstrip>-empty = abap_false. CASE <ls_tabstrip>-id.
WHEN 'NAVIGATION'. IF lt_o2navigation IS INITIAL. <ls_tabstrip>-empty =
abap_true. ENDIF. ENDCASE. ENDLOOP. PERFORM html_main_header USING
tpt_o2_wapa txt_bsp_application l_applext txt_active___1 space space
space lt_tabstrip gt_link CHANGING lt_html. l_flag = abap_false. IF
lt_o2navigation IS INITIAL. l_flag = abap_true. ENDIF. PERFORM
html_add_attributes_2 USING ls_attributes 'PROPERTIES' l_flag CHANGING
lt_html. IF NOT lt_o2navigation IS INITIAL OR g_empty_tab =
gc_empty_tab_display. PERFORM html_add_table USING 'WAPA_NAVI'
lt_o2navigation lt_o2navigation 'NAVIGATION' abap_true CHANGING
lt_html. ENDIF. PERFORM html_main_footer USING lt_html. PERFORM
download USING lt_html <ls_ztadir>-pgmid <ls_ztadir>-object
<ls_ztadir>-obj_name gc_extension_htm abap_true. ENDLOOP. ENDFORM. FORM
o2_r3tr_wapa_appl. DATA: mt_string TYPE it_string. TYPES: BEGIN OF
st_o2pagevhs, applname(30) TYPE c, pagekey(70) TYPE c, evhandler(30)
TYPE c, version TYPE c, evhname(30) TYPE c, source LIKE mt_string, END
OF st_o2pagevhs, it_o2pagevhs TYPE SORTED TABLE OF st_o2pagevhs WITH
UNIQUE KEY evhandler. DATA: lt_html TYPE it_string, l_objname(110) TYPE
c, l_applname(30) TYPE c, l_pagekey(70) TYPE c, l_pagename(70) TYPE c,
l_pagetype(1) TYPE c, l_is_error_page TYPE flag, l_https TYPE flag,
lo_pagdir TYPE REF TO data, ls_ti TYPE st_textinput, ls_rb TYPE
st_access, lt_prop_header TYPE it_textinput, lt_prop_page_type_rb TYPE
it_access, lt_prop_page_type_ti TYPE it_textinput,
lt_prop_error_handling TYPE it_textinput, lt_prop_status_rb TYPE
it_access, lt_prop_status_ti TYPE it_textinput, lt_prop_caching_li TYPE
it_textinput, lt_prop_caching_re TYPE it_textinput,
lt_prop_transfer_options_li TYPE it_textinput,
lt_prop_transfer_options_re TYPE it_textinput, lt_prop_footer TYPE
it_textinput, lt_dom_value TYPE it_dom_value, l_bname TYPE xubname,
l_name TYPE ad_namtext, lt_line TYPE it_line, lt_layout_src TYPE
it_string, l_str TYPE string, lt_o2pagevhs TYPE it_o2pagevhs,
lt_o2pagpars TYPE it_o2pagpars, lt_typesrc TYPE it_string, lt_used_guid
TYPE it_guid, lt_tabstrip TYPE it_tabstrip, l_o2type TYPE c, l_type(4)
TYPE c, l_filename TYPE string, l_filename2 TYPE string, lt_pageattr
TYPE it_o2pageattr, ls_pageattr TYPE st_o2pageattr, l_flag TYPE flag,
ls_tabstrip TYPE st_tabstrip, l_type_title TYPE string, l_title TYPE
string, l_id TYPE string, l_javascript TYPE string. FIELD-SYMBOLS:
<ls_ztadir> TYPE st_ztadir, <ls_pagdir> TYPE ANY, <ls_line> TYPE
st_line, <l_fs> TYPE ANY, <ls_dom_value> TYPE st_dom_value,
<ls_o2pagevhs> TYPE st_o2pagevhs, <ls_o2pagpars> TYPE st_o2pagpars,
<ls_tabstrip> TYPE st_tabstrip. LOOP AT gt_ztadir ASSIGNING <ls_ztadir>
WHERE pgmid = 'R3TR' AND object = 'WAPA' AND o2pagekey <> space AND (
o2type = gc_o2type_bsp OR o2type = gc_o2type_ctrl OR o2type =
gc_o2type_incl OR o2type = gc_o2type_view ) AND downloaded =
abap_false. <ls_ztadir>-downloaded = abap_true. IF NOT <ls_pagdir> IS
ASSIGNED. CREATE DATA lo_pagdir TYPE ('O2PAGATTR'). ASSIGN lo_pagdir->*
TO <ls_pagdir>. ENDIF. REFRESH: lt_html, lt_prop_header,
lt_prop_page_type_rb, lt_prop_page_type_ti, lt_prop_error_handling,
lt_prop_status_rb, lt_prop_status_ti, lt_prop_caching_li,
lt_prop_caching_re, lt_prop_transfer_options_li,
lt_prop_transfer_options_re, lt_prop_footer, lt_layout_src,
lt_o2pagevhs, lt_o2pagpars, lt_typesrc, lt_used_guid, lt_tabstrip,
lt_pageattr. CLEAR: l_objname, l_o2type, <ls_pagdir>, l_type,
l_filename, l_filename2, l_flag, l_type_title, l_title, l_id,
l_javascript. l_applname = <ls_ztadir>-obj_name. l_pagekey =
<ls_ztadir>-o2pagekey. l_objname+0(30) = <ls_ztadir>-obj_name.
l_objname+30(70) = <ls_ztadir>-o2pagekey. CALL FUNCTION
'O2_GET_WAPA_SOURCEN' EXPORTING p_objname = l_objname p_versno = 0
p_devclass = <ls_ztadir>-devclass p_langu = sy-langu p_master_l =
sy-langu IMPORTING pt_page_content = lt_line pt_ev_handler =
lt_o2pagevhs pt_parameters = lt_o2pagpars ps_page_attr = <ls_pagdir>
pt_typesource = lt_typesrc pt_used_guids = lt_used_guid EXCEPTIONS
OTHERS = 1. ASSIGN COMPONENT 'PAGENAME' OF STRUCTURE <ls_pagdir> TO
<l_fs>. l_pagename = <l_fs>. CLEAR ls_ti. ls_ti-name = txt_description.
ls_ti-value = <ls_ztadir>-descript. ls_ti-input = abap_true. APPEND
ls_ti TO lt_prop_header. IF <ls_ztadir>-o2type = gc_o2type_ctrl. CLEAR
ls_ti. ls_ti-name = txt_controller_class. ASSIGN COMPONENT 'IMPLCLASS'
OF STRUCTURE <ls_pagdir> TO <l_fs>. ls_ti-value = <l_fs>. ls_ti-input =
abap_true. APPEND ls_ti TO lt_prop_header. ENDIF. IF <ls_ztadir>-o2type
= gc_o2type_bsp OR <ls_ztadir>-o2type = gc_o2type_view. CLEAR ls_ti.
ls_ti-name = txt_mime_type. ASSIGN COMPONENT 'MIMETYPE' OF STRUCTURE
<ls_pagdir> TO <l_fs>. ls_ti-value = <l_fs>. IF ls_ti-value IS INITIAL.
ls_ti-value = 'application/octet-stream'. ENDIF. ls_ti-input =
abap_true. APPEND ls_ti TO lt_prop_header. CLEAR ls_ti. ls_ti-name =
txt_compression. ASSIGN COMPONENT 'STRIPMODE' OF STRUCTURE <ls_pagdir>
TO <l_fs>. PERFORM get_dom_value_text USING 'O2STRIPMODE' <l_fs>
CHANGING ls_ti-value. ls_ti-input = abap_true. APPEND ls_ti TO
lt_prop_header. CLEAR ls_ti. ls_ti-name = txt_wo_script_code. ASSIGN
COMPONENT 'NO_SCRIPT' OF STRUCTURE <ls_pagdir> TO <l_fs>. ls_ti-value =
<l_fs>. ls_ti-flag = abap_true. APPEND ls_ti TO lt_prop_header. ENDIF.
IF <ls_ztadir>-o2type = gc_o2type_bsp OR <ls_ztadir>-o2type =
gc_o2type_incl OR <ls_ztadir>-o2type = gc_o2type_view. ASSIGN COMPONENT
'PAGETYPE' OF STRUCTURE <ls_pagdir> TO <l_fs>. l_pagetype = <l_fs>.
CLEAR ls_rb. ls_rb-ddtext = txt_view. IF l_pagetype = gc_o2type_view.
ls_rb-checked = abap_true. ENDIF. APPEND ls_rb TO lt_prop_page_type_rb.
CLEAR ls_rb. ls_rb-ddtext = txt_page_with_flow_logic. IF l_pagetype =
gc_o2type_bsp. ls_rb-checked = abap_true. ENDIF. APPEND ls_rb TO
lt_prop_page_type_rb. CLEAR ls_rb. ls_rb-ddtext = txt_page_fragment. IF
l_pagetype = gc_o2type_incl. ls_rb-checked = abap_true. ENDIF. APPEND
ls_rb TO lt_prop_page_type_rb. CLEAR ls_ti. ls_ti-name =
txt_controller_class. ASSIGN COMPONENT 'CONTROLLERURL' OF STRUCTURE
<ls_pagdir> TO <l_fs>. ls_ti-value = <l_fs>. ls_ti-input = abap_true.
APPEND ls_ti TO lt_prop_page_type_ti. ENDIF. IF <ls_ztadir>-o2type =
gc_o2type_bsp OR <ls_ztadir>-o2type = gc_o2type_ctrl OR
<ls_ztadir>-o2type = gc_o2type_view. CLEAR ls_ti. ls_ti-name =
txt_is_error_page. ASSIGN COMPONENT 'IS_ERROR_PAGE' OF STRUCTURE
<ls_pagdir> TO <l_fs>. l_is_error_page = <l_fs>. ls_ti-value =
l_is_error_page. ls_ti-flag = abap_true. APPEND ls_ti TO
lt_prop_error_handling. CLEAR ls_ti. ls_ti-name =
txt_assigned_error_page. ASSIGN COMPONENT 'ERROR_PAGE' OF STRUCTURE
<ls_pagdir> TO <l_fs>. ls_ti-value = <l_fs>. ls_ti-input = abap_true.
APPEND ls_ti TO lt_prop_error_handling. ENDIF. IF <ls_ztadir>-o2type =
gc_o2type_bsp OR <ls_ztadir>-o2type = gc_o2type_ctrl. PERFORM
get_dom_value_texts USING 'O2PAGSTATE' CHANGING lt_dom_value. SORT
lt_dom_value BY value. ASSIGN COMPONENT 'STATE' OF STRUCTURE
<ls_pagdir> TO <l_fs>. LOOP AT lt_dom_value ASSIGNING <ls_dom_value>.
CLEAR ls_rb. ls_rb-ddtext = <ls_dom_value>-text. IF
<ls_dom_value>-value = <l_fs>. ls_rb-checked = abap_true. ENDIF. APPEND
ls_rb TO lt_prop_status_rb. ENDLOOP. CLEAR ls_ti. ls_ti-name =
txt_lifetime. ASSIGN COMPONENT 'LIFETIME' OF STRUCTURE <ls_pagdir> TO
<l_fs>. PERFORM get_dom_value_text USING 'O2LIFETIME' <l_fs> CHANGING
ls_ti-value. ls_ti-input = abap_true. APPEND ls_ti TO
lt_prop_status_ti. CLEAR ls_ti. ls_ti-name = txt_browser_cache. ASSIGN
COMPONENT 'BROWSER_CACHE' OF STRUCTURE <ls_pagdir> TO <l_fs>.
ls_ti-value = <l_fs>. ls_ti-input = abap_true. ls_ti-description =
txt_sec. APPEND ls_ti TO lt_prop_caching_li. CLEAR ls_ti. ls_ti-name =
txt_server_cache. ASSIGN COMPONENT 'SERVER_CACHE' OF STRUCTURE
<ls_pagdir> TO <l_fs>. ls_ti-value = <l_fs>. ls_ti-input = abap_true.
ls_ti-description = txt_sec. APPEND ls_ti TO lt_prop_caching_li. CLEAR
ls_ti. ls_ti-space = abap_true. APPEND ls_ti TO lt_prop_caching_re.
CLEAR ls_ti. ls_ti-name = txt_browser_specific. ASSIGN COMPONENT
'BROWSER_DEP' OF STRUCTURE <ls_pagdir> TO <l_fs>. ls_ti-value = <l_fs>.
ls_ti-flag = abap_true. APPEND ls_ti TO lt_prop_caching_re. CLEAR
ls_ti. ls_ti-name = txt_compression. ASSIGN COMPONENT 'COMPRESSION' OF
STRUCTURE <ls_pagdir> TO <l_fs>. ls_ti-value = <l_fs>. ls_ti-flag =
abap_true. APPEND ls_ti TO lt_prop_transfer_options_li. ENDIF. IF
<ls_ztadir>-o2type = gc_o2type_bsp OR <ls_ztadir>-o2type =
gc_o2type_ctrl OR <ls_ztadir>-o2type = gc_o2type_view. CLEAR ls_ti.
ls_ti-name = txt_delta_handling. ASSIGN COMPONENT 'DELTA_HANDLING' OF
STRUCTURE <ls_pagdir> TO <l_fs>. ls_ti-value = <l_fs>. ls_ti-flag =
abap_true. APPEND ls_ti TO lt_prop_transfer_options_li. ENDIF. IF
<ls_ztadir>-o2type = gc_o2type_bsp OR <ls_ztadir>-o2type =
gc_o2type_ctrl. CLEAR ls_ti. ls_ti-name = txt_https. ASSIGN COMPONENT
'SECUREHTTP' OF STRUCTURE <ls_pagdir> TO <l_fs>. l_https = <l_fs>.
ls_ti-value = l_https. ls_ti-flag = abap_true. APPEND ls_ti TO
lt_prop_transfer_options_re. ENDIF. CLEAR ls_ti. ls_ti-name =
txt_created_on. ASSIGN COMPONENT 'AUTHOR' OF STRUCTURE <ls_pagdir> TO
<l_fs>. l_bname = <l_fs>. PERFORM get_user USING l_bname CHANGING
l_name. ls_ti-value = l_bname. ls_ti-value_text = l_name. ASSIGN
COMPONENT 'CREATEDON' OF STRUCTURE <ls_pagdir> TO <l_fs>. PERFORM
get_date USING <l_fs> CHANGING ls_ti-value_ext. ls_ti-input =
abap_true. ls_ti-has_value_ext = abap_true. APPEND ls_ti TO
lt_prop_footer. CLEAR ls_ti. ls_ti-name = txt_last_changed_on. ASSIGN
COMPONENT 'CHANGEDBY' OF STRUCTURE <ls_pagdir> TO <l_fs>. l_bname =
<l_fs>. PERFORM get_user USING l_bname CHANGING l_name. ls_ti-value =
l_bname. ls_ti-value_text = l_name. ASSIGN COMPONENT 'CHANGEDON' OF
STRUCTURE <ls_pagdir> TO <l_fs>. PERFORM get_date USING <l_fs> CHANGING
ls_ti-value_ext. ls_ti-input = abap_true. ls_ti-has_value_ext =
abap_true. APPEND ls_ti TO lt_prop_footer. CLEAR ls_ti. ls_ti-name =
txt_package. ls_ti-value = <ls_ztadir>-devclass. ls_ti-input =
abap_true. APPEND ls_ti TO lt_prop_footer. IF <ls_ztadir>-o2type =
gc_o2type_bsp OR <ls_ztadir>-o2type = gc_o2type_ctrl. CLEAR ls_ti.
ls_ti-name = txt_url. PERFORM o2_get_url USING l_https l_applname
l_pagekey l_pagename l_pagetype l_is_error_page CHANGING ls_ti-value.
ls_ti-input = abap_true. APPEND ls_ti TO lt_prop_footer. ENDIF. IF
<ls_ztadir>-o2type = gc_o2type_bsp OR <ls_ztadir>-o2type =
gc_o2type_incl OR <ls_ztadir>-o2type = gc_o2type_view. LOOP AT lt_line
ASSIGNING <ls_line>. l_str = <ls_line>-line. APPEND l_str TO
lt_layout_src. ENDLOOP. ENDIF. IF <ls_ztadir>-o2type = gc_o2type_bsp OR
<ls_ztadir>-o2type = gc_o2type_view. LOOP AT lt_o2pagpars ASSIGNING
<ls_o2pagpars>. CLEAR ls_pageattr. MOVE-CORRESPONDING <ls_o2pagpars> TO
ls_pageattr. PERFORM get_dom_value_text USING 'O2TYPTYPE'
ls_pageattr-typtype CHANGING ls_pageattr-typtype_txt. IF
ls_pageattr-pardecltyp = '0'. ls_pageattr-pardecltyp_flag = abap_true.
ENDIF. APPEND ls_pageattr TO lt_pageattr. ENDLOOP. ENDIF. l_o2type =
<ls_ztadir>-o2type. IF l_o2type IS INITIAL. l_o2type = 'B'. ENDIF.
PERFORM get_tabstrip USING 'O2_R3TR_WAPA_APPL' l_o2type CHANGING
lt_tabstrip. LOOP AT lt_tabstrip ASSIGNING <ls_tabstrip>.
<ls_tabstrip>-empty = abap_false. CASE <ls_tabstrip>-id. WHEN 'LAYOUT'.
IF lt_layout_src IS INITIAL. <ls_tabstrip>-empty = abap_true. ELSE.
CONCATENATE l_javascript 'makeDivSize(''LAYOUT'');' INTO l_javascript.
ENDIF. WHEN 'EVENT_HANDLER'. IF lt_o2pagevhs IS INITIAL.
<ls_tabstrip>-empty = abap_true. ENDIF. WHEN 'PAGE_ATTRIBUTES'. IF
lt_pageattr IS INITIAL. <ls_tabstrip>-empty = abap_true. ENDIF. WHEN
'TYPE_DEFINITIONS'. IF lt_typesrc IS INITIAL. <ls_tabstrip>-empty =
abap_true. ELSE. CONCATENATE l_javascript
'makeDivSize(''TYPE_DEFINITIONS'');' INTO l_javascript. ENDIF. ENDCASE.
ENDLOOP. LOOP AT lt_o2pagevhs ASSIGNING <ls_o2pagevhs>. CLEAR
ls_tabstrip. ls_tabstrip-form = 'O2_R3TR_WAPA_APPL'. ls_tabstrip-id =
<ls_o2pagevhs>-evhandler. ls_tabstrip-parent_id = 'EVENT_HANDLER'.
ls_tabstrip-text = <ls_o2pagevhs>-evhname. IF sy-tabix = 1.
ls_tabstrip-active = abap_true. ENDIF. ls_tabstrip-tab_nr = sy-tabix +
20. APPEND ls_tabstrip TO lt_tabstrip. CONCATENATE l_javascript
'makeDivSize(''' <ls_o2pagevhs>-evhandler ''');' INTO l_javascript.
ENDLOOP. CASE <ls_ztadir>-o2type. WHEN gc_o2type_ctrl. l_type = 'ctrl'.
l_title = tpt_o2_wapa_ctrl. l_type_title = txt_controller. WHEN
gc_o2type_view. l_type = 'view'. l_title = tpt_o2_wapa_page.
l_type_title = txt_page. WHEN gc_o2type_bsp. l_type = 'bsp'. l_title =
tpt_o2_wapa_page. l_type_title = txt_page. WHEN gc_o2type_incl. l_type
= 'incl'. l_title = tpt_o2_wapa_page. l_type_title = txt_page. ENDCASE.
PERFORM replace_single USING '#NAME_VALUE#' <ls_ztadir>-obj_name
CHANGING l_title. CONCATENATE <ls_ztadir>-obj_name '-' l_type '/'
<ls_ztadir>-o2pagename INTO l_filename. PERFORM html_main_header USING
l_title l_type_title <ls_ztadir>-o2pagename txt_active___1 space space
l_javascript lt_tabstrip gt_link CHANGING lt_html. l_flag = abap_true.
IF <ls_ztadir>-o2type = gc_o2type_bsp OR <ls_ztadir>-o2type =
gc_o2type_incl OR <ls_ztadir>-o2type = gc_o2type_view. IF NOT
lt_layout_src IS INITIAL OR g_empty_tab = gc_empty_tab_display. l_flag
= abap_false. ENDIF. ENDIF. PERFORM html_add_properties_o2 USING
lt_prop_header txt_page_type lt_prop_page_type_rb lt_prop_page_type_ti
txt_error_handling lt_prop_error_handling txt_status lt_prop_status_rb
lt_prop_status_ti txt_caching lt_prop_caching_li lt_prop_caching_re
txt_transfer_options lt_prop_transfer_options_li
lt_prop_transfer_options_re lt_prop_footer 'PROPERTIES' l_flag CHANGING
lt_html. IF <ls_ztadir>-o2type = gc_o2type_bsp OR <ls_ztadir>-o2type =
gc_o2type_incl OR <ls_ztadir>-o2type = gc_o2type_view. IF NOT
lt_layout_src IS INITIAL OR g_empty_tab = gc_empty_tab_display. PERFORM
html_add_sourcecode USING lt_layout_src l_filename space space
gc_extension_txt 'LAYOUT' abap_true CHANGING lt_html. PERFORM download
USING lt_layout_src <ls_ztadir>-pgmid <ls_ztadir>-object l_filename
gc_extension_txt abap_false. ENDIF. ENDIF. IF <ls_ztadir>-o2type =
gc_o2type_bsp. IF NOT lt_o2pagevhs IS INITIAL OR g_empty_tab =
gc_empty_tab_display. PERFORM html_add_container_begin USING
lt_tabstrip 'EVENT_HANDLER' abap_false CHANGING lt_html. LOOP AT
lt_o2pagevhs ASSIGNING <ls_o2pagevhs>. l_flag = abap_false. IF sy-tabix
= 1. l_flag = abap_true. ENDIF. CONCATENATE l_filename '.'
<ls_o2pagevhs>-evhandler INTO l_filename2. PERFORM html_add_sourcecode
USING <ls_o2pagevhs>-source l_filename2 space space gc_extension_txt
<ls_o2pagevhs>-evhandler l_flag CHANGING lt_html. PERFORM download
USING <ls_o2pagevhs>-source <ls_ztadir>-pgmid <ls_ztadir>-object
l_filename2 gc_extension_txt abap_false. ENDLOOP. PERFORM
html_add_container_end CHANGING lt_html. ENDIF. ENDIF. IF
<ls_ztadir>-o2type = gc_o2type_bsp OR <ls_ztadir>-o2type =
gc_o2type_view. IF NOT lt_pageattr IS INITIAL OR g_empty_tab =
gc_empty_tab_display. PERFORM get_id USING 'WAPA_ATTR|' l_o2type
CHANGING l_id. PERFORM html_add_table USING l_id lt_pageattr
lt_pageattr 'PAGE_ATTRIBUTES' abap_false CHANGING lt_html. ENDIF.
ENDIF. IF <ls_ztadir>-o2type = gc_o2type_bsp. IF NOT lt_typesrc IS
INITIAL OR g_empty_tab = gc_empty_tab_display. CONCATENATE l_filename
'.types' INTO l_filename2. PERFORM html_add_sourcecode USING lt_typesrc
l_filename2 space space gc_extension_txt 'TYPE_DEFINITIONS' abap_false
CHANGING lt_html. PERFORM download USING lt_typesrc <ls_ztadir>-pgmid
<ls_ztadir>-object l_filename2 gc_extension_txt abap_false. ENDIF.
ENDIF. PERFORM html_main_footer USING lt_html. PERFORM download USING
lt_html <ls_ztadir>-pgmid <ls_ztadir>-object l_filename
gc_extension_htm abap_true. ENDLOOP. ENDFORM. FORM o2_r3tr_wapa_mime.
DATA: lt_content_ascii TYPE it_o2content_ascii, lt_content_binary TYPE
it_o2content_binary, lt_ascii TYPE it_string, ls_ascii TYPE string,
l_filename TYPE string, l_filesize TYPE i. FIELD-SYMBOLS: <ls_ztadir>
TYPE st_ztadir, <ls_content_ascii> TYPE st_o2content_ascii. LOOP AT
gt_ztadir ASSIGNING <ls_ztadir> WHERE pgmid = 'R3TR' AND object =
'WAPA' AND o2pagekey <> space AND o2type = gc_o2type_mime AND
downloaded = abap_false. <ls_ztadir>-downloaded = abap_true. CLEAR:
l_filesize. REFRESH: lt_content_ascii, lt_content_binary, lt_ascii.
PERFORM o2_get_mime_content USING <ls_ztadir>-mime_objtype
<ls_ztadir>-mime_class <ls_ztadir>-mime_objid CHANGING lt_content_ascii
lt_content_binary l_filesize. CONCATENATE <ls_ztadir>-obj_name '-mime/'
<ls_ztadir>-o2pagename INTO l_filename. IF NOT lt_content_ascii IS
INITIAL. LOOP AT lt_content_ascii ASSIGNING <ls_content_ascii>.
ls_ascii = <ls_content_ascii>-line. APPEND ls_ascii TO lt_ascii.
ENDLOOP. PERFORM download USING lt_ascii <ls_ztadir>-pgmid
<ls_ztadir>-object l_filename space abap_true. ENDIF. IF NOT
lt_content_binary IS INITIAL. PERFORM download_binary USING
lt_content_binary l_filesize <ls_ztadir>-pgmid <ls_ztadir>-object
l_filename space abap_true. ENDIF. ENDLOOP. ENDFORM. FORM o2_r3tr_wtag.
DATA: lt_tabstrip TYPE it_tabstrip, lt_html TYPE it_string, ls_ti TYPE
st_textinput, lt_props TYPE it_textinput, lt_general TYPE it_textinput,
lo_taglib TYPE REF TO data, l_tlibid(30) TYPE c, l_tlibname(30) TYPE c,
l_masterlang TYPE masterlang, l_bname TYPE xubname, l_name_text TYPE
ad_namtext, l_laiso TYPE laiso, l_sptxt TYPE sptxt, l_title TYPE
string. FIELD-SYMBOLS: <ls_ztadir> TYPE st_ztadir, <ls_taglib> TYPE
ANY, <l_fs> TYPE ANY. LOOP AT gt_ztadir ASSIGNING <ls_ztadir> WHERE
pgmid = 'R3TR' AND object = 'WTAG' AND o2pagekey = space AND downloaded
= abap_false. <ls_ztadir>-downloaded = abap_true. IF NOT <ls_taglib> IS
ASSIGNED. PERFORM get_tabstrip USING 'O2_R3TR_WTAG' space CHANGING
lt_tabstrip. CREATE DATA lo_taglib TYPE ('O2TAGLIB'). ASSIGN
lo_taglib->* TO <ls_taglib>. ENDIF. REFRESH: lt_html, lt_props,
lt_general. CLEAR <ls_taglib>. l_tlibid = <ls_ztadir>-obj_name. SELECT
SINGLE masterlang FROM tadir INTO l_masterlang WHERE pgmid = 'R3TR' AND
object = 'WTAG' AND obj_name = <ls_ztadir>-obj_name. SELECT SINGLE *
FROM ('O2TAGLIB') INTO <ls_taglib> WHERE tlibid = l_tlibid AND state =
'A'. ASSIGN COMPONENT 'TLIBNAME' OF STRUCTURE <ls_taglib> TO <l_fs>.
l_tlibname = <l_fs>. CLEAR ls_ti. ls_ti-name =
txt_short_description___2. ls_ti-value = <ls_ztadir>-descript.
ls_ti-input = abap_true. APPEND ls_ti TO lt_props. CLEAR ls_ti.
ls_ti-name = txt_default_prefix. ASSIGN COMPONENT 'PREFIX' OF STRUCTURE
<ls_taglib> TO <l_fs>. ls_ti-value = <l_fs>. ls_ti-value_ext_space =
abap_true. ls_ti-input = abap_true. ls_ti-has_value_ext = abap_true.
APPEND ls_ti TO lt_props. CLEAR ls_ti. ls_ti-name =
txt_bsp_extension_class. ASSIGN COMPONENT 'TAGLIBCLASS' OF STRUCTURE
<ls_taglib> TO <l_fs>. ls_ti-value = <l_fs>. ls_ti-value_ext_space =
abap_true. ls_ti-input = abap_true. ls_ti-has_value_ext = abap_true.
APPEND ls_ti TO lt_props. CLEAR ls_ti. ls_ti-name =
txt_bsp_element_basis_class. ASSIGN COMPONENT 'TAGBASECLASS' OF
STRUCTURE <ls_taglib> TO <l_fs>. ls_ti-value = <l_fs>.
ls_ti-value_ext_space = abap_true. ls_ti-input = abap_true.
ls_ti-has_value_ext = abap_true. APPEND ls_ti TO lt_props. CLEAR ls_ti.
ls_ti-name = txt_created_by___1. ASSIGN COMPONENT 'AUTHOR' OF STRUCTURE
<ls_taglib> TO <l_fs>. ls_ti-value = <l_fs>. l_bname = <l_fs>. PERFORM
get_user USING l_bname CHANGING l_name_text. ls_ti-value_text =
l_name_text. ls_ti-value_ext_space = abap_true. ls_ti-input =
abap_true. ls_ti-has_value_ext = abap_true. APPEND ls_ti TO lt_general.
CLEAR ls_ti. ls_ti-name = txt_creation_date. ASSIGN COMPONENT
'CREATEDON' OF STRUCTURE <ls_taglib> TO <l_fs>. PERFORM get_date USING
<l_fs> CHANGING ls_ti-value. ls_ti-value_ext_space = abap_true.
ls_ti-input = abap_true. ls_ti-has_value_ext = abap_true. APPEND ls_ti
TO lt_general. CLEAR ls_ti. ls_ti-name = txt_last_changed. ASSIGN
COMPONENT 'CHANGEDBY' OF STRUCTURE <ls_taglib> TO <l_fs>. ls_ti-value =
<l_fs>. l_bname = <l_fs>. PERFORM get_user USING l_bname CHANGING
l_name_text. ls_ti-value_text = l_name_text. ls_ti-value_ext_space =
abap_true. ls_ti-input = abap_true. ls_ti-has_value_ext = abap_true.
APPEND ls_ti TO lt_general. CLEAR ls_ti. ls_ti-name = txt_changed_on.
ASSIGN COMPONENT 'CHANGEDON' OF STRUCTURE <ls_taglib> TO <l_fs>.
PERFORM get_date USING <l_fs> CHANGING ls_ti-value.
ls_ti-value_ext_space = abap_true. ls_ti-input = abap_true.
ls_ti-has_value_ext = abap_true. APPEND ls_ti TO lt_general. CLEAR
ls_ti. ls_ti-name = txt_time_changed. ASSIGN COMPONENT 'STAMP' OF
STRUCTURE <ls_taglib> TO <l_fs>. PERFORM get_time USING <l_fs> CHANGING
ls_ti-value. ls_ti-value_ext_space = abap_true. ls_ti-input =
abap_true. ls_ti-has_value_ext = abap_true. APPEND ls_ti TO lt_general.
CLEAR ls_ti. ls_ti-name = txt_package. ls_ti-value =
<ls_ztadir>-devclass. ls_ti-input = abap_true. APPEND ls_ti TO
lt_general. CLEAR ls_ti. ls_ti-name = txt_original_language. PERFORM
get_spras USING l_masterlang CHANGING l_laiso l_sptxt. ls_ti-value =
l_laiso. ls_ti-value_text = l_sptxt. ls_ti-value_ext_space = abap_true.
ls_ti-input = abap_true. ls_ti-has_value_ext = abap_true. APPEND ls_ti
TO lt_general. l_title = tpt_o2_wtag. PERFORM replace_single USING
var_name_value <ls_ztadir>-obj_name CHANGING l_title. PERFORM
html_main_header USING l_title txt_bsp_extension l_tlibname
txt_active___1 space space space lt_tabstrip gt_link CHANGING lt_html.
PERFORM html_add_textinput_subbox USING lt_props txt_general_data
lt_general 'PROPERTIES' abap_true CHANGING lt_html. PERFORM
html_main_footer USING lt_html. PERFORM download USING lt_html
<ls_ztadir>-pgmid <ls_ztadir>-object <ls_ztadir>-obj_name
gc_extension_htm abap_true. ENDLOOP. ENDFORM. FORM o2_r3tr_wtag_ext.
DATA: lt_tabstrip TYPE it_tabstrip, lt_html TYPE it_string, ls_ti TYPE
st_textinput, lt_props TYPE it_textinput, lt_general TYPE it_textinput,
lt_options TYPE it_textinput, ls_rb TYPE st_access, lt_content TYPE
it_access, lo_tag TYPE REF TO data, lo_att TYPE REF TO data, ls_att
TYPE st_o2tagatt, lt_att TYPE it_o2tagatt, l_tlibid(30) TYPE c,
l_tagid(30) TYPE c, l_masterlang TYPE masterlang, l_bname TYPE xubname,
l_name_text TYPE ad_namtext, l_laiso TYPE laiso, l_sptxt TYPE sptxt,
l_title TYPE string, l_filename TYPE string. FIELD-SYMBOLS: <ls_ztadir>
TYPE st_ztadir, <ls_tag> TYPE ANY, <ls_att> TYPE ANY, <l_fs> TYPE ANY.
CONSTANTS: lc_content_empty TYPE c VALUE 'E', lc_content_inner_tags
TYPE c VALUE 'I', lc_content_bsp TYPE c VALUE 'B', lc_content_tagdep
TYPE c VALUE 'T'. LOOP AT gt_ztadir ASSIGNING <ls_ztadir> WHERE pgmid =
'R3TR' AND object = 'WTAG' AND o2pagekey <> space AND downloaded =
abap_false. <ls_ztadir>-downloaded = abap_true. IF NOT <ls_tag> IS
ASSIGNED. PERFORM get_tabstrip USING 'O2_R3TR_WTAG_EXT' space CHANGING
lt_tabstrip. CREATE DATA lo_tag TYPE ('O2TAG'). ASSIGN lo_tag->* TO
<ls_tag>. CREATE DATA lo_att TYPE ('O2TAGATT'). ASSIGN lo_att->* TO
<ls_att>. ENDIF. REFRESH: lt_html, lt_props, lt_general, lt_content,
lt_options, lt_att. CLEAR: <ls_tag>, <ls_att>, ls_rb, ls_att,
l_filename. l_tlibid = <ls_ztadir>-obj_name. l_tagid =
<ls_ztadir>-o2name. SELECT SINGLE * FROM ('O2TAG') INTO <ls_tag> WHERE
tlibid = l_tlibid AND tagid = l_tagid AND state = 'A'. CLEAR ls_ti.
ls_ti-name = txt_short_description___2. ls_ti-value =
<ls_ztadir>-descript. ls_ti-input = abap_true. APPEND ls_ti TO
lt_props. CLEAR ls_ti. ls_ti-name = txt_element_handler_class. ASSIGN
COMPONENT 'TAGCLASS' OF STRUCTURE <ls_tag> TO <l_fs>. ls_ti-value =
<l_fs>. ls_ti-value_ext_space = abap_true. ls_ti-input = abap_true.
ls_ti-has_value_ext = abap_true. APPEND ls_ti TO lt_props. CLEAR ls_ti.
ls_ti-name = txt_bsp_extension_class. ASSIGN COMPONENT 'GENCLASS' OF
STRUCTURE <ls_tag> TO <l_fs>. ls_ti-value = <l_fs>.
ls_ti-value_ext_space = abap_true. ls_ti-input = abap_true.
ls_ti-has_value_ext = abap_true. APPEND ls_ti TO lt_props. ASSIGN
COMPONENT 'BCONTENT' OF STRUCTURE <ls_tag> TO <l_fs>. CLEAR ls_rb.
ls_rb-ddtext = txt_blank. IF <l_fs> = lc_content_empty. ls_rb-checked =
abap_true. ENDIF. APPEND ls_rb TO lt_content. CLEAR ls_rb. ls_rb-ddtext
= txt_bsp_elements_only. IF <l_fs> = lc_content_inner_tags.
ls_rb-checked = abap_true. ENDIF. APPEND ls_rb TO lt_content. CLEAR
ls_rb. ls_rb-ddtext = txt_bsp_elements_and_static_ht. IF <l_fs> =
lc_content_bsp. ls_rb-checked = abap_true. ENDIF. APPEND ls_rb TO
lt_content. CLEAR ls_rb. ls_rb-ddtext = txt_element_interprets_content.
IF <l_fs> = lc_content_tagdep. ls_rb-checked = abap_true. ENDIF. APPEND
ls_rb TO lt_content. CLEAR ls_ti. ls_ti-name =
txt_user_defined_validation. ASSIGN COMPONENT 'VALIDATION' OF STRUCTURE
<ls_tag> TO <l_fs>. ls_ti-value = <l_fs>. ls_ti-flag = abap_true.
APPEND ls_ti TO lt_options. CLEAR ls_ti. ls_ti-name =
txt_iteration_over_element_con. ASSIGN COMPONENT 'ITERATION' OF
STRUCTURE <ls_tag> TO <l_fs>. ls_ti-value = <l_fs>. ls_ti-flag =
abap_true. APPEND ls_ti TO lt_options. CLEAR ls_ti. ls_ti-name =
txt_manipulation_of_element_co. ASSIGN COMPONENT 'BODYWRITER' OF
STRUCTURE <ls_tag> TO <l_fs>. ls_ti-value = <l_fs>. ls_ti-flag =
abap_true. APPEND ls_ti TO lt_options. CLEAR ls_ti. ls_ti-name =
txt_page_done_is_not_returned_. ASSIGN COMPONENT 'NOPAGEDONE' OF
STRUCTURE <ls_tag> TO <l_fs>. ls_ti-value = <l_fs>. ls_ti-flag =
abap_true. APPEND ls_ti TO lt_options. CLEAR ls_ti. ls_ti-name =
txt_created_by___1. ASSIGN COMPONENT 'AUTHOR' OF STRUCTURE <ls_tag> TO
<l_fs>. ls_ti-value = <l_fs>. l_bname = <l_fs>. PERFORM get_user USING
l_bname CHANGING l_name_text. ls_ti-value_text = l_name_text.
ls_ti-value_ext_space = abap_true. ls_ti-input = abap_true.
ls_ti-has_value_ext = abap_true. APPEND ls_ti TO lt_general. CLEAR
ls_ti. ls_ti-name = txt_creation_date. ASSIGN COMPONENT 'CREATEDON' OF
STRUCTURE <ls_tag> TO <l_fs>. PERFORM get_date USING <l_fs> CHANGING
ls_ti-value. ls_ti-value_ext_space = abap_true. ls_ti-input =
abap_true. ls_ti-has_value_ext = abap_true. APPEND ls_ti TO lt_general.
CLEAR ls_ti. ls_ti-name = txt_last_changed. ASSIGN COMPONENT
'CHANGEDBY' OF STRUCTURE <ls_tag> TO <l_fs>. ls_ti-value = <l_fs>.
l_bname = <l_fs>. PERFORM get_user USING l_bname CHANGING l_name_text.
ls_ti-value_text = l_name_text. ls_ti-value_ext_space = abap_true.
ls_ti-input = abap_true. ls_ti-has_value_ext = abap_true. APPEND ls_ti
TO lt_general. CLEAR ls_ti. ls_ti-name = txt_changed_on. ASSIGN
COMPONENT 'CHANGEDON' OF STRUCTURE <ls_tag> TO <l_fs>. PERFORM get_date
USING <l_fs> CHANGING ls_ti-value. ls_ti-value_ext_space = abap_true.
ls_ti-input = abap_true. ls_ti-has_value_ext = abap_true. APPEND ls_ti
TO lt_general. SELECT * FROM ('O2TAGATT') INTO <ls_att> WHERE tlibid =
l_tlibid AND state = 'A' AND tagid = l_tagid. ASSIGN COMPONENT 'ATTID'
OF STRUCTURE <ls_att> TO <l_fs>. ls_att-attid = <l_fs>. ASSIGN
COMPONENT 'REQUIRED' OF STRUCTURE <ls_att> TO <l_fs>. ls_att-required =
<l_fs>. ASSIGN COMPONENT 'RTEXPR' OF STRUCTURE <ls_att> TO <l_fs>.
ls_att-rtexpr = <l_fs>. ASSIGN COMPONENT 'BYREF' OF STRUCTURE <ls_att>
TO <l_fs>. ls_att-byref = <l_fs>. ASSIGN COMPONENT 'TYPE' OF STRUCTURE
<ls_att> TO <l_fs>. ls_att-type = <l_fs>. ASSIGN COMPONENT 'DEFVAL' OF
STRUCTURE <ls_att> TO <l_fs>. ls_att-defval = <l_fs>. ASSIGN COMPONENT
'BINDABLE' OF STRUCTURE <ls_att> TO <l_fs>. ls_att-bindable = <l_fs>.
ASSIGN COMPONENT 'TYPTYPE' OF STRUCTURE <ls_att> TO <l_fs>. PERFORM
get_dom_value_text USING 'O2TYPTYPE' <l_fs> CHANGING
ls_att-typtype_txt. SELECT SINGLE descript FROM ('TAGATTT') INTO
ls_att-descript WHERE tlibid = l_tlibid AND state = 'A' AND langu =
sy-langu AND tagid = l_tagid AND attid = ls_att-attid. APPEND ls_att TO
lt_att. ENDSELECT. l_title = tpt_o2_wtag. PERFORM replace_single USING
var_name_value <ls_ztadir>-obj_name CHANGING l_title. PERFORM
html_main_header USING l_title txt_bsp_element l_tagid txt_active___1
space space space lt_tabstrip gt_link CHANGING lt_html. PERFORM
html_add_textinput_subboxes USING lt_props txt_element_content 'ec'
lt_content txt_further_options lt_options txt_general_data lt_general
'PROPERTIES' abap_true CHANGING lt_html. PERFORM html_add_table USING
'WTAG_ATTR' lt_att lt_att 'ATTRIBUTE' abap_false CHANGING lt_html.
PERFORM html_main_footer USING lt_html. CONCATENATE
<ls_ztadir>-obj_name '-' l_tagid INTO l_filename. PERFORM download
USING lt_html <ls_ztadir>-pgmid <ls_ztadir>-object l_filename
gc_extension_htm abap_true. ENDLOOP. ENDFORM. FORM o2_r3tr_xslt. DATA:
lt_html TYPE it_string, lt_tabstrip TYPE it_tabstrip, l_name(40) TYPE
c, ls_attributes TYPE st_attributes, l_author TYPE xubname, l_createdon
TYPE dats, l_changedon TYPE dats, l_bname TYPE xubname, l_xslt_id(43)
TYPE c, l_xslt_name TYPE progname. FIELD-SYMBOLS: <ls_ztadir> TYPE
st_ztadir, <ls_xslt_source> TYPE st_o2pageline. LOOP AT gt_ztadir
ASSIGNING <ls_ztadir> WHERE pgmid = 'R3TR' AND object = 'XSLT' AND
downloaded = abap_false. <ls_ztadir>-downloaded = abap_true. IF
lt_tabstrip IS INITIAL. PERFORM get_tabstrip USING 'O2_R3TR_XSLT' space
CHANGING lt_tabstrip. ENDIF. CLEAR: ls_attributes, l_xslt_name.
REFRESH: lt_html. l_name = <ls_ztadir>-obj_name. SELECT SINGLE author
createdon changedon changedby FROM ('O2XSLTDESC') INTO
(ls_attributes-author, l_createdon, l_changedon, ls_attributes-bname)
WHERE xsltdesc = l_name AND state = 'A' AND srtf2 = 0. l_author =
ls_attributes-author. PERFORM get_user USING l_author CHANGING
ls_attributes-author_text. PERFORM get_date USING l_createdon CHANGING
ls_attributes-date_created. PERFORM get_date USING l_changedon CHANGING
ls_attributes-date_last_changed. l_bname = ls_attributes-bname. PERFORM
get_user USING l_bname CHANGING ls_attributes-name_text.
ls_attributes-descript = <ls_ztadir>-descript. ls_attributes-devclass =
<ls_ztadir>-devclass. PERFORM get_devclass USING ls_attributes-devclass
CHANGING ls_attributes-devclass_descr. PERFORM get_spras USING
<ls_ztadir>-masterlang CHANGING ls_attributes-laiso
ls_attributes-sptxt. PERFORM get_trdir_name USING l_name 'XT' CHANGING
l_xslt_name. PERFORM html_main_header USING tpt_o2_xslt
txt_transformation <ls_ztadir>-obj_name txt_active___1 space space
'makeDivSize(''SOURCECODE'')' lt_tabstrip gt_link CHANGING lt_html.
PERFORM html_add_attributes_2 USING ls_attributes 'ATTRIBUTES'
abap_false CHANGING lt_html. PERFORM add_report_sourcecode USING
l_xslt_name l_name gc_extension_xsl abap_false <ls_ztadir> 'SOURCECODE'
abap_true CHANGING lt_html. PERFORM html_main_footer USING lt_html.
PERFORM download USING lt_html <ls_ztadir>-pgmid <ls_ztadir>-object
<ls_ztadir>-obj_name gc_extension_htm abap_true. ENDLOOP. ENDFORM. FORM
pack. PERFORM pack_r3tr_devc. ENDFORM. FORM pack_r3tr_devc. DATA:
lo_package TYPE REF TO if_package, l_as4text TYPE as4text,
ls_attributes TYPE st_attributes, ls_ti TYPE st_textinput,
lt_package_properties TYPE it_textinput, lt_transport_attributes TYPE
it_textinput, l_intf_system TYPE srcsystem, l_pack_system TYPE
srcsystem, lt_ref_interface TYPE tpak_package_interface_list,
ls_ref_interface TYPE tpak_package_interface_ref, lt_interface TYPE
it_pack_intf, ls_interface TYPE st_pack_intf, lt_ref_perm TYPE
tpak_permission_to_use_list, ls_ref_perm TYPE
tpak_permission_to_use_ref_typ, lt_perm TYPE it_pack_perm, ls_perm TYPE
st_pack_perm, lt_ref_sub TYPE scompaklis, ls_ref_sub TYPE REF TO
if_package, lt_sub TYPE it_pack_sub, ls_sub TYPE st_pack_sub,
lt_tabstrip TYPE it_tabstrip, lt_html TYPE it_string. FIELD-SYMBOLS:
<ls_tabstrip> TYPE st_tabstrip, <l_srv_check> TYPE ANY, <l_cli_check>
TYPE ANY, <l_deleted_in_memory> TYPE ANY. CALL METHOD
cl_package_factory=>load_package EXPORTING i_package_name =
gs_tdevc-devclass IMPORTING e_package = lo_package. PERFORM
get_devclass USING gs_tdevc-devclass CHANGING l_as4text.
ls_attributes-descript = l_as4text. ls_attributes-person_responsible =
gs_tdevc-as4user. PERFORM get_user USING gs_tdevc-as4user CHANGING
ls_attributes-person_responsible_text. ls_attributes-author =
gs_tdevc-created_by. PERFORM get_user USING gs_tdevc-created_by
CHANGING ls_attributes-author_text. PERFORM get_date USING
gs_tdevc-created_on CHANGING ls_attributes-date_created.
ls_attributes-bname = gs_tdevc-changed_by. PERFORM get_user USING
gs_tdevc-changed_by CHANGING ls_attributes-name_text. PERFORM get_date
USING gs_tdevc-changed_on CHANGING ls_attributes-date_last_changed.
ls_attributes-application_component = gs_tdevc-component. CLEAR ls_ti.
ls_ti-name = txt_main_package. ls_ti-flag = abap_true. IF
gs_tdevc-mainpack = 'X'. ls_ti-value = abap_true. ENDIF. APPEND ls_ti
TO lt_package_properties. CLEAR ls_ti. ls_ti-name =
txt_surrounding_package. ls_ti-input = abap_true. ls_ti-value =
gs_tdevc-parentcl. APPEND ls_ti TO lt_package_properties. ls_ti-name =
txt_allowed_object_types. ls_ti-input = abap_true. PERFORM
get_dom_value_text USING 'PACKTYPE' gs_tdevc-packtype CHANGING
ls_ti-value. APPEND ls_ti TO lt_package_properties. CLEAR ls_ti.
ls_ti-name = txt_package_not_extendable. ls_ti-flag = abap_true.
ls_ti-value = gs_tdevc-restricted. APPEND ls_ti TO
lt_package_properties. ASSIGN COMPONENT 'SRV_CHECK' OF STRUCTURE
gs_tdevc TO <l_srv_check>. IF <l_srv_check> IS ASSIGNED. CLEAR ls_ti.
ls_ti-name = txt_package_check_as_server. ls_ti-flag = abap_true.
ls_ti-value = <l_srv_check>. APPEND ls_ti TO lt_package_properties.
UNASSIGN <l_srv_check>. ENDIF. ASSIGN COMPONENT 'CLI_CHECK' OF
STRUCTURE gs_tdevc TO <l_cli_check>. IF <l_cli_check> IS ASSIGNED.
CLEAR ls_ti. ls_ti-name = txt_package_check_as_client. ls_ti-flag =
abap_true. ls_ti-value = <l_cli_check>. APPEND ls_ti TO
lt_package_properties. UNASSIGN <l_cli_check>. ENDIF. CLEAR ls_ti.
ls_ti-name = txt_transport_layer. ls_ti-input = abap_true. ls_ti-value
= gs_tdevc-pdevclass. APPEND ls_ti TO lt_transport_attributes. CLEAR
ls_ti. ls_ti-name = txt_software_component. ls_ti-input = abap_true.
ls_ti-value_double_length = abap_true. ls_ti-value = gs_tdevc-dlvunit.
APPEND ls_ti TO lt_transport_attributes. CLEAR ls_ti. ls_ti-name =
txt_changes_are_recorded. ls_ti-flag = abap_true. ls_ti-value =
gs_tdevc-korrflag. APPEND ls_ti TO lt_transport_attributes. CALL METHOD
lo_package->get_origin_system IMPORTING e_origin_system = l_pack_system
EXCEPTIONS OTHERS = 1. CALL METHOD lo_package->get_interfaces IMPORTING
e_package_interfaces = lt_ref_interface EXCEPTIONS OTHERS = 1. LOOP AT
lt_ref_interface INTO ls_ref_interface. UNASSIGN <l_deleted_in_memory>.
ASSIGN COMPONENT 'DELETED_IN_MEMORY' OF STRUCTURE ls_ref_interface TO
<l_deleted_in_memory>. IF <l_deleted_in_memory> IS ASSIGNED AND
<l_deleted_in_memory> = abap_true. CONTINUE. ENDIF. CLEAR ls_interface.
ls_interface-intf_name = ls_ref_interface->interface_name.
ls_interface-descript = ls_ref_interface->short_text. CALL METHOD
ls_ref_interface->get_origin_system IMPORTING e_origin_system =
l_intf_system EXCEPTIONS OTHERS = 1. IF l_pack_system <> l_intf_system.
ls_interface-forsys = txt_foreign_source_system. ENDIF. APPEND
ls_interface TO lt_interface. ENDLOOP. CALL METHOD
lo_package->get_permissions_to_use IMPORTING e_permissions =
lt_ref_perm EXCEPTIONS OTHERS = 1. LOOP AT lt_ref_perm INTO
ls_ref_perm. UNASSIGN <l_deleted_in_memory>. ASSIGN COMPONENT
'DELETED_IN_MEMORY' OF STRUCTURE ls_ref_perm TO <l_deleted_in_memory>.
IF <l_deleted_in_memory> IS ASSIGNED AND <l_deleted_in_memory> =
abap_true. CONTINUE. ENDIF. CLEAR ls_perm. ls_perm-pack_name =
ls_ref_perm->publisher_package_name. ls_perm-intf_name =
ls_ref_perm->package_interface_name. PERFORM get_dom_value_text USING
'ERRSEVRTY' ls_ref_perm->error_severity CHANGING ls_perm-err_sever.
APPEND ls_perm TO lt_perm. ENDLOOP. CALL METHOD
lo_package->get_sub_packages IMPORTING e_sub_packages = lt_ref_sub
EXCEPTIONS OTHERS = 1. LOOP AT lt_ref_sub INTO ls_ref_sub. UNASSIGN
<l_deleted_in_memory>. ASSIGN COMPONENT 'DELETED_IN_MEMORY' OF
STRUCTURE ls_ref_sub TO <l_deleted_in_memory>. IF <l_deleted_in_memory>
IS ASSIGNED AND <l_deleted_in_memory> = abap_true. CONTINUE. ENDIF.
CLEAR ls_sub. ls_sub-devclass = ls_ref_sub->package_name. ls_sub-ctext
= ls_ref_sub->short_text. APPEND ls_sub TO lt_sub. ENDLOOP. PERFORM
get_tabstrip USING 'PACK_DEVC' space CHANGING lt_tabstrip. LOOP AT
lt_tabstrip ASSIGNING <ls_tabstrip>. <ls_tabstrip>-empty = abap_false.
CASE <ls_tabstrip>-id. WHEN 'INTERFACE'. IF lt_interface IS INITIAL.
<ls_tabstrip>-empty = abap_true. ENDIF. WHEN 'PERM'. IF lt_perm IS
INITIAL. <ls_tabstrip>-empty = abap_true. ENDIF. WHEN 'SUB'. IF lt_sub
IS INITIAL. <ls_tabstrip>-empty = abap_true. ENDIF. ENDCASE. ENDLOOP.
PERFORM html_main_header USING tpt_pack_devc txt_package
gs_tdevc-devclass txt_saved space space space lt_tabstrip gt_link
CHANGING lt_html. PERFORM html_add_attributes_4 USING ls_attributes
txt_package_properties lt_package_properties txt_transport_attributes
lt_transport_attributes 'ATTRIBUTES' abap_true CHANGING lt_html. IF NOT
lt_interface IS INITIAL OR g_empty_tab = gc_empty_tab_display. PERFORM
html_add_table USING 'DEVC_INTF' lt_interface lt_interface 'INTERFACE'
abap_false CHANGING lt_html. ENDIF. IF NOT lt_perm IS INITIAL OR
g_empty_tab = gc_empty_tab_display. PERFORM html_add_table USING
'DEVC_PERM' lt_perm lt_perm 'PERM' abap_false CHANGING lt_html. ENDIF.
IF NOT lt_sub IS INITIAL OR g_empty_tab = gc_empty_tab_display. PERFORM
html_add_table USING 'DEVC_SUB' lt_sub lt_sub 'SUB' abap_false CHANGING
lt_html. ENDIF. PERFORM html_main_footer USING lt_html. PERFORM
download USING lt_html 'R3TR' 'DEVC' gs_tdevc-devclass gc_extension_htm
abap_false. ENDFORM. FORM prog. PERFORM prog_r3tr_incl. PERFORM
prog_r3tr_prog. ENDFORM. FORM prog_r3tr_incl. DATA: lt_tabstrip TYPE
it_tabstrip, lt_html TYPE it_string, lt_ti TYPE it_textinput, lt_ti_box
TYPE it_textinput, ls_ti TYPE st_textinput, l_masterlang TYPE
masterlang, l_filename TYPE string, ls_trdir TYPE trdir, l_laiso TYPE
laiso, l_sptxt TYPE sptxt, l_name TYPE ad_namtext, l_text TYPE as4text,
l_atext TYPE appltxt. FIELD-SYMBOLS: <ls_ztadir> TYPE st_ztadir.
PERFORM get_tabstrip USING 'PROG_R3TR_INCL' space CHANGING lt_tabstrip.
LOOP AT gt_ztadir ASSIGNING <ls_ztadir> WHERE pgmid = 'R3TR' AND object
= 'PROG' AND subc = 'I' AND downloaded = abap_false. CLEAR: ls_trdir,
l_atext. REFRESH: lt_html, lt_ti, lt_ti_box. SELECT SINGLE * FROM trdir
INTO ls_trdir WHERE name = <ls_ztadir>-progname. IF sy-subrc <> 0.
<ls_ztadir>-subrc = sy-subrc. CONTINUE. ENDIF. CLEAR ls_ti. ls_ti-name
= txt_title. ls_ti-value = <ls_ztadir>-descript.
ls_ti-value_double_length = abap_true. ls_ti-input = abap_true. APPEND
ls_ti TO lt_ti. CLEAR ls_ti. ls_ti-name = txt_original_language.
l_masterlang = ls_trdir-rload. IF l_masterlang IS INITIAL. l_masterlang
= <ls_ztadir>-masterlang. ENDIF. PERFORM get_spras USING l_masterlang
CHANGING l_laiso l_sptxt. ls_ti-value = l_laiso. ls_ti-description =
l_sptxt. ls_ti-input = abap_true. APPEND ls_ti TO lt_ti. CLEAR ls_ti.
ls_ti-space = abap_true. APPEND ls_ti TO lt_ti. CLEAR ls_ti. ls_ti-name
= txt_created. PERFORM get_date USING ls_trdir-cdat CHANGING
ls_ti-value. ls_ti-value_ext = ls_trdir-cnam. PERFORM get_user USING
ls_trdir-cnam CHANGING l_name. ls_ti-value_ext_text = l_name.
ls_ti-has_value_ext = abap_true. ls_ti-input = abap_true. APPEND ls_ti
TO lt_ti. CLEAR ls_ti. ls_ti-name = txt_last_changed_by___1. PERFORM
get_date USING ls_trdir-udat CHANGING ls_ti-value. ls_ti-value_ext =
ls_trdir-unam. PERFORM get_user USING ls_trdir-unam CHANGING l_name.
ls_ti-value_ext_text = l_name. ls_ti-input = abap_true.
ls_ti-has_value_ext = abap_true. APPEND ls_ti TO lt_ti. CLEAR ls_ti.
ls_ti-name = txt_status. ls_ti-value = txt_active___1. APPEND ls_ti TO
lt_ti. CLEAR ls_ti. ls_ti-name = txt_type___1. PERFORM
get_dom_value_text USING 'SUBC' ls_trdir-subc CHANGING ls_ti-value.
ls_ti-input = abap_true. APPEND ls_ti TO lt_ti_box. CLEAR ls_ti.
ls_ti-name = txt_status. PERFORM get_dom_value_text USING 'RSTAT'
ls_trdir-rstat CHANGING ls_ti-value. ls_ti-input = abap_true. APPEND
ls_ti TO lt_ti_box. CLEAR ls_ti. ls_ti-name = txt_application. SELECT
SINGLE atext FROM taplt INTO l_atext WHERE appl = ls_trdir-appl AND
sprsl = sy-langu. ls_ti-value = l_atext. ls_ti-input = abap_true.
APPEND ls_ti TO lt_ti_box. CLEAR ls_ti. ls_ti-name =
txt_authorization_group. ls_ti-value = ls_trdir-secu. ls_ti-input =
abap_true. APPEND ls_ti TO lt_ti_box. CLEAR ls_ti. ls_ti-name =
txt_package. ls_ti-value = <ls_ztadir>-devclass. PERFORM get_devclass
USING <ls_ztadir>-devclass CHANGING l_text. ls_ti-description = l_text.
ls_ti-input = abap_true. APPEND ls_ti TO lt_ti_box. CLEAR ls_ti.
ls_ti-space = abap_true. APPEND ls_ti TO lt_ti_box. CLEAR ls_ti.
ls_ti-name = txt_editor_lock. ls_ti-value = ls_trdir-edtx. ls_ti-flag =
abap_true. APPEND ls_ti TO lt_ti_box. PERFORM html_main_header USING
tpt_fugr_incl space <ls_ztadir>-progname txt_active___1 space space
'makeDivSize(''SOURCECODE'');' lt_tabstrip gt_link CHANGING lt_html.
PERFORM html_add_textinput_subbox USING lt_ti txt_attributes___2
lt_ti_box 'ATTRIBUTES' abap_false CHANGING lt_html. PERFORM
add_report_sourcecode USING <ls_ztadir>-progname <ls_ztadir>-progname
gc_extension_txt abap_false <ls_ztadir> 'SOURCECODE' abap_true CHANGING
lt_html. PERFORM html_main_footer USING lt_html. PERFORM download USING
lt_html <ls_ztadir>-pgmid <ls_ztadir>-object <ls_ztadir>-progname
gc_extension_htm abap_true. <ls_ztadir>-downloaded = abap_true.
ENDLOOP. ENDFORM. FORM prog_r3tr_prog. DATA: lt_tabstrip TYPE
it_tabstrip, lt_html TYPE it_string, ls_prog_inf TYPE rpy_prog,
lt_include_tab TYPE STANDARD TABLE OF rpy_repo, lt_source_extended TYPE
it_abaptxt255, ls_source_extended TYPE st_abaptxt255, lt_textelements
TYPE STANDARD TABLE OF textpool, ls_textelements_addons TYPE
st_textpool_addons, lt_text_symbols_addons TYPE it_textpool_addons,
lt_selection_texts TYPE STANDARD TABLE OF textpool,
lt_selection_texts_addons TYPE it_textpool_addons, lt_text_symbols TYPE
STANDARD TABLE OF textpool, lt_list_titles TYPE it_textinput,
lt_row_titles TYPE it_textinput, lt_doc TYPE it_string, lt_ti TYPE
it_textinput, lt_ti_box TYPE it_textinput, ls_ti TYPE st_textinput,
l_masterlang TYPE masterlang, l_filename TYPE string, lt_varid TYPE
STANDARD TABLE OF varid, lt_params TYPE STANDARD TABLE OF vanz,
lt_params_nonv TYPE STANDARD TABLE OF vanz, lt_selop TYPE STANDARD
TABLE OF vanz, lt_selop_nonv TYPE STANDARD TABLE OF vanz, lt_objects
TYPE STANDARD TABLE OF vanz, lt_valutab TYPE STANDARD TABLE OF
rsparams, lt_variant TYPE it_variant, ls_variant TYPE st_variant,
ls_trdir TYPE trdir, l_laiso TYPE laiso, l_sptxt TYPE sptxt, l_name
TYPE ad_namtext, l_text TYPE as4text, l_atext TYPE appltxt, l_text01
TYPE grouptext, l_fu_param(30) TYPE c, lt_source TYPE abapsource OCCURS
0. FIELD-SYMBOLS: <ls_tabstrip> TYPE st_tabstrip, <ls_ztadir> TYPE
st_ztadir, <ls_textelements> TYPE textpool, <ls_varid> TYPE varid,
<ls_vanz> TYPE vanz, <ls_valutab> TYPE rsparams, <ls_source> LIKE LINE
OF lt_source. PERFORM get_tabstrip USING 'PROG_R3TR_PROG' space
CHANGING lt_tabstrip. SELECT SINGLE parameter FROM fupararef INTO
l_fu_param WHERE funcname = 'RPY_PROGRAM_READ' AND r3state = 'A' AND
parameter = 'SOURCE_EXTENDED' AND paramtype = 'T'. LOOP AT gt_ztadir
ASSIGNING <ls_ztadir> WHERE pgmid = 'R3TR' AND object = 'PROG' AND subc
= '1' AND downloaded = abap_false. <ls_ztadir>-downloaded = abap_true.
CLEAR: ls_prog_inf, ls_trdir, ls_variant, l_atext. REFRESH: lt_html,
lt_include_tab, lt_list_titles, lt_objects, lt_params, lt_params_nonv,
lt_row_titles, lt_selection_texts, lt_selop, lt_selop_nonv, lt_source,
lt_source_extended, lt_text_symbols, lt_text_symbols_addons,
lt_textelements, lt_ti, lt_ti_box, lt_valutab, lt_variant, lt_varid. IF
l_fu_param = 'SOURCE_EXTENDED'. CALL FUNCTION 'RPY_PROGRAM_READ'
EXPORTING language = sy-langu program_name = <ls_ztadir>-obj_name
with_includelist = abap_true only_source = abap_false only_texts =
abap_false read_latest_version = abap_true with_lowercase = abap_true
IMPORTING prog_inf = ls_prog_inf TABLES include_tab = lt_include_tab
source_extended = lt_source_extended textelements = lt_textelements
EXCEPTIONS OTHERS = 1. IF sy-subrc <> 0. <ls_ztadir>-subrc = sy-subrc.
CONTINUE. ENDIF. ELSE. CALL FUNCTION 'RPY_PROGRAM_READ' EXPORTING
language = sy-langu program_name = <ls_ztadir>-obj_name
with_includelist = abap_true only_source = abap_false only_texts =
abap_false read_latest_version = abap_true with_lowercase = abap_true
IMPORTING prog_inf = ls_prog_inf TABLES include_tab = lt_include_tab
SOURCE = lt_source textelements = lt_textelements EXCEPTIONS OTHERS =
1. IF sy-subrc <> 0. <ls_ztadir>-subrc = sy-subrc. CONTINUE. ENDIF.
LOOP AT lt_source ASSIGNING <ls_source>. ls_source_extended =
<ls_source>-line. APPEND ls_source_extended TO lt_source_extended.
ENDLOOP. ENDIF. SELECT SINGLE * FROM trdir INTO ls_trdir WHERE name =
<ls_ztadir>-progname. PERFORM get_docu USING 'RE' <ls_ztadir>-obj_name
'E' CHANGING lt_doc. LOOP AT lt_textelements ASSIGNING
<ls_textelements>. CASE <ls_textelements>-id. WHEN 'H'. CLEAR ls_ti.
ls_ti-value = <ls_textelements>-entry. ls_ti-input = abap_true.
ls_ti-no_name = abap_true. APPEND ls_ti TO lt_row_titles. WHEN 'I'.
CLEAR ls_textelements_addons. APPEND <ls_textelements> TO
lt_text_symbols. ls_textelements_addons-strlen = strlen(
<ls_textelements>-entry ). APPEND ls_textelements_addons TO
lt_text_symbols_addons. WHEN 'S'. CLEAR ls_textelements_addons. IF
<ls_textelements>-entry+0(1) = 'D'. <ls_textelements>-entry+0(1) =
space. ls_textelements_addons-dict_ref = abap_true. ENDIF. CONDENSE
<ls_textelements>-entry. APPEND ls_textelements_addons TO
lt_selection_texts_addons. APPEND <ls_textelements> TO
lt_selection_texts. WHEN 'T'. CLEAR ls_ti. ls_ti-value =
<ls_textelements>-entry. ls_ti-input = abap_true. ls_ti-no_name =
abap_true. APPEND ls_ti TO lt_list_titles. ENDCASE. ENDLOOP. CLEAR
ls_ti. ls_ti-name = txt_title. ls_ti-value = <ls_ztadir>-descript.
ls_ti-value_double_length = abap_true. ls_ti-input = abap_true. APPEND
ls_ti TO lt_ti. CLEAR ls_ti. ls_ti-name = txt_original_language.
l_masterlang = ls_prog_inf-masterlang. IF l_masterlang IS INITIAL.
l_masterlang = <ls_ztadir>-masterlang. ENDIF. PERFORM get_spras USING
l_masterlang CHANGING l_laiso l_sptxt. ls_ti-value = l_laiso.
ls_ti-description = l_sptxt. ls_ti-input = abap_true. APPEND ls_ti TO
lt_ti. CLEAR ls_ti. ls_ti-space = abap_true. APPEND ls_ti TO lt_ti.
CLEAR ls_ti. ls_ti-name = txt_created. PERFORM get_date USING
ls_prog_inf-creat_date CHANGING ls_ti-value. ls_ti-value_ext =
ls_prog_inf-creat_user. PERFORM get_user USING ls_prog_inf-creat_user
CHANGING l_name. ls_ti-value_ext_text = l_name. ls_ti-has_value_ext =
abap_true. ls_ti-input = abap_true. APPEND ls_ti TO lt_ti. CLEAR ls_ti.
ls_ti-name = txt_last_changed_by___1. PERFORM get_date USING
ls_prog_inf-mod_date CHANGING ls_ti-value. ls_ti-value_ext =
ls_prog_inf-mod_user. PERFORM get_user USING ls_prog_inf-mod_user
CHANGING l_name. ls_ti-value_ext_text = l_name. ls_ti-input =
abap_true. ls_ti-has_value_ext = abap_true. APPEND ls_ti TO lt_ti.
CLEAR ls_ti. ls_ti-name = txt_status. ls_ti-value = txt_active___1.
APPEND ls_ti TO lt_ti. CLEAR ls_ti. ls_ti-name = txt_type___1. PERFORM
get_dom_value_text USING 'SUBC' ls_prog_inf-prog_type CHANGING
ls_ti-value. ls_ti-input = abap_true. APPEND ls_ti TO lt_ti_box. CLEAR
ls_ti. ls_ti-name = txt_status. PERFORM get_dom_value_text USING
'RSTAT' ls_prog_inf-status CHANGING ls_ti-value. ls_ti-input =
abap_true. APPEND ls_ti TO lt_ti_box. CLEAR ls_ti. ls_ti-name =
txt_application. SELECT SINGLE atext FROM taplt INTO l_atext WHERE appl
= ls_prog_inf-appl AND sprsl = sy-langu. ls_ti-value = l_atext.
ls_ti-input = abap_true. APPEND ls_ti TO lt_ti_box. CLEAR ls_ti. CLEAR
l_text01. ls_ti-name = txt_authorization_group. ls_ti-value =
ls_prog_inf-auth_group. SELECT SINGLE text01 FROM tpgpt INTO l_text01
WHERE p_group = ls_prog_inf-auth_group AND langu = sy-langu.
ls_ti-description = l_text01. ls_ti-input = abap_true. APPEND ls_ti TO
lt_ti_box. CLEAR ls_ti. ls_ti-name = txt_package. ls_ti-value =
<ls_ztadir>-devclass. PERFORM get_devclass USING <ls_ztadir>-devclass
CHANGING l_text. ls_ti-description = l_text. ls_ti-input = abap_true.
APPEND ls_ti TO lt_ti_box. CLEAR ls_ti. ls_ti-name =
txt_logical_database. ls_ti-value = ls_prog_inf-dbname. ls_ti-input =
abap_true. APPEND ls_ti TO lt_ti_box. CLEAR ls_ti. ls_ti-name =
txt_selection_screen_version. ls_ti-value = ls_prog_inf-selscreen.
ls_ti-input = abap_true. APPEND ls_ti TO lt_ti_box. CLEAR ls_ti.
ls_ti-name = txt_editor_lock. ls_ti-value = ls_trdir-edtx. ls_ti-flag =
abap_true. ls_ti-flag_col = 1. APPEND ls_ti TO lt_ti_box. CLEAR ls_ti.
ls_ti-name = txt_fixed_point_arithmetic. ls_ti-value = ls_trdir-fixpt.
ls_ti-flag = abap_true. ls_ti-flag_col = 2. APPEND ls_ti TO lt_ti_box.
CLEAR ls_ti. ls_ti-name = txtt_unicode_checks_active. ls_ti-value =
ls_trdir-uccheck. ls_ti-flag = abap_true. ls_ti-flag_col = 1. APPEND
ls_ti TO lt_ti_box. CLEAR ls_ti. ls_ti-name = txt_start_using_variant.
ls_ti-value = ls_trdir-sset. ls_ti-flag = abap_true. ls_ti-flag_col =
2. APPEND ls_ti TO lt_ti_box. IF g_add_report_variants = abap_true.
SELECT * FROM varid INTO TABLE lt_varid WHERE report =
<ls_ztadir>-obj_name. LOOP AT lt_varid ASSIGNING <ls_varid>. READ TABLE
gt_varid_broken TRANSPORTING NO FIELDS WITH KEY report =
<ls_varid>-report vari = <ls_varid>-variant. IF sy-subrc = 0. CONTINUE.
ENDIF. CALL FUNCTION 'RS_VARIANT_CONTENTS' EXPORTING report =
<ls_varid>-report variant = <ls_varid>-variant TABLES l_params =
lt_params l_params_nonv = lt_params_nonv l_selop = lt_selop
l_selop_nonv = lt_selop_nonv valutab = lt_valutab OBJECTS = lt_objects
EXCEPTIONS OTHERS = 1. IF sy-subrc <> 0. CONTINUE. ENDIF. LOOP AT
lt_valutab ASSIGNING <ls_valutab>. IF sy-tabix > 100.   EXIT. ENDIF.
CLEAR ls_variant. ls_variant-program = <ls_varid>-report.
ls_variant-variant = <ls_varid>-variant. ls_variant-selname =
<ls_valutab>-selname. PERFORM get_gui_kind USING <ls_valutab>-kind
CHANGING ls_variant-kind. PERFORM get_gui_sign USING <ls_valutab>-sign
CHANGING ls_variant-sign. PERFORM get_gui_operator USING
<ls_valutab>-option CHANGING ls_variant-option. ls_variant-low =
<ls_valutab>-low. ls_variant-high = <ls_valutab>-high. READ TABLE
lt_params ASSIGNING <ls_vanz> WITH KEY name = <ls_valutab>-selname. IF
sy-subrc <> 0 OR <ls_vanz>-text IS INITIAL. READ TABLE lt_params_nonv
ASSIGNING <ls_vanz> WITH KEY name = <ls_valutab>-selname. IF sy-subrc
<> 0 OR <ls_vanz>-text IS INITIAL. READ TABLE lt_selop ASSIGNING
<ls_vanz> WITH KEY name = <ls_valutab>-selname. IF sy-subrc <> 0 OR
<ls_vanz>-text IS INITIAL. READ TABLE lt_selop_nonv ASSIGNING <ls_vanz>
WITH KEY name = <ls_valutab>-selname. IF sy-subrc <> 0 OR
<ls_vanz>-text IS INITIAL. READ TABLE lt_objects ASSIGNING <ls_vanz>
WITH KEY name = <ls_valutab>-selname. ENDIF. ENDIF. ENDIF. ENDIF. IF
sy-subrc = 0. ls_variant-text = <ls_vanz>-text. ENDIF. APPEND
ls_variant TO lt_variant. ENDLOOP. ENDLOOP. ENDIF. LOOP AT lt_tabstrip
ASSIGNING <ls_tabstrip>. <ls_tabstrip>-empty = abap_false. CASE
<ls_tabstrip>-id. WHEN 'LISTTITLE'. IF lt_list_titles IS INITIAL AND
lt_row_titles IS INITIAL. <ls_tabstrip>-empty = abap_true. ENDIF. WHEN
'SELECTIONTEXTS'. IF lt_selection_texts IS INITIAL. <ls_tabstrip>-empty
= abap_true. ENDIF. WHEN 'TEXTSYMBOLS'. IF lt_text_symbols IS INITIAL.
<ls_tabstrip>-empty = abap_true. ENDIF. WHEN 'DOC'. IF lt_doc IS
INITIAL. <ls_tabstrip>-empty = abap_true. ENDIF. WHEN 'VARIANT'. IF
lt_variant IS INITIAL. <ls_tabstrip>-empty = abap_true. IF
g_add_report_variants = abap_false. <ls_tabstrip>-hidden = abap_true.
ENDIF. ENDIF. ENDCASE. ENDLOOP. PERFORM html_main_header USING
tpt_prog_repo space <ls_ztadir>-obj_name txt_active___1 space space
'makeDivSize(''SOURCECODE'');makeDivSize(''DOC'');' lt_tabstrip gt_link
CHANGING lt_html. IF NOT lt_list_titles IS INITIAL OR NOT lt_row_titles
IS INITIAL OR g_empty_tab = gc_empty_tab_display. PERFORM
html_add_box_textinput2ver USING txt_list_header lt_list_titles
txt_column_heading lt_row_titles 'LISTTITLE' abap_false CHANGING
lt_html. ENDIF. IF NOT lt_selection_texts IS INITIAL OR g_empty_tab =
gc_empty_tab_display. PERFORM html_add_table USING 'PROG_SELEC'
lt_selection_texts lt_selection_texts_addons 'SELECTIONTEXTS'
abap_false CHANGING lt_html. ENDIF. IF NOT lt_text_symbols IS INITIAL
OR g_empty_tab = gc_empty_tab_display. PERFORM html_add_table USING
'PROG_SYMBO' lt_text_symbols lt_text_symbols_addons 'TEXTSYMBOLS'
abap_false CHANGING lt_html. ENDIF. IF g_add_report_variants =
abap_true AND ( NOT lt_variant IS INITIAL OR g_empty_tab =
gc_empty_tab_display ). PERFORM html_add_table USING 'PROG_VARIA'
lt_variant lt_variant 'VARIANT' abap_false CHANGING lt_html. ENDIF. IF
NOT lt_doc IS INITIAL OR g_empty_tab = gc_empty_tab_display. PERFORM
html_add_doc USING lt_doc 'DOC' abap_false CHANGING lt_html. ENDIF.
PERFORM html_add_textinput_subbox USING lt_ti txt_attributes___2
lt_ti_box 'ATTRIBUTES' abap_false CHANGING lt_html. PERFORM
add_report_sourcecode USING <ls_ztadir>-obj_name <ls_ztadir>-obj_name
gc_extension_txt abap_true <ls_ztadir> 'SOURCECODE' abap_true CHANGING
lt_html. PERFORM html_main_footer USING lt_html. PERFORM download USING
lt_html <ls_ztadir>-pgmid <ls_ztadir>-object <ls_ztadir>-obj_name
gc_extension_htm abap_true. ENDLOOP. ENDFORM. FORM seo. PERFORM
seo_r3tr_intf. PERFORM seo_r3tr_clas. PERFORM seo_r3tr_clas_methods.
ENDFORM. FORM seo_clas_get_attribs USING value(i_clsname)
it_super_class TYPE it_seo_super_class it_ref_interface TYPE
it_ref_seointerface CHANGING ct_ref_attrib TYPE it_ref_seoattrib.
REFRESH ct_ref_attrib. PERFORM seo_clas_get_attribs_from_intf USING
i_clsname it_super_class it_ref_interface CHANGING ct_ref_attrib.
PERFORM seo_clas_get_attribs_from_clas USING i_clsname it_super_class
CHANGING ct_ref_attrib. ENDFORM. FORM seo_clas_get_aliases USING
value(i_clsname) it_ref_attrib TYPE it_ref_seoattrib it_ref_method TYPE
it_ref_seomethod it_ref_event TYPE it_ref_seoevent it_ref_type TYPE
it_ref_seotype CHANGING ct_ref_alias TYPE it_ref_seoalias. DATA:
ls_ref_alias TYPE st_ref_seoalias, lt_ref_alias_tmp TYPE
it_ref_seoalias, ls_clskey TYPE seoclskey, lt_seoalias TYPE
seo_aliases, l_clsname TYPE seoclsname, l_cmpname TYPE seocmpname.
FIELD-SYMBOLS: <ls_ref_attrib> TYPE st_ref_seoattrib, <ls_ref_method>
TYPE st_ref_seomethod, <ls_ref_event> TYPE st_ref_seoevent,
<ls_ref_type> TYPE st_ref_seotype, <ls_ref_alias> TYPE st_ref_seoalias,
<ls_alias> TYPE seoaliases. REFRESH: ct_ref_alias. ls_ref_alias-type =
txt_attribute. LOOP AT it_ref_attrib ASSIGNING <ls_ref_attrib> WHERE
cpdname CP '*~*'. ls_ref_alias-cpdname = <ls_ref_attrib>-cpdname.
ls_ref_alias-owner = <ls_ref_attrib>-owner. APPEND ls_ref_alias TO
lt_ref_alias_tmp. ENDLOOP. ls_ref_alias-type = txt_method. LOOP AT
it_ref_method ASSIGNING <ls_ref_method> WHERE cpdname CP '*~*'.
ls_ref_alias-cpdname = <ls_ref_method>-cpdname. ls_ref_alias-owner =
<ls_ref_method>-owner. APPEND ls_ref_alias TO lt_ref_alias_tmp.
ENDLOOP. ls_ref_alias-type = txt_event. LOOP AT it_ref_event ASSIGNING
<ls_ref_event> WHERE cpdname CP '*~*'. ls_ref_alias-cpdname =
<ls_ref_event>-cpdname. ls_ref_alias-owner = <ls_ref_event>-owner.
APPEND ls_ref_alias TO lt_ref_alias_tmp. ENDLOOP. ls_ref_alias-type =
txt_type___1. LOOP AT it_ref_type ASSIGNING <ls_ref_type> WHERE cpdname
CP '*~*'. ls_ref_alias-cpdname = <ls_ref_type>-cpdname.
ls_ref_alias-owner = <ls_ref_type>-owner. APPEND ls_ref_alias TO
lt_ref_alias_tmp. ENDLOOP. ls_clskey-clsname = i_clsname. CALL FUNCTION
'SEO_ALIASES_GET' EXPORTING cifkey = ls_clskey CHANGING aliases =
lt_seoalias. l_clsname = i_clsname. LOOP AT lt_ref_alias_tmp ASSIGNING
<ls_ref_alias> WHERE cpdname CP '*~*' AND owner = i_clsname. SPLIT
<ls_ref_alias>-cpdname AT '~' INTO l_clsname l_cmpname. READ TABLE
lt_seoalias ASSIGNING <ls_alias> WITH KEY cmpname = l_cmpname. IF
sy-subrc = 0. <ls_ref_alias>-refcmpname = <ls_alias>-cmpname. PERFORM
get_dom_value_text USING 'SEOEXPOSE' <ls_alias>-exposure CHANGING
<ls_ref_alias>-exposure. IF NOT <ls_ref_alias>-refcmpname IS INITIAL
AND <ls_alias>-exposure > 0. APPEND <ls_ref_alias> TO ct_ref_alias.
ENDIF. ELSE. APPEND <ls_ref_alias> TO ct_ref_alias. ENDIF. ENDLOOP.
SORT ct_ref_alias BY cpdname. ENDFORM. FORM
seo_clas_get_attribs_from_clas USING value(i_clsname) it_super_class
TYPE it_seo_super_class CHANGING ct_ref_attrib TYPE it_ref_seoattrib.
DATA: lt_attrib TYPE STANDARD TABLE OF vseoattrib, l_cpdname TYPE
seocpdname, ls_ref_attrib TYPE st_ref_seoattrib, l_str TYPE string,
l_id TYPE string. FIELD-SYMBOLS: <ls_super_class> TYPE
st_seo_super_class, <ls_attrib> TYPE vseoattrib, <ls_ref_attrib> TYPE
st_ref_seoattrib. LOOP AT it_super_class ASSIGNING <ls_super_class>.
SELECT * FROM vseoattrib INTO TABLE lt_attrib WHERE clsname =
<ls_super_class>-clsname AND alias = abap_false AND langu = sy-langu
AND version = '1' ORDER BY editorder. LOOP AT lt_attrib ASSIGNING
<ls_attrib>. l_cpdname = <ls_attrib>-cmpname. READ TABLE ct_ref_attrib
ASSIGNING <ls_ref_attrib> WITH KEY cpdname = l_cpdname. IF sy-subrc =
0. IF <ls_super_class>-clsname = i_clsname. <ls_ref_attrib>-inherited =
abap_false. ENDIF. ELSEIF <ls_super_class>-clsname = i_clsname OR
<ls_attrib>-exposure > 0. ls_ref_attrib-cpdname = l_cpdname. IF
<ls_super_class>-clsname = i_clsname. ls_ref_attrib-inherited =
abap_false. ELSE. ls_ref_attrib-inherited = abap_true. ENDIF. PERFORM
get_dom_value_text USING 'SEOEXPOSE' <ls_attrib>-exposure CHANGING
ls_ref_attrib-exposure. PERFORM seo_get_check_model USING <ls_attrib>
CHANGING ls_ref_attrib. PERFORM get_dom_value_text USING 'SEOATTDECL'
<ls_attrib>-attdecltyp CHANGING ls_ref_attrib-decltype.
ls_ref_attrib-attrdonly = <ls_attrib>-attrdonly. PERFORM
get_dom_value_text USING 'SEOTYPTYPE' <ls_attrib>-typtype CHANGING
ls_ref_attrib-typtype. ls_ref_attrib-type = <ls_attrib>-type. l_str =
<ls_attrib>-exposure. CONDENSE l_str. CONCATENATE 'COMPONENTS_' l_str
'_' INTO l_str. PERFORM get_id USING l_str <ls_super_class>-clsname
CHANGING l_id. CONCATENATE 'switchContent(''' l_id ''')' INTO
ls_ref_attrib-onclick. ls_ref_attrib-typelink = '->'.
ls_ref_attrib-descript = <ls_attrib>-descript. ls_ref_attrib-attvalue =
<ls_attrib>-attvalue. ls_ref_attrib-owner = <ls_super_class>-clsname.
APPEND ls_ref_attrib TO ct_ref_attrib. ENDIF. ENDLOOP. ENDLOOP.
ENDFORM. FORM seo_clas_get_attribs_from_intf USING value(i_clsname)
it_super_class TYPE it_seo_super_class it_ref_interface TYPE
it_ref_seointerface CHANGING ct_ref_attrib TYPE it_ref_seoattrib. DATA:
lt_attrib TYPE STANDARD TABLE OF vseoattrib, l_cpdname TYPE seocpdname,
ls_ref_attrib TYPE st_ref_seoattrib, l_str TYPE string, l_id TYPE
string. FIELD-SYMBOLS: <ls_super_class> TYPE st_seo_super_class,
<ls_ref_interface> TYPE st_ref_seointerface, <ls_attrib> TYPE
vseoattrib, <ls_ref_attrib> TYPE st_ref_seoattrib. LOOP AT
it_super_class ASSIGNING <ls_super_class>. LOOP AT it_ref_interface
ASSIGNING <ls_ref_interface> WHERE owner = <ls_super_class>-clsname.
SELECT * FROM vseoattrib INTO TABLE lt_attrib WHERE clsname =
<ls_ref_interface>-refclsname AND alias = abap_false AND langu =
sy-langu AND version = '1' ORDER BY editorder. LOOP AT lt_attrib
ASSIGNING <ls_attrib>. CONCATENATE <ls_attrib>-clsname '~'
<ls_attrib>-cmpname INTO l_cpdname. READ TABLE ct_ref_attrib ASSIGNING
<ls_ref_attrib> WITH KEY cpdname = l_cpdname. IF sy-subrc <> 0 AND (
<ls_super_class>-clsname = i_clsname OR <ls_attrib>-exposure > 0 ).
ls_ref_attrib-cpdname = l_cpdname. IF <ls_super_class>-clsname =
i_clsname. ls_ref_attrib-inherited = abap_false. ELSE.
ls_ref_attrib-inherited = abap_true. ENDIF. PERFORM get_dom_value_text
USING 'SEOEXPOSE' <ls_attrib>-exposure CHANGING ls_ref_attrib-exposure.
PERFORM seo_get_check_model USING <ls_attrib> CHANGING ls_ref_attrib.
PERFORM get_dom_value_text USING 'SEOATTDECL' <ls_attrib>-attdecltyp
CHANGING ls_ref_attrib-decltype. ls_ref_attrib-attrdonly =
<ls_attrib>-attrdonly. PERFORM get_dom_value_text USING 'SEOTYPTYPE'
<ls_attrib>-typtype CHANGING ls_ref_attrib-typtype. ls_ref_attrib-type
= <ls_attrib>-type. l_str = <ls_attrib>-exposure. CONDENSE l_str.
CONCATENATE 'COMPONENTS_' l_str '_' INTO l_str. PERFORM get_id USING
l_str <ls_super_class>-clsname CHANGING l_id. CONCATENATE
'switchContent(''' l_id ''')' INTO ls_ref_attrib-onclick.
ls_ref_attrib-typelink = '->'. ls_ref_attrib-descript =
<ls_attrib>-descript. ls_ref_attrib-attvalue = <ls_attrib>-attvalue.
ls_ref_attrib-owner = <ls_super_class>-clsname. APPEND ls_ref_attrib TO
ct_ref_attrib. ENDIF. ENDLOOP. ENDLOOP. ENDLOOP. ENDFORM. FORM
seo_clas_get_events USING value(i_clsname) it_super_class TYPE
it_seo_super_class it_ref_interface TYPE it_ref_seointerface CHANGING
ct_ref_event TYPE it_ref_seoevent. REFRESH: ct_ref_event. PERFORM
seo_clas_get_events_from_intf USING i_clsname it_super_class
it_ref_interface CHANGING ct_ref_event. PERFORM
seo_clas_get_events_from_clas USING i_clsname it_super_class CHANGING
ct_ref_event. ENDFORM. FORM seo_clas_get_events_from_clas USING
value(i_clsname) it_super_class TYPE it_seo_super_class CHANGING
ct_ref_event TYPE it_ref_seoevent. DATA: lt_event TYPE STANDARD TABLE
OF vseoevent, ls_ref_event TYPE st_ref_seoevent, ls_cmpkey TYPE
seocmpkey. FIELD-SYMBOLS: <ls_super_class> TYPE st_seo_super_class,
<ls_event> TYPE vseoevent. LOOP AT it_super_class ASSIGNING
<ls_super_class>. SELECT * FROM vseoevent INTO TABLE lt_event WHERE
clsname = <ls_super_class>-clsname AND langu = sy-langu AND alias =
abap_false AND version = '1' ORDER BY editorder. LOOP AT lt_event
ASSIGNING <ls_event>. CLEAR ls_ref_event. ls_cmpkey-clsname =
<ls_super_class>-clsname. ls_cmpkey-cmpname = <ls_event>-cmpname. CALL
FUNCTION 'SEO_EVENT_GET' EXPORTING evtkey = ls_cmpkey version = 1
IMPORTING event = <ls_event> EXCEPTIONS OTHERS = 1. IF sy-subrc = 0 AND
<ls_event>-alias = abap_false. ls_ref_event-owner =
<ls_super_class>-clsname. IF <ls_super_class>-clsname <> i_clsname.
ls_ref_event-inherited = abap_true. ENDIF. ls_ref_event-cpdname =
<ls_event>-cmpname. PERFORM get_dom_value_text USING 'SEOEVTDECL'
<ls_event>-evtdecltyp CHANGING ls_ref_event-type. PERFORM
get_dom_value_text USING 'SEOEXPOSE' <ls_event>-exposure CHANGING
ls_ref_event-exposure. PERFORM seo_get_check_model USING <ls_event>
CHANGING ls_ref_event. ls_ref_event-descript = <ls_event>-descript.
APPEND ls_ref_event TO ct_ref_event. ENDIF. ENDLOOP. ENDLOOP. ENDFORM.
FORM seo_clas_get_events_from_intf USING value(i_clsname)
it_super_class TYPE it_seo_super_class it_ref_interface TYPE
it_ref_seointerface CHANGING ct_ref_event TYPE it_ref_seoevent. DATA:
lt_event TYPE STANDARD TABLE OF vseoevent, ls_ref_event TYPE
st_ref_seoevent, ls_cmpkey TYPE seocmpkey. FIELD-SYMBOLS:
<ls_super_class> TYPE st_seo_super_class, <ls_ref_interface> TYPE
st_ref_seointerface, <ls_event> TYPE vseoevent. LOOP AT it_super_class
ASSIGNING <ls_super_class>. LOOP AT it_ref_interface ASSIGNING
<ls_ref_interface> WHERE owner = <ls_super_class>-clsname. SELECT *
FROM vseoevent INTO TABLE lt_event WHERE clsname =
<ls_ref_interface>-refclsname AND langu = sy-langu AND alias =
abap_false AND version = '1' ORDER BY editorder. LOOP AT lt_event
ASSIGNING <ls_event>. CLEAR ls_ref_event. ls_cmpkey-clsname =
<ls_ref_interface>-refclsname. IF <ls_super_class>-clsname <>
i_clsname. ls_ref_event-inherited = abap_true. ENDIF. ls_cmpkey-cmpname
= <ls_event>-cmpname. CALL FUNCTION 'SEO_EVENT_GET' EXPORTING evtkey =
ls_cmpkey version = 1 IMPORTING event = <ls_event> EXCEPTIONS OTHERS =
1. IF sy-subrc = 0 AND <ls_event>-alias = abap_false.
ls_ref_event-owner = <ls_super_class>-clsname. CONCATENATE
<ls_ref_interface>-refclsname '~' <ls_event>-cmpname INTO
ls_ref_event-cpdname. PERFORM get_dom_value_text USING 'SEOEVTDECL'
<ls_event>-evtdecltyp CHANGING ls_ref_event-type. PERFORM
get_dom_value_text USING 'SEOEXPOSE' <ls_event>-exposure CHANGING
ls_ref_event-exposure. PERFORM seo_get_check_model USING <ls_event>
CHANGING ls_ref_event. ls_ref_event-descript = <ls_event>-descript.
APPEND ls_ref_event TO ct_ref_event. ENDIF. ENDLOOP. ENDLOOP. ENDLOOP.
ENDFORM. FORM seo_clas_get_friends USING value(i_clsname) CHANGING
ct_ref_friends TYPE it_ref_seofriends. DATA: lt_friends TYPE STANDARD
TABLE OF seofriends, ls_ref_friends TYPE st_ref_seofriends.
FIELD-SYMBOLS: <ls_friends> TYPE seofriends. REFRESH: ct_ref_friends.
SELECT * FROM seofriends INTO TABLE lt_friends WHERE clsname =
i_clsname AND version = '1' ORDER BY refclsname. LOOP AT lt_friends
ASSIGNING <ls_friends>. CLEAR ls_ref_friends. READ TABLE ct_ref_friends
TRANSPORTING NO FIELDS WITH KEY refclsname = <ls_friends>-refclsname.
IF sy-subrc <> 0. ls_ref_friends-refclsname = <ls_friends>-refclsname.
PERFORM seo_get_check_model USING <ls_friends> CHANGING ls_ref_friends.
SELECT SINGLE descript FROM seoclasstx INTO ls_ref_friends-descript
WHERE clsname = <ls_friends>-refclsname AND langu = sy-langu. APPEND
ls_ref_friends TO ct_ref_friends. ENDIF. ENDLOOP. ENDFORM. FORM
seo_clas_get_interfaces USING value(i_clsname) it_super_class TYPE
it_seo_super_class CHANGING ct_ref_interface TYPE it_ref_seointerface
ct_ref_interface_all TYPE it_ref_seointerface. DATA:
lt_ref_interface_tmp TYPE it_ref_seointerface, lt_ref_interface_all_tmp
TYPE it_ref_seointerface. FIELD-SYMBOLS: <ls_super_class> TYPE
st_seo_super_class, <ls_ref_interface> TYPE st_ref_seointerface.
REFRESH: ct_ref_interface, ct_ref_interface_all. LOOP AT it_super_class
ASSIGNING <ls_super_class>. REFRESH lt_ref_interface_tmp. PERFORM
seo_get_interfaces USING <ls_super_class>-clsname 0 CHANGING
lt_ref_interface_tmp lt_ref_interface_all_tmp. LOOP AT
lt_ref_interface_tmp ASSIGNING <ls_ref_interface>.
<ls_ref_interface>-owner = <ls_super_class>. IF
<ls_super_class>-clsname <> i_clsname. <ls_ref_interface>-inherited =
abap_true. ENDIF. APPEND <ls_ref_interface> TO ct_ref_interface.
ENDLOOP. LOOP AT lt_ref_interface_all_tmp ASSIGNING <ls_ref_interface>.
<ls_ref_interface>-owner = <ls_super_class>. IF
<ls_super_class>-clsname <> i_clsname. <ls_ref_interface>-inherited =
abap_true. ENDIF. APPEND <ls_ref_interface> TO ct_ref_interface_all.
ENDLOOP. ENDLOOP. ENDFORM. FORM seo_clas_get_methods USING is_ztadir
TYPE st_ztadir it_super_class TYPE it_seo_super_class it_ref_interface
TYPE it_ref_seointerface CHANGING ct_ref_method TYPE it_ref_seomethod.
DATA: ls_zseomethod TYPE st_zseomethod, l_cpdname TYPE seocpdname.
FIELD-SYMBOLS: <ls_ref_method> TYPE st_ref_seomethod. REFRESH:
ct_ref_method. PERFORM seo_clas_get_methods_from_intf USING
is_ztadir-obj_name it_super_class it_ref_interface CHANGING
ct_ref_method. PERFORM seo_clas_get_methods_from_clas USING
is_ztadir-obj_name it_super_class CHANGING ct_ref_method. PERFORM
seo_clas_get_methods_redef USING is_ztadir-obj_name it_super_class
CHANGING ct_ref_method. LOOP AT ct_ref_method ASSIGNING
<ls_ref_method>. READ TABLE gt_zseomethod TRANSPORTING NO FIELDS WITH
KEY devclass = is_ztadir-devclass pgmid = is_ztadir-pgmid object =
is_ztadir-object clsname = <ls_ref_method>-owner cpdname =
<ls_ref_method>-cpdname. IF sy-subrc <> 0. CLEAR ls_zseomethod.
ls_zseomethod-pgmid = is_ztadir-pgmid. ls_zseomethod-object =
is_ztadir-object. ls_zseomethod-devclass = is_ztadir-devclass.
ls_zseomethod-clsname = <ls_ref_method>-owner. ls_zseomethod-cpdname =
<ls_ref_method>-cpdname. ls_zseomethod-active = <ls_ref_method>-active.
APPEND ls_zseomethod TO gt_zseomethod. ENDIF. ENDLOOP. ENDFORM. FORM
seo_clas_get_methods_from_clas USING value(i_clsname) it_super_class
TYPE it_seo_super_class CHANGING ct_ref_method TYPE it_ref_seomethod.
DATA: lt_method TYPE STANDARD TABLE OF vseomethod, l_cpdname TYPE
seocpdname, ls_ref_method TYPE st_ref_seomethod, lt_str TYPE it_string,
lt_redef TYPE STANDARD TABLE OF seoredef. FIELD-SYMBOLS:
<ls_super_class> TYPE st_seo_super_class, <ls_method> TYPE vseomethod,
<ls_ref_method> TYPE st_ref_seomethod, <ls_redef> TYPE seoredef. LOOP
AT it_super_class ASSIGNING <ls_super_class>. SELECT * FROM vseomethod
INTO TABLE lt_method WHERE clsname = <ls_super_class>-clsname AND langu
= sy-langu AND alias = abap_false AND version = '1' ORDER BY editorder.
IF <ls_super_class>-clsname <> i_clsname. DELETE lt_method WHERE
cmpname = 'CLASS_CONSTRUCTOR' OR cmpname = 'DESTRUCTOR'. ENDIF. LOOP AT
lt_method ASSIGNING <ls_method>. l_cpdname = <ls_method>-cmpname. READ
TABLE ct_ref_method ASSIGNING <ls_ref_method> WITH KEY cpdname =
l_cpdname. IF sy-subrc = 0 AND l_cpdname <> 'CONSTRUCTOR'. IF
<ls_super_class>-clsname = i_clsname. <ls_ref_method>-inherited =
abap_false. UNASSIGN <ls_ref_method>. ENDIF. ELSEIF
<ls_super_class>-clsname = i_clsname OR <ls_method>-exposure > 0. CLEAR
ls_ref_method. ls_ref_method-cpdname = l_cpdname. IF
<ls_super_class>-clsname <> i_clsname. ls_ref_method-inherited =
abap_true. ENDIF. PERFORM get_dom_value_text USING 'SEOVERSION'
<ls_method>-version CHANGING ls_ref_method-active. PERFORM
get_dom_value_text USING 'SEOMTDDECL' <ls_method>-mtddecltyp CHANGING
ls_ref_method-type. PERFORM get_dom_value_text USING 'SEOEXPOSE'
<ls_method>-exposure CHANGING ls_ref_method-exposure. PERFORM
seo_get_check_model USING <ls_method> CHANGING ls_ref_method. PERFORM
get_dom_value_text USING 'SEOMTDTYPE' <ls_method>-mtdtype CHANGING
ls_ref_method-methodtype. ls_ref_method-descript =
<ls_method>-descript. ls_ref_method-owner = <ls_super_class>-clsname.
CONCATENATE ls_ref_method-owner '-' ls_ref_method-cpdname INTO
ls_ref_method-onclick. SPLIT ls_ref_method-onclick AT '/' INTO TABLE
lt_str. LOOP AT lt_str INTO ls_ref_method-onclick. ENDLOOP. CONCATENATE
'loadIFrame(''IFRAME'', ''' ls_ref_method-onclick '.' gc_extension_htm
''');' 'switchContent(''IFRAME' ''')' INTO ls_ref_method-onclick.
PERFORM replace_all USING '~' '-' CHANGING ls_ref_method-onclick. IF
l_cpdname = 'CONSTRUCTOR' AND <ls_ref_method> IS ASSIGNED. DELETE
ct_ref_method WHERE owner = <ls_ref_method>-owner AND cpdname =
<ls_ref_method>-cpdname. ENDIF. APPEND ls_ref_method TO ct_ref_method.
ENDIF. ENDLOOP. ENDLOOP. ENDFORM. FORM seo_clas_get_methods_from_intf
USING value(i_clsname) it_super_class TYPE it_seo_super_class
it_ref_interface TYPE it_ref_seointerface CHANGING ct_ref_method TYPE
it_ref_seomethod. DATA: lt_method TYPE STANDARD TABLE OF vseomethod,
l_cpdname TYPE seocpdname, ls_ref_method TYPE st_ref_seomethod, lt_str
TYPE it_string. FIELD-SYMBOLS: <ls_super_class> TYPE
st_seo_super_class, <ls_ref_interface> TYPE st_ref_seointerface,
<ls_method> TYPE vseomethod, <ls_ref_method> TYPE st_ref_seomethod.
LOOP AT it_super_class ASSIGNING <ls_super_class>. LOOP AT
it_ref_interface ASSIGNING <ls_ref_interface> WHERE owner =
<ls_super_class>-clsname. SELECT * FROM vseomethod INTO TABLE lt_method
WHERE clsname = <ls_ref_interface>-refclsname AND langu = sy-langu AND
alias = abap_false AND version = '1' ORDER BY editorder. LOOP AT
lt_method ASSIGNING <ls_method>. CONCATENATE
<ls_ref_interface>-refclsname '~' <ls_method>-cmpname INTO l_cpdname.
READ TABLE ct_ref_method ASSIGNING <ls_ref_method> WITH KEY cpdname =
l_cpdname. IF sy-subrc <> 0 AND ( <ls_super_class>-clsname = i_clsname
OR <ls_method>-exposure > 0 ). CLEAR ls_ref_method.
ls_ref_method-cpdname = l_cpdname. IF <ls_super_class>-clsname <>
i_clsname. ls_ref_method-inherited = abap_true. ENDIF. PERFORM
get_dom_value_text USING 'SEOVERSION' <ls_method>-version CHANGING
ls_ref_method-active. PERFORM get_dom_value_text USING 'SEOMTDDECL'
<ls_method>-mtddecltyp CHANGING ls_ref_method-type. PERFORM
get_dom_value_text USING 'SEOEXPOSE' <ls_method>-exposure CHANGING
ls_ref_method-exposure. PERFORM seo_get_check_model USING <ls_method>
CHANGING ls_ref_method. PERFORM get_dom_value_text USING 'SEOMTDTYPE'
<ls_method>-mtdtype CHANGING ls_ref_method-methodtype.
ls_ref_method-descript = <ls_method>-descript. ls_ref_method-owner =
<ls_super_class>-clsname. ls_ref_method-onclick = ls_ref_method-owner.
SPLIT ls_ref_method-onclick AT '/' INTO TABLE lt_str. LOOP AT lt_str
INTO ls_ref_method-onclick. ENDLOOP. CONCATENATE ls_ref_method-onclick
'-' ls_ref_method-cpdname INTO ls_ref_method-onclick. CONCATENATE
'loadIFrame(''IFRAME'', ''' ls_ref_method-onclick '.' gc_extension_htm
''');' 'switchContent(''IFRAME'')' INTO ls_ref_method-onclick. PERFORM
replace_all USING '~' '-' CHANGING ls_ref_method-onclick. APPEND
ls_ref_method TO ct_ref_method. ENDIF. ENDLOOP. ENDLOOP. ENDLOOP.
ENDFORM. FORM seo_clas_get_methods_redef USING value(i_clsname)
it_super_class TYPE it_seo_super_class CHANGING ct_ref_method TYPE
it_ref_seomethod. DATA: lt_str TYPE it_string, lt_redef TYPE STANDARD
TABLE OF seoredef. FIELD-SYMBOLS: <ls_super_class> TYPE
st_seo_super_class, <ls_ref_method> TYPE st_ref_seomethod, <ls_redef>
TYPE seoredef. LOOP AT it_super_class ASSIGNING <ls_super_class>.
SELECT * FROM seoredef INTO TABLE lt_redef WHERE clsname =
<ls_super_class>-clsname AND version = '1'. LOOP AT lt_redef ASSIGNING
<ls_redef>. READ TABLE ct_ref_method ASSIGNING <ls_ref_method> WITH KEY
cpdname = <ls_redef>-mtdname. IF sy-subrc = 0. IF
<ls_super_class>-clsname = i_clsname. <ls_ref_method>-inherited =
abap_false. <ls_ref_method>-redefin = abap_true. ENDIF.
<ls_ref_method>-owner = <ls_redef>-clsname. CONCATENATE
<ls_ref_method>-owner '-' <ls_ref_method>-cpdname INTO
<ls_ref_method>-onclick. SPLIT <ls_ref_method>-onclick AT '/' INTO
TABLE lt_str. LOOP AT lt_str INTO <ls_ref_method>-onclick. ENDLOOP.
CONCATENATE 'loadIFrame(''IFRAME'', ''' <ls_ref_method>-onclick '.'
gc_extension_htm ''');' 'switchContent(''IFRAME'')' INTO
<ls_ref_method>-onclick. PERFORM replace_all USING '~' '-' CHANGING
<ls_ref_method>-onclick. ENDIF. ENDLOOP. ENDLOOP. ENDFORM. FORM
seo_clas_get_props USING value(i_clsname) value(i_devclass) CHANGING
cs_properties TYPE st_properties ct_ti TYPE it_textinput ct_typegroup
TYPE it_seotypepls. DATA: ls_clskey TYPE seoclskey, ls_extend TYPE
vseoextend, lt_redefinition TYPE STANDARD TABLE OF seoredef WITH KEY
clsname refclsname version mtdname, ls_relkey TYPE seorelkey,
ls_vseoclass TYPE vseoclass, lt_typegroup TYPE it_seotypepls.
FIELD-SYMBOLS: <ls_typegroup> TYPE seotypepls, <l_explicit> TYPE ANY,
<l_state> TYPE ANY. CLEAR: cs_properties. REFRESH: ct_typegroup.
ls_clskey-clsname = i_clsname. CALL FUNCTION 'SEO_CLASS_READ' EXPORTING
clskey = ls_clskey version = '1' IMPORTING class = ls_vseoclass. IF
ls_vseoclass-changedby IS INITIAL AND ls_vseoclass-changedon IS
INITIAL. ls_vseoclass-changedby = ls_vseoclass-author.
ls_vseoclass-changedon = ls_vseoclass-createdon. ENDIF. SELECT * FROM
seotypepls INTO TABLE lt_typegroup WHERE clsname = ls_clskey-clsname
AND version = '1' ORDER BY typegroup. LOOP AT lt_typegroup ASSIGNING
<ls_typegroup>. ASSIGN COMPONENT 'EXPLICIT' OF STRUCTURE <ls_typegroup>
TO <l_explicit>. IF <l_explicit> IS ASSIGNED AND <l_explicit> =
abap_true. APPEND <ls_typegroup> TO ct_typegroup. ENDIF. ENDLOOP.
ls_relkey-clsname = i_clsname. CALL FUNCTION 'SEO_INHERITANC_GET'
EXPORTING inhkey = ls_relkey version = '1' IMPORTING inheritance =
ls_extend redefinitions = lt_redefinition EXCEPTIONS OTHERS = 1.
cs_properties-superclass = ls_extend-refclsname. ASSIGN COMPONENT
'STATE' OF STRUCTURE ls_extend TO <l_state>. IF <l_state> IS ASSIGNED.
IF <l_state> = 0. cs_properties-check_model_inh = abap_true. ENDIF.
ELSE. cs_properties-check_model_inh = abap_undefined. ENDIF.
cs_properties-descript = ls_vseoclass-descript. IF
ls_vseoclass-clsabstrct = abap_true. ls_vseoclass-exposure = 3. ENDIF.
PERFORM get_dom_value_text USING 'SEOCREATE' ls_vseoclass-exposure
CHANGING cs_properties-creatable. cs_properties-clsfinal =
ls_vseoclass-clsfinal. IF ls_vseoclass-langu IS INITIAL. SELECT SINGLE
masterlang FROM tadir INTO ls_vseoclass-langu WHERE pgmid = 'R3TR' AND
object = 'CLAS' AND obj_name = i_clsname. ENDIF. PERFORM
seo_clas_get_props_textinput USING i_clsname i_devclass ls_vseoclass
CHANGING ct_ti. ENDFORM. FORM seo_clas_get_props_textinput USING
value(i_clsname) value(i_devclass) is_vseoclass TYPE vseoclass CHANGING
ct_ti TYPE it_textinput. DATA: l_namtext TYPE ad_namtext, ls_ti TYPE
st_textinput. FIELD-SYMBOLS: <l_clssharedmemory> TYPE ANY, <l_msg_id>
TYPE ANY, <l_unicode> TYPE ANY. REFRESH: ct_ti. ls_ti-name =
txt_released_internally. ls_ti-flag = abap_true. IF NOT
is_vseoclass-release IS INITIAL. ls_ti-value = abap_true. ENDIF. APPEND
ls_ti TO ct_ti. CLEAR ls_ti. ls_ti-name = txt_fixed_point_arithmetic.
ls_ti-flag = abap_true. ls_ti-flag_col = 1. ls_ti-value =
is_vseoclass-fixpt. APPEND ls_ti TO ct_ti. ASSIGN COMPONENT 'UNICODE'
OF STRUCTURE is_vseoclass TO <l_unicode>. IF <l_unicode> IS ASSIGNED.
CLEAR ls_ti. ls_ti-name = txtt_unicode_checks_active. ls_ti-flag =
abap_true. ls_ti-flag_col = 2. ls_ti-value = is_vseoclass-unicode.
APPEND ls_ti TO ct_ti. ENDIF. ASSIGN COMPONENT 'CLSSHAREDMEMORY' OF
STRUCTURE is_vseoclass TO <l_clssharedmemory>. IF <l_clssharedmemory>
IS ASSIGNED. CLEAR ls_ti. ls_ti-name = txt_shared_memory_enabled.
ls_ti-flag = abap_true. ls_ti-value = <l_clssharedmemory>. APPEND ls_ti
TO ct_ti. ENDIF. ASSIGN COMPONENT 'MSG_ID' OF STRUCTURE is_vseoclass TO
<l_msg_id>. IF <l_msg_id> IS ASSIGNED. CLEAR ls_ti. ls_ti-name =
txt_message_class. ls_ti-value = <l_msg_id>. ls_ti-input = abap_true.
APPEND ls_ti TO ct_ti. ENDIF. CLEAR ls_ti. ls_ti-name =
txt_program_status. PERFORM get_dom_value_text USING 'RSTAT'
is_vseoclass-rstat CHANGING ls_ti-value. ls_ti-input = abap_true.
APPEND ls_ti TO ct_ti. CLEAR ls_ti. ls_ti-name = txt_category. PERFORM
get_dom_value_text USING 'SEOCATEGRY' is_vseoclass-category CHANGING
ls_ti-value. ls_ti-input = abap_true. APPEND ls_ti TO ct_ti. CLEAR
ls_ti. ls_ti-name = txt_package. ls_ti-value = i_devclass. ls_ti-input
= abap_true. APPEND ls_ti TO ct_ti. CLEAR ls_ti. ls_ti-name =
txt_original_language. ls_ti-value = is_vseoclass-langu. ls_ti-input =
abap_true. APPEND ls_ti TO ct_ti. CLEAR ls_ti. ls_ti-name =
txt_created_by___1. ls_ti-value = is_vseoclass-author. PERFORM get_user
USING is_vseoclass-author CHANGING l_namtext. ls_ti-value_text =
l_namtext. ls_ti-has_value_ext = abap_true. PERFORM get_date USING
is_vseoclass-createdon CHANGING ls_ti-value_ext. ls_ti-input =
abap_true. APPEND ls_ti TO ct_ti. CLEAR ls_ti. ls_ti-name =
txt_last_changed_by___1. ls_ti-value = is_vseoclass-changedby. PERFORM
get_user USING is_vseoclass-changedby CHANGING l_namtext.
ls_ti-value_text = l_namtext. ls_ti-has_value_ext = abap_true. PERFORM
get_date USING is_vseoclass-changedon CHANGING ls_ti-value_ext.
ls_ti-input = abap_true. APPEND ls_ti TO ct_ti. ENDFORM. FORM
seo_clas_get_text_symbols USING value(i_clsname) CHANGING
ct_text_symbols TYPE it_textpool ct_text_symbols_addons TYPE
it_textpool_addons. DATA: l_clsname TYPE seoclsname, l_progname TYPE
progname, ls_text_symbols_addons TYPE st_textpool_addons.
FIELD-SYMBOLS: <ls_text_symbols> TYPE textpool. REFRESH:
ct_text_symbols, ct_text_symbols_addons. l_clsname = i_clsname. PERFORM
get_trdir_name USING l_clsname 'CP' CHANGING l_progname. READ TEXTPOOL
l_progname INTO ct_text_symbols LANGUAGE sy-langu. DELETE
ct_text_symbols WHERE id <> 'I'. LOOP AT ct_text_symbols ASSIGNING
<ls_text_symbols>. ls_text_symbols_addons-strlen = strlen(
<ls_text_symbols>-entry ). APPEND ls_text_symbols_addons TO
ct_text_symbols_addons. ENDLOOP. ENDFORM. FORM seo_clas_get_types USING
value(i_clsname) it_super_class TYPE it_seo_super_class CHANGING
ct_ref_type TYPE it_ref_seotype ct_ref_type_par TYPE it_ref_seotype.
DATA: lt_seotype TYPE STANDARD TABLE OF vseotype, ls_ref_type TYPE
st_ref_seotype, l_str TYPE string, l_id TYPE string. FIELD-SYMBOLS:
<ls_super_class> TYPE st_seo_super_class, <ls_seotype> TYPE vseotype.
REFRESH: ct_ref_type, ct_ref_type_par. LOOP AT it_super_class ASSIGNING
<ls_super_class>. SELECT * FROM vseotype INTO TABLE lt_seotype WHERE
clsname = <ls_super_class>-clsname AND langu = sy-langu AND version =
'1' ORDER BY editorder. LOOP AT lt_seotype ASSIGNING <ls_seotype>.
CLEAR ls_ref_type. ls_ref_type-cpdname = <ls_seotype>-cmpname.
ls_ref_type-owner = <ls_super_class>-clsname. IF
<ls_super_class>-clsname <> i_clsname. ls_ref_type-inherited =
abap_true. ENDIF. PERFORM get_dom_value_text USING 'SEOTYPTYPE'
<ls_seotype>-typtype CHANGING ls_ref_type-typtype. ls_ref_type-type =
<ls_seotype>-type. l_str = <ls_seotype>-exposure. CONDENSE l_str.
CONCATENATE 'COMPONENTS_' l_str '_' INTO l_str. PERFORM get_id USING
l_str <ls_super_class>-clsname CHANGING l_id. CONCATENATE
'switchContent(''' l_id ''')' INTO ls_ref_type-onclick.
ls_ref_type-typelink = '->'. ls_ref_type-descript =
<ls_seotype>-descript. PERFORM get_dom_value_text USING 'SEOEXPOSE'
<ls_seotype>-exposure CHANGING ls_ref_type-exposure. PERFORM
seo_get_check_model USING <ls_seotype> CHANGING ls_ref_type. APPEND
ls_ref_type TO ct_ref_type_par. IF <ls_super_class>-clsname = i_clsname
OR <ls_seotype>-exposure <> 0. APPEND ls_ref_type TO ct_ref_type.
ENDIF. ENDLOOP. ENDLOOP. ENDFORM. FORM seo_get_check_model USING
value(is_struc) TYPE any CHANGING cs_struc TYPE any. FIELD-SYMBOLS:
<l_state> TYPE ANY, <l_check_model> TYPE ANY. ASSIGN COMPONENT 'STATE'
OF STRUCTURE is_struc TO <l_state>. ASSIGN COMPONENT 'CHECK_MODEL' OF
STRUCTURE cs_struc TO <l_check_model>. CHECK <l_check_model> IS
ASSIGNED. IF <l_state> IS ASSIGNED. IF <l_state> = 0. <l_check_model> =
abap_true. ELSE. <l_check_model> = abap_false. ENDIF. ELSE.
<l_check_model> = abap_undefined. ENDIF. ENDFORM. FORM
seo_get_interfaces USING value(i_clsname) value(i_hierlevel) CHANGING
ct_ref_interface TYPE it_ref_seointerface ct_ref_interface_all TYPE
it_ref_seointerface. DATA: l_hierlevel TYPE i, lt_metarel TYPE STANDARD
TABLE OF seometarel, lt_ref_interface TYPE it_ref_seointerface,
ls_ref_interface TYPE st_ref_seointerface. FIELD-SYMBOLS: <ls_metarel>
TYPE seometarel, <ls_ref_interface> TYPE st_ref_seointerface,
<l_impfinal> TYPE ANY, <l_impabstrct> TYPE ANY. l_hierlevel =
i_hierlevel + 1. SELECT * FROM seometarel INTO TABLE lt_metarel WHERE
clsname = i_clsname AND reltype <= 1. CLEAR ls_ref_interface. LOOP AT
lt_metarel ASSIGNING <ls_metarel>. READ TABLE ct_ref_interface_all
TRANSPORTING NO FIELDS WITH KEY refclsname = <ls_metarel>-refclsname.
IF sy-subrc <> 0. ls_ref_interface-refclsname =
<ls_metarel>-refclsname. ASSIGN COMPONENT 'IMPFINAL' OF STRUCTURE
<ls_metarel> TO <l_impfinal>. IF <l_impfinal> IS ASSIGNED.
ls_ref_interface-impfinal = <l_impfinal>. UNASSIGN <l_impfinal>. ELSE.
ls_ref_interface-impfinal = abap_undefined. ENDIF. ASSIGN COMPONENT
'IMPABSTRCT' OF STRUCTURE <ls_metarel> TO <l_impabstrct>. IF
<l_impabstrct> IS ASSIGNED. ls_ref_interface-impabstrct =
<l_impabstrct>. UNASSIGN <l_impabstrct>. ELSE.
ls_ref_interface-impabstrct = abap_undefined. ENDIF. PERFORM
seo_get_check_model USING <ls_metarel> CHANGING ls_ref_interface.
SELECT SINGLE descript FROM seoclasstx INTO ls_ref_interface-descript
WHERE clsname = ls_ref_interface-refclsname AND langu = sy-langu.
APPEND ls_ref_interface TO ct_ref_interface. APPEND ls_ref_interface TO
ct_ref_interface_all. PERFORM seo_get_interfaces USING
<ls_metarel>-refclsname l_hierlevel CHANGING lt_ref_interface
ct_ref_interface_all. ENDIF. ENDLOOP. SORT ct_ref_interface_all BY
hierlevel DESCENDING refclsname ASCENDING. SORT ct_ref_interface BY
refclsname. ENDFORM. FORM seo_get_superclasses USING value(i_clsname)
CHANGING ct_super_class TYPE it_seo_super_class. DATA: ls_clskey TYPE
seoclskey, ls_clsref TYPE seoclsref, ls_super_class TYPE
st_seo_super_class, l_lines TYPE i. FIELD-SYMBOLS: <l_class> TYPE
seoclsname. DESCRIBE TABLE ct_super_class LINES l_lines.
ls_super_class-clsname = i_clsname. ls_super_class-hierlevel = l_lines
+ 1. APPEND ls_super_class TO ct_super_class. ls_clskey-clsname =
i_clsname. CALL FUNCTION 'SEO_CLASS_GET' EXPORTING clskey = ls_clskey
version = '1' state = '0' IMPORTING superclass = ls_clsref EXCEPTIONS
OTHERS = 1. IF sy-subrc = 0 AND NOT ls_clsref-refclsname IS INITIAL.
PERFORM seo_get_superclasses USING ls_clsref-refclsname CHANGING
ct_super_class. ENDIF. SORT ct_super_class BY hierlevel DESCENDING.
ENDFORM. FORM seo_intf_get_aliases USING value(i_clsname) it_ref_attrib
TYPE it_ref_seoattrib it_ref_method TYPE it_ref_seomethod it_ref_event
TYPE it_ref_seoevent it_ref_type TYPE it_ref_seotype CHANGING
ct_ref_alias TYPE it_ref_seoalias. DATA: ls_ref_alias TYPE
st_ref_seoalias, ls_clskey TYPE seoclskey, lt_seoalias TYPE
seo_aliases, l_cpdname TYPE seocpdname. FIELD-SYMBOLS: <ls_ref_attrib>
TYPE st_ref_seoattrib, <ls_ref_method> TYPE st_ref_seomethod,
<ls_ref_event> TYPE st_ref_seoevent, <ls_ref_type> TYPE st_ref_seotype,
<ls_seoalias> TYPE seoaliases, <ls_ref_alias> TYPE st_ref_seoalias.
REFRESH: ct_ref_alias. ls_ref_alias-type = txt_attribute. LOOP AT
it_ref_attrib ASSIGNING <ls_ref_attrib> WHERE cpdname CP '*~*'.
ls_ref_alias-cpdname = <ls_ref_attrib>-cpdname. APPEND ls_ref_alias TO
ct_ref_alias. ENDLOOP. ls_ref_alias-type = txt_method. LOOP AT
it_ref_method ASSIGNING <ls_ref_method> WHERE cpdname CP '*~*'.
ls_ref_alias-cpdname = <ls_ref_method>-cpdname. APPEND ls_ref_alias TO
ct_ref_alias. ENDLOOP. ls_ref_alias-type = txt_event. LOOP AT
it_ref_event ASSIGNING <ls_ref_event> WHERE cpdname CP '*~*'.
ls_ref_alias-cpdname = <ls_ref_event>-cpdname. APPEND ls_ref_alias TO
ct_ref_alias. ENDLOOP. ls_ref_alias-type = txt_type___1. LOOP AT
it_ref_type ASSIGNING <ls_ref_type> WHERE cpdname CP '*~*'.
ls_ref_alias-cpdname = <ls_ref_type>-cpdname. APPEND ls_ref_alias TO
ct_ref_alias. ENDLOOP. ls_clskey-clsname = i_clsname. CALL FUNCTION
'SEO_ALIASES_GET' EXPORTING cifkey = ls_clskey CHANGING aliases =
lt_seoalias. LOOP AT lt_seoalias ASSIGNING <ls_seoalias>. CONCATENATE
<ls_seoalias>-refclsname '~' <ls_seoalias>-refcmpname INTO l_cpdname.
READ TABLE ct_ref_alias ASSIGNING <ls_ref_alias> WITH KEY cpdname =
l_cpdname. IF sy-subrc = 0. <ls_ref_alias>-refcmpname =
<ls_seoalias>-cmpname. ENDIF. ENDLOOP. SORT ct_ref_alias BY cpdname.
ENDFORM. FORM seo_intf_get_attribs USING value(i_clsname)
it_ref_interface TYPE it_ref_seointerface CHANGING ct_ref_attrib TYPE
it_ref_seoattrib. DATA: lt_attrib TYPE STANDARD TABLE OF vseoattrib,
ls_ref_attrib TYPE st_ref_seoattrib, l_id TYPE string. FIELD-SYMBOLS:
<ls_ref_interface> TYPE st_ref_seointerface, <ls_attrib> TYPE
vseoattrib. REFRESH: ct_ref_attrib. LOOP AT it_ref_interface ASSIGNING
<ls_ref_interface>. SELECT * FROM vseoattrib INTO TABLE lt_attrib WHERE
clsname = <ls_ref_interface>-refclsname AND langu = sy-langu AND
version = '1' ORDER BY editorder. LOOP AT lt_attrib ASSIGNING
<ls_attrib>. CLEAR ls_ref_attrib. IF <ls_attrib>-alias = abap_false.
ls_ref_attrib-cpdname = <ls_attrib>-cmpname. IF
<ls_ref_interface>-refclsname <> i_clsname. CONCATENATE
<ls_ref_interface>-refclsname '~' ls_ref_attrib-cpdname INTO
ls_ref_attrib-cpdname. ENDIF. PERFORM seo_get_check_model USING
<ls_attrib> CHANGING ls_ref_attrib. PERFORM get_dom_value_text USING
'SEOATTDECL' <ls_attrib>-attdecltyp CHANGING ls_ref_attrib-decltype.
ls_ref_attrib-attrdonly = <ls_attrib>-attrdonly. PERFORM
get_dom_value_text USING 'SEOTYPTYPE' <ls_attrib>-typtype CHANGING
ls_ref_attrib-typtype. ls_ref_attrib-type = <ls_attrib>-type. PERFORM
get_id USING 'COMPONENTS_' <ls_ref_interface>-refclsname CHANGING l_id.
CONCATENATE 'switchContent(''' l_id ''')' INTO ls_ref_attrib-onclick.
ls_ref_attrib-typelink = '->'. ls_ref_attrib-descript =
<ls_attrib>-descript. ls_ref_attrib-attvalue = <ls_attrib>-attvalue.
APPEND ls_ref_attrib TO ct_ref_attrib. ENDIF. ENDLOOP. ENDLOOP.
ENDFORM. FORM seo_intf_get_events USING value(i_clsname)
it_ref_interface TYPE it_ref_seointerface CHANGING ct_ref_event TYPE
it_ref_seoevent. DATA: lt_event TYPE STANDARD TABLE OF vseoevent,
ls_ref_event TYPE st_ref_seoevent, ls_cmpkey TYPE seocmpkey, ls_event
TYPE vseoevent. FIELD-SYMBOLS: <ls_ref_interface> TYPE
st_ref_seointerface, <ls_event> TYPE vseoevent. REFRESH: ct_ref_event.
LOOP AT it_ref_interface ASSIGNING <ls_ref_interface>. SELECT * FROM
vseoevent INTO TABLE lt_event WHERE clsname =
<ls_ref_interface>-refclsname AND langu = sy-langu AND version = '1'
ORDER BY editorder. CLEAR ls_ref_event. LOOP AT lt_event ASSIGNING
<ls_event>. ls_cmpkey-clsname = <ls_ref_interface>-refclsname.
ls_cmpkey-cmpname = <ls_event>-cmpname. CALL FUNCTION 'SEO_EVENT_GET'
EXPORTING evtkey = ls_cmpkey version = 1 IMPORTING event = ls_event
EXCEPTIONS OTHERS = 1. IF sy-subrc = 0 AND ls_event-alias = abap_false.
ls_ref_event-cpdname = ls_event-cmpname. IF
<ls_ref_interface>-refclsname <> i_clsname. CONCATENATE
<ls_ref_interface>-refclsname '~' ls_ref_event-cpdname INTO
ls_ref_event-cpdname. ENDIF. PERFORM seo_get_check_model USING ls_event
CHANGING ls_ref_event. PERFORM get_dom_value_text USING 'SEOEVTDECL'
ls_event-evtdecltyp CHANGING ls_ref_event-type. ls_ref_event-descript =
ls_event-descript. APPEND ls_ref_event TO ct_ref_event. ENDIF. ENDLOOP.
ENDLOOP. ENDFORM. FORM seo_intf_get_methods USING value(i_clsname)
it_ref_interface TYPE it_ref_seointerface CHANGING ct_ref_method TYPE
it_ref_seomethod. DATA: lt_method TYPE STANDARD TABLE OF vseomethod,
ls_ref_method TYPE st_ref_seomethod. FIELD-SYMBOLS: <ls_ref_interface>
TYPE st_ref_seointerface, <ls_method> TYPE vseomethod. REFRESH:
ct_ref_method. LOOP AT it_ref_interface ASSIGNING <ls_ref_interface>.
SELECT * FROM vseomethod INTO TABLE lt_method WHERE clsname =
<ls_ref_interface>-refclsname AND langu = sy-langu AND version = '1'
ORDER BY editorder. LOOP AT lt_method ASSIGNING <ls_method>. CLEAR
ls_ref_method. IF <ls_method>-alias = abap_false. ls_ref_method-cpdname
= <ls_method>-cmpname. IF <ls_ref_interface>-refclsname <> i_clsname.
CONCATENATE <ls_ref_interface>-refclsname '~' ls_ref_method-cpdname
INTO ls_ref_method-cpdname. ENDIF. PERFORM get_dom_value_text USING
'SEOMTDDECL' <ls_method>-mtddecltyp CHANGING ls_ref_method-type.
PERFORM seo_get_check_model USING <ls_method> CHANGING ls_ref_method.
PERFORM get_dom_value_text USING 'SEOMTDTYPE' <ls_method>-mtdtype
CHANGING ls_ref_method-methodtype. ls_ref_method-descript =
<ls_method>-descript. APPEND ls_ref_method TO ct_ref_method. ENDIF.
ENDLOOP. ENDLOOP. ENDFORM. FORM seo_intf_get_props USING
value(i_clsname) value(i_devclass) CHANGING cs_properties TYPE
st_properties ct_ti TYPE it_textinput ct_typegroup TYPE it_seotypepls.
DATA: ls_clskey TYPE seoclskey, ls_seointerf TYPE vseointerf,
lt_typegroup TYPE it_seotypepls. FIELD-SYMBOLS: <ls_typegroup> TYPE
seotypepls, <l_explicit> TYPE ANY. CLEAR: cs_properties. REFRESH:
ct_typegroup. ls_clskey-clsname = i_clsname. CALL FUNCTION
'SEO_INTERFACE_READ' EXPORTING intkey = ls_clskey version = 1 IMPORTING
interface = ls_seointerf. IF ls_seointerf-changedby IS INITIAL AND
ls_seointerf-changedon IS INITIAL. ls_seointerf-changedby =
ls_seointerf-author. ls_seointerf-changedon = ls_seointerf-createdon.
ENDIF. SELECT * FROM seotypepls INTO TABLE lt_typegroup WHERE clsname =
ls_clskey-clsname AND version = '1' ORDER BY typegroup. LOOP AT
lt_typegroup ASSIGNING <ls_typegroup>. ASSIGN COMPONENT 'EXPLICIT' OF
STRUCTURE <ls_typegroup> TO <l_explicit>. IF <l_explicit> IS ASSIGNED
AND <l_explicit> = abap_true. APPEND <ls_typegroup> TO ct_typegroup.
ENDIF. ENDLOOP. cs_properties-descript = ls_seointerf-descript. IF
ls_seointerf-langu IS INITIAL. SELECT SINGLE masterlang FROM tadir INTO
ls_seointerf-langu WHERE pgmid = 'R3TR' AND object = 'INTF' AND
obj_name = i_clsname. ENDIF. PERFORM seo_intf_get_props_textinput USING
i_clsname i_devclass ls_seointerf CHANGING ct_ti. ENDFORM. FORM
seo_intf_get_props_textinput USING value(i_clsname) value(i_devclass)
is_seointerf TYPE vseointerf CHANGING ct_ti TYPE it_textinput. DATA:
l_namtext TYPE ad_namtext, ls_ti TYPE st_textinput. FIELD-SYMBOLS:
<l_unicode> TYPE ANY. REFRESH: ct_ti. ls_ti-name =
txt_released_internally. ls_ti-flag = abap_true. ls_ti-flag_col = 1. IF
NOT is_seointerf-release IS INITIAL. ls_ti-value = abap_true. ENDIF.
APPEND ls_ti TO ct_ti. ASSIGN COMPONENT 'UNICODE' OF STRUCTURE
is_seointerf TO <l_unicode>. IF <l_unicode> IS ASSIGNED. CLEAR ls_ti.
ls_ti-name = txtt_unicode_checks_active. ls_ti-flag = abap_true.
ls_ti-flag_col = 2. ls_ti-value = <l_unicode>. APPEND ls_ti TO ct_ti.
ENDIF. CLEAR ls_ti. ls_ti-name = txt_package. ls_ti-value = i_devclass.
ls_ti-input = abap_true. APPEND ls_ti TO ct_ti. CLEAR ls_ti. ls_ti-name
= txt_original_language. ls_ti-value = is_seointerf-langu. ls_ti-input
= abap_true. APPEND ls_ti TO ct_ti. CLEAR ls_ti. ls_ti-name =
txt_created_by___1. ls_ti-value = is_seointerf-author. PERFORM get_user
USING is_seointerf-author CHANGING l_namtext. ls_ti-value_text =
l_namtext. ls_ti-has_value_ext = abap_true. PERFORM get_date USING
is_seointerf-createdon CHANGING ls_ti-value_ext. ls_ti-input =
abap_true. APPEND ls_ti TO ct_ti. CLEAR ls_ti. ls_ti-name =
txt_last_changed_by___1. ls_ti-value = is_seointerf-changedby. PERFORM
get_user USING is_seointerf-changedby CHANGING l_namtext.
ls_ti-value_text = l_namtext. ls_ti-has_value_ext = abap_true. PERFORM
get_date USING is_seointerf-changedon CHANGING ls_ti-value_ext.
ls_ti-input = abap_true. APPEND ls_ti TO ct_ti. ENDFORM. FORM
seo_intf_get_types USING value(i_clsname) it_ref_interface TYPE
it_ref_seointerface CHANGING ct_ref_type TYPE it_ref_seotype
ct_ref_type_par TYPE it_ref_seotype. DATA: lt_type TYPE STANDARD TABLE
OF vseotype, ls_ref_type TYPE st_ref_seotype, l_id TYPE string.
FIELD-SYMBOLS: <ls_ref_interface> TYPE st_ref_seointerface, <ls_type>
TYPE vseotype. REFRESH: ct_ref_type. LOOP AT it_ref_interface ASSIGNING
<ls_ref_interface>. SELECT * FROM vseotype INTO TABLE lt_type WHERE
clsname = <ls_ref_interface>-refclsname AND langu = sy-langu AND
version = '1' ORDER BY editorder. CLEAR ls_ref_type. LOOP AT lt_type
ASSIGNING <ls_type>. ls_ref_type-cpdname = <ls_type>-cmpname. IF
<ls_ref_interface>-refclsname <> i_clsname. CONCATENATE
<ls_ref_interface>-refclsname '~' ls_ref_type-cpdname INTO
ls_ref_type-cpdname. ENDIF. PERFORM get_dom_value_text USING
'SEOTYPTYPE' <ls_type>-typtype CHANGING ls_ref_type-typtype.
ls_ref_type-type = <ls_type>-type. PERFORM get_id USING 'COMPONENTS_'
<ls_ref_interface>-refclsname CHANGING l_id. CONCATENATE
'switchContent(''' l_id ''')' INTO ls_ref_type-onclick.
ls_ref_type-typelink = '->'. ls_ref_type-descript = <ls_type>-descript.
APPEND ls_ref_type TO ct_ref_type_par. IF <ls_ref_interface>-refclsname
= i_clsname. APPEND ls_ref_type TO ct_ref_type. ENDIF. ENDLOOP.
ENDLOOP. ENDFORM. FORM seo_r3tr_clas. DATA: lt_html TYPE it_string,
ls_seoclass TYPE seoclass, lt_tabstrip TYPE it_tabstrip, ls_tabstrip
TYPE st_tabstrip, lt_typegroup TYPE STANDARD TABLE OF seotypepls,
ls_properties TYPE st_properties, lt_ti TYPE it_textinput,
lt_super_class TYPE it_seo_super_class, lt_ref_interface TYPE
it_ref_seointerface, lt_ref_interface_all TYPE it_ref_seointerface,
lt_ref_attrib TYPE it_ref_seoattrib, lt_ref_friends TYPE
it_ref_seofriends, lt_ref_method TYPE it_ref_seomethod, lt_ref_event
TYPE it_ref_seoevent, lt_ref_type TYPE it_ref_seotype, lt_ref_type_par
TYPE it_ref_seotype, lt_ref_alias TYPE it_ref_seoalias, l_clsname TYPE
seoclsname, l_progname TYPE programm, lt_doc TYPE it_string,
lt_text_symbols TYPE it_textpool, lt_text_symbols_addons TYPE
it_textpool_addons, l_javascript TYPE string, l_filename TYPE string,
l_id TYPE string, l_flag TYPE flag, l_has_cl_name TYPE flag, l_char
TYPE c. FIELD-SYMBOLS: <ls_tabstrip> TYPE st_tabstrip, <ls_ztadir> TYPE
st_ztadir, <ls_super_class> TYPE st_seo_super_class. LOOP AT gt_ztadir
ASSIGNING <ls_ztadir> WHERE pgmid = 'R3TR' AND object = 'CLAS' AND
downloaded = abap_false. <ls_ztadir>-downloaded = abap_true. CLEAR:
l_javascript, ls_tabstrip. REFRESH: lt_html, lt_super_class,
lt_ref_interface, lt_ref_interface_all, lt_doc. SELECT SINGLE * FROM
seoclass INTO ls_seoclass WHERE clsname = <ls_ztadir>-obj_name AND
clstype = 0. IF sy-subrc <> 0. <ls_ztadir>-subrc = sy-subrc. CONTINUE.
ENDIF. PERFORM get_docu USING 'CL' <ls_ztadir>-obj_name 'E' CHANGING
lt_doc. PERFORM seo_clas_get_text_symbols USING <ls_ztadir>-obj_name
CHANGING lt_text_symbols lt_text_symbols_addons. PERFORM
seo_clas_get_props USING <ls_ztadir>-obj_name <ls_ztadir>-devclass
CHANGING ls_properties lt_ti lt_typegroup. PERFORM seo_get_superclasses
USING <ls_ztadir>-obj_name CHANGING lt_super_class. PERFORM
seo_clas_get_interfaces USING <ls_ztadir>-obj_name lt_super_class
CHANGING lt_ref_interface lt_ref_interface_all. PERFORM
seo_clas_get_friends USING <ls_ztadir>-obj_name CHANGING
lt_ref_friends. PERFORM seo_clas_get_attribs USING <ls_ztadir>-obj_name
lt_super_class lt_ref_interface_all CHANGING lt_ref_attrib. PERFORM
seo_clas_get_methods USING <ls_ztadir> lt_super_class
lt_ref_interface_all CHANGING lt_ref_method. PERFORM
seo_clas_get_events USING <ls_ztadir>-obj_name lt_super_class
lt_ref_interface_all CHANGING lt_ref_event. PERFORM seo_clas_get_types
USING <ls_ztadir>-obj_name lt_super_class CHANGING lt_ref_type
lt_ref_type_par. PERFORM seo_clas_get_aliases USING
<ls_ztadir>-obj_name lt_ref_attrib lt_ref_method lt_ref_event
lt_ref_type_par CHANGING lt_ref_alias. l_has_cl_name = abap_false.
l_clsname = <ls_ztadir>-obj_name. PERFORM get_trdir_name USING
l_clsname 'CL' CHANGING l_progname. SELECT SINGLE name FROM trdir INTO
l_progname WHERE name = l_progname. IF sy-subrc = 0. l_has_cl_name =
abap_true. ENDIF. l_char = '-'. IF l_has_cl_name = abap_false. l_char =
'N'. ENDIF. PERFORM get_tabstrip USING 'SEO_R3TR_CLAS' l_char CHANGING
lt_tabstrip. LOOP AT lt_tabstrip ASSIGNING <ls_tabstrip>.
<ls_tabstrip>-empty = abap_false. CASE <ls_tabstrip>-id. WHEN 'DOC'. IF
lt_doc IS INITIAL. <ls_tabstrip>-empty = abap_true. ENDIF. WHEN
'TEXTSYMBOLS'. IF lt_text_symbols IS INITIAL. <ls_tabstrip>-empty =
abap_true. ENDIF. WHEN 'INTERFACES'. IF lt_ref_interface IS INITIAL.
<ls_tabstrip>-empty = abap_true. ENDIF. WHEN 'FRIENDS'. IF
lt_ref_friends IS INITIAL. <ls_tabstrip>-empty = abap_true. ENDIF. WHEN
'ATTRIBUTES'. IF lt_ref_attrib IS INITIAL. <ls_tabstrip>-empty =
abap_true. ENDIF. WHEN 'METHODS'. IF lt_ref_method IS INITIAL.
<ls_tabstrip>-empty = abap_true. ENDIF. WHEN 'EVENTS'. IF lt_ref_event
IS INITIAL. <ls_tabstrip>-empty = abap_true. ENDIF. WHEN 'TYPES'. IF
lt_ref_type IS INITIAL. <ls_tabstrip>-empty = abap_true. ENDIF. WHEN
'ALIASES'. IF lt_ref_alias IS INITIAL. <ls_tabstrip>-empty = abap_true.
ENDIF. ENDCASE. ENDLOOP. LOOP AT lt_super_class ASSIGNING
<ls_super_class>. PERFORM get_id USING 'COMPONENTS_2_'
<ls_super_class>-clsname CHANGING ls_tabstrip-id. ls_tabstrip-text =
space. ls_tabstrip-active = abap_false. ls_tabstrip-hidden = abap_true.
APPEND ls_tabstrip TO lt_tabstrip. CONCATENATE l_javascript
'makeDivSize(''' ls_tabstrip-id ''');' INTO l_javascript. PERFORM
get_id USING 'COMPONENTS_0_' <ls_super_class>-clsname CHANGING
ls_tabstrip-id. ls_tabstrip-text = space. ls_tabstrip-active =
abap_false. ls_tabstrip-hidden = abap_true. APPEND ls_tabstrip TO
lt_tabstrip. CONCATENATE l_javascript 'makeDivSize(''' ls_tabstrip-id
''');' INTO l_javascript. PERFORM get_id USING 'COMPONENTS_1_'
<ls_super_class>-clsname CHANGING ls_tabstrip-id. ls_tabstrip-text =
space. ls_tabstrip-active = abap_false. ls_tabstrip-hidden = abap_true.
APPEND ls_tabstrip TO lt_tabstrip. CONCATENATE l_javascript
'makeDivSize(''' ls_tabstrip-id ''');' INTO l_javascript. ENDLOOP.
ls_tabstrip-id = 'IFRAME'. ls_tabstrip-text = space. ls_tabstrip-active
= abap_false. ls_tabstrip-hidden = abap_true. APPEND ls_tabstrip TO
lt_tabstrip. CONCATENATE l_javascript 'makeDivSize(''IFRAME'');'
'makeDivSize(''LOCTYPES'');' 'makeDivSize(''IMPL'');'
'makeDivSize(''MACROS'');' 'makeDivSize(''DOC'');' INTO l_javascript.
PERFORM html_main_header USING tpt_seo_clas txt_class
<ls_ztadir>-obj_name txt_implemented_active space space l_javascript
lt_tabstrip gt_link CHANGING lt_html. l_clsname = <ls_ztadir>-obj_name.
IF l_has_cl_name = abap_true. PERFORM get_trdir_name USING l_clsname
'CL' CHANGING l_progname. CONCATENATE <ls_ztadir>-obj_name '.cl' INTO
l_filename. PERFORM add_report_sourcecode USING l_progname l_filename
gc_extension_txt abap_false <ls_ztadir> 'LOCTYPES' abap_false CHANGING
lt_html. ELSE. PERFORM get_trdir_name USING l_clsname 'CCDEF' CHANGING
l_progname. CONCATENATE <ls_ztadir>-obj_name '.ccdef' INTO l_filename.
PERFORM add_report_sourcecode USING l_progname l_filename
gc_extension_txt abap_false <ls_ztadir> 'LOCTYPES' abap_false CHANGING
lt_html. PERFORM get_trdir_name USING l_clsname 'CCIMP' CHANGING
l_progname. CONCATENATE <ls_ztadir>-obj_name '.ccimp' INTO l_filename.
PERFORM add_report_sourcecode USING l_progname l_filename
gc_extension_txt abap_false <ls_ztadir> 'IMPL' abap_false CHANGING
lt_html. PERFORM get_trdir_name USING l_clsname 'CCMAC' CHANGING
l_progname. CONCATENATE <ls_ztadir>-obj_name '.ccmac' INTO l_filename.
PERFORM add_report_sourcecode USING l_progname l_filename
gc_extension_txt abap_false <ls_ztadir> 'MACROS' abap_false CHANGING
lt_html. ENDIF. IF NOT lt_doc IS INITIAL OR g_empty_tab =
gc_empty_tab_display. PERFORM html_add_doc USING lt_doc 'DOC'
abap_false CHANGING lt_html. ENDIF. IF NOT lt_text_symbols IS INITIAL
OR g_empty_tab = gc_empty_tab_display. PERFORM html_add_table USING
'CLAS_SYMBO' lt_text_symbols lt_text_symbols_addons 'TEXTSYMBOLS'
abap_false CHANGING lt_html. ENDIF. l_flag = abap_false. IF
lt_ref_attrib IS INITIAL AND lt_ref_method IS INITIAL. l_flag =
abap_true. ENDIF. PERFORM html_add_properties USING ls_properties lt_ti
'CLAS_TYPEG' lt_typegroup 'PROPERTIES' l_flag CHANGING lt_html. IF NOT
lt_ref_interface IS INITIAL OR g_empty_tab = gc_empty_tab_display.
PERFORM html_add_table USING 'CLAS_INTER' lt_ref_interface
lt_ref_interface 'INTERFACES' abap_false CHANGING lt_html. ENDIF. IF
NOT lt_ref_friends IS INITIAL OR g_empty_tab = gc_empty_tab_display.
PERFORM html_add_table USING 'CLAS_FRIEN' lt_ref_friends lt_ref_friends
'FRIENDS' abap_false CHANGING lt_html. ENDIF. IF NOT lt_ref_attrib IS
INITIAL OR g_empty_tab = gc_empty_tab_display. l_flag = abap_false. IF
lt_ref_method IS INITIAL. l_flag = abap_true. ENDIF. PERFORM
html_add_table USING 'CLAS_ATTRI' lt_ref_attrib lt_ref_attrib
'ATTRIBUTES' l_flag CHANGING lt_html. ENDIF. IF NOT lt_ref_method IS
INITIAL OR g_empty_tab = gc_empty_tab_display. PERFORM html_add_table
USING 'CLAS_METHO' lt_ref_method lt_ref_method 'METHODS' abap_true
CHANGING lt_html. ENDIF. IF NOT lt_ref_event IS INITIAL OR g_empty_tab
= gc_empty_tab_display. PERFORM html_add_table USING 'CLAS_EVENT'
lt_ref_event lt_ref_event 'EVENTS' abap_false CHANGING lt_html. ENDIF.
IF NOT lt_ref_type IS INITIAL OR g_empty_tab = gc_empty_tab_display.
PERFORM html_add_table USING 'CLAS_TYPES' lt_ref_type lt_ref_type
'TYPES' abap_false CHANGING lt_html. ENDIF. IF NOT lt_ref_alias IS
INITIAL OR g_empty_tab = gc_empty_tab_display. PERFORM html_add_table
USING 'CLAS_ALIAS' lt_ref_alias lt_ref_alias 'ALIASES' abap_false
CHANGING lt_html. ENDIF. LOOP AT lt_super_class ASSIGNING
<ls_super_class>. PERFORM get_trdir_name USING <ls_super_class>-clsname
'CU' CHANGING l_progname. PERFORM get_id USING 'COMPONENTS_2_'
<ls_super_class>-clsname CHANGING l_id. CONCATENATE
<ls_super_class>-clsname '.public' INTO l_filename. PERFORM
add_report_sourcecode USING l_progname l_filename gc_extension_txt
abap_false <ls_ztadir> l_id abap_false CHANGING lt_html. PERFORM
get_trdir_name USING <ls_super_class>-clsname 'CI' CHANGING l_progname.
PERFORM get_id USING 'COMPONENTS_0_' <ls_super_class>-clsname CHANGING
l_id. CONCATENATE <ls_super_class>-clsname '.private' INTO l_filename.
PERFORM add_report_sourcecode USING l_progname l_filename
gc_extension_txt abap_false <ls_ztadir> l_id abap_false CHANGING
lt_html. PERFORM get_trdir_name USING <ls_super_class>-clsname 'CO'
CHANGING l_progname. PERFORM get_id USING 'COMPONENTS_1_'
<ls_super_class>-clsname CHANGING l_id. CONCATENATE
<ls_super_class>-clsname '.protected' INTO l_filename. PERFORM
add_report_sourcecode USING l_progname l_filename gc_extension_txt
abap_false <ls_ztadir> l_id abap_false CHANGING lt_html. ENDLOOP.
PERFORM html_add_iframe USING space 'IFRAME' abap_false CHANGING
lt_html. PERFORM html_main_footer USING lt_html. PERFORM download USING
lt_html <ls_ztadir>-pgmid <ls_ztadir>-object <ls_ztadir>-obj_name
gc_extension_htm abap_true. ENDLOOP. ENDFORM. FORM
seo_r3tr_clas_methods. DATA: lt_ref_signature TYPE it_ref_seosignature,
ls_ref_signature TYPE st_ref_seosignature, ls_cpdkey TYPE seocpdkey,
lt_vseomepara TYPE STANDARD TABLE OF vseomepara, lt_vseoexcep TYPE
STANDARD TABLE OF vseoexcep, l_progname TYPE program, lt_sourcecode
TYPE it_string, lt_html TYPE it_string, l_filename TYPE string,
l_clsname TYPE seoclsname, l_cmpname TYPE seocmpname. FIELD-SYMBOLS:
<ls_vseomepara> TYPE vseomepara, <ls_vseoexcep> TYPE vseoexcep,
<ls_zseomethod> TYPE st_zseomethod. LOOP AT gt_zseomethod ASSIGNING
<ls_zseomethod>. REFRESH lt_html. REFRESH lt_ref_signature. REFRESH
lt_vseomepara. REFRESH lt_vseoexcep. REFRESH lt_sourcecode. CLEAR
l_clsname. CLEAR l_cmpname. CLEAR l_filename. IF
<ls_zseomethod>-cpdname NA '~'. l_clsname = <ls_zseomethod>-clsname.
l_cmpname = <ls_zseomethod>-cpdname. ELSE. SPLIT
<ls_zseomethod>-cpdname AT '~' INTO l_clsname l_cmpname. ENDIF. SELECT
 * FROM vseomepara INTO TABLE lt_vseomepara WHERE clsname = l_clsname
AND cmpname = l_cmpname AND langu = sy-langu AND version = '1' ORDER BY
pardecltyp editorder. LOOP AT lt_vseomepara ASSIGNING <ls_vseomepara>.
CLEAR ls_ref_signature. PERFORM get_dom_value_text USING 'SEOPARDECL'
<ls_vseomepara>-pardecltyp CHANGING ls_ref_signature-declaration. IF
<ls_vseomepara>-parpasstyp = 0. CONCATENATE 'VALUE('
<ls_vseomepara>-sconame ')' INTO ls_ref_signature-parameter SEPARATED
BY space. ELSE. ls_ref_signature-parameter = <ls_vseomepara>-sconame.
ENDIF. PERFORM get_dom_value_text USING 'SEOTYPTYPE'
<ls_vseomepara>-typtype CHANGING ls_ref_signature-type. CONCATENATE
ls_ref_signature-type <ls_vseomepara>-type INTO ls_ref_signature-type
SEPARATED BY space. IF <ls_vseomepara>-paroptionl = abap_true.
CONCATENATE ls_ref_signature-type '(optional)' INTO
ls_ref_signature-type SEPARATED BY space. ENDIF.
ls_ref_signature-descript = <ls_vseomepara>-descript. APPEND
ls_ref_signature TO lt_ref_signature. ENDLOOP. SELECT * FROM vseoexcep
INTO TABLE lt_vseoexcep WHERE clsname = l_clsname AND cmpname =
l_cmpname AND langu = sy-langu AND version = '1' ORDER BY editorder.
LOOP AT lt_vseoexcep ASSIGNING <ls_vseoexcep>. CLEAR ls_ref_signature.
ls_ref_signature-declaration = txt_exception___1.
ls_ref_signature-parameter = <ls_vseoexcep>-sconame.
ls_ref_signature-descript = <ls_vseoexcep>-descript. APPEND
ls_ref_signature TO lt_ref_signature. ENDLOOP. ls_cpdkey-clsname =
<ls_zseomethod>-clsname. ls_cpdkey-cpdname = <ls_zseomethod>-cpdname.
PERFORM get_trdir_name_method_include USING ls_cpdkey CHANGING
l_progname. IF NOT l_progname IS INITIAL. PERFORM try_read_report USING
l_progname CHANGING lt_sourcecode. ENDIF. IF g_add_sourcecode =
abap_true. CONCATENATE <ls_zseomethod>-clsname '-'
<ls_zseomethod>-cpdname INTO l_filename. PERFORM replace_all USING '~'
'-' CHANGING l_filename. PERFORM download USING lt_sourcecode
<ls_zseomethod>-pgmid <ls_zseomethod>-object l_filename
gc_extension_txt abap_false. ENDIF. PERFORM html_main_iframeheader
USING <ls_zseomethod>-cpdname CHANGING lt_html. PERFORM
html_add_methodnodiv USING <ls_zseomethod>-cpdname
<ls_zseomethod>-active txt_method 'CLAS_SIGNA' lt_ref_signature
lt_ref_signature lt_sourcecode l_filename space space gc_extension_txt
'CONTENT' CHANGING lt_html. PERFORM html_main_iframefooter CHANGING
lt_html. CONCATENATE <ls_zseomethod>-clsname '-'
<ls_zseomethod>-cpdname INTO l_filename. PERFORM replace_all USING '~'
'-' CHANGING l_filename. PERFORM download USING lt_html
<ls_zseomethod>-pgmid <ls_zseomethod>-object l_filename
gc_extension_htm abap_false. ENDLOOP. ENDFORM. FORM seo_r3tr_intf.
DATA: lt_html TYPE it_string, lt_tabstrip TYPE it_tabstrip, ls_tabstrip
TYPE st_tabstrip, ls_seoclass TYPE seoclass, lt_typegroup TYPE STANDARD
TABLE OF seotypepls, ls_properties TYPE st_properties, lt_ti TYPE
it_textinput, lt_ref_interface TYPE it_ref_seointerface,
lt_ref_interface_all TYPE it_ref_seointerface, ls_ref_interface TYPE
st_ref_seointerface, lt_ref_attrib TYPE it_ref_seoattrib, lt_ref_method
TYPE it_ref_seomethod, lt_ref_event TYPE it_ref_seoevent, lt_ref_type
TYPE it_ref_seotype, lt_ref_type_par TYPE it_ref_seotype, lt_ref_alias
TYPE it_ref_seoalias, lt_doc TYPE it_string, l_progname TYPE programm,
l_javascript TYPE string, l_filename TYPE string, l_id TYPE string,
l_flag. FIELD-SYMBOLS: <ls_tabstrip> TYPE st_tabstrip, <ls_ztadir> TYPE
st_ztadir, <ls_ref_interface_all> TYPE st_ref_seointerface. LOOP AT
gt_ztadir ASSIGNING <ls_ztadir> WHERE pgmid = 'R3TR' AND object =
'INTF' AND downloaded = abap_false. <ls_ztadir>-downloaded = abap_true.
REFRESH: lt_html, lt_ref_interface, lt_ref_interface_all. SELECT SINGLE
 * FROM seoclass INTO ls_seoclass WHERE clsname = <ls_ztadir>-obj_name
AND clstype = 1. IF sy-subrc <> 0. <ls_ztadir>-subrc = sy-subrc.
CONTINUE. ENDIF. PERFORM get_docu USING 'IF' <ls_ztadir>-obj_name 'E'
CHANGING lt_doc. PERFORM seo_intf_get_props USING <ls_ztadir>-obj_name
<ls_ztadir>-devclass CHANGING ls_properties lt_ti lt_typegroup. PERFORM
seo_get_interfaces USING <ls_ztadir>-obj_name 0 CHANGING
lt_ref_interface lt_ref_interface_all. ls_ref_interface-refclsname =
<ls_ztadir>-obj_name. APPEND ls_ref_interface TO lt_ref_interface_all.
PERFORM seo_intf_get_attribs USING <ls_ztadir>-obj_name
lt_ref_interface_all CHANGING lt_ref_attrib. PERFORM
seo_intf_get_methods USING <ls_ztadir>-obj_name lt_ref_interface_all
CHANGING lt_ref_method. PERFORM seo_intf_get_events USING
<ls_ztadir>-obj_name lt_ref_interface_all CHANGING lt_ref_event.
PERFORM seo_intf_get_types USING <ls_ztadir>-obj_name
lt_ref_interface_all CHANGING lt_ref_type lt_ref_type_par. PERFORM
seo_intf_get_aliases USING <ls_ztadir>-obj_name lt_ref_attrib
lt_ref_method lt_ref_event lt_ref_type_par CHANGING lt_ref_alias.
PERFORM get_tabstrip USING 'SEO_R3TR_INTF' space CHANGING lt_tabstrip.
LOOP AT lt_tabstrip ASSIGNING <ls_tabstrip>. <ls_tabstrip>-empty =
abap_false. CASE <ls_tabstrip>-id. WHEN 'DOC'. IF lt_doc IS INITIAL.
<ls_tabstrip>-empty = abap_true. ENDIF. WHEN 'INTERFACES'. IF
lt_ref_interface IS INITIAL. <ls_tabstrip>-empty = abap_true. ENDIF.
WHEN 'ATTRIBUTES'. IF lt_ref_attrib IS INITIAL. <ls_tabstrip>-empty =
abap_true. ENDIF. WHEN 'METHODS'. IF lt_ref_method IS INITIAL.
<ls_tabstrip>-empty = abap_true. ENDIF. WHEN 'EVENTS'. IF lt_ref_event
IS INITIAL. <ls_tabstrip>-empty = abap_true. ENDIF. WHEN 'TYPES'. IF
lt_ref_type IS INITIAL. <ls_tabstrip>-empty = abap_true. ENDIF. WHEN
'ALIASES'. IF lt_ref_alias IS INITIAL. <ls_tabstrip>-empty = abap_true.
ENDIF. ENDCASE. ENDLOOP. LOOP AT lt_ref_interface_all ASSIGNING
<ls_ref_interface_all>. CLEAR ls_tabstrip. PERFORM get_id USING
'COMPONENTS_' <ls_ref_interface_all>-refclsname CHANGING
ls_tabstrip-id. ls_tabstrip-hidden = abap_true. APPEND ls_tabstrip TO
lt_tabstrip. PERFORM get_id USING 'COMPONENTS_'
<ls_ref_interface_all>-refclsname CHANGING l_id. CONCATENATE
l_javascript 'makeDivSize(''' l_id ''');' INTO l_javascript. ENDLOOP.
PERFORM html_main_header USING tpt_seo_intf txt_interface
<ls_ztadir>-obj_name txt_implemented_active space space l_javascript
lt_tabstrip gt_link CHANGING lt_html. IF NOT lt_doc IS INITIAL OR
g_empty_tab = gc_empty_tab_display. PERFORM html_add_doc USING lt_doc
'DOC' abap_false CHANGING lt_html. ENDIF. l_flag = abap_false. IF
lt_ref_method IS INITIAL AND lt_ref_attrib IS INITIAL. l_flag =
abap_true. ENDIF. PERFORM html_add_properties USING ls_properties lt_ti
'INTF_TYPEG' lt_typegroup 'PROPERTIES' l_flag CHANGING lt_html. IF NOT
lt_ref_interface IS INITIAL OR g_empty_tab = gc_empty_tab_display.
PERFORM html_add_table USING 'INTF_INTER' lt_ref_interface
lt_ref_interface 'INTERFACES' abap_false CHANGING lt_html. ENDIF. IF
NOT lt_ref_attrib IS INITIAL OR g_empty_tab = gc_empty_tab_display.
l_flag = abap_false. IF lt_ref_method IS INITIAL. l_flag = abap_true.
ENDIF. PERFORM html_add_table USING 'INTF_ATTRI' lt_ref_attrib
lt_ref_attrib 'ATTRIBUTES' l_flag CHANGING lt_html. ENDIF. IF NOT
lt_ref_method IS INITIAL OR g_empty_tab = gc_empty_tab_display. PERFORM
html_add_table USING 'INTF_METHO' lt_ref_method lt_ref_method 'METHODS'
abap_true CHANGING lt_html. ENDIF. IF NOT lt_ref_event IS INITIAL OR
g_empty_tab = gc_empty_tab_display. PERFORM html_add_table USING
'INTF_EVENT' lt_ref_event lt_ref_event 'EVENTS' abap_false CHANGING
lt_html. ENDIF. IF NOT lt_ref_type IS INITIAL OR g_empty_tab =
gc_empty_tab_display. PERFORM html_add_table USING 'INTF_TYPES'
lt_ref_type lt_ref_type 'TYPES' abap_false CHANGING lt_html. ENDIF. IF
NOT lt_ref_alias IS INITIAL OR g_empty_tab = gc_empty_tab_display.
PERFORM html_add_table USING 'INTF_ALIAS' lt_ref_alias lt_ref_alias
'ALIASES' abap_false CHANGING lt_html. ENDIF. LOOP AT
lt_ref_interface_all ASSIGNING <ls_ref_interface_all>. PERFORM
get_trdir_name USING <ls_ref_interface_all>-refclsname 'IU' CHANGING
l_progname. PERFORM get_id USING 'COMPONENTS_'
<ls_ref_interface_all>-refclsname CHANGING l_id. CONCATENATE
<ls_ref_interface_all>-refclsname '.components' INTO l_filename.
PERFORM add_report_sourcecode USING l_progname l_filename
gc_extension_txt abap_false <ls_ztadir> l_id abap_false CHANGING
lt_html. ENDLOOP. PERFORM html_main_footer USING lt_html. PERFORM
download USING lt_html <ls_ztadir>-pgmid <ls_ztadir>-object
<ls_ztadir>-obj_name gc_extension_htm abap_true. ENDLOOP. ENDFORM. FORM
system. PERFORM system_component. PERFORM system_kernel. PERFORM
system_status. ENDFORM. FORM system_component. DATA: lt_component TYPE
it_component, ls_component TYPE st_component, lt_cvers TYPE STANDARD
TABLE OF cvers, lt_html TYPE it_string. FIELD-SYMBOLS: <ls_cvers> TYPE
cvers. SELECT * FROM cvers INTO TABLE lt_cvers. LOOP AT lt_cvers
ASSIGNING <ls_cvers>. CLEAR ls_component. ls_component-component =
<ls_cvers>-component. ls_component-release = <ls_cvers>-release. CALL
FUNCTION 'OCS_GET_COMPONENT_STATE' EXPORTING iv_component =
<ls_cvers>-component IMPORTING ev_comp_level = ls_component-level
ev_last_patch = ls_component-high_package EXCEPTIONS OTHERS = 1. SELECT
SINGLE desc_text FROM cvers_ref INTO ls_component-desc_text WHERE
component = <ls_cvers>-component AND langu = sy-langu. APPEND
ls_component TO lt_component. ENDLOOP. PERFORM html_main_popupheader
USING txt_component_information CHANGING lt_html. PERFORM
html_add_tablenodiv USING 'MENU_COMPO' lt_component lt_component
CHANGING lt_html. PERFORM html_main_popupfooter CHANGING lt_html.
PERFORM download USING lt_html 'MENU' 'SYSTEM' 'COMPONENT'
gc_extension_htm abap_false. ENDFORM. FORM system_kernel. DATA:
ls_textinput TYPE st_textinput, lt_kernel TYPE it_textinput,
lt_database TYPE it_textinput, lt_system TYPE it_textinput, lt_html
TYPE it_string, ls_dbinfo TYPE dbrelinfo. FIELD-SYMBOLS: <l_patchlevel>
TYPE ANY. CALL FUNCTION 'DB_DBRELINFO' IMPORTING dbinfo = ls_dbinfo.
CLEAR ls_textinput. ls_textinput-name = txt_kernel_release.
ls_textinput-input = abap_true. PERFORM get_version_info USING
'kernel release' CHANGING ls_textinput-value. APPEND ls_textinput TO
lt_kernel. CLEAR ls_textinput. ls_textinput-name = txt_compilation.
ls_textinput-input = abap_true. PERFORM get_version_info USING
'kernel compiled' CHANGING ls_textinput-value. APPEND ls_textinput TO
lt_kernel. CLEAR ls_textinput. ls_textinput-name = txt_sup_pkg_lvl.
ls_textinput-input = abap_true. PERFORM get_version_info USING
'kernel patch level' CHANGING ls_textinput-value. APPEND ls_textinput
TO lt_kernel. CLEAR ls_textinput. ls_textinput-name = txt_abap_load.
ls_textinput-input = abap_true. PERFORM get_version_info USING
'ABAP load version' CHANGING ls_textinput-value. APPEND ls_textinput TO
lt_kernel. CLEAR ls_textinput. ls_textinput-name = txt_cua_load.
ls_textinput-input = abap_true. PERFORM get_version_info USING
'CUA load version' CHANGING ls_textinput-value. APPEND ls_textinput TO
lt_kernel. CLEAR ls_textinput. ls_textinput-name = txt_mode.
ls_textinput-input = abap_true. PERFORM get_version_info USING
'kernel kind' CHANGING ls_textinput-value. APPEND ls_textinput TO
lt_kernel. CLEAR ls_textinput. ls_textinput-name = txt_rsyn_file.
ls_textinput-input = abap_true. PERFORM get_version_info USING 'rsyn'
CHANGING ls_textinput-value. APPEND ls_textinput TO lt_kernel. CLEAR
ls_textinput. ls_textinput-name = txt_db_client_lib. ls_textinput-input
= abap_true. ls_textinput-value = ls_dbinfo-clirel. APPEND ls_textinput
TO lt_database. CLEAR ls_textinput. ls_textinput-name =
txt_db_releases. ls_textinput-input = abap_true. ls_textinput-value =
ls_dbinfo-releases. APPEND ls_textinput TO lt_database. CLEAR
ls_textinput. ls_textinput-name = txt_dbsl_version. ls_textinput-input
= abap_true. ls_textinput-value = ls_dbinfo-dbsl_vers. APPEND
ls_textinput TO lt_database. ASSIGN COMPONENT 'PATCHLEVEL' OF STRUCTURE
ls_dbinfo TO <l_patchlevel>. IF <l_patchlevel> IS ASSIGNED. CLEAR
ls_textinput. ls_textinput-name = txt_dbsl_patch_level.
ls_textinput-input = abap_true. ls_textinput-value = <l_patchlevel>.
APPEND ls_textinput TO lt_database. ENDIF. CLEAR ls_textinput.
ls_textinput-name = txt_ip_address. ls_textinput-input = abap_true.
PERFORM get_version_info USING 'IP address' CHANGING
ls_textinput-value. APPEND ls_textinput TO lt_system. CLEAR
ls_textinput. ls_textinput-name = txt_sap_versions. ls_textinput-input
= abap_true. PERFORM get_version_info USING 'supported SAP vers.'
CHANGING ls_textinput-value. APPEND ls_textinput TO lt_system. CLEAR
ls_textinput. ls_textinput-name = txt_operating_system.
ls_textinput-input = abap_true. PERFORM get_version_info USING
'valid OP system' CHANGING ls_textinput-value. APPEND ls_textinput TO
lt_system. CLEAR ls_textinput. ls_textinput-name = txt_op_release.
ls_textinput-input = abap_true. PERFORM get_version_info USING
'OP system release' CHANGING ls_textinput-value. APPEND ls_textinput TO
lt_system. PERFORM html_main_popupheader USING
txt_component_information CHANGING lt_html. PERFORM
html_add_box1ti_2tivernodiv USING txt_kernel_information___2 lt_kernel
txt_database_information lt_database txt_system_information lt_system
CHANGING lt_html. PERFORM html_main_popupfooter CHANGING lt_html.
PERFORM download USING lt_html 'MENU' 'SYSTEM' 'KERNEL'
gc_extension_htm abap_false. ENDFORM. FORM system_status. DATA:
ls_textinput TYPE st_textinput, lt_usage_data_r TYPE it_textinput,
lt_usage_data_l TYPE it_textinput, lt_repository_data TYPE
it_textinput, lt_sap_system_data TYPE it_textinput, lt_host_data TYPE
it_textinput, lt_database_data TYPE it_textinput, lt_html TYPE
it_string, ls_last_logon TYPE st_last_logon, l_name TYPE ad_namtext,
l_laiso TYPE laiso, l_sptxt TYPE sptxt, l_title TYPE rs38m-repti,
l_date TYPE sydatum, l_db_release(10) TYPE c, l_servername(40) TYPE c,
l_unicode TYPE c, l_exists TYPE flag, l_ttext TYPE ttext_stct,
l_stext(40) TYPE c, l_repid TYPE syrepid, lt_list TYPE STANDARD TABLE
OF msxxlist. FIELD-SYMBOLS: <ls_list> TYPE msxxlist. GET PARAMETER ID
'US2' FIELD ls_last_logon. CLEAR ls_textinput. ls_textinput-name =
txt_client. ls_textinput-input = abap_true. ls_textinput-value =
sy-mandt. APPEND ls_textinput TO lt_usage_data_l. CLEAR ls_textinput.
ls_textinput-name = txt_user. ls_textinput-input = abap_true.
ls_textinput-value = sy-uname. PERFORM get_user USING sy-uname CHANGING
l_name. ls_textinput-value_text = l_name. APPEND ls_textinput TO
lt_usage_data_l. CLEAR ls_textinput. ls_textinput-name = txt_language.
ls_textinput-input = abap_true. PERFORM get_spras USING sy-langu
CHANGING l_laiso l_sptxt. ls_textinput-value = l_laiso.
ls_textinput-value_text = l_sptxt. APPEND ls_textinput TO
lt_usage_data_l. CLEAR ls_textinput. ls_textinput-name =
txt_previous_logon. ls_textinput-input = abap_true.
ls_textinput-has_value_ext = abap_true. PERFORM get_date USING
ls_last_logon-date CHANGING ls_textinput-value. PERFORM get_time USING
ls_last_logon-time CHANGING ls_textinput-value_ext. APPEND ls_textinput
TO lt_usage_data_r. CLEAR ls_textinput. ls_textinput-name = txt_logon.
ls_textinput-input = abap_true. ls_textinput-has_value_ext = abap_true.
PERFORM get_date USING ls_last_logon-date_now CHANGING
ls_textinput-value. PERFORM get_time USING ls_last_logon-time_now
CHANGING ls_textinput-value_ext. APPEND ls_textinput TO
lt_usage_data_r. CLEAR ls_textinput. ls_textinput-name =
txt_system_time. ls_textinput-input = abap_true.
ls_textinput-has_value_ext = abap_true. PERFORM get_date USING sy-datum
CHANGING ls_textinput-value. PERFORM get_time USING sy-uzeit CHANGING
ls_textinput-value_ext. APPEND ls_textinput TO lt_usage_data_r. l_repid
= sy-repid. CLEAR ls_textinput. ls_textinput-name = txt_transaction.
ls_textinput-input = abap_true. ls_textinput-value = sy-tcode. SELECT
SINGLE ttext FROM tstct INTO l_ttext WHERE sprsl = sy-langu AND tcode =
sy-tcode. ls_textinput-value_text = l_ttext. APPEND ls_textinput TO
lt_repository_data. CLEAR ls_textinput. ls_textinput-name =
txt_program_screen. ls_textinput-input = abap_true. ls_textinput-value
= l_repid. CALL FUNCTION 'PROGRAM_TITLE' EXPORTING program = l_repid
language = sy-langu IMPORTING title = l_title. ls_textinput-value_text
= l_title. APPEND ls_textinput TO lt_repository_data. CLEAR
ls_textinput. ls_textinput-name = txt_screen_number. ls_textinput-input
= abap_true. ls_textinput-value = sy-dynnr. APPEND ls_textinput TO
lt_repository_data. CLEAR ls_textinput. ls_textinput-name =
txt_program_gui. ls_textinput-input = abap_true. ls_textinput-value =
l_repid. CALL FUNCTION 'PROGRAM_TITLE' EXPORTING program = l_repid
language = sy-langu IMPORTING title = l_title. ls_textinput-value_text
= l_title. APPEND ls_textinput TO lt_repository_data. CLEAR
ls_textinput. ls_textinput-name = txt_gui_status. ls_textinput-input =
abap_true. ls_textinput-value = sy-pfkey. APPEND ls_textinput TO
lt_repository_data. CLEAR ls_textinput. ls_textinput-name =
txt_component_version. ls_textinput-input = abap_true. SELECT SINGLE
stext FROM cvers_txt INTO l_stext WHERE langu = sy-langu. IF sy-subrc
<> 0. SELECT SINGLE stext FROM cvers_txt INTO l_stext WHERE langu =
'EN'. ENDIF. ls_textinput-value = l_stext. APPEND ls_textinput TO
lt_sap_system_data. CLEAR ls_textinput. ls_textinput-space = abap_true.
APPEND ls_textinput TO lt_sap_system_data. CLEAR ls_textinput.
ls_textinput-name = txt_installation_number. ls_textinput-input =
abap_true. CALL FUNCTION 'SLIC_GET_LICENCE_NUMBER' IMPORTING
license_number = ls_textinput-value. APPEND ls_textinput TO
lt_sap_system_data. CLEAR ls_textinput. ls_textinput-name =
txt_license_expiration. ls_textinput-input = abap_true. CALL FUNCTION
'SLIC_GET_LICENCE_DATE' IMPORTING licence_date = l_date. PERFORM
get_date USING l_date CHANGING ls_textinput-value. APPEND ls_textinput
TO lt_sap_system_data. PERFORM get_fuba_exists USING
'SLDAG_CHECK_FOR_UNICODE' CHANGING l_exists. IF l_exists = abap_true.
CLEAR ls_textinput. ls_textinput-name = txt_unicode_system.
ls_textinput-input = abap_true. CALL FUNCTION 'SLDAG_CHECK_FOR_UNICODE'
IMPORTING unicode = l_unicode. IF l_unicode = 1. ls_textinput-value =
txt_yes. ELSE. ls_textinput-value = txt_no. ENDIF. APPEND ls_textinput
TO lt_sap_system_data. ENDIF. CLEAR ls_textinput. ls_textinput-name =
txt_operating_system. ls_textinput-input = abap_true.
ls_textinput-value = sy-opsys. APPEND ls_textinput TO lt_host_data.
CLEAR ls_textinput. ls_textinput-name = txt_machine_type.
ls_textinput-input = abap_true. PERFORM get_version_info USING
'machine type' CHANGING ls_textinput-value. APPEND ls_textinput TO
lt_host_data. CLEAR ls_textinput. ls_textinput-name = txt_server_name.
ls_textinput-input = abap_true. CALL FUNCTION 'TH_SERVER_LIST' TABLES
list = lt_list EXCEPTIONS OTHERS = 1. READ TABLE lt_list ASSIGNING
<ls_list> INDEX 1. IF <ls_list> IS ASSIGNED. l_servername =
<ls_list>-name. ELSE. CLEAR l_servername. ENDIF. ls_textinput-value =
l_servername. APPEND ls_textinput TO lt_host_data. CLEAR ls_textinput.
ls_textinput-name = txt_platform_id. ls_textinput-input = abap_true.
PERFORM get_version_info USING 'SAP system id' CHANGING
ls_textinput-value. APPEND ls_textinput TO lt_host_data. CLEAR
ls_textinput. ls_textinput-name = txt_database_system.
ls_textinput-input = abap_true. PERFORM get_version_info USING
'database system' CHANGING ls_textinput-value. APPEND ls_textinput TO
lt_database_data. CLEAR ls_textinput. ls_textinput-name = txt_release.
ls_textinput-input = abap_true. CALL FUNCTION 'DB_GET_RELEASE'
IMPORTING release = l_db_release. ls_textinput-value = l_db_release.
APPEND ls_textinput TO lt_database_data. CLEAR ls_textinput.
ls_textinput-name = txt_name. ls_textinput-input = abap_true. PERFORM
get_version_info USING 'database name' CHANGING ls_textinput-value.
APPEND ls_textinput TO lt_database_data. CLEAR ls_textinput.
ls_textinput-name = txt_host. ls_textinput-input = abap_true. PERFORM
get_version_info USING 'database host' CHANGING ls_textinput-value.
ls_textinput-value = sy-host. TRANSLATE ls_textinput-value TO UPPER
CASE. APPEND ls_textinput TO lt_database_data. CLEAR ls_textinput.
ls_textinput-name = txt_owner. ls_textinput-input = abap_true. PERFORM
get_version_info USING 'database owner' CHANGING ls_textinput-value.
APPEND ls_textinput TO lt_database_data. PERFORM html_main_popupheader
USING txt_status CHANGING lt_html. PERFORM
html_add_box1tidbl_box2ti_2tix USING txt_usage_data lt_usage_data_l
lt_usage_data_r txt_sap_data txt_repository_data txt_sap_system_data
lt_repository_data lt_sap_system_data txt_host_data txt_database_data
lt_host_data lt_database_data CHANGING lt_html. PERFORM
html_main_popupfooter CHANGING lt_html. PERFORM download USING lt_html
'MENU' 'SYSTEM' 'STATUS' gc_extension_htm abap_false. ENDFORM. FORM t.
PERFORM t_r3tr_msag. PERFORM t_r3tr_tobj. PERFORM t_r3tr_para. PERFORM
t_r3tr_tran. ENDFORM. FORM t_r3tr_msag. DATA: ls_ti TYPE st_textinput,
lt_attr TYPE it_textinput, lt_box TYPE it_textinput, l_arbgb TYPE
arbgb, l_bname TYPE xubname, l_name_text TYPE ad_namtext, ls_t100a TYPE
t100a, l_laiso TYPE laiso, l_sptxt TYPE sptxt, lt_html TYPE it_string,
ls_tabstrip TYPE st_tabstrip, lt_tabstrip TYPE it_tabstrip, lt_t100
TYPE STANDARD TABLE OF t100, ls_t100ext TYPE st_t100ext, lt_t100ext
TYPE it_t100ext, lt_doc TYPE it_string. FIELD-SYMBOLS: <ls_ztadir> TYPE
st_ztadir, <ls_t100> TYPE t100, <ls_t100ext> TYPE st_t100ext. LOOP AT
gt_ztadir ASSIGNING <ls_ztadir> WHERE pgmid = 'R3TR' AND object =
'MSAG' AND downloaded = abap_false. CLEAR: ls_ti, ls_t100a. REFRESH:
lt_attr, lt_box, lt_html, lt_t100, lt_t100ext, lt_tabstrip, lt_doc.
l_arbgb = <ls_ztadir>-obj_name. SELECT SINGLE * FROM t100a INTO
ls_t100a WHERE arbgb = l_arbgb. PERFORM get_tabstrip USING
'T_R3TR_MSAG' space CHANGING lt_tabstrip. CLEAR ls_ti. ls_ti-name =
txt_package. ls_ti-value = <ls_ztadir>-devclass. ls_ti-input =
abap_true. APPEND ls_ti TO lt_attr. CLEAR ls_ti. ls_ti-name =
txt_last_changed_by___3. ls_ti-value = ls_t100a-lastuser. l_bname =
ls_t100a-lastuser. PERFORM get_user USING l_bname CHANGING l_name_text.
ls_ti-value_text = l_name_text. ls_ti-value_ext_space = abap_true.
ls_ti-input = abap_true. ls_ti-has_value_ext = abap_true. APPEND ls_ti
TO lt_attr. CLEAR ls_ti. ls_ti-name = txt_changed_on. PERFORM get_date
USING ls_t100a-ldate CHANGING ls_ti-value. ls_ti-value_ext_space =
abap_true. ls_ti-input = abap_true. ls_ti-has_value_ext = abap_true.
APPEND ls_ti TO lt_attr. CLEAR ls_ti. ls_ti-name = txt_last_changed_at.
PERFORM get_time USING ls_t100a-ltime CHANGING ls_ti-value.
ls_ti-value_ext_space = abap_true. ls_ti-input = abap_true.
ls_ti-has_value_ext = abap_true. APPEND ls_ti TO lt_attr. CLEAR ls_ti.
ls_ti-name = txt_original_lang. PERFORM get_spras USING
ls_t100a-masterlang CHANGING l_laiso l_sptxt. ls_ti-value = l_laiso.
ls_ti-value_text = l_sptxt. ls_ti-value_ext_space = abap_true.
ls_ti-input = abap_true. ls_ti-has_value_ext = abap_true. APPEND ls_ti
TO lt_box. CLEAR ls_ti. ls_ti-name = txt_person_respons. ls_ti-value =
ls_t100a-respuser. l_bname = ls_t100a-respuser. PERFORM get_user USING
l_bname CHANGING l_name_text. ls_ti-value_text = l_name_text.
ls_ti-value_ext_space = abap_true. ls_ti-input = abap_true.
ls_ti-has_value_ext = abap_true. APPEND ls_ti TO lt_box. CLEAR ls_ti.
ls_ti-name = txt_short_text___1. ls_ti-value = <ls_ztadir>-descript.
ls_ti-input = abap_true. APPEND ls_ti TO lt_box. SELECT * FROM t100
INTO TABLE lt_t100 WHERE arbgb = l_arbgb AND sprsl = sy-langu. LOOP AT
lt_t100 ASSIGNING <ls_t100>. CLEAR ls_t100ext. SELECT SINGLE name datum
FROM t100u INTO (ls_t100ext-name,ls_t100ext-datum) WHERE arbgb =
<ls_t100>-arbgb AND msgnr = <ls_t100>-msgnr. l_bname = ls_t100ext-name.
IF NOT l_bname IS INITIAL. PERFORM get_user USING l_bname CHANGING
ls_t100ext-name_text. PERFORM get_date USING ls_t100ext-datum CHANGING
ls_t100ext-datum_text. ENDIF. CALL FUNCTION
'DOCU_OBJECT_NAME_CONCATENATE' EXPORTING docu_id = 'NA' element =
<ls_t100>-arbgb addition = <ls_t100>-msgnr IMPORTING object =
ls_t100ext-object_name EXCEPTIONS OTHERS = 0. CALL FUNCTION
'DOCU_SELFDEF_READ' EXPORTING object_id = 'NA' object_name =
ls_t100ext-object_name IMPORTING selfdef = ls_t100ext-selfdef
EXCEPTIONS OTHERS = 0. IF NOT ls_t100ext-selfdef IS INITIAL.
ls_t100ext-no_docu = abap_true. ELSE. ls_t100ext-ltext = '-->'.
CONCATENATE 'switchContent(''' ls_t100ext-object_name ''')' INTO
ls_t100ext-ltext_onclick. CLEAR ls_tabstrip. ls_tabstrip-id =
ls_t100ext-object_name. ls_tabstrip-hidden = abap_true. APPEND
ls_tabstrip TO lt_tabstrip. ENDIF. APPEND ls_t100ext TO lt_t100ext.
ENDLOOP. PERFORM html_main_header USING tpt_msag txt_message_class
<ls_ztadir>-obj_name txt_active___1 space space space lt_tabstrip
gt_link CHANGING lt_html. PERFORM html_add_textinput_subbox USING
lt_attr txt_attributes___2 lt_box 'ATTRIBUTES' abap_true CHANGING
lt_html. PERFORM html_add_table USING 'MSAG_MESS' lt_t100 lt_t100ext
'MESSAGES' abap_false CHANGING lt_html. LOOP AT lt_t100ext ASSIGNING
<ls_t100ext> WHERE no_docu = abap_false. PERFORM get_docu USING 'NA'
<ls_t100ext>-object_name 'E' CHANGING lt_doc. PERFORM html_add_doc
USING lt_doc <ls_t100ext>-object_name abap_false CHANGING lt_html.
ENDLOOP. PERFORM html_main_footer USING lt_html. PERFORM download USING
lt_html <ls_ztadir>-pgmid <ls_ztadir>-object <ls_ztadir>-obj_name
gc_extension_htm abap_true. <ls_ztadir>-downloaded = abap_true.
ENDLOOP. ENDFORM. FORM t_r3tr_tobj. DATA: l_objct TYPE xuobject,
ls_tobj TYPE tobj, ls_ti TYPE st_textinput, lt_attr TYPE it_textinput,
lt_box TYPE it_textinput, lt_actvt_attr TYPE it_textinput, lt_actvt
TYPE it_textinput, lt_tactz TYPE STANDARD TABLE OF tactz, l_xutxt TYPE
xutxt30, lt_html TYPE it_string, l_ctext TYPE xutext, l_bname TYPE
xubname, l_name_text TYPE ad_namtext, l_field TYPE tobj-fiel1, l_text
TYPE as4text, l_has_actvt TYPE flag, lt_doc TYPE it_string, lt_tabstrip
TYPE it_tabstrip, l_javascript TYPE string. FIELD-SYMBOLS: <ls_ztadir>
TYPE st_ztadir, <ls_tactz> TYPE tactz, <ls_tabstrip> TYPE st_tabstrip.
PERFORM get_tabstrip USING 'T_R3TR_TOBJ' space CHANGING lt_tabstrip.
LOOP AT gt_ztadir ASSIGNING <ls_ztadir> WHERE pgmid = 'R3TR' AND object
= 'SUSO' AND downloaded = abap_false. CLEAR: l_objct, ls_tobj, ls_ti,
l_ctext, l_bname, l_name_text, l_has_actvt, l_javascript. REFRESH:
lt_attr, lt_box, lt_actvt_attr, lt_actvt, lt_tactz, lt_doc, lt_html.
l_objct = <ls_ztadir>-obj_name. SELECT SINGLE * FROM tobj INTO ls_tobj
WHERE objct = l_objct. SELECT SINGLE ctext FROM tobct INTO l_ctext
WHERE oclss = ls_tobj-oclss AND langu = sy-langu. CLEAR ls_ti.
ls_ti-name = txt_class. ls_ti-value = ls_tobj-oclss. ls_ti-value_ext =
l_ctext. ls_ti-input = abap_true. ls_ti-has_value_ext = abap_true.
APPEND ls_ti TO lt_attr. CLEAR ls_ti. ls_ti-name = txt_autor.
ls_ti-value = ls_tobj-bname. l_bname = ls_tobj-bname. PERFORM get_user
USING l_bname CHANGING l_name_text. ls_ti-value_text = l_name_text.
ls_ti-input = abap_true. APPEND ls_ti TO lt_attr. DO 10 TIMES VARYING
l_field FROM ls_tobj-fiel1 NEXT ls_tobj-fiel2. CLEAR: l_text, ls_ti. IF
NOT l_field IS INITIAL. IF l_field = 'ACTVT'. l_has_actvt = abap_true.
ENDIF. CALL FUNCTION 'AUTH_FIELD_GET_INFO' EXPORTING fieldname =
l_field IMPORTING text = l_text. ENDIF. ls_ti-value = l_field.
ls_ti-value_ext = l_text. ls_ti-has_value_ext = abap_true.
ls_ti-no_name = abap_true. ls_ti-input = abap_true. APPEND ls_ti TO
lt_box. ENDDO. PERFORM get_docu USING 'UO' l_objct 'E' CHANGING lt_doc.
SELECT * FROM tactz INTO TABLE lt_tactz WHERE brobj = l_objct. SORT
lt_tactz BY actvt. LOOP AT lt_tactz ASSIGNING <ls_tactz>. SELECT SINGLE
ltext FROM tactt INTO l_xutxt WHERE actvt = <ls_tactz>-actvt AND spras
= sy-langu. CLEAR ls_ti. ls_ti-name = <ls_tactz>-actvt. ls_ti-value =
abap_true. ls_ti-flag = abap_true. ls_ti-description = l_xutxt. APPEND
ls_ti TO lt_actvt. ENDLOOP. CLEAR ls_ti. ls_ti-name =
txt_conversion_for_authorizati. ls_ti-value = ls_tobj-conversion.
ls_ti-flag = abap_true. APPEND ls_ti TO lt_actvt_attr. CLEAR ls_ti.
ls_ti-name = txt_activity. IF l_has_actvt = abap_true. ls_ti-value =
'ACTVT'. ENDIF. ls_ti-input = abap_true. APPEND ls_ti TO lt_actvt_attr.
LOOP AT lt_tabstrip ASSIGNING <ls_tabstrip>. <ls_tabstrip>-empty =
abap_false. CASE <ls_tabstrip>-id. WHEN 'DOC'. IF lt_doc IS INITIAL.
<ls_tabstrip>-empty = abap_true. ENDIF. ENDCASE. ENDLOOP. IF NOT lt_doc
IS INITIAL. l_javascript = 'makeDivSize(''DOC'');'. ENDIF. PERFORM
html_main_header USING tpt_tobj txt_object <ls_ztadir>-obj_name space
txt_text <ls_ztadir>-descript l_javascript lt_tabstrip gt_link CHANGING
lt_html. PERFORM html_add_textinput_subbox USING lt_attr
txt_authorization_fields lt_box 'ATTRIBUTES' abap_true CHANGING
lt_html. PERFORM html_add_textinput_subbox USING lt_actvt_attr
txt_values lt_actvt 'ACTVT' abap_false CHANGING lt_html. IF NOT lt_doc
IS INITIAL OR g_empty_tab = gc_empty_tab_display. PERFORM html_add_doc
USING lt_doc 'DOC' abap_false CHANGING lt_html. ENDIF. PERFORM
html_main_footer USING lt_html. PERFORM download USING lt_html
<ls_ztadir>-pgmid <ls_ztadir>-object <ls_ztadir>-obj_name
gc_extension_htm abap_true. <ls_ztadir>-downloaded = abap_true.
ENDLOOP. ENDFORM. FORM t_r3tr_para. DATA: ls_ti TYPE st_textinput,
lt_ti TYPE it_textinput, l_filename TYPE string, lt_html TYPE
it_string. FIELD-SYMBOLS: <ls_ztadir> TYPE st_ztadir. LOOP AT gt_ztadir
ASSIGNING <ls_ztadir> WHERE pgmid = 'R3TR' AND object = 'PARA' AND
downloaded = abap_false. REFRESH: lt_html, lt_ti. CLEAR ls_ti.
ls_ti-name = txt_parameter_id. ls_ti-value = <ls_ztadir>-obj_name.
ls_ti-input = abap_true. APPEND ls_ti TO lt_ti. CLEAR ls_ti. ls_ti-name
= txt_text. ls_ti-value = <ls_ztadir>-descript. ls_ti-input =
abap_true. APPEND ls_ti TO lt_ti. l_filename = <ls_ztadir>-obj_name.
PERFORM encode_uri_link CHANGING l_filename. PERFORM replace_all USING
'%' 'x' CHANGING l_filename. PERFORM replace_all USING '<' '-' CHANGING
l_filename. PERFORM replace_all USING '>' '-' CHANGING l_filename.
PERFORM encode_uri CHANGING l_filename. PERFORM html_main_popupheader
USING txt_component_information CHANGING lt_html. PERFORM
html_add_textinputnodiv USING lt_ti CHANGING lt_html. PERFORM
html_main_popupfooter CHANGING lt_html. PERFORM download USING lt_html
<ls_ztadir>-pgmid <ls_ztadir>-object l_filename gc_extension_htm
abap_true. ENDLOOP. ENDFORM. FORM t_r3tr_tran. DATA: ls_tran TYPE
st_transaction, ls_tstc TYPE tstc, ls_tstc_tmp TYPE tstc, lt_tstca TYPE
STANDARD TABLE OF tstca, ls_tstcc TYPE tstcc, l_param TYPE tcdparam,
l_tcode TYPE tcode, l_gui_title TYPE string, ls_ti TYPE st_textinput,
lt_defval TYPE it_textinput, lt_gui_support TYPE it_textinput, lt_para
TYPE it_transaction_para, ls_para TYPE st_transaction_para, lt_html
TYPE it_string, l_off TYPE i, l_length TYPE i, l_str TYPE string,
lt_str TYPE it_string, lt_tabstrip TYPE it_tabstrip. CONSTANTS:
lc_hex_tra TYPE x VALUE '00', lc_hex_men TYPE x VALUE '01', lc_hex_par
TYPE x VALUE '02', lc_hex_rep TYPE x VALUE '80', lc_hex_rpv TYPE x
VALUE '10', lc_hex_obj TYPE x VALUE '08', lc_hex_chk TYPE x VALUE '04',
lc_oo_program(9) VALUE '\PROGRAM=', lc_oo_class(7) VALUE '\CLASS=',
lc_oo_method(8) VALUE '\METHOD=', lc_oo_tcode LIKE tstc-tcode VALUE
'OS_APPLICATION'. FIELD-SYMBOLS: <ls_ztadir> TYPE st_ztadir, <ls_tstca>
TYPE tstca, <l_pervas> TYPE ANY. LOOP AT gt_ztadir ASSIGNING
<ls_ztadir> WHERE pgmid = 'R3TR' AND object = 'TRAN' AND downloaded =
abap_false. CLEAR: ls_para, ls_tran, ls_ti, ls_tstc, ls_tstc_tmp,
ls_tstcc, l_param, l_tcode, l_gui_title, l_off, l_length, l_str.
REFRESH: lt_tstca, lt_defval, lt_gui_support, lt_para, lt_html, lt_str,
lt_tabstrip. l_tcode = <ls_ztadir>-obj_name. SELECT SINGLE * FROM tstc
INTO ls_tstc WHERE tcode = l_tcode. ls_tran-pgmna = ls_tstc-pgmna.
ls_tran-dypno = ls_tstc-dypno. IF ls_tstc-arbgb <> '&&'.
ls_tran-trans_var = abap_true. ENDIF. SELECT * FROM tstca INTO TABLE
lt_tstca WHERE tcode = l_tcode. LOOP AT lt_tstca ASSIGNING <ls_tstca>.
ls_tran-objct = <ls_tstca>-objct. EXIT. ENDLOOP. SELECT SINGLE * FROM
tstcc INTO ls_tstcc WHERE tcode = l_tcode. IF ls_tstcc-s_webgui = '2'.
ls_tran-clf_ewt = abap_true. ls_tran-clf_profi = abap_false. ELSE.
ls_tran-clf_ewt = abap_false. ls_tran-clf_profi = abap_true. ENDIF.
ASSIGN COMPONENT 'S_PERVAS' OF STRUCTURE ls_tstcc TO <l_pervas>. IF
<l_pervas> IS ASSIGNED. ls_tran-clf_pervas = <l_pervas>. UNASSIGN
<l_pervas>. ENDIF. ls_tran-clf_service = ls_tstcc-s_service. SELECT
SINGLE param FROM tstcp INTO l_param WHERE tcode = l_tcode. CASE
l_param(1). WHEN '\'. IF l_param CS lc_oo_program. l_off = sy-fdpos +
9. l_length = strlen( l_param ) - l_off. l_str =
l_param+l_off(l_length). IF l_str CA '\'. ls_tran-pgmna =
l_str+0(sy-fdpos). ELSE. ls_tran-pgmna = l_str. ENDIF. ENDIF. IF
l_param CS lc_oo_class. l_off = sy-fdpos + 7. l_length = strlen(
l_param ) - l_off. l_str = l_param+l_off(l_length). IF l_str CA '\'.
ls_tran-classname = l_str+0(sy-fdpos). ELSE. ls_tran-classname = l_str.
ENDIF. ENDIF. IF l_param CS lc_oo_method. l_off = sy-fdpos + 8.
l_length = strlen( l_param ) - l_off. l_str = l_param+l_off(l_length).
IF l_str CA '\'. ls_tran-method = l_str+0(sy-fdpos). ELSE.
ls_tran-method = l_str. ENDIF. ENDIF. IF NOT ls_tstc-pgmna IS INITIAL.
ls_tran-local = abap_true. ENDIF. WHEN '@'. l_off = 1. IF l_param(2) =
'@@'. l_off = 2. ls_tran-ind_vari = abap_true. ENDIF. IF l_param CA
space. ENDIF. l_length = sy-fdpos - l_off. ls_tran-def_call_tcode =
l_param+l_off(l_length). l_off = l_off + l_length + 1. l_length =
strlen( l_param ). SUBTRACT l_off FROM l_length. ls_tran-variant =
l_param+l_off(l_length). WHEN '/'. IF l_param+1(1) = '*'.
ls_tran-def_skip_1 = abap_true. ENDIF. IF l_param CA space. ENDIF.
l_length = sy-fdpos. IF l_length > 2. SUBTRACT 2 FROM l_length.
ls_tran-def_call_tcode = l_param+2(l_length). SELECT SINGLE * FROM tstc
INTO ls_tstc_tmp WHERE tcode = ls_tran-def_call_tcode. IF sy-subrc = 0.
ENDIF. IF l_param CA '='. l_off = 3 + l_length. l_length = strlen(
l_param ). SUBTRACT l_off FROM l_length. l_str =
l_param+l_off(l_length). SPLIT l_str AT ';' INTO TABLE lt_str. LOOP AT
lt_str INTO l_str. IF l_str CA '='. CLEAR ls_para. SPLIT l_str AT '='
INTO ls_para-para_field ls_para-para_value. APPEND ls_para TO lt_para.
ENDIF. ENDLOOP. ENDIF. ENDIF. WHEN OTHERS. IF l_param CA '='. SPLIT
l_param AT ';' INTO TABLE lt_str. LOOP AT lt_str INTO l_str. IF l_str
CA '='. CLEAR ls_para. SPLIT l_str AT '=' INTO ls_para-para_field
ls_para-para_value. APPEND ls_para TO lt_para. ENDIF. ENDLOOP. ENDIF.
ENDCASE. SELECT SINGLE ttext FROM tstct INTO ls_tran-ttext WHERE sprsl
= sy-langu AND tcode = l_tcode. IF ls_tstc-cinfo O lc_hex_rep.
ls_tran-ttype = gc_tcode_report. l_gui_title = tpt_tran_repo. IF
ls_tran-dypno IS INITIAL. ls_tran-dypno = '1000'. ENDIF. IF
ls_tstc-cinfo O lc_hex_rpv AND NOT l_param IS INITIAL.
ls_tran-repo_vari = l_param. ENDIF. ELSEIF ls_tstc-cinfo O lc_hex_obj.
ls_tran-ttype = gc_tcode_object. l_gui_title = tpt_tran_obj. IF
ls_tran-def_call_tcode = lc_oo_tcode. ls_tran-trframe = abap_true.
ENDIF. ELSEIF ls_tstc-cinfo O lc_hex_par. ls_tran-ttype =
gc_tcode_parameter. l_gui_title = tpt_tran_param. IF NOT l_param IS
INITIAL AND l_param(1) = '@'. ls_tran-ttype = gc_tcode_variant.
l_gui_title = tpt_tran_vari. ELSEIF ls_tran-def_call_tcode =
lc_oo_tcode.  ls_tran-ttype = gc_tcode_object. l_gui_title =
tpt_tran_obj. ls_tran-trframe = abap_true. ENDIF. ELSEIF ls_tstc-cinfo
O lc_hex_men. ELSE. ls_tran-ttype = gc_tcode_dialog. l_gui_title =
tpt_tran_dialog. ENDIF. IF NOT ls_tran-def_call_tcode IS INITIAL AND (
ls_tstcc IS INITIAL OR ls_tstcc = l_tcode ) AND ls_tran-ttype <>
gc_tcode_object. ls_tran-clf_inhe = abap_true. SELECT SINGLE * FROM
tstcc INTO ls_tstcc WHERE tcode = ls_tran-def_call_tcode. IF
ls_tstcc-s_webgui = '2'. ls_tran-clf_ewt = abap_true. ls_tran-clf_profi
= abap_false. ELSE. ls_tran-clf_ewt = abap_false. ls_tran-clf_profi =
abap_true. ENDIF. ASSIGN COMPONENT 'S_PERVAS' OF STRUCTURE ls_tstcc TO
<l_pervas>. IF <l_pervas> IS ASSIGNED. ls_tran-clf_pervas = <l_pervas>.
UNASSIGN <l_pervas>. ENDIF. ls_tran-clf_service = ls_tstcc-s_service.
ENDIF. CLEAR ls_ti. ls_ti-name = txt_transaction. ls_ti-value =
ls_tran-def_call_tcode. ls_ti-input = abap_true. APPEND ls_ti TO
lt_defval. CLEAR ls_ti. ls_ti-name = txt_skip_initial_screen.
ls_ti-value = ls_tran-def_skip_1. ls_ti-flag = abap_true. APPEND ls_ti
TO lt_defval. CLEAR ls_ti. ls_ti-name = txt_screen. ls_ti-value =
ls_tran-dypno. ls_ti-input = abap_true. ls_ti-has_value_ext =
abap_true. ls_ti-value_ext_space = abap_true. APPEND ls_ti TO
lt_defval. CLEAR ls_ti. ls_ti-name = txt_from_module_pool. ls_ti-value
= ls_tran-pgmna. ls_ti-input = abap_true. APPEND ls_ti TO lt_defval.
CLEAR ls_ti. ls_ti-name = txt_sapgui_for_html. ls_ti-flag = abap_true.
IF NOT ls_tstcc-s_webgui IS INITIAL. ls_ti-value = abap_true. ENDIF.
APPEND ls_ti TO lt_gui_support. CLEAR ls_ti. ls_ti-name =
txt_sapgui_for_java. ls_ti-flag = abap_true. ls_ti-value =
ls_tstcc-s_platin. APPEND ls_ti TO lt_gui_support. CLEAR ls_ti.
ls_ti-name = txt_sapgui_for_windows. ls_ti-flag = abap_true.
ls_ti-value = ls_tstcc-s_win32. APPEND ls_ti TO lt_gui_support. PERFORM
html_main_header USING l_gui_title txt_transaction_code
<ls_ztadir>-obj_name space txt_package <ls_ztadir>-devclass
'makeDivSize(''TRANSACTION'');' lt_tabstrip gt_link CHANGING lt_html.
PERFORM html_add_transaction USING ls_tran lt_tstca lt_defval
lt_gui_support lt_para 'TRANSACTION' abap_true CHANGING lt_html.
PERFORM html_main_footer USING lt_html. PERFORM download USING lt_html
<ls_ztadir>-pgmid <ls_ztadir>-object <ls_ztadir>-obj_name
gc_extension_htm abap_true. <ls_ztadir>-downloaded = abap_true.
ENDLOOP. ENDFORM. FORM optionals. PERFORM ddic. PERFORM fugr. PERFORM
o2. PERFORM pack. PERFORM prog. PERFORM seo. PERFORM system. PERFORM t.
ENDFORM.
