Smartform-Perform

Hi,
Points assured,
1.  Want to know how to get into the form of a perform written in a smartform.
      I have tried double clicking doesn't help.
2.  How to set a break point in a smartform without actually writing a break-point statement.
please advise.

1. Global Subroutines (FORMS) are being written in the Form Routines tab, under the Global Data.
2. To set a break point without hardcoding:
Select the text where you want to put the break point
Press test ... SE37 screen will come up
Dispaly...the FM
Now, press Find icon from the toolbar
Paste the selected text to the "Text"
Select "In main Program"   <----   IMPORTANT
Press FIND.
System will take you to the source code what ever you have selected first.
Set a breakpoint by selecting BREAK POINT button from the toolbar.
Regards,
Naimesh Patel

Similar Messages

  • Smartform performance issue

    HI floks
    i did some development in new smartform its working fine but i have issue in data base performance is 76% . but i utilize similar below code with various conditions in various 12 places . is it possible to reduce performance this type of code . check it and mail me how can i do it . if possible can suggest me fast .how much % is best for this type of performance issues.
    DATA : BEGIN OF ITVBRPC OCCURS 0,
           LV_POSNR LIKE VBRP-POSNR,
           END OF ITVBRPC.
    DATA : BEGIN OF ITKONVC OCCURS 0,
            LV_KNUMH LIKE KONV-KNUMH,
            LV_KSCHL LIKE KONV-KSCHL,
           END OF ITKONVC.
    DATA:  BEGIN OF ITKONHC OCCURS 0,
           LV_KNUMH LIKE KONH-KNUMH,
           LV_KSCHL LIKE KONH-KSCHL,
           LV_KZUST LIKE KONH-KZUST,
           END OF ITKONHC.
    DATA: BEGIN OF ITKONVC1 OCCURS 0,
           LV_KWERT LIKE KONV-KWERT,
           END OF ITKONVC1.
    DATA :  BEGIN OF ITCALCC OCCURS 0,
           LV_KWERT LIKE KONV-KWERT,
           END OF ITCALCC.
    DATA: COUNTC(3) TYPE n,
           TOTALC LIKE KONV-KWERT.
    SELECT POSNR FROM VBRP INTO ITVBRPC
      WHERE VBELN = INV_HEADER-VBELN AND ARKTX = WA_INVDATA-ARKTX .
    APPEND ITVBRPC.
    ENDSELECT.
    LOOP AT ITVBRPC.
    SELECT KNUMH KSCHL FROM KONV INTO ITKONVC WHERE KNUMV =
    LV_VBRK-KNUMV AND KPOSN = ITVBRPC-LV_POSNR AND KSCHL = 'ZLAC'.
    APPEND ITKONVC.
    ENDSELECT.
    ENDLOOP.
    SORT ITKONVC BY LV_KNUMH.
    DELETE ADJACENT DUPLICATES FROM ITKONVC.
    LOOP AT ITKONVC.
    SELECT KNUMH KSCHL KZUST FROM KONH INTO ITKONHC WHERE KNUMH = ITKONVC-LV_KNUMH AND KSCHL = 'ZLAC' AND KZUST = 'Z02'.
    APPEND ITKONHC.
    ENDSELECT.
    ENDLOOP.
    LOOP AT ITKONHC.
    SELECT KWERT FROM KONV INTO ITKONVC1 WHERE KNUMH = ITKONHC-LV_KNUMH AND
    KSCHL = ITKONHC-LV_KSCHL AND KNUMV = LV_VBRK-KNUMV.
    MOVE ITKONVC1-LV_KWERT TO ITCALCC-LV_KWERT.
    APPEND ITCALCC.
    ENDSELECT.
    endloop.
    LOOP AT ITCALCC.
    COUNTC = COUNTC + 1.
    TOTALC = TOTALC + ITCALCC-LV_KWERT.
      ENDLOOP.
    MOVE ITKONHC-LV_KSCHL TO LV_CKSCHL.
    MOVE TOTALC TO LV_CKWERT.
    it's urgent ..........
    thanks .
    bbbbye
    suresh

    Hi,
    you can increase the performance by following,
    1. By changing occurs clause to types declaration clause.
       You need to declare like this:
       DATA : BEGIN OF xVBRPC,
                      LV_POSNR LIKE VBRP-POSNR,
                  END OF xVBRPC.
       DATA: ITVBRPC like table of xVBRPC,
    2. do not use select statements in loop statements.
    Ashven

  • Smartforms - Performance Issue

    Hi,
    I am developing a report related to customer ageing details which involves high volume of transactional data.
    Initially the report was displayed using ALV , but the client was not satisfied when they print the alv report in 130 col printer with sort and sub-total features.So I developed a smartform according to the required design.
    Since the report involves page break and totals inbetween...i have used the event and At new command in the loop within the smartform..
    The issue here is...when the report was tested with actuall data(high volume)..it took almost 5 times of the time when the report was executed using ALV..this is due to the design of the smartform involving the loops...
    Is there any way to check out the performance of smartforms.Kindly suggest.
    Regards,
    Thyagu,

    Hi Thyagu,
    As ALV, smart forms are just ABAP, so you can use the runtime analysis (SE30, or ST12, or SAT) to see what makes it slow.
    See SDN and official documentation for more information about runtime analysis
    BR
    Sandra

  • Smartforms for SAP process orders.

    Hi,
    We want  to use smart forms instead of SAP scripts for process order for various reasons.
    COnfig does not allow using smart forms.
    So we called the smart form in the print program of the sap script.
    But this process is not using the configuration ( OPK8 or CB85).  Its always picking the default printer from the user profile.
    Did any one do this before?  if yes what is the process followed.
    we are using the function CALL FUNCTION 'SSF_FUNCTION_MODULE_NAME'
    to print the smart form.

    Hello,
    SAPScript use the structure ITCPO to know the printer to use and all the configuration.
    You have to transform ITCPO to SMARTFORMS parameters to have the same behavior.
    It will be something like that in your abap code :
    SAPScript to Smartforms
      PERFORM convert_itcpo_2_ssf
          USING print_opts
                print_co-screen
                sy-langu
          CHANGING ls_control_param
                   ls_composer_param
    Display Smartforms
        CALL FUNCTION lf_fm_name
          EXPORTING
            control_parameters = ls_control_param
            output_options     = ls_composer_param
            user_settings      = space
    FORM convert_itcpo_2_ssf
        USING ps_itcpo TYPE itcpo
              p_dialogue TYPE c
              p_spras TYPE sy-langu
        CHANGING ps_control_parameters TYPE ssfctrlop
                 ps_output_options     TYPE ssfcompop.
      CLEAR : ps_control_parameters, ps_output_options.
      ps_control_parameters-device = 'PRINTER'.
      IF p_dialogue IS INITIAL.
        ps_control_parameters-no_dialog = 'X'.
      ELSE.
        ps_control_parameters-no_dialog = ' '.
      ENDIF.
      ps_control_parameters-preview = ps_itcpo-tdpreview.
      ps_control_parameters-getotf = ps_itcpo-tdgetotf.
      ps_control_parameters-langu = p_spras.
      ps_output_options-tdteleland = ps_itcpo-tdteleland.
      ps_output_options-tdtelenum = ps_itcpo-tdtelenum.
      ps_output_options-tdfaxuser = ps_itcpo-tdfaxuser.
      ps_output_options-tdschedule = ps_itcpo-tdschedule.
      ps_output_options-tdsenddate = ps_itcpo-tdsenddate.
      ps_output_options-tdsendtime = ps_itcpo-tdsendtime.
      ps_output_options-bcs_reqst = ps_itcpo-bcs_reqst.
      ps_output_options-bcs_status = ps_itcpo-bcs_status.
      ps_output_options-tdarmod = ps_itcpo-tdarmod.
      ps_output_options-tdnoarmch = ps_itcpo-tdnoarmch.
      ps_output_options-tdtitle = ps_itcpo-tdtitle.
      ps_output_options-tdnoprev = ps_itcpo-tdnoprev.
      ps_output_options-tdnoprint = ps_itcpo-tdnoprint.
      ps_output_options-tdnoarch = ''.
      ps_output_options-tdiexit = ps_itcpo-tdiexit.
      ps_output_options-tddataset = ps_itcpo-tddataset.
      IF ps_output_options-tddataset IS INITIAL.
        ps_output_options-tddataset = 'SMARTF'.
      ENDIF.
      ps_output_options-tdsuffix1 = ps_itcpo-tdsuffix1.
      ps_output_options-tdsuffix2 = ps_itcpo-tdsuffix2.
      ps_output_options-tdcovtitle = ps_itcpo-tdcovtitle.
      ps_output_options-tddest = ps_itcpo-tddest.
      ps_output_options-tdprinter = ps_itcpo-tdprinter.
      ps_output_options-rqposname = ps_itcpo-rqposname.
      ps_output_options-tdnewid = ps_itcpo-tdnewid.
      ps_output_options-tdimmed = ps_itcpo-tdimmed.
      ps_output_options-tddelete = ps_itcpo-tddelete.
      ps_output_options-tdlifetime = ps_itcpo-tdlifetime.
      ps_output_options-tdautority = ps_itcpo-tdautority.
      ps_output_options-tdfinal = ps_itcpo-tdfinal.
      ps_output_options-tdcover = ps_itcpo-tdcover.
      ps_output_options-tdreceiver = ps_itcpo-tdreceiver.
      ps_output_options-tddivision = ps_itcpo-tddivision.
      ps_output_options-tdcopies = ps_itcpo-tdcopies.
      ps_output_options-tdpageslct = ps_itcpo-tdpageslct.
    ENDFORM.               
    Best Regards
    Joë

  • Smartforms error

    Hi experts
    i did a print prg for sending the pdf attachment by smartforms.
    but it's getting dumpped,this is my code
    plz help me,its urgent.
    i checked even SDN Forums also.i made some changes,
    even though i don't get the output.
    it shows not matching the I_OBJBIN in "SO_NEW_DOCUMENT_ATT_SEND_API1" function module.
    REPORT  ZCS_SF6.
    Internal Table declarations
    DATA: i_otf TYPE itcoo OCCURS 0 WITH HEADER LINE,
          i_tline TYPE TABLE OF tline WITH HEADER LINE,                i_receivers TYPE TABLE OF somlreci1 WITH HEADER LINE,        i_record LIKE solisti1 OCCURS 0 WITH HEADER LINE,     
    Objects to send mail.
          i_objpack LIKE sopcklsti1 OCCURS 0 WITH HEADER LINE,  
          i_objtxt LIKE solisti1 OCCURS 0 WITH HEADER LINE,
          i_objbin LIKE solisti1 OCCURS 0 WITH HEADER LINE,
          i_reclist LIKE somlreci1 OCCURS 0 WITH HEADER LINE,
    Work Area declarations
          w_objhead TYPE soli_tab,     
          w_ctrlop TYPE ssfctrlop,
          w_compop TYPE ssfcompop,
          w_return TYPE ssfcrescl,     
          w_doc_chng typE sodocchgi1,  
          w_data TYPE sodocchgi1,
          w_buffer TYPE string,       
    Variables declarations
          v_form_name TYPE rs38l_fnam,
          v_len_in LIKE sood-objlen,   
          v_len_out LIKE sood-objlen,  
          v_len_outn TYPE i,
          v_lines_txt TYPE i,
          v_lines_bin TYPE i.
    call function 'SSF_FUNCTION_MODULE_NAME'
    exporting
      formname = 'ZCS_FORM6'
    importing
      fm_name = v_form_name
    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.
    w_ctrlop-getotf = 'X'.
    w_ctrlop-no_dialog = 'X'.
    w_compop-tdnoprev = 'X'.
    CALL FUNCTION v_form_name
    EXPORTING
      ARCHIVE_INDEX              =
      ARCHIVE_INDEX_TAB          =
      ARCHIVE_PARAMETERS         =
       CONTROL_PARAMETERS         = W_CTRLOP
      MAIL_APPL_OBJ              =
      MAIL_RECIPIENT             =
      MAIL_SENDER                =
       OUTPUT_OPTIONS             = W_COMPOP
       USER_SETTINGS              = 'X'
    IMPORTING
      DOCUMENT_OUTPUT_INFO       =
       JOB_OUTPUT_INFO            = W_RETURN
      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.
    i_otf[] = w_return-otfdata[].
    CALL FUNCTION 'CONVERT_OTF'
    EXPORTING
      format = 'PDF'              
      max_linewidth = 132         
    LINES-TDLINE
    IMPORTING
      bin_filesize = v_len_in     
    TABLES
      otf = i_otf                 
      lines = i_tline             
    EXCEPTIONS
      err_max_linewidth = 1
      err_format = 2
      err_conv_not_possible = 3
      OTHERS = 4.
    IF sy-subrc <> 0.
    MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
    WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
    ENDIF.
    Convert PDF from 132 to 255.
    LOOP AT i_tline.
    Replacing space by ~
    TRANSLATE i_tline USING '~'.
    CONCATENATE w_buffer i_tline INTO w_buffer.
    ENDLOOP.
    Replacing ~ by space
    TRANSLATE w_buffer USING '~'.
    DO.
    i_record = w_buffer.
    Appending 255 characters as a record
    APPEND i_record.
    SHIFT w_buffer LEFT BY 255 PLACES.
    IF w_buffer IS INITIAL.
    EXIT.
    ENDIF.
    ENDDO.
    Attachment
    Refresh: i_reclist,
    i_objtxt,
    i_objbin,
    i_objpack.
    clear w_objhead.
    Object with PDF.
    i_objbin[] = i_record[].
    *******DESCRIBE TABLE i_objbin LINES v_lines_bin.
    Object with main text of the mail.
    i_objtxt = 'Find attached the output of the smart form.'.
    APPEND i_objtxt.
    *i_objtxt = 'Regards,'.
    *APPEND i_objtxt.
    *i_objtxt = 'Chandu'.
    *APPEND i_objtxt.
    DESCRIBE TABLE i_objtxt LINES v_lines_txt.
    read table i_objtxt index v_lines_txt.
    Document information.
    w_doc_chng-obj_name = 'Smartform'.         
    w_doc_chng-expiry_dat = sy-datum + 10.     
    w_doc_chng-obj_descr = 'Smart form output'.
    w_doc_chng-sensitivty = 'F'.               
    w_doc_chng-doc_size = v_lines_txt * 255.   
    Pack to main body as RAW.
    CLEAR i_objpack-transf_bin.         
    i_objpack-head_start = 1.           
    i_objpack-head_num = 0.             
    i_objpack-body_start = 1.           
    i_objpack-body_num = v_lines_txt.   
    i_objpack-doc_type = 'RAW'.   
    APPEND i_objpack.
    Packing as PDF.
    i_objpack-transf_bin = 'X'.
    i_objpack-head_start = 1.
    i_objpack-head_num = 1.
    i_objpack-body_start = 1.
    describe table i_objbin lines v_lines_bin.
    read table i_objbin index v_lines_bin.
    i_objpack-doc_size = v_lines_bin * 255.    
    i_objpack-body_num = v_lines_bin.          
    i_objpack-doc_type = 'PDF'.                
    i_objpack-obj_name = 'Smartform'.          
    i_objpack-obj_descr = 'sf output'
    APPEND i_objpack.
    Document information.
    CLEAR i_reclist.
    e-mail receivers.
    i_reclist-receiver = '[email protected]'. 
    *i_reclist-express = 'X'.    "Send express
    i_reclist-rec_type = 'U'.                             
    APPEND i_reclist.
    Sending mail.
    CALL FUNCTION 'SO_NEW_DOCUMENT_ATT_SEND_API1'
    EXPORTING
      document_data = w_doc_chng 
      put_in_outbox = 'X'        
    TABLES
      packing_list = i_objpack   
      object_header = w_objhead  
      contents_hex = i_objbin    
      contents_txt = i_objtxt    
      receivers = i_reclist      
    EXCEPTIONS
      too_many_receivers = 1
      document_not_sent = 2
      document_type_not_exist = 3
      operation_no_authorization = 4
      parameter_error = 5
      x_error = 6
      enqueue_error = 7
      OTHERS = 8.
    IF sy-subrc <> 0.
    MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
    WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
    ENDIF.
    points wl be rewarded,if it is useful
    thanks in advance.

    HI,
      Here is the complete program for you.. I have done the same requirment..
                 P R O G R A M     D E C L A R A T I O N                 *
    PROGRAM ID            : ZF_QUERY_BANK
    AUTHOR                : Mahesh Raganmoni
    OWNER(Process Team)   :
    CREATE DATE           : 03/04/2004
    R/3 RELEASE VERSION   : 4.72
    BASED-ON PROGRAM      : none
    ADS                   : BP14.B&CF.301
    DESCRIPTION           : This program calles the Bank Query Smartform
                            and sends this smartforms as an email to the
                            bank
    MODIFICATION LOG CONTROL (Most recent on top):
    DATE             AUTHOR              CTS REQ     DESCRIPTION
    *09/13/2004    Mahesh Raganmoni        DR1K901766  Original Version    *
                          T   A   B   L   E   S                          *
    TABLES : BUT021, "BP: Address usages
             BUT020, "BP: Addresses
             T001,   "Company Codes
             DFKKZP, "Payment lot: Data for payment
             BUT000, "BP: General data I
             ADR3,   "Fax Numbers (Business Address Services)
             BNKA,   "Bank master record
             T012.   "House Banks
                            Internal Tables                       *
    *Address Details of Business Partner
    DATA :IT_ADDRESS LIKE STANDARD TABLE OF BUS020_EXT WITH HEADER LINE.
    *Return Table
    DATA :  IT_RETURN LIKE STANDARD TABLE OF BAPIRET2.
    PDF Data to hold the data to be sent as an attachment
    DATA : IT_PDF_NUC_DATA TYPE STANDARD TABLE OF SOLI.
    Converted data from OTF
    DATA : IT_PDF_TABLE TYPE RCL_BAG_TLINE.
    Data Declaration for Sendig Email
    DATA: IT_OBJPACK    LIKE SOPCKLSTI1 OCCURS  1 WITH HEADER LINE,
          IT_OBJHEAD    LIKE SOLISTI1   OCCURS  1 WITH HEADER LINE,
          IT_OBJTXT     LIKE SOLISTI1   OCCURS 10 WITH HEADER LINE,
          IT_OBJBIN     LIKE SOLISTI1   OCCURS 10 WITH HEADER LINE,
          IT_OBJHEX     LIKE SOLIX      OCCURS 10 WITH HEADER LINE,
          IT_RECLIST    LIKE SOMLRECI1  OCCURS  1 WITH HEADER LINE,
          IT_LISTOBJECT LIKE ABAPLIST   OCCURS  1 WITH HEADER LINE.
                             Structures                            *
    DATA :WA_BUS000 TYPE BUS000_EXT,         "Business Partner Details
          WA_ADDRESS TYPE BAPIADDR3,         "Collector Address
          WA_OUTPUT_OPTIONS TYPE SSFCOMPOP,
          WA_CONTROL_PARAMETERS TYPE SSFCTRLOP,
          WA_OUTPUT_DATA TYPE SSFCRESCL,
          WA_HEADER TYPE ZFCOLL_HEADER,  "Smartform Header Info
          WA_DFKKZP TYPE DFKKZP,
          WA_DOCDATA    LIKE SODOCCHGI1.
                             Variables                             *
    DATA : W_FORMNAME TYPE TDSFNAME,             "Smartform Name
           W_NAME_ORG TYPE CHAR35,               "Business Partner Name
           W_ADDRNUMBER LIKE BUT021-ADDRNUMBER,  "Address Number of BP
           W_ADDRESS1 TYPE CHAR35,               "Address Line 1
           W_ADDRESS2 TYPE CHAR35,               "Address Line 2
           W_ADDRESS3 TYPE CHAR35,               "Address Line 3
           W_GE_NAME TYPE CHAR35,                "GE Contact Name
           W_GE_PHONE TYPE CHAR35,               "GE Contact Phone
           W_GE_PHONE1 TYPE CHAR35,               "GE Contact Phone
           W_GE_PHONE_EX TYPE CHAR10,               "GE Contact Phone
           W_GE_EMAIL TYPE CHAR35,               "GE Contact Email
           W_CLIENT_NAME TYPE CHAR30,            "Client Name
           W_GE_FAX TYPE CHAR35,                 "GE Fax No
           W_GE_FAX1 TYPE CHAR35,                "GE Fax No
           W_CLIENT_FAX TYPE CHAR35,             "Client's Fax No
           W_PDF_LEN TYPE I,                     "Length of PDF file
           W_ERR_MESG(120) TYPE C,               "Error Message
           W_ORG1R LIKE DFKKCR-ORG1R,            "Company Code
           W_REFERENCE LIKE DFKKCR-REFERENCE,    "Payment Reference
           W_FNAME TYPE RS38L_FNAM,              "Smartform Function Module
                                                 "     Name
           W_SFNAME TYPE TDSFNAME,   " Smart Form Name
           W_BANKN TYPE CHAR18,   "Bank Account Number
           W_BETRZ TYPE CHAR15,   " Credit AMount
           W_WAERS TYPE CHAR5,    " Credit Currency
           W_VALUT TYPE DFKKZP-VALUT.   " Value Date
    VARIABLES FOR EMAIL
    DATA: W_TAB_LINES  TYPE I,
          W_DOC_SIZE   TYPE I,
          W_ATT_TYPE   LIKE SOODK-OBJTP,
          W_DATFM TYPE XUDATFM.
    VARIABLES FOR DATE
    DATA: W_DAY(2) TYPE C,
          W_MONTH(2) TYPE C,
          W_YEAR(4) TYPE C,
          W_DATE(10) TYPE C.
                             Constants                            *
    DATA : C_SELECTED TYPE C VALUE 'X', "Constant for Checked
           C_COMMA(2) TYPE C VALUE ', ',"Constant for  Comma
           C_HYPHEN TYPE C VALUE '-'.   "Constant for Hypen
                      Selection Screen                            *
    SELECTION-SCREEN BEGIN OF BLOCK b1 WITH FRAME TITLE text-001.
    PARAMETERS: P_KEYZ1 TYPE RFKZ0-KEYZ1 OBLIGATORY, "Payment Lot
                P_POSZA TYPE DFKKZP-POSZA OBLIGATORY. "Item Number
    SELECTION-SCREEN END OF BLOCK b1.
    SELECTION-SCREEN BEGIN OF BLOCK b2 WITH FRAME TITLE text-002.
    PARAMETERS: P_REMIT TYPE C AS CHECKBOX DEFAULT 'X', " Remitter Form
                P_GENRL TYPE C AS CHECKBOX USER-COMMAND RG1, " General Form
                P_TEXT TYPE AD_SMTPADR  MODIF ID SC1. " Free Text
    SELECTION-SCREEN END OF BLOCK b2.
    SELECTION-SCREEN BEGIN OF BLOCK b3 WITH FRAME TITLE text-003.
    PARAMETERS:P_MAIL TYPE C AS CHECKBOX USER-COMMAND RG2, "Send Email
              P_MAILID TYPE AD_SMTPADR MODIF ID SC2.
    SELECTION-SCREEN END OF BLOCK b3.
                     Initialization                               *
    WA_OUTPUT_OPTIONS-XDFCMODE = 'X'.
    WA_OUTPUT_OPTIONS-XDF =  SPACE.
    WA_OUTPUT_OPTIONS-XSFCMODE = 'X'.
    WA_OUTPUT_OPTIONS-XDF = SPACE.
              At Selection Screen Output                          *
    AT SELECTION-SCREEN OUTPUT.
      LOOP AT SCREEN.
        IF SCREEN-GROUP1 = 'SC1'.
          IF P_GENRL = C_SELECTED.
            SCREEN-INPUT = 1.
          ELSE.
            CLEAR P_TEXT.
            SCREEN-INPUT = 0.
          ENDIF.
        ENDIF.
        IF SCREEN-GROUP1 = 'SC2'.
          IF P_MAIL = C_SELECTED.
            SCREEN-INPUT = 1.
          ELSE.
            CLEAR P_MAILID.
            SCREEN-INPUT = 0.
          ENDIF.
        ENDIF.
        MODIFY SCREEN.
      ENDLOOP.
    AT SELECTION-SCREEN.
      IF P_REMIT NE C_SELECTED AND P_GENRL NE C_SELECTED.
        MESSAGE E004 WITH TEXT-004.
      ENDIF.
                      Start of selection                          *
    START-OF-SELECTION.
      IF P_GENRL EQ C_SELECTED.
        IF P_TEXT IS INITIAL.
          MESSAGE I004 WITH TEXT-023.
          STOP.
        ENDIF.
      ENDIF.
      IF P_MAIL EQ C_SELECTED.
        IF P_MAILID IS INITIAL.
          MESSAGE I004 WITH TEXT-005.
          STOP.
        ENDIF.
      ENDIF.
    **Getting Payment Lot and Payment Lot number
      PERFORM GET_PAYMENT_DETAILS.
      IF NOT WA_DFKKZP IS INITIAL.
    Getting the Bank  Details
        PERFORM GET_BANK_DETAILS.
    **Getting the  Ge Contact Details
        PERFORM GET_GE_CONTACT_DETAILS .
    Populating the Structure fields to pass to smartform
        PERFORM FILL_EXPORT_STRUCTURES.
        CLEAR W_FNAME.
    Getting the Function Module name for the Smartform
        IF  P_REMIT EQ C_SELECTED AND P_GENRL NE C_SELECTED.
          W_SFNAME = 'ZF_REMITTER_FORM'.
          PERFORM GET_FORMNAME .
        ELSEIF P_REMIT NE C_SELECTED AND P_GENRL EQ C_SELECTED.
          W_SFNAME = 'ZF_GENERAL_FORM'.
          PERFORM GET_FORMNAME .
        ELSEIF P_REMIT EQ C_SELECTED AND P_GENRL EQ C_SELECTED.
          W_SFNAME = 'ZF_QUERY_BANK_FORM'.
          PERFORM GET_FORMNAME .
        ENDIF.
        IF NOT W_FNAME IS INITIAL.
          PERFORM CALL_FORM.
          IF P_MAIL EQ 'X'.
            IF NOT P_MAILID IS INITIAL.
              PERFORM SET_PARAMETERS.
              PERFORM DEVICE_TYPE.
              PERFORM CALL_FORM.
              PERFORM CONVERT_TO_PDF.
              PERFORM CONVERT_PDF_TO_BINARY.
              PERFORM SEND_MAIL_NO_DISPLAY.
            ENDIF.
          ENDIF.
        ENDIF.
      ENDIF.
    *&      Form  GET_FORMNAME
         Fetch the Function module name for the Smartform
    FORM GET_FORMNAME .
      CALL FUNCTION 'SSF_FUNCTION_MODULE_NAME'
        EXPORTING
          formname           = W_SFNAME
        IMPORTING
          FM_NAME            = W_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.
    ENDFORM.                    " GET_FORMNAME
    *&      Form  CALL_FORM
    To Call the Smartform
    FORM CALL_FORM .
      SHIFT W_BETRZ LEFT DELETING LEADING SPACE.
      CALL FUNCTION W_FNAME
        EXPORTING
          CONTROL_PARAMETERS = WA_CONTROL_PARAMETERS
          OUTPUT_OPTIONS     = WA_OUTPUT_OPTIONS
          USER_SETTINGS      = 'X'
          S_HEADER           = WA_HEADER
          V_ACNO             = W_BANKN
          V_AMOUNT           = W_BETRZ
          V_CURR             = W_WAERS
          V_DATE             = W_VALUT
          V_TEXT             = P_TEXT
        IMPORTING
          JOB_OUTPUT_INFO    = WA_OUTPUT_DATA
        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.
    ENDFORM.                    " CALL_FORM
    *&      Form  FILL_EXPORT_STRUCTURES
    Populate the structure to send to the smartform as input
    FORM FILL_EXPORT_STRUCTURES .
      WA_HEADER-BANKA = BNKA-BANKA.
      WA_HEADER-ADDR_1  = BNKA-STRAS.
      WA_HEADER-ADDR_2 = BNKA-ORT01.
      WA_HEADER-ADDR_3 = BNKA-PROVZ.
      WA_HEADER-ZZSRCBPNM = T012-NAME1.
      SHIFT WA_HEADER-ZZSRCBPNM LEFT DELETING LEADING SPACE.
      WA_HEADER-FAX_NUMBER = W_CLIENT_FAX.
      WA_HEADER-BUTXT = T001-BUTXT.
      WA_HEADER-NAME1 = W_GE_NAME.
      WA_HEADER-TEL_NUMBER = W_GE_PHONE.
      WA_HEADER-TEL_EXTENS = W_GE_PHONE_EX.
      WA_HEADER-SMTP_ADDR = W_GE_EMAIL.
      WA_HEADER-GE_FAX_NUMBER = W_GE_FAX.
    ENDFORM.                    " FILL_EXPORT_STRUCTURES
    *&      FORM  CONVERT_TO_PDF
    Convert the final doucment (OTF FORMAT) into pdf format
    FORM CONVERT_TO_PDF .
      CALL FUNCTION 'CONVERT_OTF'
        EXPORTING
          FORMAT                = 'PDF'
        IMPORTING
          BIN_FILESIZE          = W_PDF_LEN
        TABLES
          OTF                   = WA_OUTPUT_DATA-OTFDATA
          LINES                 = IT_PDF_TABLE
        EXCEPTIONS
          ERR_MAX_LINEWIDTH     = 1
          ERR_FORMAT            = 2
          ERR_CONV_NOT_POSSIBLE = 3
          ERR_BAD_OTF           = 4
          OTHERS                = 5.
    ENDFORM.                    " CONVERT_TO_PDF
    *&      FORM  SET_PARAMETERS
    Set control parameters to get the output format (OTF) from smart form*
    FORM SET_PARAMETERS .
      WA_CONTROL_PARAMETERS-NO_DIALOG = 'X'.
      WA_CONTROL_PARAMETERS-GETOTF    = 'X'.
      WA_CONTROL_PARAMETERS-LANGU = SY-LANGU.
    ENDFORM.                    " SET_PARAMETERS
    *&      FORM  DEVICE_TYPE
    Get the Device type
    FORM DEVICE_TYPE .
      CALL FUNCTION 'SSF_GET_DEVICE_TYPE'
        EXPORTING
          I_LANGUAGE             = WA_CONTROL_PARAMETERS-LANGU
        IMPORTING
          E_DEVTYPE              = WA_OUTPUT_OPTIONS-TDPRINTER
        EXCEPTIONS
          NO_LANGUAGE            = 1
          LANGUAGE_NOT_INSTALLED = 2
          NO_DEVTYPE_FOUND       = 3
          SYSTEM_ERROR           = 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.
    ENDFORM.                    " DEVICE_TYPE
    *&      FORM  CONVERT_PDF_TO_BINARY
    To convert PDF file to Binary format
    FORM CONVERT_PDF_TO_BINARY .
      CALL FUNCTION 'QCE1_CONVERT'
        TABLES
          T_SOURCE_TAB         = IT_PDF_TABLE
          T_TARGET_TAB         = IT_PDF_NUC_DATA
        EXCEPTIONS
          CONVERT_NOT_POSSIBLE = 1
          OTHERS               = 2.
      IF SY-SUBRC <> 0.
      MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
              WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
      ENDIF.
    ENDFORM.                    " CONVERT_PDF_TO_BINARY
    *&      FORM  SEND_MAIL_NO_DISPLAY
    To send a email
    FORM SEND_MAIL_NO_DISPLAY .
      DATA: L_SLINE(255) TYPE C,
            L_INDEX TYPE SY-TABIX.
      IT_OBJBIN[] =  IT_PDF_NUC_DATA[].
      Title and Description of the mail
      WA_DOCDATA-OBJ_DESCR = TEXT-012.
    Mail Body content
      PERFORM MAIL_BODY.
      DESCRIBE TABLE IT_OBJTXT LINES W_TAB_LINES.
      READ     TABLE IT_OBJTXT INDEX W_TAB_LINES INTO L_SLINE.
      L_INDEX = W_TAB_LINES + 1.
      WA_DOCDATA-DOC_SIZE = ( W_TAB_LINES ) * 255 + STRLEN( L_SLINE ).
      WA_DOCDATA-OBJ_EXPDAT = '29991231'.
      WA_DOCDATA-SENSITIVTY = 'O'.
      WA_DOCDATA-OBJ_PRIO =  '5'.
      WA_DOCDATA-EXPIRY_DAT = '29991231'.
      WA_DOCDATA-PROC_TYPE = 'R'.
      CLEAR  IT_OBJPACK-TRANSF_BIN .
      IT_OBJPACK-HEAD_START = 0.
      IT_OBJPACK-HEAD_NUM   = 0.
      IT_OBJPACK-BODY_START = 1.
      IT_OBJPACK-BODY_NUM   = W_TAB_LINES.
      IT_OBJPACK-DOC_TYPE   = 'RAW'.
      IT_OBJPACK-OBJ_DESCR  = TEXT-013.
      APPEND IT_OBJPACK.
    Create message attachment
      W_ATT_TYPE = 'PDF'.
      DESCRIBE TABLE IT_OBJBIN LINES W_TAB_LINES.
      READ     TABLE IT_OBJBIN INDEX W_TAB_LINES.
      L_INDEX = W_TAB_LINES + 1.
      IT_OBJPACK-DOC_SIZE = ( W_TAB_LINES ) * 255 .
      IT_OBJPACK-TRANSF_BIN = 'X'.
      IT_OBJPACK-HEAD_START = 0.
      IT_OBJPACK-HEAD_NUM   = 0.
      IT_OBJPACK-BODY_START = 1.
      IT_OBJPACK-BODY_NUM   = W_TAB_LINES.
      IT_OBJPACK-DOC_TYPE   = W_ATT_TYPE.
      IT_OBJPACK-OBJ_DESCR  = TEXT-013.
      APPEND IT_OBJPACK.
    Create receiver list
      IT_RECLIST-RECEIVER = P_MAILID.  "<-- CHANGE ADDRESS
      IT_RECLIST-REC_TYPE = 'U'.
      IT_RECLIST-EXPRESS = 'X'.
      APPEND IT_RECLIST.
    Send Email
      CALL FUNCTION 'SO_NEW_DOCUMENT_ATT_SEND_API1'
        EXPORTING
          DOCUMENT_DATA              = WA_DOCDATA
          PUT_IN_OUTBOX              = 'X'
          COMMIT_WORK                = 'X'     "USED FROM REL.6.10
        TABLES
          PACKING_LIST               = IT_OBJPACK
          CONTENTS_BIN               = IT_OBJBIN
          CONTENTS_TXT               = IT_OBJTXT
          RECEIVERS                  = IT_RECLIST
        EXCEPTIONS
          TOO_MANY_RECEIVERS         = 1
          DOCUMENT_NOT_SENT          = 2
          DOCUMENT_TYPE_NOT_EXIST    = 3
          OPERATION_NO_AUTHORIZATION = 4
          PARAMETER_ERROR            = 5
          X_ERROR                    = 6
          ENQUEUE_ERROR              = 7
          OTHERS                     = 8.
      IF SY-SUBRC <> 0.
        MESSAGE ID 'SO' TYPE 'S' NUMBER '023'
                WITH WA_DOCDATA-OBJ_NAME.
      ELSE.
        SUBMIT RSCONN01 WITH MODE = 'INT' AND RETURN.
        SET SCREEN 0.
      ENDIF.
    ENDFORM.                    " SEND_MAIL_NO_DISPLAY
    *&      Form  GET_PAYMENT_DETAILS
    Get the Payment Lot and Payment Number
    FORM GET_PAYMENT_DETAILS .
    Get the Payment Lot and Payment Number
      SELECT SINGLE BETRZ
                    BVRKO
                    BUKRS
                    WAERS
                    VALUT
                    BANKS
                    BANKL
                    BANKN
                    FROM  DFKKZP
                    INTO (WA_DFKKZP-BETRZ,WA_DFKKZP-BVRKO,
                      WA_DFKKZP-BUKRS,WA_DFKKZP-WAERS,WA_DFKKZP-VALUT,
                      WA_DFKKZP-BANKS,WA_DFKKZP-BANKL,WA_DFKKZP-BANKN)
                    WHERE KEYZ1 = P_KEYZ1
                    AND   POSZA = P_POSZA.
      IF SY-SUBRC NE  0.
        MESSAGE I004 WITH TEXT-100.
        EXIT.
      ELSE.
        W_ORG1R = WA_DFKKZP-BUKRS.
        W_BETRZ = WA_DFKKZP-BETRZ.
        W_BANKN = WA_DFKKZP-BANKN.
        W_WAERS = WA_DFKKZP-WAERS.
        W_VALUT = WA_DFKKZP-VALUT.
      ENDIF.
    ENDFORM.                    " GET_PAYMENT_DETAILS
    *&      Form  GET_BANK_DETAILS
    To Retrive the Bank Details
    FORM GET_BANK_DETAILS .
    *Get the Bank Address Details
      SELECT SINGLE BANKA
                    STRAS
                    ORT01
                    PROVZ
                    FROM BNKA
                    INTO (BNKA-BANKA,BNKA-STRAS,BNKA-ORT01,BNKA-PROVZ)
                    WHERE BANKS = WA_DFKKZP-BANKS
                    AND BANKL = WA_DFKKZP-BANKL.
      IF SY-SUBRC NE 0.
       MESSAGE I004 WITH TEXT-101.
       EXIT.
      ENDIF.
    GET The Bank Contact Name.
      SELECT SINGLE NAME1
                    FROM T012
                    INTO T012-NAME1
                   WHERE BANKS = WA_DFKKZP-BANKS
                   AND   BANKL = WA_DFKKZP-BANKL.
      IF SY-SUBRC NE 0.
    MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
            WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
      ENDIF.
      IF NOT W_ORG1R IS INITIAL.
    Get the GE Legal Entity Name
        SELECT SINGLE  BUTXT FROM T001
               INTO T001-BUTXT
               WHERE BUKRS = W_ORG1R.
        IF SY-SUBRC NE  0.
           MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
          *         WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
        ENDIF.
      ENDIF.
    ENDFORM.                    " GET_BANK_DETAILS
    *&      Form  GET_COLLECTOR_DETAILS
    To get the Collector Address Details
    FORM GET_GE_CONTACT_DETAILS .
    *Getting the Collector details
      CALL FUNCTION 'BAPI_USER_GET_DETAIL'
        EXPORTING
          USERNAME = SY-UNAME
        IMPORTING
          ADDRESS  = WA_ADDRESS
        TABLES
          RETURN   = IT_RETURN.
      IF NOT WA_ADDRESS IS INITIAL.
        CONCATENATE WA_ADDRESS-FIRSTNAME0(18) WA_ADDRESS-LASTNAME0(17)
                    INTO W_GE_NAME SEPARATED BY SPACE.
        W_GE_PHONE = WA_ADDRESS-TEL1_NUMBR.
        W_GE_PHONE_EX = WA_ADDRESS-TEL1_EXT.
        W_GE_EMAIL = WA_ADDRESS-E_MAIL.
        IF NOT WA_ADDRESS-FAX_EXTENS IS INITIAL.
          CONCATENATE WA_ADDRESS-FAX_NUMBER C_HYPHEN WA_ADDRESS-FAX_EXTENS
                       INTO W_GE_FAX.
        ELSE.
          W_GE_FAX = WA_ADDRESS-FAX_NUMBER.
        ENDIF.
      ENDIF.
    ENDFORM.                    " GET_GE_CONTACT_DETAILS
    *&      Form  MAIL_BODY
    To Build the email body
    FORM MAIL_BODY .
      PERFORM  GET_USER_DATE_FORMAT.
      W_YEAR = W_VALUT+0(4).
      W_MONTH = W_VALUT+4(2).
      W_DAY = W_VALUT+6(2).
      PERFORM GET_DATE.
      IF P_REMIT EQ 'X' .
        CONCATENATE TEXT-020 WA_HEADER-ZZSRCBPNM ',' INTO IT_OBJTXT-LINE
                                SEPARATED BY SPACE.
        APPEND IT_OBJTXT.
        CONCATENATE SPACE SPACE SPACE INTO IT_OBJTXT-LINE.
        APPEND IT_OBJTXT.
        CONCATENATE TEXT-021 WA_HEADER-BUTXT  ',' TEXT-022
        INTO IT_OBJTXT-LINE SEPARATED BY SPACE.
        APPEND IT_OBJTXT.
        CONCATENATE SPACE SPACE SPACE INTO IT_OBJTXT-LINE.
        APPEND IT_OBJTXT.
        SHIFT W_BETRZ LEFT DELETING LEADING SPACE.
        CONCATENATE TEXT-024 W_DATE
        TEXT-025  W_BETRZ W_WAERS TEXT-026
        INTO IT_OBJTXT-LINE SEPARATED BY SPACE.
        APPEND IT_OBJTXT.
        CONCATENATE SPACE SPACE SPACE INTO IT_OBJTXT-LINE.
        APPEND IT_OBJTXT.
        IT_OBJTXT-LINE = TEXT-027.
        APPEND IT_OBJTXT.
        CONCATENATE SPACE SPACE SPACE INTO IT_OBJTXT-LINE.
        APPEND IT_OBJTXT.
        IT_OBJTXT-LINE = WA_HEADER-NAME1.
        APPEND IT_OBJTXT.
        CONCATENATE SPACE SPACE SPACE INTO IT_OBJTXT-LINE.
        APPEND IT_OBJTXT.
        CONCATENATE  TEXT-028 WA_HEADER-BUTXT INTO
        IT_OBJTXT-LINE SEPARATED BY SPACE.
        APPEND IT_OBJTXT.
        IT_OBJTXT-LINE = TEXT-029.
        APPEND IT_OBJTXT.
        CONCATENATE TEXT-030 W_GE_FAX INTO IT_OBJTXT-LINE
                           SEPARATED BY SPACE.
        APPEND IT_OBJTXT.
        CONCATENATE TEXT-031 W_GE_PHONE TEXT-035 W_GE_PHONE_EX INTO
        IT_OBJTXT-LINE SEPARATED BY SPACE.
        APPEND IT_OBJTXT.
        CONCATENATE  TEXT-032 WA_HEADER-SMTP_ADDR INTO
        IT_OBJTXT-LINE SEPARATED BY SPACE.
        APPEND IT_OBJTXT.
        CONCATENATE SPACE SPACE SPACE INTO IT_OBJTXT-LINE.
        APPEND IT_OBJTXT.
        CONCATENATE  TEXT-033 WA_HEADER-BUTXT INTO
        IT_OBJTXT-LINE SEPARATED BY SPACE.
        APPEND IT_OBJTXT.
      ELSEIF P_GENRL EQ 'X'.
        CLEAR IT_OBJTXT.
        REFRESH IT_OBJTXT.
        CONCATENATE TEXT-020 WA_HEADER-ZZSRCBPNM ',' INTO IT_OBJTXT-LINE
                                SEPARATED BY SPACE.
        APPEND IT_OBJTXT.
        CONCATENATE SPACE SPACE SPACE INTO IT_OBJTXT-LINE.
        APPEND IT_OBJTXT.
        CONCATENATE TEXT-021 WA_HEADER-BUTXT '.'
        INTO IT_OBJTXT-LINE SEPARATED BY SPACE.
        APPEND IT_OBJTXT.
        CONCATENATE SPACE SPACE SPACE INTO IT_OBJTXT-LINE.
        APPEND IT_OBJTXT.
        CONCATENATE TEXT-034 P_TEXT '.'
        INTO IT_OBJTXT-LINE SEPARATED BY SPACE.
        APPEND IT_OBJTXT.
        IT_OBJTXT-LINE = TEXT-027.
        APPEND IT_OBJTXT.
        CONCATENATE SPACE SPACE SPACE INTO IT_OBJTXT-LINE.
        APPEND IT_OBJTXT.
        IT_OBJTXT-LINE = WA_HEADER-NAME1.
        APPEND IT_OBJTXT.
        CONCATENATE SPACE SPACE SPACE INTO IT_OBJTXT-LINE.
        APPEND IT_OBJTXT.
        CONCATENATE  TEXT-028 WA_HEADER-BUTXT INTO
        IT_OBJTXT-LINE SEPARATED BY SPACE.
        APPEND IT_OBJTXT.
        IT_OBJTXT-LINE = TEXT-029.
        APPEND IT_OBJTXT.
        CONCATENATE TEXT-030 W_GE_FAX INTO IT_OBJTXT-LINE
                           SEPARATED BY SPACE.
        APPEND IT_OBJTXT.
        CONCATENATE TEXT-031 W_GE_PHONE TEXT-035 W_GE_PHONE_EX INTO
        IT_OBJTXT-LINE SEPARATED BY SPACE.
        APPEND IT_OBJTXT.
        CONCATENATE  TEXT-032 WA_HEADER-SMTP_ADDR INTO
        IT_OBJTXT-LINE SEPARATED BY SPACE.
        APPEND IT_OBJTXT.
      ELSEIF ( P_REMIT EQ 'X' AND P_GENRL EQ 'X' ).
        CONCATENATE TEXT-020 WA_HEADER-ZZSRCBPNM ',' INTO IT_OBJTXT-LINE
                                 SEPARATED BY SPACE.
        APPEND IT_OBJTXT.
        CONCATENATE SPACE SPACE SPACE INTO IT_OBJTXT-LINE.
        APPEND IT_OBJTXT.
        CONCATENATE TEXT-021 WA_HEADER-BUTXT  ',' TEXT-022
        INTO IT_OBJTXT-LINE SEPARATED BY SPACE.
        APPEND IT_OBJTXT.
        CONCATENATE SPACE SPACE SPACE INTO IT_OBJTXT-LINE.
        APPEND IT_OBJTXT.
        SHIFT W_BETRZ LEFT DELETING LEADING SPACE.
        CONCATENATE TEXT-024 W_DATE TEXT-025  W_BETRZ W_WAERS TEXT-026
        INTO IT_OBJTXT-LINE SEPARATED BY SPACE.
        APPEND IT_OBJTXT.
        CONCATENATE SPACE SPACE SPACE INTO IT_OBJTXT-LINE.
        APPEND IT_OBJTXT.
        IT_OBJTXT-LINE = TEXT-027.
        APPEND IT_OBJTXT.
        CONCATENATE SPACE SPACE SPACE INTO IT_OBJTXT-LINE.
        APPEND IT_OBJTXT.
        IT_OBJTXT-LINE = WA_HEADER-NAME1.
        APPEND IT_OBJTXT.
        CONCATENATE SPACE SPACE SPACE INTO IT_OBJTXT-LINE.
        APPEND IT_OBJTXT.
        CONCATENATE  TEXT-028 WA_HEADER-BUTXT INTO
        IT_OBJTXT-LINE SEPARATED BY SPACE.
        APPEND IT_OBJTXT.
        IT_OBJTXT-LINE = TEXT-029.
        APPEND IT_OBJTXT.
        CONCATENATE TEXT-030 W_GE_FAX INTO IT_OBJTXT-LINE
                           SEPARATED BY SPACE.
        APPEND IT_OBJTXT.
        CONCATENATE TEXT-031 W_GE_PHONE TEXT-035 W_GE_PHONE_EX INTO
        IT_OBJTXT-LINE SEPARATED BY SPACE.
        APPEND IT_OBJTXT.
        CONCATENATE  TEXT-032 WA_HEADER-SMTP_ADDR INTO
        IT_OBJTXT-LINE SEPARATED BY SPACE.
        APPEND IT_OBJTXT.
        CONCATENATE SPACE SPACE SPACE INTO IT_OBJTXT-LINE.
        APPEND IT_OBJTXT.
        CONCATENATE  TEXT-033 WA_HEADER-BUTXT INTO
        IT_OBJTXT-LINE SEPARATED BY SPACE.
        APPEND IT_OBJTXT.
      ENDIF.
    ENDFORM.                    " MAIL_BODY
    *&      Form  get_user_date_format
    to get the User Date Format from USR01 table
    FORM GET_USER_DATE_FORMAT.
      CLEAR W_DATFM.
      SELECT SINGLE DATFM INTO W_DATFM
                          FROM USR01
                          WHERE BNAME = SY-UNAME.
    ENDFORM.                    " get_user_date_format
    *&      Form  GET_DATE
          Get the date in the user format
    FORM GET_DATE .
      CLEAR W_DATE.
      CASE W_DATFM.
        WHEN '1'.
          CONCATENATE W_DAY '.' W_MONTH '.' W_YEAR INTO W_DATE.
        WHEN '2'.
          CONCATENATE W_MONTH '/' W_DAY '/' W_YEAR INTO W_DATE.
        WHEN '3'.
          CONCATENATE W_MONTH '-' W_DAY '-' W_YEAR INTO W_DATE.
        WHEN '4'.
          CONCATENATE W_YEAR '.' W_MONTH '.' W_DAY INTO W_DATE.
        WHEN '5'.
          CONCATENATE W_YEAR '/' W_MONTH '/' W_DAY INTO W_DATE.
        WHEN '6'.
          CONCATENATE W_YEAR '-' W_MONTH '-' W_DAY INTO W_DATE.
      ENDCASE.
    ENDFORM.                    " GET_DATE
    Thanks
    Mahesh

  • Chinese Character Printing in Smartform (Different Question)

    Hi all,
    Can anyone explain to me further the OSS Note 776507 that Anji Reddy Vangala recently posted?  It involves the preview and printing of different character sets.  Currently I've managed to preview my form correctly, but it still prints out #'s.  Do I need to re-assign the fonts to the printer device or something, or do I need to use a different printer?  The printer I am currently using is an HP 2100.  Please please help, anyone?
    <b>EDIT:</b> Probably a better question would be how to map the conversion font of CNSONG to something that can be read by the printer?
    A copy of the note for everyone's reference:
    OSS Note: 776507
    Symptom
    Documents printed via SAPscript or SmartForms do not print with correct special characters, e.g. ### prints instead of Japanese or Russian characters. What to do?
    Other terms
    SAPscript, SmartForms, printing, device types, OTF
    Reason and Prerequisites
    Help required to choose proper fonts in a SAPscript or SmartForm
    Solution
    When using SAPscript or SmartForms to print (or email or fax) a form from a business application, many factors influence the outcome of the actual text within the form. All these factors must be checked in order to ensure a correct printout:
    1) The language version of the form used to produce the printout.
    Example: If you want to print a French invoice, you need to have a FR version of your SAPscript or SmartForms invoice form RVINVOICE01. And the application program must specify the corresponding language key (FR) when calling the SAPscript or SmartForms API.
    2) The font selections specified in the form (possibly also in a SAPscript style or SmartStyle used in a form).
    Example: In a SAPscript form or a SmartStyle you need to specify HELVE if you want to print German text in Helvetica (or similar) font. If you want to print Japanese text, HELVE is not a valid choice but you need to specify a Japanese font like JPMINCHO in your Japanese form.
    3) The output character set of the device type
    Every printer in transaction SPAD has a "device type" assigned. Device types used by the spooler for printing support only one single specific output character set. All text from the form has to be converted (using SAP's built-in character conversion mechanism) to this output character set.
    A character set can typically support either a single language (e.g. Shift-JIS which supports only Japanese) or a set of languages (e.g. ISO 8859-1, which supports Western-European languages). It is possible that a given language (such as German) can be supported by several output character sets, e.g. you may use either ISO 8895-1 (Latin-1) or ISO 8859-2 (Latin-2) to represent German text. This is so because both character sets contain the special characters used in German.
    Example: HPLJ4000 is a HP LaserJet device type supporting the ISO 8859-1 (Latin-1) character set. ISO 8859-1 can be used to represent e.g. Dutch, English, French, German, Spanish, Swedish but NOT Russian or Japanese.
    As a consequence, it is ok to use HPLJ4000 to print English, German French etc. but not for Japanese or Russian.
    4) The set of available printer fonts for a given device type
    When formatting a document, SAPscript and SmartForms perform an automatic mapping of the font definitions in the form (e.g. "HELVE 14 point bold") and the available printer fonts of the device type. A replacement printer font is chosen, should the specified font selection not be available in the device type. Now this replacement can be problematic if a language-specific font, such as Chinese CNSONG, is specified in a form and it gets replaced by a font which does not support this language, e.g. COURIER.
    To solve this problem, font families in SE73 have language attribute assigned, e.g. some fonts are characterized as being suitable only for certain languages. And when a replacement has to be chosen because the original font from the form is not available in the device type, a replacement font is chosen which has the same language attributes.
    If no fonts for the language in question exist in the device type, the resulting font will not be able to print the special characters and you will see "wrong" output characters in the printout.
    Note on SAPscript/SmartForms Print Preview:
    The OTF Print Preview available in Windows GUI (e.g. from transaction SP01) will sometimes not show the "wrong" characters which appear on the final printout. Here is the reason: since the Print Preview runs in Windows environment, it will use Windows fonts to represent the actual printer fonts. A Windows font typically has more available characters (i.e. covers more character sets) than are actually available in a printer's resident font.
    A typical example where the Print Preview will differ from the printout is here: if you have a Chinese PCL5 printer such as CNHPLJ4 and use the Western Latin font COURIER in your document, the print preview will show you Chinese characters if you (by accident) tried to format Chinese characters in COURIER font. This is because Windows will automatically choose a font that can output Chinese characters (which is actually not Courier). But when you print the job on an actual PCL5 printer with resident Western and Chinese fonts, the Courier font will not print any Chinese characters but Western special characters instead, because the printer's resident Courier font does not include Chinese characters.
    Rule of thumb: all Asian device types (e.g. CNHPLJ4, JPHPLJ4, JPPOST, KPHPLJ4) support not only Asian fonts but also COURIER, HELVE and TIMES fonts. But these Latin fonts can only be used to print English text, not Chinese/Japanese/Korean characters.
    Which fonts are suitable for a given language?
    Language(s): Font family to use in a form:
    Latin-1 (Western Europe/Americas) *******
    DE,EN,FR,ES,NL,SV COURIER, HELVE, TIMES
    (LETGOTH, LNPRINT)
    Latin-2 (Central Europe) ****************
    PL, CZ COURIER, HELVE, TIMES
    ISO 8859-4 (Baltic) *********************
    ET, LT, LV COURIER, HELVE, TIMES
    ISO 8859-5 (Cyrillic) *******************
    BG, RU, SR, UK COURCYR, HELVCYR, TIMECYR
    ISO 8859-7 (Greek) **********************
    EL COUR_I7, HELV_I7, TIME_I7
    ISO 8859-8 (Hebrew) *********************
    HE COURIER, HELVE, TIMES
    ISO 8859-9 (Turkish) ********************
    TR COURIER, HELVE, TIMES
    Simplified Chinese **********************
    ZH CNHEI, CNKAI, CNSONG
    Japanese ********************************
    JA JPMINCHO, DBMINCHO, DBGOTHIC
    Korean **********************************
    KP KPBATANG, KPDODUM, KPGULIM
    KPGUNGSE, KPSAMMUL
    Traditional Chinese *********************
    ZF TWDPHEI, TWMING, TWSONG
    Thai ************************************
    TH THANGSAN, THDRAFT, THVIJIT
    Arabic (Unicode systems only) ***********
    AR ANDALE_J
    Verify your output by examining the OTF data
    When analysing printing problems of this type, be sure to check the OTF data which gets produced by SAPscript or SmartForms. OTF or "Output Text Format" is the intermediate page-description format generated from SAPscript or SmartForms. OTF will contain the final printer font names and character set/language identifiers which help to solve the problem. OTF will even name the form and the language of the form used to create the output.
    The easiest way to do this is to create a spool request from your application, run transaction SP01, use menu
    Goto->Display Requests->Settings
    and choose
    Display Mode: Raw
    Now display your spool request. If this is a SAPscript or SmartForms spool request, you will see OTF data. Each line represents one OTF command, every command starts with a 2-character cmd identifier and possibly some cmd parameters follow.
    Here is an excerpt from a sample OTF file where we highlight the most interesting commands:
    //XHPLJ8000 0700 00000000001
    IN04EALEXTEST_ZEBRA
    IN05%PAGE1
    OPDINA4 P 144 240 1683811906000010000100001
    IN06%WINDOW2
    MT0024401289
    CP11000000E
    FCHELVE 120 00109XSF100SF101110000067E X
    UL +0000000000000
    SW00067
    CT00000000
    ST0453037Dieses SF hat Stil ALEXTEST_ZEBRA mit
    The 1st line with the // (Control) command reveals the device type usedto print: HPLJ8000
    //XHPLJ8000 0700 00000000001
    The 2nd line (IN = Info command) shows the name and (internal 1-char)language key of the form:
    IN04EALEXTEST_ZEBRA
    In this case it is the English (E = EN) SmartForm ALEXTEST_ZEBRA
    The OP-line (OP = Open Page) gives the page format used in the form, it is DINA4 Portrait orientation:
    OPDINA4 P 144 240 1683811906000010000100001
    The CP (CodePage) cmd shows the SAP system codepage used to code the text and the active language. In our case it is codepage 1100 and language E = EN = English.
    CP11000000E
    Finally, the FC-cmd (Font Call) lists a printer font selected within SmartForms. Please note that every SmartForm has a designated default SmartStyle under "Form Attributes->Output Options". In addition, every text node can have a SmartStyle attached (which will override the definitions from the default style for the text). In our case the resulting printer font that was selected is HELVE 12.0 pt bold-off, italic-off.
    FCHELVE 120 00109XSF100SF101110000067E X<b></b><b></b><b></b>

    Hi,
    there a different things to know.
    I produce sapscript forms with cinese and english characters for frontend / backend and archiv printing.
    Please check:
    Editor displays ###: You have to install the chinese language in your e.g. windows-system to display them.
    Script: You have to chose the the font family "CNSONG" (customized for chinese simplified and LATIN).
    Transaction I18N: May you have to set correct subfonts for the unicode areas (Cascading fonts, Standard is Courier).
    You can print in different ways:
    For archiv/PDF: Install the unicode truetype font with chinese characters for the pdf-converter.
    For Frontend: Use the Frontendprinter SAPWIN or SAPWIN*CF (Cascading Font) to send it to the gui (note: SAPLPD does not support it, use the newer technology.....)
    Backend printing: POSTSCRIPT is not yet implemented :-((
    PLease note: What you see in spool / print preview is a simulation of the possible print, but backend print is not frontend preview!!!!
    Regards,
    Christian

  • Convert smartform spool to 2 pdf and send it by mail

    Hi! Can someone show me some code how to call the smartform and use the spool to convert to pdf and then send it by mail?
    Thanks in advance,
    Regards

    hai
    its very useful for u
    Object ID          :  PTP_TS_FRM_202                                 *
    Description        :  Print Program For PO Goods Receipt Document    *
    Developer          :  Ganesh Shanker Vidyarthi                       *
    Date               :  11/06/2006                                     *
    Genentech Contact  :                                                 *
    Functional Contact :                                                 *
    Purpose            :  This program is driver program of Goods Receipt*
                          Printing.                                      *
    Program Logic      : The Goods Receipt form (Raw material worksheet) *
                         would be created once we entered the values of
                         MBLNR MJAHR ZEILE fields on the selection screen.
                       Modification Log                                  *
    Changed On    Developer         Transport No.    Description         *
    11/06/2006    G.S.Vidyarthi                      Creation            *
    REPORT  zptpfrm202p_pogr_pr_instr MESSAGE-ID zmm.
              TABLES                                                     *
    Database table made for getting information about PRINTPREVIEW and
    PRINT command more than one times
    TABLES:    zgr_table.
    TYPE-POOLS:syscr.
              GLOBAL TYPE DECLARATION                                    *
    DATA:  zdoc_output_info     TYPE     ssfcrespd,  "SF:Return Document Inf.
         zjob_output_info     TYPE     ssfcrescl,  "SF:Return value at end of
                                                    form printing
           i_control TYPE ssfctrlop ,
           i_output_options TYPE ssfcompop,
           zjob_output_opts     TYPE     ssfcresop.  "SF:Return value at start
                                                    of form printing
    *This internal table is used for storing Document Segment: Material
    DATA: BEGIN OF i_mseg.
            INCLUDE STRUCTURE mseg.
    DATA: END OF i_mseg.
    This internal table is used for storing  Header: Material Document
    DATA: BEGIN OF i_mkpf.
            INCLUDE STRUCTURE mkpf.
    DATA: END OF i_mkpf.
    *Variables
    DATA flag(1) TYPE c.
    DATA: vfile TYPE string.
                    SELECTION-SCREEN                                     *
    SELECTION-SCREEN BEGIN OF BLOCK b1 WITH FRAME TITLE text-000.
    PARAMETERS:p_mblnr TYPE mkpf-mblnr OBLIGATORY MATCHCODE OBJECT zganesh,
               p_mjahr TYPE mkpf-mjahr OBLIGATORY MATCHCODE OBJECT zganesh1,
               p_zeile TYPE mseg-zeile OBLIGATORY MATCHCODE OBJECT zganesh2.
    SELECTION-SCREEN END OF BLOCK b1.
    SELECTION-SCREEN BEGIN OF BLOCK b2 WITH FRAME TITLE text-001.
    SELECTION-SCREEN BEGIN OF LINE.
    SELECTION-SCREEN POSITION 10.
    PARAMETER:r_disp RADIOBUTTON GROUP g1 USER-COMMAND u1 DEFAULT 'X'.
    SELECTION-SCREEN:COMMENT 15(10) text-002 .
    SELECTION-SCREEN END OF LINE.
    SELECTION-SCREEN BEGIN OF LINE.
    SELECTION-SCREEN POSITION 10.
    PARAMETERS: r_down RADIOBUTTON GROUP g1.
    SELECTION-SCREEN:COMMENT 15(10) text-003.
    *PARAMETERS: v_file LIKE rlgrap-filename .
    *SELECTION-SCREEN:COMMENT 70(50) text-005.
    SELECTION-SCREEN END OF LINE.
    SELECTION-SCREEN BEGIN OF LINE.
    SELECTION-SCREEN POSITION 10.
    PARAMETERS: r_print RADIOBUTTON GROUP g1 .
    SELECTION-SCREEN:COMMENT 15(10) text-004.
    SELECTION-SCREEN END OF LINE.
    PARAMETERS: v_file LIKE rlgrap-filename MODIF ID g12.
    SELECTION-SCREEN END OF BLOCK b2.
    AT SELECTION-SCREEN ON VALUE-REQUEST FOR v_file.
      DATA : wlv_field_name LIKE dynpread-fieldname,
              wlv_file_name  LIKE ibipparms-path.
      wlv_field_name = v_file.
      CALL FUNCTION 'F4_FILENAME'
        EXPORTING
          field_name = wlv_field_name
        IMPORTING
          file_name  = wlv_file_name.
      IF sy-subrc EQ 0.
        vfile = wlv_file_name.
        v_file = wlv_file_name.
      ENDIF.
    AT SELECTION-SCREEN OUTPUT.
      LOOP AT SCREEN.
        IF screen-name = 'V_FILE'.
          IF r_disp EQ 'X' OR r_print EQ 'X'.
            screen-input = 0.
          ELSE.
            screen-input = '1'.
          ENDIF.
          MODIFY SCREEN.
        ENDIF.
      ENDLOOP.
                        START-OF-SELECTION EVENT                         *
    START-OF-SELECTION.
      CALLING CONVERSION FUNCTION MODULE 'CONVERSION_EXIT_ALPHA_INPUT'   *
    *Conversion function module for appending 00 befor MBLNR FIELD
      CALL FUNCTION 'CONVERSION_EXIT_ALPHA_INPUT'
        EXPORTING
          input  = p_mblnr
        IMPORTING
          output = p_mblnr.
    Call subroutine for fetching data from database
      PERFORM get_data.
                        END-OF-SELECTION  EVENT                          *
    END-OF-SELECTION.
    Call subroutine for calling  and processing smartform
      PERFORM call_smartform.
    *&      Form  get_data
          Subroutine for fetching data from database
    FORM get_data .
    Fetching data from MKPF table with using parameters MBLNR and MJAHR
      SELECT SINGLE * FROM mkpf
                      INTO i_mkpf
                      WHERE mblnr = p_mblnr
                        AND mjahr = p_mjahr.
      IF sy-subrc EQ 0.
    Fetching data from MSEG with using parameters MBLNR,ZEILE and MJAHR
        SELECT SINGLE * FROM mseg
                        INTO i_mseg
                        WHERE mblnr = i_mkpf-mblnr
                          AND mjahr = i_mkpf-mjahr
                          AND zeile = p_zeile.
        IF sy-subrc NE 0.
          CLEAR i_mseg.
        ENDIF.
      ELSE.
        MESSAGE i000.
        EXIT.
      ENDIF.
    ENDFORM.                    " get_data
    *&      Form  call_smartform
         Subroutine for calling smartform
    FORM call_smartform .
    Local template used in the processing output of smartform
      TYPES: BEGIN OF lt_ztable,
              mandt TYPE sy-mandt,
              mblnr TYPE mseg-mblnr,
              flag(1) TYPE c,
              END OF lt_ztable.
      CONSTANTS: c_x(1) TYPE c VALUE 'X'.
    Workarea
      DATA: lw_ztable TYPE lt_ztable.
    *Variable used in the smartform
      DATA: lv_form(30)    TYPE c,
            lv_fm_name(30) TYPE c.
      lv_form = 'ZPTPFRM202L_POGR'.
    *Calling function module SSF_FUNCTION_MODULE_NAME which gives  new name
    *to the function module that will generated by smartform.
      CALL FUNCTION 'SSF_FUNCTION_MODULE_NAME'
        EXPORTING
          formname           = lv_form
        IMPORTING
          fm_name            = lv_fm_name
        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.
    *Calling function module that will be generated by smartform
      IF r_disp = c_x.
        i_output_options-tdimmed       = space.
        i_output_options-tdnewid       = c_x.
        i_output_options-tddest        = 'LOCL'.
        i_control-no_dialog = 'X'.
        i_control-preview = 'X'.
      ELSEIF r_print = c_x.
        i_output_options-tdimmed       = c_x.
        i_output_options-tddest        = 'LOCL'.
        i_control-no_dialog = c_x.
      ELSE.
        i_output_options-tdimmed       = space.
        i_output_options-tdnewid       = c_x.
        i_output_options-tddest        = 'LOCL'.
        i_control-getotf    = 'X'.
        i_control-preview   = space.
        i_control-no_dialog = c_x.
        flag = c_x.
      ENDIF.
      CALL FUNCTION lv_fm_name
        EXPORTING
          control_parameters   = i_control
          output_options       = i_output_options
          user_settings        = space
          zmkpf                = i_mkpf
          zmseg                = i_mseg
        IMPORTING
          document_output_info = zdoc_output_info
          job_output_info      = zjob_output_info
          job_output_options   = zjob_output_opts
        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.
    Modify the database table if it found the print command
      IF  zjob_output_opts-tdpreview NE c_x.
        lw_ztable-mandt = sy-mandt.
        lw_ztable-mblnr = p_mblnr.
        lw_ztable-flag = c_x.
        MODIFY zgr_table FROM lw_ztable.
        CLEAR lw_ztable.
      ENDIF.
      IF flag EQ c_x.
        DATA:   li_lines LIKE tline OCCURS 100 WITH HEADER LINE.
        DATA:   lv_file   TYPE string,
                lbin_fsiz TYPE i.
        lv_file = v_file.
        CALL FUNCTION 'CONVERT_OTF'
          EXPORTING
            format                = 'PDF'
          IMPORTING
            bin_filesize          = lbin_fsiz
          TABLES
            otf                   = zjob_output_info-otfdata
            lines                 = li_lines
          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.
        CALL FUNCTION 'GUI_DOWNLOAD'
          EXPORTING
            bin_filesize            = lbin_fsiz
            filename                = lv_file
            filetype                = 'BIN'
          TABLES
            data_tab                = li_lines
          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.
      ENDIF.
    ENDFORM.                    " call_smartform
    **Please reward suitable points***
    With Regards
    Navin Khedikar

  • Preview and Printing of Chinese Characters in Smartform

    Hi everyone!
    I have a development that needs to output in Smartform a combination of Chinese and English characters, on an English Logon,
    When I debug the form, the Chinese characters are shown in the debug screen, but when it is previewed or printed, it shows garbage.  Can anyone help me with this?
    Thanks a lot! Points for any helpful answer!

    Hi
    check this OSS Note
    OSS Note: 776507
    Symptom
    Documents printed via SAPscript or SmartForms do not print with correct special characters, e.g. ### prints instead of Japanese or Russian characters. What to do?
    Other terms
    SAPscript, SmartForms, printing, device types, OTF
    Reason and Prerequisites
    Help required to choose proper fonts in a SAPscript or SmartForm
    Solution
    When using SAPscript or SmartForms to print (or email or fax) a form from a business application, many factors influence the outcome of the actual text within the form. All these factors must be checked in order to ensure a correct printout:
    1) The language version of the form used to produce the printout.
    Example: If you want to print a French invoice, you need to have a FR version of your SAPscript or SmartForms invoice form RVINVOICE01. And the application program must specify the corresponding language key (FR) when calling the SAPscript or SmartForms API.
    2) The font selections specified in the form (possibly also in a SAPscript style or SmartStyle used in a form).
    Example: In a SAPscript form or a SmartStyle you need to specify HELVE if you want to print German text in Helvetica (or similar) font. If you want to print Japanese text, HELVE is not a valid choice but you need to specify a Japanese font like JPMINCHO in your Japanese form.
    3) The output character set of the device type
    Every printer in transaction SPAD has a "device type" assigned. Device types used by the spooler for printing support only one single specific output character set. All text from the form has to be converted (using SAP's built-in character conversion mechanism) to this output character set.
    A character set can typically support either a single language (e.g. Shift-JIS which supports only Japanese) or a set of languages (e.g. ISO 8859-1, which supports Western-European languages). It is possible that a given language (such as German) can be supported by several output character sets, e.g. you may use either ISO 8895-1 (Latin-1) or ISO 8859-2 (Latin-2) to represent German text. This is so because both character sets contain the special characters used in German.
    Example: HPLJ4000 is a HP LaserJet device type supporting the ISO 8859-1 (Latin-1) character set. ISO 8859-1 can be used to represent e.g. Dutch, English, French, German, Spanish, Swedish but NOT Russian or Japanese.
    As a consequence, it is ok to use HPLJ4000 to print English, German French etc. but not for Japanese or Russian.
    4) The set of available printer fonts for a given device type
    When formatting a document, SAPscript and SmartForms perform an automatic mapping of the font definitions in the form (e.g. "HELVE 14 point bold") and the available printer fonts of the device type. A replacement printer font is chosen, should the specified font selection not be available in the device type. Now this replacement can be problematic if a language-specific font, such as Chinese CNSONG, is specified in a form and it gets replaced by a font which does not support this language, e.g. COURIER.
    To solve this problem, font families in SE73 have language attribute assigned, e.g. some fonts are characterized as being suitable only for certain languages. And when a replacement has to be chosen because the original font from the form is not available in the device type, a replacement font is chosen which has the same language attributes.
    If no fonts for the language in question exist in the device type, the resulting font will not be able to print the special characters and you will see "wrong" output characters in the printout.
    Note on SAPscript/SmartForms Print Preview:
    The OTF Print Preview available in Windows GUI (e.g. from transaction SP01) will sometimes not show the "wrong" characters which appear on the final printout. Here is the reason: since the Print Preview runs in Windows environment, it will use Windows fonts to represent the actual printer fonts. A Windows font typically has more available characters (i.e. covers more character sets) than are actually available in a printer's resident font.
    A typical example where the Print Preview will differ from the printout is here: if you have a Chinese PCL5 printer such as CNHPLJ4 and use the Western Latin font COURIER in your document, the print preview will show you Chinese characters if you (by accident) tried to format Chinese characters in COURIER font. This is because Windows will automatically choose a font that can output Chinese characters (which is actually not Courier). But when you print the job on an actual PCL5 printer with resident Western and Chinese fonts, the Courier font will not print any Chinese characters but Western special characters instead, because the printer's resident Courier font does not include Chinese characters.
    Rule of thumb: all Asian device types (e.g. CNHPLJ4, JPHPLJ4, JPPOST, KPHPLJ4) support not only Asian fonts but also COURIER, HELVE and TIMES fonts. But these Latin fonts can only be used to print English text, not Chinese/Japanese/Korean characters.
    Which fonts are suitable for a given language?
    Language(s):            Font family to use in a form:
    Latin-1 (Western Europe/Americas) *******
    DE,EN,FR,ES,NL,SV       COURIER, HELVE, TIMES
                            (LETGOTH, LNPRINT)
    Latin-2 (Central Europe) ****************
    PL, CZ                  COURIER, HELVE, TIMES
    ISO 8859-4 (Baltic) *********************
    ET, LT, LV              COURIER, HELVE, TIMES
    ISO 8859-5 (Cyrillic) *******************
    BG, RU, SR, UK          COURCYR, HELVCYR, TIMECYR
    ISO 8859-7 (Greek) **********************
    EL                      COUR_I7, HELV_I7, TIME_I7
    ISO 8859-8 (Hebrew) *********************
    HE                      COURIER, HELVE, TIMES
    ISO 8859-9 (Turkish) ********************
    TR                      COURIER, HELVE, TIMES
    Simplified Chinese **********************
    ZH                      CNHEI, CNKAI, CNSONG
    Japanese ********************************
    JA                      JPMINCHO, DBMINCHO, DBGOTHIC
    Korean **********************************
    KP                      KPBATANG, KPDODUM, KPGULIM
                            KPGUNGSE, KPSAMMUL
    Traditional Chinese *********************
    ZF                      TWDPHEI, TWMING, TWSONG
    Thai ************************************
    TH                      THANGSAN, THDRAFT, THVIJIT
    Arabic (Unicode systems only) ***********
    AR                      ANDALE_J
    Verify your output by examining the OTF data
    When analysing printing problems of this type, be sure to check the OTF data which gets produced by SAPscript or SmartForms. OTF or "Output Text Format" is the intermediate page-description format generated from SAPscript or SmartForms. OTF will contain the final printer font names and character set/language identifiers which help to solve the problem. OTF will even name the form and the language of the form used to create the output.
    The easiest way to do this is to create a spool request from your application, run transaction SP01, use menu
    Goto->Display Requests->Settings
    and choose
    Display Mode: Raw
    Now display your spool request. If this is a SAPscript or SmartForms spool request, you will see OTF data. Each line represents one OTF command, every command starts with a 2-character cmd identifier and possibly some cmd parameters follow.
    Here is an excerpt from a sample OTF file where we highlight the most interesting commands:
    //XHPLJ8000    0700 00000000001
    IN04EALEXTEST_ZEBRA
    IN05%PAGE1
    OPDINA4  P 144  240 1683811906000010000100001
    IN06%WINDOW2
    MT0024401289
    CP11000000E
    FCHELVE  120  00109XSF100SF101110000067E X
    UL +0000000000000
    SW00067
    CT00000000
    ST0453037Dieses SF hat Stil ALEXTEST_ZEBRA mit
    The 1st line with the // (Control) command reveals the device type usedto print: HPLJ8000
    //XHPLJ8000    0700 00000000001
    The 2nd line (IN = Info command) shows the name and (internal 1-char)language key of the form:
    IN04EALEXTEST_ZEBRA
    In this case it is the English (E = EN) SmartForm ALEXTEST_ZEBRA
    The OP-line (OP = Open Page) gives the page format used in the form, it is DINA4 Portrait orientation:
    OPDINA4  P 144  240 1683811906000010000100001
    The CP (CodePage) cmd shows the SAP system codepage used to code the text and the active language. In our case it is codepage 1100 and language E = EN = English.
    CP11000000E
    Finally, the FC-cmd (Font Call) lists a printer font selected within SmartForms. Please note that every SmartForm has a designated default SmartStyle under "Form Attributes->Output Options". In addition, every text node can have a SmartStyle attached (which will override the definitions from the default style for the text). In our case the resulting printer font that was selected is HELVE 12.0 pt bold-off, italic-off.
    FCHELVE   120  00109XSF100SF101110000067E X
    Regards
    Anji

  • Chinese char issue in smartform preview as pdf format

    Hi chinese guy!!
    please help me with chinese char in smartform preview as pdf format
    i created smartform with chinese char and then when executing this smartform by t-code smartforms, it show as simplified chinese char, but when getting JOB_OUTPUT_INFO in order to convert OTF as pdf format, although smartforms performed as pdf format, only chinese char were broken. smartform with english or korean language does not have any issue, only chinese issue now.
    i got into r/3 as logon ZH by SAP GUI english version  and i used adobe acrobat reader chinese simplifed version. r/3 version is ecc60 unicode system***
    please help me,, any chinese guy there?
    1.  CALL FUNCTION 'SSF_FUNCTION_MODULE_NAME'
    2.    CONTORL_PARAMETERS-NO_DIALOG = 'X'.
           CONTORL_PARAMETERS-GETOTF = 'X'.
           OUTPUT_OPTIONS-TDNOPREV = 'X'.
           CLEAR JOB_OUTPUT_INFO.
    3.    
    CALL FUNCTION FUNCTION
        EXPORTING
          CONTROL_PARAMETERS = CONTORL_PARAMETERS
          OUTPUT_OPTIONS     = OUTPUT_OPTIONS
        IMPORTING
          JOB_OUTPUT_INFO    = JOB_OUTPUT_INFO
        TABLES
          ITEM               = ITEM
        EXCEPTIONS
          FORMATTING_ERROR   = 1
          INTERNAL_ERROR     = 2
          SEND_ERROR         = 3
          USER_CANCELED      = 4.
      OTF_TAB[] = JOB_OUTPUT_INFO-OTFDATA[].
      CALL FUNCTION 'CONVERT_OTF'
        EXPORTING
          FORMAT                = 'PDF'
        IMPORTING
          BIN_FILESIZE          = PDF_FSIZE
        TABLES
          OTF                   = OTF_TAB
          LINES                 = PDF_TABLE
        EXCEPTIONS
          ERR_MAX_LINEWIDTH     = 1
          ERR_FORMAT            = 2
          ERR_CONV_NOT_POSSIBLE = 3
          OTHERS                = 4.

    hi,
    please see the notes 999712.
    thanks

  • Text should appear  both in chinese and english language in smartform-Urgen

    Hi All,
    In my requirement in smart form, the standard text and values to be printed should appear both in english and chinese language.
    When my login language is EN(English), I cannot able to see the chinese text , but only the english text.
    If login in Chinese language, I can able to see the both the Chinese and English text in print preview, even then in printout the chinese text is missing.
    Please let me know what will be the problem.
    What printer i can use to get both chinese and english text.
    Thanks in advance
    Saravana

    Hi
    See the attached 2 OSS notes for your problem
    OSSNote:960341
    Symptom
    In some device types (e.g HPLJ4, HPLJ5) you experience non-uniform character spacing in the PDF document after the PDF conversion of SAPscript or Smart Forms documents, using HELVE or TIMES fonts. You want to know the reason.
    Other terms
    CONVERT_OTF, SAPscript, Smart Forms
    Reason and Prerequisites
    The problem is not due to an error in the PDF converter but due to the fact, that the printer font, underlying the device type (e.g. Univers or CG Times in PCL-5 device types), is not available for the PDF converter and is either not available in Adobe Reader. The PDF converter has to try to simulate the layout of the printer font by means of a font which is predefined in Adobe Reader. This is done by assigning the letter widths of the printer font to the font used in Adobe Reader.
    The PDF file contains a table with letter widths, used by Adobe Reader in the output of text, for each used printer font (except PostScript fonts).
    Example:
    %Charwidth values from HP4300 HELVE 060 normal
    /Widths
    [ 278 333 500 633 633 1000 758 333 333 333 633...
    Adobe reader converts this width table, by modifying the space between each character, so that the specified letter width (= space between the current and the next letter) is kept.
    This 'Simulation' of printer fonts results in the sometimes visible irregular spaces in PDF.
    The PDF converter always uses the Helvetica Adobe PostScript font for the display of HELVE and the Times Roman Adobe PostScript font for the display of TIMES. However, for these Adobe PostScript fonts, Adobe Reader often uses a Windows TrueType font, which differs slightly from the original PostScript font.
    Solution
    Workaround: Use the POST2 PostScript device type or the PDF1 PDF device type for the PDF conversion of documents in the Latin-1 character set. They both use the Adobe PostScript fonts Helvetica or Times Roman for the HELVE/TIMES printer fonts.
    Header Data
    Release Status: Released for Customer
    Released on: 30.06.2006  12:44:06
    Priority: Recommendations/additional info
    Category: Consulting
    Primary Component: BC-CCM-PRN Print and Output Management
    Secondary Components: BC-SRV-SCR SAPscript
    OSS Note: 776507
    Symptom
    Documents printed via SAPscript or SmartForms do not print with correct special characters, e.g. ### prints instead of Japanese or Russian characters. What to do?
    Other terms
    SAPscript, SmartForms, printing, device types, OTF
    Reason and Prerequisites
    Help required to choose proper fonts in a SAPscript or SmartForm
    Solution
    When using SAPscript or SmartForms to print (or email or fax) a form from a business application, many factors influence the outcome of the actual text within the form. All these factors must be checked in order to ensure a correct printout:
    1) The language version of the form used to produce the printout.
    Example: If you want to print a French invoice, you need to have a FR version of your SAPscript or SmartForms invoice form RVINVOICE01. And the application program must specify the corresponding language key (FR) when calling the SAPscript or SmartForms API.
    2) The font selections specified in the form (possibly also in a SAPscript style or SmartStyle used in a form).
    Example: In a SAPscript form or a SmartStyle you need to specify HELVE if you want to print German text in Helvetica (or similar) font. If you want to print Japanese text, HELVE is not a valid choice but you need to specify a Japanese font like JPMINCHO in your Japanese form.
    3) The output character set of the device type
    Every printer in transaction SPAD has a "device type" assigned. Device types used by the spooler for printing support only one single specific output character set. All text from the form has to be converted (using SAP's built-in character conversion mechanism) to this output character set.
    A character set can typically support either a single language (e.g. Shift-JIS which supports only Japanese) or a set of languages (e.g. ISO 8859-1, which supports Western-European languages). It is possible that a given language (such as German) can be supported by several output character sets, e.g. you may use either ISO 8895-1 (Latin-1) or ISO 8859-2 (Latin-2) to represent German text. This is so because both character sets contain the special characters used in German.
    Example: HPLJ4000 is a HP LaserJet device type supporting the ISO 8859-1 (Latin-1) character set. ISO 8859-1 can be used to represent e.g. Dutch, English, French, German, Spanish, Swedish but NOT Russian or Japanese.
    As a consequence, it is ok to use HPLJ4000 to print English, German French etc. but not for Japanese or Russian.
    4) The set of available printer fonts for a given device type
    When formatting a document, SAPscript and SmartForms perform an automatic mapping of the font definitions in the form (e.g. "HELVE 14 point bold") and the available printer fonts of the device type. A replacement printer font is chosen, should the specified font selection not be available in the device type. Now this replacement can be problematic if a language-specific font, such as Chinese CNSONG, is specified in a form and it gets replaced by a font which does not support this language, e.g. COURIER.
    To solve this problem, font families in SE73 have language attribute assigned, e.g. some fonts are characterized as being suitable only for certain languages. And when a replacement has to be chosen because the original font from the form is not available in the device type, a replacement font is chosen which has the same language attributes.
    If no fonts for the language in question exist in the device type, the resulting font will not be able to print the special characters and you will see "wrong" output characters in the printout.
    Note on SAPscript/SmartForms Print Preview:
    The OTF Print Preview available in Windows GUI (e.g. from transaction SP01) will sometimes not show the "wrong" characters which appear on the final printout. Here is the reason: since the Print Preview runs in Windows environment, it will use Windows fonts to represent the actual printer fonts. A Windows font typically has more available characters (i.e. covers more character sets) than are actually available in a printer's resident font.
    A typical example where the Print Preview will differ from the printout is here: if you have a Chinese PCL5 printer such as CNHPLJ4 and use the Western Latin font COURIER in your document, the print preview will show you Chinese characters if you (by accident) tried to format Chinese characters in COURIER font. This is because Windows will automatically choose a font that can output Chinese characters (which is actually not Courier). But when you print the job on an actual PCL5 printer with resident Western and Chinese fonts, the Courier font will not print any Chinese characters but Western special characters instead, because the printer's resident Courier font does not include Chinese characters.
    Rule of thumb: all Asian device types (e.g. CNHPLJ4, JPHPLJ4, JPPOST, KPHPLJ4) support not only Asian fonts but also COURIER, HELVE and TIMES fonts. But these Latin fonts can only be used to print English text, not Chinese/Japanese/Korean characters.
    Which fonts are suitable for a given language?
    Language(s):            Font family to use in a form:
    Latin-1 (Western Europe/Americas) *******
    DE,EN,FR,ES,NL,SV       COURIER, HELVE, TIMES
                            (LETGOTH, LNPRINT)
    Latin-2 (Central Europe) ****************
    PL, CZ                  COURIER, HELVE, TIMES
    ISO 8859-4 (Baltic) *********************
    ET, LT, LV              COURIER, HELVE, TIMES
    ISO 8859-5 (Cyrillic) *******************
    BG, RU, SR, UK          COURCYR, HELVCYR, TIMECYR
    ISO 8859-7 (Greek) **********************
    EL                      COUR_I7, HELV_I7, TIME_I7
    ISO 8859-8 (Hebrew) *********************
    HE                      COURIER, HELVE, TIMES
    ISO 8859-9 (Turkish) ********************
    TR                      COURIER, HELVE, TIMES
    Simplified Chinese **********************
    ZH                      CNHEI, CNKAI, CNSONG
    Japanese ********************************
    JA                      JPMINCHO, DBMINCHO, DBGOTHIC
    Korean **********************************
    KP                      KPBATANG, KPDODUM, KPGULIM
                            KPGUNGSE, KPSAMMUL
    Traditional Chinese *********************
    ZF                      TWDPHEI, TWMING, TWSONG
    Thai ************************************
    TH                      THANGSAN, THDRAFT, THVIJIT
    Arabic (Unicode systems only) ***********
    AR                      ANDALE_J
    Verify your output by examining the OTF data
    When analysing printing problems of this type, be sure to check the OTF data which gets produced by SAPscript or SmartForms. OTF or "Output Text Format" is the intermediate page-description format generated from SAPscript or SmartForms. OTF will contain the final printer font names and character set/language identifiers which help to solve the problem. OTF will even name the form and the language of the form used to create the output.
    The easiest way to do this is to create a spool request from your application, run transaction SP01, use menu
    Goto->Display Requests->Settings
    and choose
    Display Mode: Raw
    Now display your spool request. If this is a SAPscript or SmartForms spool request, you will see OTF data. Each line represents one OTF command, every command starts with a 2-character cmd identifier and possibly some cmd parameters follow.
    Here is an excerpt from a sample OTF file where we highlight the most interesting commands:
    //XHPLJ8000    0700 00000000001
    IN04EALEXTEST_ZEBRA
    IN05%PAGE1
    OPDINA4  P 144  240 1683811906000010000100001
    IN06%WINDOW2
    MT0024401289
    CP11000000E
    FCHELVE  120  00109XSF100SF101110000067E X
    UL +0000000000000
    SW00067
    CT00000000
    ST0453037Dieses SF hat Stil ALEXTEST_ZEBRA mit
    The 1st line with the // (Control) command reveals the device type usedto print: HPLJ8000
    //XHPLJ8000    0700 00000000001
    The 2nd line (IN = Info command) shows the name and (internal 1-char)language key of the form:
    IN04EALEXTEST_ZEBRA
    In this case it is the English (E = EN) SmartForm ALEXTEST_ZEBRA
    The OP-line (OP = Open Page) gives the page format used in the form, it is DINA4 Portrait orientation:
    OPDINA4  P 144  240 1683811906000010000100001
    The CP (CodePage) cmd shows the SAP system codepage used to code the text and the active language. In our case it is codepage 1100 and language E = EN = English.
    CP11000000E
    Finally, the FC-cmd (Font Call) lists a printer font selected within SmartForms. Please note that every SmartForm has a designated default SmartStyle under "Form Attributes->Output Options". In addition, every text node can have a SmartStyle attached (which will override the definitions from the default style for the text). In our case the resulting printer font that was selected is HELVE 12.0 pt bold-off, italic-off.
    FCHELVE   120  00109XSF100SF101110000067E X
    Header Data
    Release Status: Released for Customer
    Released on: 22.08.2005  09:57:20
    Priority: Recommendations/additional info
    Category: Customizing
    Primary Component: BC-CCM-PRN Print and Output Management
    Secondary Components: BC-SRV-SCR SAPscript
    BC-SRV-SSF Smart Forms
    reward if useful
    regards,
    ANJI

  • Smartform-PDF-Printer fonts

    Hi Folks,
    Here we have designed a Invoice-smartform and converted it into PDF which is by default storing in c-drive as mentioned in the code.When we open the Pdf it is displaying it fine but when given a printout except the logo nothing is getting printed,I mean it is showing all junk characters.May I know what is the problem and how to rectify the same.
    Points will be given.
    K.Kiran.

    Hi Kiran, see the OSS notes: 960341 and 776507.
    I downloaded and copying here, Hope this will be helpful
    OSSNote:960341
    Symptom
    In some device types (e.g HPLJ4, HPLJ5) you experience non-uniform character spacing in the PDF document after the PDF conversion of SAPscript or Smart Forms documents, using HELVE or TIMES fonts. You want to know the reason.
    Other terms
    CONVERT_OTF, SAPscript, Smart Forms
    Reason and Prerequisites
    The problem is not due to an error in the PDF converter but due to the fact, that the printer font, underlying the device type (e.g. Univers or CG Times in PCL-5 device types), is not available for the PDF converter and is either not available in Adobe Reader. The PDF converter has to try to simulate the layout of the printer font by means of a font which is predefined in Adobe Reader. This is done by assigning the letter widths of the printer font to the font used in Adobe Reader.
    The PDF file contains a table with letter widths, used by Adobe Reader in the output of text, for each used printer font (except PostScript fonts).
    Example:
    %Charwidth values from HP4300 HELVE 060 normal
    /Widths
    [ 278 333 500 633 633 1000 758 333 333 333 633...
    Adobe reader converts this width table, by modifying the space between each character, so that the specified letter width (= space between the current and the next letter) is kept.
    This 'Simulation' of printer fonts results in the sometimes visible irregular spaces in PDF.
    The PDF converter always uses the Helvetica Adobe PostScript font for the display of HELVE and the Times Roman Adobe PostScript font for the display of TIMES. However, for these Adobe PostScript fonts, Adobe Reader often uses a Windows TrueType font, which differs slightly from the original PostScript font.
    Solution
    Workaround: Use the POST2 PostScript device type or the PDF1 PDF device type for the PDF conversion of documents in the Latin-1 character set. They both use the Adobe PostScript fonts Helvetica or Times Roman for the HELVE/TIMES printer fonts.
    Header Data
    Release Status: Released for Customer
    Released on: 30.06.2006  12:44:06
    Priority: Recommendations/additional info
    Category: Consulting
    Primary Component: BC-CCM-PRN Print and Output Management
    Secondary Components: BC-SRV-SCR SAPscript
    OSS Note: 776507
    Symptom
    Documents printed via SAPscript or SmartForms do not print with correct special characters, e.g. ### prints instead of Japanese or Russian characters. What to do?
    Other terms
    SAPscript, SmartForms, printing, device types, OTF
    Reason and Prerequisites
    Help required to choose proper fonts in a SAPscript or SmartForm
    Solution
    When using SAPscript or SmartForms to print (or email or fax) a form from a business application, many factors influence the outcome of the actual text within the form. All these factors must be checked in order to ensure a correct printout:
    1) The language version of the form used to produce the printout.
    Example: If you want to print a French invoice, you need to have a FR version of your SAPscript or SmartForms invoice form RVINVOICE01. And the application program must specify the corresponding language key (FR) when calling the SAPscript or SmartForms API.
    2) The font selections specified in the form (possibly also in a SAPscript style or SmartStyle used in a form).
    Example: In a SAPscript form or a SmartStyle you need to specify HELVE if you want to print German text in Helvetica (or similar) font. If you want to print Japanese text, HELVE is not a valid choice but you need to specify a Japanese font like JPMINCHO in your Japanese form.
    3) The output character set of the device type
    Every printer in transaction SPAD has a "device type" assigned. Device types used by the spooler for printing support only one single specific output character set. All text from the form has to be converted (using SAP's built-in character conversion mechanism) to this output character set.
    A character set can typically support either a single language (e.g. Shift-JIS which supports only Japanese) or a set of languages (e.g. ISO 8859-1, which supports Western-European languages). It is possible that a given language (such as German) can be supported by several output character sets, e.g. you may use either ISO 8895-1 (Latin-1) or ISO 8859-2 (Latin-2) to represent German text. This is so because both character sets contain the special characters used in German.
    Example: HPLJ4000 is a HP LaserJet device type supporting the ISO 8859-1 (Latin-1) character set. ISO 8859-1 can be used to represent e.g. Dutch, English, French, German, Spanish, Swedish but NOT Russian or Japanese.
    As a consequence, it is ok to use HPLJ4000 to print English, German French etc. but not for Japanese or Russian.
    4) The set of available printer fonts for a given device type
    When formatting a document, SAPscript and SmartForms perform an automatic mapping of the font definitions in the form (e.g. "HELVE 14 point bold") and the available printer fonts of the device type. A replacement printer font is chosen, should the specified font selection not be available in the device type. Now this replacement can be problematic if a language-specific font, such as Chinese CNSONG, is specified in a form and it gets replaced by a font which does not support this language, e.g. COURIER.
    To solve this problem, font families in SE73 have language attribute assigned, e.g. some fonts are characterized as being suitable only for certain languages. And when a replacement has to be chosen because the original font from the form is not available in the device type, a replacement font is chosen which has the same language attributes.
    If no fonts for the language in question exist in the device type, the resulting font will not be able to print the special characters and you will see "wrong" output characters in the printout.
    Note on SAPscript/SmartForms Print Preview:
    The OTF Print Preview available in Windows GUI (e.g. from transaction SP01) will sometimes not show the "wrong" characters which appear on the final printout. Here is the reason: since the Print Preview runs in Windows environment, it will use Windows fonts to represent the actual printer fonts. A Windows font typically has more available characters (i.e. covers more character sets) than are actually available in a printer's resident font.
    A typical example where the Print Preview will differ from the printout is here: if you have a Chinese PCL5 printer such as CNHPLJ4 and use the Western Latin font COURIER in your document, the print preview will show you Chinese characters if you (by accident) tried to format Chinese characters in COURIER font. This is because Windows will automatically choose a font that can output Chinese characters (which is actually not Courier). But when you print the job on an actual PCL5 printer with resident Western and Chinese fonts, the Courier font will not print any Chinese characters but Western special characters instead, because the printer's resident Courier font does not include Chinese characters.
    Rule of thumb: all Asian device types (e.g. CNHPLJ4, JPHPLJ4, JPPOST, KPHPLJ4) support not only Asian fonts but also COURIER, HELVE and TIMES fonts. But these Latin fonts can only be used to print English text, not Chinese/Japanese/Korean characters.
    Which fonts are suitable for a given language?
    Language(s):            Font family to use in a form:
    Latin-1 (Western Europe/Americas) *******
    DE,EN,FR,ES,NL,SV       COURIER, HELVE, TIMES
                            (LETGOTH, LNPRINT)
    Latin-2 (Central Europe) ****************
    PL, CZ                  COURIER, HELVE, TIMES
    ISO 8859-4 (Baltic) *********************
    ET, LT, LV              COURIER, HELVE, TIMES
    ISO 8859-5 (Cyrillic) *******************
    BG, RU, SR, UK          COURCYR, HELVCYR, TIMECYR
    ISO 8859-7 (Greek) **********************
    EL                      COUR_I7, HELV_I7, TIME_I7
    ISO 8859-8 (Hebrew) *********************
    HE                      COURIER, HELVE, TIMES
    ISO 8859-9 (Turkish) ********************
    TR                      COURIER, HELVE, TIMES
    Simplified Chinese **********************
    ZH                      CNHEI, CNKAI, CNSONG
    Japanese ********************************
    JA                      JPMINCHO, DBMINCHO, DBGOTHIC
    Korean **********************************
    KP                      KPBATANG, KPDODUM, KPGULIM
                            KPGUNGSE, KPSAMMUL
    Traditional Chinese *********************
    ZF                      TWDPHEI, TWMING, TWSONG
    Thai ************************************
    TH                      THANGSAN, THDRAFT, THVIJIT
    Arabic (Unicode systems only) ***********
    AR                      ANDALE_J
    Verify your output by examining the OTF data
    When analysing printing problems of this type, be sure to check the OTF data which gets produced by SAPscript or SmartForms. OTF or "Output Text Format" is the intermediate page-description format generated from SAPscript or SmartForms. OTF will contain the final printer font names and character set/language identifiers which help to solve the problem. OTF will even name the form and the language of the form used to create the output.
    The easiest way to do this is to create a spool request from your application, run transaction SP01, use menu
    Goto->Display Requests->Settings
    and choose
    Display Mode: Raw
    Now display your spool request. If this is a SAPscript or SmartForms spool request, you will see OTF data. Each line represents one OTF command, every command starts with a 2-character cmd identifier and possibly some cmd parameters follow.
    Here is an excerpt from a sample OTF file where we highlight the most interesting commands:
    //XHPLJ8000    0700 00000000001
    IN04EALEXTEST_ZEBRA
    IN05%PAGE1
    OPDINA4  P 144  240 1683811906000010000100001
    IN06%WINDOW2
    MT0024401289
    CP11000000E
    FCHELVE  120  00109XSF100SF101110000067E X
    UL +0000000000000
    SW00067
    CT00000000
    ST0453037Dieses SF hat Stil ALEXTEST_ZEBRA mit
    The 1st line with the // (Control) command reveals the device type usedto print: HPLJ8000
    //XHPLJ8000    0700 00000000001
    The 2nd line (IN = Info command) shows the name and (internal 1-char)language key of the form:
    IN04EALEXTEST_ZEBRA
    In this case it is the English (E = EN) SmartForm ALEXTEST_ZEBRA
    The OP-line (OP = Open Page) gives the page format used in the form, it is DINA4 Portrait orientation:
    OPDINA4  P 144  240 1683811906000010000100001
    The CP (CodePage) cmd shows the SAP system codepage used to code the text and the active language. In our case it is codepage 1100 and language E = EN = English.
    CP11000000E
    Finally, the FC-cmd (Font Call) lists a printer font selected within SmartForms. Please note that every SmartForm has a designated default SmartStyle under "Form Attributes->Output Options". In addition, every text node can have a SmartStyle attached (which will override the definitions from the default style for the text). In our case the resulting printer font that was selected is HELVE 12.0 pt bold-off, italic-off.
    FCHELVE   120  00109XSF100SF101110000067E X
    Header Data
    Release Status: Released for Customer
    Released on: 22.08.2005  09:57:20
    Priority: Recommendations/additional info
    Category: Customizing
    Primary Component: BC-CCM-PRN Print and Output Management
    Secondary Components: BC-SRV-SCR SAPscript
    BC-SRV-SSF Smart Forms
    regards,
    Anji

  • Smartform output showing another language rather than english

    Hi Experts,
    in my system if any of the smartform/script output want to see it showing another language.it's not showing in english language.same smartform in my friend's system it is showing english only.
    Please suggest me the solution.
    Thanks in advance,
    Venkat.

    Hi
    See the attached 2 OSS notes for your problem
    OSSNote:960341
    Symptom
    In some device types (e.g HPLJ4, HPLJ5) you experience non-uniform character spacing in the PDF document after the PDF conversion of SAPscript or Smart Forms documents, using HELVE or TIMES fonts. You want to know the reason.
    Other terms
    CONVERT_OTF, SAPscript, Smart Forms
    Reason and Prerequisites
    The problem is not due to an error in the PDF converter but due to the fact, that the printer font, underlying the device type (e.g. Univers or CG Times in PCL-5 device types), is not available for the PDF converter and is either not available in Adobe Reader. The PDF converter has to try to simulate the layout of the printer font by means of a font which is predefined in Adobe Reader. This is done by assigning the letter widths of the printer font to the font used in Adobe Reader.
    The PDF file contains a table with letter widths, used by Adobe Reader in the output of text, for each used printer font (except PostScript fonts).
    Example:
    %Charwidth values from HP4300 HELVE 060 normal
    /Widths
    [ 278 333 500 633 633 1000 758 333 333 333 633...
    Adobe reader converts this width table, by modifying the space between each character, so that the specified letter width (= space between the current and the next letter) is kept.
    This 'Simulation' of printer fonts results in the sometimes visible irregular spaces in PDF.
    The PDF converter always uses the Helvetica Adobe PostScript font for the display of HELVE and the Times Roman Adobe PostScript font for the display of TIMES. However, for these Adobe PostScript fonts, Adobe Reader often uses a Windows TrueType font, which differs slightly from the original PostScript font.
    Solution
    Workaround: Use the POST2 PostScript device type or the PDF1 PDF device type for the PDF conversion of documents in the Latin-1 character set. They both use the Adobe PostScript fonts Helvetica or Times Roman for the HELVE/TIMES printer fonts.
    Header Data
    Release Status: Released for Customer
    Released on: 30.06.2006 12:44:06
    Priority: Recommendations/additional info
    Category: Consulting
    Primary Component: BC-CCM-PRN Print and Output Management
    Secondary Components: BC-SRV-SCR SAPscript
    OSS Note: 776507
    Symptom
    Documents printed via SAPscript or SmartForms do not print with correct special characters, e.g. ### prints instead of Japanese or Russian characters. What to do?
    Other terms
    SAPscript, SmartForms, printing, device types, OTF
    Reason and Prerequisites
    Help required to choose proper fonts in a SAPscript or SmartForm
    Solution
    When using SAPscript or SmartForms to print (or email or fax) a form from a business application, many factors influence the outcome of the actual text within the form. All these factors must be checked in order to ensure a correct printout:
    1) The language version of the form used to produce the printout.
    Example: If you want to print a French invoice, you need to have a FR version of your SAPscript or SmartForms invoice form RVINVOICE01. And the application program must specify the corresponding language key (FR) when calling the SAPscript or SmartForms API.
    2) The font selections specified in the form (possibly also in a SAPscript style or SmartStyle used in a form).
    Example: In a SAPscript form or a SmartStyle you need to specify HELVE if you want to print German text in Helvetica (or similar) font. If you want to print Japanese text, HELVE is not a valid choice but you need to specify a Japanese font like JPMINCHO in your Japanese form.
    3) The output character set of the device type
    Every printer in transaction SPAD has a "device type" assigned. Device types used by the spooler for printing support only one single specific output character set. All text from the form has to be converted (using SAP's built-in character conversion mechanism) to this output character set.
    A character set can typically support either a single language (e.g. Shift-JIS which supports only Japanese) or a set of languages (e.g. ISO 8859-1, which supports Western-European languages). It is possible that a given language (such as German) can be supported by several output character sets, e.g. you may use either ISO 8895-1 (Latin-1) or ISO 8859-2 (Latin-2) to represent German text. This is so because both character sets contain the special characters used in German.
    Example: HPLJ4000 is a HP LaserJet device type supporting the ISO 8859-1 (Latin-1) character set. ISO 8859-1 can be used to represent e.g. Dutch, English, French, German, Spanish, Swedish but NOT Russian or Japanese.
    As a consequence, it is ok to use HPLJ4000 to print English, German French etc. but not for Japanese or Russian.
    4) The set of available printer fonts for a given device type
    When formatting a document, SAPscript and SmartForms perform an automatic mapping of the font definitions in the form (e.g. "HELVE 14 point bold") and the available printer fonts of the device type. A replacement printer font is chosen, should the specified font selection not be available in the device type. Now this replacement can be problematic if a language-specific font, such as Chinese CNSONG, is specified in a form and it gets replaced by a font which does not support this language, e.g. COURIER.
    To solve this problem, font families in SE73 have language attribute assigned, e.g. some fonts are characterized as being suitable only for certain languages. And when a replacement has to be chosen because the original font from the form is not available in the device type, a replacement font is chosen which has the same language attributes.
    If no fonts for the language in question exist in the device type, the resulting font will not be able to print the special characters and you will see "wrong" output characters in the printout.
    Note on SAPscript/SmartForms Print Preview:
    The OTF Print Preview available in Windows GUI (e.g. from transaction SP01) will sometimes not show the "wrong" characters which appear on the final printout. Here is the reason: since the Print Preview runs in Windows environment, it will use Windows fonts to represent the actual printer fonts. A Windows font typically has more available characters (i.e. covers more character sets) than are actually available in a printer's resident font.
    A typical example where the Print Preview will differ from the printout is here: if you have a Chinese PCL5 printer such as CNHPLJ4 and use the Western Latin font COURIER in your document, the print preview will show you Chinese characters if you (by accident) tried to format Chinese characters in COURIER font. This is because Windows will automatically choose a font that can output Chinese characters (which is actually not Courier). But when you print the job on an actual PCL5 printer with resident Western and Chinese fonts, the Courier font will not print any Chinese characters but Western special characters instead, because the printer's resident Courier font does not include Chinese characters.
    Rule of thumb: all Asian device types (e.g. CNHPLJ4, JPHPLJ4, JPPOST, KPHPLJ4) support not only Asian fonts but also COURIER, HELVE and TIMES fonts. But these Latin fonts can only be used to print English text, not Chinese/Japanese/Korean characters.
    Which fonts are suitable for a given language?
    Language(s): Font family to use in a form:
    Latin-1 (Western Europe/Americas) *******
    DE,EN,FR,ES,NL,SV COURIER, HELVE, TIMES
    (LETGOTH, LNPRINT)
    Latin-2 (Central Europe) ****************
    PL, CZ COURIER, HELVE, TIMES
    ISO 8859-4 (Baltic) *********************
    ET, LT, LV COURIER, HELVE, TIMES
    ISO 8859-5 (Cyrillic) *******************
    BG, RU, SR, UK COURCYR, HELVCYR, TIMECYR
    ISO 8859-7 (Greek) **********************
    EL COUR_I7, HELV_I7, TIME_I7
    ISO 8859-8 (Hebrew) *********************
    HE COURIER, HELVE, TIMES
    ISO 8859-9 (Turkish) ********************
    TR COURIER, HELVE, TIMES
    Simplified Chinese **********************
    ZH CNHEI, CNKAI, CNSONG
    Japanese ********************************
    JA JPMINCHO, DBMINCHO, DBGOTHIC
    Korean **********************************
    KP KPBATANG, KPDODUM, KPGULIM
    KPGUNGSE, KPSAMMUL
    Traditional Chinese *********************
    ZF TWDPHEI, TWMING, TWSONG
    Thai ************************************
    TH THANGSAN, THDRAFT, THVIJIT
    Arabic (Unicode systems only) ***********
    AR ANDALE_J
    Verify your output by examining the OTF data
    When analysing printing problems of this type, be sure to check the OTF data which gets produced by SAPscript or SmartForms. OTF or "Output Text Format" is the intermediate page-description format generated from SAPscript or SmartForms. OTF will contain the final printer font names and character set/language identifiers which help to solve the problem. OTF will even name the form and the language of the form used to create the output.
    The easiest way to do this is to create a spool request from your application, run transaction SP01, use menu
    Goto->Display Requests->Settings
    and choose
    Display Mode: Raw
    Now display your spool request. If this is a SAPscript or SmartForms spool request, you will see OTF data. Each line represents one OTF command, every command starts with a 2-character cmd identifier and possibly some cmd parameters follow.
    Here is an excerpt from a sample OTF file where we highlight the most interesting commands:
    //XHPLJ8000 0700 00000000001
    IN04EALEXTEST_ZEBRA
    IN05%PAGE1
    OPDINA4 P 144 240 1683811906000010000100001
    IN06%WINDOW2
    MT0024401289
    CP11000000E
    FCHELVE 120 00109XSF100SF101110000067E X
    UL +0000000000000
    SW00067
    CT00000000
    ST0453037Dieses SF hat Stil ALEXTEST_ZEBRA mit
    The 1st line with the // (Control) command reveals the device type usedto print: HPLJ8000
    //XHPLJ8000 0700 00000000001
    The 2nd line (IN = Info command) shows the name and (internal 1-char)language key of the form:
    IN04EALEXTEST_ZEBRA
    In this case it is the English (E = EN) SmartForm ALEXTEST_ZEBRA
    The OP-line (OP = Open Page) gives the page format used in the form, it is DINA4 Portrait orientation:
    OPDINA4 P 144 240 1683811906000010000100001
    The CP (CodePage) cmd shows the SAP system codepage used to code the text and the active language. In our case it is codepage 1100 and language E = EN = English.
    CP11000000E
    Finally, the FC-cmd (Font Call) lists a printer font selected within SmartForms. Please note that every SmartForm has a designated default SmartStyle under "Form Attributes->Output Options". In addition, every text node can have a SmartStyle attached (which will override the definitions from the default style for the text). In our case the resulting printer font that was selected is HELVE 12.0 pt bold-off, italic-off.
    FCHELVE 120 00109XSF100SF101110000067E X
    Header Data
    Release Status: Released for Customer
    Released on: 22.08.2005 09:57:20
    Priority: Recommendations/additional info
    Category: Customizing
    Primary Component: BC-CCM-PRN Print and Output Management
    Secondary Components: BC-SRV-SCR SAPscript
    BC-SRV-SSF Smart Forms
    <b>Reward points</b>
    Regards

  • Smartforms for picking list

    Hi,
    Someone knows smartforms and its program for picking list?.
    I don't want to use sapscript SD_PICK_COLL and its program RVADSK01.
    Thanks very much.
    Matteo Vernile.

    hi,
    go through this code.
    Program Description:                                     *
    A packing list is printed for each outbound delivery.    *
    Before the delivery is made to a customer the goods are  *
    packed in a box or any other container and to have a     *
    list of products put in the package packing list is      *
    required. This packing list will be printed upon pick    *
    confirmation or at a time the delivery note is created.  *
    REPORT  z_sd_rep_000002 MESSAGE-ID zdevmsg.
    ********************TABLES USED***************************************
    TABLES:   likp,       "SD Document: Delivery Header Data
              lips,       "SD document: Delivery: Item data
              vbak,       "Sales Document: Header Data
              vbpa,       "Sales Document: Partner
              vbuk,       "Sales Document: Header Status and Admin Data
              vttp,       "Shipment Item
              vttk,       "Shipment Header,
              adrc,       "Addresses (Business Address Services)
              tvst,       "Organizational Unit: Shipping Points
              vbfa,       "Sales Document Flow
              kna1,       "General Data in Customer Master
              vepo,       "Packing: Handling Unit Item (Contents)
              vekp.       "Handling Unit - Header Table
    INCLUDE rvadtabl.
    ********************WORK AREA*****************************************
    DATA    : wa_zpacklist TYPE  zpacklist,  "structure to hold all the data
                                             "that has to be passed to the
                                             "smart form
              wa_item TYPE LINE OF zitempack."workarea of main item struct
    DATA    : wa_item_lips TYPE LINE OF zitempack."wrkarea for data selected
    "from LIPS table
    ********************INTERNAL TABLE************************************
    DATA    : i_item_lips TYPE zitempack,       "Internal table for data
                                                "selected from LIPS table
              i_item TYPE   zitempack.          "main internal table for
    "items data.
    *****************************CONSTANTS********************************
    CONSTANTS : c_posnn(1)        TYPE c VALUE 'J',
    YATHAM6 Insert Begin
                c_vbtyp_v(1)      type c VALUE 'C',
    YATHAM6 Insert End
                c_parvw_stp       TYPE vbpa-parvw VALUE 'AG',
                c_parvw_shp       TYPE vbpa-parvw VALUE 'WE',
                c_formname        TYPE tdsfname VALUE 'Z_PACKINGLIST',
                c_zdevmsg         TYPE SY-MSGID value 'ZDEVMSG',
                c_e               TYPE SY-MSGTY VALUE 'E',
                c_000             TYPE SY-MSGNO VALUE '000',
                c_X(1)            TYPE c VALUE 'X',
                c_fully_picked(1) TYPE c VALUE 'C'.
    ***************************GLOBAL VARIABLE****************************
    DATA    : v_objnm         LIKE   thead-tdname,
              v_tknum_tmp     LIKE   vttp-tknum,
              v_formname      TYPE   rs38l_fnam,
              v_venum         TYPE vekp-venum,
              v_screen,        "Output on printer or screen
              v_picked(1).
    ************************MAIN PROGRAM ***********************************
    FORM entry USING return_code us_screen.
      DATA: v_retcode TYPE sy-subrc.
      CLEAR v_retcode.
    Clear any previous data.
      CLEAR wa_zpacklist.
      v_screen = us_screen.
    Check whether the Delivery number is already been picked.If it is
    picked the set the print parameters
      PERFORM processing USING us_screen
                         CHANGING v_retcode.
      IF v_retcode NE 0.
        return_code = 1.
      ELSE.
        return_code = 0.
      ENDIF.
    ENDFORM.                    "ENTRY
    *&      Form  PROCESSING
    Check whether the Delivery number is already been picked.If it is
    picked the set the print parameters
    FORM processing  USING    us_screen
                     CHANGING v_retcode.
      DATA: v_fm_name            TYPE rs38l_fnam.
      DATA: v_control_param      TYPE ssfctrlop.
      DATA: v_composer_param     TYPE ssfcompop.
      DATA: v_recipient          TYPE swotobjid.
      DATA: v_sender             TYPE swotobjid.
      DATA: v_formname           TYPE tdsfname .
    get SmartForm from customizing table TNAPR
      v_formname = tnapr-sform.
    Check whether the delivery number has been picked.If it is picked
    select the relevant data for that delivery number
      PERFORM get_data CHANGING v_retcode.
      CHECK v_retcode EQ 0.
    Set the print parameters for Smartform
      PERFORM set_print_param CHANGING v_control_param
                                       v_composer_param
                                       v_recipient
                                       v_sender
                                       v_retcode.
    Check whether the Smart form exists.
      CALL FUNCTION 'SSF_FUNCTION_MODULE_NAME'
      EXPORTING
        formname                 = c_formname
        VARIANT                  = ' '
        DIRECT_CALL              = ' '
    IMPORTING
       fm_name                  = v_formname
      EXCEPTIONS
        NO_FORM                  = 1
        NO_FUNCTION_MODULE       = 2
        OTHERS                   = 3
      IF sy-subrc <> 0.
        v_retcode = sy-subrc.
        PERFORM protocol_update.
      ENDIF.
    Check the structure wa_zpacklist for data.
      IF NOT wa_zpacklist IS INITIAL.
        CALL FUNCTION v_formname
          EXPORTING
            archive_index      = toa_dara
            archive_parameters = arc_params
            control_parameters = v_control_param
            mail_recipient     = v_recipient
            mail_sender        = v_sender
            output_options     = v_composer_param
            user_settings      = ' '
            wa_zpacklist               = wa_zpacklist
          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.
            error handling
          v_retcode = sy-subrc.
          PERFORM protocol_update.
        ENDIF.
      ELSE.
        IF v_screen = space.
          CALL FUNCTION 'NAST_PROTOCOL_INIT_AND_LOAD'
            EXPORTING
              cps_nast = nast.
          CALL FUNCTION 'NAST_PROTOCOL_UPDATE'
            EXPORTING
              msg_arbgb = c_ZDEVMSG
              msg_nr    = c_000
              msg_ty    = c_E
              msg_v1    = syst-msgv1
              msg_v2    = syst-msgv2
              msg_v3    = syst-msgv3
              msg_v4    = syst-msgv4
            EXCEPTIONS
              OTHERS    = 1.
        ELSE.
          MESSAGE e000 WITH 'No Data Exists, to Display Output'(002).
        ENDIF.                    " IF v_screen = space.
      ENDIF.                  " if not wa_zpacklist[] is initial
    ENDFORM.                    " PROCESSING
    *&      Form  get_data
    Check whether the delivery number has been picked.If it is picked
    select the relevant data for that delivery number
    FORM get_data  CHANGING v_retcode.
    This is the Input obtained from the NAST entry, Delivery Number
      wa_zpacklist-vbeln = nast-objky.
      CLEAR v_picked.
    Check if the Delivery has Not been Picked, if not then Do Not Display
    the Layout and display an Error Message
      CLEAR vbuk.
      SELECT SINGLE kostk
        FROM vbuk
        INTO vbuk-kostk
        WHERE vbeln EQ wa_zpacklist-vbeln.
    The Picking should Not be Processed, Else Display a Msg
      IF vbuk-kostk NE c_fully_picked AND vbuk-kostk NE space.
        v_picked = c_X.
        v_retcode = 1.
        IF v_screen = space.
          CALL FUNCTION 'NAST_PROTOCOL_INIT_AND_LOAD'
            EXPORTING
              cps_nast = nast.
          CALL FUNCTION 'NAST_PROTOCOL_UPDATE'
            EXPORTING
              msg_arbgb = c_ZDEVMSG
              msg_nr    = c_000
              msg_ty    = c_E
              msg_v1    = syst-msgv1
              msg_v2    = syst-msgv2
              msg_v3    = syst-msgv3
              msg_v4    = syst-msgv4
            EXCEPTIONS
              OTHERS    = 1.
        ELSE.
          MESSAGE e000 WITH
                    'Delivery has not been Picked-Please Check'(001).
        ENDIF.
      ENDIF.
      CHECK v_retcode = 0.
    get all the header related data from LIKP,VBAK,VBFA,VTTP,VTTK
      PERFORM get_header_data.
    get the address numbers for shipping point ,ship-to-party and
    sold-to-party from VBFA,TVST tables
      PERFORM get_addr_no.
    get all the item details from VBAP ,LIPS
      PERFORM get_item_data.
    ENDFORM.                    " get_data
    *&      Form  get_header_data
    Get all the header related data from LIKP,VBAK,VBFA,VTTP,VTTK
    FORM get_header_data.
    select the header data from LIKP based on Delivery number.
    select the following fields and put it into workarea wa_zpacklist.
      SELECT SINGLE vbeln          "Delivery number
                    kunnr          "Sold to party
                    kunag          "Shipt to party
                    inco1          "Inco term
                    inco2          "Inco term 2
                    btgew          "Total Weight
                    gewei          "Net weight
                    anzpk          "Total noumber of packages in delivery
                    vkorg          "Sales Organization
                    vstel          "Shipping Point/Receiving Point
                    bldat          "Date on which the Docu. was created
               FROM likp
               INTO CORRESPONDING FIELDS OF wa_zpacklist
              WHERE vbeln = wa_zpacklist-vbeln.
    to get Purchase order number (BSTNK),
          Sales order number (VBELV),
          Contract number (VBELN_GRP),
          Customer order date first get the Sales document from VBFA
    using Delivery number (LIKP-VBELN) and VBTYP_N in the where clause.
    YATHAM6 Del Begin - D47K910351 05/12/2004
    SELECT SINGLE  vbelv          "Sales Document
              INTO  wa_zpacklist-vbelv
              FROM  vbfa
              WHERE vbeln   = wa_zpacklist-vbeln
              AND   vbtyp_n = c_posnn
    YATHAM6 Insert Begin - 04/15/2004
    Preceding Document category only Order need to be selected
    Without this it is selecting Quote and/or Inquiry because of
    Select single (Which would select the first entry)
              AND   vbtyp_v = c_vbtyp_v.
    YATHAM6 Insert End - 04/15/2004
    YATHAM6 Del End - D47K910351 05/12/2004
    YATHAM6 Insert Begin - D47K910351 05/12/2004
    When a Sales order is created with reference to another sales order
    two precding document categorys will be available for a delivery.
    Example: Order with subsequent delivery free of charge
    Need to get latest preceding document. This change was made to pull
    correct preceding document which will be on delivery line item.
    All delivery items will have the same preceding document number.
        select single vgbel from lips into wa_zpacklist-vbelv
              where vbeln = wa_zpacklist-vbeln.
    YATHAM6 Insert End   - D47K910351 05/12/2004
      SELECT SINGLE bstnk           "Customer purchase order number
                    vbeln_grp       "Master Contract NUmber
                    bstdk           "Customer Order date
             INTO  (wa_zpacklist-bstnk,
                     wa_zpacklist-vbeln_grp,
                     wa_zpacklist-bstdk)
             FROM  vbak
             WHERE vbeln = wa_zpacklist-vbelv.
    select shipment number from VTTP table using wa_zpaclist-vbeln in the
    where clause.
      SELECT tknum                  "Shipment Number
             FROM   vttp
             UP TO 1 ROWS
             INTO   wa_zpacklist-tknum_tmp
             WHERE  vbeln = wa_zpacklist-vbeln.
      ENDSELECT.
    for this value of wa_zpacklist-tknum_tmp select
    External identification 2
    Shipping type
    Number of forwarding agent
    from VTTK
      SELECT SINGLE exti2          "External identification 2
                    vsart          "Shipping type
                    tdlnr          "Number of forwarding agent
             INTO   (wa_zpacklist-exti2,
                     wa_zpacklist-vsart,
                     wa_zpacklist-tdlnr)
             FROM   vttk
             WHERE  tknum = wa_zpacklist-tknum_tmp.
    get the packing date from VEkP table for which Internal Handling
    Unit Number(VENUM) is required from VEPO table.
    get the value from VEPO table for the delivery number.
      SELECT venum
             UP TO 1 ROWS
             FROM vepo
             INTO v_venum
             WHERE vbeln = wa_zpacklist-vbeln.
        EXIT.
      ENDSELECT.
      CHECK sy-subrc = 0.
      SELECT SINGLE erdat
             FROM   vekp
             INTO   wa_zpacklist-erdat
             WHERE  venum = v_venum.
    ENDFORM.                    " get_header
    *&      Form  get_item
    Get all the item details from VBAP ,LIPS
    FORM get_item_data.
    refresh the internal tables of item data.
    data: v_tabix like sy-tabix.   "YATHAM6 Insert 03/31/2004
      REFRESH : i_item,
                i_item_lips.
    get the item details from VBAP table based on the sales document
    number(VBELV) and store the data in i_item
      SELECT   posnr             "Sales Document Item
               posex             "Item Number of the Underlying Purchase
                                 "Order
               kwmeng            "Quantity Ordered
               kdmat             "Customer Item Number
        INTO   CORRESPONDING FIELDS OF
        TABLE  i_item
        FROM   vbap
        WHERE  vbeln EQ wa_zpacklist-vbelv.
    get the item details from LIPS based on Delivery number and
    ZZCATNO(Catalog numer)from mara using an inner join between LIPS and
    MARA using matnr as key
    *Begin of GONAGUNTLA2 - @0001 02/11/2004 D47K906487
    SELECT   a~vbeln          "Delivery Number
              a~vtweg          "Distribution Channel
              a~posnr          "Delivery item
              a~lfimg          "Actual quantity delivered (in sales units)
              a~matnr          "Material Number
              b~zzcatno        "Catlog Number for each material
              FROM lips AS a
              INNER JOIN
              mara AS b
         ON   amatnr = bmatnr
        INTO  CORRESPONDING FIELDS OF
       TABLE  i_item_lips
       WHERE  a~vbeln = wa_zpacklist-vbeln.
      SELECT     a~vbeln          "Delivery Number
                 a~vtweg          "Distribution Channel
                 a~posnr          "Delivery item
                 a~pstyv          "Delivery item category
                 a~lfimg
                 "Actual quantity delivered (in sales units)
                 a~matnr          "Material Number
                 a~uepos
                 "Higher-level item in bill of material structures
                 a~vgpos          "Sales order line item
                 b~zzcatno        "Catlog Number for each material
                 FROM lips AS a
                 INNER JOIN
                 mara AS b
            ON   amatnr = bmatnr
           INTO  CORRESPONDING FIELDS OF
          TABLE  i_item_lips
          WHERE  a~vbeln = wa_zpacklist-vbeln.
    *End of GONAGUNTLA2 - @0001 02/11/2004 D47K906487
      clear the workareas
      CLEAR : wa_item,
              wa_item_lips.
    loop at the main internal table which contains the item data.
    so that the data in the internal table i_item_lips is passed in the
    i_item table
      LOOP AT i_item INTO wa_item.
        v_tabix = sy-tabix.   "YATHAM6 Insert 03/31/2004
    read the internal table i_item_lips for key Item Number(POSNR)
    because the only link between the LIPS table and VBAP table is
    (POSNR) for the same delivery number.
    *Begin of GONAGUNTLA2 - @0001 02/12/2004
       READ TABLE i_item_lips
                  INTO wa_item_lips
                  WITH KEY posnr = wa_item-posnr.
        READ TABLE i_item_lips
                   INTO wa_item_lips
                   WITH KEY vgpos = wa_item-posnr.
    *End of GONAGUNTLA2 - @0001 02/12/2004
      check whether the same POSNR value is there in the I_item_lips table
        IF sy-subrc = 0.
    *Begin of GONAGUNTLA2 - @0001 02/12/2004
          perform get_previous_del_qty using wa_zpacklist-vbelv
                                             wa_item_lips-vgpos
                                             wa_item_lips-vbeln
                                             wa_item_lips-posnr
                                             wa_item-kwmeng.
          move wa_item-kwmeng to wa_item_lips-kwmeng.
    *End of GONAGUNTLA2 - @0001 02/12/2004
      to find out the Back Orders subtract Ordered Qty (KWMENG)
      with Actual Qty (LFIMG)
          wa_item_lips-zbkord = wa_item-kwmeng - wa_item_lips-lfimg.
    Begin of Modifications - YATHAM6 12/15/2003
      if wa_item-posex is not blank the repace wa_item-posnr with it.If *
      it is not blank then don't do anything.
         IF NOT wa_item-posex IS INITIAL.
           MOVE wa_item-posex TO wa_item_lips-posnr .
         ENDIF.                  "if not wa_item-posex is initial.
          If wa_item-posex is initial.
    Begin of GONAGUNTLA2 - @0001 02/12/2004
          move wa_item-posnr to wa_item_lips-posex.
            move wa_item_lips-posnr to wa_item_lips-posex.
    *End of GONAGUNTLA2  - @0001 02/12/2004
          else.
            move wa_item-posex to wa_item_lips-posex.
          endif.
    End of Modifications - YATHAM6 12/15/2003
      modify the internal table i_item by transporting VBELN LFIMG ZCALC.
    *Begin of GONAGUNTLA2 - @0001 02/11/2004 D47K906487
         MODIFY i_item FROM wa_item_lips
                       TRANSPORTING vbeln        "Delivery Number
                                    posnr        "Delivery item
                                    posex        "   YATHAM6 Insert
    *lfimg        "Actual Quantity Delivered
                                    zbkord       "Back Order
                                    zzcatno      "Catlog Number
                                    matnr        "Material Number
                                    vtweg
                       WHERE posnr = wa_item-posnr.
       MODIFY i_item FROM wa_item_lips         "YATHAM6 Del 03/31/2004
          MODIFY i_item FROM wa_item_lips index v_tabix
                              TRANSPORTING vbeln        "Delivery Number
                                           posnr        "Delivery item
                                           posex        "   YATHAM6 Insert
                                           KWMENG
                                           "   gonaguntla2 Insert
                                           lfimg
                                           "Actual Quantity Delivered
                                           zbkord       "Back Order
                                           zzcatno      "Catlog Number
                                           matnr        "Material Number
                                           vtweg
                                           uepos
                                           pstyv.
    *Table i_item should be updated with the corresponding entry not with
    *the
    item number.
                           WHERE posnr = wa_item-posnr.   "YATHAM6 Del
        else.
    YATHAM6 Mod Begin - 04/22/2004
    Delete the Current row instead of item. Because the Delivery item
    sequence could be different than that of the Sales Order item #.
        delete i_item where posnr = wa_item-posnr.
          delete i_item index v_tabix.
    YATHAM6 Mod End - 04/22/2004
    *End of GONAGUNTLA2 - @0001 02/11/2004 D47K906487
        ENDIF.                  " if sy-subrc = 0.
      ENDLOOP.                  "loop at i_item
    now once the i_item internal table is full
    check it.
      IF NOT i_item[] IS INITIAL.
        sort i_item[] by vbeln descending posex.   "YATHAM6 Insert
    move the data from i_item into the structure wa_zpacklist.
        wa_zpacklist-zitempack_tb[] = i_item[].
      ENDIF.                    "if not i_item[] is initial.
    ENDFORM.                    " get_item
    *&      Form  get_addr
          text
    Get the address numbers for shipping point ,ship-to-party and
    sold-to-party from VBFA,TVST tables
    FORM get_addr_no .
    To find out the addresses of sold-to-party, goto table VBPA select
    the address number ADRNR
      SELECT SINGLE adrnr          "Address Number
                INTO wa_zpacklist-adrnrstp
                FROM vbpa
    YATHAM6 Mod Begin - 04/15/2004
    Get the address numbers for the Delivery instead of Sales order
             WHERE vbeln =  wa_zpacklist-vbelv
               WHERE vbeln =  wa_zpacklist-vbeln
    YATHAM6 Mod End  - 04/15/2004
                 AND parvw = c_parvw_stp.
    To find out the addresses of ship-to-party, goto table VBPA select
    the address number ADRNR
      SELECT SINGLE adrnr         "Address Number
                INTO wa_zpacklist-adrnrshp
                FROM vbpa
    YATHAM6 Mod Begin - 04/15/2004
    Get the address numbers for the Delivery instead of Sales order
             WHERE vbeln =  wa_zpacklist-vbelv
               WHERE vbeln =  wa_zpacklist-vbeln
    YATHAM6 Mod End  - 04/15/2004
                 AND parvw = c_parvw_shp.
    To select the addresses for Shipping point find out the address *
    number from TVST table .
      SELECT SINGLE adrnr         "Address Number
               INTO wa_zpacklist-adrnr
               FROM tvst
              WHERE vstel = wa_zpacklist-vstel.
    ENDFORM.                    " get_addr
    *&      Form  set_print_param
    Set the print paramters for the smartform
    FORM set_print_param  CHANGING v_control_param  TYPE ssfctrlop
                                  v_composer_param TYPE ssfcompop
                                  v_recipient      TYPE  swotobjid
                                  v_sender         TYPE  swotobjid
                                  v_retcode        TYPE sy-subrc.
      DATA: v_itcpo     TYPE itcpo.
      DATA: v_repid     TYPE sy-repid.
      DATA: v_device    TYPE tddevice.
      v_repid = sy-repid.
      CALL FUNCTION 'WFMC_PREPARE_SMART_FORM'
        EXPORTING
          pi_nast       = nast
          pi_repid      = v_repid
        IMPORTING
          pe_returncode = v_retcode
          pe_itcpo      = v_itcpo
          pe_device     = v_device
          pe_recipient  = v_recipient
          pe_sender     = v_sender.
      IF v_retcode = 0.
        MOVE-CORRESPONDING v_itcpo TO v_composer_param.
        v_control_param-device      = v_device.
        v_control_param-no_dialog   = c_X.
        v_control_param-preview     = v_screen.
        v_control_param-getotf      = v_itcpo-tdgetotf.
        v_control_param-langu       = nast-spras.
      ENDIF.
    ENDFORM.                    " set_print_param
    *&      Form  protocol_update
          text
    Error Handling
    FORM protocol_update .
      CHECK v_screen = space.
      CALL FUNCTION 'NAST_PROTOCOL_UPDATE'
        EXPORTING
          msg_arbgb = syst-msgid
          msg_nr    = syst-msgno
          msg_ty    = syst-msgty
          msg_v1    = syst-msgv1
          msg_v2    = syst-msgv2
          msg_v3    = syst-msgv3
          msg_v4    = syst-msgv4
        EXCEPTIONS
          OTHERS    = 1.
    ENDFORM.                    " protocol_update
    *&      Form  get_previous_del_qty
          text
    -->  p1        text
    <--  p2        text
    FORM get_previous_del_qty using f_so
                                    f_so_item
                                    f_del
                                    f_del_item
                                    f_so_qty.
      data: begin of i_vbfa_tab occurs 0,
              vbeln like vbfa-vbeln,
              posnn like vbfa-posnn,
            end of i_vbfa_tab.
      data: fv_lfimg like lips-lfimg.
      select vbeln posnn into table i_vbfa_tab from vbfa
                         where vbelv   eq f_so
                           and posnv   eq f_so_item
                           and vbtyp_n eq 'J'.
      loop at i_vbfa_tab.
        if i_vbfa_tab-vbeln ne f_del.
          clear fv_lfimg.
          select single lfimg into fv_lfimg
                              from lips
                              where vbeln eq i_vbfa_tab-vbeln
                                and posnr eq i_vbfa_tab-posnn.
          f_so_qty = f_so_qty - fv_lfimg.
        endif.
      endloop.
    ENDFORM.                    " get_previous_del_qty

  • ALV list output to smartforms (Urgent)

    Hello Friends,
    I have a requirement as below.
    i have to copy standard report to Z-report(Customer Line Items). on the output of the report i have to add two pushbuttons(not on the Application tool bar or MENU bar) but on the body of the output list. these buttons are labelled as PRINT1 and PRINT2. this report displays all the line items for a customer with a checkbox at the begining of each item.
    Now my requirement is
    when the button PRINT1 is clicked all the selected line items (for which checkbox is clicked) should be printed in a smartform.
    when the button PRINT2 is clicked each line item should be printed separately in the smartform. that is for each line item smartform should be called once.
    And also how to create pushbuttons on the body of the list output. is it possible?
    Any help in this regard is highly appreciated and rewarded.

    Your requirement seem to be achievable.
    When you click PRINT1 your ALV program needs to accumulate the selected lines into a table, you need to create a smartform that has this table in its interface and call the form.
    When you click PRINT2 your ALV program needs either to loop through the entries and call a smartform one for each loop or pass the whole table to the smartform and let the smartform perform the loop.
    Not sure about putting a push buuton on an ALV grid, you may have to create some sort of hotspot.
    Regards,
    Nick

  • Printing a form

    Hi folks,
    I had an question, related to printing the form using sapscript. I am printing a sapscript form using two printers. The first one is HPLJ4000 : HP Laserjet 4000   and the model is Dell Printer and using this printer the form is printing fine.
    However when I print using another printer HPLJ4000 : HP Laserjet 4000 but a different model HPLJ 2100TN some of the data is not printing in the right font size. The font I am using is HELVE and I believe it is not recognising it.
    I do not know how to work on the issue, asked the Basis guy too he has no clue about it.
    Any thoughts or ideas will be helpful?
    Thanks,
    Sk

    Hi
    See this OSS notes
    OSSNote:960341
    Symptom
    In some device types (e.g HPLJ4, HPLJ5) you experience non-uniform character spacing in the PDF document after the PDF conversion of SAPscript or Smart Forms documents, using HELVE or TIMES fonts. You want to know the reason.
    Other terms
    CONVERT_OTF, SAPscript, Smart Forms
    Reason and Prerequisites
    The problem is not due to an error in the PDF converter but due to the fact, that the printer font, underlying the device type (e.g. Univers or CG Times in PCL-5 device types), is not available for the PDF converter and is either not available in Adobe Reader. The PDF converter has to try to simulate the layout of the printer font by means of a font which is predefined in Adobe Reader. This is done by assigning the letter widths of the printer font to the font used in Adobe Reader.
    The PDF file contains a table with letter widths, used by Adobe Reader in the output of text, for each used printer font (except PostScript fonts).
    Example:
    %Charwidth values from HP4300 HELVE 060 normal
    /Widths
    [ 278 333 500 633 633 1000 758 333 333 333 633...
    Adobe reader converts this width table, by modifying the space between each character, so that the specified letter width (= space between the current and the next letter) is kept.
    This 'Simulation' of printer fonts results in the sometimes visible irregular spaces in PDF.
    The PDF converter always uses the Helvetica Adobe PostScript font for the display of HELVE and the Times Roman Adobe PostScript font for the display of TIMES. However, for these Adobe PostScript fonts, Adobe Reader often uses a Windows TrueType font, which differs slightly from the original PostScript font.
    Solution
    Workaround: Use the POST2 PostScript device type or the PDF1 PDF device type for the PDF conversion of documents in the Latin-1 character set. They both use the Adobe PostScript fonts Helvetica or Times Roman for the HELVE/TIMES printer fonts.
    Header Data
    Release Status: Released for Customer
    Released on: 30.06.2006  12:44:06
    Priority: Recommendations/additional info
    Category: Consulting
    Primary Component: BC-CCM-PRN Print and Output Management
    Secondary Components: BC-SRV-SCR SAPscript
    OSS Note: 776507
    Symptom
    Documents printed via SAPscript or SmartForms do not print with correct special characters, e.g. ### prints instead of Japanese or Russian characters. What to do?
    Other terms
    SAPscript, SmartForms, printing, device types, OTF
    Reason and Prerequisites
    Help required to choose proper fonts in a SAPscript or SmartForm
    Solution
    When using SAPscript or SmartForms to print (or email or fax) a form from a business application, many factors influence the outcome of the actual text within the form. All these factors must be checked in order to ensure a correct printout:
    1) The language version of the form used to produce the printout.
    Example: If you want to print a French invoice, you need to have a FR version of your SAPscript or SmartForms invoice form RVINVOICE01. And the application program must specify the corresponding language key (FR) when calling the SAPscript or SmartForms API.
    2) The font selections specified in the form (possibly also in a SAPscript style or SmartStyle used in a form).
    Example: In a SAPscript form or a SmartStyle you need to specify HELVE if you want to print German text in Helvetica (or similar) font. If you want to print Japanese text, HELVE is not a valid choice but you need to specify a Japanese font like JPMINCHO in your Japanese form.
    3) The output character set of the device type
    Every printer in transaction SPAD has a "device type" assigned. Device types used by the spooler for printing support only one single specific output character set. All text from the form has to be converted (using SAP's built-in character conversion mechanism) to this output character set.
    A character set can typically support either a single language (e.g. Shift-JIS which supports only Japanese) or a set of languages (e.g. ISO 8859-1, which supports Western-European languages). It is possible that a given language (such as German) can be supported by several output character sets, e.g. you may use either ISO 8895-1 (Latin-1) or ISO 8859-2 (Latin-2) to represent German text. This is so because both character sets contain the special characters used in German.
    Example: HPLJ4000 is a HP LaserJet device type supporting the ISO 8859-1 (Latin-1) character set. ISO 8859-1 can be used to represent e.g. Dutch, English, French, German, Spanish, Swedish but NOT Russian or Japanese.
    As a consequence, it is ok to use HPLJ4000 to print English, German French etc. but not for Japanese or Russian.
    4) The set of available printer fonts for a given device type
    When formatting a document, SAPscript and SmartForms perform an automatic mapping of the font definitions in the form (e.g. "HELVE 14 point bold") and the available printer fonts of the device type. A replacement printer font is chosen, should the specified font selection not be available in the device type. Now this replacement can be problematic if a language-specific font, such as Chinese CNSONG, is specified in a form and it gets replaced by a font which does not support this language, e.g. COURIER.
    To solve this problem, font families in SE73 have language attribute assigned, e.g. some fonts are characterized as being suitable only for certain languages. And when a replacement has to be chosen because the original font from the form is not available in the device type, a replacement font is chosen which has the same language attributes.
    If no fonts for the language in question exist in the device type, the resulting font will not be able to print the special characters and you will see "wrong" output characters in the printout.
    Note on SAPscript/SmartForms Print Preview:
    The OTF Print Preview available in Windows GUI (e.g. from transaction SP01) will sometimes not show the "wrong" characters which appear on the final printout. Here is the reason: since the Print Preview runs in Windows environment, it will use Windows fonts to represent the actual printer fonts. A Windows font typically has more available characters (i.e. covers more character sets) than are actually available in a printer's resident font.
    A typical example where the Print Preview will differ from the printout is here: if you have a Chinese PCL5 printer such as CNHPLJ4 and use the Western Latin font COURIER in your document, the print preview will show you Chinese characters if you (by accident) tried to format Chinese characters in COURIER font. This is because Windows will automatically choose a font that can output Chinese characters (which is actually not Courier). But when you print the job on an actual PCL5 printer with resident Western and Chinese fonts, the Courier font will not print any Chinese characters but Western special characters instead, because the printer's resident Courier font does not include Chinese characters.
    Rule of thumb: all Asian device types (e.g. CNHPLJ4, JPHPLJ4, JPPOST, KPHPLJ4) support not only Asian fonts but also COURIER, HELVE and TIMES fonts. But these Latin fonts can only be used to print English text, not Chinese/Japanese/Korean characters.
    Which fonts are suitable for a given language?
    Language(s):            Font family to use in a form:
    Latin-1 (Western Europe/Americas) *******
    DE,EN,FR,ES,NL,SV       COURIER, HELVE, TIMES
                            (LETGOTH, LNPRINT)
    Latin-2 (Central Europe) ****************
    PL, CZ                  COURIER, HELVE, TIMES
    ISO 8859-4 (Baltic) *********************
    ET, LT, LV              COURIER, HELVE, TIMES
    ISO 8859-5 (Cyrillic) *******************
    BG, RU, SR, UK          COURCYR, HELVCYR, TIMECYR
    ISO 8859-7 (Greek) **********************
    EL                      COUR_I7, HELV_I7, TIME_I7
    ISO 8859-8 (Hebrew) *********************
    HE                      COURIER, HELVE, TIMES
    ISO 8859-9 (Turkish) ********************
    TR                      COURIER, HELVE, TIMES
    Simplified Chinese **********************
    ZH                      CNHEI, CNKAI, CNSONG
    Japanese ********************************
    JA                      JPMINCHO, DBMINCHO, DBGOTHIC
    Korean **********************************
    KP                      KPBATANG, KPDODUM, KPGULIM
                            KPGUNGSE, KPSAMMUL
    Traditional Chinese *********************
    ZF                      TWDPHEI, TWMING, TWSONG
    Thai ************************************
    TH                      THANGSAN, THDRAFT, THVIJIT
    Arabic (Unicode systems only) ***********
    AR                      ANDALE_J
    Verify your output by examining the OTF data
    When analysing printing problems of this type, be sure to check the OTF data which gets produced by SAPscript or SmartForms. OTF or "Output Text Format" is the intermediate page-description format generated from SAPscript or SmartForms. OTF will contain the final printer font names and character set/language identifiers which help to solve the problem. OTF will even name the form and the language of the form used to create the output.
    The easiest way to do this is to create a spool request from your application, run transaction SP01, use menu
    Goto->Display Requests->Settings
    and choose
    Display Mode: Raw
    Now display your spool request. If this is a SAPscript or SmartForms spool request, you will see OTF data. Each line represents one OTF command, every command starts with a 2-character cmd identifier and possibly some cmd parameters follow.
    Here is an excerpt from a sample OTF file where we highlight the most interesting commands:
    //XHPLJ8000    0700 00000000001
    IN04EALEXTEST_ZEBRA
    IN05%PAGE1
    OPDINA4  P 144  240 1683811906000010000100001
    IN06%WINDOW2
    MT0024401289
    CP11000000E
    FCHELVE  120  00109XSF100SF101110000067E X
    UL +0000000000000
    SW00067
    CT00000000
    ST0453037Dieses SF hat Stil ALEXTEST_ZEBRA mit
    The 1st line with the // (Control) command reveals the device type usedto print: HPLJ8000
    //XHPLJ8000    0700 00000000001
    The 2nd line (IN = Info command) shows the name and (internal 1-char)language key of the form:
    IN04EALEXTEST_ZEBRA
    In this case it is the English (E = EN) SmartForm ALEXTEST_ZEBRA
    The OP-line (OP = Open Page) gives the page format used in the form, it is DINA4 Portrait orientation:
    OPDINA4  P 144  240 1683811906000010000100001
    The CP (CodePage) cmd shows the SAP system codepage used to code the text and the active language. In our case it is codepage 1100 and language E = EN = English.
    CP11000000E
    Finally, the FC-cmd (Font Call) lists a printer font selected within SmartForms. Please note that every SmartForm has a designated default SmartStyle under "Form Attributes->Output Options". In addition, every text node can have a SmartStyle attached (which will override the definitions from the default style for the text). In our case the resulting printer font that was selected is HELVE 12.0 pt bold-off, italic-off.
    FCHELVE   120  00109XSF100SF101110000067E X
    Header Data
    Release Status: Released for Customer
    Released on: 22.08.2005  09:57:20
    Priority: Recommendations/additional info
    Category: Customizing
    Primary Component: BC-CCM-PRN Print and Output Management
    Secondary Components: BC-SRV-SCR SAPscript
    BC-SRV-SSF Smart Forms
    <b>Reward points for useful Answers</b>
    Regards
    Anji

