*&---------------------------------------------------------------------* *& Report ZSOFTCOPY * *& * *&---------------------------------------------------------------------* *& * *& 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 .* *& * *&---------------------------------------------------------------------* *& * *& Author: Ruediger von Creytz ruediger.creytz@globalbit.net * *& Copyright: globalBIT, LLC http://www.globalbit.net * *& Version: 20210302 * *& * *&---------------------------------------------------------------------* REPORT zsoftcopy. 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: 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 . l_tabname = -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 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: 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_hline-tdformat = 'B1'. CONCATENATE '' -value ':' INTO ls_hline-tdline. CONCATENATE ls_hline-tdline -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 = 'SoftCopy'. PERFORM decode_html CHANGING ls_hline-tdline. APPEND ls_hline TO lt_hline. ls_hline-tdformat = 'AS'. CONCATENATE '' 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 '© 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. REPLACE ALL OCCURRENCES OF i_old IN c_str WITH i_new. ENDFORM. FORM replace_single USING value(i_old) value(i_new) CHANGING c_str TYPE any. REPLACE i_old IN c_str WITH i_new. 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: 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 . CLEAR: l_key, l_value. SPLIT 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. TYPES: BEGIN OF st_level, level TYPE syindex, END OF st_level, it_level TYPE STANDARD TABLE OF st_level, BEGIN OF st_offset, index typE syindex, length typE syindex, END OF st_offset, it_offset type standard table of st_offset, BEGIN OF st_src_include_index, include TYPE progname, line_from TYPE syindex, line_to TYPE syindex, level TYPE syindex, END OF st_src_include_index, it_src_include_index TYPE STANDARD TABLE OF st_src_include_index. FORM get_src_without_includes USING it_src TYPE rswsourcet value(i_src_name) TYPE progname value(i_check) TYPE flag value(i_progname) TYPE progname value(i_replace) TYPE progname CHANGING ct_src_no_includes TYPE rswsourcet ct_index TYPE it_src_include_index. DATA BEGIN OF lh_tk OCCURS 5000. INCLUDE STRUCTURE stokex. DATA END OF lh_tk. DATA BEGIN OF stm OCCURS 1000. INCLUDE STRUCTURE sstmnt. DATA END OF stm. DATA BEGIN OF lv OCCURS 100. INCLUDE STRUCTURE slevel. DATA END OF lv. DATA: ls_index TYPE st_src_include_index, ls_index_t TYPE st_src_include_index, ls_offset type st_offset, ls_old_level TYPE st_level, ls_source TYPE abapsource, lt_include TYPE rswsourcet, lt_offset type it_offset, lt_old_level TYPE it_level, lt_source TYPE STANDARD TABLE OF abapsource, l_diff_end TYPE syindex, l_diff_new TYPE syindex, l_dollar_include TYPE progname, l_function TYPE flag, l_function_include TYPE progname, l_i TYPE syindex, l_include_count TYPE syindex, l_include_index TYPE sytabix, l_include_lines TYPE syindex, l_index_lines TYPE syindex, l_index_old_line_to TYPE syindex, l_level_dif TYPE syindex, l_level_t TYPE sytabix, l_lv_level_new TYPE level_levl, l_lv_level_old TYPE level_levl, l_msg(256), l_next TYPE syindex, l_next_level TYPE syindex, l_offset_lines TYPE syindex, l_offset_old_incl_anw TYPE syindex, l_old_level_lines TYPE sytabix, l_old_next_level TYPE sytabix, l_overflow_area(65535), l_source_lines TYPE syindex, l_stm_from TYPE stmnt_from, l_stm_index TYPE sytabix, l_stm_level TYPE stmnt_levl, l_str(255), l_tabix TYPE sytabix. FIELD-SYMBOLS: , type st_offset. CALL FUNCTION 'RS_WORKING_AREA_INIT'. IF i_src_name NE space AND i_progname NE space. READ REPORT i_progname INTO lt_source. SCAN ABAP-SOURCE lt_source TOKENS INTO lh_tk STATEMENTS INTO stm LEVELS INTO lv OVERFLOW INTO l_overflow_area PROGRAM FROM i_progname MESSAGE INTO l_msg WITH INCLUDES WITHOUT TRMAC WITH ANALYSIS. ELSE. lt_source[] = it_src[]. SCAN ABAP-SOURCE lt_source TOKENS INTO lh_tk STATEMENTS INTO stm LEVELS INTO lv OVERFLOW INTO l_overflow_area PROGRAM FROM i_src_name MESSAGE INTO l_msg WITH INCLUDES WITHOUT TRMAC WITH ANALYSIS. ENDIF. CLEAR: l_lv_level_new, l_lv_level_old. DESCRIBE TABLE lt_source LINES l_source_lines. l_tabix = 1. DO. READ TABLE stm INDEX l_tabix. IF sy-subrc NE 0. EXIT. ENDIF. l_stm_index = l_tabix. l_tabix = l_tabix + 1. l_stm_from = stm-from. l_stm_level = stm-level. CLEAR: l_diff_new, l_diff_end. READ TABLE lh_tk INDEX l_stm_from. IF sy-subrc = 0 AND ( lh_tk-str = 'INCLUDE' OR lh_tk-str = 'FUNCTION' ). IF lh_tk-str = 'FUNCTION'. l_function = abap_true. l_function_include = ls_index-include. l_dollar_include = ls_index-include. l_i = strlen( l_dollar_include ) - 3. ASSIGN l_dollar_include+l_i(1) TO . IF = 'U'. = '$'. ELSE. l_function = abap_false. CLEAR l_dollar_include. ENDIF. ELSE. l_function = abap_false. ENDIF. l_next = l_stm_from + 1. READ TABLE lh_tk INDEX l_next. IF sy-subrc = 0 AND lh_tk-str NE 'STRUCTURE' AND lh_tk-str NE 'TYPE' AND lh_tk-str NE '=' AND lh_tk-str NE '$$UNIT$$'. IF l_function = abap_true. ls_index-include = l_dollar_include. ELSE. CASE lh_tk-ovfl. WHEN space. ASSIGN lh_tk-str TO . WHEN 'X'. ASSIGN l_overflow_area TO . WHEN 'O'. EXIT. ENDCASE. IF lh_tk-len1 > 0. ASSIGN +lh_tk-off1(lh_tk-len1) TO . ENDIF. l_str = . IF l_str(1) = ''''. SHIFT l_str BY 1 PLACES. ENDIF. ls_index-include = l_str. ENDIF. IF i_src_name NE space AND i_src_name = l_function_include AND l_function = abap_true. CONTINUE. ENDIF. IF ls_index-include = i_replace. CONTINUE. ENDIF. IF l_stm_level NE 0. READ TABLE lv INDEX l_stm_level. l_lv_level_new = lv-level + 1. DESCRIBE TABLE ct_index LINES l_index_lines. IF lv-level = 0 AND l_index_lines = 0. IF lv-stmnt = 0. ELSE. READ TABLE stm INDEX lv-stmnt. ENDIF. READ TABLE lh_tk INDEX stm-from. DESCRIBE TABLE ct_index LINES l_index_lines. IF i_src_name NE space AND i_src_name = ls_index-include AND i_progname NE i_src_name. lt_include[] = it_src[]. ELSE. READ REPORT ls_index-include INTO lt_include. ENDIF. DESCRIBE TABLE lt_include LINES l_include_lines. DESCRIBE TABLE lt_source LINES l_source_lines. IF stm-level = 1 AND l_index_lines = 0.. IF i_src_name NE space. ls_index_t-include = i_progname. ELSE. ls_index_t-include = i_src_name. ENDIF. ls_index_t-line_to = l_include_lines + l_source_lines - 1. ls_index_t-line_from = 1. ls_index_t-level = 0. APPEND ls_index_t TO ct_index. ls_index-level = lv-level + 1. ls_index-line_to = l_include_lines + lh_tk-row - 1. ls_index-line_from = lh_tk-row. ls_offset-index = lh_tk-row. ls_offset-length = l_source_lines. APPEND ls_offset to lt_offset. l_offset_old_incl_anw = lh_tk-row. ELSEIF stm-level > 1 AND l_index_lines = 0. IF i_src_name NE space. ls_index_t-include = i_progname. ELSE. ls_index_t-include = i_src_name. ENDIF. ls_index_t-line_to = ls_index-line_to + lh_tk-row.. ls_index_t-line_from = 1. ls_index_t-level = 0. APPEND ls_index_t TO ct_index. ls_index-level = lv-level + 1. ls_index-line_to = ls_index-line_to + lh_tk-row. ls_index-line_from = ls_index-line_from + lh_tk-row. l_offset_old_incl_anw = lh_tk-row. ELSE. ls_index-level = lv-level + 1. IF l_lv_level_new < l_lv_level_old. READ TABLE lt_offset into ls_offset INDEX l_lv_level_new. l_next_level = l_lv_level_new - 1. l_diff_end = ls_offset-length - ls_offset-index - 1. READ TABLE lt_offset into ls_offset INDEX l_next_level. l_offset_old_incl_anw = ls_offset-index. l_diff_new = lh_tk-row - l_offset_old_incl_anw. l_index_old_line_to = ls_index-line_to. ls_index-line_to = ls_index-line_to + l_include_lines + l_diff_new + l_diff_end - 1 . LOOP AT ct_index INTO ls_index_t. IF ls_index_t-level < l_lv_level_new. ls_index_t-line_to = ls_index_t-line_to + l_include_lines + l_diff_new + l_diff_end. MODIFY ct_index FROM ls_index_t . ENDIF. ENDLOOP. ELSE. l_next_level = l_lv_level_new. READ TABLE lt_offset assigning INDEX l_next_level. IF sy-subrc = 0. -index = lh_tk-row. ENDIF. l_index_old_line_to = ls_index-line_to. ls_index-line_to = ls_index-line_to + lh_tk-row + l_include_lines. ls_index-line_from = ls_index-line_from + lh_tk-row. LOOP AT ct_index INTO ls_index_t. IF ls_index_t-level < l_lv_level_new. ls_index_t-line_to = ls_index_t-line_to + l_include_lines + lh_tk-row. MODIFY ct_index FROM ls_index_t . ENDIF. ENDLOOP. ENDIF. IF l_lv_level_new > l_lv_level_old. ls_index-line_from = ls_index-line_from + lh_tk-row. ELSEIF l_lv_level_new < l_lv_level_old. ls_index-line_from = l_index_old_line_to + l_diff_new + l_diff_end. ELSE. l_diff_new = lh_tk-row - l_offset_old_incl_anw. l_offset_old_incl_anw = lh_tk-row. ls_index-line_from = l_index_old_line_to + l_diff_new. ENDIF. ENDIF. IF lv-stmnt = 0. READ TABLE stm INDEX l_stm_index. ELSE. READ TABLE stm INDEX lv-stmnt. ENDIF. READ TABLE lh_tk INDEX stm-from. IF lh_tk-str = 'INCLUDE'. IF lv-stmnt = 0. l_include_index = lh_tk-row. ELSE. l_include_index = ls_index-line_from + lh_tk-row - 1. ENDIF. DELETE lt_source INDEX l_include_index. INSERT LINES OF lt_include INTO lt_source INDEX l_include_index. ENDIF. l_lv_level_old = l_lv_level_new. ELSE. ls_index-level = lv-level + 1. IF l_lv_level_new > l_lv_level_old. l_source_lines = l_include_lines. ENDIF. IF i_src_name NE space AND i_src_name = ls_index-include AND i_progname NE i_src_name. lt_include[] = it_src[]. ELSE. READ REPORT ls_index-include INTO lt_include. ENDIF. DESCRIBE TABLE lt_include LINES l_include_lines. READ TABLE lh_tk INDEX l_stm_from. IF l_lv_level_new > l_lv_level_old. l_next_level = l_lv_level_new. READ TABLE lt_offset assigning INDEX l_next_level. IF sy-subrc = 0. l_offset_old_incl_anw = lh_tk-row. -index = l_offset_old_incl_anw. -length = l_source_lines. ELSE. DESCRIBE TABLE lt_offset LINES l_offset_lines. l_level_dif = l_next_level - l_offset_lines - 1. IF l_level_dif > 0. CLEAR ls_offset. WHILE l_level_dif > 0. APPEND ls_offset to lt_offset. SUBTRACT 1 FROM l_level_dif. ENDWHILE. ENDIF. l_offset_old_incl_anw = lh_tk-row. ls_offset-index = l_offset_old_incl_anw. ls_offset-length = l_source_lines. APPEND ls_offset to lt_offset. ENDIF. ls_index-line_to = ls_index-line_from + l_include_lines + lh_tk-row - 2. SORT ct_index BY line_from DESCENDING line_to ASCENDING. REFRESH lt_old_level. CLEAR l_old_level_lines. LOOP AT ct_index INTO ls_index_t. CLEAR ls_old_level. IF ls_index_t-level < l_lv_level_new. IF l_old_level_lines > 0. READ TABLE lt_old_level INTO ls_old_level WITH KEY level = ls_index_t-level. IF sy-subrc NE 0. ls_old_level-level = ls_index_t-level. APPEND ls_old_level TO lt_old_level. l_old_level_lines = l_old_level_lines + 1. ls_index_t-line_to = ls_index_t-line_to + l_include_lines - 1. MODIFY ct_index FROM ls_index_t. ENDIF. ELSE. ls_old_level-level = ls_index_t-level. APPEND ls_old_level TO lt_old_level. l_old_level_lines = l_old_level_lines + 1. ls_index_t-line_to = ls_index_t-line_to + l_include_lines - 1. MODIFY ct_index FROM ls_index_t. ENDIF. ENDIF. ENDLOOP. SORT ct_index BY line_from ASCENDING line_to DESCENDING. ELSEIF l_lv_level_new < l_lv_level_old. READ TABLE lh_tk INDEX l_stm_from. CLEAR ls_offset. READ TABLE lt_offset into ls_offset INDEX l_lv_level_old. CLEAR: l_diff_end, l_diff_new. l_next_level = l_lv_level_old. WHILE l_next_level > l_lv_level_new. l_old_next_level = l_next_level. l_next_level = l_next_level - 1. l_diff_end = l_diff_end + ls_offset-length - ls_offset-index. CLEAR ls_offset. MODIFY lt_offset from ls_offset INDEX l_old_next_level. READ TABLE lt_offset into ls_offset INDEX l_next_level. IF sy-subrc = 0. l_offset_old_incl_anw = ls_offset-index. ELSE. CLEAR ls_offset. ENDIF. ENDWHILE. READ TABLE lt_offset assigning INDEX l_next_level. IF sy-subrc = 0. -index = lh_tk-row. ENDIF. l_diff_new = l_diff_new + lh_tk-row - l_offset_old_incl_anw. l_offset_old_incl_anw = lh_tk-row. l_index_old_line_to = ls_index-line_to. ls_index-line_to = ls_index-line_to + l_include_lines + l_diff_new + l_diff_end - 1. SORT ct_index BY line_from DESCENDING. REFRESH lt_old_level. CLEAR l_old_level_lines. READ TABLE stm INDEX lv-stmnt. LOOP AT ct_index INTO ls_index_t. IF ls_index_t-level < l_lv_level_new. IF l_old_level_lines > 0. READ TABLE lt_old_level INTO ls_old_level WITH KEY level = ls_index_t-level. IF sy-subrc NE 0. ls_old_level-level = ls_index_t-level. APPEND ls_old_level TO lt_old_level. ADD 1 TO l_old_level_lines. ls_index_t-line_to = ls_index_t-line_to + l_include_lines - 1. MODIFY ct_index FROM ls_index_t . ENDIF. ELSE. IF ls_index_t-level < l_lv_level_new. ls_old_level-level = ls_index_t-level. APPEND ls_old_level TO lt_old_level. l_old_level_lines = l_old_level_lines + 1. ls_index_t-line_to = ls_index_t-line_to + l_include_lines - 1. ELSE. ls_old_level-level = ls_index_t-level. APPEND ls_old_level TO lt_old_level. l_old_level_lines = l_old_level_lines + 1. ls_index_t-line_to = ls_index_t-line_to. ENDIF. MODIFY ct_index FROM ls_index_t . ENDIF. ENDIF. ENDLOOP. SORT ct_index BY line_from ASCENDING. ELSE. READ TABLE lh_tk INDEX l_stm_from. l_diff_new = lh_tk-row - l_offset_old_incl_anw. l_offset_old_incl_anw = lh_tk-row. l_next_level = l_lv_level_new. READ TABLE lt_offset assigning INDEX l_next_level. IF sy-subrc = 0. -index = lh_tk-row. ENDIF. l_index_old_line_to = ls_index-line_to. ls_index-line_to = ls_index-line_to + l_include_lines + l_diff_new - 1. SORT ct_index BY line_from DESCENDING. REFRESH lt_old_level. CLEAR l_old_level_lines. LOOP AT ct_index INTO ls_index_t. l_level_t = l_lv_level_new - 1. IF ls_index_t-level = l_level_t. IF ls_index_t-level < l_lv_level_new. IF l_old_level_lines > 0. READ TABLE lt_old_level INTO ls_old_level WITH KEY level = ls_index_t-level. IF sy-subrc NE 0. ls_old_level-level = ls_index_t-level. APPEND ls_old_level TO lt_old_level. ADD 1 TO l_old_level_lines. ls_index_t-line_to = ls_index_t-line_to + l_include_lines - 1. MODIFY ct_index FROM ls_index_t . ENDIF. ELSE. ls_old_level-level = ls_index_t-level. APPEND ls_old_level TO lt_old_level. ADD 1 TO l_old_level_lines. ls_index_t-line_to = ls_index_t-line_to + l_include_lines - 1. MODIFY ct_index FROM ls_index_t . ENDIF. ENDIF. ELSE. IF ls_index_t-level < l_lv_level_new. IF l_old_level_lines > 0. READ TABLE lt_old_level INTO ls_old_level WITH KEY level = ls_index_t-level. IF sy-subrc NE 0. ls_old_level-level = ls_index_t-level. APPEND ls_old_level TO lt_old_level. ADD 1 TO l_old_level_lines. ls_index_t-line_to = ls_index_t-line_to + l_include_lines - 1. MODIFY ct_index FROM ls_index_t . ENDIF. ELSE. ls_old_level-level = ls_index_t-level. APPEND ls_old_level TO lt_old_level. ADD 1 TO l_old_level_lines. ls_index_t-line_to = ls_index_t-line_to + l_include_lines - 1. MODIFY ct_index FROM ls_index_t . ENDIF. ENDIF. ENDIF. ENDLOOP. SORT ct_index BY line_from ASCENDING. ENDIF. IF l_lv_level_new > l_lv_level_old. ls_index-line_from = ls_index-line_from + lh_tk-row - 1. ELSEIF l_lv_level_new < l_lv_level_old. ls_index-line_from = l_index_old_line_to + l_diff_new + l_diff_end. ELSE. l_offset_old_incl_anw = lh_tk-row. ls_index-line_from = l_index_old_line_to + l_diff_new. ENDIF. READ TABLE lh_tk INDEX stm-from. IF lh_tk-str = 'INCLUDE' OR lh_tk-str = 'FUNCTION'. l_include_index = ls_index-line_from. READ TABLE lt_source INTO ls_source INDEX l_include_index. IF sy-subrc = 0. IF ( ls_source-line CS 'INCLUDE' AND ls_source-line CS ls_index-include ) OR ( ls_source-line CS 'FUNCTION' AND ls_source-line NS '$$UNIT$$' ). DELETE lt_source INDEX l_include_index. INSERT LINES OF lt_include INTO lt_source INDEX l_include_index. ENDIF. ENDIF. ENDIF. l_lv_level_old = l_lv_level_new. ENDIF. ELSE. READ TABLE lh_tk INDEX l_stm_from. ls_index-line_from = lh_tk-row. ENDIF. APPEND ls_index TO ct_index. ENDIF. ENDIF. ENDDO. SORT ct_index BY line_from ASCENDING line_to DESCENDING. ct_src_no_includes[] = lt_source[]. 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: TYPE dd03l, TYPE ANY, 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 . IF -fieldname+0(1) = '.'. CONTINUE. ENDIF. IF NOT l_csv IS INITIAL. CONCATENATE l_csv ';' INTO l_csv. ENDIF. l_len = -intlen. l_length = l_len. CONDENSE l_length. CONCATENATE l_csv '"' -fieldname '(' -inttype l_length ')"' INTO l_csv. ENDLOOP. APPEND l_csv TO ct_csv. CREATE DATA ls_fs TYPE (i_tabname). ASSIGN ls_fs->* TO . SELECT * FROM (i_tabname) INTO . CLEAR l_csv. LOOP AT lt_dd03l ASSIGNING . CLEAR l_value. IF -fieldname+0(1) = '.'. CONTINUE. ENDIF. IF NOT -datatype = 'RAWSTRING'. ASSIGN COMPONENT -fieldname OF STRUCTURE TO . 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: TYPE dd03l, TYPE ANY, TYPE ANY. REFRESH ct_xml. SELECT * FROM dd03l INTO TABLE lt_dd03l WHERE tabname = i_tabname AND as4local = 'A' ORDER BY position. APPEND '' TO ct_xml. APPEND '' TO ct_xml. APPEND '' 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 . IF NOT IS INITIAL. 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 '' ls_dd02t-ddtext '' INTO l_xml. APPEND l_xml TO ct_xml. ENDSELECT. APPEND '
' TO ct_xml. LOOP AT lt_dd03l ASSIGNING . IF -fieldname+0(1) = '.'. CONTINUE. ENDIF. APPEND '' 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 TO . l_value = . IF NOT IS INITIAL. PERFORM encode_html CHANGING l_value. TRANSLATE l_fieldname TO LOWER CASE. CONCATENATE '<' l_fieldname '>' l_value '' INTO l_xml. APPEND l_xml TO ct_xml. ENDIF. ENDSELECT. SELECT * FROM dd03t INTO ls_dd03t WHERE tabname = -tabname AND fieldname = -fieldname AND as4local = 'A'. CONCATENATE '' ls_dd03t-ddtext '' INTO l_xml. APPEND l_xml TO ct_xml. ENDSELECT. APPEND '' TO ct_xml. ENDLOOP. APPEND '
' TO ct_xml. APPEND '' TO ct_xml. CREATE DATA ls_fs TYPE (i_tabname). ASSIGN ls_fs->* TO . SELECT * FROM (i_tabname) INTO . CLEAR l_xml. APPEND '' TO ct_xml. LOOP AT lt_dd03l ASSIGNING . IF -fieldname+0(1) = '.'. CONTINUE. ENDIF. CLEAR l_value. IF NOT -datatype = 'RAWSTRING'. ASSIGN COMPONENT -fieldname OF STRUCTURE TO . l_value = . PERFORM encode_html CHANGING l_value. ENDIF. IF NOT IS INITIAL. IF -fieldname(1) = '.'. -fieldname(1) = '_'. ENDIF. CONCATENATE '' l_value '' INTO l_xml. APPEND l_xml TO ct_xml. ENDIF. ENDLOOP. APPEND '' TO ct_xml. IF sy-dbcnt = g_add_db_max_lines. EXIT. ENDIF. ENDSELECT. APPEND '
' 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 '

