cancel
Showing results for 
Search instead for 
Did you mean: 

CO04N & individual list selection

former_member217677
Participant
0 Kudos

Hello,

For one production order we have 3 different lists - Op. control ticket, Confirmation slip, and Pick list. Via transaction CO04N I want to reprint ONLY confirmation slip for operation steps 30 and 60 , BUT I'm not able to deselect Op. control ticket and Pick list. So I get ALL papers, but just for step 30 and 60.

Is it possible to switch off other list in CO04N?

Why are points under menu point "Settings" not active?

Thanks,

Evgenij

Accepted Solutions (0)

Answers (1)

Answers (1)

former_member217677
Participant
0 Kudos

Hello again,

this issue is still very important, cause we printing a lot of paper which is not required.

In OPK8 we have 3 lists:

In CO04N we want sometimes to reprint only LV02 confirmation slip with needed operations, NOT LG02 and NOT LK01.

I can select in CO04N needed operations, but I cannot deselect not needed lists.

Any idea how to solve this problem???

Thanks again,

Evgenij

kiran_kumar179
Active Contributor
0 Kudos

Evgenij,

If you do not want to print LG02 and LK01 then deselect them in OPK8 configuration from printing.

BR
KK

former_member217677
Participant
0 Kudos

Hi Kumar,

that would be easy )

But we want to have all lists during  initial print, but NOT for reprint. We nede to change times (sometimes) in confirmation slip, so we need to reprint only these papers. But not all papers for production order.

Evgenij

kiran_kumar179
Active Contributor
0 Kudos

Evgenij,

If you do not want to change configuration then  you can try by in CO04 give the order number then execute from menu Select Print--->Print settings---> List control select the required list control and print.

BR
KK

RahulHanda
Active Contributor
0 Kudos

Hi Evgenij,

Go in CO03, go in operation view, select these two operations, click on operation list and in menu bar click print (ctrl + P).

Since you mentioned one order that's why this transaction. I hope it gives you desired result.

Regards

Rahul

former_member217677
Participant
0 Kudos

Hello Rahul,

with your suggestion I'm able only to print overview of operations.

But in this case no list = LV02 with program and form will be triggered.

Evgenij

former_member217677
Participant
0 Kudos

Kumar,

its close to my requirement, but how its possible to select single operations??

My requirement is to reprint production papers for some operations, not for all. And to exclude all other list.

Evgenij

kiran_kumar179
Active Contributor
0 Kudos

Evgenij,

Did you try my earlier suggestion CO04?

BR
KK

former_member217677
Participant
0 Kudos

Kumar,

maybe I'm blind, but I dont see this possibility in CO04.

I could deselect not needed lists

But how to print ONLY operation e.g. 30 and 60 in CO04???

Evgenij

kiran_kumar179
Active Contributor
0 Kudos

Evhenij,

Both the options are not possible in CO04 we have the option to deselect the list control but no option to select the required operation.

Check below method if it works in CO02 enter order number go to Order-->Settings-->List control here first select the list to be printed then go to operation and select the operations and print and try in vice versa if this does not work select the operations first then you can deselect the list from above option and print.

BR
KK

former_member217677
Participant
0 Kudos

Kumar,

for me it doesnt work.

But its really strange to have option in CO04N to select/deselect lists, but its not active.

I'm already thinking to create own Z program where I can select needed operation and call program for printing of LV02.

Do you have maybe example of such program?

Evgenij

kiran_kumar179
Active Contributor
0 Kudos

Evgenij,

I never come across any requirement like yours.

PPIO_ENTRY is the program used for mass printing see if you could achieve with any modifications in created customized program.

BR
KK

former_member217677
Participant
0 Kudos

Hi Kumar,

do you know if there is any user exit for CO04N?

I've found its belongs to pakage COWB, but I couldnt find any user exit. I wanted to exlude other lists in code.

Do you have maybe any suggestions?

Evgenij

kiran_kumar179
Active Contributor
0 Kudos

Evgenij,

I could not find any use exits for CO04N try with BADI WORKORDER_INFOSYSTEM whether you can modify any filed.

BR
KK

former_member217677
Participant
0 Kudos

Hi Kumar,

thanks for help on this topic.

At the end I've created a new program for printing confirmartion slips for selected operations.

I'll close this topic.

Evgenij

kiran_kumar179
Active Contributor
0 Kudos

Evgenij,

