Application Development and Automation Discussions
Join the discussions or start your own on all things application development, including tools and APIs, programming models, and keeping your skills sharp.
cancel
Showing results for 
Search instead for 
Did you mean: 
Read only

How to disable push button in module pool

Former Member
0 Likes
4,296

i have a screen having a push button having two lables.

That is first time when i enter the bill no. & press enter , then PRINT button appear.

when the same bill no i enter again, it shows REPRINT on the same push button.

I have to disable the REPRINT button.

Means it won't allow to reprint the same bill no.

How can i do this.

i have a screen having a push button having two lables.

That is first time when i enter the bill no. & press enter , then PRINT button appear.

when the same bill no i enter again, it shows REPRINT on the same push button.

I have to disable the REPRINT button.

Means it won't allow to reprint the same bill no.

How can i do this.

4 REPLIES 4
Read only

Former Member
0 Likes
1,843

Hello Ritesh,

You have to put validation on screen. When you enter bill number at very first time and press enter means its going into screen's PAI event and then again going back to PBO event and then display's the screen with push button.

So you have to add validation code in PBO event if that bill is already printed or not.

in PBO.

module validation output.

if set_flag = 'X'.

loop at screen.

if screen-name = 'Pushbuton'.

screen-disable = 'X'.

modify screen.

endif.

endloop.

endif.

endmodule.

In PAI.

module set_flag.

set_flag = 'X'.

endmodule.

Thanks,

Nilima

Read only

0 Likes
1,843

Dear Nilima,

Its saying that screen doesn't have any component called "Disable"

Read only

0 Likes
1,843

Please help.

This is my code -

FOR PBO.

*&---------------------------------------------------------------------*
*&  Include           YQ_MODP_LABEL_3000_PBO_SF1
*&---------------------------------------------------------------------*
*----------------------------------------------------------------------*
***INCLUDE ZQ_MODP_LABEL_3000_PBO .
*----------------------------------------------------------------------*
*&---------------------------------------------------------------------*
*&      Module  STATUS_3000  OUTPUT
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
MODULE status_3000 OUTPUT.
   SET PF-STATUS 'ZQ_LABEL_STATUS'.
   SET TITLEBAR 'ZLAB'.

   SELECT SINGLE * from ztswun WHERE uname = sy-uname.
   if sy-subrc eq 0.
     LOOP AT SCREEN.
       IF screen-name = 'ZSQ_LABEL-STDWT' .
         screen-input = '1'.
         MODIFY SCREEN.
       ENDIF.
     ENDLOOP.
   endif.
   IF ztq_ir-herkunft EQ '89'  .
     LOOP AT SCREEN.
       IF screen-name = 'ZSQ_LABEL-STDWT' .
         screen-input = '1'.
         MODIFY SCREEN.
       ENDIF.
     ENDLOOP.
   ENDIF.
   IF zsq_label-tubwt EQ space.
     zsq_label-tubwt = 920.
   ENDIF.
***ADDED ON 08/04/08
IF NOT ZSQ_LABEL-CHARG IS  INITIAL.
   LOOP AT SCREEN.
     IF SCREEN-NAME = 'ZSQ_LABEL-CHARG'.
       SCREEN-INPUT = 0.
       MODIFY SCREEN.
     ENDIF.
   ENDLOOP.
else.
   LOOP AT SCREEN.
     IF SCREEN-NAME = 'PRINT'.
       SCREEN-ACTIVE = 0.
       MODIFY SCREEN.
     ENDIF.
   ENDLOOP.
endif.


***ENDADDED ON 08/04/08
ENDMODULE.                 " STATUS_3000  OUTPUT
*&---------------------------------------------------------------------*
*&      Module  set_cursor_postion  OUTPUT
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
MODULE set_cursor_postion OUTPUT.
   SET CURSOR FIELD v_cursor.
ENDMODULE.                 " set_cursor_postion  OUTPUT

FOR PAI.

