cancel
Showing results for 
Search instead for 
Did you mean: 

Driver Program

Former Member
0 Kudos

Hi all

Can anybody give me sample code that will show me how to write a driver program.

Regards

Mona

Accepted Solutions (1)

Accepted Solutions (1)

Former Member
0 Kudos

Hi,

Just write a simple report.

and use below function modules.

Open_form. -


>Export ur form name

write_form.

close_form.

Refer

https://forums.sdn.sap.com/click.jspa?searchID=11107200&messageID=4699351

https://forums.sdn.sap.com/click.jspa?searchID=11107200&messageID=2770326

Regards

Kiran Sure

Answers (4)

Answers (4)

Former Member
0 Kudos

Hi Mona,

For a step-by-step guide refer the following:

http://www.saptechnical.com/Tutorials/Smartforms/SFMain.htm

Reward if helpful,

Regards,

Esha Raj

Former Member
0 Kudos

Hi,

Hope this Progam Usefull To you, Reward Points

Introduction:

*A SIMPLE Driver PROGRAM TO CONVERTING SCRIPT FORM OUTPUT INTO PDF FORMATE.*

&----


*& Report ZSCRIPT12

&----


REPORT ZSCRIPT12.

data: form_name(20) type c.

DATA: IT_OTFDATA TYPE STANDARD TABLE OF ITCOO,

IT_TLINE TYPE STANDARD TABLE OF TLINE,

W_OPTIONS LIKE ITCPO .

W_OPTIONS-TDGETOTF = 'X'.

form_name = 'ZSCRPT_PDF'.

*data retreval

  • open layoout

call function 'OPEN_FORM'

EXPORTING

APPLICATION = 'TX'

  • ARCHIVE_INDEX = ARCHIVE_INDEX

  • ARCHIVE_PARAMS = ARCHIVE_PARAMS

DEVICE = 'PRINTER'

DIALOG = SPACE

FORM = form_name

  • LANGUAGE = SY-LANGU

OPTIONS = W_OPTIONS

  • MAIL_SENDER = MAIL_SENDER

  • MAIL_RECIPIENT = MAIL_RECIPIENT

  • MAIL_APPL_OBJECT = MAIL_APPL_OBJECT

  • RAW_DATA_INTERFACE = '*'

  • SPONUMIV = SPONUMIV

  • IMPORTING

  • LANGUAGE = LANGUAGE

  • NEW_ARCHIVE_PARAMS = NEW_ARCHIVE_PARAMS

  • RESULT = RESULT

  • EXCEPTIONS

  • CANCELED = 1

  • DEVICE = 2

  • FORM = 3

  • OPTIONS = 4

  • UNCLOSED = 5

  • MAIL_OPTIONS = 6

  • ARCHIVE_ERROR = 7

  • INVALID_FAX_NUMBER = 8

  • MORE_PARAMS_NEEDED_IN_BATCH = 9

  • SPOOL_ERROR = 10

  • CODEPAGE = 11

  • OTHERS = 12

.

if sy-subrc <> 0.

  • MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO

  • WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.

endif.

  • processing logic

  • display data on to layout

call function 'WRITE_FORM'

EXPORTING

ELEMENT = 'SOLD'

FUNCTION = 'APPEND'

TYPE = 'BODY'

WINDOW = 'SOLD'

  • IMPORTING

  • PENDING_LINES = PENDING_LINES

  • EXCEPTIONS

  • ELEMENT = 1

  • FUNCTION = 2

  • TYPE = 3

  • UNOPENED = 4

  • UNSTARTED = 5

  • WINDOW = 6

  • BAD_PAGEFORMAT_FOR_PRINT = 7

  • SPOOL_ERROR = 8

  • CODEPAGE = 9

  • OTHERS = 10

.

if sy-subrc <> 0.

  • MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO

  • WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.

endif.

call function 'WRITE_FORM'

EXPORTING

ELEMENT = 'START'

FUNCTION = 'SET'

TYPE = 'BODY'

