sap abap smartforms output of loop in single go
REPORT ZCHEQUE_PRINT_MUL.
DATA : FM_NAME TYPE RS38L_FNAM,
CONTROL_PARAMETERS TYPE SSFCTRLOP,
OUTPUT_OPTIONS TYPE SSFCOMPOP,
JOB_OUTPUT_INFO TYPE SSFCRESCL.
types : begin of tp_itab,
name(50),
date(8),
amt(15),
end of tp_itab.
data : gt_itab type STANDARD TABLE OF tp_itab,
gs_itab type tp_itab,
gv_cnt type i,
gv_cnt2 type i.
DATA : GV_FILE TYPE STRING,
GV_FLAG TYPE FLAG,
GV_FLAG1 TYPE FLAG.
SELECTION-SCREEN begin of BLOCK b1 WITH FRAME TITLE text-001.
PARAMETERS : IP_NAME TYPE CHAR100,
IP_CDATE TYPE SYDATUM,
IP_AMT TYPE PC207-BETRG.
SELECTION-SCREEN skip.
PARAMETERS : P_FILE TYPE IBIPPARMS-PATH OBLIGATORY.
SELECTION-SCREEN end of BLOCK b1.
AT SELECTION-SCREEN ON VALUE-REQUEST FOR P_FILE.
* PERFORM get_file_path CHANGING filename.
CALL FUNCTION 'F4_FILENAME'
* EXPORTING
* PROGRAM_NAME = SYST-CPROG
* DYNPRO_NUMBER = SYST-DYNNR
* FIELD_NAME = ''
IMPORTING
FILE_NAME = P_FILE.
START-OF-SELECTION.
if P_FILE is NOT INITIAL.
GV_FILE = P_FILE.
CLEAR : GT_ITAB[].
CALL FUNCTION 'GUI_UPLOAD'
EXPORTING
FILENAME = GV_FILE
FILETYPE = 'ASC'
HAS_FIELD_SEPARATOR = 'X'
* HEADER_LENGTH = 0
* READ_BY_LINE = 'X'
* DAT_MODE = ' '
* CODEPAGE = ' '
* IGNORE_CERR = ABAP_TRUE
* REPLACEMENT = '#'
* CHECK_BOM = ' '
* VIRUS_SCAN_PROFILE =
* NO_AUTH_CHECK = ' '
* IMPORTING
* FILELENGTH =
* HEADER =
TABLES
DATA_TAB = GT_ITAB[]
* CHANGING
* ISSCANPERFORMED = ' '
EXCEPTIONS
FILE_OPEN_ERROR = 1
FILE_READ_ERROR = 2
NO_BATCH = 3
GUI_REFUSE_FILETRANSFER = 4
INVALID_TYPE = 5
NO_AUTHORITY = 6
UNKNOWN_ERROR = 7
BAD_DATA_FORMAT = 8
HEADER_NOT_ALLOWED = 9
SEPARATOR_NOT_ALLOWED = 10
HEADER_TOO_LONG = 11
UNKNOWN_DP_ERROR = 12
ACCESS_DENIED = 13
DP_OUT_OF_MEMORY = 14
DISK_FULL = 15
DP_TIMEOUT = 16
OTHERS = 17.
IF SY-SUBRC <> 0.
* Implement suitable error handling here
ENDIF.
ENDIF.
CALL FUNCTION 'SSF_FUNCTION_MODULE_NAME'
EXPORTING
FORMNAME = 'ZCHEQUE_PRINT1'
* VARIANT = ' '
* DIRECT_CALL = ' '
IMPORTING
FM_NAME = FM_NAME
EXCEPTIONS
NO_FORM = 1
NO_FUNCTION_MODULE = 2
OTHERS = 3
.
IF SY-SUBRC <> 0.
* Implement suitable error handling here
ENDIF.
describe table gt_itab lines gv_cnt.
IF FM_NAME IS NOT INITIAL.
loop at gt_itab into gs_itab.
if gv_cnt ne 1.
gv_cnt2 = sy-tabix .
case gv_cnt2.
when '1'.
control_parameters-no_open = space.
control_parameters-no_close = 'X'.
when gv_cnt .
control_parameters-no_open = 'X'.
control_parameters-no_close = space.
when others.
control_parameters-no_open = 'X'.
control_parameters-no_close = 'X'.
endcase.
endif.
CONTROL_PARAMETERS-PREVIEW = 'X'.
* CONTROL_PARAMETERS-GETOTF = 'X'. "to get otf data
CONTROL_PARAMETERS-NO_DIALOG = 'X'.
OUTPUT_OPTIONS-TDDEST = 'LP01'.
ip_name = gs_itab-NAME.
IP_CDATE = gs_itab-DATE.
CONDENSE gs_itab-AMT.
IP_AMT = gs_itab-AMT.
CALL FUNCTION FM_NAME "'/1BCDWB/SF00000259'
EXPORTING
* ARCHIVE_INDEX =
* ARCHIVE_INDEX_TAB =
* ARCHIVE_PARAMETERS =
CONTROL_PARAMETERS = CONTROL_PARAMETERS
* MAIL_APPL_OBJ =
* MAIL_RECIPIENT =
* MAIL_SENDER =
OUTPUT_OPTIONS = OUTPUT_OPTIONS
USER_SETTINGS = 'X'
IP_NAME = IP_NAME
IP_CDATE = IP_CDATE
IP_AMOUNT = IP_AMT
* IMPORTING
* DOCUMENT_OUTPUT_INFO =
* JOB_OUTPUT_INFO = JOB_OUTPUT_INFO
* JOB_OUTPUT_OPTIONS =
EXCEPTIONS
FORMATTING_ERROR = 1
INTERNAL_ERROR = 2
SEND_ERROR = 3
USER_CANCELED = 4
OTHERS = 5
.
IF SY-SUBRC <> 0.
* Implement suitable error handling here
ENDIF.
* CALL FUNCTION 'HR_IT_DISPLAY_WITH_PDF'
** EXPORTING
** IV_PDF =
* TABLES
* OTF_TABLE = JOB_OUTPUT_INFO-OTFDATA.
endloop.
ENDIF.
END-OF-SELECTION.
DATA : FM_NAME TYPE RS38L_FNAM,
CONTROL_PARAMETERS TYPE SSFCTRLOP,
OUTPUT_OPTIONS TYPE SSFCOMPOP,
JOB_OUTPUT_INFO TYPE SSFCRESCL.
types : begin of tp_itab,
name(50),
date(8),
amt(15),
end of tp_itab.
data : gt_itab type STANDARD TABLE OF tp_itab,
gs_itab type tp_itab,
gv_cnt type i,
gv_cnt2 type i.
DATA : GV_FILE TYPE STRING,
GV_FLAG TYPE FLAG,
GV_FLAG1 TYPE FLAG.
SELECTION-SCREEN begin of BLOCK b1 WITH FRAME TITLE text-001.
PARAMETERS : IP_NAME TYPE CHAR100,
IP_CDATE TYPE SYDATUM,
IP_AMT TYPE PC207-BETRG.
SELECTION-SCREEN skip.
PARAMETERS : P_FILE TYPE IBIPPARMS-PATH OBLIGATORY.
SELECTION-SCREEN end of BLOCK b1.
AT SELECTION-SCREEN ON VALUE-REQUEST FOR P_FILE.
* PERFORM get_file_path CHANGING filename.
CALL FUNCTION 'F4_FILENAME'
* EXPORTING
* PROGRAM_NAME = SYST-CPROG
* DYNPRO_NUMBER = SYST-DYNNR
* FIELD_NAME = ''
IMPORTING
FILE_NAME = P_FILE.
START-OF-SELECTION.
if P_FILE is NOT INITIAL.
GV_FILE = P_FILE.
CLEAR : GT_ITAB[].
CALL FUNCTION 'GUI_UPLOAD'
EXPORTING
FILENAME = GV_FILE
FILETYPE = 'ASC'
HAS_FIELD_SEPARATOR = 'X'
* HEADER_LENGTH = 0
* READ_BY_LINE = 'X'
* DAT_MODE = ' '
* CODEPAGE = ' '
* IGNORE_CERR = ABAP_TRUE
* REPLACEMENT = '#'
* CHECK_BOM = ' '
* VIRUS_SCAN_PROFILE =
* NO_AUTH_CHECK = ' '
* IMPORTING
* FILELENGTH =
* HEADER =
TABLES
DATA_TAB = GT_ITAB[]
* CHANGING
* ISSCANPERFORMED = ' '
EXCEPTIONS
FILE_OPEN_ERROR = 1
FILE_READ_ERROR = 2
NO_BATCH = 3
GUI_REFUSE_FILETRANSFER = 4
INVALID_TYPE = 5
NO_AUTHORITY = 6
UNKNOWN_ERROR = 7
BAD_DATA_FORMAT = 8
HEADER_NOT_ALLOWED = 9
SEPARATOR_NOT_ALLOWED = 10
HEADER_TOO_LONG = 11
UNKNOWN_DP_ERROR = 12
ACCESS_DENIED = 13
DP_OUT_OF_MEMORY = 14
DISK_FULL = 15
DP_TIMEOUT = 16
OTHERS = 17.
IF SY-SUBRC <> 0.
* Implement suitable error handling here
ENDIF.
ENDIF.
CALL FUNCTION 'SSF_FUNCTION_MODULE_NAME'
EXPORTING
FORMNAME = 'ZCHEQUE_PRINT1'
* VARIANT = ' '
* DIRECT_CALL = ' '
IMPORTING
FM_NAME = FM_NAME
EXCEPTIONS
NO_FORM = 1
NO_FUNCTION_MODULE = 2
OTHERS = 3
.
IF SY-SUBRC <> 0.
* Implement suitable error handling here
ENDIF.
describe table gt_itab lines gv_cnt.
IF FM_NAME IS NOT INITIAL.
loop at gt_itab into gs_itab.
if gv_cnt ne 1.
gv_cnt2 = sy-tabix .
case gv_cnt2.
when '1'.
control_parameters-no_open = space.
control_parameters-no_close = 'X'.
when gv_cnt .
control_parameters-no_open = 'X'.
control_parameters-no_close = space.
when others.
control_parameters-no_open = 'X'.
control_parameters-no_close = 'X'.
endcase.
endif.
CONTROL_PARAMETERS-PREVIEW = 'X'.
* CONTROL_PARAMETERS-GETOTF = 'X'. "to get otf data
CONTROL_PARAMETERS-NO_DIALOG = 'X'.
OUTPUT_OPTIONS-TDDEST = 'LP01'.
ip_name = gs_itab-NAME.
IP_CDATE = gs_itab-DATE.
CONDENSE gs_itab-AMT.
IP_AMT = gs_itab-AMT.
CALL FUNCTION FM_NAME "'/1BCDWB/SF00000259'
EXPORTING
* ARCHIVE_INDEX =
* ARCHIVE_INDEX_TAB =
* ARCHIVE_PARAMETERS =
CONTROL_PARAMETERS = CONTROL_PARAMETERS
* MAIL_APPL_OBJ =
* MAIL_RECIPIENT =
* MAIL_SENDER =
OUTPUT_OPTIONS = OUTPUT_OPTIONS
USER_SETTINGS = 'X'
IP_NAME = IP_NAME
IP_CDATE = IP_CDATE
IP_AMOUNT = IP_AMT
* IMPORTING
* DOCUMENT_OUTPUT_INFO =
* JOB_OUTPUT_INFO = JOB_OUTPUT_INFO
* JOB_OUTPUT_OPTIONS =
EXCEPTIONS
FORMATTING_ERROR = 1
INTERNAL_ERROR = 2
SEND_ERROR = 3
USER_CANCELED = 4
OTHERS = 5
.
IF SY-SUBRC <> 0.
* Implement suitable error handling here
ENDIF.
* CALL FUNCTION 'HR_IT_DISPLAY_WITH_PDF'
** EXPORTING
** IV_PDF =
* TABLES
* OTF_TABLE = JOB_OUTPUT_INFO-OTFDATA.
endloop.
ENDIF.
END-OF-SELECTION.
3 Comments
can i get original,duplicate , triplicate , extra copies of single PO in single call of smartform. for example original is first below original copy ,duplicate and below trplicate copy is required
ReplyDeleteregards
thanks in advance
This comment has been removed by the author.
ReplyDeleteThis comment has been removed by the author.
ReplyDelete