Version 3, 29 June 2007

' '

Copyright © 2007 Free Software Foundation, Inc.' ' <http://fsf.org/>

' '

Everyone is permitted to copy and distribute verbatim copies' ' of this license document, but changing it is not allowed.

' INTO ls_html. APPEND ls_html TO ct_html. APPEND '

Preamble

' TO ct_html. CONCATENATE '

The GNU General Public License is a free, copyleft license for' ' software and other kinds of works.

' INTO ls_html. APPEND ls_html TO ct_html. CONCATENATE '

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.

' INTO ls_html. APPEND ls_html TO ct_html. CONCATENATE '

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.

' INTO ls_html. APPEND ls_html TO ct_html. CONCATENATE '

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.

' INTO ls_html. APPEND ls_html TO ct_html. CONCATENATE '

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.

' INTO ls_html. APPEND ls_html TO ct_html. CONCATENATE '

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.

' INTO ls_html. APPEND ls_html TO ct_html. CONCATENATE '

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.

' INTO ls_html. APPEND ls_html TO ct_html. CONCATENATE '

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.

' INTO ls_html. APPEND ls_html TO ct_html. CONCATENATE '

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.

' INTO ls_html. APPEND ls_html TO ct_html. CONCATENATE '

The precise terms and conditions for copying, distribution and' ' modification follow.

' INTO ls_html. APPEND ls_html TO ct_html. APPEND '

TERMS AND CONDITIONS

' TO ct_html. APPEND '

0. Definitions.

' TO ct_html. CONCATENATE '

“This License” refers to version 3 of the GNU' ' General Public License.

' INTO ls_html. APPEND ls_html TO ct_html. CONCATENATE '

“Copyright” also means copyright-like laws that' ' apply to other kinds of works, such as semiconductor masks.

' INTO ls_html. APPEND ls_html TO ct_html. CONCATENATE '

“The Program” refers to any copyrightable work' ' licensed under this License. Each licensee is addressed as' ' “you”. “Licensees” and' ' “recipients” may be individuals or organizations.

' INTO ls_html. APPEND ls_html TO ct_html. CONCATENATE '

To “modify” 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 “modified version” of the earlier work or a' ' work “based on” the earlier work.

' INTO ls_html. APPEND ls_html TO ct_html. CONCATENATE '

A “covered work” means either the unmodified' ' Program or a work based on the Program.

' INTO ls_html. APPEND ls_html TO ct_html. CONCATENATE '

To “propagate” 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.

' INTO ls_html. APPEND ls_html TO ct_html. CONCATENATE '

To “convey” 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.

' INTO ls_html. APPEND ls_html TO ct_html. CONCATENATE '

An interactive user interface displays “Appropriate Legal' ' Notices” 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.

' INTO ls_html. APPEND ls_html TO ct_html. APPEND '

1. Source Code.

' TO ct_html. CONCATENATE '

The “source code” for a work means the preferred' ' form of the work for making modifications to it. “Object' ' code” means any non-source form of a work.

' INTO ls_html. APPEND ls_html TO ct_html. CONCATENATE '

A “Standard Interface” 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.

' INTO ls_html. APPEND ls_html TO ct_html. CONCATENATE '

The “System Libraries” 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' ' “Major Component”, 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.

' INTO ls_html. APPEND ls_html TO ct_html. CONCATENATE '

The “Corresponding Source” 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.

' INTO ls_html. APPEND ls_html TO ct_html. CONCATENATE '

The Corresponding Source need not include anything that users' ' can regenerate automatically from other parts of the' ' Corresponding Source.

' INTO ls_html. APPEND ls_html TO ct_html. CONCATENATE '

The Corresponding Source for a work in source code form is that' ' same work.

' INTO ls_html. APPEND ls_html TO ct_html. APPEND '

2. Basic Permissions.

' TO ct_html. CONCATENATE '

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.

' INTO ls_html. APPEND ls_html TO ct_html. CONCATENATE '

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.

' INTO ls_html. APPEND ls_html TO ct_html. CONCATENATE '

Conveying under any other circumstances is permitted solely' ' under the conditions stated below. Sublicensing is not allowed;' ' section 10 makes it unnecessary.

' INTO ls_html. APPEND ls_html TO ct_html. CONCATENATE '

3. Protecting Users'' Legal Rights From' ' Anti-Circumvention Law.

' INTO ls_html. APPEND ls_html TO ct_html. CONCATENATE '

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.

' INTO ls_html. APPEND ls_html TO ct_html. CONCATENATE '

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.' '

' INTO ls_html. APPEND ls_html TO ct_html. APPEND '

4. Conveying Verbatim Copies.

' TO ct_html. CONCATENATE '

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.

' INTO ls_html. APPEND ls_html TO ct_html. CONCATENATE '

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.

' INTO ls_html. APPEND ls_html TO ct_html. CONCATENATE '

5. Conveying Modified Source' ' Versions.

' INTO ls_html. APPEND ls_html TO ct_html. CONCATENATE '

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:

' INTO ls_html. APPEND ls_html TO ct_html. CONCATENATE '
    ' '
  • a) The work must carry prominent notices stating that you' ' modified it, and giving a relevant date.
  • ' INTO ls_html. APPEND ls_html TO ct_html. CONCATENATE '
  • 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 “keep intact all notices”.
  • ' INTO ls_html. APPEND ls_html TO ct_html. CONCATENATE '
  • 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.' '
  • ' INTO ls_html. APPEND ls_html TO ct_html. CONCATENATE '
  • 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.
  • ' '
' INTO ls_html. APPEND ls_html TO ct_html. CONCATENATE '

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 “aggregate” 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.

' INTO ls_html. APPEND ls_html TO ct_html. APPEND '

6. Conveying Non-Source Forms.

' TO ct_html. CONCATENATE '

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:

' INTO ls_html. APPEND ls_html TO ct_html. CONCATENATE '
    ' '
  • 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.
  • ' INTO ls_html. APPEND ls_html TO ct_html. CONCATENATE '
  • 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.' '
  • ' INTO ls_html. APPEND ls_html TO ct_html. CONCATENATE '
  • 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.
  • ' INTO ls_html. APPEND ls_html TO ct_html. CONCATENATE '
  • 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.' '
  • ' INTO ls_html. APPEND ls_html TO ct_html. CONCATENATE '
  • 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.
  • ' '
' INTO ls_html. APPEND ls_html TO ct_html. CONCATENATE '

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.

' INTO ls_html. APPEND ls_html TO ct_html. CONCATENATE '

A “User Product” is either (1) a “consumer' ' product”, 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, “normally used”' ' 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.

' INTO ls_html. APPEND ls_html TO ct_html. CONCATENATE '

“Installation Information” 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.

' INTO ls_html. APPEND ls_html TO ct_html. CONCATENATE '

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).

' INTO ls_html. APPEND ls_html TO ct_html. CONCATENATE '

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.

' INTO ls_html. APPEND ls_html TO ct_html. CONCATENATE '

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.

' INTO ls_html. APPEND ls_html TO ct_html. APPEND '

7. Additional Terms.

' TO ct_html. CONCATENATE '

“Additional permissions” 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.

' INTO ls_html. APPEND ls_html TO ct_html. CONCATENATE '

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.

' INTO ls_html. APPEND ls_html TO ct_html. CONCATENATE '

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:

' INTO ls_html. APPEND ls_html TO ct_html. CONCATENATE '
    ' '
  • a) Disclaiming warranty or limiting liability differently from' ' the terms of sections 15 and 16 of this License; or
  • ' INTO ls_html. APPEND ls_html TO ct_html. CONCATENATE '
  • 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
  • ' INTO ls_html. APPEND ls_html TO ct_html. CONCATENATE '
  • 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
  • ' INTO ls_html. APPEND ls_html TO ct_html. CONCATENATE '
  • d) Limiting the use for publicity purposes of names of' ' licensors or authors of the material; or
  • ' INTO ls_html. APPEND ls_html TO ct_html. CONCATENATE '
  • e) Declining to grant rights under trademark law for use of' ' some trade names, trademarks, or service marks; or
  • ' INTO ls_html. APPEND ls_html TO ct_html. CONCATENATE '
  • 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.
  • ' '
' INTO ls_html. APPEND ls_html TO ct_html. CONCATENATE '

All other non-permissive additional terms are considered' ' “further restrictions” 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.

' INTO ls_html. APPEND ls_html TO ct_html. CONCATENATE '

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.

' INTO ls_html. APPEND ls_html TO ct_html. CONCATENATE '

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.

' INTO ls_html. APPEND ls_html TO ct_html. APPEND '

8. Termination.

' TO ct_html. CONCATENATE '

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).

' INTO ls_html. APPEND ls_html TO ct_html. CONCATENATE '

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.

' INTO ls_html. APPEND ls_html TO ct_html. CONCATENATE '

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.

' INTO ls_html. APPEND ls_html TO ct_html. CONCATENATE '

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.' '

' INTO ls_html. APPEND ls_html TO ct_html. CONCATENATE '

9. Acceptance Not Required for Having' ' Copies.

' INTO ls_html. APPEND ls_html TO ct_html. CONCATENATE '

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.

' INTO ls_html. APPEND ls_html TO ct_html. CONCATENATE '

10. Automatic Licensing of Downstream' ' Recipients.

' INTO ls_html. APPEND ls_html TO ct_html. CONCATENATE '

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.

' INTO ls_html. APPEND ls_html TO ct_html. CONCATENATE '

An “entity transaction” 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.

' INTO ls_html. APPEND ls_html TO ct_html. CONCATENATE '

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.

' INTO ls_html. APPEND ls_html TO ct_html. APPEND '

11. Patents.

' TO ct_html. CONCATENATE '

A “contributor” 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 “contributor version”.

' INTO ls_html. APPEND ls_html TO ct_html. CONCATENATE '

A contributor''s “essential patent claims” 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,' ' “control” includes the right to grant patent' ' sublicenses in a manner consistent with the requirements of this' ' License.

' INTO ls_html. APPEND ls_html TO ct_html. CONCATENATE '

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.

' INTO ls_html. APPEND ls_html TO ct_html. CONCATENATE '

In the following three paragraphs, a “patent' ' license” 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 “grant” such a patent license to a' ' party means to make such an agreement or commitment not to' ' enforce a patent against the party.

' INTO ls_html. APPEND ls_html TO ct_html. CONCATENATE '

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. “Knowingly relying” 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.

' INTO ls_html. APPEND ls_html TO ct_html. CONCATENATE '

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.

' INTO ls_html. APPEND ls_html TO ct_html. CONCATENATE '

A patent license is “discriminatory” 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.

' INTO ls_html. APPEND ls_html TO ct_html. CONCATENATE '

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.

' INTO ls_html. APPEND ls_html TO ct_html. CONCATENATE '

12. No Surrender of Others'' Freedom.' '

' INTO ls_html. APPEND ls_html TO ct_html. CONCATENATE '

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.

' INTO ls_html. APPEND ls_html TO ct_html. CONCATENATE '

13. Use with the GNU Affero General' ' Public License.

' INTO ls_html. APPEND ls_html TO ct_html. CONCATENATE '

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.

' INTO ls_html. APPEND ls_html TO ct_html. CONCATENATE '

14. Revised Versions of this License.' '

' INTO ls_html. APPEND ls_html TO ct_html. CONCATENATE '

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.

' INTO ls_html. APPEND ls_html TO ct_html. CONCATENATE '

Each version is given a distinguishing version number. If the' ' Program specifies that a certain numbered version of the GNU' ' General Public License “or any later version” 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.

' INTO ls_html. APPEND ls_html TO ct_html. CONCATENATE '

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.

' INTO ls_html. APPEND ls_html TO ct_html. CONCATENATE '

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.

' INTO ls_html. APPEND ls_html TO ct_html. APPEND '

15. Disclaimer of Warranty.

' TO ct_html. CONCATENATE '

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' ' “AS IS” 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.' '

' INTO ls_html. APPEND ls_html TO ct_html. APPEND '

16. Limitation of Liability.

' TO ct_html. CONCATENATE '

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.

' INTO ls_html. APPEND ls_html TO ct_html. CONCATENATE '

17. Interpretation of Sections 15 and' ' 16.

' INTO ls_html. APPEND ls_html TO ct_html. CONCATENATE '

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.

' 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ä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ü 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ährung/Mengenfeld|' 'TXTT_CURRENCY_QUANTITY_FIELD;E;Currency/Quantity field|' 'TXTT_ENTRY_HELP_CHECK;D;Eingabehilfe/Prü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ü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;ü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ü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äten|' 'TXT_ACTIVITIES;E;Activities|' 'TXT_ACTIVITY;D;Aktivitä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ü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ä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ß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übergabe|' 'TXT_CALL_BY_REF;E;Call by ref.|' 'TXT_CATEGORY;D;Kategorie|' 'TXT_CATEGORY;E;Category|' 'TXT_CHANGED_ON;D;Änderungsdatum|' 'TXT_CHANGED_ON;E;Changed on|' 'TXT_CHANGES_ARE_RECORDED;D;Mit Änderungsaufzeichnung|' space into ls_csv. append ls_csv to ct_csv. concatenate 'TXT_CHANGES_ARE_RECORDED;E;Changes are recorded|' 'TXT_CHANGE_DOCUMENT;D;Änderungsbeleg|' 'TXT_CHANGE_DOCUMENT;E;Change document|' 'TXT_CHANGING;D;Changing|' 'TXT_CHANGING;E;Changing|' 'TXT_CHECK;D;Prüfung|' 'TXT_CHECK;E;Check|' 'TXT_CHECK_TABLE;D;Prü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ü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ä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ü|' '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ü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ängig|' 'TXT_CROSS_CLIENT;E;Cross-client|' 'TXT_CUA_LOAD;D;CUA-Load|' 'TXT_CUA_LOAD;E;CUA load|' 'TXT_CURRENCY;D;Wä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ä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ü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äne|' 'TXT_DOMAIN;E;Domain|' 'TXT_DOMAINS;D;Domä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ü|' '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;Ä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ü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ä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ä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ächenstatus|' 'TXT_GUI_STATUS;E;GUI status|' 'TXT_GUI_SUPPORT;D;GUI-Fähigkeit|' 'TXT_GUI_SUPPORT;E;GUI support|' 'TXT_HEADING;D;Überschrift|' 'TXT_HEADING;E;Heading|' 'TXT_HEIGHT;D;Hö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ö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 ü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üssel|' 'TXT_KEY;E;Key|' 'TXT_KEY_ATTRIBUTE_DEFINED_FOR1;D;Schlü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üsselart|' 'TXT_KEY_CATEGORY;E;Key category|' 'TXT_KEY_COMPONENTS;D;Schlüsselkomponenten|' 'TXT_KEY_COMPONENTS;E;Key components|' 'TXT_KEY_DEFINITION;D;Schlü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 Änderung|' 'TXT_LAST_CHANGED;E;Last Changed|' 'TXT_LAST_CHANGED_AT;D;Änderungszeit|' 'TXT_LAST_CHANGED_AT;E;Last changed at|' 'TXT_LAST_CHANGED_BY___1;D;Letzte Änderung|' 'TXT_LAST_CHANGED_BY___1;E;Last changed by|' 'TXT_LAST_CHANGED_BY___2;D;letzter Änderer|' 'TXT_LAST_CHANGED_BY___2;E;Last changed by|' 'TXT_LAST_CHANGED_BY___3;D;Letzter Änderer|' 'TXT_LAST_CHANGED_BY___3;E;Last changed by|' 'TXT_LAST_CHANGED_ON;D;letzte Änderung|' 'TXT_LAST_CHANGED_ON;E;Last Changed on|' 'TXT_LAST_CHANGED_ON_BY;D;Letzte Ä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ührende Nullen|' 'TXT_LEADING_ZEROS;E;Leading zeros|' 'TXT_LENGTH;D;Lä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überschrift|' 'TXT_LIST_HEADER;E;List header|' 'TXT_LIST_HEADINGS;D;Listenü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ä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ü|' '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änge ist unbeschrä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ü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ü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änge|' 'TXT_OUTPUT_LENGTH;E;Output length|' 'TXT_OUTPUT_ONLY;D;NurAusgabe|' 'TXT_OUTPUT_ONLY;E;Output only|' 'TXT_OVERVIEW_SCREEN;D;Ü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üfung als Client|' 'TXT_PACKAGE_CHECK_AS_CLIENT;E;Package Check as Client|' 'TXT_PACKAGE_CHECK_AS_SERVER;D;Paketprü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ückgabe von 'PAGE ' 'DONE' am Ende des BSP-Elements|' 'TXT_PAGE_DONE_IS_NOT_RETURNED_;E;"PAGE DONE" 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ü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ü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ä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ä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änken|' 'TXT_RESTRICT;E;restrict|' 'TXT_RIGHT_JUST;D;Rechtsbü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ür HTML|' 'TXT_SAPGUI_FOR_HTML;E;SAPGUI for HTML|' 'TXT_SAPGUI_FOR_JAVA;D;SAP GUI für Java|' 'TXT_SAPGUI_FOR_JAVA;E;SAPGUI fÃ#¼r Java|' 'TXT_SAPGUI_FOR_WINDOWS;D;SAP GUI fü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ä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ärend|' 'TXT_SELF_EXPLANATY;E;Self-exlanat'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ä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ä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ößenkategorie|' 'TXT_SIZE_CATEGORY;E;Size category|' 'TXT_SKIP_INITIAL_SCREEN;D;Einstiegsbild ü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ö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 ü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ü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ü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;Ä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;Ü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ü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ß-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ä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: TYPE string, TYPE ANY. REFRESH gt_table_structure. PERFORM csv_table_structure CHANGING lt_csv. LOOP AT lt_csv ASSIGNING . SPLIT 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 . ls_table-title = . UNASSIGN . 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: TYPE string, TYPE ANY. REFRESH gt_tabstrip. PERFORM csv_tabstrip CHANGING lt_csv. LOOP AT lt_csv ASSIGNING . SPLIT 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 . ls_tabstrip-text = . UNASSIGN . 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: TYPE string. REFRESH gt_text_element. PERFORM csv_text_elements_1 CHANGING lt_csv. LOOP AT lt_csv ASSIGNING . SPLIT 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 . SPLIT 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: TYPE string. REFRESH gt_varid_broken. PERFORM csv_varid_broken CHANGING lt_csv. LOOP AT lt_csv ASSIGNING . SPLIT 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: 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 . IF CS '../index.htm'. PERFORM replace_all USING '../index.htm' l_index_htm CHANGING . 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: 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 . IF +0(5) = '' space CHANGING . PERFORM replace_all USING '' space CHANGING . ENDLOOP. DO l_pos TIMES. DELETE lt_html INDEX 1. ENDDO. LOOP AT lt_html ASSIGNING . APPEND -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: 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_dom_value-text = -ddtext. ls_dom_value-value = -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: 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 . IF IS ASSIGNED. c_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: 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 . IF IS ASSIGNED. c_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: TYPE st_tabstrip. REFRESH ct_tabstrip. LOOP AT gt_tabstrip ASSIGNING WHERE form = i_form. IF NOT -comparator IS INITIAL. CASE -comparator. WHEN 'CO'. IF NOT i_comp_value CO -comp_value. CONTINUE. ENDIF. ENDCASE. ENDIF. APPEND 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: 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 WHERE active_order > 0 AND disabled = abap_false AND hidden = abap_false AND empty = abap_false. IF l_parent_id = -parent_id. CONTINUE. ENDIF. l_parent_id = -parent_id. -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: 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 . c_name_text = -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: 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 WITH KEY type = i_type. IF sy-subrc <> 0 AND l_index > 0. READ TABLE lt_version_info ASSIGNING INDEX l_index. ENDIF. IF sy-subrc = 0 AND IS ASSIGNED. c_value = -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 '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' 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 '' '' '' '' '' INTO ls_html. APPEND ls_html TO ct_html. ENDIF. IF is_attributes-display_appview = abap_true. CONCATENATE '' '' '' '' '' '' '' INTO ls_html. APPEND ls_html TO ct_html. ENDIF. APPEND '
' txt_last_changed_on_by '' '' l_bname '' '' l_date_last_changed '  
' txt_package '' l_devclass '' l_devclass_descr '
' txt_original_language '' l_laiso '' l_sptxt '
 
 
' '' '' '' '' '' '
' '' '' txt_allow_rfc '
' '
 
 
' txt_appending_view '' is_attributes-appview ' 
' 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 '' '' '' '' '' INTO ls_html. APPEND ls_html TO ct_html. IF is_attributes-space_after_descript = abap_true. CONCATENATE '' '' '' INTO ls_html. APPEND ls_html TO ct_html. ENDIF. CONCATENATE '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' INTO ls_html. APPEND ls_html TO ct_html. IF is_attributes-is_bsp_appl = abap_true. CONCATENATE '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' 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 '' '' '' '' '' INTO ls_html. APPEND ls_html TO ct_html. ENDIF. APPEND '
' txt_short_description___2 '' l_descript '
 
' txt_created_by___2 '' '' l_author '' ' ' txt_created_on '' l_date_created ' 
' txt_last_changed_by___2 '' '' l_bname '' ' ' txt_changed_on '' l_date_last_changed ' 
' txt_package '' '' l_devclass '' ' 
' txt_original_language '' '' l_laiso '' ' 
' txt_internal_name '' l_internal_name ' 
 
' txt_initial_bsp '' l_initial_bsp '
' txt_application_class '' l_application_class ' 
' txt_theme '' l_theme ' 
' '' INTO ls_html. APPEND ls_html TO ct_html. CLEAR l_checked. IF is_attributes-stateful = abap_true. l_checked = ' checked="checked"'. ENDIF. CONCATENATE '' '' '' '' 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 '' '' '' '' '
' '' '' txt_stateful '
' '' '' txt_supports_portal_integratio '
' '
 
 
' '' '' '' '' '' '
' '' '' txt_allow_rfc '
' '
' 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 '' '' '' '' '' '' '' '' '' '' '' '' '
' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '
' txt_short_description___1 '' l_descript '
' txt_original_language '' l_laiso '' l_sptxt '' txt_package '' '' l_devclass '' '
' txt_last_changed_on_by '' l_date_last_changed ' ' l_time_last_changed '  
' txt_last_generation '' l_date_last_generation ' ' l_time_last_generation '  
' '
 
' 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 ' ' TO ct_html. PERFORM html_add_box_textinputnodiv USING i_title_mr it_ti_mr CHANGING ct_html. CONCATENATE '
 
' 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 '
' 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 '' '' '' '' '' '' '' '' '' '' '' '' '
' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '
' txt_short_description___1 '' l_descript '
' txt_person_responsible___2 '' '' l_person_responsible '' ' 
' txt_created_by___2 '' '' l_created_by '' ' ' txt_created_on '' l_created_on ' 
' txt_last_changed_by___2 '' '' l_last_changed_by '' ' ' txt_changed_on '' l_changed_on ' 
' txt_application_component '' l_application_component '   
' '
 