Thanks for the confirmation,Can you please let us know the enhancement details so that it would be helpful to someone in future.

BR
KK

former_member217677
Participant
0 Kudos

Hi Kumar,

actually is it a copy of standard program PSFCCONF for printing of confirmation slip with some modification for seldction of single operations.. Maybe its not the best coding, but it was quick and it works



*&---------------------------------------------------------------------*

REPORT  ZPSFCCONF1 NO STANDARD PAGE HEADING MESSAGE-ID ZSD.

DATA: C_STRUCTUR_NAME(30) TYPE C.

C_STRUCTUR_NAME
'BAPI_ORDER_OPERATION1'.

DATA H_PRT_TEXT(60)      VALUE 'Drucken von Vorgängen des Fertigungsauftrages = '.

INCLUDE ZICON.
*INCLUDE <ICON>.

DATA: OK_CODE             TYPE SYUCOMM,
GS_LAYOUT          
TYPE LVC_S_LAYO,
GS_PRINT           
TYPE LVC_S_PRNT,
GT_FIELDCAT        
TYPE LVC_T_FCAT,
MYCONTI            
TYPE REF TO CL_GUI_CUSTOM_CONTAINER,
HTML_CONTROL       
TYPE REF TO CL_GUI_HTML_VIEWER,
GRID1              
TYPE REF TO CL_GUI_ALV_GRID.

DATA: X_SAVE,             "for parameter I_SAVE: modus for saving a layout
X_LAYOUT           
TYPE DISVARIANT,
G_EXIT             
TYPE C"is set if the user has aborted a layout popup

* The variables 'def_layout' and 'spec_layout' are set during
* interactions on the selection screen.
* 'gs_variant' finally holds the chosen layout.

DATA: DEF_LAYOUT          TYPE DISVARIANT,     "default layout
DEFAULT             TYPE C VALUE ' ',
SPEC_LAYOUT        
TYPE DISVARIANT,     "specific layout
GS_VARIANT         
TYPE DISVARIANT.     "finally chosen layout

DATAg_repid            LIKE sy-repid.

DATA: IT_SEL_ROWS         TYPE LVC_T_ROW.
FIELD-SYMBOLS: <SEL_ROWS> TYPE LVC_S_ROW.

*********
* Predefine a local class for event handling to allow the
* declaration of a reference variable before the class is defined.
CLASS LCL_EVENT_RECEIVER  DEFINITION DEFERRED.
DATA EVENT_RECEIVER       TYPE REF TO LCL_EVENT_RECEIVER.

DATA: GT_HEADER           like table of BAPI_ORDER_HEADER1,
WA_HEADER          
LIKE LINE OF  GT_HEADER,
GT_operation       
like table of BAPI_ORDER_OPERATION1,
gt_operation_sel   
like table of BAPI_ORDER_OPERATION1,
WA_operation       
LIKE LINE OF  gt_operation,
WA_RETURN2         
like          BAPIRET2,
ORDER_OBJECTS      
like          BAPI_PP_ORDER_OBJECTS.

* DATA-Statements general
INCLUDE PPCOINCL.
* DATA-Statements specific for production orders
INCLUDE CODRGT10.

data: wa_ITAB_TDR         LIKE LINE OF ITAB_TDR.
data: wa_AFVGD            like LINE of  AFVGD_TAB.
data: wa_CAUFVD_TAB       like LINE of CAUFVD_TAB.
data: wa_AFFLD_TAB        like LINE of AFFLD_TAB.
data: wa_work_tab         like LINE of WORK_TAB.

SELECTION-SCREEN BEGIN OF BLOCK KA WITH FRAME TITLE TEXT-002.

PARAMETERS: p_aufnr LIKE afko-aufnr OBLIGATORY.   "Output file path

SELECTION-SCREEN END OF BLOCK KA.

SELECTION-SCREEN  BEGIN OF BLOCK print WITH FRAME TITLE text-001.

PARAMETERS  p_print LIKE SH_PRIN-LNAME DEFAULT 'LOCL'.

SELECTION-SCREEN END OF BLOCK print.

SELECTION-SCREEN  BEGIN OF BLOCK zusatz WITH FRAME TITLE text-004.

PARAMETERS  p_layout LIKE gs_variant-variant.

SELECTION-SCREEN END OF BLOCK zusatz.

INITIALIZATION.

g_repid            
= sy-repid.
gs_variant
-username = sy-uname.
gs_variant
-report   = g_repid.