WINDOW = 'MAIN'

  • IMPORTING

  • PENDING_LINES = PENDING_LINES

  • EXCEPTIONS

  • ELEMENT = 1

  • FUNCTION = 2

  • TYPE = 3

  • UNOPENED = 4

  • UNSTARTED = 5

  • WINDOW = 6

  • BAD_PAGEFORMAT_FOR_PRINT = 7

  • SPOOL_ERROR = 8

  • CODEPAGE = 9

  • OTHERS = 10

.

if sy-subrc <> 0.

  • MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO

  • WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.

endif.

call function 'WRITE_FORM'

EXPORTING

ELEMENT = 'MAIN_DATA'

FUNCTION = 'SET'

TYPE = 'BODY'

WINDOW = 'MAIN'

  • IMPORTING

  • PENDING_LINES = PENDING_LINES

  • EXCEPTIONS

  • ELEMENT = 1

  • FUNCTION = 2

  • TYPE = 3

  • UNOPENED = 4

  • UNSTARTED = 5

  • WINDOW = 6

  • BAD_PAGEFORMAT_FOR_PRINT = 7

  • SPOOL_ERROR = 8

  • CODEPAGE = 9

  • OTHERS = 10

.

if sy-subrc <> 0.

  • MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO

  • WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.

endif.

call function 'WRITE_FORM'

EXPORTING

ELEMENT = 'SOLD'

  • FUNCTION = 'SET'

TYPE = 'BODY'

WINDOW = 'MAIN'

  • IMPORTING

  • PENDING_LINES = PENDING_LINES

  • EXCEPTIONS

  • ELEMENT = 1

  • FUNCTION = 2

  • TYPE = 3

  • UNOPENED = 4

  • UNSTARTED = 5

  • WINDOW = 6

  • BAD_PAGEFORMAT_FOR_PRINT = 7

  • SPOOL_ERROR = 8

  • CODEPAGE = 9

  • OTHERS = 10

.

if sy-subrc <> 0.

  • MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO

  • WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.

endif.

  • close layout

call function 'CLOSE_FORM'

  • IMPORTING

  • RESULT = RESULT

  • RDI_RESULT = RDI_RESULT

TABLES

OTFDATA = IT_OTFDATA

  • EXCEPTIONS

  • UNOPENED = 1

  • BAD_PAGEFORMAT_FOR_PRINT = 2

  • SEND_ERROR = 3

  • SPOOL_ERROR = 4

  • CODEPAGE = 5

  • OTHERS = 6

.

if sy-subrc <> 0.

  • MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO

  • WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.

endif.

DATA: BIN_FILESIZE TYPE I.

call function 'CONVERT_OTF'

EXPORTING

FORMAT = 'PDF'

  • MAX_LINEWIDTH = 132

  • ARCHIVE_INDEX = ' '

  • COPYNUMBER = 0

  • ASCII_BIDI_VIS2LOG = ' '

  • PDF_DELETE_OTFTAB = ' '

IMPORTING

BIN_FILESIZE = BIN_FILESIZE

  • BIN_FILE = BIN_FILE

tables

otf = IT_OTFDATA

lines = IT_Tline

  • EXCEPTIONS

  • ERR_MAX_LINEWIDTH = 1

  • ERR_FORMAT = 2

  • ERR_CONV_NOT_POSSIBLE = 3

  • ERR_BAD_OTF = 4

  • OTHERS = 5

.

if sy-subrc <> 0.

  • MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO

  • WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.

endif.

DATA: filename type string.

filename = 'c:\TEST\test.pdf'.

call function 'GUI_DOWNLOAD'

exporting

BIN_FILESIZE = BIN_FILESIZE

filename = filename

