Calling Smart Form using Driver Program

Hi, I'm a new ABAP developer. I've recently been studied about Smart Forms and I didn't understand what are the benefits to call a smart form using driver program.
Could anyone help me, please?

Bruno, it works like this.
Lets says you attach a Z output to a sales order which sends the details of the SO to the customer in a PDF format. For this purpose you have developer the o/p using smartforms or scripts. Now there are few configs that you will perform in order to send the PDF to the customer AUTOMATICALLY once the SO is saved. This is done thru the transaction NACE where you will attach the smartform, the o/p, partner function and driver program.
This driver program will get kicked in when the order is saved and will perform the logic and then call the smartform.
Hope this give a little bit better picture.
Vikram.M

Similar Messages

  • Debugging Smart form-Shipemnt-Driver program

    Hai,
    I have created a smart form & output type configuration is done for shiptment.
    scenario 1:
    I set a break point in driver program.When I go to VT02n & entered the shipment number & follew the below steps in the VT02n scree.
    1.select Shipment->output->screen
      enter the ouput type in the displayed popup.
    now the control is going to the code where I set the bbreak point.This is fine.
    Scenario 2:
    I set a break point in driver program.When I go to VT02n & entered the shipment number.
    Hit enter.got the edit page screen.
    now GOTO->OUTPUT
    here I selected the relevant output & followed the procedure to repeat the output again.
    in this case the program not stopped at the place where I set the break point.
    Can any one have any idea this?Why is it happening?

    Hi Bhaskar,
    If you want to debug your smartform then do as follows;
    How to debug smartform in display mode for a particular node.
    Steps to debug a particular node:
    1. Execute the required smartform and take the function module name from there,do not enter into that function module.
    2. in SE38 search for programs by the function module name,
          for eg., if the func module name is /BCDWB/SF00000024 then  search parameter for f4 would be
      /BCDWB/SF00000024, this would give u 4 to 5 prgs in the search list,
       these are the include files which it create for the same smartform .
    out of this open the prg with the name  /BCDWB/LSF00000024F01 in SE38.
    3./BCDWB/LSF00000024F01 - this include file actualy containes the code that we type inside smartforms.
      every node or the windows that is added to the smartform is coded in FORM...ENDFORM ,
      inside this include file.      
    4. FORM look like this .
      FORM %C01.
    NODE CODE5 - this is the name of the node in smartform   
       for the prg line node 'code5',name of the node, coding is inside this form.
         so u can easily put a break point here at this point . 
      ENDFORM.
    like this for every node the FORM is created , u can search for required node and but a break point.
    Hope this information will be helpful to all.

  • Smart forms : without driver program

    Is it possible to execute a smart form without a driver program?
    I dont mean to say just to execute the function module.
    Is there any other way?

    Hi ,
    yes it is possible to execute the smartform withoout driver program.
    to do so, just activate the program and test(pressing F8) it .
    now in the smart form tself you can include any internal table, initialize it in the global definition.
    you can also include a program logic wherever you want . just right click on a window or text or anything in the navigation area, and you can get it.
    thanks and regards,
    Kunal.

  • Printing Line Items in Script without using driver program

    How to print the line items of a internal table in sap script without using driver program? I am not supposed to edit anything in the driver program. Pls help me to solve this problem...

    Hi,
    You can try by creating a new driver program and a new FORM ENDFORM inside that for this purpose.
    Regards,
    Gaurav

  • Call a Form using Webutil from the Menu loose focus on the applet

    Hello,
    I have the following problem:
    When calling a form using webutil from the menu the focus on the applet (I mean the Forms Application window) is lost and I have to click on the window to get back the focus on the application.
    Any advice ?
    Env: Forms 9i / Webutil 1.06
    Rgds,
    Philippe

    Try to use the NO_HIDE parameter in the CALL_FORM() built-in.
    Call_Form( 'the_form', NO_HIDE ) ;Or maybe, in the[b] When-New-Form-Instance trigger of the called form, return the focus to the calling form
    Go_Form( Get_Application_Property( CALLING_FORM ) ) ;Francois

  • F110 - output using Form and Driver program

    Hi All,
    I need to prepare Sap Script Form for F110 tcode.
    standard scriptname to be use is F110_IN_AVIS
    standard driver program to be use is RFFOAVIS_FPAYM.
    but i dont know, where to assign these to F110 and check the output weather Form is displaying the data in correct way or not.
    Thanks for you help.
    Srinivas

    Hi Jayasri,
    Thanks for your reply, if i mentioned wrong, could you please tell me what should i mention for "Payment Advisor to Vendors".
    After mentioned the form name in FBZP. How to check the output on Form using F110. Because, to execute it, when I hit "Printout", am getting jobname. With that jobname, if i go to sm37, i am getting the status has "Finished". So can't i see the output.
    If i see the output, then only i can do the need full changes to my client requirement.
    Could you please help me on this.
    Thanks for your reply.
    Satya Srinivas

  • Smart forms and print program needed

    Can anyone provide me with the following print programs and smart forms? I can't find it in my SAP. Thanks.
    Print Program:
    /SMB40/M07DR
    Smart Forms:
    /SMB40/MMGR1_A
    /SMB40/MMGR3_A
    /SMB40/MMGI1_A
    Please kindly email me at [email protected]

    Hi
    I appreciate for your sincierty i cant send through mail but i'm sending directly plz copy all the programs
    INCLUDE /SMB40/M07DRTOP.
    PROGRAM /BPR3PF/m07dr MESSAGE-ID m7.
    DATA  lgortsplit LIKE am07m-xselk.
    DATA  ladr LIKE sadr.
    DATA  *ladr LIKE sadr.
    CONSTANTS: a TYPE c VALUE 'A',
               b TYPE c VALUE 'B',
               c TYPE c VALUE 'C',
               d TYPE c VALUE 'D',
               e TYPE c VALUE 'E',
               f TYPE c VALUE 'F',
               g TYPE c VALUE 'G',
               h TYPE c VALUE 'H',
               i TYPE c VALUE 'I',
               j TYPE c VALUE 'J',
               k TYPE c VALUE 'K',
               l TYPE c VALUE 'L',
               m TYPE c VALUE 'M',
               n TYPE c VALUE 'N',
               o TYPE c VALUE 'O',
               p TYPE c VALUE 'P',
               q TYPE c VALUE 'Q',
               r TYPE c VALUE 'R',
               s TYPE c VALUE 'S',
               t TYPE c VALUE 'T',
               u TYPE c VALUE 'U',
               v TYPE c VALUE 'V',
               w TYPE c VALUE 'W',
               x TYPE c VALUE 'X',
               y TYPE c VALUE 'Y',
               z TYPE c VALUE 'Z'.
    CONSTANTS: plus  TYPE c VALUE '+',
               minus TYPE c VALUE '-',
               punkt TYPE c VALUE '.',
               null  TYPE c VALUE '0',
               eins  TYPE c VALUE '1',
               zwei  TYPE c VALUE '2',
               drei  TYPE c VALUE '3',
               vier  TYPE c VALUE '4',
               fuenf TYPE c VALUE '5',
               sechs TYPE c VALUE '6',
              sieben TYPE c VALUE '7',
               acht  TYPE c VALUE '8',
               neun  TYPE c VALUE '9',
               einsi TYPE i VALUE '1',
               zweii TYPE i VALUE '2',
               dreii TYPE i VALUE '3',
               vieri TYPE i VALUE '4',
               nzwei TYPE i VALUE '02',
               ndrei TYPE i VALUE '03'.
    CONSTANTS: actvt01 LIKE tact-actvt VALUE '01',
               actvt02 LIKE tact-actvt VALUE '02',
               actvt03 LIKE tact-actvt VALUE '03',
               actvt04 LIKE tact-actvt VALUE '04',
               actvt06 LIKE tact-actvt VALUE '06',
               actvt65 LIKE tact-actvt VALUE '65',
               actvt70 LIKE tact-actvt VALUE '70'.
    CONSTANTS: maximum     TYPE f VALUE 9999999999999,
               minimum     TYPE f VALUE -9999999999999,
               maximum_gld TYPE f VALUE  99999999999,
               minimum_gld TYPE f VALUE  -99999999999,
               maxvalue LIKE am07m-maxvalue VALUE 9999999999999,
               minvalue LIKE am07m-maxvalue VALUE -9999999999999,
               cnull(18)   TYPE c VALUE '000000000000000000',
               pf02(4)     TYPE c VALUE 'PF02',
               pf15(4)     TYPE c VALUE 'PF15',
               stern       TYPE c VALUE '*',
               doublestar(2) TYPE c VALUE '**',
               underscore  TYPE c VALUE '_',
               slasch      TYPE c VALUE '/',
               dpunkt      TYPE c VALUE ':',
               curtp00     LIKE smbew-curtp VALUE '00', "Transaktionswährung
               curtp10     LIKE smbew-curtp VALUE '10', "ML in Hauswährung
               auto_best   LIKE mseg-ebeln  VALUE '9999999999',
               modulpool   LIKE sy-repid    VALUE 'SAPMM07M'.
    CONSTANTS: BEGIN OF hlp,
                 b(4) TYPE c VALUE 'HLPB',
                 f(4) TYPE c VALUE 'HLPF',
                 g(4) TYPE c VALUE 'HLPG',
                 m(4) TYPE c VALUE 'HLPM',
                 r(4) TYPE c VALUE 'HLPR',
                 v(4) TYPE c VALUE 'HLPV',
               END OF hlp.
                                           "Equates für Alphabet
    TABLES:
       afko,
       aufk,
       itcpo,
       mkpf,
      *mkpf,
       mseg,
      *mseg,
       ekko,
       ekkn,
      *ekko,
      arc_params,
       ekpo,
       ekbe,
       lfa1,
      *lfa1,
       thead,
       toa_dara,
       am07m,
      *am07m,
       t001,
       t001w,
      *t001w,
       t027b,
       t027c,
       t027d,
       t156,
       t156t,
       t157e,
      *t157e,
       t159m,
       t159n,
       t159o,
       t159p,
       t159s,
       t159e,
       t024,
       t024d,
      *t024,
       t064b,
       nast,
      *nast,
      tnapr.
    TABLES: mabdr,
            mtcom,
            mtcor,
            twlad.
    * Reportinterne Daten                                                 *
    *--- Strukturen ------------------------------------------------------*
    DATA: x_protab TYPE c,
          x_bwart TYPE c,
          bwart LIKE mseg-bwart,
          eintraege LIKE sy-tfill,
          anzahl LIKE mseg-weanz,
          anzahl1(7) TYPE n,
          x_kont TYPE c,                   "Mehrfachkontierung
          x_kont1 TYPE c,              "Einfache Kontierung (WE unbewertet)
          x_form TYPE c,
          x_open TYPE c.
    DATA: BEGIN OF jahr,
            jahr(4) TYPE n,
            monat(2) TYPE n,
            tag(2) TYPE n,
          END OF jahr.
    DATA:
       BEGIN OF we,
         version1 VALUE '1',               "Standardversion
         version2 VALUE '2',               "Version mit Prüftext
         version3 VALUE '3',               "WE-Sammelschein
       END OF we,
       BEGIN OF alt,
          matnr LIKE mseg-matnr,
          bwart LIKE mseg-bwart,
          ebeln LIKE mseg-ebeln,
          usnam LIKE mkpf-usnam,
       END OF alt,
       BEGIN OF kunde,
          kdauf LIKE mseg-kdauf,
          kdpos LIKE mseg-kdpos,
          kdein LIKE mseg-kdein,
       END OF kunde,
       BEGIN OF anlage,
          anln1 LIKE mseg-anln1,
          anln2 LIKE mseg-anln2,
       END OF anlage,
       BEGIN OF belpos,
          mblnr LIKE mseg-mblnr,
          zeile LIKE mseg-zeile,
       END OF belpos,
        xskkz,
        xpsty,
        xkdanr    VALUE 'C',
        xkde      VALUE 'E',
        xfert     VALUE 'F',
        xrvkdanr  VALUE 'A',
        xanlage   VALUE 'A',
        xanln1    VALUE 'I',
        xkostl    VALUE 'K',
        xprojn    VALUE 'P',
        xmunbw    VALUE 'M',
        xumlag    VALUE 'U',
        xvbelg    VALUE 'V',
        xnplan    VALUE 'N',
        xkonsi(2) VALUE 'KB',
        xwabel(2) VALUE 'WA',
        xwibel(2) VALUE 'WI',
        xwebel(2) VALUE 'WE',
         xsele,                            "Position selektiert
         xkont,                            "Kontierungswechsel
         xsamm,                            "Sammel-WE-Schein
         xanha.                            "Mehrfachkontierung
    DATA BEGIN OF theader.
            INCLUDE STRUCTURE thead.
    DATA END OF theader.
    *--- Interne Tabellen -------------------------------------------------*
    DATA:
       BEGIN OF dummy OCCURS 0,
         dummy,
       END OF dummy.
    DATA:
       BEGIN OF ausgabe OCCURS 20,
          mblnr LIKE mseg-mblnr,
       END OF ausgabe.
    DATA: BEGIN OF xekkn OCCURS 50.
            INCLUDE STRUCTURE ekkn.
    DATA: END OF xekkn.
    DATA: BEGIN OF xmseg OCCURS 50.
            INCLUDE STRUCTURE mseg.
    DATA: END OF xmseg.
    DATA: BEGIN OF dtext OCCURS 1.
            INCLUDE STRUCTURE tline.
    DATA: END OF dtext.
    DATA: BEGIN OF dktext OCCURS 1.
            INCLUDE STRUCTURE tline.
    DATA: END OF dktext.
    DATA: BEGIN OF dptext OCCURS 1.
            INCLUDE STRUCTURE thead.
    DATA: END OF dptext.
    DATA: BEGIN OF nast_key,
            mblnr LIKE mkpf-mblnr,
            mjahr LIKE mkpf-mjahr,
            zeile LIKE mseg-zeile,
          END OF nast_key.
    DATA: BEGIN OF beltab OCCURS 20.
            INCLUDE STRUCTURE mseg.
    DATA: vgart LIKE mkpf-vgart,
          blart LIKE mkpf-blart,
          blaum LIKE mkpf-blaum,
          bldat LIKE mkpf-bldat,
          budat LIKE mkpf-budat,
          cpudt LIKE mkpf-cpudt,
          cputm LIKE mkpf-cputm,
          aedat LIKE mkpf-aedat,
          usnam LIKE mkpf-usnam,
          tcode LIKE mkpf-tcode,
          xblnr LIKE mkpf-xblnr,
          bktxt LIKE mkpf-bktxt,
          frath LIKE mkpf-frath,
          frbnr LIKE mkpf-frbnr,
          wever LIKE mkpf-wever,
          kzdru LIKE t156-kzdru,
          END OF beltab.
    DATA: BEGIN OF traptab OCCURS 50.
            INCLUDE STRUCTURE mseg.
    DATA:   vgart LIKE mkpf-vgart,
            blart LIKE mkpf-blart,
            blaum LIKE mkpf-blaum,
            bldat LIKE mkpf-bldat,
            budat LIKE mkpf-budat,
            cpudt LIKE mkpf-cpudt,
            cputm LIKE mkpf-cputm,
            aedat LIKE mkpf-aedat,
            usnam LIKE mkpf-usnam,
            tcode LIKE mkpf-tcode,
            xblnr LIKE mkpf-xblnr,
            bktxt LIKE mkpf-bktxt,
            frath LIKE mkpf-frath,
            frbnr LIKE mkpf-frbnr,
            wever LIKE mkpf-wever,
          END OF traptab.
    DATA: BEGIN OF inthead OCCURS 50.
            INCLUDE STRUCTURE thead.
    DATA: END OF inthead.
    DATA: BEGIN OF intline OCCURS 50.
            INCLUDE STRUCTURE tline.
    DATA: END OF intline.
    DATA: BEGIN OF intline1 OCCURS 50.
            INCLUDE STRUCTURE tline.
    DATA: END OF intline1.
    *-------- Hilfsfelder -------------------------------------------------*
    DATA: index_z LIKE sy-tabix,
          drucker LIKE rm07m-ldest,
          old_tdform LIKE t159o-tdform,
          r_werks LIKE t001w-werks,
          r_name1 LIKE t001w-name1,
          x_form3 TYPE c,
          x_nopdest TYPE c,
          language LIKE t001w-spras,
          zaehler_m LIKE sy-tabix,
          edruck  TYPE c.
    DATA: old_mkpf LIKE mkpf-usnam,
          old_budat LIKE mkpf-budat,
          old_cpudt LIKE mkpf-cpudt,
          old_werks LIKE t001w-werks,
          old_name1 LIKE t001w-name1,
          old_mblnr LIKE mkpf-mblnr,
          old_lifnr LIKE ekko-lifnr,
          old_ebeln LIKE ekko-ebeln,
          old_ekgrp LIKE ekko-ekgrp,
          old_reswk LIKE ekko-reswk,
          old_linam LIKE am07m-name1,
          old_lina2 LIKE am07m-name2,
          old_eknam LIKE t024-eknam,
          old_ektel LIKE t024-ektel,
          old_ematn LIKE mseg-ematn,
          old_lfa1  LIKE lfa1,
          old_lgort LIKE mseg-lgort,
          old_ladr LIKE ladr,
          save_mkpf LIKE mkpf-usnam,
          save_budat LIKE mkpf-budat,
          save_cpudt LIKE mkpf-cpudt,
          save_werks LIKE t001w-werks,
          save_name1 LIKE t001w-name1,
          save_mblnr LIKE mkpf-mblnr,
          save_lifnr LIKE ekko-lifnr,
          save_reswk LIKE ekko-reswk,
          save_ebeln LIKE ekko-ebeln,
          save_ekgrp LIKE ekko-ekgrp,
          save_linam LIKE am07m-name1,
          save_lina2 LIKE am07m-name2,
          save_eknam LIKE t024-eknam,
          save_ektel LIKE t024-ektel,
          save_ematn LIKE mseg-ematn,
          save_lfa1  LIKE lfa1,
          save_lgort LIKE mseg-lgort,
          save_ladr LIKE ladr,
          offwhile TYPE c,
          & TYPE c VALUE '&',
          blank TYPE c VALUE ' ',
          fenster(5) TYPE c VALUE 'WIN  ',
          fcount(2) TYPE c,
          text1(21) TYPE c VALUE 'INTLINE-TDLINE+  (  )',
          text2(22) TYPE c VALUE 'INTLINE1-TDLINE+  (  )',
          text5(22) TYPE c VALUE 'INTLINE1-TDLINE+  (  )',
          hifeld1(21) TYPE c VALUE 'INTLINE-TDLINE+  (10)',
          shift(2) TYPE n,
          fpage LIKE sy-pagno,
          xscreen(1) TYPE c,
          retco LIKE sy-subrc,
          mblnr LIKE mkpf-mblnr,
          zeile LIKE mseg-zeile,
          new_page,
          xkopfdr,                         "Kopf bereits gedruckt
          n_vornr LIKE resb-vornr.         "Netzplanvorgang
    INCLUDE /SMB40/M07DRMTA.
    *------Lesen Tabelle T001----------------------------------------------*
    FORM TAB001_LESEN.
      IF NOT T001-BUKRS = MSEG-BUKRS.
        SELECT SINGLE * FROM T001 WHERE BUKRS = MSEG-BUKRS.
      ENDIF.
    ENDFORM.
    *-------Lesen Tabelle T001w--------------------------------------------*
    FORM TAB001W_LESEN.
      IF NOT T001W-WERKS = MSEG-WERKS.
        SELECT SINGLE * FROM T001W WHERE WERKS = MSEG-WERKS.
      ENDIF.
        R_WERKS = T001W-WERKS.
        R_NAME1 = T001W-NAME1.
    * Sprache für Formular aus Kondition, sonst aus Werk
      IF NOT NAST-SPRAS IS INITIAL.
        LANGUAGE = NAST-SPRAS.
      ELSE.
        LANGUAGE = T001W-SPRAS.
      ENDIF.
      SET LANGUAGE LANGUAGE.
    ENDFORM.
    *-------Lesen Tabelle T001w bei Werkswechsel --------------------------*
    FORM TAB001W_LESEN_2.
      IF NOT MSEG-WERKS = T001W-WERKS.
        SELECT SINGLE * FROM T001W WHERE WERKS = MSEG-WERKS.
      ENDIF.
    ENDFORM.
    *--------Lesen Tabelle T156--------------------------------------------*
    FORM TAB156_LESEN.
      IF NOT T156-BWART = MSEG-BWART.
        SELECT SINGLE * FROM T156 WHERE BWART = MSEG-BWART.
      ENDIF.
    ENDFORM.
    *-------Lesen Tabelle T156t--------------------------------------------*
    FORM TAB156T_LESEN.
      SELECT SINGLE * FROM T156T WHERE SPRAS = LANGUAGE
                                 AND   BWART = MSEG-BWART
                                 AND   SOBKZ = MSEG-SOBKZ
                                 AND   KZBEW = MSEG-KZBEW
                                 AND   KZZUG = MSEG-KZZUG
                                 AND   KZVBR = MSEG-KZVBR.
    ENDFORM.
    *------Lesen Tabelle T024----------------------------------------------*
    FORM TAB024_LESEN.
       IF NOT T024-EKGRP = EKKO-EKGRP.
         SELECT SINGLE * FROM T024 WHERE EKGRP = EKKO-EKGRP.
       ENDIF.
    ENDFORM.
    *------Lesen Tabelle T024D---------------------------------------------*
    FORM TAB024D_LESEN.
       SELECT SINGLE * FROM T024D WHERE WERKS = MSEG-WERKS
                                  AND   DISPO = AFKO-DISPO.
    ENDFORM.
    *---------------------- T027B,C lesen ---------------------------------*
    FORM T027_LESEN.
      SELECT SINGLE * FROM T027B WHERE SPRAS = LANGUAGE
                                 AND   EVERS = MSEG-EVERS.
      CHECK NOT MSEG-EVERE IS INITIAL.
      SELECT SINGLE * FROM T027C WHERE EVERS = MSEG-EVERS
                                 AND   EVERE = MSEG-EVERE.
      IF NOT T027C-EVDRK IS INITIAL.
        SELECT SINGLE * FROM T027D WHERE SPRAS = LANGUAGE
                                   AND   EVERS = MSEG-EVERS
                                   AND   EVERE = MSEG-EVERE.
      ENDIF.
    ENDFORM.
    *------------ Lesen der Tabelle T159P Barcode oder Mehrfachdruck ------*
    *----------------------- gewünscht ? ----------------------------------*
    FORM LESEN_T159P.
      IF NOT T159P-TDDEST = NAST-LDEST.
        SELECT SINGLE * FROM T159P WHERE TDDEST = NAST-LDEST.
      ENDIF.
    ENDFORM.
    *&      Form  T064B_LESEN
    *       Lesen Text zur Bestandsart Qualität/Gesperrt bei WE
    FORM T064B_LESEN.
      DATA: BSTAR LIKE T064B-BSTAR.
      CASE MSEG-INSMK.
        WHEN SPACE.
          CLEAR T064B.
          EXIT.
        WHEN F.
          CLEAR T064B.
          EXIT.
        WHEN X.
          BSTAR = ZWEI.
        WHEN ZWEI.
          BSTAR = ZWEI.
        WHEN S.
          BSTAR = VIER.
        WHEN DREI.
          BSTAR = VIER.
      ENDCASE.
      IF NOT T064B-BSTAR = BSTAR.
        SELECT SINGLE * FROM T064B WHERE SPRAS = LANGUAGE
                                   AND   BSTAR = BSTAR.
      ENDIF.
    ENDFORM.                    " T064B_LESEN
    INCLUDE /SMB40/M07DRMMA.
    *---------Material lesen-----------------------------------------------*
    FORM MATERIAL_LESEN.
      CLEAR MTCOM.
      MTCOM-KENNG = 'MABDR'.
      MTCOM-MATNR = MSEG-MATNR.
      MTCOM-WERKS = MSEG-WERKS.
      MTCOM-LGORT = MSEG-LGORT.
      MTCOM-SPRAS = LANGUAGE.
      MTCOM-NOMUS = 'X'.
      CALL FUNCTION 'MATERIAL_LESEN'
           EXPORTING
                SCHLUESSEL = MTCOM
           IMPORTING
                MATDATEN   = MABDR
                RETURN     = MTCOR
           TABLES
                SEQMAT01   = DUMMY.
      IF NOT T156-KZMHD IS INITIAL.
        IF NOT MABDR-MHDLP IS INITIAL.
          IF T001W-VLFKZ = B.              "Zentrale ?
            PERFORM MHD_BERECHNEN.
          ENDIF.
        ENDIF.
      ENDIF.
    ENDFORM.
    *----------------- Mindesthaltbarkeit berechnen  ---------------------*
    FORM MHD_BERECHNEN.
      IF NOT EKPO-MHDRZ IS INITIAL.
        AM07M-MHDAT = MSEG-VFDAT - ( EKPO-MHDRZ * MABDR-MHDLP / 100 ).
      ELSEIF NOT MABDR-MHDRZ IS INITIAL.
        AM07M-MHDAT = MSEG-VFDAT - ( MABDR-MHDRZ * MABDR-MHDLP / 100 ).
      ENDIF.
    ENDFORM.
    *----------------- Prueftext lesen-------------------------------------*
    FORM PRUEFTEXT_LESEN.
      CLEAR  DPTEXT.
      CLEAR  THEADER.
      REFRESH DPTEXT.
      THEADER-TDID             = 'PRUE'.
      THEADER-TDSPRAS          = LANGUAGE.
      THEADER-TDNAME           = MSEG-MATNR.
      THEADER-TDOBJECT         = 'MATERIAL '.
      CALL FUNCTION 'SELECT_TEXT'
           EXPORTING
                ID         = THEADER-TDID
                LANGUAGE   = THEADER-TDSPRAS
                NAME       = THEADER-TDNAME
                OBJECT     = THEADER-TDOBJECT
           IMPORTING
                ENTRIES    = EINTRAEGE
           TABLES
                SELECTIONS = DPTEXT.
    ENDFORM.
    *                Lesen der Herstellerteilenummer                       *
    FORM LESEN_HTN.
      SELECT SINGLE MFRPN FROM MARA
               INTO (AM07M-MFRPN) WHERE MATNR = MSEG-EMATN.
    ENDFORM.
    INCLUDE /SMB40/M07DRMBE.
    *-------------Bestellung lesen-----------------------------------------*
    FORM BESTELLUNG_LESEN."ORDER READING
      DATA: NAME1 LIKE ADDR1_VAL-NAME1.
      DATA: OLD_LIFNR LIKE EKKO-LIFNR.
      CLEAR AM07M-NAME1.
      CLEAR AM07M-NAME2.
      IF EKKO-EBELN NE MSEG-EBELN.
        SELECT SINGLE * FROM EKKO WHERE EBELN = MSEG-EBELN.
      ENDIF.
      SELECT SINGLE * FROM EKPO WHERE EBELN = MSEG-EBELN
                                AND   EBELP = MSEG-EBELP.
    * Purchase order history because of XBLNR read, since from MKPF can
    *deviate
      SELECT SINGLE * FROM EKBE WHERE EBELN = MSEG-EBELN
                                AND   EBELP = MSEG-EBELP
                                AND   VGABE = '1'
                                AND   GJAHR = MSEG-MJAHR
                                AND   BELNR = MSEG-MBLNR
                                AND   BUZEI = MSEG-ZEILE.
      IF NOT SY-SUBRC IS INITIAL.
        CLEAR EKBE.
      ELSE.
        IF NOT EKBE-XBLNR IS INITIAL.
          MKPF-XBLNR = EKBE-XBLNR.
        ENDIF.
      ENDIF.
      CALL FUNCTION 'MM_ADDRESS_GET'
           EXPORTING  I_EKKO    = EKKO
           IMPORTING  E_NAME1   = NAME1
           EXCEPTIONS OTHERS    = 1.
      AM07M-NAME1 = NAME1.
      IF NOT EKKO-LLIEF IS INITIAL.
        OLD_LIFNR = EKKO-LIFNR.
        EKKO-LIFNR = EKKO-LLIEF.
        CALL FUNCTION 'MM_ADDRESS_GET'
             EXPORTING  I_EKKO    = EKKO
             IMPORTING  E_NAME1   = NAME1
             EXCEPTIONS OTHERS    = 1.
        AM07M-NAME2 = NAME1.
        EKKO-LIFNR = OLD_LIFNR.
      ENDIF.
      XPSTY = EKPO-KNTTP.
      CASE XPSTY.
        WHEN B.
          XPSTY = XKDE.
        WHEN D.
          XPSTY = XKDE.
        WHEN G.
          XPSTY = XPROJN.
        WHEN O.
          XPSTY = XPROJN.
        WHEN Q.
          XPSTY = XPROJN.
      ENDCASE.
    ENDFORM.
    *----------Bestelltext lesen, wenn Matnr. = 0--------------------------*
    FORM BESTELLTEXT_LESEN.
       CLEAR:   THEADER,
                THEAD,
                DTEXT.
       REFRESH
                DTEXT.
       THEADER-TDID          = 'F01 '.
       THEADER-TDSPRAS       = EKKO-SPRAS.
       THEADER-TDNAME(10)    = MSEG-EBELN.
       THEADER-TDNAME+10(5)  = MSEG-EBELP.
       THEADER-TDOBJECT      = 'EKPO      '.
       CALL FUNCTION 'READ_TEXT'
          EXPORTING ID          = THEADER-TDID
                    LANGUAGE    = THEADER-TDSPRAS
                    NAME        = THEADER-TDNAME
                    OBJECT      = THEADER-TDOBJECT
         IMPORTING  HEADER      = THEAD
         TABLES     LINES       = DTEXT
         EXCEPTIONS ID          = 1
                    LANGUAGE    = 2
                    NAME        = 3
                    NOT_FOUND   = 4
                    OBJECT      = 5.
    ENDFORM.
    *------------Bestellkopf lesen für WE-Version 2.-----------------------*
    FORM BESTELLKOPF_LESEN.
       CLEAR:   THEADER,
                THEAD,
                DKTEXT.
       REFRESH:
                DKTEXT.
       THEADER-TDID           = 'F01 '.
       THEADER-TDSPRAS        = EKKO-SPRAS.
       THEADER-TDNAME(10)     = MSEG-EBELN.
       THEADER-TDOBJECT       = 'EKKO      '.
       CALL FUNCTION 'READ_TEXT'
          EXPORTING ID        = THEADER-TDID
                    LANGUAGE  = THEADER-TDSPRAS
                    NAME      = THEADER-TDNAME
                    OBJECT    = THEADER-TDOBJECT
         IMPORTING  HEADER    = THEAD
         TABLES     LINES     = DKTEXT
         EXCEPTIONS ID        = 1
                    LANGUAGE  = 2
                    NAME      = 3
                    NOT_FOUND = 4
                    OBJECT    = 5.
    ENDFORM.
    INCLUDE /SMB40/M07DRMFA.
    *------ Auftragskopf lesen --------------------------------------------*
    FORM AUFTRAG_LESEN.
      SELECT SINGLE * FROM AFKO WHERE AUFNR = MSEG-AUFNR.
      IF MSEG-MATNR IS INITIAL.
        SELECT SINGLE * FROM AUFK WHERE AUFNR = MSEG-AUFNR.
        IF NOT SY-SUBRC IS INITIAL.
          MESSAGE E001 WITH 'AUFK' MSEG-AUFNR.
        ELSE.
          MABDR-MAKTX = AUFK-KTEXT.
        ENDIF.
      ENDIF.
    ENDFORM.
    INCLUDE /SMB40/M07DRKON.
    FORM KONTIERUNG_LESEN.
       REFRESH XEKKN. CLEAR XEKKN.
       SELECT * FROM EKKN WHERE EBELN = EKPO-EBELN
                          AND   EBELP = EKPO-EBELP.
         MOVE-CORRESPONDING EKKN TO XEKKN.
         APPEND XEKKN.
    *    x_kont = x.
       ENDSELECT.
       DESCRIBE TABLE XEKKN LINES INDEX_Z.
       IF INDEX_Z GT 1.
         X_KONT = X.
       ELSE.
         X_KONT1 = X.
       ENDIF.
    ENDFORM.
    * Network plan process determine.
    FORM NW_VORGANG_LESEN USING F_AUFPL F_APLZL.
      CALL FUNCTION 'READ_NETWORK_NPLNR_VORNR'
           EXPORTING
                APLZL     = F_APLZL
                AUFPL     = F_AUFPL
           IMPORTING
                VORNR     = N_VORNR
           EXCEPTIONS
                NOT_FOUND = 01.
    ENDFORM.
    *       FORM PSP_CONVERT                                               *
    *       Konvertierung des internen Felds PS_PSP_PNR zur Ausgabe        *
    FORM PSP_CONVERT USING PSPNR LIKE MSEG-PS_PSP_PNR.
      CALL FUNCTION 'CJPN_INTERN_TO_EXTERN_CONV'
           EXPORTING
                INT_NUM = PSPNR
           IMPORTING
                EXT_NUM = AM07M-KONTIERUNG.
    ENDFORM.
    INCLUDE /SMB40/M07DRF01.
    FORM WF01_DRUCK.
       CALL FUNCTION 'START_FORM'
          EXPORTING FORM = TNAPR-FONAM
                LANGUAGE = LANGUAGE.
          BELPOS-MBLNR = MKPF-MBLNR.
          BELPOS-ZEILE = MSEG-ZEILE.
          CONDENSE BELPOS NO-GAPS.
          AM07M-BELPOS = BELPOS.
          IF T156-SHKZG = H.
            AM07M-HDLNE = TEXT-020.
          ELSE.
            AM07M-HDLNE = TEXT-010.
          ENDIF.
          IF NOT T159P-BACOD IS INITIAL.
            CALL FUNCTION 'WRITE_FORM'
                 EXPORTING ELEMENT = 'W1BACOKOPF'.
          ELSE.
             CALL FUNCTION 'WRITE_FORM'
                 EXPORTING ELEMENT = 'W1KOPF'.
          ENDIF.
          IF XPSTY       IS INITIAL.
             IF MSEG-XBLVS IS INITIAL.
                PERFORM WF1_LAGERMATERIAL.             "Lagermaterial
             ELSE.
                PERFORM WF1_LVSMATERIAL.               "LVS-Material
             ENDIF.
          ELSE.
             PERFORM WF1_VERBRAUCHSMATERIAL.
          ENDIF.
       CALL FUNCTION 'END_FORM'.
       PERFORM MKTO_DRUCK.
    ENDFORM.
    *------------ Drucken Lagermaterial ---------------------------------*
    FORM WF1_LAGERMATERIAL.
       CALL FUNCTION 'WRITE_FORM'
          EXPORTING ELEMENT = 'W1LGMAT'.
       IF T156-SHKZG = H AND
         NOT MSEG-GRUND IS INITIAL.
         SELECT SINGLE * FROM T157E WHERE BWART = MSEG-BWART
                                    AND   GRUND = MSEG-GRUND
                                    AND   SPRAS = LANGUAGE.
         CALL FUNCTION 'WRITE_FORM'
              EXPORTING ELEMENT = 'RUELGGRUND'.
       ENDIF.
       CALL FUNCTION 'WRITE_FORM'
            EXPORTING ELEMENT = 'LGAUSST'.
    ENDFORM.
    FORM WF1_LVSMATERIAL.
       CALL FUNCTION 'WRITE_FORM'
          EXPORTING ELEMENT = 'W1LVSMAT'.
       IF T156-SHKZG = H AND
         NOT MSEG-GRUND IS INITIAL.
         SELECT SINGLE * FROM T157E WHERE BWART = MSEG-BWART
                                    AND   GRUND = MSEG-GRUND
                                    AND   SPRAS = LANGUAGE.
         CALL FUNCTION 'WRITE_FORM'
              EXPORTING ELEMENT = 'RUELVSGRUND'.
       ENDIF.
       CALL FUNCTION 'WRITE_FORM'
            EXPORTING ELEMENT = 'LVSAUSST'.
    ENDFORM.
    *-------------Drucken Verbrauchsmaterial------------------------------*
    FORM WF1_VERBRAUCHSMATERIAL.
       CASE XPSTY.
         WHEN XKDANR.                             "Kundenauftrag
           MOVE SPACE TO KUNDE.
           CLEAR AM07M-KOTXT.
           AM07M-KOTXT = TEXT-030.
           KUNDE-KDAUF = MSEG-KDAUF.
           KUNDE-KDPOS = MSEG-KDPOS.
           KUNDE-KDEIN = MSEG-KDEIN.
           MOVE SPACE TO AM07M-KONTIERUNG.
           CONDENSE KUNDE NO-GAPS.
           AM07M-KONTIERUNG = KUNDE.
         WHEN XANLAGE.                            "Anlage
           MOVE SPACE TO ANLAGE.
           CLEAR AM07M-KOTXT.
           AM07M-KOTXT = TEXT-040.
           ANLAGE-ANLN1 = MSEG-ANLN1.
           ANLAGE-ANLN2 = MSEG-ANLN2.
           MOVE SPACE TO AM07M-KONTIERUNG.
           CONDENSE ANLAGE NO-GAPS.
           AM07M-KONTIERUNG = ANLAGE.
         WHEN XKOSTL.                             "Kostenstelle
           CLEAR AM07M-KOTXT.
           AM07M-KOTXT = TEXT-050.
           AM07M-KONTIERUNG = MSEG-KOSTL.
         WHEN XPROJN.                             "Projekt/Netzplan
           CLEAR AM07M-KOTXT.
           IF MSEG-NPLNR IS INITIAL.
             AM07M-KOTXT = TEXT-060.
             PERFORM PSP_CONVERT USING MSEG-PS_PSP_PNR.
           ELSE.
             AM07M-KOTXT = TEXT-061.
             AM07M-KONTIERUNG = MSEG-NPLNR.
             PERFORM NW_VORGANG_LESEN USING MSEG-AUFPL MSEG-APLZL.
             IF NOT N_VORNR IS INITIAL.
               MOVE '/'     TO AM07M-KONTIERUNG+12.
               MOVE N_VORNR TO AM07M-KONTIERUNG+13.
             ENDIF.
           ENDIF.
       ENDCASE.
       CALL FUNCTION 'WRITE_FORM'
         EXPORTING ELEMENT = 'W1VERBRMAT'.
       IF T156-SHKZG = H AND
         NOT MSEG-GRUND IS INITIAL.
         SELECT SINGLE * FROM T157E WHERE BWART = MSEG-BWART
                                    AND   GRUND = MSEG-GRUND
                                    AND   SPRAS = LANGUAGE.
         CALL FUNCTION 'WRITE_FORM'
              EXPORTING ELEMENT = 'RUELVERBRGRUND'.
       ENDIF.
       CALL FUNCTION 'WRITE_FORM'
            EXPORTING ELEMENT = 'VERBRAUSST'.
    ENDFORM.
    INCLUDE /SMB40/M07DRF02.
    FORM WF02_DRUCK.
       T001W-WERKS = R_WERKS.
       T001W-NAME1 = R_NAME1.
       CALL FUNCTION 'START_FORM'
            EXPORTING FORM = TNAPR-FONAM
                  LANGUAGE = LANGUAGE.
       PERFORM PRUEFTEXT_LESEN.
          IF T156-SHKZG = 'H'.           "Kennzeichen Haben ?
            AM07M-HDLNE = TEXT-020.
          ELSE.
            AM07M-HDLNE = TEXT-010.
          ENDIF.
          IF NOT T159P-BACOD IS INITIAL.
            BELPOS-MBLNR = MKPF-MBLNR.
            BELPOS-ZEILE = MSEG-ZEILE.
            CONDENSE BELPOS NO-GAPS.
            AM07M-BELPOS = BELPOS.
            CALL FUNCTION 'WRITE_FORM'
                 EXPORTING ELEMENT = 'WE2BACOKOPF'.
          ELSE.
            CALL FUNCTION 'WRITE_FORM'
                 EXPORTING ELEMENT = 'WE2KOPF'.
          ENDIF.
          IF XPSTY       IS INITIAL.        "Lagermaterial ?
             PERFORM W2_LAGERMATERIAL.
          ELSE.
             PERFORM W2_VERBRAUCHSMATERIAL.
          ENDIF.
       CALL FUNCTION 'END_FORM'.
       PERFORM MKTO_DRUCK.
    ENDFORM.
    *-------------- Lagermaterial WE-Version 2 ---------------------------*
    FORM WF2_LAGERMATERIAL.
      CALL FUNCTION 'WRITE_FORM'
           EXPORTING ELEMENT = 'WE2LGMAT'.
      IF T156-SHKZG = H AND
         NOT MSEG-GRUND IS INITIAL.
        SELECT SINGLE * FROM T157E WHERE BWART = MSEG-BWART
                                   AND   GRUND = MSEG-GRUND
                                   AND   SPRAS = LANGUAGE.
        CALL FUNCTION 'WRITE_FORM'
             EXPORTING ELEMENT = 'RUELGGRUND'.
      ENDIF.
        THEAD-TDID     = THEADER-TDID.
        THEAD-TDNAME   = THEADER-TDNAME.
        THEAD-TDOBJECT = THEADER-TDOBJECT.
        THEAD-TDSPRAS  = THEADER-TDSPRAS.
        CALL FUNCTION 'WRITE_FORM'
            EXPORTING ELEMENT = 'PRTXTLGMAT'.
    ENDFORM.
    *------------ Verbrauchsmaterial WE-Version 2 ----------------------*
    FORM WF2_VERBRAUCHSMATERIAL.
        CASE XPSTY.
           WHEN XKDANR.
              MOVE SPACE TO KUNDE.
              CLEAR AM07M-KOTXT.
              AM07M-KOTXT = TEXT-030.
              KUNDE-KDAUF = MSEG-KDAUF.
              KUNDE-KDPOS = MSEG-KDPOS.
              KUNDE-KDEIN = MSEG-KDEIN.
              MOVE SPACE TO AM07M-KONTIERUNG.
              CONDENSE KUNDE NO-GAPS.
              AM07M-KONTIERUNG = KUNDE.
           WHEN XANLAGE.
              MOVE SPACE TO ANLAGE.
              CLEAR AM07M-KOTXT.
              AM07M-KOTXT = TEXT-040.
              ANLAGE-ANLN1 = MSEG-ANLN1.
              ANLAGE-ANLN2 = MSEG-ANLN2.
              MOVE SPACE TO AM07M-KONTIERUNG.
              CONDENSE ANLAGE NO-GAPS.
              AM07M-KONTIERUNG = ANLAGE.
           WHEN XKOSTL.
              CLEAR AM07M-KOTXT.
              AM07M-KOTXT = TEXT-050.
              AM07M-KONTIERUNG = MSEG-KOSTL.
           WHEN XPROJN.
              CLEAR AM07M-KOTXT.
              IF MSEG-NPLNR IS INITIAL.
                AM07M-KOTXT = TEXT-060.
                PERFORM PSP_CONVERT USING MSEG-PS_PSP_PNR.
              ELSE.
                AM07M-KOTXT = TEXT-061.
                AM07M-KONTIERUNG = MSEG-NPLNR.
                PERFORM NW_VORGANG_LESEN USING MSEG-AUFPL MSEG-APLZL.
                IF NOT N_VORNR IS INITIAL.
                  MOVE '/'     TO AM07M-KONTIERUNG+12.
                  MOVE N_VORNR TO AM07M-KONTIERUNG+13.
                ENDIF.
              ENDIF.
        ENDCASE.
      CALL FUNCTION 'WRITE_FORM'
           EXPORTING ELEMENT = 'WE2VERBRMAT'.
       IF T156-SHKZG = H AND
         NOT MSEG-GRUND IS INITIAL.
         SELECT SINGLE * FROM T157E WHERE BWART = MSEG-BWART
                                    AND   GRUND = MSEG-GRUND
                                    AND   SPRAS = LANGUAGE.
         CALL FUNCTION 'WRITE_FORM'
              EXPORTING ELEMENT = 'RUEVERBRGRUND'.
       ENDIF.
         THEAD-TDID     = THEADER-TDID.
         THEAD-TDNAME   = THEADER-TDNAME.
         THEAD-TDOBJECT = THEADER-TDOBJECT.
         THEAD-TDSPRAS  = THEADER-TDSPRAS.
         CALL FUNCTION 'WRITE_FORM'
              EXPORTING ELEMENT = 'PRTXTVERBRMAT'.
    ENDFORM.
    INCLUDE /SMB40/M07DRE01.
    FORM WE01_DRUCK.
       T001W-WERKS = R_WERKS.
       T001W-NAME1 = R_NAME1.
    ENDFORM.
    *------------ Drucken Lagermaterial ---------------------------------*
    FORM W1_LAGERMATERIAL.
       CALL FUNCTION 'WRITE_FORM'
          EXPORTING ELEMENT = 'W1LGMAT'.
       IF T156-SHKZG = H AND
         NOT MSEG-GRUND IS INITIAL.
         SELECT SINGLE * FROM T157E WHERE BWART = MSEG-BWART
                                    AND   GRUND = MSEG-GRUND
                                    AND   SPRAS = LANGUAGE.
         CALL FUNCTION 'WRITE_FORM'
              EXPORTING ELEMENT = 'RUELGGRUND'.
       ENDIF.
       CALL FUNCTION 'WRITE_FORM'
            EXPORTING ELEMENT = 'LGAUSST'.
    ENDFORM.
    FORM W1_LVSMATERIAL.
       CALL FUNCTION 'WRITE_FORM'
          EXPORTING ELEMENT = 'W1LVSMAT'.
       IF T156-SHKZG = H AND
         NOT MSEG-GRUND IS INITIAL.
         SELECT SINGLE * FROM T157E WHERE BWART = MSEG-BWART
                                    AND   GRUND = MSEG-GRUND
                                    AND   SPRAS = LANGUAGE.
         CALL FUNCTION 'WRITE_FORM'
              EXPORTING ELEMENT = 'RUELVSGRUND'.
       ENDIF.
       CALL FUNCTION 'WRITE_FORM'
            EXPORTING ELEMENT = 'LVSAUSST'.
    ENDFORM.
    *-------------Drucken Verbrauchsmaterial------------------------------*
    FORM W1_VERBRAUCHSMATERIAL.
       CLEAR: AM07M-KOTXT, AM07M-KONTIERUNG.
       CASE XPSTY.
         WHEN XFERT.                            "Fertigungsauftrag
           AM07M-KOTXT = TEXT-062.
           IF X_KONT1 IS INITIAL.
             AM07M-KONTIERUNG = MSEG-AUFNR.
           ELSE.
             AM07M-KONTIERUNG = EKKN-AUFNR.
           ENDIF.
         WHEN XKDE.                             "Kundeneinzelbest.
           MOVE SPACE TO KUNDE.
           AM07M-KOTXT = TEXT-030.
           IF X_KONT1 IS INITIAL.
             KUNDE-KDAUF = MSEG-KDAUF.
             KUNDE-KDPOS = MSEG-KDPOS.
            ELSE.
             KUNDE-KDAUF = EKKN-VBELN.
             KUNDE-KDPOS = EKKN-VBELP.
            ENDIF.
           MOVE SPACE TO AM07M-KONTIERUNG.
           CONDENSE KUNDE NO-GAPS.
           AM07M-KONTIERUNG = KUNDE.
         WHEN XKDANR.                             "Kundenauftrag
           MOVE SPACE TO KUNDE.
           AM07M-KOTXT = TEXT-030.
           IF X_KONT1 IS INITIAL.
             KUNDE-KDAUF = MSEG-KDAUF.
             KUNDE-KDPOS = MSEG-KDPOS.
             KUNDE-KDEIN = MSEG-KDEIN.
            ELSE.
             KUNDE-KDAUF = EKKN-VBELN.
             KUNDE-KDPOS = EKKN-VBELP.
             KUNDE-KDEIN = EKKN-VETEN.
            ENDIF.
           MOVE SPACE TO AM07M-KONTIERUNG.
           CONDENSE KUNDE NO-GAPS.
           AM07M-KONTIERUNG = KUNDE.
         WHEN XANLAGE.                            "Anlage
           MOVE SPACE TO ANLAGE.
           AM07M-KOTXT = TEXT-040.
           IF X_KONT1 IS INITIAL.
             ANLAGE-ANLN1 = MSEG-ANLN1.
             ANLAGE-ANLN2 = MSEG-ANLN2.
           ELSE.
             ANLAGE-ANLN1 = EKKN-ANLN1.
             ANLAGE-ANLN2 = EKKN-ANLN2.
           ENDIF.
           MOVE SPACE TO AM07M-KONTIERUNG.
           CONDENSE ANLAGE NO-GAPS.
           AM07M-KONTIERUNG = ANLAGE.
         WHEN XKOSTL.                             "Kostenstelle
           AM07M-KOTXT = TEXT-050.
           IF X_KONT1 IS INITIAL.
             AM07M-KONTIERUNG = MSEG-KOSTL.
           ELSE.
             AM07M-KONTIERUNG = EKKN-KOSTL.
           ENDIF.
         WHEN XPROJN.                             "Projekt/Netzplan
           IF X_KONT1 IS INITIAL.
             IF MSEG-NPLNR IS INITIAL.
               AM07M-KOTXT = TEXT-060.
               PERFORM PSP_CONVERT USING MSEG-PS_PSP_PNR.
             ELSE.
               AM07M-KOTXT = TEXT-061.
               AM07M-KONTIERUNG = MSEG-NPLNR.
               PERFORM NW_VORGANG_LESEN USING MSEG-AUFPL MSEG-APLZL.
               IF NOT N_VORNR IS INITIAL.
                 MOVE '/'     TO AM07M-KONTIERUNG+12.
                 MOVE N_VORNR TO AM07M-KONTIERUNG+13.
               ENDIF.
             ENDIF.
           ELSE.
             IF EKKN-NPLNR IS INITIAL.
               AM07M-KOTXT = TEXT-060.
               PERFORM PSP_CONVERT USING EKKN-PS_PSP_PNR.
             ELSE.
               AM07M-KOTXT = TEXT-061.
               AM07M-KONTIERUNG = EKKN-NPLNR.
               PERFORM NW_VORGANG_LESEN USING EKKN-AUFPL EKKN-APLZL.
               IF NOT N_VORNR IS INITIAL.
                 MOVE '/'     TO AM07M-KONTIERUNG+12.
                 MOVE N_VORNR TO AM07M-KONTIERUNG+13.
               ENDIF.
             ENDIF.
           ENDIF.
       ENDCASE.
       CLEAR X_KONT1.
    * User-Exit über Erweiterung MBCF0005
       CALL CUSTOMER-FUNCTION '001'
            EXPORTING
                 I_MKPF  = MKPF
                 I_MSEG  = MSEG
                 I_EKKO  = EKKO
                 I_EKPO  = EKPO
                 I_NAST  = NAST
                 I_TNAPR = TNAPR
            TABLES
                 I_EKKN  = XEKKN
            CHANGING
                 C_AM07M = AM07M
            EXCEPTIONS
                 OTHERS  = 0.
       CALL FUNCTION 'WRITE_FORM'
         EXPORTING ELEMENT = 'W1VERBRMAT'.
       IF T156-SHKZG = H AND
         NOT MSEG-GRUND IS INITIAL.
         SELECT SINGLE * FROM T157E WHERE BWART = MSEG-BWART
                                    AND   GRUND = MSEG-GRUND
                                    AND   SPRAS = LANGUAGE.
         CALL FUNCTION 'WRITE_FORM'
              EXPORTING ELEMENT = 'RUELVERBRGRUND'.
       ENDIF.
       CALL FUNCTION 'WRITE_FORM'
            EXPORTING ELEMENT = 'VERBRAUSST'.
    ENDFORM.
    INCLUDE /SMB40/M07DRE02.
    *       FORM WE02_DRUCK                                               *
    FORM WE02_DRUCK.
      T001W-WERKS = R_WERKS.
      T001W-NAME1 = R_NAME1.
      CALL FUNCTION 'START_FORM'
           EXPORTING
                FORM     = TNAPR-FONAM
                LANGUAGE = LANGUAGE.
      PERFORM PRUEFTEXT_LESEN.
      IF NOT MSEG-VFDAT IS INITIAL.
        AM07M-MHTXT = TEXT-105.
      ENDIF.
      IF NOT AM07M-MHDAT IS INITIAL.
        AM07M-MHZTX = TEXT-106.
      ENDIF.
      IF EKKO-BSART = 'UB'.
        AM07M-LITXT = TEXT-101.
        AM07M-LIBZG = EKKO-RESWK.
      ELSE.
        AM07M-LITXT = TEXT-100.
        AM07M-LIBZG = EKKO-LIFNR.
        IF NOT EKKO-LLIEF IS INITIAL.
          AM07M-LIBZ2 = EKKO-LLIEF.
        ELSE.
          AM07M-LIBZ2 = EKKO-LIFNR.
        ENDIF.
      ENDIF.
      IF T156-SHKZG = 'H'.                 "Kennzeichen Haben ?
        AM07M-HDLNE = TEXT-020.
      ELSE.
        AM07M-HDLNE = TEXT-010.
      ENDIF.
      IF NOT T159P-BACOD IS INITIAL.
        BELPOS-MBLNR = MKPF-MBLNR.
        BELPOS-ZEILE = MSEG-ZEILE.
        CONDENSE BELPOS NO-GAPS.
        AM07M-BELPOS = BELPOS.
        CALL FUNCTION 'WRITE_FORM'
             EXPORTING
                  ELEMENT = 'WE2BACOKOPF'.
      ELSE.
        CALL FUNCTION 'WRITE_FORM'
             EXPORTING
                  ELEMENT = 'WE2KOPF'.
      ENDIF.
      IF XPSTY       IS INITIAL.           "Lagermaterial ?
    * User-Exit über Erweiterung MBCF0005
        CALL CUSTOMER-FUNCTION '001'
             EXPORTING
                  I_MKPF  = MKPF
                  I_MSEG  = MSEG
                  I_EKKO  = EKKO
                  I_EKPO  = EKPO
                  I_NAST  = NAST
                  I_TNAPR = TNAPR
             TABLES
                  I_EKKN  = XEKKN
             CHANGING
                  C_AM07M = AM07M
             EXCEPTIONS
                  OTHERS  = 0.
        IF MSEG-XBLVS IS INITIAL.
           PERFORM W2_LAGERMATERIAL.             "Lagermaterial
        ELSE.
           PERFORM W2_LVSMATERIAL.               "LVS-Material
        ENDIF.
      ELSE.
        PERFORM W2_VERBRAUCHSMATERIAL.
      ENDIF.
      CALL FUNCTION 'END_FORM'.
      PERFORM MKTO_DRUCK.
    ENDFORM.
    *-------------- Lagermaterial WE-Version 2 ---------------------------*
    FORM W2_LAGERMATERIAL.
      CALL FUNCTION 'WRITE_FORM'
           EXPORTING
                ELEMENT = 'WE2LGMAT'.
      IF T156-SHKZG = H AND
         NOT MSEG-GRUND IS INITIAL.
        SELECT SINGLE * FROM T157E WHERE BWART = MSEG-BWART
                                   AND   GRUND = MSEG-GRUND
                                   AND   SPRAS = LANGUAGE.
        CALL FUNCTION 'WRITE_FORM'
             EXPORTING
                  ELEMENT = 'RUELGGRUND'.
      ENDIF.
      THEAD-TDID     = THEADER-TDID.
      THEAD-TDNAME   = THEADER-TDNAME.
      THEAD-TDOBJECT = THEADER-TDOBJECT.
      THEAD-TDSPRAS  = THEADER-TDSPRAS.
      CALL FUNCTION 'WRITE_FORM'
           EXPORTING
                ELEMENT = 'PRTXTLGMAT'.
    ENDFORM.
    *-------------- LVS-Daten     WE-Version 2 ---------------------------*
    FORM W2_LVSMATERIAL.
      CALL FUNCTION 'WRITE_FORM'
           EXPORTING
                ELEMENT = 'W1LVSMAT'.
      IF T156-SHKZG = H AND
         NOT MSEG-GRUND IS INITIAL.
        SELECT SINGLE * FROM T157E WHERE BWART = MSEG-BWART
                                   AND   GRUND = MSEG-GRUND
                                   AND   SPRAS = LANGUAGE.
        CALL FUNCTION 'WRITE_FORM'
             EXPORTING
                  ELEMENT = 'RUELVSGRUND'.
      ENDIF.
      THEAD-TDID     = THEADER-TDID.
      THEAD-TDNAME   = THEADER-TDNAME.
      THEAD-TDOBJECT = THEADER-TDOBJECT.
      THEAD-TDSPRAS  = THEADER-TDSPRAS.
      CALL FUNCTION 'WRITE_FORM'
           EXPORTING
                ELEMENT = 'PRTXTLVSMAT'.
    ENDFORM.
    *------------ Verbrauchsmaterial WE-Version 2 ----------------------*
    FORM W2_VERBRAUCHSMATERIAL.
      CLEAR: AM07M-KOTXT, AM07M-KONTIERUNG.
      CASE XPSTY.
        WHEN XFERT.                        "Fertigungsauftrag
          AM07M-KOTXT = TEXT-062.
          IF X_KONT1 IS INITIAL.
            AM07M-KONTIERUNG = MSEG-AUFNR.
          ELSE.
            AM07M-KONTIERUNG = EKKN-AUFNR.
          ENDIF.
        WHEN XKDE.
          MOVE SPACE TO KUNDE.
          AM07M-KOTXT = TEXT-030.
          IF X_KONT1 IS INITIAL.
            KUNDE-KDAUF = MSEG-KDAUF.
            KUNDE-KDPOS = MSEG-KDPOS.
          ELSE.
            KUNDE-KDAUF = EKKN-VBELN.
            KUNDE-KDPOS = EKKN-VBELP.
          ENDIF.
          MOVE SPACE TO AM07M-KONTIERUNG.
          CONDENSE KUNDE NO-GAPS.
          AM07M-KONTIERUNG = KUNDE.
        WHEN XKDANR.
          MOVE SPACE TO KUNDE.
          AM07M-KOTXT = TEXT-030.
          IF X_KONT1 IS INITIAL.
            KUNDE-KDAUF = MSEG-KDAUF.
            KUNDE-KDPOS = MSEG-KDPOS.
            KUNDE-KDEIN = MSEG-KDEIN.
          ELSE.
            KUNDE-KDAUF = EKKN-VBELN.
            KUNDE-KDPOS = EKKN-VBELP.
            KUNDE-KDEIN = EKKN-VETEN.
          ENDIF.
          MOVE SPACE TO AM07M-KONTIERUNG.
          CONDENSE KUNDE NO-GAPS.
          AM07M-KONTIERUNG = KUNDE.
        WHEN XANLAGE.
          MOVE SPACE TO ANLAGE.
          AM07M-KOTXT = TEXT-040.
          IF X_KONT1 IS INITIAL.
            ANLAGE-ANLN1 = MSEG-ANLN1.
            ANLAGE-ANLN2 = MSEG-ANLN2.
          ELSE.
            ANLAGE-ANLN1 = EKKN-ANLN1.
            ANLAGE-ANLN2 = EKKN-ANLN2.
          ENDIF.
          MOVE SPACE TO AM07M-KONTIERUNG.
          CONDENSE ANLAGE NO-GAPS.
          AM07M-KONTIERUNG = ANLAGE.
        WHEN XKOSTL.
          AM07M-KOTXT = TEXT-050.
          IF X_KONT1 IS INITIAL.
            AM07M-KONTIERUNG = MSEG-KOSTL.
          ELSE.
            AM07M-KONTIERUNG = EKKN-KOSTL.
          ENDIF.
        WHEN XPROJN.
          IF X_KONT1 IS INITIAL.
            IF MSEG-NPLNR IS INITIAL.
              AM07M-KOTXT = TEXT-060.
              PERFORM PSP_CONVERT USING MSEG-PS_PSP_PNR.
            ELSE.
              AM07M-KOTXT = TEXT-061.
              AM07M-KONTIERUNG = MSEG-NPLNR.
              PERFORM NW_VORGANG_LESEN USING MSEG-AUFPL MSEG-APLZL.
              IF NOT N_VORNR IS INITIAL.
                MOVE '/'     TO AM07M-KONTIERUNG+12.
                MOVE N_VORNR TO AM07M-KONTIERUNG+13.
              ENDIF.
            ENDIF.
          ELSE.
            IF EKKN-NPLNR IS INITIAL.
              AM07M-KOTXT = TEXT-060.
              PERFORM PSP_CONVERT USING EKKN-PS_PSP_PNR.
            ELSE.
              AM07M-KOTXT = TEXT-061.
              AM07M-KONTIERUNG = EKKN-NPLNR.
              PERFORM NW_VORGANG_LESEN USING EKKN-AUFPL EKKN-APLZL.
              IF NOT N_VORNR IS INITIAL.
                MOVE '/'     TO AM07M-KONTIERUNG+12.
                MOVE N_VORNR TO AM07M-KONTIERUNG+13.
              ENDIF.
            ENDIF.
          ENDIF.
      ENDCASE.
      CLEAR X_KONT1.
    * User-Exit über Erweiterung MBCF0005
      CALL CUSTOMER-FUNCTION '001'
           EXPORTING
                I_MKPF  = MKPF
                I_MSEG  = MSEG
                I_EKKO  = EKKO
                I_EKPO  = EKPO
                I_NAST  = NAST
                I_TNAPR = TNAPR
           TABLES
                I_EKKN  = XEKKN
           CHANGING
                C_AM07M = AM07M
           EXCEPTIONS
                OTHERS  = 0.
      CALL FUNCTION 'WRITE_FORM'
           EXPORTING
                ELEMENT = 'WE2VERBRMAT'.
      IF T156-SHKZG = H AND
        NOT MSEG-GRUND IS INITIAL.
        SELECT SINGLE * FROM T157E WHERE BWART = MSEG-BWART
                                   AND   GRUND = MSEG-GRUND
                                   AND   SPRAS = LANGUAGE.
        CALL FUNCTION 'WRITE_FORM'
             EXPORTING
                  ELEMENT = 'RUEVERBRGRUND'.
      ENDIF.
      THEAD-TDID     = THEADER-TDID.
      THEAD-TDNAME   = THEADER-TDNAME.
      THEAD-TDOBJECT = THEADER-TDOBJECT.
      THEAD-TDSPRAS  = THEADER-TDSPRAS.
      CALL FUNCTION 'WRITE_FORM'
           EXPORTING
                ELEMENT = 'PRTXTVERBRMAT'.
    ENDFORM.
    INCLUDE /SMB40/M07DRE03.
    *       FORM WE03_AUSGABE                                             *
    FORM WE03_AUSGABE using lgortsplit.
    *----------------Drucken WE-Version 3 Überschrift---------------------*
      if lgortsplit is initial.
         ON CHANGE OF MKPF-MBLNR OR MSEG-EBELN OR MSEG-BWART
                                 OR NAST-KSCHL OR MSEG-WERKS.
         CLEAR XKOPFDR.
         endon.
      else.
         ON CHANGE OF MKPF-MBLNR OR MSEG-EBELN OR MSEG-BWART
                                 OR NAST-KSCHL OR MSEG-WERKS
                                 OR MSEG-LGORT.
         CLEAR XKOPFDR.
         endon.
      endif.
      IF XKOPFDR IS INITIAL.
        XKOPFDR = X.
        IF NEW_PAGE = X.
          CALL FUNCTION 'CONTROL_FORM'
               EXPORTING
                    COMMAND = 'NEW-PAGE'.
        ENDIF.
        IF EKKO-BSART = 'UB'.
          AM07M-LITXT = TEXT-101.
          AM07M-LIBZG = EKKO-RESWK.
        ELSE.
          AM07M-LITXT = TEXT-100.
          AM07M-LIBZG = EKKO-LIFNR.
          IF NOT EKKO-LLIEF IS INITIAL.
            AM07M-LIBZ2 = EKKO-LLIEF.
          ELSE.
            AM07M-LIBZ2 = EKKO-LIFNR.
          ENDIF.
        ENDIF.
        IF T156-SHKZG = H.
          AM07M-HDLNE = TEXT-020.
        ELSE.
          AM07M-HDLNE = TEXT-010.
        ENDIF.
        IF XPSTY       IS INITIAL.         "Lagermaterial ?
          IF MSEG-XBLVS IS INITIAL.
            IF T156-SHKZG = H AND
               NOT MSEG-GRUND IS INITIAL.
              IF NOT T159P-BACOD IS INITIAL.
                CALL FUNCTION 'WRITE_FORM'
                     EXPORTING
                          ELEMENT = 'WE3BACOKOPF'
                          WINDOW  = 'RÜKOPF'.
                NEW_PAGE = X.
              ELSE.
                CALL FUNCTION 'WRITE_FORM'
                     EXPORTING
                          ELEMENT = 'WE3KOPF'
                          WINDOW  = 'RÜKOPF'.
                NEW_PAGE = X.
              ENDIF.
            ELSE.
              IF NOT T159P-BACOD IS INITIAL.
                CALL FUNCTION 'WRITE_FORM'
                     EXPORTING
                          ELEMENT = 'WE3BACOKOPF'
                          WINDOW  = 'KOPF'.
                NEW_PAGE = X.
              ELSE.
                CALL FUNCTION 'WRITE_FORM'
                     EXPORTING
                          ELEMENT = 'WE3KOPF'
                          WINDOW  = 'KOPF'.
                NEW_PAGE = X.
              ENDIF.
            ENDIF.
          ELSE.
            IF T156-SHKZG = H AND
               NOT MSEG-GRUND IS INITIAL.
              IF NOT T159P-BACOD IS INITIAL.
                CALL FUNCTION 'WRITE_FORM'
                     EXPORTING
                          ELEMENT = 'WE3BACOLVSKOPF'
                          WINDOW  = 'RÜKOPF'.
                NEW_PAGE = X.
              ELSE.
                CALL FUNCTION 'WRITE_FORM'
                     EXPORTING
                          ELEMENT = 'WE3LVSKOPF'  "RL-Material
                          WINDOW  = 'RÜKOPF'.
                NEW_PAGE = X.
              ENDIF.
            ELSE.
              IF NOT T159P-BACOD IS INITIAL.
                CALL FUNCTION 'WRITE_FORM'
                     EXPORTING
                          ELEMENT = 'WE3BACOLVSKOPF'
                          WINDOW  = 'KOPF'.
                NEW_PAGE = X.
              ELSE.
                CALL FUNCTION 'WRITE_FORM'
                     EXPORTING
                          ELEMENT = 'WE3LVSKOPF'  "RL-Material
                          WINDOW  = 'KOPF'.
                NEW_PAGE = X.
              ENDIF.
            ENDIF.
          ENDIF.
        ELSE.
          IF T156-SHKZG = H AND
             NOT MSEG-GRUND IS INITIAL.
            IF NOT T159P-BACOD IS INITIAL.
              CALL FUNCTION 'WRITE_FORM'
                   EXPORTING
                        ELEMENT = 'WE3BACOKOPF1'
                        WINDOW  = 'RÜKOPF'.
              NEW_PAGE = X.
            ELSE.
              CALL FUNCTION 'WRITE_FORM'
                   EXPORTING
                        ELEMENT = 'WE3KOPF1'
                        WINDOW  = 'RÜKOPF'.
              NEW_PAGE = X.
            ENDIF.
          ELSE.
            IF NOT T159P-BACOD IS INITIAL.
              CALL FUNCTION 'WRITE_FORM'
                   EXPORTING
                        ELEMENT = 'WE3BACOKOPF1'
                        WINDOW  = 'KOPF'.
              NEW_PAGE = X.
            ELSE.
              CALL FUNCTION 'WRITE_FORM'
                   EXPORTING
                        ELEMENT = 'WE3KOPF1'
                        WINDOW  = 'KOPF'.
              NEW_PAGE = X.
            ENDIF.
          ENDIF.
        ENDIF.
      ENDIF.
    *------------- Drucken WE-Version 3 Position --------------------------*
    **perform w3_lieferplan.                  "Routine Lieferplan
      CLEAR T157E.
      IF T156-SHKZG = H AND
         NOT MSEG-GRUND IS INITIAL.
        SELECT SINGLE * FROM T157E WHERE BWART = MSEG-BWART
                                   AND   GRUND = MSEG-GRUND
                                   AND   SPRAS = LANGUAGE.
      ENDIF.
      IF MSEG-EBELN IS INITIAL.
        IF NOT MABDR-MAKTX IS INITIAL.
          EKPO-TXZ01 = MABDR-MAKTX.
        ENDIF.
      ENDIF.
      IF MABDR-WERTU IS INITIAL AND
         MABDR-MENGU = X   OR              "Bestandsfuehrung = UNBW oder
         XPSTY       IS INITIAL.           "Lagermaterial ?
    * User-Exit über Erweiterung MBCF0005
        CALL CUSTOMER-FUNCTION '001'
             EXPORTING
                  I_MKPF  = MKPF
                  I_MSEG  = MSEG
                  I_EKKO  = EKKO
                  I_EKPO  = EKPO
                  I_NAST  = NAST
                  I_TNAPR = TNAPR
             TABLES
                  I_EKKN  = XEKKN
             CHANGING
                  C_AM07M = AM07M
             EXCEPTIONS
                  OTHERS  = 0.
        IF MSEG-XBLVS IS INITIAL.
          PERFORM W3_LAGERMATERIAL.        "Routine Lagermaterial
        ELSE.
          PERFORM W3_LVSMATERIAL.          "Routine RL-Material
        ENDIF.
      ELSE.
        PERFORM W3_VERBRAUCHSMATERIAL.     "Routine Verbrauchsmaterial
      ENDIF.
    *-------------- Drucken WE-Version 3 Seitenfuss ----------------------*
      CALL FUNCTION 'WRITE_FORM'
           EXPORTING
                ELEMENT  = 'WE3FUSS'
                WINDOW   = 'FUSS'
                FUNCTION = 'APPEND'.
    ENDFORM.
    *--------------Unteroutinen für Positionsdruck -----------------------*
    FORM W3_LAGERMATERIAL.
      CALL FUNCTION 'WRITE_FORM'
           EXPORTING
                ELEMENT = 'WE3LGMAT'.
    ENDFORM.
    *       FORM W3_LVSMATERIAL                                           *
    FORM W3_LVSMATERIAL.
      CALL FUNCTION 'WRITE_FORM'
           EXPORTING
                ELEMENT = 'WE3LVSMAT'.
    ENDFORM.
    *       FORM W3_VERBRAUCHSMATERIAL                                    *
    FORM W3_VERBRAUCHSMATERIAL.
      CLEAR: AM07M-KONTIERUNG.
      AM07M-RSTYP = XPSTY.
      CASE XPSTY.
        WHEN XFERT.                        "Fertigungsauftrag
          IF X_KONT1 IS INITIAL.
            AM07M-KONTIERUNG = MSEG-AUFNR.
          ELSE.
            AM07M-KONTIERUNG = EKKN-AUFNR.
          ENDIF.
        WHEN XANLAGE.
          MOVE SPACE TO ANLAGE.
          IF X_KONT1 IS INITIAL.
            ANLAGE-ANLN1 = MSEG-ANLN1.
            ANLAGE-ANLN2 = MSEG-ANLN2.
          ELSE.
            ANLAGE-ANLN1 = EKKN-ANLN1.
            ANLAGE-ANLN2 = EKKN-ANLN2.
          ENDIF.
          MOVE SPACE TO AM07M-KONTIERUNG.
          CONDENSE ANLAGE NO-GAPS.
          AM07M-KONTIERUNG = ANLAGE.
        WHEN   XKDE.                     "Kundeneinzelbestand?
          MOVE SPACE TO KUNDE.
          IF X_KONT1 IS INITIAL.
            KUNDE-KDAUF = MSEG-KDAUF.
            KUNDE-KDPOS = MSEG-KDPOS.
          ELSE.
            KUNDE-KDAUF = EKKN-VBELN.
            KUNDE-KDPOS = EKKN-VBELP.
          ENDIF.
          MOVE SPACE TO AM07M-KONTIERUNG.
          CONDENSE KUNDE NO-GAPS.
          AM07M-KONTIERUNG = KUNDE.
        WHEN   XKDANR.                     "Kundenauftrag ?
          MOVE SPACE TO KUNDE.
          IF X_KONT1 IS INITIAL.
            KUNDE-KDAUF = MSEG-KDAUF.
            KUNDE-KDPOS = MSEG-KDPOS.
            KUNDE-KDEIN = MSEG-KDEIN.
          ELSE.
            KUNDE-KDAUF = EKKN-VBELN.
            KUNDE-KDPOS = EKKN-VBELP.
            KUNDE-KDEIN = EKKN-VETEN.
          ENDIF.
          MOVE SPACE TO AM07M-KONTIERUNG.
          CONDENSE KUNDE NO-GAPS.
          AM07M-KONTIERUNG = KUNDE.
        WHEN   XKOSTL.                     "auf Kostenstelle kontiert
          IF X_KONT1 IS INITIAL.
            AM07M-KONTIERUNG = MSEG-KOSTL.
          ELSE.
            AM07M-KONTIERUNG = EKKN-KOSTL.
          ENDIF.
        WHEN   XPROJN.                     "auf Projekt/Netzplan
          IF X_KONT1 IS INITIAL.
            IF MSEG-NPLNR IS INITIAL.
              PERFORM PSP_CONVERT USING MSEG-PS_PSP_PNR.
            ELSE.
              AM07M-KONTIERUNG = MSEG-NPLNR.
              PERFORM NW_VORGANG_LESEN USING MSEG-AUFPL MSEG-APLZL.
              IF NOT N_VORNR IS INITIAL.
                MOVE '/'     TO AM07M-KONTIERUNG+12.
                MOVE N_VORNR TO AM07M-KONTIERUNG+13.
              ENDIF.
            ENDIF.
          ELSE.
            IF EKKN-NPLNR IS INITIAL.
              PERFORM PSP_CONVERT USING EKKN-PS_PSP_PNR.
            ELSE.
              AM07M-KONTIERUNG = EKKN-NPLNR.
              PERFORM NW_VORGANG_LESEN USING EKKN-AUFPL EKKN-APLZL.
              IF NOT N_VORNR IS INITIAL.
      

  • Error when exexuting a smart form from print program

    Hi,
    I have created a Print Program & Layout Set [Smart Form].
    Now when i executed Print program it is throwing following error.
    As internal table that we are passing to F.M is not having any data i have appended some data in debug mode.
    After htting Print Immediaely Button Following EXIT Error is coming.
    No table is currently processed, switching lines is not possible.
    Message no. SSFCOMPOSER 183
    Diagnosis
    You tried to switch to the next table line, but currently no table is open for output.
    System Response
    The system issues an error message.
    Procedure
    This is probably an internal error. Please contact the SAP hotline and report the problem.
    Can anybody solve this issue!
    Thanks in advance.
    Thanks,
    Deep.

    Make sure that you have proper definations of internal table in program and smartform.
    Regards,
    Amey

  • How to create a smart form using the purchase order

    hi everybody............
    i have created one purchase order, i want to print that PO using smartforms rather than scripts. how can i do it, can anyone help me out in solving the issue. i am using the version sap 4.7
    Edited by: mhyderali on Aug 21, 2009 4:08 PM

    Hi,
    Before answer your question few things i would like to kno:
    1. currently is there any script is printing while displaying output.
    2. do u allready hae a smartform or you are going to develop a smartform.
    3. if you dont have a smartform and there is a script attached then you can convert script into smartform and then you can change in the smart form accordingly.
    4. after devloping a new smart form or converting script into smartform what you need to do is go to V/83 transaction give Output Type which is associated with script and Application area (for purchase order i.e. EF). then press ok screen will display here you can change the name of your form name under the form column.
    6. if you dnt have the Output type then you need to create a output type for the purchase order.
    Please let me know if you have still some question.
    Thanks
    Narendra

  • Call Another Form using Forms Personalization

    Hi All,
    I have created a Custom form using TEMPLATE.fmb and created functions in Apps and assigned to Responsibility etc and it all works OK.
    Now, I need to call this Custom form from another seeded(PO form) Via Tools -> Menu.
    using Forms personalization I can get the Menu Entry and Actions to execute the Form successfully from the PO Form.
    BUT, I need it to automatically query records in my CUSTOM form based on my current PO_HEADER_ID value on my PO Form.
    How can I do it ?
    Do I need to modify my Block and add some parameters and then pass a value via Personalization ?
    Please help !
    Thanks
    Shankar

    Duplicate thread (please post only once).
    calling Custom Form from Another Form
    calling Custom Form from Another Form
    Thanks,
    Hussein

  • How to call interactive form using webdynpro abap.

    Hi Sap Guru's,
    I have Created Invoice Interactive form using SFP Transaction , now my requirement is ,
    Need to Call that invoice form using webdynpro abap by passing invoice number(vbeln) from the screen.
    please suggest .
    thanks

    Hi Suresh,
    Refer <a href="http://help.sap.com/saphelp_nw04s/helpdata/en/aa/940ee5331b4b8fa0a6cb6714dc5db4/frameset.htm">Interactive Forms in WDA.</a>, this is the best one .
    Welcome to <a href="https://www.sdn.sap.comhttp://www.sdn.sap.comhttp://www.sdn.sap.com/irj/sdn/interactiveforms">Interactive Forms.</a>.
    Do post your queries on Interactive Forms in SAP Interactive Forms by Adobe.
    Rgds,
    - anto.

  • How to Call a form using forms personalization ?

    Hi All,
    We have a requirement where we need call a form when we tab out of a field from one form. How can we call a from using forms personalization ??
    Can anyone state the steps or point to any metalink note.
    Regards

    Hi,
    Please check whether following link help you:
    http://oracleapps88.blogspot.com/2011/06/calling-another-form-parameters.html
    Regards,

  • How to Call smart form in Action

    Hi All,
    Could some one tell me how to call the smart form in action.
    Eg. PB40 - Offer Contract Action.
    Appreciate your respnse.
    Regards
    Raj

    Hi ,
    attached you find  some  abap code to call a smartform with some comments in it. Hope that helps:
    DATA: l_fn_name               TYPE rs38l_fnam
          , l_devtype               TYPE rspoptype
          , ls_output_options       TYPE ssfcompop
          , ls_control_parameters   TYPE ssfctrlop
          , ls_job_output_info      TYPE ssfcrescl
          , l_pdf_fsize             TYPE i                      "#EC NEEDED
          , lt_otf_tab              TYPE tsfotf
          , lt_pdf_lines            TYPE TABLE OF tline
    To do
       The mapping from the UI structure to the Smortform structure has to be
       implemented here or in a pirvate method.....
    Call function module u201CSSF_FUNCTION_MODULE_NAMEu201D to get the name of the smartform.
      CALL FUNCTION 'SSF_FUNCTION_MODULE_NAME'
        EXPORTING
          formname           = zh38tm_cl_zz_2gen_bl_constants=>c_smartforms_hipo
        IMPORTING
          fm_name            = l_fn_name
        EXCEPTIONS
          no_form            = 1
          no_function_module = 2
          OTHERS             = 3.
      IF sy-subrc = 0.
       Call function module u201CSSF_GET_DEVICE_TYPEu201D to get the print parameter
        CALL FUNCTION 'SSF_GET_DEVICE_TYPE'
          EXPORTING
            i_language             = sy-langu
          IMPORTING
            e_devtype              = l_devtype
          EXCEPTIONS
            no_language            = 1
            language_not_installed = 2
            no_devtype_found       = 3
            system_error           = 4
            OTHERS                 = 5.
        IF sy-subrc = 0.
        Fill label structure to smartform
         ls_labels = zh38pm_cl_zz_bl_perf_plan=>set_sf_label( ).
         Set output parameters u201CLANGUAGEu201D, u201CNO_DIALOGu201D and u201CGETOTFu201D
          ls_output_options-tdprinter     = l_devtype.
          ls_control_parameters-no_dialog = abap_true.
          ls_control_parameters-getotf    = abap_true.
          ls_control_parameters-langu     = sy-langu.
         Call smartform with the structures u201CIMP_S_PERF_PLANu201D, u201CCHG_S_PRINT_PLAN
          CALL FUNCTION l_fn_name
            EXPORTING
              control_parameters      = ls_control_parameters
              output_options          = ls_output_options
              s_doc_processing        = gs_doc-s_doc_processing
              s_header_display        = gs_doc-s_header_display
              s_header_texts          = gs_doc-s_header_texts
              s_header_status         = gs_doc-s_header_status
              t_header_appraiser      = gs_doc-t_header_appraiser
              t_header_appraisee      = gs_doc-t_header_appraisee
              t_header_part_appraiser = gs_doc-t_header_part_appraisers
              t_header_other          = gs_doc-t_header_others
              s_header_dates          = gs_doc-s_header_dates
              t_header_add_data       = gs_doc-t_header_add_data
              t_body_columns          = gs_doc-t_body_columns
              t_body_element_descr    = gs_doc-t_body_element_descr
              t_body_elements         = gs_doc-t_body_elements
              t_body_cells            = gs_doc-t_body_cells
              t_body_cell_notes       = gs_doc-t_body_cell_notes
              t_body_cell_val_values  = gs_doc-t_body_cell_val_values
              t_body_cell_val_ranges  = gs_doc-t_body_cell_val_ranges
              t_body_cell_val_c_like  = gs_doc-t_body_cell_val_c_like
              t_body_cell_val_descr   = gs_doc-t_body_cell_val_descr
            IMPORTING
              job_output_info         = ls_job_output_info
            EXCEPTIONS
              formattinl_error        = 1
              internal_error          = 2
              send_error              = 3
              user_canceled           = 4.
          IF sy-subrc = 0.
            APPEND LINES OF ls_job_output_info-otfdata TO lt_otf_tab.
            exp_t_otf = lt_otf_tab.
           Call function module u201CCONVERT_OTFu201D to convert the smartform data
          to exporting parameter u201CEXP_PDF_XSTRING
            CALL FUNCTION 'CONVERT_OTF'
              EXPORTING
                format                = 'PDF'
              IMPORTING
                bin_filesize          = l_pdf_fsize
                bin_file              = exp_pdf_xstring
              TABLES
                otf                   = lt_otf_tab
                lines                 = lt_pdf_lines
              EXCEPTIONS
                err_max_linewidth     = 1
                err_format            = 2
                err_conv_not_possible = 3
                OTHERS                = 4.
            IF sy-subrc ne 0.
              CLEAR exp_pdf_xstring.
            ENDIF.
          ENDIF.
        ENDIF.
      ENDIF.
    First you have to determine the smartforms function modules name the wxecute it.

  • Reg: Smart forms and print programs

    Hi
    I would like to locate the print programs and the corresponding smart forms. say for invoice we have a smart form available and how to track the print program for it. pls advise.
    thkx
    Prabhu

    Hi Prabhu,
          You can track the Program through mainintaing table TNAPR.  TNAPR is the table which is having entries for "Processing Programs for output".
    Here you have fields like
    pgnam - Program Name
    sform -   Smartform Name
    fonam -  Script Name
    kschl -  Output type
    Here,You can maintain form against a program name.
    Hope you are clear.
    Regards,
    Siddhesh Sanghvi.

  • How to Move file / call UNIX command using ABAP Program

    Hi, ABAP Guru.
    I need to Cut & Paste file (Move file from one location to another location) on Network Shared Drive using ABAP program.
    But I can't figured out how to do this and what ABAP Command / FM / Method (and maybe UNIX command) that being used.
    Please give me the advice.
    Best regard and Thank you all.
    Nattapash C.

    all methods for your requirements should be in class CL_GUI_FRONTEND_SERVICES

Maybe you are looking for