TOP-OF-PAGE.

AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_layout.
PERFORM einstiegsvariant.


AT SELECTION-SCREEN.

MOVE: p_layout TO gs_variant-variant,
sy
-repid TO gs_variant-report.

CALL FUNCTION 'REUSE_ALV_VARIANT_EXISTENCE'
EXPORTING
i_save       
= 'A'
CHANGING
cs_variant   
= gs_variant
EXCEPTIONS
wrong_input  
= 1
not_found    
= 2
program_error
= 3
OTHERS        = 4.

START-OF-SELECTION.

PERFORM BESORGE_DATEN.

END-OF-SELECTION.

CALL SCREEN 100.


*&---------------------------------------------------------------------*
*&      Form  BESORGE_DATEN
*&---------------------------------------------------------------------*

FORM BESORGE_DATEN.

ORDER_objects
-operations   = 'X'.

CALL FUNCTION 'BAPI_PRODORD_GET_DETAIL'
EXPORTING
NUMBER        p_aufnr
order_objects
= ORDER_OBJECTS
IMPORTING
RETURN        = WA_RETURN2
TABLES
HEADER        = GT_HEADER
OPERATION    
= GT_operation.

ENDFORM.                    "BESORGE_DATEN

*&---------------------------------------------------------------------*
*&      Module  pbo_0100  OUTPUT
*&---------------------------------------------------------------------*

MODULE PBO_0100 OUTPUT.
SET PF-STATUS 'STANDARD'.
CONCATENATE H_PRT_TEXT p_aufnr into H_PRT_TEXT SEPARATED BY ' '.
SET TITLEBAR  'STANDARD' WITH H_PRT_TEXT.
PERFORM INIT_CONTROL.
ENDMODULE.                 " pbo_0100  OUTPUT


*&---------------------------------------------------------------------*
*&      Module  pai_0100  INPUT
*&---------------------------------------------------------------------*

MODULE PAI_0100 INPUT.

CASE OK_CODE.
WHEN 'DRUCKEN'.

CALL METHOD GRID1->GET_SELECTED_ROWS
IMPORTING
ET_INDEX_ROWS
= IT_SEL_ROWS.

REFRESH gt_operation_sel.

LOOP AT IT_SEL_ROWS ASSIGNING <SEL_ROWS>.

READ TABLE GT_operation INTO wa_operation  "   ASSIGNING <out>
INDEX     <SEL_ROWS>-INDEX.

wa_operation
-CONF_CNT = <SEL_ROWS>-INDEX.

APPEND  wa_operation to gt_operation_sel.

ENDLOOP.

" entry to print
PERFORM PRINT_SUB.

WHEN 'BACK'.
LEAVE TO SCREEN 0" zurück zum Selektionsbildschirm
WHEN 'EXIT'.
CALL METHOD MYCONTI->FREE.
CALL METHOD CL_GUI_CFW=>FLUSH.
LEAVE PROGRAM.
ENDCASE.
CLEAR OK_CODE.
ENDMODULE.                 " pai_0100  INPUT

*&--------------------------------------------------------------------*
*&      Form  modify_fieldcatalog
*&--------------------------------------------------------------------*

FORM MODIFY_FIELDCATALOG USING STRUC_NAME TYPE TABNAME
CHANGING P_FIELDCAT TYPE LVC_T_FCAT.

DATA LS_FCAT  TYPE LVC_S_FCAT.
DATA DBUT     TYPE LVC_T_STYL.

CALL FUNCTION 'LVC_FIELDCATALOG_MERGE'
EXPORTING
I_STRUCTURE_NAME
= STRUC_NAME
CHANGING
CT_FIELDCAT     
= P_FIELDCAT[].

LOOP AT P_FIELDCAT INTO LS_FCAT.
MODIFY p_fieldcat FROM ls_fcat.
ENDLOOP.
ENDFORM.                    "MODIFY_FIELDCATALOG

*---------------------------------------------------------------------*
*       CLASS lcl_event_receiver DEFINITION
*---------------------------------------------------------------------*

CLASS LCL_EVENT_RECEIVER DEFINITION.

PUBLIC SECTION.
METHODS:

HANDLE_DOUBLE_CLICK
FOR EVENT DOUBLE_CLICK OF CL_GUI_ALV_GRID
IMPORTING E_ROW E_COLUMN,

HANDLE_USER_COMMAND
FOR EVENT USER_COMMAND OF CL_GUI_ALV_GRID
IMPORTING E_UCOMM.