' 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 '
 
' 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 '
' 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 '' '' '' '' '' '
' '' '' '' '' '
' '' i_title '' '
' '
' INTO ls_html. APPEND ls_html TO ct_html. ENDFORM. FORM html_add_box_end CHANGING ct_html TYPE it_string. APPEND '
' 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 '' '' '' '' '' '' '
' INTO ls_html. APPEND ls_html TO ct_html. PERFORM html_add_radiobuttonsnodiv USING 'boxz' it_accessmode CHANGING ct_html. CONCATENATE ' ' INTO ls_html. APPEND ls_html TO ct_html. PERFORM html_add_textinputnodiv USING it_ti CHANGING ct_html. CONCATENATE '
' 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 '' '' '' '' '' '' '' '
' INTO ls_html. APPEND ls_html TO ct_html. PERFORM html_add_radiobuttonsnodiv USING 'boxx' it_accessmode CHANGING ct_html. CONCATENATE '
' INTO ls_html. APPEND ls_html TO ct_html. PERFORM html_add_textinputnodiv USING it_ti CHANGING ct_html. CONCATENATE '
' 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 '' '' '' '' '' '' '' '' '
' INTO ls_html. APPEND ls_html TO ct_html. PERFORM html_add_radiobuttonsnodiv USING 'box' it_accessmode CHANGING ct_html. CONCATENATE '
 
' INTO ls_html. APPEND ls_html TO ct_html. PERFORM html_add_box_begin USING i_subtitle '3' CHANGING ct_html. CONCATENATE '' '' '' '' '' '' '
' INTO ls_html. APPEND ls_html TO ct_html. PERFORM html_add_textinputnodiv USING it_ti_l CHANGING ct_html. CONCATENATE ' ' INTO ls_html. APPEND ls_html TO ct_html. PERFORM html_add_textinputnodiv USING it_ti_r CHANGING ct_html. CONCATENATE '
' INTO ls_html. APPEND ls_html TO ct_html. PERFORM html_add_box_end CHANGING ct_html. CONCATENATE '
' 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 '' '' '' '' '' '' '' '' '
' INTO ls_html. APPEND ls_html TO ct_html. PERFORM html_add_textinputnodiv USING it_ti CHANGING ct_html. CONCATENATE '
 
' INTO ls_html. APPEND ls_html TO ct_html. PERFORM html_add_box_begin USING i_subtitle '1' CHANGING ct_html. CONCATENATE '' '' '' '' '' '' '' INTO ls_html. APPEND ls_html TO ct_html. CONCATENATE '' '' '' '' '' '' INTO ls_html. APPEND ls_html TO ct_html. CONCATENATE '' '' '' '' '' INTO ls_html. APPEND ls_html TO ct_html. CONCATENATE '' '' '' '' '' '
' txt_maintenance_type '' '' '' '' txt_one_step '' ' 
 ' '' '' '' txt_two_step '' ' 
' txt_maint_screen_no '' txt_overview_screen '' '' l_overview_screen '' '
 ' txt_single_screen '' '' l_single_screen '' '
' INTO ls_html. APPEND ls_html TO ct_html. PERFORM html_add_box_end CHANGING ct_html. CONCATENATE '
' 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 '' '' '' '' '' '' '' '' '' '' '
' 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 '
 
' 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 ' ' TO ct_html. PERFORM html_add_box_textinputnodiv USING i_title_ur it_ti_ur CHANGING ct_html. CONCATENATE '
' 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 '' '' '' '' '' '' '' '' '' '' '
' 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 ' ' 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 '
 
' 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 '
' 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 '' '' '' '' '' '' '' '' '
' 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 ' ' 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 '  
 
' '' '' ' ' '' '' 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 '' ' ' '' 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 '' '' '' '' '' '' '' '' '
' 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 '
 
' 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 '
' 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 '' '' '' '' '' '' '' INTO ls_html. APPEND ls_html TO ct_html. CONCATENATE '' '' '' '' '' '' INTO ls_html. APPEND ls_html TO ct_html. CONCATENATE '' '' '' '' '
' txt_recording_routine '' '' '' '' txt_standard_recording_routine '' ' 
 ' '' '' '' txt_no_or_user_recording_routi '' ' 
' txt_compare_flag '' '' i_compare_flag '' '
' 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 '' ' ' '' 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: 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 '' '' '' '' INTO ls_html. APPEND ls_html TO ct_html. APPEND '' TO ct_html. APPEND '
' '' '' INTO ls_html. APPEND ls_html TO ct_html. LOOP AT lt_tabstrip ASSIGNING WHERE hidden = abap_false AND parent_id = i_id. IF -disabled = abap_true. l_class = 'contentTabDisabled'. ELSEIF -active = abap_true. l_class = 'contentTabOn'. ELSE. l_class = 'contentTabOff'. ENDIF. IF -disabled = abap_false. CONCATENATE '' INTO ls_html. APPEND ls_html TO ct_html. ELSE. CONCATENATE '' INTO ls_html. APPEND ls_html TO ct_html. ENDIF. ENDLOOP. CONCATENATE '' '
' -text '' -text '
' '
' TO ct_html. ENDFORM. FORM html_add_container_end CHANGING ct_html TYPE it_string. APPEND '
' 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 '
' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' INTO ls_html. APPEND ls_html TO ct_html. IF is_data_type-reftype <> '#'. CONCATENATE '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' INTO ls_html. APPEND ls_html TO ct_html. ENDIF. CONCATENATE '
' '' '' txt_elementary_type '     
 ' '' '' txt_domain '' l_domname_1 '' l_domdescr_1 '
 ' txt_data_type '' l_datatype_1 '' l_datadescr_1 '
 ' txt_length '' l_dataleng_1 '' txt_decimal_places___m '' l_datadeci_1 '
 
 ' '' '' txt_built_in_type '' txt_data_type '' l_datatype_2 ' 
 ' txt_length '' l_dataleng_2 '' txt_decimal_places___m '' l_datadeci_2 '
' '' '' txt_reference_type ' 
 ' '' '' txt_name_of_ref_type '' l_reftypename_3 ' 
 
 ' '' '' txt_reference_to_predefined_ty ' 
 ' txt_data_type '' l_datatype_4 '' l_datadescr_4 '
 ' txt_length '' l_dataleng_4 '' txt_decimal_places___m '' l_datadeci_4 '
' '
' 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 '' '' '' '' '' '' '' '' '' '' '
' 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 '
 
' 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 '
' 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 '' '' '' '' '' '' '' '' '' '' '' '' '
' 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 '' 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 '
' '' '' '' '' '' '
' txt_search_help_exit '' l_selmexit '
' '
 
' '' '' '' '' '' '' '' '
' txt_parameters '
' 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 '
' '
' 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: 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 '' TO ct_html. IF NOT l_sqltab IS INITIAL. CONCATENATE '' '' '' '' INTO ls_html. APPEND ls_html TO ct_html. ENDIF. IF NOT it_access IS INITIAL. CONCATENATE '' '' '' INTO ls_html. APPEND ls_html TO ct_html. ENDIF. IF is_deliv_maint-display_cont = abap_true. CONCATENATE '' '' '' '' '' '' INTO ls_html. APPEND ls_html TO ct_html. ENDIF. IF is_deliv_maint-display_main = abap_true. CONCATENATE '' '' '' '' INTO ls_html. APPEND ls_html TO ct_html. ENDIF. APPEND '
' txt_pool_cluster '' l_sqltab '
' INTO ls_html. APPEND ls_html TO ct_html. PERFORM html_add_box_radiobuttonsnodiv USING txt_access 'access' it_access CHANGING ct_html. CONCATENATE '
' txt_delivery_class '' l_contflag '' l_contflag_text ' 
' txt_data_browser_table_view_ma '' l_mainflag_text '
' 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 '
' INTO ls_html. APPEND ls_html TO ct_html. ENDFORM. FORM html_add_div_end CHANGING ct_html TYPE it_string. APPEND '
' 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: TYPE string. PERFORM html_add_div_begin USING i_id i_on CHANGING ct_html. CONCATENATE '' '' '' '' '
' '
' INTO ls_html. APPEND ls_html TO ct_html. LOOP AT it_doc ASSIGNING . APPEND TO ct_html. ENDLOOP. CONCATENATE '
' '
' 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 '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '
 ' txt_length '' txt_field_label '
' txt_short '' l_scrlen_s ' ' l_scrtext_s ' 
' txt_medium '' l_scrlen_m ' ' l_scrtext_m ' 
' txt_long '' l_scrlen_l ' ' l_scrtext_l ' 
' txt_heading '' l_headlen ' ' l_reptext '
' 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 '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '
' 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 '
 
' txt_parameter_id '' l_memoryid '
 
' txt_default_component_name '' l_deffdname '
 
' '' '' '' '' '' '
' '' '' txt_change_document '
' '
' 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 '' TO ct_html. CONCATENATE '' '' '' '
' INTO ls_html. APPEND ls_html TO ct_html. IF NOT i_url IS INITIAL. CONCATENATE '' INTO ls_html. APPEND ls_html TO ct_html. ENDIF. CONCATENATE '
' 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 '' TO ct_html. IF NOT is_init_access-info1 IS INITIAL. CONCATENATE '' '' '' INTO ls_html. APPEND ls_html TO ct_html. ENDIF. IF is_init_access-unknown = abap_false. CONCATENATE '' '' '' '' '' INTO ls_html. APPEND ls_html TO ct_html. ENDIF. IF NOT is_init_access-info2 IS INITIAL. CONCATENATE '' '' '' INTO ls_html. APPEND ls_html TO ct_html. ENDIF. CONCATENATE '' '' '' '
' l_info1 '
' txt_initial_line_number '' l_occurs ' 
' l_info2 '
' INTO ls_html. APPEND ls_html TO ct_html. PERFORM html_add_box_radiobuttonsnodiv USING txt_access 'accessmode' it_accessmode CHANGING ct_html. CONCATENATE '
' 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 '' TO ct_html. IF NOT is_key-info IS INITIAL. CONCATENATE '' '' '' INTO ls_html. APPEND ls_html TO ct_html. ENDIF. CONCATENATE '' '' '' '' '' '' '' '' '' '' '
' is_key-info '
' 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 '' 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 '
 
' '' '' '' '' '' '' '' '
' txt_key_components '
' 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 '
' '
' 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 '
' '' INTO ls_html. APPEND ls_html TO ct_html. IF NOT l_info IS INITIAL. CONCATENATE '' '' '' INTO ls_html. APPEND ls_html TO ct_html. ENDIF. CONCATENATE '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' INTO ls_html. APPEND ls_html TO ct_html. IF NOT l_info_2 IS INITIAL. CONCATENATE '' '' '' INTO ls_html. APPEND ls_html TO ct_html. ENDIF. IF is_line_type-reftype <> '#'. CONCATENATE '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' INTO ls_html. APPEND ls_html TO ct_html. ENDIF. CONCATENATE '
' l_info '
' '' '' txt_line_type '' l_rowtype_1 '' l_rowdescr_1 '' l_linetype_1 '
 
' '' '' txt_built_in_type ' 
 ' txt_data_type '' l_datatype_2 ' 
 ' txt_no_of_characters '' l_dataleng_2 ' ' txt_decimal_places___m '' l_datadeci_2 ' 
' l_info_2 '
 
' '' '' txt_reference_type ' 
 ' '' '' txt_name_of_ref_type '' l_reftypename_31 '' l_reftypedescr_31 '
 
 ' '' '' txt_reference_to_predefined_ty ' 
 ' txt_data_type '' l_datatype_32 ' 
 ' txt_length '' l_dataleng_32 '' txt_decimal_places___m '' l_datadeci_32 '
' '
' 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 '
' '' '' '' '' '' '' '' '' '
' 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 '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '
' '' '' txt_data_element___1 '' l_range_ctyp_1 ' 
' '' '' txt_built_in_type ' 
 ' txt_data_type '' l_datatype_2 '' l_datadescr_2 '
 ' txt_no_of_characters '' l_dataleng_2 ' ' txt_decimal_places___m '' l_datadeci_2 '
' INTO ls_html. APPEND ls_html TO ct_html. PERFORM html_add_box_end CHANGING ct_html. CONCATENATE '
 
' '' '' '' '' '' '
' txt_structured_row_type '' l_rowtype '
' '
' '
' 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 '' TO ct_html. APPEND '' TO ct_html. APPEND '' TO ct_html. APPEND '' TO ct_html. CONCATENATE '' INTO ls_html. APPEND ls_html TO ct_html. CONCATENATE '' INTO ls_html. APPEND ls_html TO ct_html. CONCATENATE '' INTO ls_html. APPEND ls_html TO ct_html. APPEND '' 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 '' '' '' '' '' '' '' '' '' '' '
' 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 '
' '' '' '' '' '' '' '' '
' i_text_method '' i_cpdname '' i_active ' 
' '
' 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 '
' 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 '' '' '' '' '' '' '' '' '
' '' 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 '' '' '' '' '' INTO ls_html. APPEND ls_html TO ct_html. ENDIF. IF NOT l_description IS INITIAL. CONCATENATE '' '' '' '' '' 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 '' '' '' '' '' '' '' '' INTO ls_html. APPEND ls_html TO ct_html. ENDIF. CONCATENATE '
' txt_superclass '' l_superclass '' '' '' '' '' '' '
' '' '' txt_modeled_only '
' '
' txt_description '' l_description ' 
' txt_instantiation '' l_creatable ' 
' '' '' '' '' '' '
' '' '' txt_final '
' '
' '
' '' '' '' '' '' '' '' '
' txt_forward_declarations '
' 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 '
' '
' INTO ls_html. APPEND ls_html TO ct_html. PERFORM html_add_box_textinputnodiv USING txt_general_data it_ti CHANGING ct_html. CONCATENATE '
' 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 '' TO ct_html. IF NOT it_header IS INITIAL. CONCATENATE '' '' '' 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 '' '' '' INTO ls_html. APPEND ls_html TO ct_html. ENDIF. IF NOT it_error IS INITIAL. CONCATENATE '' '' '' 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 '' '' '' 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 '' '' '' 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 '' '' '' INTO ls_html. APPEND ls_html TO ct_html. ENDIF. IF NOT it_footer IS INITIAL. CONCATENATE '' '' '' INTO ls_html. APPEND ls_html TO ct_html. ENDIF. APPEND '
' INTO ls_html. APPEND ls_html TO ct_html. PERFORM html_add_textinputnodiv USING it_header CHANGING ct_html. CONCATENATE '
' 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 '
' INTO ls_html. APPEND ls_html TO ct_html. PERFORM html_add_box_textinputnodiv USING i_error_title it_error CHANGING ct_html. CONCATENATE '
' 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 '
' 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 '
' 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 '
' INTO ls_html. APPEND ls_html TO ct_html. PERFORM html_add_textinputnodiv USING it_footer CHANGING ct_html. CONCATENATE '
' 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: TYPE st_access. APPEND '' TO ct_html. LOOP AT it_accessmode ASSIGNING . l_tabix = sy-tabix. CONDENSE l_tabix. WRITE -ddtext TO l_ddtext. APPEND '' TO ct_html. IF -sub IS INITIAL. l_colspan = 2. ELSE. l_colspan = 1. APPEND '' TO ct_html. ENDIF. CONCATENATE '' '' '' INTO ls_html. APPEND ls_html TO ct_html. ENDLOOP. APPEND '
 ' '-checked = abap_true. CONCATENATE ls_html ' checked="checked"' INTO ls_html. ENDIF. CONCATENATE i_name -sub INTO l_name. CONCATENATE ls_html ' class="radio"' ' disabled="disabled" name="' l_name '"' ' type="radio"' ' value="' -sub 'x' l_tabix '"/>' '' '' l_ddtext '' '
' 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: 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 '' TO ct_html. IF NOT l_filename IS INITIAL AND NOT i_extension IS INITIAL. CONCATENATE '' '' '' INTO ls_html. APPEND ls_html TO ct_html. ENDIF. CONCATENATE '' '' '' '
' '' '' '' INTO ls_html. APPEND ls_html TO ct_html. IF NOT l_filename_no_includes IS INITIAL. CONCATENATE '' '' INTO ls_html. APPEND ls_html TO ct_html. ENDIF. IF NOT l_filename_compressed IS INITIAL. CONCATENATE '' '' INTO ls_html. APPEND ls_html TO ct_html. ENDIF. CONCATENATE '' '
' '' i_extension '' ' ' '' txt_complete '.' i_extension '' ' ' '' txt_compressed '.' i_extension '' '
' '
' '
' '' INTO ls_html. APPEND ls_html TO ct_html. LOOP AT it_source ASSIGNING . l_tabix = sy-tabix. CONDENSE l_tabix. l_style = 'srcLine'. l_strlen = strlen( ). IF l_strlen > 1 AND (1) = '*'. l_style = 'srcLineComment'. ENDIF. l_source = . PERFORM encode_html_force CHANGING l_source. IF l_source IS INITIAL. l_source = ' '. ENDIF. CONCATENATE '' '' '' '' INTO ls_html. APPEND ls_html TO ct_html. ENDLOOP. CONCATENATE '
' '
' l_tabix '
' '
' '
'
l_source '
' '
' '
' '
' 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 '' '' '
' 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 ' ' TO ct_html. PERFORM html_add_tablenodiv USING i_table_r it_content_r it_content_ext_r CHANGING ct_html. APPEND '
' 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 '' '' '' '' '' '' '' '' '
' 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 '
 
' 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 '
' 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 '' '' '' '' '' '' '' '' '
' 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 '
 
' 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 '
' 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: TYPE st_table_structure, TYPE ANY, TYPE ANY, TYPE ANY, TYPE ANY, TYPE ANY. SPLIT i_table AT '|' INTO l_tabid l_tabcomp. CONCATENATE '' '' INTO ls_html. APPEND ls_html TO ct_html. LOOP AT gt_table_structure ASSIGNING WHERE id = l_tabid. CASE -comparator. WHEN 'CO'. IF NOT l_tabcomp CO -comp_value. CONTINUE. ENDIF. ENDCASE. l_title = -title. PERFORM encode_html CHANGING l_title. IF l_title IS INITIAL. l_title = ' '. ENDIF. CONCATENATE '' INTO ls_html. APPEND ls_html TO ct_html. ENDLOOP. APPEND '' TO ct_html. LOOP AT it_content ASSIGNING . l_tabix = sy-tabix. LOOP AT it_content_ext ASSIGNING . IF sy-tabix = l_tabix. EXIT. ENDIF. ENDLOOP. APPEND '' TO ct_html. LOOP AT gt_table_structure ASSIGNING WHERE id = l_tabid. CASE -comparator. WHEN 'CO'. IF NOT l_tabcomp CO -comp_value. CONTINUE. ENDIF. ENDCASE. CLEAR l_txt. CLEAR l_text. ASSIGN COMPONENT -fieldname OF STRUCTURE TO . IF NOT IS ASSIGNED. ASSIGN COMPONENT -fieldname OF STRUCTURE TO . ENDIF. IF IS ASSIGNED. WRITE TO l_txt. UNASSIGN . ENDIF. l_text = l_txt. PERFORM encode_html CHANGING l_text. CLEAR l_link. IF NOT -link_row IS INITIAL. ASSIGN COMPONENT -link_row OF STRUCTURE TO . IF NOT IS ASSIGNED. ASSIGN COMPONENT -link_row OF STRUCTURE TO . ENDIF. IF IS ASSIGNED. WRITE TO l_link. UNASSIGN . ENDIF. ENDIF. CLEAR l_colored. IF NOT -colored_row IS INITIAL. ASSIGN COMPONENT -colored_row OF STRUCTURE TO . IF NOT IS ASSIGNED. ASSIGN COMPONENT -colored_row OF STRUCTURE TO . ENDIF. IF IS ASSIGNED. l_colored = . UNASSIGN . ENDIF. ENDIF. l_align = 'left'. CASE -row_def. WHEN 'B'. l_align = 'center'. IF NOT l_text IS INITIAL. CONCATENATE '' 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 '' INTO l_text. ENDIF. WHEN 'H'. l_align = 'left'. IF l_colored IS INITIAL. l_class = 'tableLink'. ELSE. l_class = 'tableLinkColored'. ENDIF. CONCATENATE '' l_text '' 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 = ' '. ENDIF. IF l_colored IS INITIAL. l_class = 'innerTableTD'. ELSE. l_class = 'innerTableTDColored'. ENDIF. CONCATENATE '' INTO ls_html. APPEND ls_html TO ct_html. ENDLOOP. APPEND '' TO ct_html. ENDLOOP. APPEND '
' l_title '
' l_text '
' 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: 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 '' '' '' '' '' '' '
' 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 '
 
' '' '' '' '' '' '' '' '
' '' '' '' '' '
' '' txt_secondary_tables '' '
' '
' '' '' '' '' '' INTO ls_html. APPEND ls_html TO ct_html. LOOP AT it_tables ASSIGNING WHERE primary = abap_false. WRITE -enqmode TO l_enqmode. WRITE -tabname TO l_tabname. CONCATENATE '' '' '' '' INTO ls_html. APPEND ls_html TO ct_html. ENDLOOP. CONCATENATE '
' txt_name '' txt_lock_mode '
' l_tabname '' l_enqmode '
' '
' '
' 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 '' '' '' '' '' '' '' '' '' '' '' '' '
' 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 '
 
' 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 '
 
' INTO ls_html. APPEND ls_html TO ct_html. PERFORM html_add_textinputnodiv USING it_ti_bottom CHANGING ct_html. CONCATENATE '
' 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: TYPE st_textinput. LOOP AT it_ti ASSIGNING WHERE description <> space. l_has_description = abap_true. EXIT. ENDLOOP. APPEND '' 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 = ' '. ENDIF. WRITE ls_ti-name TO l_name. IF l_name IS INITIAL. l_name = ' '. ENDIF. WRITE ls_ti-name_suffix TO l_name_suffix. WRITE ls_ti-value TO l_value. IF l_value IS INITIAL. l_value = ' '. 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 = ' '. ENDIF. APPEND '' TO ct_html. IF ls_ti-space = abap_true. CONCATENATE '' 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 '' INTO ls_html. APPEND ls_html TO ct_html. ELSE. IF ls_ti-no_name = abap_false. IF l_name_suffix IS INITIAL. CONCATENATE '' INTO ls_html. ELSE. CONCATENATE '' '' 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 '' 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 '' '' '' INTO ls_html. APPEND ls_html TO ct_html. IF NOT l_value_ext_text IS INITIAL. CONCATENATE '' l_value_ext '' INTO ls_html. APPEND ls_html TO ct_html. ELSE. APPEND l_value_ext TO ct_html. ENDIF. CONCATENATE '' '' INTO ls_html. APPEND ls_html TO ct_html. ENDIF. ENDIF. IF l_has_description = abap_true. CONCATENATE '' INTO ls_html. APPEND ls_html TO ct_html. ENDIF. APPEND '' TO ct_html. ENDLOOP. APPEND '
' ' ' '' '' '' '' '' 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 = ' '. ENDIF. WRITE ls_ti2-value TO l_value. IF l_value IS INITIAL. l_value = ' '. ENDIF. CLEAR l_checked. IF l_value = abap_true. l_checked = ' checked="checked"'. ENDIF. CONCATENATE '' '' '' INTO ls_html. APPEND ls_html TO ct_html. ELSE. EXIT. ENDIF. ENDLOOP. CONCATENATE '' '
' '' '' l_name ' ' '' '' l_name '
' '
' l_name '' l_name '' l_name_suffix '' '' INTO ls_html. APPEND ls_html TO ct_html. IF NOT l_value_text IS INITIAL. CONCATENATE '' l_value '' INTO ls_html. APPEND ls_html TO ct_html. ELSE. APPEND l_value TO ct_html. ENDIF. CONCATENATE '' ' ' l_description '
' 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 '' '' '' '' '' '' '' '' '
' INTO ls_html. APPEND ls_html TO ct_html. PERFORM html_add_textinputnodiv USING it_ti CHANGING ct_html. CONCATENATE '
 