FILETYPE = 'BIN'

  • APPEND = ' '

  • WRITE_FIELD_SEPARATOR = ' '

  • HEADER = '00'

  • TRUNC_TRAILING_BLANKS = ' '

  • WRITE_LF = 'X'

  • COL_SELECT = ' '

  • COL_SELECT_MASK = ' '

  • DAT_MODE = ' '

  • CONFIRM_OVERWRITE = ' '

  • NO_AUTH_CHECK = ' '

  • CODEPAGE = ' '

  • IGNORE_CERR = ABAP_TRUE

  • REPLACEMENT = '#'

  • WRITE_BOM = ' '

  • TRUNC_TRAILING_BLANKS_EOL = 'X'

  • WK1_N_FORMAT = ' '

  • WK1_N_SIZE = ' '

  • WK1_T_FORMAT = ' '

  • WK1_T_SIZE = ' '

  • IMPORTING

  • FILELENGTH = FILELENGTH

tables

data_tab = it_tline

  • FIELDNAMES = FIELDNAMES

  • EXCEPTIONS

  • FILE_WRITE_ERROR = 1

  • NO_BATCH = 2

  • GUI_REFUSE_FILETRANSFER = 3

  • INVALID_TYPE = 4

  • NO_AUTHORITY = 5

  • UNKNOWN_ERROR = 6

  • HEADER_NOT_ALLOWED = 7

  • SEPARATOR_NOT_ALLOWED = 8

  • FILESIZE_NOT_ALLOWED = 9

  • HEADER_TOO_LONG = 10

  • DP_ERROR_CREATE = 11

  • DP_ERROR_SEND = 12

  • DP_ERROR_WRITE = 13

  • UNKNOWN_DP_ERROR = 14

  • ACCESS_DENIED = 15

  • DP_OUT_OF_MEMORY = 16

  • DISK_FULL = 17

  • DP_TIMEOUT = 18

  • FILE_NOT_FOUND = 19

  • DATAPROVIDER_EXCEPTION = 20

  • CONTROL_FLUSH_ERROR = 21

  • OTHERS = 22

.

if sy-subrc <> 0.

  • MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO

  • WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.

endif.

  • end.

Regards

Fareeads

Former Member
0 Kudos

Hi,

I am sending the sample code for the script driver program.


*&---------------------------------------------------------------------*
*& Report  ZS_SCRIPT03                                                 *
*&                                                                     *
*&---------------------------------------------------------------------*
*&                                                                     *
*&                                                                     *
*&---------------------------------------------------------------------*

REPORT  zs_script03.

TABLES: marc, mara, makt.

SELECT-OPTIONS: s_werks FOR marc-werks.

DATA: BEGIN OF itab OCCURS 0,
       werks LIKE marc-werks,
       mtart LIKE mara-mtart,
       meins LIKE mara-meins,
       maktx LIKE makt-maktx,
       END OF itab.
DATA: i_t001w LIKE t001w.

START-OF-SELECTION.

  SELECT SINGLE * FROM t001w
  INTO i_t001w
  WHERE werks IN s_werks.

  SELECT marc~werks mara~mtart mara~meins makt~maktx
  INTO TABLE itab
  FROM marc JOIN mara
  ON marc~matnr = mara~matnr
  JOIN makt
  ON mara~matnr = makt~matnr
  WHERE marc~werks IN s_werks
  AND SPRAS = SY-LANGU.

  END-OF-SELECTION.
  SORT ITAB BY WERKS MTART MEINS MAKTX.
  DELETE ADJACENT DUPLICATES FROM ITAB.

  CALL FUNCTION 'OPEN_FORM'
   EXPORTING
*     APPLICATION                       = 'TX'
*     ARCHIVE_INDEX                     =
*     ARCHIVE_PARAMS                    =
*     DEVICE                            = 'PRINTER'
*     DIALOG                            = 'X'
      form                              = 'ZS_SCRIPT02'
*     LANGUAGE                          = SY-LANGU
*     OPTIONS                           =
*     MAIL_SENDER                       =
*     MAIL_RECIPIENT                    =
*     MAIL_APPL_OBJECT                  =
*     RAW_DATA_INTERFACE                = '*'
*   IMPORTING
*     LANGUAGE                          =
*     NEW_ARCHIVE_PARAMS                =
*     RESULT                            =
   EXCEPTIONS
     canceled                          = 1
     device                            = 2
     form                              = 3
     options                           = 4
     unclosed                          = 5
     mail_options                      = 6
     archive_error                     = 7
     invalid_fax_number                = 8
     more_params_needed_in_batch       = 9
     spool_error                       = 10
     codepage                          = 11
     OTHERS                            = 12
            .
  IF sy-subrc <> 0.
    MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
            WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
  ENDIF.

  LOOP AT itab.
  AT NEW WERKS.
  IF SY-TABIX > 1.