ENDCLASS.                    "lcl_event_receiver DEFINITION

*---------------------------------------------------------------------*
*       CLASS lcl_event_receiver IMPLEMENTATION
*---------------------------------------------------------------------*

CLASS LCL_EVENT_RECEIVER IMPLEMENTATION.

METHOD HANDLE_DOUBLE_CLICK.

data: ls_out like line of GT_operation.

read table GT_operation index e_row-index into ls_out.

CASE e_column.
WHEN 'MATERIAL'.

ENDCASE.

ENDMETHOD.                    "HANDLE_DOUBLE_CLICK

METHOD HANDLE_USER_COMMAND.
DATA: LT_ROWS TYPE LVC_T_ROW, L_ROWS  TYPE I.
ENDMETHOD.                    "HANDLE_USER_COMMAND

ENDCLASS.                    "LCL_EVENT_RECEIVER IMPLEMENTATION

*&---------------------------------------------------------------------*
*&      Form  INIT_CONTROL
*&---------------------------------------------------------------------*

FORM INIT_CONTROL.
DATA LT_EXCLUDE TYPE UI_FUNCTIONS.


IF MYCONTI IS INITIAL.

* 1. Custom-Control anlegen

CREATE OBJECT MYCONTI
EXPORTING
CONTAINER_NAME
= 'CONTI1'.

CREATE OBJECT GRID1
EXPORTING
I_PARENT
= MYCONTI.

*   Layout (Variant) for ALV grid
GS_VARIANT
-REPORT = SY-REPID. "Layout fo report

GS_LAYOUT
-SEL_MODE   = 'A'. " allow to select multiple lines
GS_LAYOUT
-NO_ROWMARK = ''.
GS_LAYOUT
-ZEBRA      = 'X'.

*    gs_layout-edit = 'X'.
PERFORM MODIFY_FIELDCATALOG USING C_STRUCTUR_NAME
CHANGING GT_FIELDCAT.

CREATE OBJECT EVENT_RECEIVER.
SET HANDLER EVENT_RECEIVER->HANDLE_DOUBLE_CLICK FOR GRID1.

if gs_variant-variant is INITIAL.
gs_variant
-variant = p_layout.
ENDIF.

CALL METHOD GRID1->SET_TABLE_FOR_FIRST_DISPLAY
EXPORTING
I_STRUCTURE_NAME
= C_STRUCTUR_NAME
IS_LAYOUT       
= GS_LAYOUT
IS_VARIANT      
= GS_VARIANT
IS_PRINT        
= GS_PRINT
I_SAVE          
= 'X'
I_DEFAULT       
= 'X'
CHANGING
IT_OUTTAB       
= GT_operation
IT_FIELDCATALOG 
= GT_FIELDCAT[].

ENDIF.

ENDFORM.                    "init_control


*&---------------------------------------------------------------------*
*&      Form  REFRESH_GRID
*&---------------------------------------------------------------------*

FORM REFRESH_GRID.
PERFORM BESORGE_DATEN.
*  H_REFR = 'X'.
CALL METHOD GRID1->REFRESH_TABLE_DISPLAY.
ENDFORM.                    "REFRESH_GRID

*&---------------------------------------------------------------------*
*&      Form  EINSTIEGSVARIANTE
*&---------------------------------------------------------------------*

FORM einstiegsvariant .

CALL FUNCTION 'LT_F4_FOR_VARIANTS'
EXPORTING
is_variant
= gs_variant
IMPORTING
es_variant
= gs_variant.

p_layout
= gs_variant-variant. " Wichtig, damit der Parameter aus Layout sichtbar wird.

ENDFORM.                    "einstiegsvariant

*---------------------------------------------------------------------*
*       FORM PRINT_SUB                                                *
*---------------------------------------------------------------------*

FORM PRINT_SUB.

DATA USE_DEFAULT.

* Document-tables
perform ZLCODRINC.

select * from caufv
into CORRESPONDING FIELDS OF TABLE CAUFVD_TAB
where aufnr = p_aufnr.

LOOP at CAUFVD_TAB into wa_CAUFVD_TAB.

select single PLNBEZ
from caufv
into wa_CAUFVD_TAB-matnr
where aufnr = p_aufnr.

modify CAUFVD_TAB from  wa_CAUFVD_TAB.

ENDLOOP.

READ TABLE CAUFVD_TAB into wa_CAUFVD_TAB index 1.