*&---------------------------------------------------------------------*
*&  Include           YQ_MODP_LABEL_3000_PAI_SF1
*&---------------------------------------------------------------------*
*----------------------------------------------------------------------*
***INCLUDE ZQ_MODP_LABEL_3000_PAI .
*----------------------------------------------------------------------*
*&---------------------------------------------------------------------*
*&      Module  USER_COMMAND_3000  INPUT
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*

MODULE user_command_3000 INPUT.
if not ZSQ_LABEL-CHARG is initial.
   v_tubwt =   zsq_label-tubwt / 1000.
   zsq_label-netwt = zsq_label-rolwt -  v_tubwt .
   ztq_label-netwt = zsq_label-netwt.
   ztq_label-zgroup = zsq_label-zgroup.
endif.
   CASE ok_code.

     WHEN 'PRINT'.
       SELECT SINGLE * FROM ztq_tol WHERE werks = ztq_ir-werks.

*      v_svl = ( zsq_label-stdwt / 1000 ) + v_tubwt.

       IF zsq_label-stdwt NE 0.
         v_tol = zsq_label-rolwt / zsq_label-stdwt .
       ENDIF.
       IF v_tol GE '0.50' AND v_tol LE '1.50'.
         MODIFY ztq_label.
         UPDATE ztq_ir SET rolwt  = zsq_label-rolwt
                           stdwt  = zsq_label-stdwt
                           tubwt  = zsq_label-tubwt
                           netwt  = zsq_label-netwt
                           zgroup = zsq_label-zgroup
                   WHERE charg = zsq_label-charg.

         PERFORM generate_label.
       ELSE.
         IF zsq_label-meter GT 10.
           MESSAGE 'Standard Weight Violation' TYPE 'E'.
         ELSE.
           MODIFY ztq_label.
           UPDATE ztq_ir SET rolwt  = zsq_label-rolwt
                             stdwt  = zsq_label-stdwt
                             tubwt  = zsq_label-tubwt
                             netwt  = zsq_label-netwt
                             zgroup = zsq_label-zgroup
                     WHERE charg = zsq_label-charg.

           PERFORM generate_label.
         ENDIF.
       ENDIF.
     WHEN 'ENTER'.
     WHEN 'BACK'.
       LEAVE TO SCREEN 0.
*

   ENDCASE.

ENDMODULE.                 " USER_COMMAND_3000  INPUT
*&---------------------------------------------------------------------*
*&      Module  check_batch  INPUT
*&---------------------------------------------------------------------*
MODULE check_batch INPUT.
*--to check validate the batch entered in the scree
*--first checking in batch master table
   SELECT SINGLE charg
            FROM mch1
            INTO v_charg
           WHERE charg = zsq_label-charg.
   IF NOT sy-subrc IS INITIAL.
     MESSAGE e000(zqm_msg) WITH zsq_label-charg.
   ELSE.
*--to check if the recording is already done or not
     SELECT SINGLE *
              FROM ztq_ir
              WHERE charg EQ zsq_label-charg.
     IF NOT SY-SUBRC IS INITIAL.
       SELECT SINGLE * FROM ztq_ir
              WHERE gcharg EQ zsq_label-charg.
       v_rep = 'X'.
     ENDIF.

     IF NOT sy-subrc IS INITIAL.
       MESSAGE e001(zqm_msg) WITH zsq_label-charg.
     ELSE.
*--To check whether print out is already taken.
       zsq_label-prueflos = ztq_ir-prueflos.
       if zsq_label-prueflos is initial.
         SELECT SINGLE *
                  FROM ztq_label
                 WHERE prueflos EQ zsq_label-prueflos
                   AND charg    EQ zsq_label-charg.
       else.
         SELECT SINGLE *
                  FROM ztq_label
                 WHERE prueflos EQ zsq_label-prueflos.
