*&---------------------------------------------------------------------* *& Report ZSOFTCOPY_MAKE * *& * *&---------------------------------------------------------------------* *& * *& 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_make. INCLUDE zsoftcopy_types. DATA: gt_src TYPE it_abapsource. CONSTANTS: gc_separator TYPE c VALUE ';', gc_include_csv_name TYPE progname VALUE 'ZSOFTCOPY_CSV', gc_include_csv_title TYPE repti VALUE 'SoftCopy - CSV', gc_include_txt_name TYPE progname VALUE 'ZSOFTCOPY_TEXT', gc_include_txt_title TYPE repti VALUE 'SoftCopy - TEXT'. PERFORM make. INCLUDE zutil_convert_text. *----------------------------------------------------------------------- * make *----------------------------------------------------------------------- FORM make. DATA: l_subrc_csv TYPE string, l_subrc_txt TYPE string, l_infoline(80) TYPE c. PERFORM add_report_begin USING gc_include_csv_name CHANGING gt_src. PERFORM csv_table_structure. PERFORM csv_tabstrip. PERFORM csv_text_elements CHANGING l_subrc_txt. PERFORM csv_varid_broken. PERFORM add_report_end CHANGING gt_src. PERFORM save USING gc_include_csv_name gc_include_txt_title gt_src CHANGING l_subrc_csv. IF l_subrc_csv = 0 AND l_subrc_txt = 0. CONCATENATE 'created ZSOFTCOPY_CSV' ' and ZSOFTCOPY_TEXT successfully' INTO l_infoline. ELSE. CONCATENATE 'created ZSOFTCOPY_CSV with subrc=' l_subrc_csv ' and ZSOFTCOPY_TXT with subrc=' l_subrc_txt INTO l_infoline. ENDIF. CALL FUNCTION 'SAPGUI_PROGRESS_INDICATOR' EXPORTING text = l_infoline. WAIT UP TO 5 SECONDS. ENDFORM. "make *----------------------------------------------------------------------- * add_csv_line *----------------------------------------------------------------------- FORM add_csv_line USING value(i_str) CHANGING c_counter TYPE i. DATA: ls_src TYPE abapsource, l_length TYPE i, l_str TYPE string, l_strlen TYPE i, l_cnt TYPE i VALUE 0. CONSTANTS: lc_length_content TYPE i VALUE 68. IF c_counter = 100. PERFORM add_form_middle. c_counter = 0. ENDIF. l_strlen = strlen( i_str ). IF l_strlen > lc_length_content. CONCATENATE '''' i_str+0(lc_length_content) '''' INTO ls_src-line. APPEND ls_src TO gt_src. l_length = strlen( i_str ) - lc_length_content. l_str = i_str+lc_length_content(l_length). PERFORM add_csv_line USING l_str CHANGING l_cnt. ELSE. CONCATENATE '''' i_str '|''' INTO ls_src-line. APPEND ls_src TO gt_src. ENDIF. c_counter = c_counter + 1. ENDFORM. "add_csv_line *----------------------------------------------------------------------- * add_form_begin *----------------------------------------------------------------------- FORM add_form_begin USING value(i_name). DATA: ls_src TYPE abapsource. CONCATENATE 'form' i_name INTO ls_src-line SEPARATED BY space. APPEND ls_src TO gt_src. ls_src-line = 'changing ct_csv type it_string.'. APPEND ls_src TO gt_src. ls_src-line = 'refresh ct_csv.'. APPEND ls_src TO gt_src. ls_src-line = 'data ls_csv type string.'. APPEND ls_src TO gt_src. ls_src-line = 'concatenate'. APPEND ls_src TO gt_src. ENDFORM. "add_form_begin *----------------------------------------------------------------------- * add_form_end *----------------------------------------------------------------------- FORM add_form_end USING value(i_name). DATA: ls_src TYPE abapsource. ls_src-line = 'space into ls_csv.'. APPEND ls_src TO gt_src. ls_src-line = 'append ls_csv to ct_csv.'. APPEND ls_src TO gt_src. CONCATENATE 'endform. "' i_name INTO ls_src-line. APPEND ls_src TO gt_src. ENDFORM. "add_form_end *----------------------------------------------------------------------- * add_form_middle *----------------------------------------------------------------------- FORM add_form_middle. DATA: ls_src TYPE abapsource. ls_src-line = 'space into ls_csv.'. APPEND ls_src TO gt_src. ls_src-line = 'append ls_csv to ct_csv.'. APPEND ls_src TO gt_src. ls_src-line = 'concatenate'. APPEND ls_src TO gt_src. ENDFORM. "add_form_end *----------------------------------------------------------------------- * add_report_begin *----------------------------------------------------------------------- FORM add_report_begin USING value(i_name) TYPE progname CHANGING ct_src TYPE it_abapsource. DATA: ls_src TYPE abapsource. REFRESH ct_src. CONCATENATE '*&-----------------------------' '----------------------------------------*' INTO ls_src-line. APPEND ls_src TO ct_src. CLEAR ls_src. ls_src-line+0(11) = '*& Include'. ls_src-line+21(30) = i_name. ls_src-line+71(1) = '*'. APPEND ls_src TO ct_src. CONCATENATE '*&-----------------------------' '----------------------------------------*' INTO ls_src-line. APPEND ls_src TO ct_src. CONCATENATE '*&!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!' '!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!*' INTO ls_src-line. APPEND ls_src TO ct_src. CONCATENATE '*&!!!!!!!!!!! generated by ZSOFT' 'COPY_MAKE !!!!! do not edit !!!!!!!!!!!*' INTO ls_src-line. APPEND ls_src TO ct_src. CONCATENATE '*&!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!' '!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!*' INTO ls_src-line. APPEND ls_src TO ct_src. CONCATENATE '*&------------------------------' '---------------------------------------*' INTO ls_src-line. APPEND ls_src TO ct_src. ENDFORM. "add_report_begin *----------------------------------------------------------------------- * add_report_end *----------------------------------------------------------------------- FORM add_report_end CHANGING ct_src TYPE it_abapsource. * nothing to do ENDFORM. "add_report_end *----------------------------------------------------------------------- * csv_table_structure *----------------------------------------------------------------------- FORM csv_table_structure. DATA: lt_table TYPE STANDARD TABLE OF zsoftcopy_table, l_line TYPE string, l_cnt TYPE i VALUE 0. FIELD-SYMBOLS: TYPE zsoftcopy_table. CONSTANTS: lc_name TYPE fieldname VALUE 'csv_table_structure'. PERFORM add_form_begin USING lc_name. SELECT * FROM zsoftcopy_table INTO TABLE lt_table ORDER BY id column_nr. LOOP AT lt_table ASSIGNING . CONCATENATE -id gc_separator -column_nr gc_separator -fieldname gc_separator -title_elem gc_separator -link_column gc_separator -column_def gc_separator -colored_column gc_separator -comparator gc_separator -comp_value INTO l_line. PERFORM add_csv_line USING l_line CHANGING l_cnt. ENDLOOP. PERFORM add_form_end USING lc_name. ENDFORM. "csv_table_structure *----------------------------------------------------------------------- * csv_tabstrip *----------------------------------------------------------------------- FORM csv_tabstrip. DATA: lt_strip TYPE STANDARD TABLE OF zsoftcopy_strip, l_line TYPE string, l_cnt TYPE i VALUE 0. FIELD-SYMBOLS: TYPE zsoftcopy_strip. CONSTANTS: lc_name TYPE fieldname VALUE 'csv_tabstrip'. PERFORM add_form_begin USING lc_name. SELECT * FROM zsoftcopy_strip INTO TABLE lt_strip ORDER BY form tab_nr. LOOP AT lt_strip ASSIGNING . CONCATENATE -form gc_separator -id gc_separator -parent_id gc_separator -tab_nr gc_separator -firstrow gc_separator -active_order gc_separator -text_elem gc_separator -comparator gc_separator -comp_value INTO l_line. PERFORM add_csv_line USING l_line CHANGING l_cnt. ENDLOOP. PERFORM add_form_end USING lc_name. ENDFORM. "csv_table_structure *----------------------------------------------------------------------- * csv_text_elements *----------------------------------------------------------------------- FORM csv_text_elements CHANGING c_subrc TYPE string. DATA: lt_txt TYPE STANDARD TABLE OF zsoftcopy_text, lt_txtt TYPE STANDARD TABLE OF zsoftcopy_textt, l_line TYPE string, l_text TYPE string, ls_src TYPE abapsource, lt_src_txt TYPE it_abapsource, l_cnt TYPE i VALUE 0. FIELD-SYMBOLS: TYPE zsoftcopy_text, TYPE zsoftcopy_textt. CONSTANTS: lc_name_1 TYPE fieldname VALUE 'csv_text_elements_1', lc_name_2 TYPE fieldname VALUE 'csv_text_elements_2'. *txt l_cnt = 0. PERFORM add_form_begin USING lc_name_1. SELECT * FROM zsoftcopy_text INTO TABLE lt_txt ORDER BY fieldname. LOOP AT lt_txt ASSIGNING . CONCATENATE -fieldname gc_separator -text_prefix gc_separator -dtel_rollname gc_separator -dtel_field gc_separator -domname gc_separator -domvalue gc_separator -icon_id gc_separator -icon_field gc_separator -conc_v1 gc_separator -conc_copula gc_separator -conc_v2 gc_separator -conc_sep_space gc_separator -msg_id gc_separator -msg_nr gc_separator -msg_v1 gc_separator -msg_v2 gc_separator -msg_v3 gc_separator -msg_v4 gc_separator INTO l_line. PERFORM add_csv_line USING l_line CHANGING l_cnt. ENDLOOP. PERFORM add_form_end USING lc_name_1. *txtt l_cnt = 0. PERFORM add_form_begin USING lc_name_2. SELECT * FROM zsoftcopy_textt INTO TABLE lt_txtt ORDER BY fieldname. LOOP AT lt_txtt ASSIGNING . l_text = -text. PERFORM encode_html CHANGING l_text. CONCATENATE -fieldname gc_separator -spras gc_separator l_text INTO l_line. PERFORM add_csv_line USING l_line CHANGING l_cnt. ENDLOOP. PERFORM add_form_end USING lc_name_2. *params PERFORM add_report_begin USING gc_include_txt_name CHANGING lt_src_txt. * constants CONCATENATE 'constants gc_version type sydatum value ''' sy-datum '''.' INTO ls_src-line. APPEND ls_src TO lt_src_txt. * texts LOOP AT lt_txt ASSIGNING . AT FIRST. ls_src-line = 'data:'. APPEND ls_src TO lt_src_txt. ENDAT. CONCATENATE -fieldname 'type string' INTO ls_src-line SEPARATED BY space. AT LAST. CONCATENATE ls_src-line '.' INTO ls_src-line. APPEND ls_src TO lt_src_txt. EXIT. ENDAT. CONCATENATE ls_src-line ',' INTO ls_src-line. APPEND ls_src TO lt_src_txt. ENDLOOP. PERFORM add_report_end CHANGING lt_src_txt. PERFORM save USING gc_include_txt_name gc_include_txt_title lt_src_txt CHANGING c_subrc. ENDFORM. "csv_text_elements *----------------------------------------------------------------------- * csv_varid_broken *----------------------------------------------------------------------- FORM csv_varid_broken. DATA: lt_varid TYPE STANDARD TABLE OF zsoftcopy_varid, l_line TYPE string, l_cnt TYPE i VALUE 0. FIELD-SYMBOLS: TYPE zsoftcopy_varid. CONSTANTS: l_c_name TYPE fieldname VALUE 'csv_varid_broken'. PERFORM add_form_begin USING l_c_name. SELECT * FROM zsoftcopy_varid INTO TABLE lt_varid. LOOP AT lt_varid ASSIGNING . CONCATENATE -report gc_separator -vari INTO l_line. PERFORM add_csv_line USING l_line CHANGING l_cnt. ENDLOOP. PERFORM add_form_end USING l_c_name. ENDFORM. "csv_varid_broken *----------------------------------------------------------------------- * save *----------------------------------------------------------------------- FORM save USING value(i_progname) TYPE progname value(i_title) TYPE repti i_it_abapsource TYPE it_abapsource CHANGING c_subrc TYPE string. CALL FUNCTION 'BC_PR_INSERT' EXPORTING program_name = i_progname program_type = 'I' title_string = i_title TABLES SOURCE = i_it_abapsource EXCEPTIONS already_exists = 1 cancelled = 2 name_not_allowed = 3 permission_error = 4 OTHERS = 5. IF sy-subrc = 1. CALL FUNCTION 'BC_PR_UPDATE' EXPORTING program_name = i_progname TABLES SOURCE = i_it_abapsource EXCEPTIONS not_exists = 6 cancelled = 7 name_not_allowed = 8 permission_error = 9 object_is_inactive = 10 wrong_user = 11 OTHERS = 12. ENDIF. c_subrc = sy-subrc. ENDFORM. "save