LOOP at GT_operation INTO wa_operation.

"---- Update AFVGD_TAB table -------

MOVE-CORRESPONDING wa_operation   to wa_AFVGD.
MOVE-CORRESPONDING wa_CAUFVD_TAB  to wa_AFVGD.
wa_AFVGD
-vornr = wa_operation-OPERATION_NUMBER.
wa_AFVGD
-VGWTS = wa_operation-STANDARD_VALUE_KEY.
wa_AFVGD
-LTXA1 = wa_operation-DESCRIPTION.

select single OBJID
from CRHD
into wa_AFVGD-ARBID
where ARBPL = wa_operation-WORK_CENTER
and   OBJTY = 'A'.

wa_AFVGD
-STEUS = wa_operation-OPR_CNTRL_KEY.
wa_AFVGD
-APLZL = wa_operation-counter.
wa_AFVGD
-PLNKN = wa_operation-counter.
wa_AFVGD
-ZAEHL = wa_operation-counter.

select single VGW01 VGW02 VGW03
from plpo into (wa_AFVGD-VGW01, wa_AFVGD-VGW02, wa_AFVGD-VGW03)
where PLNTY = 'N'
and   PLNNR = wa_AFVGD-PLNNR
and   VORNR = wa_AFVGD-VORNR.

wa_AFVGD
-MGVRG = wa_operation-quantity.
wa_AFVGD
-MEINH = wa_operation-unit.

APPEND wa_AFVGD to AFVGD_TAB.

"---- Update work_tab table -------

wa_work_tab
-arbid = wa_AFVGD-ARBID.
wa_work_tab
-arbpl = wa_operation-WORK_CENTER.
wa_work_tab
-werks = wa_operation-PROD_PLANT.

select single KOSTL
from CRCO
into wa_work_tab-kostl
where OBJID = wa_AFVGD-ARBID
and   OBJTY = 'A'.

wa_work_tab
-ktext = wa_operation-WORK_CENTER_TEXT.

READ TABLE work_tab WITH KEY ARBID  = wa_work_tab-arbid.

If SY-SUBRC <> 0.

INSERT wa_work_tab INTO TABLE  work_tab.

ENDIF.

ENDLOOP.


LOOP at GT_operation_sel INTO wa_operation.

"---- Update ITAB_TDR & AFFLD_TAB table -------

MOVE-CORRESPONDING wa_CAUFVD_TAB  to wa_ITAB_TDR.
MOVE-CORRESPONDING wa_operation   to wa_ITAB_TDR.
wa_ITAB_TDR
-vornr = wa_operation-OPERATION_NUMBER.
wa_ITAB_TDR
-aufnr = p_aufnr.
wa_ITAB_TDR
-Object = 'O'.
wa_ITAB_TDR
-Index_plko  = 1.
wa_ITAB_TDR
-Index_plpo  = wa_operation-CONF_CNT.

MOVE-CORRESPONDING wa_operation   to wa_AFVGD.
MOVE-CORRESPONDING wa_CAUFVD_TAB  to wa_AFVGD.
wa_AFVGD
-vornr = wa_operation-OPERATION_NUMBER.

MOVE-CORRESPONDING wa_operation to wa_AFFLD_TAB.
MOVE-CORRESPONDING wa_CAUFVD_TAB to wa_AFFLD_TAB.

APPEND wa_ITAB_TDR to ITAB_TDR.

APPEND wa_AFFLD_TAB to AFFLD_TAB.

ENDLOOP.

READ TABLE CAUFVD_TAB WITH KEY AUFNR  = p_AUFNR.

print_co
-AUFNR    CAUFVD_TAB-aufnr.
print_co
-POSNR    '0000'.
print_co
-AUART    CAUFVD_TAB-AUART.
print_co
-WERKS    CAUFVD_TAB-werks.
print_co
-DISPO    CAUFVD_TAB-dispo.
print_co
-PUSER    sy-uname.
print_co
-DRVAR    '01'.
print_co
-PSTEU    'X'.
print_co
-SAMLT    'X'.
print_co
-PMODE    'O'.
print_co
-DRART    'N'.
print_co
-DRTXT    'Duplikat'.
print_co
-TCODE    'COHVOMPRINT'.
print_co
-REPID    'ZPSFCCONF1'.
print_co
-FORML    'Z_PSFC_LV02'.
print_co
-DESTI    p_print.
print_co
-PKEEP    'X'.
print_co
-DKEEP    '1'.
print_co
-SPRAS    'D'.
print_co
-LSTID    'LV02'.
print_co
-LSTNM    'Rückmeldeschein'.
print_co
-COPYS    '001'.
print_co
-LNAME    CAUFVD_TAB-aufnr.
print_co
-NLIST    'X'.
print_co
-AZABS    '00'.
print_co
-SCREEN   'X'  .
print_co
-ACTPAGE  '000'.
print_co
-PRIMM    'X'.

