Druck von Etiketten via FP_PDF_TEST_01

Getting started ... Alles für einen gelungenen Start.
1 Beitrag • Seite 1 von 1
1 Beitrag Seite 1 von 1

Druck von Etiketten via FP_PDF_TEST_01

Beitrag von Mr_Mkt (ForumUser / 1 / 0 / 0 ) »
Guten Morgen,

ich benötige bitte Eure Hilfe bei einem Problemfall von mir.

Die Aufgabenstellung ist wie folgt:
Wir haben ein neues S4HANA-System bei uns im Einsatz. In einem seltenen Businesscase gibt es nun die Notwendigkeit ein Etikett (erstellt in Adobe Lifecycle Editor) manuell mit Daten (ohne jeglichen SAP-Datenkontext) zu befüllen und auf einen SAP-Drucker zu drucken.

Mein Ansatz war zunächst der Druck über das Programm FP_PDF_TEST_01 mit einer XFD-Datendatei und einer XDP-Formulardatei. Jedoch kann ich in diesem Szenario nur das Etikett als PDF speichern und nicht auf einem SAP Drucker ausdrucken. Was zur folge hat, dass die Darstellung auf dem Etikett abweicht (insb. die Barcodes, da diese durch den Zebra-Druckertreiber verändert dargestellt werden).

Daher war der Plan eine Z_-Version des Programmes FP_PDF_TEST_01 zu erstellen und die darin erstellte Datei auf einen SAP-Drucker (via FP_JOB_OPEN etc. drucken) anstatt eine PDF-Vorschau zu erstellen.
Jedoch bekomme ich trotz unzähliger Versuche und investierter Stunden das erstellte PDF nicht an den Druckjob übergeben.

Kann mir bitte jemand mit dieser Situation helfen?

Anbei der originale Quellcode des Programms FP_PDF_TEST_01

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

Vielen Dank vorab!

Beste Grüße
Mr_Mkt

gesponsert
Stellenangebote auf ABAPforum.com schalten
kostenfrei für Ausbildungsberufe und Werksstudenten


Seite 1 von 1

Vergleichbare Themen

0
Antw.
1526
Views
globales Label, Etiketten management
von ratsnus » 26.07.2013 08:00 • Verfasst in SAP - Allgemeines
0
Antw.
878
Views
Smartforms/ZEBRA Automatischer Abschnitt von Etiketten
von harry1991 » 21.08.2014 13:40 • Verfasst in ABAP® Core
0
Antw.
2310
Views
Adobe Forms Etiketten mehrfach ausgeben und nur 1x anpassen
von gago » 08.03.2018 14:26 • Verfasst in ABAP® Core
1
Antw.
1171
Views
test
von Besi » 13.07.2005 09:46 • Verfasst in ABAP® Core
3
Antw.
2662
Views
Test-Units
von ewx » 25.04.2017 11:46 • Verfasst in ABAP Objects®

Über diesen Beitrag

Mr_Mkt

Unterstütze die Community und teile den Beitrag für mehr Leser und Austausch

Newsletter Anmeldung

Keine Beiträge verpassen! Wöchentlich versenden wir lesenwerte Beiträge aus unserer Community.
Die letzte Ausgabe findest du hier.
Details zum Versandverfahren und zu Ihren Widerrufsmöglichkeiten findest du in unserer Datenschutzerklärung.