*                  AND charg    EQ zsq_label-charg.
       endif.
       IF sy-subrc IS INITIAL.
         MOVE-CORRESPONDING ztq_label TO zsq_label.
         MOVE: 'REPRINT' TO print.    " by rits

         MOVE : ztq_ir-kdauf TO zsq_label-kdauf,
                ztq_ir-kdpos TO zsq_label-kdpos,
                ztq_ir-aufnr TO zsq_label-aufnr,
                ztq_ir-grade TO zsq_label-grade,
                ztq_ir-zomat TO v_zomat.
         if v_rep eq 'X'.
           zsq_label-charg = ztq_ir-gcharg.
         endif.
         SELECT SINGLE kalab INTO zsq_label-meter
           FROM mska
           WHERE matnr =  zsq_label-matnr
             AND charg =  zsq_label-charg
             AND werks =  ztq_ir-werks
             AND lgort =  ztq_ir-lgort
             AND vbeln =  zsq_label-kdauf
             AND posnr =  zsq_label-kdpos
             and kalab gt 0.
          if v_rep eq 'X'.
            zsq_label-charg = ztq_ir-charg.
          endif.
*        zsq_label-meter = ztq_ir-meter.
       ELSE.
         MOVE: 'PRINT' TO print.
         MOVE : ztq_ir-prueflos TO zsq_label-prueflos,
                ztq_ir-aufnr    TO zsq_label-aufnr,
                ztq_ir-matnr    TO zsq_label-matnr,
                ztq_ir-maktx    TO zsq_label-maktx,
                ztq_ir-meter    TO zsq_label-meter,
                ztq_ir-kunnr    TO zsq_label-kunnr,
                ztq_ir-grade    TO zsq_label-grade,
                ztq_ir-piece    TO zsq_label-piece,
                ztq_ir-width    TO zsq_label-width,
                ztq_ir-tag      TO zsq_label-tag,
                ztq_ir-fliza    TO zsq_label-fliza,
                ztq_ir-kdauf    TO zsq_label-kdauf,
                ztq_ir-kdpos    TO zsq_label-kdpos,
                ztq_ir-pastrterm TO zsq_label-pastrterm,
                ztq_ir-zremark  TO  zsq_label-remarks,
                ztq_ir-inspid   TO zsq_label-inspid,
                ztq_ir-zomat    TO v_zomat,
                ztq_ir-zmvb     TO mvb,
                ztq_ir-z4ps     TO four_pt.

       ENDIF. "IF NOT sy-subrc IS INITIAL.

       IF ztq_ir-kdauf IS INITIAL AND ( ztq_ir-herkunft EQ '89' OR
          ztq_ir-herkunft IS INITIAL ).

         SELECT SINGLE clabs INTO zsq_label-meter
           FROM mchb
           WHERE matnr =  zsq_label-matnr
             AND charg =  zsq_label-charg
             AND werks =  ztq_ir-werks
             and clabs gt 0.
         IF zsq_label-meter EQ 0.
           SELECT SINGLE kalab INTO zsq_label-meter
             FROM mska
             WHERE matnr =  zsq_label-matnr
               AND charg =  zsq_label-charg
               AND werks =  ztq_ir-werks
               and kalab gt 0.
         ENDIF.

         IF zsq_label-meter GT ztq_ir-meter.
           zsq_label-meter = ztq_ir-meter.
         ENDIF.
       ENDIF.
*--get the customer material number for that material
       SELECT SINGLE kdmat
                FROM vbap
                INTO zsq_label-kdmat
               WHERE vbeln EQ zsq_label-kdauf
                 AND posnr EQ zsq_label-kdpos.

*--get the finish of the based on sales order from sales
*--order additional data tab.
       SELECT SINGLE fini
                FROM zsoi
                INTO zsq_label-fini
               WHERE vbeln EQ zsq_label-kdauf
                 AND posnr EQ zsq_label-kdpos.

*--get the lot no based on production order
*---code added on 24.11.08 for the sake of performance
clear: v_aufpl, wa_afvc.
refresh i_afvc.
     select single aufpl
              from afko
              into v_aufpl
             where aufnr eq zsq_label-aufnr.
    if sy-subrc is initial.
     select * from afvc
              into table i_afvc
             where aufpl = v_aufpl
               and RMZHL NE '00000000'.


       if sy-subrc is initial.
       read table i_afvc into wa_afvc index 1.
       if sy-subrc is initial.
        SELECT SINGLE ism06
                FROM afru
                INTO zsq_label-ism06
               WHERE RUECK EQ wa_afvc-RUECK
                 and RMZHL eq wa_afvc-RMZHL
                 and aufnr = zsq_label-aufnr.
       endif.
          endif.
          endif.