PERFORM PPPR_STD_INIT_ORDER USING CAUFVD_TAB.

select single maktx from makt into PSFC_HEAD-MATTEXT where matnr = CAUFVD_TAB-matnr and spras = 'DE'.

PERFORM PPPR_COLLECT_DESTINATIONS USING  PRINT_CO.

DO PRINT_CO-COPYS TIMES.
IF SY-INDEX GT 1.
MOVE TEXT-DUP TO PRINT_CO-DRTXT.
ENDIF.
*   get destination
USE_DEFAULT
= 'X'.            " default destination in 1st run

LOOP AT DESTINATION_TAB.
PR_OPTIONS
-TDDEST = DESTINATION_TAB-DEST.
*   call OPEN_FORM to open formular
PERFORM PPPR_OPEN_FORM USING 'MAIN'.
*   Print confirmation tickets

PERFORM CONFIRMATION_TICKET USING PRINT_CO-USE_WCP
DESTINATION_TAB
-DEST
USE_DEFAULT
.
*   call CLOSE_FORM to finish formular
PERFORM PPPR_CLOSE_FORM.

ENDLOOP.
ENDDO.
ENDFORM.
*---------------------------------------------------------------------*
*       FORM CONFIRMATION_TICKET                                      *
*---------------------------------------------------------------------*
*       ........                                                      *
*---------------------------------------------------------------------*

FORM CONFIRMATION_TICKET USING USE_WCP     LIKE T496P-USE_WCP
DESTINATION
LIKE T496P-DRDEST
USE_DEFAULT
.
DATA: COUNTER_ABS(4) TYPE N.
DATA: NUMBER_OF_TICKETS(4) TYPE N.
DATA FLG_ACT_READ.

CLEAR COUNTER_ABS.
LOOP AT ITAB_TDR WHERE AUFNR  = p_AUFNR.

* Save ITAB of operation
ITAB_VRG
= ITAB_TDR.
* Get sequenze (only if changed)
IF ITAB_VRG-APLFL NE AFFLD-PLNFL OR ITAB_VRG-AUFNR NE AFFLD-AUFNR.
READ TABLE AFFLD_TAB INDEX 1. "ITAB_TDR-INDEX_PLFL.
AFFLD
= AFFLD_TAB.
PERFORM PPPR_GET_TABLES USING DRPART-SEQ.
ENDIF.
* initialize operation
PERFORM PPPR_STD_INIT_OPERATION
USING X_FIELD SPACE SPACE CONST-FLG_YES.


CHECK NOT X_FIELD IS INITIAL.
* output only for work center printer
CHECK    USE_WCP IS INITIAL         "no use of work center printer
OR DESTINATION = AFVGD-PDEST  "wcp requested
OR (    AFVGD-PDEST IS INITIAL"if wcp not given ...
). "... use default printer
* if number of tickets 'RSANZ' not given no print
IF NOT RCR01-RSANZ_REF IS INITIAL.
CHECK NOT RCR01-RSANZ IS INITIAL.
NUMBER_OF_TICKETS
= RCR01-RSANZ.
ELSE.
"CHECK NOT AFVGD-RSANZ IS INITIAL.
NUMBER_OF_TICKETS
= '001'."AFVGD-RSANZ.
ENDIF.

CLEAR FLG_ACT_READ.
* Print each ticket for number of ticket times
DO NUMBER_OF_TICKETS TIMES.

