Code: Alles auswählen.
PROGRAM fp_pdf_test_01.
* Create PDF.
INCLUDE fp_utilities.
SELECTION-SCREEN BEGIN OF BLOCK s_conn WITH FRAME TITLE text-101.
PARAMETERS p_dest TYPE rfcdest OBLIGATORY.
SELECTION-SCREEN COMMENT /33(75) TEXT-104.
SELECTION-SCREEN END OF BLOCK s_conn.
SELECTION-SCREEN BEGIN OF BLOCK s_files WITH FRAME TITLE text-100.
PARAMETERS: p_xfd TYPE localfile VISIBLE LENGTH 64 OBLIGATORY,
p_xft TYPE localfile VISIBLE LENGTH 64 OBLIGATORY,
p_jobp TYPE FPJOBPROFILE VISIBLE Length 64 MODIF ID jpr.
SELECTION-SCREEN END OF BLOCK s_files.
SELECTION-SCREEN BEGIN OF BLOCK pri_pro WITH FRAME TITLE text-105.
PARAMETERS: p_pdf RADIOBUTTON GROUP rad1 USER-COMMAND XXX,
p_pri RADIOBUTTON GROUP rad1,
p_pdl TYPE localfile VISIBLE LENGTH 64 OBLIGATORY DEFAULT 'C:\tmp\PDLOut' MODIF ID pri,
p_ext TYPE FILE_EXT OBLIGATORY DEFAULT 'PCL' MODIF ID pri,
p_xdc TYPE ADSXDCNAME MODIF ID xdc.
SELECTION-SCREEN END OF BLOCK pri_pro.
SELECTION-SCREEN BEGIN OF BLOCK s_loc WITH FRAME TITLE text-102.
PARAMETERS p_loc TYPE cplocale.
SELECTION-SCREEN END OF BLOCK s_loc.
SELECTION-SCREEN BEGIN OF BLOCK s_opt WITH FRAME TITLE text-103.
PARAMETERS: p_norm TYPE fppdfnorm DEFAULT if_fp_pdf_norm=>default MODIF ID nrm,
p_fill TYPE fpinteractive,
p_tagged TYPE abap_bool AS CHECKBOX,
p_dynami TYPE fpdynamic,
p_print TYPE fpboolean DEFAULT abap_true,
p_change TYPE fpchangesrestricted.
SELECTION-SCREEN END OF BLOCK s_opt.
DATA: l_fp TYPE REF TO if_fp,
l_pdfobj TYPE REF TO if_fp_pdf_object,
l_xft TYPE fpcontent,
l_xfd TYPE fpcontent,
pdfresult TYPE fpcontent,
l_fpex TYPE REF TO cx_fp_runtime,
pdf_html_control TYPE REF TO cl_gui_html_viewer,
pdf_my_container TYPE REF TO cl_gui_custom_container,
pdf_alignment TYPE i,
pdf_size TYPE i,
fcode TYPE syucomm,
l_locale TYPE string,
l_ext TYPE string,
pdlresult TYPE fpcontent,
l_pdlfile TYPE string,
l_xdcname TYPE string.
DATA go_fp TYPE REF TO if_fp.
DATA go_pdf_obj TYPE REF TO if_fp_pdf_object.
DATA gt_profiles TYPE tfpjobprofile.
DATA gv_version TYPE string.
INITIALIZATION.
MOVE cl_fp=>get_ads_connection( ) TO p_dest.
AT SELECTION-SCREEN.
PERFORM load_file USING p_xfd CHANGING l_xfd.
PERFORM load_file USING p_xft CHANGING l_xft.
*AT SELECTION-SCREEN OUTPUT.
**********test destination available
TRY.
* Get version information.
gv_version = cl_fp=>get_reference(
)->create_pdf_object( connection = p_dest
)->get_version_info( ).
* Output result.
IF gv_version IS INITIAL.
MESSAGE 'Keine Versioninformationen verfügbar'(002) TYPE 'W'.
ENDIF.
CATCH cx_fp_runtime INTO l_fpex.
PERFORM error USING l_fpex.
ENDTRY.
******** test destination available
AT SELECTION-SCREEN OUTPUT.
***** call Screen variants dependant on ADS version and Printoutfunction
LOOP AT SCREEN.
IF screen-group1 = 'PRI'.
If p_pri = ' '.
screen-active = 0.
MODIFY SCREEN.
* CLEAR P_EXT.
endif.
ENDIF.
IF screen-group1 = 'XDC'.
IF p_pri = 'X'.
TRY.
IF cl_fp_feature_test=>is_available(
iv_connection = p_dest
iv_feature = cl_fp_feature_test=>GC_XDC_API )
= abap_true.
CONTINUE.
ENDIF.
CATCH cx_fp_runtime_internal
cx_fp_runtime_system
cx_fp_runtime_usage. "#EC NO_HANDLER
ENDTRY.
ENDIF.
screen-active = 0.
MODIFY SCREEN.
CLEAR p_xdc.
ENDIF.
IF screen-group1 = 'JPR'.
TRY.
IF cl_fp_feature_test=>is_available(
iv_connection = p_dest
iv_feature = cl_fp_feature_test=>gc_job_profiles )
= abap_true.
CONTINUE.
ENDIF.
CATCH cx_fp_runtime_internal
cx_fp_runtime_system
cx_fp_runtime_usage. "#EC NO_HANDLER
ENDTRY.
screen-active = 0.
MODIFY SCREEN.
CLEAR p_jobp.
ENDIF.
IF screen-group1 = 'NRM'.
* TRY.
* IF cl_fp_feature_test=>is_available(
* iv_connection = p_dest
* iv_feature = cl_fp_feature_test=>gc_render_pdfa1 )
* = abap_true.
* CONTINUE.
* ENDIF.
* CATCH cx_fp_runtime_internal
* cx_fp_runtime_system
* cx_fp_runtime_usage. "#EC NO_HANDLER
* ENDTRY.
* screen-active = 0.
* MODIFY SCREEN.
* CLEAR p_norm.
ENDIF.
ENDLOOP.
* end call Screen variants dependant on ADS version and Printoutfunction
AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_xfd.
PERFORM value_help_for_file USING 'XML' CHANGING p_xfd.
AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_xft.
PERFORM value_help_for_file USING 'XDP' CHANGING p_xft.
AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_pdl.
PERFORM value_help_for_file USING '' CHANGING p_pdl. "no extension for printout file
AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_ext.
PERFORM value_help_for_extension USING 'P_EXT'.
AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_xdc.
PERFORM value_help_for_XDC USING 'P_XDC'.
AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_norm.
PERFORM value_help_for_pdfnorm USING 'P_NORM'.
AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_dest.
PERFORM value_help_for_destination USING 'P_DEST'.
AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_jobp.
PERFORM value_help_for_jobprofile USING 'P_JOBP'.
START-OF-SELECTION.
* PERFORM load_file USING p_xfd CHANGING l_xfd. ==> called in at selection-screen
* PERFORM load_file USING p_xft CHANGING l_xft. ==> called in at selection-screen
* Get FP reference.
l_fp = cl_fp=>get_reference( ).
******************************************************************
* PDL Printfile
******************************************************************
IF p_ext ne ' ' and P_PRI ne ' '.
TRY.
* Create PDF Object.
l_pdfobj = l_fp->create_pdf_object( connection = p_dest ).
* Set template.
l_locale = p_loc.
l_pdfobj->set_template( xftdata = l_xft
fillable = p_fill
locale = l_locale ).
* Set jobprofile
If p_jobp is not initial.
data: p_job_x type fpjobprofile.
p_job_x = p_jobp.
l_pdfobj->set_job_profile( job_profile = p_job_x ).
endif.
* Set data.
l_pdfobj->set_data( formdata = l_xfd ).
* Set PDL Output paramter
perform pdl_para using p_ext.
l_pdfobj->set_task_renderpdl( pdltype = l_ext
pdlfile = l_pdlfile
xdcname = l_xdcname ).
* Execute, call ADS.
l_pdfobj->execute( ).
* Get result PDL.
l_pdfobj->get_pdl( IMPORTING pdldata = pdlresult ).
pdf_size = XSTRLEN( pdlresult ).
CATCH cx_fp_runtime_internal
cx_fp_runtime_system
cx_fp_runtime_usage INTO l_fpex.
PERFORM error USING l_fpex.
ENDTRY.
IF pdlresult IS INITIAL.
MESSAGE 'Fehler: keine PDL Daten erzeugt'(003) TYPE 'E'.
ELSE.
PERFORM download_file USING pdlresult p_pdl.
ENDIF.
ENDIF. "no PDF
******************************************************************
* PDF preview
******************************************************************
TRY.
* Create PDF Object.
l_pdfobj = l_fp->create_pdf_object( connection = p_dest ).
* Set template.
l_locale = p_loc.
l_pdfobj->set_template( xftdata = l_xft
fillable = p_fill
locale = l_locale ).
* Set jobprofile
If p_jobp is not initial.
data: p_job_y type fpjobprofile.
p_job_y = p_jobp.
l_pdfobj->set_job_profile( job_profile = p_job_y ).
endif.
* Set usage rights to none if requested.
IF p_fill = 'N'.
l_pdfobj->set_usagerights( default_rights = abap_false ).
ENDIF.
* Set data.
l_pdfobj->set_data( formdata = l_xfd ).
* Set PDL Output parameter
IF p_ext ne ' ' and P_PRI ne ' '.
perform pdl_para using p_ext.
l_pdfobj->set_task_renderpdl( pdltype = l_ext
pdlfile = l_pdlfile
xdcname = l_xdcname ).
ENDIF.
* Tell PDF object to create PDF.
* _pdffileout = pdffile.
l_pdfobj->set_task_renderpdf( tagged = p_tagged
dynamic = p_dynami
printable = p_print
changesrestricted = p_change
pdfnorm = p_norm ).
* Execute, call ADS.
l_pdfobj->execute( ).
* Get result PDF.
l_pdfobj->get_pdf( IMPORTING pdfdata = pdfresult ).
pdf_size = XSTRLEN( pdfresult ).
CATCH cx_fp_runtime_internal
cx_fp_runtime_system
cx_fp_runtime_usage INTO l_fpex.
PERFORM error USING l_fpex.
ENDTRY.
IF pdfresult IS INITIAL.
MESSAGE 'Fehler: keine PDF Daten erzeugt'(001) TYPE 'E'.
ELSE.
* if p_ext =' '. Kein Download der PDF Daten gefordert !
* PERFORM download_file USING pdfresult p_pdl. " Download PDF file
* endif.
CALL SCREEN 0300 STARTING AT 1 1.
ENDIF.
*---------------------------------------------------------------------*
* MODULE html_control OUTPUT
*---------------------------------------------------------------------*
MODULE html_control OUTPUT.
PERFORM pbo_html_control.
ENDMODULE. "html_control OUTPUT
*---------------------------------------------------------------------*
* MODULE html_control INPUT
*---------------------------------------------------------------------*
MODULE html_control INPUT.
PERFORM pai_html_control.
ENDMODULE. "html_control INPUT
*&--------------------------------------------------------------------*
*& Form pbo_html_control
*&--------------------------------------------------------------------*
FORM pbo_html_control.
SET PF-STATUS 'HTML'.
SET TITLEBAR 'HTML'.
* Container
IF pdf_my_container IS INITIAL.
CREATE OBJECT pdf_my_container
EXPORTING
container_name = 'HTML'
EXCEPTIONS
OTHERS = 1.
IF sy-subrc IS NOT INITIAL.
MESSAGE 'CONTROL ERROR' TYPE 'E'.
ENDIF.
ENDIF.
* HTML control
IF pdf_html_control IS INITIAL.
CREATE OBJECT pdf_html_control
EXPORTING
parent = pdf_my_container
EXCEPTIONS
OTHERS = 1.
IF sy-subrc IS NOT INITIAL.
MESSAGE 'CONTROL ERROR' TYPE 'E'.
ENDIF.
* Alignment
pdf_alignment = pdf_html_control->align_at_left +
pdf_html_control->align_at_right +
pdf_html_control->align_at_top +
pdf_html_control->align_at_bottom.
CALL METHOD pdf_html_control->set_alignment
EXPORTING
alignment = pdf_alignment
EXCEPTIONS
OTHERS = 1.
IF sy-subrc IS NOT INITIAL.
MESSAGE 'CONTROL ERROR' TYPE 'E'.
ENDIF.
PERFORM pdf_show.
ENDIF.
ENDFORM. "pbo_html_control
*&--------------------------------------------------------------------*
*& Form pai_html_control
*&--------------------------------------------------------------------*
FORM pai_html_control.
CASE fcode.
WHEN 'GOON' OR 'CANC'.
IF NOT pdf_html_control IS INITIAL.
pdf_html_control->free( ).
IF sy-subrc IS NOT INITIAL.
MESSAGE 'CONTROL ERROR' TYPE 'E'.
ENDIF.
FREE pdf_html_control.
ENDIF.
IF NOT pdf_my_container IS INITIAL.
pdf_my_container->free( ).
IF sy-subrc IS NOT INITIAL.
MESSAGE 'CONTROL ERROR' TYPE 'E'.
ENDIF.
FREE pdf_my_container.
ENDIF.
LEAVE TO SCREEN 0.
WHEN OTHERS.
cl_gui_cfw=>dispatch( ).
IF sy-subrc IS NOT INITIAL.
MESSAGE 'CONTROL ERROR' TYPE 'E'.
ENDIF.
ENDCASE.
CLEAR fcode.
ENDFORM. "pai_html_control
*&--------------------------------------------------------------------*
*& Form pdf_show
*&--------------------------------------------------------------------*
FORM pdf_show.
DATA: l_url TYPE char80,
l_pdf_data TYPE tsfixml.
CALL FUNCTION 'SCMS_XSTRING_TO_BINARY'
EXPORTING
buffer = pdfresult
TABLES
binary_tab = l_pdf_data.
CALL METHOD pdf_html_control->load_data
EXPORTING
url = 'smart.pdf' "#EC NOTEXT
size = pdf_size
type = 'application' "#EC NOTEXT
subtype = 'pdf'
IMPORTING
assigned_url = l_url
CHANGING
data_table = l_pdf_data
EXCEPTIONS
OTHERS = 1.
IF sy-subrc IS NOT INITIAL.
MESSAGE 'ERROR: CONTROL->LOAD_DATA' TYPE 'E'.
ENDIF.
* Show data.
CALL METHOD pdf_html_control->show_data
EXPORTING
url = l_url
EXCEPTIONS
OTHERS = 1.
IF sy-subrc IS NOT INITIAL.
MESSAGE 'ERROR: CONTROL->SHOW_DATA' TYPE 'E'.
ENDIF.
ENDFORM. "pdf_show
*&---------------------------------------------------------------------*
*& Form value_help_for_extension
*&---------------------------------------------------------------------*
* Get an file extension for output PDL.
*----------------------------------------------------------------------*
* <--P_EXT extension
*----------------------------------------------------------------------*
FORM value_help_for_extension USING p_fieldname TYPE dynfnam.
TYPES: BEGIN OF lty_ext,
extension type file_ext,
extname type char20,
END OF lty_ext.
STATICS st_ext TYPE STANDARD TABLE OF lty_ext WITH KEY extension.
* fill internal table st_ext with PDL types / extension
data wa like line of st_ext.
clear st_ext.
* wa-extension = ' '. wa-extname = 'PDF '. append wa to st_ext.
wa-extension = 'PCL'. wa-extname = 'PCL Format' ##no_text. append wa to st_ext.
wa-extension = 'PS'. wa-extname = 'Postscript Format' ##no_text. append wa to st_ext.
wa-extension = 'ZPL'. wa-extname = 'Zebra Print Format' ##no_text. append wa to st_ext.
wa-extension = 'DPL'. wa-extname = 'DPL Print Format' ##no_text. append wa to st_ext. "P5B NW720 SP-3 and higher
wa-extension = 'IPL'. wa-extname = 'IPL Print Format' ##no_text. append wa to st_ext. "P5B NW720 SP-3 and higher
wa-extension = 'TPCL'. wa-extname = 'TPCL Print Format' ##no_text. append wa to st_ext. "P5B NW720 SP-3 and higher
TRY.
IF cl_fp_feature_test=>is_available(
iv_connection = p_dest
iv_feature = cl_fp_feature_test=>gc_cab )
= abap_true.
wa-extension = 'CAB'. wa-extname = 'CAB Print Format' ##no_text. append wa to st_ext. "P9B Drop 18_2 NW750 and higher
ENDIF.
CATCH cx_fp_runtime_internal
cx_fp_runtime_system
cx_fp_runtime_usage. "#EC NO_HANDLER
ENDTRY.
* Show the value-help popup.
CALL FUNCTION 'F4IF_INT_TABLE_VALUE_REQUEST'
EXPORTING
retfield = 'EXTENSION'
dynpprog = sy-repid
dynpnr = sy-dynnr
dynprofield = p_fieldname
value_org = 'S'
TABLES
value_tab = st_ext.
ENDFORM. "value_help_for_extension
*&---------------------------------------------------------------------*
*& Form pdl_para
*&---------------------------------------------------------------------*
* Set PDL Output parameter
*----------------------------------------------------------------------*
* --> p_ext extension (pcl, ps, zpl)
*---------------------------------------------------------------------*
FORM pdl_para USING p_ext.
case p_ext.
* when 'PDF'.
* l_ext = 'pdf'.
* l_xdcname = ''. " xdcname will be assign automatically
* l_xdcname = 'acrobat6.xdc'.
when 'PCL'.
l_ext = 'pcl'.
if p_xdc is initial.
l_xdcname = 'hppcl5e.xdc'.
else.
l_xdcname = p_xdc.
endif.
when 'PS'.
l_ext = 'ps'.
if p_xdc is initial.
l_xdcname = 'ps_plain.xdc'.
else.
l_xdcname = p_xdc.
endif.
when 'ZPL'.
l_ext = 'zpl'.
if p_xdc is initial.
l_xdcname = 'zpl300.xdc'.
else.
l_xdcname = p_xdc.
endif.
when 'IPL'.
l_ext = 'ipl'.
if p_xdc is initial.
l_xdcname = 'ipl203.xdc'.
else.
l_xdcname = p_xdc.
endif.
when 'DPL'.
l_ext = 'dpl'.
if p_xdc is initial.
l_xdcname = 'dpl300.xdc'.
else.
l_xdcname = p_xdc.
endif.
when 'TPCL'.
l_ext = 'tpcl'.
if p_xdc is initial.
l_xdcname = 'tpcl203.xdc'.
else.
l_xdcname = p_xdc.
endif.
when 'CAB'.
l_ext = 'cab'.
if p_xdc is initial.
l_xdcname = 'cab300.xdc'.
else.
l_xdcname = p_xdc.
endif.
endcase.
endform. "pdl_para
*&---------------------------------------------------------------------*
*& Form value_help_for_jobprofile
*&---------------------------------------------------------------------*
* Get a Jobprofile
*----------------------------------------------------------------------*
* <--P_JOBP jobname
*----------------------------------------------------------------------*
FORM value_help_for_jobprofile USING p_fieldname TYPE dynfnam.
data: dynpfields type STANDARD TABLE OF dynpread.
FIELD-SYMBOLS: <f_dest> type dynpread.
perform value_read_for_destination tables dynpfields using 'P_DEST'.
READ TABLE dynpfields ASSIGNING <f_dest> index 1.
p_DEST = <f_dest>-fieldvalue.
TRY.
IF cl_fp_feature_test=>is_available(
iv_connection = p_dest
iv_feature = cl_fp_feature_test=>gc_job_profiles )
= abap_true.
* Get job-profiles list from the ADS.
go_fp = cl_fp=>get_reference( ).
go_pdf_obj = go_fp->create_pdf_object( connection = p_dest ).
gt_profiles = go_pdf_obj->get_job_profiles( ).
ENDIF.
CATCH cx_fp_runtime_internal
cx_fp_runtime_system
cx_fp_runtime_usage. "#EC NO_HANDLER
ENDTRY.
* Show the value-help popup.
CALL FUNCTION 'F4IF_INT_TABLE_VALUE_REQUEST'
EXPORTING
retfield = 'NAME'
dynpprog = sy-repid
dynpnr = sy-dynnr
dynprofield = p_fieldname
value_org = 'S'
TABLES
value_tab = gt_profiles.
ENDFORM. "value_help_for_jobrofile
*&---------------------------------------------------------------------*
*& Form value_help_for_xdc
*&---------------------------------------------------------------------*
* Get XDC name
*----------------------------------------------------------------------*
* <--P_XDC xdc
*----------------------------------------------------------------------*
FORM value_help_for_xdc USING p_fieldname TYPE dynfnam.
data l_xdc_list type TFPXDCINFO.
data l_xdc_line type SFPXDCINFO.
TYPES: BEGIN OF lty_xdc,
* name type FPXDCNAME,
name type ADSXDCNAME,
owner type FPOWNER,
END OF lty_xdc.
data: st_xdc TYPE STANDARD TABLE OF lty_xdc WITH KEY name,
dynpfields TYPE STANDARD TABLE OF dynpread,
st_xdc_line TYPE lty_xdc.
FIELD-SYMBOLS: <f_dest> type dynpread.
perform value_read_for_destination tables dynpfields using 'P_DEST'.
READ TABLE dynpfields ASSIGNING <f_dest> index 1.
P_DEST = <f_dest>-fieldvalue.
* feature test für GC_XDC_API einbauen!
TRY.
l_xdc_list = CL_FP_PRINTER_SERVICES=>GET_PRINTER_TYPE_CONFIGS( CONNECTION = p_dest ).
CATCH cx_fp_runtime_internal
cx_fp_runtime_system
cx_fp_runtime_usage INTO l_fpex. "#EC NO_HANDLER
* Fehlermeldung!!!
* PERFORM error USING l_fpex.
ENDTRY.
* MOVE-CORRESPONDING l_xdc_list to st_xdc.
loop at l_xdc_list into l_xdc_line.
IF l_xdc_line-owner = 'C'.
CONCATENATE 'XDC/Customer/' l_xdc_line-name INTO l_xdc_line-name.
ENDIF.
MOVE-CORRESPONDING l_xdc_line to st_xdc_line.
append st_xdc_line to st_xdc.
endloop.
* Show the value-help popup.
CALL FUNCTION 'F4IF_INT_TABLE_VALUE_REQUEST'
EXPORTING
retfield = 'NAME'
dynpprog = sy-repid
dynpnr = sy-dynnr
dynprofield = p_fieldname
value_org = 'S'
TABLES
value_tab = st_xdc.
ENDFORM. "value_help_for_xdc
form value_read_for_destination tables dynpfields structure dynpread using p_fieldname TYPE dynfnam.
data: line type dynpread.
line-fieldname = p_fieldname.
append line to dynpfields.
CALL FUNCTION 'DYNP_VALUES_READ'
EXPORTING
dyname = sy-repid
dynumb = sy-dynnr
* translate_to_upper = 'X'
TABLES
dynpfields = dynpfields.
endform.
*&---------------------------------------------------------------------*
*& Form value_help_for_pdfnorm
*&---------------------------------------------------------------------*
* Get PDFNorm.
*----------------------------------------------------------------------*
* <--P_NORM
*----------------------------------------------------------------------*
FORM value_help_for_pdfnorm USING p_norm TYPE dynfnam.
TYPES: BEGIN OF lty_norm,
pdfnorm type FPPDFNORM,
END OF lty_norm.
STATICS st_norm TYPE STANDARD TABLE OF lty_norm WITH KEY pdfnorm.
*
* fill internal table st_norm with PDFnormion
data wa like line of st_norm.
clear st_norm.
TRY.
IF cl_fp_feature_test=>is_available(
iv_connection = p_dest
iv_feature = cl_fp_feature_test=>gc_pdfa_ext )
= abap_true.
wa-pdfnorm = '' ##no_text. append wa to st_norm.
wa-pdfnorm = 'PDF' ##no_text. append wa to st_norm.
wa-pdfnorm = 'PDF/A-1' ##no_text. append wa to st_norm.
wa-pdfnorm = 'PDF/A-1B' ##no_text. append wa to st_norm.
wa-pdfnorm = 'PDF/A-2B' ##no_text. append wa to st_norm.
wa-pdfnorm = 'PDF/A-3B' ##no_text. append wa to st_norm.
elseif cl_fp_feature_test=>is_available(
iv_connection = p_dest
iv_feature = cl_fp_feature_test=>gc_render_pdfa1 )
= abap_true.
wa-pdfnorm = '' ##no_text. append wa to st_norm.
wa-pdfnorm = 'PDF' ##no_text. append wa to st_norm.
wa-pdfnorm = 'PDF/A-1' ##no_text. append wa to st_norm.
else.
wa-pdfnorm = '' ##no_text. append wa to st_norm.
wa-pdfnorm = 'PDF' ##no_text. append wa to st_norm.
endif.
CATCH cx_fp_runtime_internal
cx_fp_runtime_system
cx_fp_runtime_usage. "#EC NO_HANDLER
ENDTRY.
* Show the value-help popup.
CALL FUNCTION 'F4IF_INT_TABLE_VALUE_REQUEST'
EXPORTING
retfield = 'EXTENSION'
dynpprog = sy-repid
dynpnr = sy-dynnr
dynprofield = p_norm
value_org = 'S'
TABLES
value_tab = st_norm.
ENDFORM. "value_help_for_pdfnorm