' 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 '
' 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 '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '
' INTO ls_html. APPEND ls_html TO ct_html. PERFORM html_add_textinputnodiv USING it_ti CHANGING ct_html. CONCATENATE '
 
' 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 '
 
' INTO ls_html. APPEND ls_html TO ct_html. PERFORM html_add_box_textinputnodiv USING i_subbox2_title it_subbox2 CHANGING ct_html. CONCATENATE '
 
' INTO ls_html. APPEND ls_html TO ct_html. PERFORM html_add_box_textinputnodiv USING i_subbox3_title it_subbox3 CHANGING ct_html. APPEND '
' 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 '' '' '' '' INTO ls_html. APPEND ls_html TO ct_html. IF is_tran-ttype = gc_tcode_parameter. CONCATENATE '' '' '' '' INTO ls_html. APPEND ls_html TO ct_html. ENDIF. CONCATENATE '' '' '' '' INTO ls_html. APPEND ls_html TO ct_html. IF is_tran-ttype = gc_tcode_parameter. CONCATENATE '' '' '' '' INTO ls_html. APPEND ls_html TO ct_html. ENDIF. APPEND '
' '' '' '' '' '' INTO ls_html. APPEND ls_html TO ct_html. IF is_tran-ttype = gc_tcode_dialog. CONCATENATE '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' INTO ls_html. APPEND ls_html TO ct_html. ENDIF. IF is_tran-ttype = gc_tcode_report. CONCATENATE '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' INTO ls_html. APPEND ls_html TO ct_html. ENDIF. IF is_tran-ttype = gc_tcode_object. CONCATENATE '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' INTO ls_html. APPEND ls_html TO ct_html. ENDIF. IF is_tran-ttype = gc_tcode_variant. CONCATENATE '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' INTO ls_html. APPEND ls_html TO ct_html. ENDIF. CONCATENATE '
' txt_transaction_text '' is_tran-ttext '
' txt_program '' is_tran-pgmna '  
' txt_selection_screen '' is_tran-dypno '  
' txt_authorization_object___1 '' is_tran-objct '  
  ' 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 '
      
' '' '' '' txt_maintenance_of_standard_tr '' '
' txt_program '' is_tran-pgmna '  
' txt_selection_screen '' is_tran-dypno '  
' txt_start_with_variant '' is_tran-repo_vari '  
' txt_authorization_object___1 '' is_tran-objct '  
  ' 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 '
' '' '' '' txt_oo_transaction_model '' '   
 
' txt_class_name '' is_tran-classname '  
' txt_method '' is_tran-method '
' '' '' '' txt_local_in_program '' '' is_tran-pgmna '  
      
' txt_authorization_object___1 '' is_tran-objct '  
  ' 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 '
' txt_transaction '' is_tran-def_call_tcode '  
' txt_transaction_variant '' is_tran-variant '  
  ' '' '' txt_cross_client '
' '
 
' 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 '
 
' INTO ls_html. APPEND ls_html TO ct_html. PERFORM html_add_box_begin USING txt_classification '1' CHANGING ct_html. APPEND '' TO ct_html. IF is_tran-ttype = gc_tcode_parameter OR is_tran-ttype = gc_tcode_variant. CONCATENATE '' '' '' INTO ls_html. APPEND ls_html TO ct_html. ENDIF. CONCATENATE '' '' '' '' '' '' '
' '' '' '' '' '' '
' '' '' '' txt_inherit_gui_attributes '' '
' '
' INTO ls_html. APPEND ls_html TO ct_html. PERFORM html_add_box_begin USING txt_transaction_classification '1' CHANGING ct_html. CONCATENATE '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '
' '' '' '' txt_professional_user_transact '' ' 
' '' '' '' txt_easy_web_transaction '' ' ' txt_service '' is_tran-clf_service '
 ' '' '' txt_pervasive_enabled '   
' INTO ls_html. APPEND ls_html TO ct_html. PERFORM html_add_box_end CHANGING ct_html. CONCATENATE '
' 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 '
' INTO ls_html. APPEND ls_html TO ct_html. PERFORM html_add_box_end CHANGING ct_html. CONCATENATE '
 
' INTO ls_html. APPEND ls_html TO ct_html. PERFORM html_add_box_begin USING txt_default_values '1' CHANGING ct_html. CONCATENATE '' '' '' '' '
' INTO ls_html. APPEND ls_html TO ct_html. PERFORM html_add_tablenodiv USING 'TRAN_DEFVA' it_defval it_defval CHANGING ct_html. CONCATENATE '
' INTO ls_html. APPEND ls_html TO ct_html. PERFORM html_add_box_end CHANGING ct_html. CONCATENATE '
' 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: TYPE st_value_range. PERFORM html_add_div_begin USING i_id i_on CHANGING ct_html. CONCATENATE '' '' '' '' '' '' '' '' '
' '' '' '' '' '' '' '' '' INTO ls_html. APPEND ls_html TO ct_html. LOOP AT it_value_range ASSIGNING WHERE domvalue_h = space. WRITE -ddtext TO l_ddtext. WRITE -domvalue_l TO l_domvalue_l. CONCATENATE '' '' '' '' INTO ls_html. APPEND ls_html TO ct_html. ENDLOOP. CONCATENATE '
' txt_single_vars '
' txt_fix_val '' txt_short_description___1 '
' l_domvalue_l '' l_ddtext '
' '
 
' '' '' '' '' '' '' '' '' '' INTO ls_html. APPEND ls_html TO ct_html. LOOP AT it_value_range ASSIGNING WHERE domvalue_h <> space. WRITE -ddtext TO l_ddtext. WRITE -domvalue_h TO l_domvalue_h. WRITE -domvalue_l TO l_domvalue_l. CONCATENATE '' '' '' '' '' INTO ls_html. APPEND ls_html TO ct_html. ENDLOOP. CONCATENATE '
' txt_intervals '
' txt_lower_limit '' txt_upperlimit '' txt_short_description___1 '
' l_domvalue_l '' l_domvalue_h '' l_ddtext '
' '
' 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 '' 'GNU General Public License' '' INTO l_link. PERFORM replace_single USING '#GPL#' l_link CHANGING l_gpl. CONCATENATE '' INTO ls_html. APPEND ls_html TO lt_html. CONCATENATE '' '' '' 'SoftCopy' '' INTO ls_html. APPEND ls_html TO lt_html. PERFORM html_add_meta CHANGING lt_html. APPEND '' TO lt_html. APPEND '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '
' '

' 'SoftCopy' '

' '
' txt_version ': ' gc_version '
' ' ' '
' '©2008-' gc_version+0(4) ' globalBIT, LLC.' '
' txt_all_rights_reserved '
' ' ' '
' l_gpl '
' '' '' 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 '' INTO ls_html. APPEND ls_html TO lt_html. CONCATENATE '' '' '' 'SoftCopy' '' INTO ls_html. APPEND ls_html TO lt_html. PERFORM html_add_meta CHANGING lt_html. APPEND '' TO lt_html. APPEND '' '' '' '' '' '' '' '
' '

' 'SoftCopy' '