CALL FUNCTION 'CONTROL_FORM'
  EXPORTING
    command         = 'NEW-PAGE'
 EXCEPTIONS
   UNOPENED        = 1
   UNSTARTED       = 2
   OTHERS          = 3
          .
IF sy-subrc <> 0.
 MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
         WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.
ENDIF.
ENDAT.

    CALL FUNCTION 'WRITE_FORM'
      EXPORTING
        element                        = 'ITEM DATA'
*     FUNCTION                       = 'SET'
*     TYPE                           = 'BODY'
*     WINDOW                         = 'MAIN'
*   IMPORTING
*     PENDING_LINES                  =
     EXCEPTIONS
       element                        = 1
       function                       = 2
       type                           = 3
       unopened                       = 4
       unstarted                      = 5
       window                         = 6
       bad_pageformat_for_print       = 7
       spool_error                    = 8
       codepage                       = 9
       OTHERS                         = 10
              .
    IF sy-subrc <> 0.
      MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
              WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
    ENDIF.


  ENDLOOP.

  CALL FUNCTION 'CLOSE_FORM'
*   IMPORTING
*     RESULT                         =
*     RDI_RESULT                     =
*   TABLES
*     OTFDATA                        =
   EXCEPTIONS
     unopened                       = 1
     bad_pageformat_for_print       = 2
     send_error                     = 3
     spool_error                    = 4
     codepage                       = 5
     OTHERS                         = 6
            .
  IF sy-subrc <> 0.
    MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
            WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
  ENDIF.

reward if helpful

Sarada

former_member184657
Active Contributor
0 Kudos

check this out...

revert back if u have any clarifications.

REPORT ZFIF002.

*BREAK BR_ABAP1.

tables: bkpf.

Data: ist_bkpf type table of bkpf.

Data: wa_bkpf like line of ist_bkpf.

Data: g_fname type rs38l_fnam.

selection-screen: begin of block BLK with frame title text-001.

parameters: p_bukrs type bkpf-bukrs.

parameters: p_gjahr type bkpf-gjahr.

select-options : s_belnr for bkpf-belnr.

selection-screen: end of block BLK.

start-of-selection.

select bukrs

belnr

gjahr

blart

bldat

from bkpf into corresponding fields of table ist_bkpf

where bukrs eq p_bukrs

and gjahr eq p_gjahr

and belnr in s_belnr.

loop at ist_bkpf into wa_bkpf.

CALL FUNCTION 'SSF_FUNCTION_MODULE_NAME'

EXPORTING

FORMNAME = 'ZFIF002'

  • VARIANT = ' '

  • DIRECT_CALL = ' '

IMPORTING

FM_NAME = g_fname

  • EXCEPTIONS

  • NO_FORM = 1

  • NO_FUNCTION_MODULE = 2

  • OTHERS = 3

.

IF SY-SUBRC <> 0.

  • MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO

  • WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.

ENDIF.

CALL FUNCTION g_fname" '/1BCDWB/SF00000029'

EXPORTING

  • ARCHIVE_INDEX =

  • ARCHIVE_INDEX_TAB =

  • ARCHIVE_PARAMETERS =

  • CONTROL_PARAMETERS =

  • MAIL_APPL_OBJ =

  • MAIL_RECIPIENT =

  • MAIL_SENDER =

  • OUTPUT_OPTIONS =

  • USER_SETTINGS = 'X'

WA_BKPF = WA_BKPF

  • IMPORTING

  • DOCUMENT_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.

  • MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO

  • WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.

ENDIF.

clear wa_bkpf.

endloop.