cancel
Showing results for 
Search instead for 
Did you mean: 

Script Subtotal calculation not working

kabil_g
Active Participant
0 Kudos

Hi Frds,

In the print program,

i got the material totals variable is gv_bdmng.

each line time material is gv_bdmng1.

Based on above i did a subtotal and need to display through these variable gv_bdmng2

Script Subtotal calculation not working

        DATA:lv_qn TYPE p DECIMALS 3 VALUE 0.

     LOOP AT gt_resb INTO gw_resb WHERE matnr = resbd-matnr AND werks = resbd-werks.

       ON CHANGE OF index_tab-matnr.

         lv_qn = ( gv_bdmng1 / gv_bdmng ) * 100.

       ENDON.

     ENDLOOP.

gv_bdmng2 = lv_qn.

  CLEAR : lv_qn.


Pls help me out

Accepted Solutions (0)

Answers (1)

Answers (1)

rajkumarnarasimman
Active Contributor
0 Kudos

Hi Kabil,

Do the following change in the program.


"Sort the internal table based on material number and werks

sort gt_resby by matnr werks.

"Replace gw_resb instead of index_tab-matnr.

    DATA:lv_qn TYPE p DECIMALS 3 VALUE 0.

     LOOP AT gt_resb INTO gw_resb WHERE matnr = resbd-matnr AND werks = resbd-werks.

       "Remove On change of condition, because we are fetching the record based on condition inside the loop

         lv_qn = ( gv_bdmng1 / gv_bdmng ) * 100.

      

     ENDLOOP.

gv_bdmng2 = lv_qn.

CLEAR : lv_qn.



Regards


Rajkumar Narasimman

kabil_g
Active Participant
0 Kudos

Still I m facing the same problem..................

Please find my piece of code and help me..............

DATA: read_stpu VALUE ' '.             "Standard: no read of subitems

DATA: gv_index(2)   TYPE n.

*DATA: GV_INDEX1    TYPE i VALUE 1.

DATA: gv_index1     TYPE i.

DATA: gv_aennr      TYPE aenr-aennr.