' '
' '' '' 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: TYPE st_prop. PERFORM get_spras USING sy-langu l_laiso l_sptxt. CONCATENATE '' INTO ls_html. APPEND ls_html TO lt_html. CONCATENATE '' '' '' 'SoftCopy' '' INTO ls_html. APPEND ls_html TO lt_html. PERFORM html_add_meta CHANGING lt_html. APPEND '' TO lt_html. APPEND '' '' '' '' '' '' '' '' '' '' '' '
' '' '' '' '' '' '' '
' '' txt_menu '' '
' '
' '' '' '' '' '
' '' txt_first_page '' '
' '
' '
' '' txt_system '' '
' '
' '' '' '' '' '' '' '' '' '' '' '
' '' txt_status '' '
' '' txt_kernel_information___1 '' '
' '' txt_component_information '' '
' '
' '
' '' txt_help '' '
' '
' '' '' '' '' '' '' '' '' '' '' '
' '' 'globalBIT' '' '
' '' txt_updates '' '
' '' txt_about '' '
' '
' '
' '
' 'powered by globalBIT' '
' 'SoftCopy' '
' '' '' '' '' '' '
' '
' 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 '' TO lt_html. CONCATENATE '' '' 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 '
' '' '' '' '' '' '' '' '' '
' 'Filter' '' '
' '' '×' '' '
' '
' '' '' '' '' '
' ' ' '
' '
' '
' INTO ls_html. APPEND ls_html TO ct_html. APPEND '' 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=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' '-' CHANGING l_fname. PERFORM encode_uri CHANGING l_fname. ADD 1 TO g_cnt_link_leaves. CONCATENATE '
  • ' '' l_text '' '
  • ' 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 '
  • ' '' l_text '' '
  • ' 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 '
  • ' '' l_text '' '
  • ' INTO ls_html. APPEND ls_html TO ct_html. ENDFORM. FORM html_links_node_end CHANGING ct_html TYPE it_string. APPEND '' 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 ' *' INTO l_info. ENDIF. CONCATENATE '
  • ' '' i_text '' l_info '
      ' 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: TYPE st_link, 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 '' INTO ls_html. APPEND ls_html TO ct_html. CONCATENATE '' INTO ls_html. APPEND ls_html TO ct_html. CONCATENATE '' '' l_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 '' '' INTO ls_html. APPEND ls_html TO ct_html. CONCATENATE '' TO ct_html. CONCATENATE '
      ' '

      ' '' '' '' '

      ' '
      ' 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 '' TO ct_html. IF NOT i_name_field IS INITIAL AND NOT i_name_value IS INITIAL. CONCATENATE '' '' '' '' '' INTO ls_html. LOOP AT it_link ASSIGNING . CONCATENATE ls_html '' '' INTO ls_html. ENDLOOP. CONCATENATE ls_html '' 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 '' '' '' '' INTO ls_html. LOOP AT it_link ASSIGNING . CONCATENATE ls_html '' INTO ls_html. ENDLOOP. CONCATENATE ls_html '' INTO ls_html. APPEND ls_html TO ct_html. ENDIF. APPEND '
      ' i_name_field '' i_name_value '' i_name_active '' '     ' ' ' '' -descript '' '
      ' i_descr_field '' i_descr_value '  
       
      ' TO ct_html. ENDIF. CONCATENATE '' 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 '' '' '' INTO ls_html. APPEND ls_html TO ct_html. ENDIF. CONCATENATE '' '' '' INTO ls_html. APPEND ls_html TO ct_html. ENDIF. APPEND '' TO ct_html. APPEND '' '' '
      ' '' '' INTO ls_html. APPEND ls_html TO ct_html. LOOP AT lt_tabstrip ASSIGNING WHERE hidden = abap_false AND firstrow = abap_true AND parent_id IS INITIAL. IF -disabled = abap_true. l_class = 'contentTabDisabled'. ELSEIF -active = abap_true. l_class = 'contentTabOn'. ELSE. l_class = 'contentTabOff'. ENDIF. IF -disabled = abap_false. CONCATENATE '' INTO ls_html. APPEND ls_html TO ct_html. ELSE. CONCATENATE '' INTO ls_html. APPEND ls_html TO ct_html. ENDIF. ENDLOOP. CONCATENATE '' '
      ' -text '' -text '
      ' '
      ' '' '' INTO ls_html. APPEND ls_html TO ct_html. LOOP AT lt_tabstrip ASSIGNING WHERE hidden = abap_false AND firstrow = abap_false AND parent_id IS INITIAL. IF -disabled = abap_true. l_class = 'contentTabDisabled'. ELSEIF -active = abap_true. l_class = 'contentTabOn'. ELSE. l_class = 'contentTabOff'. ENDIF. IF -disabled = abap_false. CONCATENATE '' INTO ls_html. APPEND ls_html TO ct_html. ELSE. CONCATENATE '' INTO ls_html. APPEND ls_html TO ct_html. ENDIF. ENDLOOP. CONCATENATE '' '
      ' -text '' -text '
      ' '
      ' 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: TYPE st_tabstrip. CONCATENATE '' TO ct_html. ENDFORM. FORM html_main_footer CHANGING ct_html TYPE it_string. DATA: ls_html TYPE string. CONCATENATE '
      ' '' TO ct_html. CONCATENATE '' '' 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: TYPE st_tabstrip. PERFORM get_spras USING sy-langu l_laiso l_sptxt. CONCATENATE '' INTO ls_html. APPEND ls_html TO ct_html. CONCATENATE '' INTO ls_html. APPEND ls_html TO ct_html. CONCATENATE '' '' i_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 '' '' 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 '' '' 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: TYPE st_tabstrip. PERFORM get_spras USING sy-langu l_laiso l_sptxt. CONCATENATE '' INTO ls_html. APPEND ls_html TO ct_html. CONCATENATE '' INTO ls_html. APPEND ls_html TO ct_html. CONCATENATE '' '' i_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 '' '' 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 '' '' 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 '' 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 '
        ' 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 '
      ' 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: TYPE st_ztadir, TYPE string, 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 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 -o2pagename AT '/' INTO TABLE lt_node_new. LOOP AT lt_node_old ASSIGNING . AT LAST. EXIT. ENDAT. READ TABLE lt_node_new ASSIGNING INDEX sy-tabix. IF sy-subrc <> 0 OR <> . PERFORM html_links_node_end CHANGING ct_html. l_subdir_cnt = l_subdir_cnt - 1. ENDIF. ENDLOOP. LOOP AT lt_node_new ASSIGNING . AT LAST. EXIT. ENDAT. READ TABLE lt_node_old ASSIGNING INDEX sy-tabix. IF sy-subrc <> 0 OR <> . 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 space space CHANGING ct_html. l_subdir_cnt = l_subdir_cnt + 1. ENDIF. ENDLOOP. CONCATENATE -obj_name '-' l_type '/' -o2pagename INTO l_filename. IF l_type = 'mime'. PERFORM html_links_leaf_mime USING 'R3TR_WAPA' l_filename -descript CHANGING ct_html. ELSE. PERFORM html_links_leaf_filename USING 'R3TR_WAPA' l_type l_filename -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: TYPE st_ztadir. PERFORM get_id USING 'tag_' i_obj_name CHANGING l_id. LOOP AT gt_ztadir ASSIGNING WHERE pgmid = 'R3TR' AND object = 'WTAG' AND obj_name = i_obj_name AND o2type = gc_o2type_tag. CONCATENATE -obj_name '-' -o2name INTO l_filename. PERFORM html_links_leaf_filename USING 'R3TR_WTAG' '' -o2name l_filename -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: TYPE st_ztadir. LOOP AT gt_ztadir ASSIGNING 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' '' -obj_name -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: TYPE st_ztadir. LOOP AT gt_ztadir ASSIGNING 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' '' -obj_name -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: TYPE st_ztadir. LOOP AT gt_ztadir ASSIGNING 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' '' -obj_name -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: TYPE st_ztadir. LOOP AT gt_ztadir ASSIGNING 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' '' -obj_name -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: TYPE st_ztadir. LOOP AT gt_ztadir ASSIGNING 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' '' -obj_name -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: TYPE st_ztadir. LOOP AT gt_ztadir ASSIGNING 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' -obj_name -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: TYPE st_ztadir. LOOP AT gt_ztadir ASSIGNING 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' '' -obj_name -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: TYPE st_ztadir. LOOP AT gt_ztadir ASSIGNING 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' '' -obj_name -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: TYPE st_ztadir. LOOP AT gt_ztadir ASSIGNING 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' '' -obj_name -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: TYPE st_ztadir. PERFORM get_id USING 'fugr_incl_' i_obj_name CHANGING l_id. LOOP AT gt_ztadir ASSIGNING 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' -progname -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: TYPE st_ztadir. PERFORM get_id USING 'fugr_fuba_' i_obj_name CHANGING l_id. LOOP AT gt_ztadir ASSIGNING 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' -funcname -progname -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: TYPE st_ztadir. PERFORM get_id USING 'fugr_scr_' i_obj_name CHANGING l_id. LOOP AT gt_ztadir ASSIGNING 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 -progname '-' -dynpronr INTO l_filename. PERFORM html_links_leaf_filename USING 'R3TR_FUGR' 'SCR' -dynpronr l_filename -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: TYPE st_ztadir. LOOP AT gt_ztadir ASSIGNING 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' -obj_name -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: TYPE st_ztadir. LOOP AT gt_ztadir ASSIGNING 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' '' -obj_name -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: TYPE st_ztadir. LOOP AT gt_ztadir ASSIGNING 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 -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' -obj_name l_filename -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: TYPE st_ztadir. LOOP AT gt_ztadir ASSIGNING 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' -obj_name -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: TYPE st_ztadir. LOOP AT gt_ztadir ASSIGNING 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' '' -obj_name -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: TYPE st_ztadir. LOOP AT gt_ztadir ASSIGNING 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' '' -obj_name -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: TYPE st_ztadir. LOOP AT gt_ztadir ASSIGNING 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' '' -obj_name -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: TYPE st_ztadir. LOOP AT gt_ztadir ASSIGNING WHERE pgmid = 'R3TR' AND object = 'TRAN'. l_tcode = -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 -obj_name -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: TYPE st_ztadir. LOOP AT gt_ztadir ASSIGNING 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' '' -obj_name -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: TYPE tadir. SORT tt_tadir BY pgmid object. LOOP AT tt_tadir ASSIGNING . CLEAR ls_ztadir. MOVE-CORRESPONDING TO ls_ztadir. CASE -pgmid. WHEN 'R3TR'. CASE -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: TYPE v_fdir, 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 . CLEAR ls_ztadir. MOVE-CORRESPONDING cs_ztadir TO ls_ztadir. CLEAR ls_ztadir-descript. ls_ztadir-futype = gc_futype_module. ls_ztadir-funcname = -funcname. IF NOT -masterlang IS INITIAL. ls_ztadir-masterlang = -masterlang. ENDIF. SELECT SINGLE stext FROM tftit INTO l_stext WHERE funcname = -funcname AND spras = sy-langu. IF sy-subrc = 0. ls_ztadir-descript = l_stext. ENDIF. CALL FUNCTION 'FUNCTION_INCLUDE_CONCATENATE' EXPORTING include_number = -include IMPORTING include = ls_ztadir-progname CHANGING group = -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 . 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 = -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 = -dnum. ls_ztadir-masterlang = -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: 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 . CLEAR: ls_ztadir. MOVE-CORRESPONDING cs_ztadir TO ls_ztadir. CLEAR ls_ztadir-descript. ls_ztadir-o2pagekey = -key. ls_ztadir-o2pagename = -name. ls_ztadir-o2type = gc_o2type_mime. ls_ztadir-mime_objtype = -objtype. ls_ztadir-mime_class = -class. ls_ztadir-mime_objid = -objid. ls_ztadir-descript = -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: TYPE st_text_element, TYPE ANY, TYPE ANY, TYPE ANY. LOOP AT gt_text_element ASSIGNING 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 -conc_v1 IS INITIAL. ASSIGN (-conc_v1) TO . l_str1 = . UNASSIGN . ENDIF. IF NOT -conc_v2 IS INITIAL. ASSIGN (-conc_v2) TO . l_str2 = . UNASSIGN . ENDIF. IF -conc_sep_space = abap_false. CONCATENATE l_str1 -conc_copula l_str2 INTO l_text. ELSE. CONCATENATE l_str1 -conc_copula l_str2 INTO l_text SEPARATED BY space. ENDIF. IF NOT l_text IS INITIAL. -is_set = abap_true. ASSIGN (-fieldname) TO . = l_text. UNASSIGN . 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: TYPE st_text_element, TYPE st_text_element_t, TYPE ANY. LOOP AT gt_text_element ASSIGNING . CLEAR: l_text, l_str. READ TABLE gt_text_element_t ASSIGNING WITH KEY fieldname = -fieldname spras = sy-langu. IF sy-subrc = 0 AND NOT -text IS INITIAL. -is_set = abap_true. l_text = -text. ELSE. READ TABLE gt_text_element_t ASSIGNING WITH KEY fieldname = -fieldname spras = 'E'. IF sy-subrc = 0. l_text = -text. ENDIF. ENDIF. UNASSIGN . IF -is_set = abap_false AND NOT -dtel_rollname IS INITIAL. PERFORM get_dtel_text USING -dtel_rollname -dtel_field CHANGING l_str. IF NOT l_str IS INITIAL. -is_set = abap_true. l_text = l_str. ENDIF. ENDIF. IF -is_set = abap_false AND NOT -domname IS INITIAL. PERFORM get_dom_value_text USING -domname -domvalue CHANGING l_val_text. IF NOT l_val_text IS INITIAL. -is_set = abap_true. l_text = l_val_text. ENDIF. ENDIF. IF -is_set = abap_false AND NOT -icon_id IS INITIAL. PERFORM get_icon_text USING -icon_id -icon_field CHANGING l_str. IF NOT l_str IS INITIAL. -is_set = abap_true. l_text = l_str. ENDIF. ENDIF. IF NOT l_text IS INITIAL. ASSIGN (-fieldname) TO . = l_text. UNASSIGN . 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: TYPE st_text_element, TYPE ANY, TYPE ANY, TYPE ANY, TYPE ANY, TYPE ANY. LOOP AT gt_text_element ASSIGNING WHERE is_set = abap_false AND NOT msg_id IS INITIAL. CLEAR: l_str1, l_str2, l_str3, l_str4, l_text. IF NOT -msg_v1 IS INITIAL. ASSIGN (-msg_v1) TO . IF IS ASSIGNED. l_str1 = . ENDIF. UNASSIGN . ENDIF. IF NOT -msg_v2 IS INITIAL. ASSIGN (-msg_v2) TO . IF IS ASSIGNED. l_str2 = . ENDIF. UNASSIGN . ENDIF. IF NOT -msg_v3 IS INITIAL. ASSIGN (-msg_v3) TO . IF IS ASSIGNED. l_str3 = . ENDIF. UNASSIGN . ENDIF. IF NOT -msg_v4 IS INITIAL. ASSIGN (-msg_v4) TO . IF IS ASSIGNED. l_str4 = . ENDIF. UNASSIGN . ENDIF. PERFORM get_message_text USING -msg_id -msg_nr l_str1 l_str2 l_str3 l_str4 CHANGING l_text. IF NOT l_text IS INITIAL. -is_set = abap_true. ASSIGN (-fieldname) TO . = l_text. UNASSIGN . ENDIF. ENDLOOP. ENDFORM. FORM cl_gui_get_folder CHANGING c_selected_folder TYPE string c_subrc TYPE sysubrc. DATA: l_obj_file TYPE REF TO cl_gui_frontend_services, l_initial_folder TYPE string. CREATE OBJECT l_obj_file. IF NOT p_folder IS INITIAL. l_initial_folder = p_folder. ELSE. CALL METHOD l_obj_file->get_temp_directory CHANGING temp_dir = l_initial_folder EXCEPTIONS OTHERS = 1. ENDIF. CALL METHOD l_obj_file->directory_browse EXPORTING initial_folder = l_initial_folder CHANGING selected_folder = c_selected_folder EXCEPTIONS OTHERS = 1. c_subrc = sy-subrc. 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_index TYPE it_src_include_index. REFRESH ct_src_no_includes. TRY. PERFORM get_src_without_includes USING it_src i_src_name abap_true i_progname space CHANGING ct_src_no_includes lt_index. CATCH cx_root. ENDTRY. ENDFORM. FORM try_read_report USING value(i_progname) CHANGING ct_src TYPE it_string. REFRESH ct_src. TRY. READ REPORT i_progname INTO ct_src STATE 'A'. CATCH cx_sy_read_src_line_too_long. CATCH cx_root. ENDTRY. 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: TYPE st_ztadir, TYPE dd07v, TYPE st_tabstrip. PERFORM get_tabstrip USING 'DDIC_R3TR_DOMA' space CHANGING lt_tabstrip. LOOP AT gt_ztadir ASSIGNING WHERE pgmid = 'R3TR' AND object = 'DOMA' AND downloaded = abap_false. -downloaded = abap_true. CLEAR: ls_attributes. REFRESH: lt_html, lt_value_range, lt_dd07v, lt_dd07v_n, lt_doc. l_domname = -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. -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 = -devclass. PERFORM get_devclass USING -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_value_range-ddtext = -ddtext. IF -domval_ld IS INITIAL. ls_value_range-domvalue_l = -domvalue_l. ELSE. ls_value_range-domvalue_l = -domval_ld. ENDIF. IF -domval_hd IS INITIAL. ls_value_range-domvalue_h = -domval_hd. ELSE. ls_value_range-domvalue_h = -domvalue_h. ENDIF. APPEND ls_value_range TO lt_value_range. ENDLOOP. PERFORM get_docu USING 'DO' -obj_name 'T' CHANGING lt_doc. LOOP AT lt_tabstrip ASSIGNING . -empty = abap_false. CASE -id. WHEN 'DOC'. IF lt_doc IS INITIAL. -empty = abap_true. ENDIF. ENDCASE. ENDLOOP. PERFORM html_main_header USING tpt_ddic_doma txt_domain -obj_name txt_active___1 txt_short_text___2 -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 -pgmid -object -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: TYPE ANY, TYPE ANY, TYPE ANY, TYPE ANY, TYPE ANY, TYPE st_ztadir, TYPE dd03p, TYPE st_tabstrip, TYPE docdz. LOOP AT gt_ztadir ASSIGNING WHERE pgmid = 'R3TR' AND object = 'DTEL' AND downloaded = abap_false. -downloaded = abap_true. CLEAR: ls_attributes. REFRESH: lt_html, lt_tabstrip, lt_dd04t, lt_dd04t_n, lt_doc, lt_docdz. l_rollname = -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. -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 = -devclass. PERFORM get_devclass USING -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 . IF IS ASSIGNED. ls_data_type-datatype = . UNASSIGN . ENDIF. PERFORM get_dom_value_text USING 'DATATYPE' ls_dd04l-domname CHANGING ls_data_type-datadescr. ASSIGN COMPONENT 'LENG' OF STRUCTURE ls_dd04l TO . IF IS ASSIGNED. ls_data_type-dataleng = . UNASSIGN . ENDIF. ASSIGN COMPONENT 'DECIMALS' OF STRUCTURE ls_dd04l TO . IF IS ASSIGNED. ls_data_type-datadeci = . UNASSIGN . ENDIF. ASSIGN COMPONENT 'REFKIND' OF STRUCTURE ls_dd04l TO . IF IS ASSIGNED. ls_data_type-refkind = . UNASSIGN . ENDIF. ASSIGN COMPONENT 'REFTYPE' OF STRUCTURE ls_dd04l TO . IF IS ASSIGNED. ls_data_type-reftype = . UNASSIGN . 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' -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 INDEX 1. l_tab_nr = -tab_nr. SORT lt_tabstrip BY tab_nr. CLEAR ls_tabstrip. ls_tabstrip-active_order = 1. LOOP AT lt_docdz ASSIGNING . l_tab_nr = l_tab_nr + 1. ls_tabstrip-form = 'DDIC_R3TR_DTEL'. CONCATENATE 'DOCDZ_' -addition INTO ls_tabstrip-id. ls_tabstrip-parent_id = 'DOCDZ'. ls_tabstrip-tab_nr = l_tab_nr. ls_tabstrip-text = -addition. APPEND ls_tabstrip TO lt_tabstrip. CLEAR ls_tabstrip. ENDLOOP. LOOP AT lt_tabstrip ASSIGNING . -empty = abap_false. CASE -id. WHEN 'DOC'. IF lt_doc IS INITIAL. -empty = abap_true. ENDIF. WHEN 'DOCDZ'. IF lt_docdz IS INITIAL. -empty = abap_true. ENDIF. ENDCASE. ENDLOOP. PERFORM html_main_header USING tpt_ddic_dtel txt_data_element___1 -obj_name txt_active___1 txt_short_text___2 -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 . CLEAR: l_tab_id, l_doc_obj. REFRESH lt_doc. CONCATENATE 'DOCDZ_' -addition INTO l_tab_id. CALL FUNCTION 'DOCU_OBJECT_NAME_CONCATENATE' EXPORTING docu_id = 'DZ' element = -rollname addition = -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 -pgmid -object -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: TYPE st_ztadir, TYPE dd27p. PERFORM get_tabstrip USING 'DDIC_R3TR_ENQU' space CHANGING lt_tabstrip. LOOP AT gt_ztadir ASSIGNING WHERE pgmid = 'R3TR' AND object = 'ENQU' AND aggtype = 'E' AND downloaded = abap_false. -downloaded = abap_true. CLEAR: ls_attributes. REFRESH: lt_html, lt_dd26v, lt_dd26v_n, lt_dd27p, lt_dd27p_n. l_viewname = -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. -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 = -devclass. PERFORM get_devclass USING -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 WHERE fieldname = '*'. CLEAR ls_tables. IF -tabname = ls_dd25v-roottab. ls_tables-primary = abap_true. ENDIF. ls_tables-tabname = -tabname. PERFORM get_dom_value_text USING 'ENQMODE' -enqmode CHANGING ls_tables-enqmode. APPEND ls_tables TO lt_tables. ENDLOOP. PERFORM html_main_header USING tpt_ddic_enqu txt_lock_object___1 -obj_name txt_active___1 txt_short_text___2 -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 -pgmid -object -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: TYPE st_ztadir, TYPE dd07v. PERFORM get_tabstrip USING 'DDIC_R3TR_SHLP' space CHANGING lt_tabstrip. LOOP AT gt_ztadir ASSIGNING WHERE pgmid = 'R3TR' AND object = 'SHLP' AND downloaded = abap_false. -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 = -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. -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 = -devclass. PERFORM get_devclass USING -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 -obj_name txt_active___1 txt_short_text___2 -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 -pgmid -object -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: TYPE st_ztadir, TYPE st_dom_value, TYPE st_tabstrip, 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 WHERE pgmid = 'R3TR' AND object = 'TABL' AND ( tabclass = 'INTTAB' OR tabclass = 'VIEW' OR tabclass = 'APPEND' ) AND downloaded = abap_false. -downloaded = abap_true. CLEAR: ls_attributes. REFRESH: lt_html, lt_dd03p, lt_doc, lt_exclass. PERFORM ddic_r3tr_tabl_get CHANGING 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 = -devclass. PERFORM get_devclass USING -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 . IF IS ASSIGNED. LOOP AT lt_ddranking ASSIGNING . ls_exclass-ddtext = -text. ls_exclass-checked = abap_false. IF -value = . ls_exclass-checked = abap_true. ENDIF. APPEND ls_exclass TO lt_exclass. ENDLOOP. ENDIF. PERFORM get_docu USING 'TB' -obj_name 'E' CHANGING lt_doc. LOOP AT lt_tabstrip ASSIGNING . -empty = abap_false. CASE -id. WHEN 'DOC'. IF lt_doc IS INITIAL. -empty = abap_true. ENDIF. WHEN 'EXCLASS'. IF lt_exclass IS INITIAL. -hidden = abap_true. ENDIF. ENDCASE. ENDLOOP. PERFORM html_main_header USING tpt_ddic_stru txt_structure -obj_name txt_active___1 txt_short_text___2 -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 -pgmid -object -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: TYPE st_ztadir, TYPE st_dom_value, TYPE st_tabstrip, TYPE ANY, 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 WHERE pgmid = 'R3TR' AND object = 'TABL' AND ( tabclass = 'CLUSTER' OR tabclass = 'POOL' OR tabclass = 'TRANSP' ) AND downloaded = abap_false. -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_dd02v lt_dd03p lt_zdd03p_ext ls_dd09l. l_tabname = -obj_name. ls_attributes-bname = ls_dd02v-as4user. PERFORM get_date USING ls_dd02v-as4date CHANGING ls_attributes-date_last_changed. ls_attributes-devclass = -devclass. PERFORM get_devclass USING -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 . CLEAR ls_access. ls_access-ddtext = -text. IF -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 . IF IS ASSIGNED. LOOP AT lt_ddranking ASSIGNING . ls_exclass-ddtext = -text. ls_exclass-checked = abap_false. IF -value = . 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' -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 = -pgmid AND object = -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 = -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 -pgmid -object -obj_name gc_extension_csv abap_false. ls_link-href = -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 -pgmid -object -obj_name gc_extension_xml abap_false. ls_link-href = -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 . -empty = abap_false. CASE -id. WHEN 'DOC'. IF lt_doc IS INITIAL. -empty = abap_true. ENDIF. WHEN 'EXCLASS'. IF lt_exclass IS INITIAL. -hidden = abap_true. ENDIF. ENDCASE. ENDLOOP. CASE -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 -obj_name txt_active___1 txt_short_text___2 -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 -pgmid -object -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: 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 . IF -fieldname = '.INCLU--AP'. -fieldname = '.APPEND'. ENDIF. IF -rollname IS INITIAL AND NOT -precfield IS INITIAL. SELECT SINGLE tabname FROM dd02l INTO -rollname WHERE tabname = -precfield AND as4local = 'A'. IF sy-subrc = 0. -datatype = 'STRU'. ELSE. SELECT SINGLE typename FROM dd40l INTO -rollname WHERE typename = -precfield AND as4local = 'A'. IF sy-subrc = 0. -datatype = 'TTYP'. ENDIF. ENDIF. ENDIF. CLEAR ls_zdd03p_ext. CASE -shlporigin. WHEN 'F'. ls_zdd03p_ext-shlporigin_f = abap_true. WHEN 'P'. ls_zdd03p_ext-shlporigin_p = abap_true. ENDCASE. IF NOT -shlporigin IS INITIAL. PERFORM get_dom_value_text USING 'SHLPORIGIN' -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: TYPE ANY, TYPE ANY, TYPE ANY, TYPE ANY, TYPE ANY, TYPE ANY, TYPE ANY, TYPE ANY, TYPE ANY, TYPE st_ztadir, 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 WHERE pgmid = 'R3TR' AND object = 'TTYP' AND downloaded = abap_false. -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 = -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. -subrc = sy-subrc. CONTINUE. ENDIF. ASSIGN COMPONENT 'TTYPKIND' OF STRUCTURE ls_dd40v TO . IF IS ASSIGNED. l_ttypkind = . UNASSIGN . ENDIF. ls_attributes-bname = ls_dd40v-as4user. PERFORM get_date USING ls_dd40v-as4date CHANGING ls_attributes-date_last_changed. ls_attributes-devclass = -devclass. PERFORM get_devclass USING -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 . IF IS ASSIGNED. ls_line_type-rowkind = . UNASSIGN . ENDIF. ASSIGN COMPONENT 'ROWTYPE' OF STRUCTURE ls_dd40v TO . IF IS ASSIGNED. ls_line_type-rowtype = . UNASSIGN . ENDIF. PERFORM get_dom_value_text USING 'TYPEKIND' ls_dd40v-rowtype CHANGING ls_line_type-rowdescr. ASSIGN COMPONENT 'DATATYPE' OF STRUCTURE ls_dd40v TO . IF IS ASSIGNED. ls_line_type-datatype = . UNASSIGN . ENDIF. ASSIGN COMPONENT 'LENG' OF STRUCTURE ls_dd40v TO . IF IS ASSIGNED. ls_line_type-dataleng = . UNASSIGN . ENDIF. ASSIGN COMPONENT 'DECIMALS' OF STRUCTURE ls_dd40v TO . IF IS ASSIGNED. ls_line_type-datadeci = . UNASSIGN . ENDIF. ls_line_type-datadeci = ls_dd40v-decimals. ASSIGN COMPONENT 'REFTYPE' OF STRUCTURE ls_dd40v TO . IF IS ASSIGNED. ls_line_type-reftype = . PERFORM get_dom_value_text USING 'DDREFTYPE' CHANGING ls_line_type-refdescr. UNASSIGN . ELSE. ls_line_type-reftype = '#'. ENDIF. ASSIGN COMPONENT 'RANGE_CTYP' OF STRUCTURE ls_dd40v TO . IF IS ASSIGNED. ls_line_type-range_ctyp = . UNASSIGN . ENDIF. ASSIGN COMPONENT 'CTDATATYPE' OF STRUCTURE ls_dd40v TO . IF IS ASSIGNED. ls_line_type-ctdatatype = . UNASSIGN . ENDIF. ASSIGN COMPONENT 'CTLENG' OF STRUCTURE ls_dd40v TO . IF IS ASSIGNED. ls_line_type-ctleng = . UNASSIGN . ENDIF. ASSIGN COMPONENT 'CTDECIMALS' OF STRUCTURE ls_dd40v TO . IF IS ASSIGNED. ls_line_type-ctdecimals = . UNASSIGN . ENDIF. ASSIGN COMPONENT 'OCCURS' OF STRUCTURE ls_dd40v TO . IF IS ASSIGNED. ls_init_access-occurs = . UNASSIGN . ELSE. ls_init_access-unknown = abap_true. ENDIF. REFRESH lt_accessmode. LOOP AT lt_dom_value_accessmode ASSIGNING . CLEAR ls_access. ls_access-ddtext = -text. IF ls_dd40v-accessmode = -value. ls_access-checked = abap_true. ENDIF. APPEND ls_access TO lt_accessmode. ENDLOOP. REFRESH lt_keydef. LOOP AT lt_dom_value_keydef ASSIGNING . CLEAR ls_access. ls_access-ddtext = -text. IF ls_dd40v-keydef = -value. ls_access-checked = abap_true. ENDIF. APPEND ls_access TO lt_keydef. ENDLOOP. REFRESH lt_keykind. LOOP AT lt_dom_value_keykind ASSIGNING . CLEAR ls_access. ls_access-ddtext = -text. IF ls_dd40v-keykind = -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 -obj_name txt_active___1 txt_short_text___2 -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 -pgmid -object -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: TYPE st_ztadir. PERFORM get_tabstrip USING 'DDIC_R3TR_TYPE' space CHANGING lt_tabstrip. LOOP AT gt_ztadir ASSIGNING WHERE pgmid = 'R3TR' AND object = 'TYPE' AND downloaded = abap_false. -downloaded = abap_true. CLEAR: ls_attributes. REFRESH: lt_html. CALL FUNCTION 'RS_TADIR_TO_PROGNAME' EXPORTING object = 'TYPE' obj_name = -obj_name IMPORTING progname = l_progname. SELECT SINGLE * FROM trdir INTO ls_trdir WHERE name = l_progname. IF sy-subrc <> 0. -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 = -devclass. PERFORM get_devclass USING -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 = -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 -obj_name txt_active___1 txt_short_text___2 -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 -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 -pgmid -object -obj_name gc_extension_htm abap_true. IF g_add_sourcecode = abap_true. PERFORM download USING lt_source -pgmid -object -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: TYPE st_ztadir, TYPE st_dom_value, TYPE dd26v, TYPE dd27p, TYPE dd28v, TYPE st_tabstrip. PERFORM get_dom_value_texts USING 'VIEWGRANT' CHANGING lt_dom_value_viewgrant. LOOP AT gt_ztadir ASSIGNING WHERE pgmid = 'R3TR' AND object = 'VIEW' AND downloaded = abap_false. -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 = -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. -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 = -devclass. PERFORM get_devclass USING -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 . CLEAR ls_access. ls_access-ddtext = -text. IF -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_tabname-tabname = -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 . IF -negation = 'JL'. ls_join_conditions-tabname_l = -tabname. ls_join_conditions-fieldname_l = -fieldname. PERFORM get_gui_operator USING -operator CHANGING ls_join_conditions-operator. ELSE. ls_join_conditions-tabname_r = -tabname. ls_join_conditions-fieldname_r = -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 . CLEAR ls_access. IF ls_dd25v-viewclass CO 'HCV' OR -value NA 'MU'. ls_access-ddtext = -text. IF ls_dd25v-viewgrant = -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 . -empty = abap_false. CASE -id. WHEN 'CREATE'. IF lt_create IS INITIAL. -empty = abap_true. ENDIF. WHEN 'SELECTIONCONDITIONS'. IF lt_dd28v IS INITIAL. -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 -obj_name txt_active___1 txt_short_text___2 -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 -pgmid -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 -pgmid -object -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: TYPE d021s, TYPE d023s_xh, 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 . CLEAR ls_d021s_res1. CLEAR ls_feld. CLEAR ls_feld_redef. CLEAR ls_func_new. CLEAR ls_func_old. ls_d021s_res1 = -res1. ls_feld-name = -fnam. ls_feld-dynnr = is_d020s-dnum. ls_feld-line = -line. IF ( -lanf <> 0 AND -ltyp = 'T' ) OR ( -ltyp = 'I' AND -fill = 'P' ) OR -ltyp = 'S'. ls_feld-coln = -coln. ELSE. ls_feld-coln = -coln - 1. ENDIF. ls_feld-leng = -leng. ls_feld-vleng = 1. IF -didx <= 0. IF -stxt(1) = '@'. IF -leng > 2. ls_feld-vleng = -leng - 2. ENDIF. ELSE. IF -leng > 1. ls_feld-vleng = -leng. ENDIF. ENDIF. ELSE. IF -fill CA 'TBSUIR'. ls_feld-vleng = -leng. ELSE. IF -flg1 Z lc_flg1edt. IF -ltyp CA 'TP'. ls_feld-vleng = -didx. ELSE. IF -didx > 0. ls_feld-vleng = -didx. ELSE. ls_feld-vleng = -leng. ENDIF. ENDIF. ELSE. ls_feld-vleng = -didx. ENDIF. ENDIF. ENDIF. ls_feld-high = 1. IF -didx > 0 AND -fill CA 'TBSUIR'. ls_feld-high = -didx. ENDIF. IF -flg1 O lc_flg1edt AND -flg1 O lc_flg1scr AND -fill NA 'TSI'. ls_feld-scroll = abap_true. ELSE. ls_feld-scroll = abap_false. ENDIF. IF -type = 'STRG' OR -type = 'RSTR' OR -type = 'SSTR'. ls_feld-scroll = abap_true. ENDIF. IF -flg1 O lc_flg1ddf. ls_feld-dict = abap_true. ELSE. ls_feld-dict = abap_false. ENDIF. IF -flg1 O lc_flg1edt. IF -flg1 O lc_flg1ddf AND -flg1 O lc_flg1ddm. ls_feld-dmod = abap_true. ENDIF. ELSE. IF -flg1 O lc_flg1ddf. IF -ityp = '4'. ls_feld-dmod = '4'. ELSE. IF -ityp = '1' OR -ityp = '2' OR -ityp = '3'. IF -flg1 O lc_flg1ddm. ls_feld-dmod = -ityp. ELSE. ls_feld-dmod = 'V'. ENDIF. ELSEIF -ityp = '0'. IF -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 = -grp1. ls_feld-grp2 = -grp2. ls_feld-grp3 = -grp3. ls_feld-grp4 = -grp4. IF -ltyp = 'L'. ls_feld-loop = -lrep. IF is_d020s-valp = -lanf. ls_feld-ltyp = 'Var'. ELSE. ls_feld-ltyp = 'Fix'. ENDIF. ENDIF. IF -fmb1 O lc_fmb1ges. ls_feld-fobl = 'N'. ELSEIF -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 . IF IS ASSIGNED AND NOT IS INITIAL. ls_feld-fobl = 'R'. ENDIF. UNASSIGN . ENDIF. PERFORM get_dom_value_text USING 'SCRPFOBL' ls_feld-fobl CHANGING ls_feld_redef-fobl. IF -fill <> 'R'. ls_feld-fout = abap_true. ENDIF. PERFORM fugr_get_feld_fill_na_btisu USING is_dynpro_release CHANGING ls_feld. ls_feld-colr = -colr. ls_feld-mtch = -dmac. ls_feld-waer = -wnam. IF is_dynpro_release <= lcs_dynpro_rel_400. ls_func_old = -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 = -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 WITH KEY cccustom = -fnam. IF sy-subrc = 0. ls_feld-ccname = -ccname. ENDIF. CALL FUNCTION 'RS_SCRP_GET_FIELD_TYPE_TEXT' EXPORTING field = text_kind = 'SHORT' IMPORTING field_type_without_modif = ls_feld-gtyp EXCEPTIONS OTHERS = 1. ls_feld-stxt = -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 -colr = '8'. ls_feld-extend = 'N'. ELSEIF -colr = '7'. ls_feld-extend = 'C'. ENDIF. IF -fill CA 'BTSUI'. ls_feld-hierarchy = '+ '. ENDIF. IF -ltyp CA 'TSI'. ls_feld-hierarchy = ' -'. ENDIF. PERFORM fugr_get_feld_icon USING CHANGING ls_feld. ls_feld-prog = is_d020s-prog. ls_feld-dnum = is_d020s-dnum. CASE -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 = -type. ENDCASE. CASE -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 -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 -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 -ltyp = space AND ls_feld-labelright = abap_false AND -flg1 <> '00'. ls_feld-labelleft = abap_true. ENDIF. ENDCASE. IF NOT ls_feld-stxt IS INITIAL. IF ls_feld-stxt NA '_'. l_length = -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 -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: TYPE ANY. CONSTANTS: lc_flg1edt TYPE x VALUE '80'. CHECK is_d021s-stxt(1) = '@'. ASSIGN is_d021s-stxt+1(*) TO . IF CA '@'. l_pos_at = sy-fdpos + 1. l_id_and_param = (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_strlen = strlen( ). 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 . 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: TYPE st_ztadir, TYPE st_tabstrip. PERFORM get_tabstrip USING 'FUGR_R3TR_FUGR' space CHANGING lt_tabstrip. LOOP AT gt_ztadir ASSIGNING WHERE pgmid = 'R3TR' AND object = 'FUGR' AND futype = gc_futype_group AND downloaded = abap_false. -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 = -object obj_name = -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 = -obj_name. CLEAR ls_ti. ls_ti-name = txt_function_group. ls_ti-input = abap_true. ls_ti-value = -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 = -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 . -empty = abap_false. CASE -id. WHEN 'DOCUMENTATION'. IF lt_documentation IS INITIAL. -empty = abap_true. ENDIF. ENDCASE. ENDLOOP. PERFORM html_main_header USING tpt_fugr_fugr space -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 '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 -pgmid -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: TYPE st_ztadir. PERFORM get_tabstrip USING 'FUGR_R3TR_INCLUDES' space CHANGING lt_tabstrip. LOOP AT gt_ztadir ASSIGNING 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 = -progname. IF sy-subrc <> 0. -subrc = sy-subrc. CONTINUE. ENDIF. CLEAR ls_ti. ls_ti-name = txt_title. ls_ti-value = -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 = -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 = -devclass. PERFORM get_devclass USING -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 -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 -progname -progname gc_extension_txt abap_false 'SOURCECODE' abap_true CHANGING lt_html. PERFORM html_main_footer USING lt_html. PERFORM download USING lt_html -pgmid -object -progname gc_extension_htm abap_true. -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: TYPE st_tabstrip, TYPE st_ztadir, TYPE st_parameter, TYPE sfupararef, TYPE st_abaptxt255. LOOP AT gt_ztadir ASSIGNING WHERE pgmid = 'R3TR' AND object = 'FUGR' AND futype = gc_futype_module AND downloaded = abap_false. -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 = -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. -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 = -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 = -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 . CLEAR ls_parameter. l_kind = 'P'. IF -paramtype = 'X'. l_kind = 'X'. ENDIF. ls_parameter-name = -parameter. IF -type = abap_true. ls_parameter-typing = 'TYPE'. ELSEIF -ref_class = abap_true. ls_parameter-typing = 'TYPE REF TO'. ELSE. ls_parameter-typing = 'LIKE'. ENDIF. ls_parameter-structure = -structure. ls_parameter-defvalue = -defaultval. ls_parameter-optional = -optional. IF -reference = abap_false. ls_parameter-passvalue = abap_true. ENDIF. READ TABLE lt_pfunct INTO ls_pfunct WITH KEY parameter = -parameter kind = l_kind spras = sy-langu. IF sy-subrc <> 0. READ TABLE lt_pfunct INTO ls_pfunct WITH KEY parameter = -parameter kind = l_kind spras = sy-langu. ENDIF. ls_parameter-stext = ls_pfunct-stext. ls_parameter-ltext_doku_obj = -funcname. ls_parameter-ltext_doku_obj+30 = -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_' -parameter ''')' INTO ls_parameter-ltext_onclick. ELSE. CLEAR ls_parameter-ltext_doku_obj. ENDIF. APPEND ls_parameter TO lt_parameter. CASE -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' -funcname 'T' CHANGING lt_documentation. LOOP AT lt_uincl ASSIGNING . l_sourcecode = -line. APPEND l_sourcecode TO lt_sourcecode. ENDLOOP. PERFORM get_tabstrip USING 'FUGR_R3TR_MODULES' space CHANGING lt_tabstrip. LOOP AT lt_tabstrip ASSIGNING . -empty = abap_false. CASE -id. WHEN 'DOCUMENTATION'. IF lt_documentation IS INITIAL. -empty = abap_true. ENDIF. WHEN 'IMPORT'. IF lt_importing IS INITIAL. -empty = abap_true. ENDIF. WHEN 'EXPORT'. IF lt_exporting IS INITIAL. -empty = abap_true. ENDIF. WHEN 'CHANGING'. IF lt_changing IS INITIAL. -empty = abap_true. ENDIF. WHEN 'TABLES'. IF lt_table IS INITIAL. -empty = abap_true. ENDIF. WHEN 'EXCEPTIONS'. IF lt_exception IS INITIAL. -empty = abap_true. ENDIF. WHEN 'SOURCECODE'. IF lt_sourcecode IS INITIAL. -empty = abap_true. ENDIF. ENDCASE. ENDLOOP. CONCATENATE 'makeDivSize(''DOCUMENTATION'');' 'makeDivSize(''SOURCECODE'');' INTO l_javascript. LOOP AT lt_parameter ASSIGNING WHERE ltext = '-->'. CLEAR ls_tabstrip. CONCATENATE 'LTEXT_' -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 -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 = -funcname. PERFORM download USING lt_sourcecode -pgmid -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 WHERE ltext = '-->'. REFRESH lt_doku. PERFORM get_docu USING 'FU' -ltext_doku_obj 'T' CHANGING lt_doku. PERFORM get_id USING 'LTEXT_' -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 -pgmid -object -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: TYPE d022s, TYPE d023s, TYPE st_ztadir, 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 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 = -progname. ls_dynpro_name-dnum = -dynpronr. IMPORT DYNPRO ls_d020s lt_d021s lt_d022s lt_d023s ID ls_dynpro_name. IF sy-subrc <> 0. -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 WHERE type = lc_type_cntcmp. ls_d023sx = -content. APPEND ls_d023sx-cccont TO lt_d023x. ENDLOOP. ls_attributes-descript = -descript. ls_attributes-devclass = -devclass. PERFORM get_devclass USING -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 CASTING. ls_ti-name = txt_switch_off_runtime_compres. ls_ti-flag = abap_true. IF 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 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 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 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 WITH KEY type = 'CTMENU'. IF sy-subrc = 0. ls_ti-value = -content. ENDIF. ls_ti-input = abap_true. UNASSIGN . 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 . APPEND -line TO lt_source. ENDLOOP. l_title = tpt_fugr_scr. PERFORM replace_single USING '#NAME_VALUE#' -progname CHANGING l_title. PERFORM html_main_header USING l_title txt_screen_number -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 -progname '-' -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 -pgmid -object l_filename gc_extension_txt abap_false. ENDIF. PERFORM html_main_footer USING lt_html. PERFORM download USING lt_html -pgmid -object l_filename gc_extension_htm abap_true. -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: TYPE ANY, TYPE ANY, TYPE ANY, TYPE ANY, TYPE st_o2relation, TYPE st_o2file_info. CREATE DATA lo_io TYPE ('SKWF_IO'). ASSIGN lo_io->* TO . CREATE DATA lo_phio TYPE ('SKWF_IO'). ASSIGN lo_phio->* TO . CREATE DATA lo_error TYPE ('SKWF_ERROR'). ASSIGN lo_error->* TO . ASSIGN COMPONENT 'OBJTYPE' OF STRUCTURE TO . = i_objtype. ASSIGN COMPONENT 'CLASS' OF STRUCTURE TO . = i_class. ASSIGN COMPONENT 'OBJID' OF STRUCTURE TO . = i_objid. CALL FUNCTION 'SKWF_IO_FROM_RELATIONS_GET' EXPORTING io = IMPORTING error = TABLES class_filter = lt_class_filter relations = lt_relation. CHECK IS INITIAL. LOOP AT lt_relation ASSIGNING . CLEAR . ASSIGN COMPONENT 'OBJTYPE' OF STRUCTURE TO . = -objtype. ASSIGN COMPONENT 'CLASS' OF STRUCTURE TO . = -prtn_class. ASSIGN COMPONENT 'OBJID' OF STRUCTURE TO . = -prtn_id. CALL FUNCTION 'SKWF_PHIO_LOAD_CONTENT' EXPORTING phio = IMPORTING 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 . c_filesize = -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: TYPE ANY, TYPE ANY. CREATE DATA lo_page TYPE ('O2PAGENAME'). ASSIGN lo_page->* TO . ASSIGN COMPONENT 'APPLNAME' OF STRUCTURE TO . = i_applname. ASSIGN COMPONENT 'PAGEKEY' OF STRUCTURE TO . = i_pagekey. ASSIGN COMPONENT 'PAGENAME' OF STRUCTURE TO . = i_pagename. ASSIGN COMPONENT 'PAGETYPE' OF STRUCTURE TO . = i_pagetype. ASSIGN COMPONENT 'IS_ERROR_PAGE' OF STRUCTURE TO . = i_is_error_page. CALL METHOD ('CL_O2_HELPER')=>generate_url_for_page EXPORTING p_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: TYPE st_ztadir, TYPE ANY, TYPE ANY, TYPE ANY, TYPE ANY, TYPE st_tabstrip. LOOP AT gt_ztadir ASSIGNING WHERE pgmid = 'R3TR' AND object = 'WAPA' AND o2pagekey = space AND downloaded = abap_false. -downloaded = abap_true. IF NOT IS ASSIGNED. PERFORM get_tabstrip USING 'O2_R3TR_WAPA' space CHANGING lt_tabstrip. CREATE DATA lo_navgraph TYPE ('O2NAVGRAPH'). ASSIGN lo_navgraph->* TO . CREATE DATA lo_appl TYPE ('O2APPL'). ASSIGN lo_appl->* TO . CREATE DATA lo_applt TYPE ('O2APPLT'). ASSIGN lo_applt->* TO . ENDIF. REFRESH: lt_html, lt_o2navigation. CLEAR: ls_attributes, l_applname, l_applext, , . l_applname = -obj_name. SELECT SINGLE * FROM ('O2APPL') INTO WHERE applname = l_applname AND version = 'A'. IF sy-subrc = 0. ASSIGN COMPONENT 'APPLEXT' OF STRUCTURE TO . l_applext = . ls_attributes-space_after_descript = abap_true. ls_attributes-is_bsp_appl = abap_true. ls_attributes-descript = -descript. ASSIGN COMPONENT 'AUTHOR' OF STRUCTURE TO . ls_attributes-author = . l_bname = . PERFORM get_user USING l_bname CHANGING l_name_text. ls_attributes-author_text = l_name_text. ASSIGN COMPONENT 'CREATEDON' OF STRUCTURE TO . PERFORM get_date USING CHANGING ls_attributes-date_created. ASSIGN COMPONENT 'CHANGEDBY' OF STRUCTURE TO . ls_attributes-bname = . l_bname = . PERFORM get_user USING l_bname CHANGING l_name_text. ls_attributes-name_text = l_name_text. ASSIGN COMPONENT 'CHANGEDON' OF STRUCTURE TO . PERFORM get_date USING CHANGING ls_attributes-date_last_changed. ls_attributes-devclass = -devclass. PERFORM get_devclass USING -devclass CHANGING ls_attributes-devclass_descr. PERFORM get_spras USING -masterlang CHANGING ls_attributes-laiso ls_attributes-sptxt. ASSIGN COMPONENT 'APPLNAME' OF STRUCTURE TO . ls_attributes-internal_name = . ASSIGN COMPONENT 'STARTPAGE' OF STRUCTURE TO . ls_attributes-initial_bsp = . ASSIGN COMPONENT 'APPLCLAS' OF STRUCTURE TO . ls_attributes-application_class = . ASSIGN COMPONENT 'THEME' OF STRUCTURE TO . ls_attributes-initial_bsp = . ASSIGN COMPONENT 'STATEFUL' OF STRUCTURE TO . ls_attributes-stateful = . ASSIGN COMPONENT 'SESSIONMANAGEMNT' OF STRUCTURE TO . ls_attributes-supports_portal_integration = . ENDIF. SELECT * FROM ('O2NAVGRAPH') INTO WHERE applname = l_applname AND version = 'A'. CLEAR ls_o2navigation. ASSIGN COMPONENT 'NODEEXIT' OF STRUCTURE TO . ls_o2navigation-navrequest = . ASSIGN COMPONENT 'CURRNODE' OF STRUCTURE TO . SELECT SINGLE pagekey FROM ('O2NAVMAP') INTO l_pagekey WHERE applname = l_applname AND version = 'A' AND node = . 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 TO . SELECT SINGLE pagekey FROM ('O2NAVMAP') INTO l_pagekey WHERE applname = l_applname AND version = 'A' AND node = . 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 . -empty = abap_false. CASE -id. WHEN 'NAVIGATION'. IF lt_o2navigation IS INITIAL. -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 -pgmid -object -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: TYPE st_ztadir, TYPE ANY, TYPE st_line, TYPE ANY, TYPE st_dom_value, TYPE st_o2pagevhs, TYPE st_o2pagpars, TYPE st_tabstrip. LOOP AT gt_ztadir ASSIGNING 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. -downloaded = abap_true. IF NOT IS ASSIGNED. CREATE DATA lo_pagdir TYPE ('O2PAGATTR'). ASSIGN lo_pagdir->* TO . 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, , l_type, l_filename, l_filename2, l_flag, l_type_title, l_title, l_id, l_javascript. l_applname = -obj_name. l_pagekey = -o2pagekey. l_objname+0(30) = -obj_name. l_objname+30(70) = -o2pagekey. CALL FUNCTION 'O2_GET_WAPA_SOURCEN' EXPORTING p_objname = l_objname p_versno = 0 p_devclass = -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 = pt_typesource = lt_typesrc pt_used_guids = lt_used_guid EXCEPTIONS OTHERS = 1. ASSIGN COMPONENT 'PAGENAME' OF STRUCTURE TO . l_pagename = . CLEAR ls_ti. ls_ti-name = txt_description. ls_ti-value = -descript. ls_ti-input = abap_true. APPEND ls_ti TO lt_prop_header. IF -o2type = gc_o2type_ctrl. CLEAR ls_ti. ls_ti-name = txt_controller_class. ASSIGN COMPONENT 'IMPLCLASS' OF STRUCTURE TO . ls_ti-value = . ls_ti-input = abap_true. APPEND ls_ti TO lt_prop_header. ENDIF. IF -o2type = gc_o2type_bsp OR -o2type = gc_o2type_view. CLEAR ls_ti. ls_ti-name = txt_mime_type. ASSIGN COMPONENT 'MIMETYPE' OF STRUCTURE TO . ls_ti-value = . 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 TO . PERFORM get_dom_value_text USING 'O2STRIPMODE' 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 TO . ls_ti-value = . ls_ti-flag = abap_true. APPEND ls_ti TO lt_prop_header. ENDIF. IF -o2type = gc_o2type_bsp OR -o2type = gc_o2type_incl OR -o2type = gc_o2type_view. ASSIGN COMPONENT 'PAGETYPE' OF STRUCTURE TO . l_pagetype = . 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 TO . ls_ti-value = . ls_ti-input = abap_true. APPEND ls_ti TO lt_prop_page_type_ti. ENDIF. IF -o2type = gc_o2type_bsp OR -o2type = gc_o2type_ctrl OR -o2type = gc_o2type_view. CLEAR ls_ti. ls_ti-name = txt_is_error_page. ASSIGN COMPONENT 'IS_ERROR_PAGE' OF STRUCTURE TO . l_is_error_page = . 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 TO . ls_ti-value = . ls_ti-input = abap_true. APPEND ls_ti TO lt_prop_error_handling. ENDIF. IF -o2type = gc_o2type_bsp OR -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 TO . LOOP AT lt_dom_value ASSIGNING . CLEAR ls_rb. ls_rb-ddtext = -text. IF -value = . 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 TO . PERFORM get_dom_value_text USING 'O2LIFETIME' 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 TO . ls_ti-value = . 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 TO . ls_ti-value = . 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 TO . ls_ti-value = . 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 TO . ls_ti-value = . ls_ti-flag = abap_true. APPEND ls_ti TO lt_prop_transfer_options_li. ENDIF. IF -o2type = gc_o2type_bsp OR -o2type = gc_o2type_ctrl OR -o2type = gc_o2type_view. CLEAR ls_ti. ls_ti-name = txt_delta_handling. ASSIGN COMPONENT 'DELTA_HANDLING' OF STRUCTURE TO . ls_ti-value = . ls_ti-flag = abap_true. APPEND ls_ti TO lt_prop_transfer_options_li. ENDIF. IF -o2type = gc_o2type_bsp OR -o2type = gc_o2type_ctrl. CLEAR ls_ti. ls_ti-name = txt_https. ASSIGN COMPONENT 'SECUREHTTP' OF STRUCTURE TO . l_https = . 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 TO . l_bname = . 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 TO . PERFORM get_date USING 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 TO . l_bname = . 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 TO . PERFORM get_date USING 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 = -devclass. ls_ti-input = abap_true. APPEND ls_ti TO lt_prop_footer. IF -o2type = gc_o2type_bsp OR -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 -o2type = gc_o2type_bsp OR -o2type = gc_o2type_incl OR -o2type = gc_o2type_view. LOOP AT lt_line ASSIGNING . l_str = -line. APPEND l_str TO lt_layout_src. ENDLOOP. ENDIF. IF -o2type = gc_o2type_bsp OR -o2type = gc_o2type_view. LOOP AT lt_o2pagpars ASSIGNING . CLEAR ls_pageattr. MOVE-CORRESPONDING 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 = -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 . -empty = abap_false. CASE -id. WHEN 'LAYOUT'. IF lt_layout_src IS INITIAL. -empty = abap_true. ELSE. CONCATENATE l_javascript 'makeDivSize(''LAYOUT'');' INTO l_javascript. ENDIF. WHEN 'EVENT_HANDLER'. IF lt_o2pagevhs IS INITIAL. -empty = abap_true. ENDIF. WHEN 'PAGE_ATTRIBUTES'. IF lt_pageattr IS INITIAL. -empty = abap_true. ENDIF. WHEN 'TYPE_DEFINITIONS'. IF lt_typesrc IS INITIAL. -empty = abap_true. ELSE. CONCATENATE l_javascript 'makeDivSize(''TYPE_DEFINITIONS'');' INTO l_javascript. ENDIF. ENDCASE. ENDLOOP. LOOP AT lt_o2pagevhs ASSIGNING . CLEAR ls_tabstrip. ls_tabstrip-form = 'O2_R3TR_WAPA_APPL'. ls_tabstrip-id = -evhandler. ls_tabstrip-parent_id = 'EVENT_HANDLER'. ls_tabstrip-text = -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(''' -evhandler ''');' INTO l_javascript. ENDLOOP. CASE -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#' -obj_name CHANGING l_title. CONCATENATE -obj_name '-' l_type '/' -o2pagename INTO l_filename. PERFORM html_main_header USING l_title l_type_title -o2pagename txt_active___1 space space l_javascript lt_tabstrip gt_link CHANGING lt_html. l_flag = abap_true. IF -o2type = gc_o2type_bsp OR -o2type = gc_o2type_incl OR -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 -o2type = gc_o2type_bsp OR -o2type = gc_o2type_incl OR -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 -pgmid -object l_filename gc_extension_txt abap_false. ENDIF. ENDIF. IF -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 . l_flag = abap_false. IF sy-tabix = 1. l_flag = abap_true. ENDIF. CONCATENATE l_filename '.' -evhandler INTO l_filename2. PERFORM html_add_sourcecode USING -source l_filename2 space space gc_extension_txt -evhandler l_flag CHANGING lt_html. PERFORM download USING -source -pgmid -object l_filename2 gc_extension_txt abap_false. ENDLOOP. PERFORM html_add_container_end CHANGING lt_html. ENDIF. ENDIF. IF -o2type = gc_o2type_bsp OR -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 -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 -pgmid -object l_filename2 gc_extension_txt abap_false. ENDIF. ENDIF. PERFORM html_main_footer USING lt_html. PERFORM download USING lt_html -pgmid -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: TYPE st_ztadir, TYPE st_o2content_ascii. LOOP AT gt_ztadir ASSIGNING WHERE pgmid = 'R3TR' AND object = 'WAPA' AND o2pagekey <> space AND o2type = gc_o2type_mime AND downloaded = abap_false. -downloaded = abap_true. CLEAR: l_filesize. REFRESH: lt_content_ascii, lt_content_binary, lt_ascii. PERFORM o2_get_mime_content USING -mime_objtype -mime_class -mime_objid CHANGING lt_content_ascii lt_content_binary l_filesize. CONCATENATE -obj_name '-mime/' -o2pagename INTO l_filename. IF NOT lt_content_ascii IS INITIAL. LOOP AT lt_content_ascii ASSIGNING . ls_ascii = -line. APPEND ls_ascii TO lt_ascii. ENDLOOP. PERFORM download USING lt_ascii -pgmid -object l_filename space abap_true. ENDIF. IF NOT lt_content_binary IS INITIAL. PERFORM download_binary USING lt_content_binary l_filesize -pgmid -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: TYPE st_ztadir, TYPE ANY, TYPE ANY. LOOP AT gt_ztadir ASSIGNING WHERE pgmid = 'R3TR' AND object = 'WTAG' AND o2pagekey = space AND downloaded = abap_false. -downloaded = abap_true. IF NOT IS ASSIGNED. PERFORM get_tabstrip USING 'O2_R3TR_WTAG' space CHANGING lt_tabstrip. CREATE DATA lo_taglib TYPE ('O2TAGLIB'). ASSIGN lo_taglib->* TO . ENDIF. REFRESH: lt_html, lt_props, lt_general. CLEAR . l_tlibid = -obj_name. SELECT SINGLE masterlang FROM tadir INTO l_masterlang WHERE pgmid = 'R3TR' AND object = 'WTAG' AND obj_name = -obj_name. SELECT SINGLE * FROM ('O2TAGLIB') INTO WHERE tlibid = l_tlibid AND state = 'A'. ASSIGN COMPONENT 'TLIBNAME' OF STRUCTURE TO . l_tlibname = . CLEAR ls_ti. ls_ti-name = txt_short_description___2. ls_ti-value = -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 TO . 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_props. CLEAR ls_ti. ls_ti-name = txt_bsp_extension_class. ASSIGN COMPONENT 'TAGLIBCLASS' OF STRUCTURE TO . 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_props. CLEAR ls_ti. ls_ti-name = txt_bsp_element_basis_class. ASSIGN COMPONENT 'TAGBASECLASS' OF STRUCTURE TO . 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_props. CLEAR ls_ti. ls_ti-name = txt_created_by___1. ASSIGN COMPONENT 'AUTHOR' OF STRUCTURE TO . ls_ti-value = . l_bname = . 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 TO . PERFORM get_date USING 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 TO . ls_ti-value = . l_bname = . 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 TO . PERFORM get_date USING 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 TO . PERFORM get_time USING 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 = -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 -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 -pgmid -object -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: TYPE st_ztadir, TYPE ANY, TYPE ANY, 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 WHERE pgmid = 'R3TR' AND object = 'WTAG' AND o2pagekey <> space AND downloaded = abap_false. -downloaded = abap_true. IF NOT IS ASSIGNED. PERFORM get_tabstrip USING 'O2_R3TR_WTAG_EXT' space CHANGING lt_tabstrip. CREATE DATA lo_tag TYPE ('O2TAG'). ASSIGN lo_tag->* TO . CREATE DATA lo_att TYPE ('O2TAGATT'). ASSIGN lo_att->* TO . ENDIF. REFRESH: lt_html, lt_props, lt_general, lt_content, lt_options, lt_att. CLEAR: , , ls_rb, ls_att, l_filename. l_tlibid = -obj_name. l_tagid = -o2name. SELECT SINGLE * FROM ('O2TAG') INTO WHERE tlibid = l_tlibid AND tagid = l_tagid AND state = 'A'. CLEAR ls_ti. ls_ti-name = txt_short_description___2. ls_ti-value = -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 TO . 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_props. CLEAR ls_ti. ls_ti-name = txt_bsp_extension_class. ASSIGN COMPONENT 'GENCLASS' OF STRUCTURE TO . 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_props. ASSIGN COMPONENT 'BCONTENT' OF STRUCTURE TO . CLEAR ls_rb. ls_rb-ddtext = txt_blank. IF = 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 = 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 = 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 = 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 TO . ls_ti-value = . 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 TO . ls_ti-value = . 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 TO . ls_ti-value = . 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 TO . ls_ti-value = . 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 TO . ls_ti-value = . l_bname = . 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 TO . PERFORM get_date USING 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 TO . ls_ti-value = . l_bname = . 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 TO . PERFORM get_date USING 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 WHERE tlibid = l_tlibid AND state = 'A' AND tagid = l_tagid. ASSIGN COMPONENT 'ATTID' OF STRUCTURE TO . ls_att-attid = . ASSIGN COMPONENT 'REQUIRED' OF STRUCTURE TO . ls_att-required = . ASSIGN COMPONENT 'RTEXPR' OF STRUCTURE TO . ls_att-rtexpr = . ASSIGN COMPONENT 'BYREF' OF STRUCTURE TO . ls_att-byref = . ASSIGN COMPONENT 'TYPE' OF STRUCTURE TO . ls_att-type = . ASSIGN COMPONENT 'DEFVAL' OF STRUCTURE TO . ls_att-defval = . ASSIGN COMPONENT 'BINDABLE' OF STRUCTURE TO . ls_att-bindable = . ASSIGN COMPONENT 'TYPTYPE' OF STRUCTURE TO . PERFORM get_dom_value_text USING 'O2TYPTYPE' 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 -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 -obj_name '-' l_tagid INTO l_filename. PERFORM download USING lt_html -pgmid -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: TYPE st_ztadir, TYPE st_o2pageline. LOOP AT gt_ztadir ASSIGNING WHERE pgmid = 'R3TR' AND object = 'XSLT' AND downloaded = abap_false. -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 = -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 = -descript. ls_attributes-devclass = -devclass. PERFORM get_devclass USING ls_attributes-devclass CHANGING ls_attributes-devclass_descr. PERFORM get_spras USING -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 -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 'SOURCECODE' abap_true CHANGING lt_html. PERFORM html_main_footer USING lt_html. PERFORM download USING lt_html -pgmid -object -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: TYPE st_tabstrip, TYPE ANY, TYPE ANY, 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 . IF IS ASSIGNED. CLEAR ls_ti. ls_ti-name = txt_package_check_as_server. ls_ti-flag = abap_true. ls_ti-value = . APPEND ls_ti TO lt_package_properties. UNASSIGN . ENDIF. ASSIGN COMPONENT 'CLI_CHECK' OF STRUCTURE gs_tdevc TO . IF IS ASSIGNED. CLEAR ls_ti. ls_ti-name = txt_package_check_as_client. ls_ti-flag = abap_true. ls_ti-value = . APPEND ls_ti TO lt_package_properties. UNASSIGN . 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 . ASSIGN COMPONENT 'DELETED_IN_MEMORY' OF STRUCTURE ls_ref_interface TO . IF IS ASSIGNED AND = 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 . ASSIGN COMPONENT 'DELETED_IN_MEMORY' OF STRUCTURE ls_ref_perm TO . IF IS ASSIGNED AND = 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 . ASSIGN COMPONENT 'DELETED_IN_MEMORY' OF STRUCTURE ls_ref_sub TO . IF IS ASSIGNED AND = 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 . -empty = abap_false. CASE -id. WHEN 'INTERFACE'. IF lt_interface IS INITIAL. -empty = abap_true. ENDIF. WHEN 'PERM'. IF lt_perm IS INITIAL. -empty = abap_true. ENDIF. WHEN 'SUB'. IF lt_sub IS INITIAL. -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: TYPE st_ztadir. PERFORM get_tabstrip USING 'PROG_R3TR_INCL' space CHANGING lt_tabstrip. LOOP AT gt_ztadir ASSIGNING 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 = -progname. IF sy-subrc <> 0. -subrc = sy-subrc. CONTINUE. ENDIF. CLEAR ls_ti. ls_ti-name = txt_title. ls_ti-value = -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 = -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 = -devclass. PERFORM get_devclass USING -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 -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 -progname -progname gc_extension_txt abap_false 'SOURCECODE' abap_true CHANGING lt_html. PERFORM html_main_footer USING lt_html. PERFORM download USING lt_html -pgmid -object -progname gc_extension_htm abap_true. -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: TYPE st_tabstrip, TYPE st_ztadir, TYPE textpool, TYPE varid, TYPE vanz, TYPE rsparams, 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 WHERE pgmid = 'R3TR' AND object = 'PROG' AND subc = '1' AND downloaded = abap_false. -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 = -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. -subrc = sy-subrc. CONTINUE. ENDIF. ELSE. CALL FUNCTION 'RPY_PROGRAM_READ' EXPORTING language = sy-langu program_name = -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. -subrc = sy-subrc. CONTINUE. ENDIF. LOOP AT lt_source ASSIGNING . ls_source_extended = -line. APPEND ls_source_extended TO lt_source_extended. ENDLOOP. ENDIF. SELECT SINGLE * FROM trdir INTO ls_trdir WHERE name = -progname. PERFORM get_docu USING 'RE' -obj_name 'E' CHANGING lt_doc. LOOP AT lt_textelements ASSIGNING . CASE -id. WHEN 'H'. CLEAR ls_ti. ls_ti-value = -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 TO lt_text_symbols. ls_textelements_addons-strlen = strlen( -entry ). APPEND ls_textelements_addons TO lt_text_symbols_addons. WHEN 'S'. CLEAR ls_textelements_addons. IF -entry+0(1) = 'D'. -entry+0(1) = space. ls_textelements_addons-dict_ref = abap_true. ENDIF. CONDENSE -entry. APPEND ls_textelements_addons TO lt_selection_texts_addons. APPEND TO lt_selection_texts. WHEN 'T'. CLEAR ls_ti. ls_ti-value = -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 = -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 = -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 = -devclass. PERFORM get_devclass USING -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 = -obj_name. LOOP AT lt_varid ASSIGNING . READ TABLE gt_varid_broken TRANSPORTING NO FIELDS WITH KEY report = -report vari = -variant. IF sy-subrc = 0. CONTINUE. ENDIF. CALL FUNCTION 'RS_VARIANT_CONTENTS' EXPORTING report = -report variant = -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 . IF sy-tabix > 100. EXIT. ENDIF. CLEAR ls_variant. ls_variant-program = -report. ls_variant-variant = -variant. ls_variant-selname = -selname. PERFORM get_gui_kind USING -kind CHANGING ls_variant-kind. PERFORM get_gui_sign USING -sign CHANGING ls_variant-sign. PERFORM get_gui_operator USING -option CHANGING ls_variant-option. ls_variant-low = -low. ls_variant-high = -high. READ TABLE lt_params ASSIGNING WITH KEY name = -selname. IF sy-subrc <> 0 OR -text IS INITIAL. READ TABLE lt_params_nonv ASSIGNING WITH KEY name = -selname. IF sy-subrc <> 0 OR -text IS INITIAL. READ TABLE lt_selop ASSIGNING WITH KEY name = -selname. IF sy-subrc <> 0 OR -text IS INITIAL. READ TABLE lt_selop_nonv ASSIGNING WITH KEY name = -selname. IF sy-subrc <> 0 OR -text IS INITIAL. READ TABLE lt_objects ASSIGNING WITH KEY name = -selname. ENDIF. ENDIF. ENDIF. ENDIF. IF sy-subrc = 0. ls_variant-text = -text. ENDIF. APPEND ls_variant TO lt_variant. ENDLOOP. ENDLOOP. ENDIF. LOOP AT lt_tabstrip ASSIGNING . -empty = abap_false. CASE -id. WHEN 'LISTTITLE'. IF lt_list_titles IS INITIAL AND lt_row_titles IS INITIAL. -empty = abap_true. ENDIF. WHEN 'SELECTIONTEXTS'. IF lt_selection_texts IS INITIAL. -empty = abap_true. ENDIF. WHEN 'TEXTSYMBOLS'. IF lt_text_symbols IS INITIAL. -empty = abap_true. ENDIF. WHEN 'DOC'. IF lt_doc IS INITIAL. -empty = abap_true. ENDIF. WHEN 'VARIANT'. IF lt_variant IS INITIAL. -empty = abap_true. IF g_add_report_variants = abap_false. -hidden = abap_true. ENDIF. ENDIF. ENDCASE. ENDLOOP. PERFORM html_main_header USING tpt_prog_repo space -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 -obj_name -obj_name gc_extension_txt abap_true 'SOURCECODE' abap_true CHANGING lt_html. PERFORM html_main_footer USING lt_html. PERFORM download USING lt_html -pgmid -object -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: TYPE st_ref_seoattrib, TYPE st_ref_seomethod, TYPE st_ref_seoevent, TYPE st_ref_seotype, TYPE st_ref_seoalias, TYPE seoaliases. REFRESH: ct_ref_alias. ls_ref_alias-type = txt_attribute. LOOP AT it_ref_attrib ASSIGNING WHERE cpdname CP '*~*'. ls_ref_alias-cpdname = -cpdname. ls_ref_alias-owner = -owner. APPEND ls_ref_alias TO lt_ref_alias_tmp. ENDLOOP. ls_ref_alias-type = txt_method. LOOP AT it_ref_method ASSIGNING WHERE cpdname CP '*~*'. ls_ref_alias-cpdname = -cpdname. ls_ref_alias-owner = -owner. APPEND ls_ref_alias TO lt_ref_alias_tmp. ENDLOOP. ls_ref_alias-type = txt_event. LOOP AT it_ref_event ASSIGNING WHERE cpdname CP '*~*'. ls_ref_alias-cpdname = -cpdname. ls_ref_alias-owner = -owner. APPEND ls_ref_alias TO lt_ref_alias_tmp. ENDLOOP. ls_ref_alias-type = txt_type___1. LOOP AT it_ref_type ASSIGNING WHERE cpdname CP '*~*'. ls_ref_alias-cpdname = -cpdname. ls_ref_alias-owner = -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 WHERE cpdname CP '*~*' AND owner = i_clsname. SPLIT -cpdname AT '~' INTO l_clsname l_cmpname. READ TABLE lt_seoalias ASSIGNING WITH KEY cmpname = l_cmpname. IF sy-subrc = 0. -refcmpname = -cmpname. PERFORM get_dom_value_text USING 'SEOEXPOSE' -exposure CHANGING -exposure. IF NOT -refcmpname IS INITIAL AND -exposure > 0. APPEND TO ct_ref_alias. ENDIF. ELSE. APPEND 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: TYPE st_seo_super_class, TYPE vseoattrib, TYPE st_ref_seoattrib. LOOP AT it_super_class ASSIGNING . SELECT * FROM vseoattrib INTO TABLE lt_attrib WHERE clsname = -clsname AND alias = abap_false AND langu = sy-langu AND version = '1' ORDER BY editorder. LOOP AT lt_attrib ASSIGNING . l_cpdname = -cmpname. READ TABLE ct_ref_attrib ASSIGNING WITH KEY cpdname = l_cpdname. IF sy-subrc = 0. IF -clsname = i_clsname. -inherited = abap_false. ENDIF. ELSEIF -clsname = i_clsname OR -exposure > 0. ls_ref_attrib-cpdname = l_cpdname. IF -clsname = i_clsname. ls_ref_attrib-inherited = abap_false. ELSE. ls_ref_attrib-inherited = abap_true. ENDIF. PERFORM get_dom_value_text USING 'SEOEXPOSE' -exposure CHANGING ls_ref_attrib-exposure. PERFORM seo_get_check_model USING CHANGING ls_ref_attrib. PERFORM get_dom_value_text USING 'SEOATTDECL' -attdecltyp CHANGING ls_ref_attrib-decltype. ls_ref_attrib-attrdonly = -attrdonly. PERFORM get_dom_value_text USING 'SEOTYPTYPE' -typtype CHANGING ls_ref_attrib-typtype. ls_ref_attrib-type = -type. l_str = -exposure. CONDENSE l_str. CONCATENATE 'COMPONENTS_' l_str '_' INTO l_str. PERFORM get_id USING l_str -clsname CHANGING l_id. CONCATENATE 'switchContent(''' l_id ''')' INTO ls_ref_attrib-onclick. ls_ref_attrib-typelink = '->'. ls_ref_attrib-descript = -descript. ls_ref_attrib-attvalue = -attvalue. ls_ref_attrib-owner = -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: TYPE st_seo_super_class, TYPE st_ref_seointerface, TYPE vseoattrib, TYPE st_ref_seoattrib. LOOP AT it_super_class ASSIGNING . LOOP AT it_ref_interface ASSIGNING WHERE owner = -clsname. SELECT * FROM vseoattrib INTO TABLE lt_attrib WHERE clsname = -refclsname AND alias = abap_false AND langu = sy-langu AND version = '1' ORDER BY editorder. LOOP AT lt_attrib ASSIGNING . CONCATENATE -clsname '~' -cmpname INTO l_cpdname. READ TABLE ct_ref_attrib ASSIGNING WITH KEY cpdname = l_cpdname. IF sy-subrc <> 0 AND ( -clsname = i_clsname OR -exposure > 0 ). ls_ref_attrib-cpdname = l_cpdname. IF -clsname = i_clsname. ls_ref_attrib-inherited = abap_false. ELSE. ls_ref_attrib-inherited = abap_true. ENDIF. PERFORM get_dom_value_text USING 'SEOEXPOSE' -exposure CHANGING ls_ref_attrib-exposure. PERFORM seo_get_check_model USING CHANGING ls_ref_attrib. PERFORM get_dom_value_text USING 'SEOATTDECL' -attdecltyp CHANGING ls_ref_attrib-decltype. ls_ref_attrib-attrdonly = -attrdonly. PERFORM get_dom_value_text USING 'SEOTYPTYPE' -typtype CHANGING ls_ref_attrib-typtype. ls_ref_attrib-type = -type. l_str = -exposure. CONDENSE l_str. CONCATENATE 'COMPONENTS_' l_str '_' INTO l_str. PERFORM get_id USING l_str -clsname CHANGING l_id. CONCATENATE 'switchContent(''' l_id ''')' INTO ls_ref_attrib-onclick. ls_ref_attrib-typelink = '->'. ls_ref_attrib-descript = -descript. ls_ref_attrib-attvalue = -attvalue. ls_ref_attrib-owner = -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: TYPE st_seo_super_class, TYPE vseoevent. LOOP AT it_super_class ASSIGNING . SELECT * FROM vseoevent INTO TABLE lt_event WHERE clsname = -clsname AND langu = sy-langu AND alias = abap_false AND version = '1' ORDER BY editorder. LOOP AT lt_event ASSIGNING . CLEAR ls_ref_event. ls_cmpkey-clsname = -clsname. ls_cmpkey-cmpname = -cmpname. CALL FUNCTION 'SEO_EVENT_GET' EXPORTING evtkey = ls_cmpkey version = 1 IMPORTING event = EXCEPTIONS OTHERS = 1. IF sy-subrc = 0 AND -alias = abap_false. ls_ref_event-owner = -clsname. IF -clsname <> i_clsname. ls_ref_event-inherited = abap_true. ENDIF. ls_ref_event-cpdname = -cmpname. PERFORM get_dom_value_text USING 'SEOEVTDECL' -evtdecltyp CHANGING ls_ref_event-type. PERFORM get_dom_value_text USING 'SEOEXPOSE' -exposure CHANGING ls_ref_event-exposure. PERFORM seo_get_check_model USING CHANGING ls_ref_event. ls_ref_event-descript = -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: TYPE st_seo_super_class, TYPE st_ref_seointerface, TYPE vseoevent. LOOP AT it_super_class ASSIGNING . LOOP AT it_ref_interface ASSIGNING WHERE owner = -clsname. SELECT * FROM vseoevent INTO TABLE lt_event WHERE clsname = -refclsname AND langu = sy-langu AND alias = abap_false AND version = '1' ORDER BY editorder. LOOP AT lt_event ASSIGNING . CLEAR ls_ref_event. ls_cmpkey-clsname = -refclsname. IF -clsname <> i_clsname. ls_ref_event-inherited = abap_true. ENDIF. ls_cmpkey-cmpname = -cmpname. CALL FUNCTION 'SEO_EVENT_GET' EXPORTING evtkey = ls_cmpkey version = 1 IMPORTING event = EXCEPTIONS OTHERS = 1. IF sy-subrc = 0 AND -alias = abap_false. ls_ref_event-owner = -clsname. CONCATENATE -refclsname '~' -cmpname INTO ls_ref_event-cpdname. PERFORM get_dom_value_text USING 'SEOEVTDECL' -evtdecltyp CHANGING ls_ref_event-type. PERFORM get_dom_value_text USING 'SEOEXPOSE' -exposure CHANGING ls_ref_event-exposure. PERFORM seo_get_check_model USING CHANGING ls_ref_event. ls_ref_event-descript = -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: 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 . CLEAR ls_ref_friends. READ TABLE ct_ref_friends TRANSPORTING NO FIELDS WITH KEY refclsname = -refclsname. IF sy-subrc <> 0. ls_ref_friends-refclsname = -refclsname. PERFORM seo_get_check_model USING CHANGING ls_ref_friends. SELECT SINGLE descript FROM seoclasstx INTO ls_ref_friends-descript WHERE clsname = -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: TYPE st_seo_super_class, TYPE st_ref_seointerface. REFRESH: ct_ref_interface, ct_ref_interface_all. LOOP AT it_super_class ASSIGNING . REFRESH lt_ref_interface_tmp. PERFORM seo_get_interfaces USING -clsname 0 CHANGING lt_ref_interface_tmp lt_ref_interface_all_tmp. LOOP AT lt_ref_interface_tmp ASSIGNING . -owner = . IF -clsname <> i_clsname. -inherited = abap_true. ENDIF. APPEND TO ct_ref_interface. ENDLOOP. LOOP AT lt_ref_interface_all_tmp ASSIGNING . -owner = . IF -clsname <> i_clsname. -inherited = abap_true. ENDIF. APPEND 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: 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 . READ TABLE gt_zseomethod TRANSPORTING NO FIELDS WITH KEY devclass = is_ztadir-devclass pgmid = is_ztadir-pgmid object = is_ztadir-object clsname = -owner cpdname = -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 = -owner. ls_zseomethod-cpdname = -cpdname. ls_zseomethod-active = -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: TYPE st_seo_super_class, TYPE vseomethod, TYPE st_ref_seomethod, TYPE seoredef. LOOP AT it_super_class ASSIGNING . SELECT * FROM vseomethod INTO TABLE lt_method WHERE clsname = -clsname AND langu = sy-langu AND alias = abap_false AND version = '1' ORDER BY editorder. IF -clsname <> i_clsname. DELETE lt_method WHERE cmpname = 'CLASS_CONSTRUCTOR' OR cmpname = 'DESTRUCTOR'. ENDIF. LOOP AT lt_method ASSIGNING . l_cpdname = -cmpname. READ TABLE ct_ref_method ASSIGNING WITH KEY cpdname = l_cpdname. IF sy-subrc = 0 AND l_cpdname <> 'CONSTRUCTOR'. IF -clsname = i_clsname. -inherited = abap_false. UNASSIGN . ENDIF. ELSEIF -clsname = i_clsname OR -exposure > 0. CLEAR ls_ref_method. ls_ref_method-cpdname = l_cpdname. IF -clsname <> i_clsname. ls_ref_method-inherited = abap_true. ENDIF. PERFORM get_dom_value_text USING 'SEOVERSION' -version CHANGING ls_ref_method-active. PERFORM get_dom_value_text USING 'SEOMTDDECL' -mtddecltyp CHANGING ls_ref_method-type. PERFORM get_dom_value_text USING 'SEOEXPOSE' -exposure CHANGING ls_ref_method-exposure. PERFORM seo_get_check_model USING CHANGING ls_ref_method. PERFORM get_dom_value_text USING 'SEOMTDTYPE' -mtdtype CHANGING ls_ref_method-methodtype. ls_ref_method-descript = -descript. ls_ref_method-owner = -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 IS ASSIGNED. DELETE ct_ref_method WHERE owner = -owner AND cpdname = -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: TYPE st_seo_super_class, TYPE st_ref_seointerface, TYPE vseomethod, TYPE st_ref_seomethod. LOOP AT it_super_class ASSIGNING . LOOP AT it_ref_interface ASSIGNING WHERE owner = -clsname. SELECT * FROM vseomethod INTO TABLE lt_method WHERE clsname = -refclsname AND langu = sy-langu AND alias = abap_false AND version = '1' ORDER BY editorder. LOOP AT lt_method ASSIGNING . CONCATENATE -refclsname '~' -cmpname INTO l_cpdname. READ TABLE ct_ref_method ASSIGNING WITH KEY cpdname = l_cpdname. IF sy-subrc <> 0 AND ( -clsname = i_clsname OR -exposure > 0 ). CLEAR ls_ref_method. ls_ref_method-cpdname = l_cpdname. IF -clsname <> i_clsname. ls_ref_method-inherited = abap_true. ENDIF. PERFORM get_dom_value_text USING 'SEOVERSION' -version CHANGING ls_ref_method-active. PERFORM get_dom_value_text USING 'SEOMTDDECL' -mtddecltyp CHANGING ls_ref_method-type. PERFORM get_dom_value_text USING 'SEOEXPOSE' -exposure CHANGING ls_ref_method-exposure. PERFORM seo_get_check_model USING CHANGING ls_ref_method. PERFORM get_dom_value_text USING 'SEOMTDTYPE' -mtdtype CHANGING ls_ref_method-methodtype. ls_ref_method-descript = -descript. ls_ref_method-owner = -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: TYPE st_seo_super_class, TYPE st_ref_seomethod, TYPE seoredef. LOOP AT it_super_class ASSIGNING . SELECT * FROM seoredef INTO TABLE lt_redef WHERE clsname = -clsname AND version = '1'. LOOP AT lt_redef ASSIGNING . READ TABLE ct_ref_method ASSIGNING WITH KEY cpdname = -mtdname. IF sy-subrc = 0. IF -clsname = i_clsname. -inherited = abap_false. -redefin = abap_true. ENDIF. -owner = -clsname. CONCATENATE -owner '-' -cpdname INTO -onclick. SPLIT -onclick AT '/' INTO TABLE lt_str. LOOP AT lt_str INTO -onclick. ENDLOOP. CONCATENATE 'loadIFrame(''IFRAME'', ''' -onclick '.' gc_extension_htm ''');' 'switchContent(''IFRAME'')' INTO -onclick. PERFORM replace_all USING '~' '-' CHANGING -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: TYPE seotypepls, TYPE ANY, 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 . ASSIGN COMPONENT 'EXPLICIT' OF STRUCTURE TO . IF IS ASSIGNED AND = abap_true. APPEND 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 . IF IS ASSIGNED. IF = 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: TYPE ANY, TYPE ANY, 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 . IF 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 . IF IS ASSIGNED. CLEAR ls_ti. ls_ti-name = txt_shared_memory_enabled. ls_ti-flag = abap_true. ls_ti-value = . APPEND ls_ti TO ct_ti. ENDIF. ASSIGN COMPONENT 'MSG_ID' OF STRUCTURE is_vseoclass TO . IF IS ASSIGNED. CLEAR ls_ti. ls_ti-name = txt_message_class. ls_ti-value = . 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: 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_addons-strlen = strlen( -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: TYPE st_seo_super_class, TYPE vseotype. REFRESH: ct_ref_type, ct_ref_type_par. LOOP AT it_super_class ASSIGNING . SELECT * FROM vseotype INTO TABLE lt_seotype WHERE clsname = -clsname AND langu = sy-langu AND version = '1' ORDER BY editorder. LOOP AT lt_seotype ASSIGNING . CLEAR ls_ref_type. ls_ref_type-cpdname = -cmpname. ls_ref_type-owner = -clsname. IF -clsname <> i_clsname. ls_ref_type-inherited = abap_true. ENDIF. PERFORM get_dom_value_text USING 'SEOTYPTYPE' -typtype CHANGING ls_ref_type-typtype. ls_ref_type-type = -type. l_str = -exposure. CONDENSE l_str. CONCATENATE 'COMPONENTS_' l_str '_' INTO l_str. PERFORM get_id USING l_str -clsname CHANGING l_id. CONCATENATE 'switchContent(''' l_id ''')' INTO ls_ref_type-onclick. ls_ref_type-typelink = '->'. ls_ref_type-descript = -descript. PERFORM get_dom_value_text USING 'SEOEXPOSE' -exposure CHANGING ls_ref_type-exposure. PERFORM seo_get_check_model USING CHANGING ls_ref_type. APPEND ls_ref_type TO ct_ref_type_par. IF -clsname = i_clsname OR -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: TYPE ANY, TYPE ANY. ASSIGN COMPONENT 'STATE' OF STRUCTURE is_struc TO . ASSIGN COMPONENT 'CHECK_MODEL' OF STRUCTURE cs_struc TO . CHECK IS ASSIGNED. IF IS ASSIGNED. IF = 0. = abap_true. ELSE. = abap_false. ENDIF. ELSE. = 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: TYPE seometarel, TYPE st_ref_seointerface, TYPE ANY, 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 . READ TABLE ct_ref_interface_all TRANSPORTING NO FIELDS WITH KEY refclsname = -refclsname. IF sy-subrc <> 0. ls_ref_interface-refclsname = -refclsname. ASSIGN COMPONENT 'IMPFINAL' OF STRUCTURE TO . IF IS ASSIGNED. ls_ref_interface-impfinal = . UNASSIGN . ELSE. ls_ref_interface-impfinal = abap_undefined. ENDIF. ASSIGN COMPONENT 'IMPABSTRCT' OF STRUCTURE TO . IF IS ASSIGNED. ls_ref_interface-impabstrct = . UNASSIGN . ELSE. ls_ref_interface-impabstrct = abap_undefined. ENDIF. PERFORM seo_get_check_model USING 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 -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: 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: TYPE st_ref_seoattrib, TYPE st_ref_seomethod, TYPE st_ref_seoevent, TYPE st_ref_seotype, TYPE seoaliases, TYPE st_ref_seoalias. REFRESH: ct_ref_alias. ls_ref_alias-type = txt_attribute. LOOP AT it_ref_attrib ASSIGNING WHERE cpdname CP '*~*'. ls_ref_alias-cpdname = -cpdname. APPEND ls_ref_alias TO ct_ref_alias. ENDLOOP. ls_ref_alias-type = txt_method. LOOP AT it_ref_method ASSIGNING WHERE cpdname CP '*~*'. ls_ref_alias-cpdname = -cpdname. APPEND ls_ref_alias TO ct_ref_alias. ENDLOOP. ls_ref_alias-type = txt_event. LOOP AT it_ref_event ASSIGNING WHERE cpdname CP '*~*'. ls_ref_alias-cpdname = -cpdname. APPEND ls_ref_alias TO ct_ref_alias. ENDLOOP. ls_ref_alias-type = txt_type___1. LOOP AT it_ref_type ASSIGNING WHERE cpdname CP '*~*'. ls_ref_alias-cpdname = -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 . CONCATENATE -refclsname '~' -refcmpname INTO l_cpdname. READ TABLE ct_ref_alias ASSIGNING WITH KEY cpdname = l_cpdname. IF sy-subrc = 0. -refcmpname = -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: TYPE st_ref_seointerface, TYPE vseoattrib. REFRESH: ct_ref_attrib. LOOP AT it_ref_interface ASSIGNING . SELECT * FROM vseoattrib INTO TABLE lt_attrib WHERE clsname = -refclsname AND langu = sy-langu AND version = '1' ORDER BY editorder. LOOP AT lt_attrib ASSIGNING . CLEAR ls_ref_attrib. IF -alias = abap_false. ls_ref_attrib-cpdname = -cmpname. IF -refclsname <> i_clsname. CONCATENATE -refclsname '~' ls_ref_attrib-cpdname INTO ls_ref_attrib-cpdname. ENDIF. PERFORM seo_get_check_model USING CHANGING ls_ref_attrib. PERFORM get_dom_value_text USING 'SEOATTDECL' -attdecltyp CHANGING ls_ref_attrib-decltype. ls_ref_attrib-attrdonly = -attrdonly. PERFORM get_dom_value_text USING 'SEOTYPTYPE' -typtype CHANGING ls_ref_attrib-typtype. ls_ref_attrib-type = -type. PERFORM get_id USING 'COMPONENTS_' -refclsname CHANGING l_id. CONCATENATE 'switchContent(''' l_id ''')' INTO ls_ref_attrib-onclick. ls_ref_attrib-typelink = '->'. ls_ref_attrib-descript = -descript. ls_ref_attrib-attvalue = -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: TYPE st_ref_seointerface, TYPE vseoevent. REFRESH: ct_ref_event. LOOP AT it_ref_interface ASSIGNING . SELECT * FROM vseoevent INTO TABLE lt_event WHERE clsname = -refclsname AND langu = sy-langu AND version = '1' ORDER BY editorder. CLEAR ls_ref_event. LOOP AT lt_event ASSIGNING . ls_cmpkey-clsname = -refclsname. ls_cmpkey-cmpname = -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 -refclsname <> i_clsname. CONCATENATE -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: TYPE st_ref_seointerface, TYPE vseomethod. REFRESH: ct_ref_method. LOOP AT it_ref_interface ASSIGNING . SELECT * FROM vseomethod INTO TABLE lt_method WHERE clsname = -refclsname AND langu = sy-langu AND version = '1' ORDER BY editorder. LOOP AT lt_method ASSIGNING . CLEAR ls_ref_method. IF -alias = abap_false. ls_ref_method-cpdname = -cmpname. IF -refclsname <> i_clsname. CONCATENATE -refclsname '~' ls_ref_method-cpdname INTO ls_ref_method-cpdname. ENDIF. PERFORM get_dom_value_text USING 'SEOMTDDECL' -mtddecltyp CHANGING ls_ref_method-type. PERFORM seo_get_check_model USING CHANGING ls_ref_method. PERFORM get_dom_value_text USING 'SEOMTDTYPE' -mtdtype CHANGING ls_ref_method-methodtype. ls_ref_method-descript = -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: TYPE seotypepls, 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 . ASSIGN COMPONENT 'EXPLICIT' OF STRUCTURE TO . IF IS ASSIGNED AND = abap_true. APPEND 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: 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 . IF 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 = . 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: TYPE st_ref_seointerface, TYPE vseotype. REFRESH: ct_ref_type. LOOP AT it_ref_interface ASSIGNING . SELECT * FROM vseotype INTO TABLE lt_type WHERE clsname = -refclsname AND langu = sy-langu AND version = '1' ORDER BY editorder. CLEAR ls_ref_type. LOOP AT lt_type ASSIGNING . ls_ref_type-cpdname = -cmpname. IF -refclsname <> i_clsname. CONCATENATE -refclsname '~' ls_ref_type-cpdname INTO ls_ref_type-cpdname. ENDIF. PERFORM get_dom_value_text USING 'SEOTYPTYPE' -typtype CHANGING ls_ref_type-typtype. ls_ref_type-type = -type. PERFORM get_id USING 'COMPONENTS_' -refclsname CHANGING l_id. CONCATENATE 'switchContent(''' l_id ''')' INTO ls_ref_type-onclick. ls_ref_type-typelink = '->'. ls_ref_type-descript = -descript. APPEND ls_ref_type TO ct_ref_type_par. IF -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: TYPE st_tabstrip, TYPE st_ztadir, TYPE st_seo_super_class. LOOP AT gt_ztadir ASSIGNING WHERE pgmid = 'R3TR' AND object = 'CLAS' AND downloaded = abap_false. -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 = -obj_name AND clstype = 0. IF sy-subrc <> 0. -subrc = sy-subrc. CONTINUE. ENDIF. PERFORM get_docu USING 'CL' -obj_name 'E' CHANGING lt_doc. PERFORM seo_clas_get_text_symbols USING -obj_name CHANGING lt_text_symbols lt_text_symbols_addons. PERFORM seo_clas_get_props USING -obj_name -devclass CHANGING ls_properties lt_ti lt_typegroup. PERFORM seo_get_superclasses USING -obj_name CHANGING lt_super_class. PERFORM seo_clas_get_interfaces USING -obj_name lt_super_class CHANGING lt_ref_interface lt_ref_interface_all. PERFORM seo_clas_get_friends USING -obj_name CHANGING lt_ref_friends. PERFORM seo_clas_get_attribs USING -obj_name lt_super_class lt_ref_interface_all CHANGING lt_ref_attrib. PERFORM seo_clas_get_methods USING lt_super_class lt_ref_interface_all CHANGING lt_ref_method. PERFORM seo_clas_get_events USING -obj_name lt_super_class lt_ref_interface_all CHANGING lt_ref_event. PERFORM seo_clas_get_types USING -obj_name lt_super_class CHANGING lt_ref_type lt_ref_type_par. PERFORM seo_clas_get_aliases USING -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 = -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 . -empty = abap_false. CASE -id. WHEN 'DOC'. IF lt_doc IS INITIAL. -empty = abap_true. ENDIF. WHEN 'TEXTSYMBOLS'. IF lt_text_symbols IS INITIAL. -empty = abap_true. ENDIF. WHEN 'INTERFACES'. IF lt_ref_interface IS INITIAL. -empty = abap_true. ENDIF. WHEN 'FRIENDS'. IF lt_ref_friends IS INITIAL. -empty = abap_true. ENDIF. WHEN 'ATTRIBUTES'. IF lt_ref_attrib IS INITIAL. -empty = abap_true. ENDIF. WHEN 'METHODS'. IF lt_ref_method IS INITIAL. -empty = abap_true. ENDIF. WHEN 'EVENTS'. IF lt_ref_event IS INITIAL. -empty = abap_true. ENDIF. WHEN 'TYPES'. IF lt_ref_type IS INITIAL. -empty = abap_true. ENDIF. WHEN 'ALIASES'. IF lt_ref_alias IS INITIAL. -empty = abap_true. ENDIF. ENDCASE. ENDLOOP. LOOP AT lt_super_class ASSIGNING . PERFORM get_id USING 'COMPONENTS_2_' -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_' -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_' -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 -obj_name txt_implemented_active space space l_javascript lt_tabstrip gt_link CHANGING lt_html. l_clsname = -obj_name. IF l_has_cl_name = abap_true. PERFORM get_trdir_name USING l_clsname 'CL' CHANGING l_progname. CONCATENATE -obj_name '.cl' INTO l_filename. PERFORM add_report_sourcecode USING l_progname l_filename gc_extension_txt abap_false 'LOCTYPES' abap_false CHANGING lt_html. ELSE. PERFORM get_trdir_name USING l_clsname 'CCDEF' CHANGING l_progname. CONCATENATE -obj_name '.ccdef' INTO l_filename. PERFORM add_report_sourcecode USING l_progname l_filename gc_extension_txt abap_false 'LOCTYPES' abap_false CHANGING lt_html. PERFORM get_trdir_name USING l_clsname 'CCIMP' CHANGING l_progname. CONCATENATE -obj_name '.ccimp' INTO l_filename. PERFORM add_report_sourcecode USING l_progname l_filename gc_extension_txt abap_false 'IMPL' abap_false CHANGING lt_html. PERFORM get_trdir_name USING l_clsname 'CCMAC' CHANGING l_progname. CONCATENATE -obj_name '.ccmac' INTO l_filename. PERFORM add_report_sourcecode USING l_progname l_filename gc_extension_txt abap_false '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 . PERFORM get_trdir_name USING -clsname 'CU' CHANGING l_progname. PERFORM get_id USING 'COMPONENTS_2_' -clsname CHANGING l_id. CONCATENATE -clsname '.public' INTO l_filename. PERFORM add_report_sourcecode USING l_progname l_filename gc_extension_txt abap_false l_id abap_false CHANGING lt_html. PERFORM get_trdir_name USING -clsname 'CI' CHANGING l_progname. PERFORM get_id USING 'COMPONENTS_0_' -clsname CHANGING l_id. CONCATENATE -clsname '.private' INTO l_filename. PERFORM add_report_sourcecode USING l_progname l_filename gc_extension_txt abap_false l_id abap_false CHANGING lt_html. PERFORM get_trdir_name USING -clsname 'CO' CHANGING l_progname. PERFORM get_id USING 'COMPONENTS_1_' -clsname CHANGING l_id. CONCATENATE -clsname '.protected' INTO l_filename. PERFORM add_report_sourcecode USING l_progname l_filename gc_extension_txt abap_false 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 -pgmid -object -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: TYPE vseomepara, TYPE vseoexcep, TYPE st_zseomethod. LOOP AT gt_zseomethod ASSIGNING . 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 -cpdname NA '~'. l_clsname = -clsname. l_cmpname = -cpdname. ELSE. SPLIT -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 . CLEAR ls_ref_signature. PERFORM get_dom_value_text USING 'SEOPARDECL' -pardecltyp CHANGING ls_ref_signature-declaration. IF -parpasstyp = 0. CONCATENATE 'VALUE(' -sconame ')' INTO ls_ref_signature-parameter SEPARATED BY space. ELSE. ls_ref_signature-parameter = -sconame. ENDIF. PERFORM get_dom_value_text USING 'SEOTYPTYPE' -typtype CHANGING ls_ref_signature-type. CONCATENATE ls_ref_signature-type -type INTO ls_ref_signature-type SEPARATED BY space. IF -paroptionl = abap_true. CONCATENATE ls_ref_signature-type '(optional)' INTO ls_ref_signature-type SEPARATED BY space. ENDIF. ls_ref_signature-descript = -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 . CLEAR ls_ref_signature. ls_ref_signature-declaration = txt_exception___1. ls_ref_signature-parameter = -sconame. ls_ref_signature-descript = -descript. APPEND ls_ref_signature TO lt_ref_signature. ENDLOOP. ls_cpdkey-clsname = -clsname. ls_cpdkey-cpdname = -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 -clsname '-' -cpdname INTO l_filename. PERFORM replace_all USING '~' '-' CHANGING l_filename. PERFORM download USING lt_sourcecode -pgmid -object l_filename gc_extension_txt abap_false. ENDIF. PERFORM html_main_iframeheader USING -cpdname CHANGING lt_html. PERFORM html_add_methodnodiv USING -cpdname -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 -clsname '-' -cpdname INTO l_filename. PERFORM replace_all USING '~' '-' CHANGING l_filename. PERFORM download USING lt_html -pgmid -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: TYPE st_tabstrip, TYPE st_ztadir, TYPE st_ref_seointerface. LOOP AT gt_ztadir ASSIGNING WHERE pgmid = 'R3TR' AND object = 'INTF' AND downloaded = abap_false. -downloaded = abap_true. REFRESH: lt_html, lt_ref_interface, lt_ref_interface_all. SELECT SINGLE * FROM seoclass INTO ls_seoclass WHERE clsname = -obj_name AND clstype = 1. IF sy-subrc <> 0. -subrc = sy-subrc. CONTINUE. ENDIF. PERFORM get_docu USING 'IF' -obj_name 'E' CHANGING lt_doc. PERFORM seo_intf_get_props USING -obj_name -devclass CHANGING ls_properties lt_ti lt_typegroup. PERFORM seo_get_interfaces USING -obj_name 0 CHANGING lt_ref_interface lt_ref_interface_all. ls_ref_interface-refclsname = -obj_name. APPEND ls_ref_interface TO lt_ref_interface_all. PERFORM seo_intf_get_attribs USING -obj_name lt_ref_interface_all CHANGING lt_ref_attrib. PERFORM seo_intf_get_methods USING -obj_name lt_ref_interface_all CHANGING lt_ref_method. PERFORM seo_intf_get_events USING -obj_name lt_ref_interface_all CHANGING lt_ref_event. PERFORM seo_intf_get_types USING -obj_name lt_ref_interface_all CHANGING lt_ref_type lt_ref_type_par. PERFORM seo_intf_get_aliases USING -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 . -empty = abap_false. CASE -id. WHEN 'DOC'. IF lt_doc IS INITIAL. -empty = abap_true. ENDIF. WHEN 'INTERFACES'. IF lt_ref_interface IS INITIAL. -empty = abap_true. ENDIF. WHEN 'ATTRIBUTES'. IF lt_ref_attrib IS INITIAL. -empty = abap_true. ENDIF. WHEN 'METHODS'. IF lt_ref_method IS INITIAL. -empty = abap_true. ENDIF. WHEN 'EVENTS'. IF lt_ref_event IS INITIAL. -empty = abap_true. ENDIF. WHEN 'TYPES'. IF lt_ref_type IS INITIAL. -empty = abap_true. ENDIF. WHEN 'ALIASES'. IF lt_ref_alias IS INITIAL. -empty = abap_true. ENDIF. ENDCASE. ENDLOOP. LOOP AT lt_ref_interface_all ASSIGNING . CLEAR ls_tabstrip. PERFORM get_id USING 'COMPONENTS_' -refclsname CHANGING ls_tabstrip-id. ls_tabstrip-hidden = abap_true. APPEND ls_tabstrip TO lt_tabstrip. PERFORM get_id USING 'COMPONENTS_' -refclsname CHANGING l_id. CONCATENATE l_javascript 'makeDivSize(''' l_id ''');' INTO l_javascript. ENDLOOP. PERFORM html_main_header USING tpt_seo_intf txt_interface -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 . PERFORM get_trdir_name USING -refclsname 'IU' CHANGING l_progname. PERFORM get_id USING 'COMPONENTS_' -refclsname CHANGING l_id. CONCATENATE -refclsname '.components' INTO l_filename. PERFORM add_report_sourcecode USING l_progname l_filename gc_extension_txt abap_false l_id abap_false CHANGING lt_html. ENDLOOP. PERFORM html_main_footer USING lt_html. PERFORM download USING lt_html -pgmid -object -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: TYPE cvers. SELECT * FROM cvers INTO TABLE lt_cvers. LOOP AT lt_cvers ASSIGNING . CLEAR ls_component. ls_component-component = -component. ls_component-release = -release. CALL FUNCTION 'OCS_GET_COMPONENT_STATE' EXPORTING iv_component = -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 = -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: 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 . IF IS ASSIGNED. CLEAR ls_textinput. ls_textinput-name = txt_dbsl_patch_level. ls_textinput-input = abap_true. ls_textinput-value = . 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: 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 INDEX 1. IF IS ASSIGNED. l_servername = -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: TYPE st_ztadir, TYPE t100, TYPE st_t100ext. LOOP AT gt_ztadir ASSIGNING 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 = -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 = -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 = -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 . CLEAR ls_t100ext. SELECT SINGLE name datum FROM t100u INTO (ls_t100ext-name,ls_t100ext-datum) WHERE arbgb = -arbgb AND msgnr = -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 = -arbgb addition = -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 -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 WHERE no_docu = abap_false. PERFORM get_docu USING 'NA' -object_name 'E' CHANGING lt_doc. PERFORM html_add_doc USING lt_doc -object_name abap_false CHANGING lt_html. ENDLOOP. PERFORM html_main_footer USING lt_html. PERFORM download USING lt_html -pgmid -object -obj_name gc_extension_htm abap_true. -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: TYPE st_ztadir, TYPE tactz, TYPE st_tabstrip. PERFORM get_tabstrip USING 'T_R3TR_TOBJ' space CHANGING lt_tabstrip. LOOP AT gt_ztadir ASSIGNING 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 = -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 . SELECT SINGLE ltext FROM tactt INTO l_xutxt WHERE actvt = -actvt AND spras = sy-langu. CLEAR ls_ti. ls_ti-name = -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 . -empty = abap_false. CASE -id. WHEN 'DOC'. IF lt_doc IS INITIAL. -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 -obj_name space txt_text -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 -pgmid -object -obj_name gc_extension_htm abap_true. -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: TYPE st_ztadir. LOOP AT gt_ztadir ASSIGNING 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 = -obj_name. ls_ti-input = abap_true. APPEND ls_ti TO lt_ti. CLEAR ls_ti. ls_ti-name = txt_text. ls_ti-value = -descript. ls_ti-input = abap_true. APPEND ls_ti TO lt_ti. l_filename = -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 -pgmid -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: TYPE st_ztadir, TYPE tstca, TYPE ANY. LOOP AT gt_ztadir ASSIGNING 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 = -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_tran-objct = -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 . IF IS ASSIGNED. ls_tran-clf_pervas = . UNASSIGN . 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 . IF IS ASSIGNED. ls_tran-clf_pervas = . UNASSIGN . 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 -obj_name space txt_package -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 -pgmid -object -obj_name gc_extension_htm abap_true. -downloaded = abap_true. ENDLOOP. ENDFORM. FORM optionals. PERFORM ddic. PERFORM fugr. PERFORM o2. PERFORM pack. PERFORM prog. PERFORM seo. PERFORM system. PERFORM t. ENDFORM.