* increment counter of tickets on page by 1
ADD 1 TO COUNTER_ABS.
* check wether number of tickets on page greater than possible
IF NOT PRINT_CO-AZABS IS INITIAL.
IF COUNTER_ABS > PRINT_CO-AZABS.
* if greater create a new page
CALL FUNCTION 'CONTROL_FORM'
EXPORTING
COMMAND
= 'NEW-PAGE'.
* reset the counter and add 1 for new page
CLEAR COUNTER_ABS.
ADD 1 TO COUNTER_ABS.
ENDIF.
ENDIF.
* preserve form of skip
CALL FUNCTION 'CONTROL_FORM'
EXPORTING
COMMAND
= 'PROTECT'.
* print header
CALL FUNCTION 'WRITE_FORM'
EXPORTING
ELEMENT
= 'HDR_STD'
WINDOW  = 'MAIN'.
* print operation header
CALL FUNCTION 'WRITE_FORM'
EXPORTING
ELEMENT
= 'OPR_DATA_HDR'
WINDOW  = 'MAIN'.
* print operation info (optional with barcode)
IF PRINT_CO-BARCO IS INITIAL.
CALL FUNCTION 'WRITE_FORM'
EXPORTING
ELEMENT
= 'OPR_DATA'
WINDOW  = 'MAIN'.
ELSE.
CALL FUNCTION 'WRITE_FORM'
EXPORTING
ELEMENT
= 'OPR_DATA_BC'
WINDOW  = 'MAIN'.
ENDIF.
* print operation text
CALL FUNCTION 'WRITE_FORM'
EXPORTING
ELEMENT
= 'OPR_TEXT_SHORT'
WINDOW  = 'MAIN'.
* print activities
perform psfc_print_activities using afvgd.
*      PERFORM PPPR_PRINT_ACTIVITIES USING
*                                    AFVGD RCR01 TTL_ACTIV FLG_ACT_READ.
* print mask for manual entries
CALL FUNCTION 'WRITE_FORM'
EXPORTING
ELEMENT
= 'OPR_MASK'
WINDOW  = 'MAIN'.
* end preservation of form
CALL FUNCTION 'CONTROL_FORM'
EXPORTING
COMMAND
= 'ENDPROTECT'.
ENDDO.
ENDLOOP.
ENDFORM.

form ZLCODRINC .

* get document-tables from memory
IMPORT CAUFVD_TAB "headers
AFPOD_TAB 
"positions
AFFLD_TAB 
"sequences
AFVGD_TAB 
"operations/suboperations
RESBD_TAB 
"components
AFFHD_TAB 
"PRTs
WORK_TAB  
"workcenters sorted by arbid werks
MV_TAB    
"material view sorted by matnr werks
CHARAC_TAB
"configuration sorted by cuobj
COBL
KBEDP_TAB 
"capacity request sorted by bedid bedzl
COLORD_TAB
"collective order info sorted by aufnr
TTL_TAB   
"activities sorted by aufpl aplzl
SEROB_TAB 
"serialnumbers sorted by ppaufnr ppposnr sernr
AFDLD_TAB 
"document links
FROM MEMORY ID 'PPT'.

* REFRESH AND CLEAR ITAB AND ITAB_TDR:
REFRESH ITAB.
CLEAR   ITAB.
REFRESH ITAB_TDR.
CLEAR   ITAB_TDR.

IMPORT ITAB
ITAB_TDR      
FROM MEMORY ID 'PPI'.
IMPORT PRLST_TMP      FROM MEMORY ID 'PPS'.

LOOP AT ITAB.
CHECK NOT ITAB-FLG_MARK IS INITIAL.
ITAB_TDR
= ITAB.
APPEND ITAB_TDR.
ENDLOOP.


DELETE ITAB     WHERE AUFNR NE PRLST_TMP-AUFNR.
DELETE ITAB_TDR WHERE AUFNR NE PRLST_TMP-AUFNR.


* fill DDIC-Structur from internal table
PRINT_CO
= PRLST_TMP.

* print-type
CASE PRINT_CO-DRART.
WHEN REPRINT.
MOVE TEXT-DUP TO PRINT_CO-DRTXT.
WHEN OTHERS.
CLEAR PRINT_CO-DRTXT.
ENDCASE.

endform.

INCLUDE CODRGETT.   "PPPR-Form-Routinen: pppr_get_tables
INCLUDE CODRIF01.   "PPPR-Form-Routinen: Druck-Parts lesen
INCLUDE CODRIF02.   "PPPR-Form-Routinen: Open/Close Form
INCLUDE CODRIF04.   "PPPR-Form-Routinen: read_mat
INCLUDE CODRIF05.   "PPPR-Form-Routinen: print_activities
INCLUDE CODRIF17.   "PSFC-Form-Routinen: std_init_operation
INCLUDE CODRIF20.   "PSFC-Form-Routinen: pppr_collect_destinations

Evgenij