*---end of code addition on 24.11.08
*---Commented on 24.11.08
**      SELECT SINGLE ism06
**               FROM afru
**               INTO zsq_label-ism06
**              WHERE aufnr EQ zsq_label-aufnr.
*---End of comment on 24.11.08
*--get the required material characteristics with classfication
*--type 001
       SELECT cabn~atinn
              cabn~atnam
              ausp~objek
              ausp~atwrt
         FROM cabn AS cabn
         JOIN ausp AS ausp
           ON cabn~atinn EQ ausp~atinn
         INTO TABLE i_cabn
        WHERE cabn~atnam IN (c_fabric, c_yarn)
          AND ausp~objek EQ zsq_label-matnr
          AND ausp~klart EQ c_001.

       READ TABLE i_cabn INTO wa_cabn WITH KEY atnam = 'FABRICCATERGORY'.
       zsq_label-atwrt   = wa_cabn-atwrt.

       IF ztq_ir-herkunft NE '89'.
*--get the inprocess inspection lot for that production order
         SELECT SINGLE prueflos
                  FROM qals
                  INTO v_prueflos
                 WHERE aufnr EQ zsq_label-aufnr
                   AND herkunft EQ '03'.

         IF sy-subrc IS INITIAL.
*--getting node and characteristic for the master inspection
*-characteristic 'ACT WT'
           SELECT SINGLE  prueflos
                          vorglfnr
                          merknr
                     FROM qamv
                     INTO wa_qamv
                    WHERE prueflos EQ v_prueflos
                      AND verwmerkm EQ c_act_wt.
           IF sy-subrc IS INITIAL.
             SELECT SINGLE mittelwert
                      FROM qasr
                      INTO v_stdqty
                     WHERE prueflos EQ v_prueflos
                       AND vorglfnr EQ wa_qamv-vorglfnr
                       AND merknr EQ wa_qamv-merknr.
             zsq_label-stdwt = ( v_stdqty * zsq_label-meter ) / 1000.
           ENDIF.
         ENDIF.
       ENDIF.
       CLEAR : ztq_label.
       MOVE  : ztq_ir-zmvb     TO mvb,
               ztq_ir-z4ps     TO four_pt.

       PERFORM get_rollweight.

       MOVE-CORRESPONDING : zsq_label TO ztq_label.


     ENDIF.    "IF NOT sy-subrc IS INITIAL

   ENDIF.



ENDMODULE.                 " check_batch  INPUT
*&---------------------------------------------------------------------*
*&      Module  GET_CURSOR_POSITION  INPUT
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
MODULE get_cursor_position INPUT.
*--to get the cursor position
   GET CURSOR FIELD v_cursor.
ENDMODULE.                 " GET_CURSOR_POSITION  INPUT
*&---------------------------------------------------------------------*
*&      Module  calculate_standarwt  INPUT
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
MODULE calculate_standarwt INPUT.

*  zsq_label-stdwt = zsq_label-stdwt + zsq_label-tubwt / 1000.
***if zsq_label-stdwt is initial.
***  zsq_label-stdwt = zsq_label-tubwt / 1000.
***endif.
ENDMODULE.                 " calculate_standarwt  INPUT
*&---------------------------------------------------------------------*
*&      Module  CHECK_METER  INPUT
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
MODULE check_meter INPUT.
   IF zsq_label-meter EQ 0.
     MESSAGE 'Roll Meter Should not be Zero' TYPE 'E'.
   ENDIF.
ENDMODULE.                 " CHECK_METER  INPUT

Read only

0 Likes
1,843

Hi Ritesh,

you have to add flag in PAI, set_flag = 'X'. This flag is to print billing document only once. So its need's to set in PAI. After that write condition in PBO as

module validation output.

if set_flag = 'X'.

loop at screen.

if screen-name = 'Pushbuton'.   " your pushbutton name on screen

screen-active = 0.

modify screen.

endif.

endloop.

clear set_flag .

endif.