DATA: gv_verid      TYPE mkal-verid,

       gv_batch      TYPE mcha-charg,

       gv_bdmng      TYPE resb-bdmng,

       gv_bdmng1(5TYPE p DECIMALS 3,

         gv_charg    TYPE mch1-charg,

         gv_vdate   TYPE mch1-vfdat,

*added by kabil

        gv_untto1 TYPE string,

*      gv_untto      TYPE t405-untto,

       gv_untto TYPE p DECIMALS 3,

       gv_bdmng2 TYPE p DECIMALS 3,

*ended by kabil

       gv_lolim(16TYPE p DECIMALS 3,

       gv_uebto1(9TYPE c,

       gv_uebto      TYPE t405-uebto,

       gv_hilim(16TYPE p DECIMALS 3.

TYPES: BEGIN OF gty_resb,

           rsnum TYPE resb-rsnum,

           matnr TYPE resb-matnr,

           werks TYPE resb-werks,

           bdmng TYPE resb-bdmng,

           nlfzt TYPE resb-nlfzt,

   END OF gty_resb,

   gty_t_resb TYPE TABLE OF gty_resb.

DATA: gt_resb TYPE gty_t_resb,

       gw_resb TYPE gty_resb.

*&**********************************************************************

*                         Standard Includes                            *

*&**********************************************************************

INCLUDE ppcoincl.

INCLUDE codrgt10.

SELECT * FROM resb INTO CORRESPONDING FIELDS OF TABLE gt_resb.

PERFORM print_sub.

*&**********************************************************************

*                            Form Routines                             *

*&**********************************************************************

*---------------------------------------------------------------------*

*       FORM PRINT_SUB                                                *

*---------------------------------------------------------------------*

FORM print_sub.

* Document-tables

   INCLUDE lcodrinc.

* print-type

   CASE prlst_tmp-drart.

     WHEN reprint.

       MOVE text-dup TO prlst_tmp-drtxt.

     WHEN OTHERS.

       CLEAR prlst_tmp-drtxt.

   ENDCASE.

* loop at itab_tdr where object  = obj-mat

*                  and   aufnr   = prlst_tmp-aufnr.    "New 3.0

*      exit.

* endloop.

   READ TABLE itab_tdr

              WITH KEY object  = obj-mat

                       aufnr   = prlst_tmp-aufnr.            "New 3.0

   CHECK sy-subrc IS INITIAL.

* first check wether something is to be printed

   PERFORM check_print.

* if Sy-subrc=12: components given to print

   CHECK sy-subrc = 12.

* check if SAPscript form was maintained

   IF print_co-forml = space.

     IF sy-batch = space AND sy-binpt = space.

       MESSAGE e298(c2) WITH print_co-lstid

                             print_co-auart

                             print_co-repid

                             print_co-drvar.

     ELSE.

       MESSAGE i298(c2) WITH print_co-lstid

                             print_co-auart

                             print_co-repid

                             print_co-drvar.

     ENDIF.

   ENDIF.

* fill order-header DDIC-structure

   LOOP AT itab_tdr WHERE object = obj-alt

                    AND   aufnr  = prlst_tmp-aufnr.          "New 3.0

*   save index-structure for header

     itab_ord = itab_tdr.

     LOOP AT caufvd_tab WHERE aufnr = itab_ord-aufnr.

*     fill DDIC-structure

       caufvd_tmp = caufvd_tab.

*     read material

       PERFORM read_mat USING caufvd_tmp-werks caufvd_tmp-matnr msfcv.

*     store material-short-text

       MOVE msfcv-maktx TO prlst_tmp-ktext.

*     control-structure

       print_co = prlst_tmp.

       caufvd = caufvd_tmp.

*     Charge von Kopfmaterial

       LOOP AT afpod_tab WHERE aufnr EQ caufvd-aufnr

                         AND   posnr EQ '0001'.

         afpod = afpod_tab.

         EXIT.

       ENDLOOP.

*     PRINT-Options

       CALL FUNCTION 'CO_DR_PR_OPT_FILL'

         EXPORTING

           prt_co = prlst_tmp

         IMPORTING

           pr_opt = pr_options.

       PERFORM get_header.

       DO prlst_tmp-copys TIMES.

         IF sy-index GT 1.

           MOVE text-dup TO prlst_tmp-drtxt.

         ENDIF.

*       OPEN_FORM to open form

         PERFORM open_and_start_form.

*       header-informations

         PERFORM mbr_header.

*       list of components

         PERFORM mbr_list.

*       CLOSE_FORM to close form

         PERFORM close_and_end_form.

       ENDDO.

     ENDLOOP.

   ENDLOOP.

ENDFORM.                    "PRINT_SUB

*---------------------------------------------------------------------*

*       FORM MBR_HEADER                                               *

*---------------------------------------------------------------------*

FORM mbr_header.

   SELECT SINGLE erdat FROM  aufk

                       INTO  aufk-erdat

                       WHERE aufnr = afpod-aufnr.

   IF sy-subrc = 0.

     CONCATENATE       aufk-erdat+2(4)

                       afpod-charg+5(5)

                 INTO  gv_batch.

   ENDIF.

* read material of order from internal table

   IF NOT caufvd-matnr IS INITIAL.

     PERFORM read_mat USING caufvd-werks caufvd-matnr msfcv.

   ENDIF.

   IF caufvd-prodnet NE space.                               "New 3.0

     PERFORM prodnet_info.

   ENDIF.

* is there an order-text ?

   IF NOT caufvd-ltext IS INITIAL.

*   Textkey

     CALL FUNCTION 'CO_ZK_TEXTKEY_CAUFV'

       EXPORTING

         aufnr = caufvd-aufnr

       IMPORTING

         ltsch = stxh-tdname.

*   if given print the text

     CALL FUNCTION 'WRITE_FORM'

       EXPORTING

         element = 'ORD_TEXT'

         window  = 'MAIN'.

   ELSE.

*   if not given print only short text (if given)

**  if not caufvd-ktext is initial.

**    call function 'WRITE_FORM'

**         exporting

**              element = 'ORD_KTEXT'

**              window  = 'MAIN'.

**  endif.

   ENDIF.

ENDFORM.                    "MBR_HEADER

*---------------------------------------------------------------------*

*       FORM MBR_LIST                                                 *

*---------------------------------------------------------------------*

FORM mbr_list.

   DATA: flg_head,

         flg_opr_info,

         gv_flag_pack,

         pvznr       LIKE afvgd-pvznr,

         aplzl_sav   LIKE afvgd-aplzl,

         lv_matnr    TYPE mara-matnr,

         lv_matnr1   TYPE mara-matnr,

         lv_index    TYPE i VALUE 1,

         lv_index1   TYPE i,

         lv_tabix    TYPE sy-tabix,

         lv_desc     TYPE i,

         lv_ekwsl    TYPE mara-ekwsl,

         lv_lolim(5) TYPE p DECIMALS 2,

         lv_hilim(5) TYPE p DECIMALS 2.

   DATA: BEGIN OF index_tab OCCURS 0,

           index_cmp LIKE sy-tabix,

           index_seq LIKE sy-tabix,

           index_opr LIKE sy-tabix,

           plnfl     LIKE resbd-plnfl,

           vornr     LIKE resbd-vornr,

           lgort     LIKE resbd-lgort,

           aplzl     LIKE resbd-aplzl,

           aufst     LIKE resbd-aufst,

           aufwg     LIKE resbd-aufwg,

           baust     LIKE resbd-baust,

           posnr     LIKE resbd-posnr,

           matnr     LIKE resbd-matnr,

           rspos     LIKE resbd-rspos,

           bdmng     LIKE resbd-bdmng,

           nlfzt     LIKE resbd-nlfzt,

         END OF index_tab.

* build short table for sort of components

   LOOP AT itab_tdr WHERE object = obj-mat

                    AND   aufnr EQ itab_ord-aufnr.

*   Fill DDIC-Strutcure of component

     READ TABLE resbd_tab INDEX itab_tdr-index_plmz.

*---------------------------------begin Fetch Version Number

     resbd = resbd_tab.

*    IF RESBD-AENNR IS NOT INITIAL.     "fetch Change Number

*      gv_aennr = RESBD-AENNR.

*    ENDIF.

     IF resbd-dumps IS NOT INITIAL.

       SELECT SINGLE verid  FROM mkal

                            INTO gv_verid

                           WHERE matnr = resbd-matnr

                             AND werks = resbd-werks

                             AND mksp  EQ ''.

       IF sy-subrc EQ 0.

         CLEAR: resbd-matnr,

                resbd-werks.

       ENDIF.

     ENDIF.

     CLEAR: resbd.

*---------------------------------end Fetch Version Number

     CHECK sy-subrc IS INITIAL

     AND ( resbd_tab-bdmng > 0 OR resbd_tab-erfmg > 0 )

*   not printed will be: Nebenprodukt

     AND   resbd_tab-shkzg NE 'S'

*   not printed will be: Dummy's

     AND   resbd_tab-dumps IS INITIAL

*   not printed will be: Kuppelprodukt

     AND   resbd_tab-kzkup IS INITIAL.

     index_tab-index_cmp = itab_tdr-index_plmz.

     index_tab-index_seq = itab_tdr-index_plfl.

     index_tab-index_opr = itab_tdr-index_plpo.

     MOVE-CORRESPONDING resbd_tab TO index_tab.

     APPEND index_tab.

   ENDLOOP.

   DESCRIBE TABLE index_tab LINES sy-dbcnt.

   CHECK sy-dbcnt GT 0.

*.. Hinweis 22807 gilt auch für PPPIMBRL

*  SORT INDEX_TAB BY PLNFL VORNR LGORT

*                    AUFST AUFWG BAUST

*                    POSNR MATNR RSPOS.

   SORT index_tab BY plnfl vornr posnr

                     aufst aufwg baust

                     lgort matnr rspos.

   DESCRIBE TABLE index_tab LINES lv_desc.

* Print all materials for the current order (now in sorted order)

   LOOP AT index_tab.

     CLEAR : gv_flag_pack.

     lv_tabix = sy-tabix.

     IF lv_tabix EQ lv_desc.

       gv_flag_pack = 'X'.

     ENDIF.

*---> Print same serial number for more than one line-item with same mat.no but splitted due to batch

     ON CHANGE OF index_tab-matnr.

       gv_index1 = gv_index1 + 1.

     ENDON.

     gv_index = gv_index1.

**   Diese Funktion entweder im Programm oder in Sapscript

*    CALL FUNCTION 'CONTROL_FORM'

*         EXPORTING

*              COMMAND = 'PROTECT'.

*   Fill DDIC-Strutcure of component

     READ TABLE resbd_tab INDEX index_tab-index_cmp.

     resbd = resbd_tab.

     gv_bdmng1 = resbd-bdmng.

     gv_bdmng  = gv_bdmng + gv_bdmng1.

I M facing these condition errorr...............................

        DATA:lv_qn TYPE p DECIMALS 3 VALUE 0.

*    SORT index_tab BY  matnr .

     LOOP AT gt_resb INTO gw_resb WHERE matnr = resbd-matnr AND werks = resbd-werks AND rsnum = resbd-rsnum .

*       ON CHANGE OF resbd-matnr.

         lv_qn = ( resbd-bdmng / gv_bdmng ) * 100.

*      ENDON.

EXIT.

     ENDLOOP.

gv_bdmng2 = lv_qn.

  CLEAR : lv_qn.

I M facing these between condition errorr...............................

*    *    Lower & Upper limit

     gv_untto = ( gv_bdmng1 * resbd-nlfzt ) / 100.

     gv_lolim = resbd-bdmng - gv_untto.

     gv_hilim = resbd-bdmng + gv_untto.

*    *    Lower & Upper limit

     CLEAR : lv_ekwsl,

                 gv_untto,

                 gv_uebto.

     SELECT SINGLE ekwsl  FROM mara

                          INTO lv_ekwsl

                         WHERE matnr = resbd-matnr.

     WRITE sy-datum TO gv_vdate  DD/MM/YYYY.

     SELECT SINGLE charg vfdat FROM mch1 INTO (gv_charg,gv_vdate)

       WHERE matnr = resbd-matnr.

    CALL FUNCTION 'CONVERT_DATE_TO_EXTERNAL'

      EXPORTING

        date_internal            = gv_vdate

      IMPORTING

        date_external            = gv_vdate

      EXCEPTIONS

        date_internal_is_invalid = 1

        OTHERS                   = 2.

    IF sy-subrc <> 0.

* Implement suitable error handling here

    ENDIF.

     IF sy-subrc = 0.

       CONDENSE gv_charg.

*      CONDENSE lv_vdate.

       SHIFT gv_charg LEFT DELETING LEADING '0'.

       CONCATENATE  gv_charg   gv_vdate INTO gv_untto1 SEPARATED BY '/'.

*      gv_untto1 = gv_charg .

*      gv_v = mch1-vfdat.

     ENDIF.

*      SELECT SINGLE untto

*                    uebto  FROM t405

*                           INTO (gv_untto, gv_uebto)

*                          WHERE ekwsl = lv_ekwsl.

*        IF sy-subrc = 0.

*          gv_untto1 = gv_untto.

*          gv_uebto1 = gv_uebto.

*          CONDENSE gv_untto1.

*          CONDENSE gv_uebto1.

*          CONCATENATE   '+/-'

*                        gv_untto1

*                        INTO gv_untto1.

*          CONCATENATE   '+/-'

*                        gv_uebto1

*                        INTO gv_uebto1.

*          lv_lolim = ( gv_untto / 100 ) * gv_bdmng1.

*          lv_hilim = ( gv_uebto / 100 ) * gv_bdmng1.

*          gv_lolim = gv_bdmng1 - lv_lolim.

*          gv_hilim = gv_bdmng1 + lv_hilim.

*        ENDIF.

*    ENDIF.

*      comment ended by kabil

*   Get sequence

     IF resbd-plnfl NE affld-plnfl OR resbd-aufnr NE caufvd-aufnr.

       READ TABLE affld_tab INDEX index_tab-index_seq.

       affld = affld_tab.

*     Read ATAB-Tables for sequence

       PERFORM pppr_get_tables USING drpart-seq.

     ENDIF.

*   If opertion changes write information to which operation components

*   are fixed (print these info with last written operation)

*   Next component to other operation ? If so write line

     IF resbd-aplzl NE aplzl_sav AND ( NOT aplzl_sav IS INITIAL ).

*     remember head line written

       MOVE 'X' TO flg_opr_info.

     ENDIF.

*   Get operation

     IF resbd-aplzl NE afvgd-aplzl OR resbd-aufnr NE afvgd-aufnrd.

       READ TABLE afvgd_tab INDEX index_tab-index_opr.

       afvgd = afvgd_tab.

       IF afvgd-phflg IS INITIAL.                "Tan 19.09.97  HW 83814

         CLEAR afvgd-pvznr.

       ELSE.

*     Überordneter Vorgang für Phase ermitteln.

         IF NOT afvgd-pvzkn IS INITIAL.

           READ TABLE afvgd_tab WITH KEY aplzl = afvgd-pvzkn

                      TRANSPORTING vornr.

           afvgd-pvznr = afvgd_tab-vornr.

         ENDIF.

       ENDIF.

*     Read ATAB-Tables for sequence

       PERFORM pppr_get_tables USING drpart-opr.

*     set flag 'write info of operation'

       CLEAR flg_opr_info.

       aplzl_sav = afvgd-aplzl.

     ENDIF.

*   Get ATAB-tables of component

     PERFORM pppr_get_tables USING drpart-cmp.

     CLEAR msfcv.

*   Get MSFCV for component

     IF NOT resbd-matnr IS INITIAL.

       PERFORM read_mat USING resbd-werks resbd-matnr msfcv.

     ENDIF.

*   Die Erfassungsmenge <> Null bedeutet, daß es Abweichung zwischen

*   Basismengeneinheit und Materialmengeneinheit gibt. In diesem

*   Fall sind die Erfassungsmenge und Erfassungsmengeneinheit die

*   richtige Bedarfe.    Release 4.0A  Hinweis 79749  22.07.1997

     IF NOT resbd-erfmg IS INITIAL.

       resbd-bdmng = resbd-erfmg.

       resbd-meins = resbd-erfme.

     ENDIF.

     ON CHANGE OF resbd_tab-vornr.

**--->Start-Commented to bring continuous s.no for all process

*      GV_INDEX1 = 1.

*      GV_INDEX = GV_INDEX1.

**--->End-Commented to bring continuous s.no for all process

* Überschrift von Materialliste

       CALL FUNCTION 'WRITE_FORM'

         EXPORTING

           element = 'MAT_OPERATION'

           window  = 'MAIN'.

     ENDON.

     IF gv_flag_pack NE 'X'.

       IF NOT resbd-ltxsp IS INITIAL.

*     buelt textkey

         CALL FUNCTION 'CO_ZK_TEXTKEY_RESB'

           EXPORTING

             rsnum = resbd-rsnum

             rspos = resbd-rspos

             rsart = resbd-rsart

           IMPORTING

             ltsch = stxh-tdname.

*     print component text

         CALL FUNCTION 'WRITE_FORM'

           EXPORTING

             element = 'MAT_TEXT'

             window  = 'MAIN'.

       ENDIF.

*   print data of components

       CALL FUNCTION 'WRITE_FORM'

         EXPORTING

           element = 'MAT_INFO'

           window  = 'MAIN'.

     ELSE.

*   print data of components

       CALL FUNCTION 'WRITE_FORM'

         EXPORTING

           element = 'MAT_INFO'

           window  = 'MAIN'.

       CALL FUNCTION 'WRITE_FORM'

         EXPORTING

           element = 'MAT_BDMNG_TOT'

           window  = 'MAIN'.

       IF NOT resbd-ltxsp IS INITIAL.

*     buelt textkey

         CALL FUNCTION 'CO_ZK_TEXTKEY_RESB'

           EXPORTING

             rsnum = resbd-rsnum

             rspos = resbd-rspos

             rsart = resbd-rsart

           IMPORTING

             ltsch = stxh-tdname.

*     print component text

         CALL FUNCTION 'WRITE_FORM'

           EXPORTING

             element = 'MAT_TEXT_PACK'

             window  = 'MAIN'.

       ENDIF.

     ENDIF.

   ENDLOOP.

   CALL FUNCTION 'CONTROL_FORM'

     EXPORTING

       command = 'PROTECT'.

   CALL FUNCTION 'WRITE_FORM'

     EXPORTING

       element = 'MAT_COMP_PER'

       window  = 'MAIN'.

**   Diese Funktion entweder im Programm oder in Sapscript

   CALL FUNCTION 'CONTROL_FORM'

     EXPORTING

       command = 'ENDPROTECT'.

*  CALL FUNCTION 'CONTROL_FORM'

*    EXPORTING

*      COMMAND = 'NEW-PAGE'.

   CALL FUNCTION 'WRITE_FORM'

     EXPORTING

       element = 'QUAL_PRC1'

       window  = 'MAIN'.

* Get subpositions if forced.

   CHECK read_stpu EQ 'X'

     AND NOT resbd-stlnr IS INITIAL

     AND NOT resbd-stlkn IS INITIAL

     AND NOT resbd-stlty IS INITIAL.

   CLEAR: stpub.

   stpub-stlty = resbd-stlty.

   stpub-stlnr = resbd-stlnr.

   stpub-stlkn = resbd-stlkn.

   stpub-stpoz = resbd-stpoz.

   PERFORM stpu_lesen.

   CALL FUNCTION 'WRITE_FORM'

     EXPORTING

       element = 'TEST_ONE'

       window  = 'TEST'.

ENDFORM.                    "MBR_LIST

*---------------------------------------------------------------------*

*       FORM READ_MAT                                                 *

*---------------------------------------------------------------------*

FORM read_mat USING plant    LIKE resbd-werks

                     material LIKE resbd-matnr

                     matview  STRUCTURE msfcv.

   CLEAR matview.

* Aus Tabelle der Materialstämme den betreffenden Eintrag auslesen

* Bei Nichtlager oder Textposition natürlich kein Materialstamm

   CHECK NOT plant IS INITIAL AND NOT material IS INITIAL.

   LOOP AT mv_tab WHERE werks EQ plant AND matnr EQ material.

     MOVE-CORRESPONDING mv_tab TO matview.

     MOVE-CORRESPONDING mv_tab TO mc29s.

     EXIT.

   ENDLOOP.

ENDFORM.                    "READ_MAT

*---------------------------------------------------------------------*

*       FORM OPEN_AND_START_FORM                                      *

*---------------------------------------------------------------------*

FORM open_and_start_form.

   CALL FUNCTION 'OPEN_FORM'

     EXPORTING

       device   = 'PRINTER'

       dialog   = space

       form     = print_co-forml

       language = print_co-spras

       OPTIONS  = pr_options

     EXCEPTIONS

       canceled = 01

       device   = 02

       form     = 03

       OPTIONS  = 04

       unclosed = 05.

   CALL FUNCTION 'START_FORM'.

ENDFORM.                    "OPEN_AND_START_FORM

*---------------------------------------------------------------------*

*       FORM CLOSE_AND_END_FORM_FORM                                  *

*---------------------------------------------------------------------*

FORM close_and_end_form.

   CALL FUNCTION 'END_FORM'.

   CALL FUNCTION 'CLOSE_FORM'

     IMPORTING

       RESULT = pr_result

     EXCEPTIONS

       OTHERS = 01.

ENDFORM.                    "CLOSE_AND_END_FORM

*---------------------------------------------------------------------*

*       FORM CHECK_PRINT                                              *

*---------------------------------------------------------------------*

FORM check_print.

   DATA: flg_print.

   LOOP AT itab_tdr WHERE object = obj-mat

                    AND   aufnr  = prlst_tmp-aufnr.          "New 3.0

     READ TABLE resbd_tab INDEX itab_tdr-index_plmz.

     CHECK sy-subrc IS INITIAL

     AND   resbd_tab-kzkup IS INITIAL                        "New 3.0

     AND   resbd_tab-dumps IS INITIAL

     AND ( resbd_tab-bdmng > 0 OR resbd_tab-erfmg > 0 ).

     flg_print = const-flg_yes.

     EXIT.

   ENDLOOP.

   IF flg_print EQ const-flg_yes.

     sy-subrc = 12.

   ENDIF.

ENDFORM.                    "CHECK_PRINT

*---------------------------------------------------------------------*

*        STPU_LESEN                                                   *

*---------------------------------------------------------------------*

FORM stpu_lesen.

   CALL FUNCTION 'GET_STPU'

     EXPORTING

       set             = 'X'

       all             = 'X'

     TABLES

       wa              = stpub

     EXCEPTIONS

       no_record_found = 4

       key_incomplete  = 16

       call_invalid    = 24.

ENDFORM.                    "STPU_LESEN

*---------------------------------------------------------------------*

*       FORM PRODNET_INFO                                             *

*---------------------------------------------------------------------*

FORM prodnet_info.

* Print info of collective order

* leading order ?

   IF caufvd-maufnr EQ space.

     CALL FUNCTION 'WRITE_FORM'

       EXPORTING

         element = 'COL_ORDMAIN'

         window  = 'MAIN'.

   ELSE.

*   fill DDIC-structure PPPRCOLORD of upper operation

     LOOP AT colord_tab WHERE aufnr = caufvd-aufnr.

       ppprcolord = colord_tab.

       EXIT.

     ENDLOOP.

*   print out the date

     CALL FUNCTION 'WRITE_FORM'

       EXPORTING

         element = 'COL_ORDLOW'

         window  = 'MAIN'.

   ENDIF.

ENDFORM.                    "PRODNET_INFO

* Include

INCLUDE codrgett.

INCLUDE codrgeth.

* Ende ---------------------------------------------

*----------------------------------------------------------------------*

* FORM mat_desc                                                 *

*----------------------------------------------------------------------*

* Material Description concatenation and split                         *

*----------------------------------------------------------------------*

FORM mat_desc TABLES in_par  STRUCTURE itcsy

                      out_par  STRUCTURE itcsy.

   DATA len TYPE i.

   READ TABLE in_par INDEX 1.

   len = STRLEN( in_par-value ).

   IF len > 22.

     out_par-value = in_par-value+0(22).

     out_par-name  = 'TEXT'.

     MODIFY out_par INDEX 1.

     out_par-value = in_par-value+22(len).

     out_par-name  = 'TEXT1'.

     MODIFY out_par INDEX 2.

   ELSE.

     out_par-value = in_par-value.

*  condense out_par-value NO-GAPS.

     out_par-name  = 'TEXT'.

     MODIFY out_par INDEX 1.

   ENDIF.

ENDFORM.                    "mat_desc

kabil_g
Active Participant
0 Kudos

Dear Rajkumar,

Its  standard  print program, we have customised the print program pls check and help me out..........