Code: Alles auswählen.
"Aufruf
zcl_pm_qr_print=>print( iv_form = 'ZPM_FORM_QR_PRINT_EQUI' it_data = lt_horizontal ).
*Methode
"Signatur
"IV_FORM TYPE FPWBFORMNAME OPTIONAL PDF-basierte Formulare: Formularname
"IT_DATA TYPE ZPM_T_EQUI_LIST Tab Equipment List for QR Print
METHOD print.
*-------------------------------------------------------------------------------*
* Definition
*-------------------------------------------------------------------------------*
DATA:
lv_fm_name TYPE rs38l_fnam,
lv_interface_type TYPE fpinterfacetype.
DATA:
ls_fp_outputparams TYPE sfpoutputparams.
DATA:
ls_fp_docparams TYPE sfpdocparams,
ls_fp_result TYPE fpformoutput.
*-------------------------------------------------------------------------------*
* Preparation
*-------------------------------------------------------------------------------*
*--------------------------------*
* Printer setup
*--------------------------------*
ls_fp_outputparams-nodialog = ''.
ls_fp_outputparams-preview = ''.
* ls_fp_outputparams-dest = 'LOKL'.
ls_fp_outputparams-dest = 'ZGQR'. "Eigener Gerätetyp
ls_fp_outputparams-reqnew = 'X'.
ls_fp_outputparams-nopdf = ''.
* ls_fp_outputparams-getpdf = 'X'.
ls_fp_outputparams-reqimm = ''.
* ls_fp_outputparams-device = ''.
* ls_fp_docparams-langu = '' .
* ls_fp_docparams-country = '' .
*--------------------------------*
* 1. Data acquisition
*--------------------------------*
DATA(lt_select_equi) = it_data.
*--------------------------------*
* 2. Identify FB name
*--------------------------------*
CALL FUNCTION 'FP_FUNCTION_MODULE_NAME'
EXPORTING
i_name = iv_form
IMPORTING
e_funcname = lv_fm_name
e_interface_type = lv_interface_type
* EV_FUNCNAME_INBOUND =
.
LOOP AT lt_select_equi INTO DATA(ls_select_equi).
*Number of copies
ls_fp_outputparams-copies = ls_select_equi-count_print.
*--------------------------------*
* 3. Starting Form Processing
*--------------------------------*
CALL FUNCTION 'FP_JOB_OPEN'
CHANGING
ie_outputparams = ls_fp_outputparams
EXCEPTIONS
cancel = 1
usage_error = 2
system_error = 3
internal_error = 4
OTHERS = 5.
IF sy-subrc <> 0.
* Implement suitable error handling here
ENDIF.
*--------------------------------*
* 4. Dynamic FB call
*--------------------------------*
CALL FUNCTION lv_fm_name
EXPORTING
/1bcdwb/docparams = ls_fp_docparams
is_select_equi = ls_select_equi
IMPORTING
/1bcdwb/formoutput = ls_fp_result
EXCEPTIONS
usage_error = 1
system_error = 2
internal_error = 3
OTHERS = 4.
IF sy-subrc <> 0.
* Implement suitable error handling here
ENDIF.
*--------------------------------*
* 5. Ending Form Processing
*--------------------------------*
CALL FUNCTION 'FP_JOB_CLOSE'
* IMPORTING
* E_RESULT =
EXCEPTIONS
usage_error = 1
system_error = 2
internal_error = 3
OTHERS = 4.
IF sy-subrc <> 0.
* Implement suitable error handling here
ENDIF.
ENDLOOP.
ENDMETHOD.
Standard reicht.sharkofnose hat geschrieben: ↑28.11.2019 15:29- Benötige ich überhaupt einen eigenen Gerätetypen oder kann ich einen Standard nehmen?
Keine Ahnung, ich sag mal ja. Sollte aber keine Auswirkung auf die Funktions des Druckers selbst haben, weil da nur um die Art der Datenübertragung geht. Also ob der Applikationsserver selber schickt oder ob z.B. der SAPgui beteiligt sein soll.sharkofnose hat geschrieben: ↑28.11.2019 15:29- Im Reiter Hostspool-Kopplung habe ich "C: Direkter Betriebssystem Aufruf" ausgewählt. Ist das so richtig?
Neinsharkofnose hat geschrieben: ↑28.11.2019 15:29- Muss ich vielleicht in meinem Programm bei den sfpoutputparams Parametern noch was mitgeben?
Welche Aufbereitungen?sharkofnose hat geschrieben: ↑28.11.2019 15:29- Was muss bzw. kann ich alles bei den Aufbereitungen einstellen?
Meinst du das Seitenformat? (A4, A3)sharkofnose hat geschrieben: ↑28.11.2019 15:29Gefühlt liegt es am Format. Wenn ich manuell über die PDF View drucke, dass druckt er das Etikett nur, wenn ich das Format richtig eingestellt habe.
Siehe Anhang.Welche Aufbereitungen?
Ja das Seitenformat.Meinst du das Seitenformat? (A4, A3)
Das kann man im Formular einstellen.
Das ist mein großer Wunsch. Über das Frontend wäre nur ein Workaround gewesen... funktioniert ja auch nicht.Hast du keine Möglichkeit einer direkten Kommunikation mit dem Drucker über das Betriebssystem des Apllikationsservers (L)?