Maybe you are looking for

  • Create DB link between my local system and remote system

    Hi, I need help to create DB link between my local system Database and remote system database both the database are oracle. Please check the script which i have written is correct or not. Its giving me error sql command not ended properly create publ

  • [svn:osmf:] 10589: Updated the readme. txt for the VASTSample based on feedback in the OSMF forum.

    Revision: 10589 Author:   [email protected] Date:     2009-09-25 10:15:31 -0700 (Fri, 25 Sep 2009) Log Message: Updated the readme.txt for the VASTSample based on feedback in the OSMF forum. Modified Paths:     osmf/trunk/apps/samples/libs/VASTSample

  • Parameter Passing By Value

    Okay here is the deal Say i have a class called "CUSTOMERINFO" and in this class there are attributes such as first and last name.. okay now in the main class i create an instance.. Now i want to send it to a method to have another "CUSTOMERINFO" equ

  • Help ORA-02049

    HELP HELP HELP!! Following error on Oracle 8.1.7 SQR 5528) ORACLE OCIStmtExecute error 2049 in cursor 38: ORA-02049: timeout: distributed transaction waiting for lock ORA-02063: preceding line from XAPPPRD Error on line 3155: (SQR 3735) Could not exe

  • Print with lr5 vs lr3

    Recently upgraded to lr5, now when I print a custom package it prints unwanted borders and cut of portions of images. Printing in lr5 to Canon Pro9000 MarkII, custom package using 8.5x11 paper with 5 different size cells.  Each cell is adjacent to ou