<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" version="2.0">
  <channel>
    <title>topic Re: Problem in Weigh Bridge Program in Application Development and Automation Discussions</title>
    <link>https://community.sap.com/t5/application-development-and-automation-discussions/problem-in-weigh-bridge-program/m-p/4996543#M1163682</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;&lt;U&gt;I have found the similar requirement on the Internet .&lt;/U&gt;&lt;/P&gt;&lt;P&gt;&lt;U&gt;Below is my Code in which i am unable to find in which screen i need to put which fields.&lt;/U&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;[I dont see many changes what you made!!|http://www.sapnet.ru/viewtopic.php?t=578]&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Do you think anyone will go through your program?For me this is Complete JUNK,so Reported.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;And I wonder how Mods let this thread alive!!&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Thu, 08 Jan 2009 01:34:57 GMT</pubDate>
    <dc:creator>Former Member</dc:creator>
    <dc:date>2009-01-08T01:34:57Z</dc:date>
    <item>
      <title>Problem in Weigh Bridge Program</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/problem-in-weigh-bridge-program/m-p/4996541#M1163680</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi All,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I  am working on Weigh Bridge Program(i.e Module-Pool Program) ..In this i have to design Screens &lt;/P&gt;&lt;P&gt;for 1000 , 2000, 3000, 4000, 5000 and 6000. I have found the similar requirement on the Internet .&lt;/P&gt;&lt;P&gt;Below is my Code in which i am unable to find in which screen i need to put which fields.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;PRE&gt;&lt;CODE&gt;
REPORT Z_WEIGHBRIDGE_TO_SAP LINE-SIZE 200.

DATA : RB_OTHERS(1) TYPE C,
       RB_TARE(1) TYPE C,
       RB_GROSS TYPE C.

DATA : BEGIN OF ITAB_TAREWT OCCURS 0,
           WEIGHT(50) TYPE C,
       END OF ITAB_TAREWT.
TABLES : ZWB_CARRIER,ZWB_WEIGHT, ZWB_PVEH_WT.
controls: ZTC1 type tableview using screen 3000.
controls: ZTC2 type tableview using screen 4000.
controls: TC3 type tableview using screen 5000.
DATA: ITAB LIKE ZWB_WEIGHT OCCURS 0 WITH HEADER LINE.
DATA  RCODE(1) TYPE C.
DATA  OK_CODE(4) TYPE C.
DATA  ZITEMS TYPE I.
DATA  RND_NO TYPE I.
DATA  ITAB_LINES TYPE I.
DATA  FLAG(4) TYPE C.
DATA : BEGIN OF OPEN_WID OCCURS 0,
       WID LIKE ZWB_WEIGHT-WID,
       MATL_DESC LIKE ZWB_WEIGHT-MATL_DESC,
       END OF OPEN_WID.

DATA  MESS_STRING(100) TYPE C.
DATA  STATUS(5) TYPE C.
DATA  VAR_ANS(1) TYPE C.
DATA  LAST_OPEN_WID LIKE ZWB_WEIGHT-WID.
DATA  LAST_OPEN_WID1(8) TYPE C.
DATA : BEGIN OF DEL_ITAB OCCURS 0,
       WID LIKE ZWB_WEIGHT-WID,
       MATL_DESC LIKE ZWB_WEIGHT-MATL_DESC,
       END OF DEL_ITAB.
DATA  MARKER(1) TYPE C.

DATA : ITAB_TO_DELETE LIKE ZWB_WEIGHT OCCURS 0 WITH header line.
DATA : COUNTER(1) TYPE C.
DATA  VAR_CONF(1) TYPE C.
DATA  VAR_WID1 LIKE ZWB_CARRIER-WID1.
data: begin of desti occurs 100.
        include structure msxxlist.
data: end of desti.
data: begin of serverp occurs 100,     " Presentationserver
        s(32),
        sl(15),
        x(4) type x,
        l(5),h(5),
        m(5),
        c,
        pro(4),
        commu,
      end of serverp.
data: begin of usr_liste occurs 1000.
        include structure uinfo.
data: end of usr_liste.
DATA : BEGIN OF ITAB_WT OCCURS 0,
           WEIGHT(50) TYPE C,
       END OF ITAB_WT.
DATA  PROD_MATL(1) TYPE C.
DATA  INT_MVMT(1) TYPE C.
DATA  NET_WT LIKE ZWB_WEIGHT-WEIGHT1.
DATA  WEIGHT_CONF(1) TYPE C.
DATA  WEIGHT_TAKEN(1) TYPE C.
DATA : ITAB_PRINT LIKE ZWB_WEIGHT OCCURS 1 WITH HEADER LINE.
DATA : CONTROL_ITAB LIKE SSFCTRLOP OCCURS 1 WITH HEADER LINE.

DATA  PRINT_FLAG(12) TYPE C.
                                     1

DATA FM_NAME TYPE RS38L_FNAM.
DATA  HELP_WID LIKE ZWB_WEIGHT-WID.
DATA  RETURN(4) TYPE C.
DATA  SELECTION LIKE ZWB_WEIGHT-WID.

*&amp;amp;---------------------------------------------------------------------*
*&amp;amp;      Module  USER_COMMAND_1000  INPUT
*&amp;amp;---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
MODULE USER_COMMAND_1000 INPUT.
  CASE OK_CODE.
    WHEN 'ENTE'.
**** AUTHORITY CHECKING ****
     AUTHORITY-CHECK OBJECT 'ZWEIGHMENT'
          ID 'ACTVT' FIELD '01'.
       IF SY-SUBRC NE 0.
          MESSAGE E000(ZJ) WITH
          'You have no authorization'.
       ENDIF.
*    PERFORM GET_IP_ADD.
      SELECT SINGLE MATL_DESC WEIGHT1 WEIGHT2 CAST_NO W1_USER W1_DATE
             W1_TIME STATUS
       INTO (ZWB_WEIGHT-MATL_DESC,ZWB_WEIGHT-WEIGHT1,ZWB_WEIGHT-WEIGHT2,
             ZWB_WEIGHT-CAST_NO,ZWB_WEIGHT-W1_USER,ZWB_WEIGHT-W1_DATE,
             ZWB_WEIGHT-W1_TIME,ZWB_WEIGHT-STATUS)
        FROM ZWB_WEIGHT
       WHERE WID = ZWB_WEIGHT-WID.
      IF SY-SUBRC NE 0.
        MESSAGE I000(ZJ) WITH 'Invalid Weighment ID'.
        CLEAR : OK_CODE, ZWB_WEIGHT.
        LEAVE TO SCREEN 1000.
      ELSE.
        VAR_WID1 = ZWB_WEIGHT-WID+0(6).
        SELECT SINGLE VEH_NO TRANSPORTER REMARKS
          INTO (ZWB_CARRIER-VEH_NO,ZWB_CARRIER-TRANSPORTER,
               ZWB_CARRIER-REMARKS) FROM ZWB_CARRIER
         WHERE WID1 = VAR_WID1.
         IF ZWB_WEIGHT-STATUS = 'I'.
            INT_MVMT = 'X'.
         ENDIF.
        LEAVE TO SCREEN 6000.
      ENDIF.
    WHEN 'IDGE'.
      LEAVE TO SCREEN 3000.
    WHEN 'TRWT'.
      LEAVE TO SCREEN 2000.
    WHEN 'PRNT'.
      IF ZWB_WEIGHT-WID IS INITIAL.
        MESSAGE I000(ZJ) WITH 'Enter Weighment ID'.
        LEAVE TO SCREEN 1000.
      ELSE.
        SELECT SINGLE WID MATL_DESC CAST_NO WEIGHT1 WEIGHT2 W1_DATE
               W1_TIME W2_DATE W2_TIME
          INTO (ITAB_PRINT-WID,ITAB_PRINT-MATL_DESC,ITAB_PRINT-CAST_NO,
               ITAB_PRINT-WEIGHT1,ITAB_PRINT-WEIGHT2,ITAB_PRINT-W1_DATE,
              ITAB_PRINT-W1_TIME,ITAB_PRINT-W2_DATE,ITAB_PRINT-W2_TIME)
        FROM ZWB_WEIGHT
       WHERE WID = ZWB_WEIGHT-WID.
        IF SY-SUBRC NE 0.
          MESSAGE I000(ZJ) WITH 'Weighment ID doesnot exist'.
          CLEAR : ITAB_PRINT, ZWB_WEIGHT, ZWB_CARRIER.
          REFRESH : ITAB_PRINT.
          LEAVE TO SCREEN 1000.
        ELSE.
          VAR_WID1 = ZWB_WEIGHT-WID+0(6).
          SELECT SINGLE VEH_NO TRANSPORTER
            INTO (ZWB_CARRIER-VEH_NO,ZWB_CARRIER-TRANSPORTER)
            FROM ZWB_CARRIER
           WHERE WID1 = VAR_WID1.
          IF SY-SUBRC NE 0.
            MESSAGE I000(ZJ) WITH 'Weighment ID doesnot exist'.
            CLEAR : ITAB_PRINT, ZWB_WEIGHT, ZWB_CARRIER.
            REFRESH : ITAB_PRINT.
            LEAVE TO SCREEN 1000.
          ELSE.
            IF NOT ITAB_PRINT-WEIGHT1 IS INITIAL AND
               NOT ITAB_PRINT-WEIGHT2 IS INITIAL.
*              ITAB_PRINT-NET_WT = ABS( ITAB_PRINT-WEIGHT2 -
*                                       ITAB_PRINT-WEIGHT2 ).
            ENDIF.
            APPEND ITAB_PRINT.
            IF PRINT_FLAG &amp;lt;&amp;gt; 'CANCEL_PRINT'.
              PERFORM PRINT_SLIP.
            ENDIF.
            CLEAR : ITAB_PRINT, ZWB_WEIGHT, ZWB_CARRIER.
            REFRESH : ITAB_PRINT.
          ENDIF.
        ENDIF.
      ENDIF.
    WHEN 'BACK'.
      LEAVE TO SCREEN 0.
    WHEN 'EXIT'.
      LEAVE TO SCREEN 0.
    WHEN 'CANC'.
      LEAVE TO SCREEN 0.
  ENDCASE.

ENDMODULE.                 " USER_COMMAND_1000  INPUT
*&amp;amp;---------------------------------------------------------------------*
*&amp;amp;      Module  DEFAULT_SCREEN  OUTPUT
*&amp;amp;---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
MODULE DEFAULT_SCREEN OUTPUT.
  CLEAR PRINT_FLAG.

ENDMODULE.                 " DEFAULT_SCREEN  OUTPUT
*&amp;amp;---------------------------------------------------------------------*
*&amp;amp;      Module  STATUS_1000  OUTPUT
*&amp;amp;---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
MODULE STATUS_1000 OUTPUT.
*SELECT AUTH_OPT INTO ZAUTH_OPT FROM ZWB_USER_OPT
* WHERE USER_ID = SY-UNAME.
* IF ZAUTH_OPT = '1'.
  SET PF-STATUS 'ZMENU'.
* ELSEIF ZAUTH_OPT = '1'.
*    SET PF-STATUS 'Z
*  SET TITLEBAR 'xxx'.

ENDMODULE.                 " STATUS_1000  OUTPUT
*&amp;amp;---------------------------------------------------------------------*
*&amp;amp;      Module  USER_COMMAND_2000  INPUT
*&amp;amp;---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
MODULE USER_COMMAND_2000 INPUT.
  CASE OK_CODE.
    WHEN 'GETW'.
      IF ZWB_PVEH_WT-VEH_NO = ' '.
        MESSAGE I000(ZJ) WITH 'Enter Vehicle number'.
        CLEAR OK_CODE.
        LEAVE TO SCREEN 2000.
      ELSE.
        SELECT SINGLE VEH_NO INTO ZWB_PVEH_WT-VEH_NO
          FROM ZWB_PVEH_WT
         WHERE VEH_NO = ZWB_PVEH_WT-VEH_NO.
        IF SY-SUBRC NE 0.
          CALL FUNCTION 'POPUP_TO_CONFIRM_WITH_MESSAGE'
            EXPORTING
              DEFAULTOPTION        = 'Y'
              DIAGNOSETEXT1        = 'Vehicle number doesnot exist'
*          DIAGNOSETEXT2        = ' '
*          DIAGNOSETEXT3        = ' '
              TEXTLINE1            = 'Want to create a new entry?'
*          TEXTLINE2            = ' '
              TITEL                = 'Confirm'
*          START_COLUMN         = 25
*          START_ROW            = 6
*          CANCEL_DISPLAY       = 'X'
            IMPORTING
              ANSWER               = VAR_CONF
                     .
          CASE VAR_CONF.
            WHEN 'N'.
              CLEAR : OK_CODE, VAR_CONF, ITAB_TAREWT.
              REFRESH ITAB_TAREWT.
              LEAVE TO SCREEN 2000.
            WHEN 'A'.
              CLEAR : OK_CODE, VAR_CONF, ITAB_TAREWT.
              REFRESH ITAB_TAREWT.
              LEAVE TO SCREEN 2000.
          ENDCASE.
        ENDIF.
CLEAR ITAB_TAREWT.
REFRESH ITAB_TAREWT.

********* to clear clipboard containts ************

     CALL FUNCTION 'CLPB_EXPORT'
*         IMPORTING
*           EMPTY            =
        TABLES
           DATA_TAB         = ITAB_TAREWT
         EXCEPTIONS
           CLPB_ERROR       = 1
           OTHERS           = 2
          .
     IF SY-SUBRC &amp;lt;&amp;gt; 0.
        MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
           WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
     ENDIF.

*********    EXECUTE THE VB PROGRAM HERE ********************
CALL FUNCTION 'WS_EXECUTE'
 EXPORTING
*   DOCUMENT                 = ' '
*   CD                       = ' '
*   COMMANDLINE              = ' '
   INFORM                   = 'X'
   PROGRAM                  = 'C:\WEIGHBRIDGE\WEIGHBRIDGE.EXE'
*   STAT                     = ' '
*   WINID                    = ' '
*   OSMAC_SCRIPT             = ' '
*   OSMAC_CREATOR            = ' '
*   WIN16_EXT                = ' '
*   EXEC_RC                  = ' '
* IMPORTING
*   RBUFF                    =
 EXCEPTIONS
   FRONTEND_ERROR           = 1
   NO_BATCH                 = 2
   PROG_NOT_FOUND           = 3
   ILLEGAL_OPTION           = 4
   GUI_REFUSE_EXECUTE       = 5
   OTHERS                   = 6
          .
IF SY-SUBRC &amp;lt;&amp;gt; 0.
 MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
         WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.
        CALL FUNCTION 'CLPB_IMPORT'
*            IMPORTING
*              EMPTY            =
           TABLES
             DATA_TAB         = ITAB_TAREWT
           EXCEPTIONS
             CLPB_ERROR       = 1
             OTHERS           = 2
             .
        IF SY-SUBRC &amp;lt;&amp;gt; 0.
          MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
                WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
        ENDIF.
        READ TABLE ITAB_TAREWT INDEX 1.
        IF ITAB_TAREWT-WEIGHT = ' '.
          MESSAGE I000(ZJ) WITH 'NO WEIGHT DATA'.
          CLEAR : OK_CODE, VAR_CONF, ITAB_TAREWT, ZWB_PVEH_WT.
          REFRESH ITAB_TAREWT.
          LEAVE TO SCREEN 2000.
        ELSE.
          CALL FUNCTION 'POPUP_TO_CONFIRM_WITH_MESSAGE'
            EXPORTING
              DEFAULTOPTION        = 'Y'
              DIAGNOSETEXT1        = 'The weight value is'
              DIAGNOSETEXT2        = ITAB_TAREWT-WEIGHT
              DIAGNOSETEXT3        = 'Want to confirm weight ? '
              TEXTLINE1            = 'Choose YES to confirm...'
*              TEXTLINE2            = ' '
              TITEL                = 'Confirm'
*              START_COLUMN         = 25
*              START_ROW            = 6
*              CANCEL_DISPLAY       = 'X'
            IMPORTING
              ANSWER               = WEIGHT_CONF
                      .
          CASE WEIGHT_CONF.
            WHEN 'J'.
              ZWB_PVEH_WT-T_WEIGHT = ITAB_TAREWT-WEIGHT.
              ZWB_PVEH_WT-W_DATE = SY-DATUM.
              ZWB_PVEH_WT-W_TIME = SY-UZEIT.
              ZWB_PVEH_WT-W_USER = SY-UNAME.
              MODIFY ZWB_PVEH_WT.
              IF SY-SUBRC = 0.
                COMMIT WORK.
*                NET_WT = ABS( ZWB_WEIGHT-WEIGHT2 - ZWB_WEIGHT-WEIGHT1).
                MESSAGE I000(ZJ) WITH 'WEIGHT CAPATURED AND UPDATED'.
                CLEAR : OK_CODE, PROD_MATL,INT_MVMT,ZWB_WEIGHT,
WEIGHT_TAKEN,
                        WEIGHT_CONF, ZWB_CARRIER, ZWB_PVEH_WT,
                        ITAB_TAREWT.
                REFRESH ITAB_TAREWT.
                LEAVE TO SCREEN 1000.
              ELSE.
                ROLLBACK WORK.
                MESSAGE I000(ZJ) WITH 'PROBLEM IN UPDATION, RETRY. '.
                CLEAR : OK_CODE, WEIGHT_CONF, ITAB_TAREWT,
                        WEIGHT_TAKEN, WEIGHT_CONF.
                REFRESH ITAB_TAREWT.
                LEAVE TO SCREEN 2000.
              ENDIF.
            WHEN OTHERS.
              CLEAR : OK_CODE, WEIGHT_CONF, ITAB_TAREWT, WEIGHT_TAKEN.
              REFRESH ITAB_TAREWT.
              LEAVE TO SCREEN 2000.
          ENDCASE.
*
*             ZWB_PVEH_WT-T_WEIGHT = ITAB_TAREWT-WEIGHT.
*             ZWB_PVEH_WT-W_DATE = SY-DATUM.
*             ZWB_PVEH_WT-W_TIME = SY-UZEIT.
*             ZWB_PVEH_WT-W_USER = SY-UNAME.
*             MODIFY ZWB_PVEH_WT.
*             IF SY-SUBRC = 0.
*                COMMIT WORK.
*                MESSAGE I000(ZJ) WITH
*                   'TARE WEIGHT SUCCESSFULLY INSERTED'.
*                CLEAR : OK_CODE, VAR_CONF, ITAB_TAREWT, ZWB_PVEH_WT.
*                REFRESH ITAB_TAREWT.
*                LEAVE TO SCREEN 1000.
*             ELSE.
*                ROLLBACK WORK.
*                message I000(ZJ) WITH 'PROBLEM IN UPDATING RECORD'.
*                CLEAR : OK_CODE, VAR_CONF, ITAB_TAREWT, ZWB_PVEH_WT.
*                REFRESH ITAB_TAREWT.
*             ENDIF.
        ENDIF.
      ENDIF.
    WHEN 'BACK'.
      CLEAR : OK_CODE, VAR_CONF, ITAB_TAREWT. REFRESH ITAB_TAREWT.
      LEAVE TO SCREEN 1000.
    WHEN 'CANC'.
      LEAVE TO SCREEN 0.
    WHEN 'EXIT'.
      LEAVE TO SCREEN 0.
  ENDCASE.

ENDMODULE.                 " USER_COMMAND_2000  INPUT

*&amp;amp;---------------------------------------------------------------------*
*&amp;amp;      Module  SHOW_WID  OUTPUT
*&amp;amp;---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
MODULE SHOW_WID OUTPUT.
  IF NOT ITAB IS INITIAL AND ( OK_CODE = 'SAVE' OR OK_CODE = ' ' ).
    ZWB_WEIGHT-WID = ITAB-WID.
    ZWB_WEIGHT-MATL_DESC = ITAB-MATL_DESC.
    COUNTER = 'X'.
  ELSE.
    IF NOT COUNTER = 'X'.
      ZITEMS = 1.
      CLEAR COUNTER.
    ENDIF.
  ENDIF.
ENDMODULE.                 " SHOW_WID  OUTPUT
*&amp;amp;---------------------------------------------------------------------*
*&amp;amp;      Module  INITIALIZE  OUTPUT
*&amp;amp;---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
MODULE INITIALIZE OUTPUT.
  CLEAR : OK_CODE, COUNTER.
  CLEAR ITAB. REFRESH ITAB.
ENDMODULE.                 " INITIALIZE  OUTPUT
*&amp;amp;---------------------------------------------------------------------*
*&amp;amp;      Module  BACK  INPUT
*&amp;amp;---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
MODULE BACK INPUT.
  CASE OK_CODE.
    WHEN 'BACK'.
    CLEAR : ITAB,OPEN_WID, STATUS, MESS_STRING, VAR_ANS, LAST_OPEN_WID1,
                ZWB_CARRIER, ZWB_WEIGHT, OK_CODE, ZITEMS, LAST_OPEN_WID,
                        DEL_ITAB, ITAB_TO_DELETE.
      REFRESH :ITAB, OPEN_WID, DEL_ITAB, ITAB_TO_DELETE.
      LEAVE TO SCREEN 1000.
    WHEN 'CANC' OR 'EXIT'.
      LEAVE TO SCREEN 0.
  ENDCASE.
ENDMODULE.                 " BACK  INPUT
*&amp;amp;---------------------------------------------------------------------*
*&amp;amp;      Module  CHECK_VEHICLE_STATUS  INPUT
*&amp;amp;---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
MODULE CHECK_VEHICLE_STATUS INPUT.
  IF OK_CODE = 'SAVE'.

    IF ZWB_CARRIER-VEH_NO = ' ' OR ZWB_CARRIER-TRANSPORTER = ' '
       OR ZITEMS = ' '.
      MESSAGE I000(ZJ) WITH 'Enter values in all fields'.
      LEAVE TO SCREEN 3000.
    ELSEIF ZWB_CARRIER-VEH_NO CA '*-/\|:;'''.
      MESSAGE I000(ZJ) WITH
         'Vehicle No should no contain special characters'.
      LEAVE TO SCREEN 3000.
    ELSE.
      SELECT WID MATL_DESC INTO TABLE OPEN_WID FROM ZWB_WEIGHT
       WHERE ( WEIGHT2 IS NULL OR WEIGHT2 = 0 ).
*  MESS_STRING = 'OPEN WIDs ARE '.
      SORT OPEN_WID.
      LOOP AT OPEN_WID.
*  VAR_WID = OPEN_WID-WID+1(6).
        SELECT WID1 INTO ZWB_CARRIER-WID1 FROM ZWB_CARRIER
         WHERE VEH_NO = ZWB_CARRIER-VEH_NO
           AND WID1 = OPEN_WID-WID+0(6).
          IF SY-SUBRC = 0.
            STATUS = 'OPEN'.
            DEL_ITAB-WID = OPEN_WID-WID.
            DEL_ITAB-MATL_DESC = OPEN_WID-MATL_DESC.
            APPEND DEL_ITAB.
            CONCATENATE MESS_STRING  OPEN_WID-WID ','  INTO MESS_STRING.
            LAST_OPEN_WID = OPEN_WID-WID.
          ENDIF.
        ENDSELECT.
      ENDLOOP.

      IF STATUS = 'OPEN'.
*   CONCATENATE MESS_STRING
*   ' Delete / Insert extra items ' INTO MESS_STRING.
        CALL FUNCTION 'POPUP_TO_DECIDE_WITH_MESSAGE'
          EXPORTING
*      DEFAULTOPTION           = '1'
            DIAGNOSETEXT1           = 'OPEN WIDs ARE '
            DIAGNOSETEXT2           = MESS_STRING
            DIAGNOSETEXT3           = ' Delete / Insert extra items '
            TEXTLINE1               = 'CHOOSE ONE OPTION'
*      TEXTLINE2               = ' '
*      TEXTLINE3               = ' '
            TEXT_OPTION1            = 'Insert extra item'
            TEXT_OPTION2            = 'Delete extra item'
*      ICON_TEXT_OPTION1       =
*      ICON_TEXT_OPTION2       =
            TITEL                   = 'CONFIRM'
*      START_COLUMN            = 25
*      START_ROW               = 6
*      CANCEL_DISPLAY          = 'X'
         IMPORTING
           ANSWER                  = VAR_ANS
                  .

*   MESSAGE I000(ZJ) WITH MESS_STRING.
        CLEAR STATUS.
        IF VAR_ANS = 'A' .  "CANCLE OPTION
          CLEAR : OPEN_WID,VAR_ANS,STATUS.REFRESH OPEN_WID.
          LEAVE TO SCREEN 3000.
        ELSEIF VAR_ANS = '1'.  "INSERT OPTION
          LAST_OPEN_WID1 = LAST_OPEN_WID+0(8).
        ELSEIF VAR_ANS = '2'. "DELETE OPTION
          LEAVE TO SCREEN 5000.
        ENDIF.
      ENDIF.
    ENDIF.
  ENDIF.
ENDMODULE.                 " CHECK_VEHICLE_STATUS  INPUT
*&amp;amp;---------------------------------------------------------------------*
*&amp;amp;      Module  INSERT_REMARK  INPUT
*&amp;amp;---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
MODULE INSERT_REMARK INPUT.
  IF OK_CODE = 'SAVE' OR OK_CODE = ''.
    IF NOT ZWB_WEIGHT-MATL_DESC = ' '.
      ITAB-MATL_DESC = ZWB_WEIGHT-MATL_DESC.
      APPEND ITAB.
    ENDIF.
  ENDIF.
ENDMODULE.                 " INSERT_REMARK  INPUT
*&amp;amp;---------------------------------------------------------------------*
*&amp;amp;      Module  USER_COMMAND_3000  INPUT
*&amp;amp;---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
MODULE USER_COMMAND_3000 INPUT.
  CASE OK_CODE.
    WHEN 'SAVE'.
      LOOP AT ITAB.
        IF ITAB-MATL_DESC IS INITIAL.
          MESSAGE I000(ZJ) WITH
            'Enter Material Desc for all Items'.
    CLEAR : ITAB,OPEN_WID, STATUS, MESS_STRING, VAR_ANS, LAST_OPEN_WID1
                              , LAST_OPEN_WID, DEL_ITAB, ITAB_TO_DELETE.
          REFRESH :ITAB, OPEN_WID, DEL_ITAB, ITAB_TO_DELETE.

          LEAVE TO SCREEN 3000.
        ENDIF.
      ENDLOOP.
      DESCRIBE TABLE ITAB LINES ITAB_LINES.
      IF NOT ITAB_LINES EQ ZITEMS.
        MESSAGE I000(ZJ) WITH
        'Enter Desc only for the number of items given'.
        CLEAR : OPEN_WID, STATUS, MESS_STRING, VAR_ANS,
                LAST_OPEN_WID1, LAST_OPEN_WID, DEL_ITAB, ITAB_TO_DELETE.
        REFRESH :OPEN_WID, DEL_ITAB, ITAB_TO_DELETE.
*       CLEAR ITAB. REFRESH ITAB.
        LEAVE TO SCREEN 3000.
      ENDIF.

      IF VAR_ANS NE '1'.
        CALL FUNCTION 'NUMBER_GET_NEXT'
               EXPORTING
                 NR_RANGE_NR                   = '1'
                 OBJECT                        = 'ZWID1'
                 QUANTITY                      = '1'
*        SUBOBJECT                     = ' '
*        TOYEAR                        = '0000'
*        IGNORE_BUFFER                 = ' '
               IMPORTING
                 NUMBER                        = ZWB_CARRIER-WID1
*        QUANTITY                      =
                 RETURNCODE                    = RCODE
              EXCEPTIONS
                INTERVAL_NOT_FOUND            = 1
                NUMBER_RANGE_NOT_INTERN       = 2
                OBJECT_NOT_FOUND              = 3
                QUANTITY_IS_0                 = 4
                QUANTITY_IS_NOT_1             = 5
                INTERVAL_OVERFLOW             = 6
                BUFFER_OVERFLOW               = 7
                OTHERS                        = 8
                       .
        IF SY-SUBRC &amp;lt;&amp;gt; 0.
          MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
          WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
        ENDIF.
      ENDIF.
      DO ZITEMS TIMES.
        CALL FUNCTION 'QF05_RANDOM_INTEGER'
             EXPORTING
                  RAN_INT_MAX   = 9999
                  RAN_INT_MIN   = 1000
             IMPORTING
                  RAN_INT       = RND_NO
             EXCEPTIONS
                  INVALID_INPUT = 1
                  OTHERS        = 2.
        IF SY-SUBRC &amp;lt;&amp;gt; 0.
          MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
          WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
        ENDIF.
        IF VAR_ANS = '1'. " Insert extra items.
          ZWB_WEIGHT-WID =  ( LAST_OPEN_WID1 * 10000 ) +
                            ( SY-INDEX * 10000 ) +
                            RND_NO.
        ELSE.
          ZWB_WEIGHT-WID = ( ZWB_CARRIER-WID1 * 1000000 ) +
                           ( SY-INDEX * 10000 ) +
                           RND_NO.
        ENDIF.
        READ TABLE ITAB INDEX SY-INDEX.
        ITAB-WID = ZWB_WEIGHT-WID.
        MODIFY ITAB INDEX SY-INDEX .

*       MESSAGE I000(ZJ) WITH ZWB_WEIGHT-WID.
      ENDDO.

    WHEN 'BACK'.
    CLEAR : ITAB,OPEN_WID, STATUS, MESS_STRING, VAR_ANS, LAST_OPEN_WID1,
                ZWB_CARRIER, ZWB_WEIGHT, OK_CODE, ZITEMS, LAST_OPEN_WID,
                     DEL_ITAB, ITAB_TO_DELETE.
      REFRESH :ITAB, OPEN_WID, DEL_ITAB, ITAB_TO_DELETE.
      LEAVE TO SCREEN 1000.
    WHEN 'EXIT'.
      LEAVE TO SCREEN 0.
    WHEN 'CANC'.
      LEAVE TO SCREEN 0.
  ENDCASE.

ENDMODULE.                 " USER_COMMAND_3000  INPUT
*&amp;amp;---------------------------------------------------------------------*
*&amp;amp;      Module  INSERT_DATA  INPUT
*&amp;amp;---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
MODULE INSERT_DATA INPUT.
  IF NOT ITAB IS INITIAL AND OK_CODE = 'SAVE'.
    IF VAR_ANS NE '1'.
      ZWB_CARRIER-WID_DATE = SY-DATUM.
      ZWB_CARRIER-WID_TIME = SY-UZEIT.
      INSERT INTO ZWB_CARRIER VALUES ZWB_CARRIER.
      IF SY-SUBRC EQ 0.
        INSERT ZWB_WEIGHT FROM TABLE itab.
        IF SY-SUBRC EQ 0.
          COMMIT WORK.
          LEAVE TO SCREEN 4000.
*        MESSAGE I000(ZJ) WITH ZITEMS 'IDS CREATED'.
        ELSE.
          ROLLBACK WORK.
          MESSAGE E000(ZJ) WITH 'PROBLEM IN INSERTION FOR ZWB_WEIGHT'.
        ENDIF.
      ELSE.
        MESSAGE E000(ZJ) WITH 'PROBLEM IN INSERTION FOR ZWB_CARRIER'.
      ENDIF.
    ELSE.
      INSERT ZWB_WEIGHT FROM TABLE itab.
      IF SY-SUBRC EQ 0.
        COMMIT WORK.
        LEAVE TO SCREEN 4000.
*         MESSAGE I000(ZJ) WITH ZITEMS 'IDS CREATED'.
      ELSE.
        ROLLBACK WORK.
        MESSAGE E000(ZJ) WITH 'PROBLEM IN INSERTION FOR ZWB_WEIGHT'.
      ENDIF.
    ENDIF.
  ENDIF.

ENDMODULE.                 " INSERT_DATA  INPUT
*&amp;amp;---------------------------------------------------------------------*
*&amp;amp;      Module  SHOW_DETAILS  OUTPUT
*&amp;amp;---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
MODULE SHOW_DETAILS OUTPUT.
  ZWB_WEIGHT-WID = DEL_ITAB-WID.
  ZWB_WEIGHT-MATL_DESC = DEL_ITAB-MATL_DESC.
ENDMODULE.                 " SHOW_DETAILS  OUTPUT
*&amp;amp;---------------------------------------------------------------------*
*&amp;amp;      Module  SELECT_DEL  INPUT
*&amp;amp;---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
MODULE SELECT_DEL INPUT.
  IF MARKER = 'X'.
    ITAB_TO_DELETE-WID = ZWB_WEIGHT-WID.
    APPEND ITAB_TO_DELETE.
  ENDIF.
ENDMODULE.                 " SELECT_DEL  INPUT
*&amp;amp;---------------------------------------------------------------------*
*&amp;amp;      Module  USER_COMMAND_5000  INPUT
*&amp;amp;---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
MODULE USER_COMMAND_5000 INPUT.
  CASE OK_CODE.
    WHEN 'DELE'.
      DELETE ZWB_WEIGHT FROM TABLE ITAB_TO_DELETE.
      IF SY-SUBRC = 0.
        MESSAGE I000(ZJ) WITH 'Selected IDs deleted'.
        COMMIT WORK.
        CLEAR : OPEN_WID, ZWB_CARRIER, ZWB_WEIGHT, ITAB_TO_DELETE,
                DEL_ITAB, ZITEMS,OK_CODE, VAR_ANS, ITAB, LAST_OPEN_WID,
                LAST_OPEN_WID1,MESS_STRING, STATUS.
        REFRESH : OPEN_WID, ITAB_TO_DELETE, DEL_ITAB, ITAB.
        LEAVE TO SCREEN 3000.
      ELSE.
        MESSAGE I000(ZJ) WITH 'Problem in deletion'.
        ROLLBACK WORK.
*      CLEAR : OPEN_WID, ITAB_TO_DELETE, OK_CODE, LAST_OPEN_WID,
*             LAST_OPEN_WID1, MESS_STRING, VAR_ANS.
*      REFRESH : ITAB_TO_DELETE, OPEN_WID.
        LEAVE TO SCREEN 5000.
      ENDIF.
    WHEN 'BACK'.
      CLEAR : OPEN_WID, ZWB_CARRIER, ZWB_WEIGHT, ITAB_TO_DELETE,
              DEL_ITAB, ZITEMS,OK_CODE, VAR_ANS, ITAB, LAST_OPEN_WID,
              LAST_OPEN_WID1,MESS_STRING, STATUS.
      REFRESH : OPEN_WID, ITAB_TO_DELETE, DEL_ITAB, ITAB.
      LEAVE TO SCREEN 3000.
    WHEN 'CANC'.
      LEAVE TO SCREEN 0.
    WHEN 'EXIT'.
      LEAVE TO SCREEN 0.
  ENDCASE.

ENDMODULE.                 " USER_COMMAND_5000  INPUT
*&amp;amp;---------------------------------------------------------------------*
*&amp;amp;      Module  STATUS_4000  OUTPUT
*&amp;amp;---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
MODULE STATUS_4000 OUTPUT.
  SET PF-STATUS 'PFSTAT_4'.
*  SET TITLEBAR 'xxx'.

ENDMODULE.                 " STATUS_4000  OUTPUT
*&amp;amp;---------------------------------------------------------------------*
*&amp;amp;      Module  USER_COMMAND_4000  INPUT
*&amp;amp;---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
MODULE USER_COMMAND_4000 INPUT.
  CASE OK_CODE.
    WHEN 'NEW' OR 'BACK'.
    CLEAR : ITAB,OPEN_WID, STATUS, MESS_STRING, VAR_ANS, LAST_OPEN_WID1,
                ZWB_CARRIER, ZWB_WEIGHT, OK_CODE, ZITEMS, LAST_OPEN_WID,
                    DEL_ITAB, ITAB_TO_DELETE, ITAB_PRINT,PRINT_FLAG.
      REFRESH :ITAB, OPEN_WID, DEL_ITAB, ITAB_TO_DELETE, ITAB_PRINT.
      LEAVE TO SCREEN 3000.
    WHEN 'EXIT'.
      LEAVE TO SCREEN 0.
    WHEN 'CANC'.
      LEAVE TO SCREEN 0.
    WHEN 'PRNT'.
      PERFORM PRINT_SLIP.
  ENDCASE.
ENDMODULE.                 " USER_COMMAND_4000  INPUT
*&amp;amp;---------------------------------------------------------------------*
*&amp;amp;      Module  STATUS_5000  OUTPUT
*&amp;amp;---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
MODULE STATUS_5000 OUTPUT.
  SET PF-STATUS 'PFSTAT_5'.
*  SET TITLEBAR 'xxx'.

ENDMODULE.                 " STATUS_5000  OUTPUT
*&amp;amp;---------------------------------------------------------------------*
*&amp;amp;      Module  STATUS_2000  OUTPUT
*&amp;amp;---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
MODULE STATUS_2000 OUTPUT.
  SET PF-STATUS 'PFSTAT_2'.
*  SET TITLEBAR 'xxx'.

ENDMODULE.                 " STATUS_2000  OUTPUT
*&amp;amp;---------------------------------------------------------------------*
*&amp;amp;      Module  STATUS_3000  OUTPUT
*&amp;amp;---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
MODULE STATUS_3000 OUTPUT.
  SET PF-STATUS 'PFSTAT_3'.
*  SET TITLEBAR 'xxx'.

ENDMODULE.                 " STATUS_3000  OUTPUT
*&amp;amp;---------------------------------------------------------------------*
*&amp;amp;      Module  STATUS_6000  OUTPUT
*&amp;amp;---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
MODULE STATUS_6000 OUTPUT.

  SET PF-STATUS 'PFSTAT_6'.
*  SET TITLEBAR 'xxx'.

ENDMODULE.                 " STATUS_6000  OUTPUT
*&amp;amp;---------------------------------------------------------------------*
*&amp;amp;      Module  USER_COMMAND_6000  INPUT
*&amp;amp;---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
MODULE USER_COMMAND_6000 INPUT.
  CASE OK_CODE.
    WHEN 'GETW'.
      IF  PROD_MATL = 'X' AND NOT ZWB_WEIGHT-CAST_NO IS INITIAL.
        SELECT SINGLE T_WEIGHT INTO ZWB_WEIGHT-WEIGHT1
          FROM ZWB_PVEH_WT
         WHERE VEH_NO = ZWB_CARRIER-VEH_NO.
        IF SY-SUBRC = 0.
          ZWB_WEIGHT-W1_USER = SY-UNAME.
          ZWB_WEIGHT-W1_DATE = SY-DATUM.
          ZWB_WEIGHT-W1_TIME = SY-UZEIT.
        ELSE.
         MESSAGE I000(ZJ) WITH 'Vehicle not maintained for tare weight'.
          CLEAR : OK_CODE.
          LEAVE TO SCREEN 6000.
        ENDIF.
      ELSEIF ( ( PROD_MATL = 'X' AND ZWB_WEIGHT-CAST_NO IS INITIAL )
        OR ( PROD_MATL NE 'X' AND NOT ZWB_WEIGHT-CAST_NO IS INITIAL ) ).
        MESSAGE I000(ZJ) WITH
      'Cast Number should be present only for Production Material'.
        CLEAR : OK_CODE, ZWB_WEIGHT-CAST_NO, PROD_MATL.
        LEAVE TO SCREEN 6000.
      ELSEIF INT_MVMT = 'X'.
        ZWB_WEIGHT-STATUS = 'I'.
        CLEAR INT_MVMT.
      ENDIF.

*   ELSEIF PROD_MATL NE 'X' AND ZWB_WEIGHT-CAST_NO IS INITIAL.
*       ********* to cleat clipboard containts ************
     CLEAR ITAB_WT.
     REFRESH ITAB_WT.
     CALL FUNCTION 'CLPB_EXPORT'
*         IMPORTING
*           EMPTY
          TABLES
            DATA_TAB         = ITAB_WT
         EXCEPTIONS
           CLPB_ERROR       = 1
           OTHERS           = 2
          .
*     IF SY-SUBRC &amp;lt;&amp;gt; 0.
*        MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
*           WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
*     ENDIF.

**********    EXECUTE THE VB PROGRAM HERE ********************
CALL FUNCTION 'WS_EXECUTE'
 EXPORTING
*   DOCUMENT                 = ' '
*   CD                       = ' '
*   COMMANDLINE              = ' '
   INFORM                   = 'X'
   PROGRAM                  = 'C:\WEIGHBRIDGE\WEIGHBRIDGE.EXE'
*   STAT                     = ' '
*   WINID                    = ' '
*   OSMAC_SCRIPT             = ' '
*   OSMAC_CREATOR            = ' '
*   WIN16_EXT                = ' '
*   EXEC_RC                  = ' '
* IMPORTING
*   RBUFF                    =
 EXCEPTIONS
   FRONTEND_ERROR           = 1
   NO_BATCH                 = 2
   PROG_NOT_FOUND           = 3
   ILLEGAL_OPTION           = 4
   GUI_REFUSE_EXECUTE       = 5
   OTHERS                   = 6
          .
IF SY-SUBRC &amp;lt;&amp;gt; 0.
 MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
         WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.
      CALL FUNCTION 'CLPB_IMPORT'
*        IMPORTING
*           EMPTY            =
           TABLES
              DATA_TAB         = ITAB_WT
           EXCEPTIONS
              CLPB_ERROR       = 1
              OTHERS           = 2
               .
      IF SY-SUBRC &amp;lt;&amp;gt; 0.
        MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
               WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
      ENDIF.

      READ TABLE ITAB_WT INDEX 1.
      IF ITAB_WT-WEIGHT = ' '.
        MESSAGE I000(ZJ) WITH 'NO WEIGHT DATA'.
        CLEAR : OK_CODE, ITAB_WT.
        REFRESH ITAB_WT.
        LEAVE TO SCREEN 6000.
      ELSE.
*        IF PROD_MATL = 'X' AND NOT ZWB_WEIGHT-CAST_NO IS INITIAL.
*           ZWB_WEIGHT-WEIGHT2 = ITAB_WT-WEIGHT.
*        ELSEIF ZWB_WEIGHT-WEIGHT1 IS INITIAL.
*           ZWB_WEIGHT-WEIGHT1 = ITAB_WT-WEIGHT.
*        ELSE.
*           ZWB_WEIGHT-WEIGHT2 = ITAB_WT-WEIGHT.
*        ENDIF.
        IF ZWB_WEIGHT-WEIGHT1 IS INITIAL.
          ZWB_WEIGHT-WEIGHT1 = ITAB_WT-WEIGHT.
          ZWB_WEIGHT-W1_USER = SY-UNAME.
          ZWB_WEIGHT-W1_DATE = SY-DATUM.
          ZWB_WEIGHT-W1_TIME = SY-UZEIT.
        ELSE.
          ZWB_WEIGHT-WEIGHT2 = ITAB_WT-WEIGHT.
          ZWB_WEIGHT-W2_USER = SY-UNAME.
          ZWB_WEIGHT-W2_DATE = SY-DATUM.
          ZWB_WEIGHT-W2_TIME = SY-UZEIT.
          NET_WT = ABS( ZWB_WEIGHT-WEIGHT2 - ZWB_WEIGHT-WEIGHT1 ).
        ENDIF.
        WEIGHT_TAKEN = 'Y'.
      ENDIF.
*Cancellation of wid.
    WHEN 'DELE'.
      SELECT SINGLE *
        FROM ZWB_WEIGHT
       WHERE WID = ZWB_WEIGHT-WID
         AND STATUS &amp;lt;&amp;gt; 'C'
         AND STATUS &amp;lt;&amp;gt; 'D' .

      IF SY-SUBRC &amp;lt;&amp;gt; 0.
         ROLLBACK WORK.
         IF ZWB_WEIGHT-STATUS = 'D'.
            MESSAGE I000(ZJ) WITH 'ID already cancelled'.
            CLEAR : OK_CODE, PROD_MATL, ZWB_WEIGHT, NET_WT.
            CLEAR : WEIGHT_TAKEN, ZWB_CARRIER, ZWB_PVEH_WT.
            CLEAR : ITAB_WT,ITAB_PRINT.
            REFRESH : ITAB_WT,ITAB_PRINT.
            LEAVE TO SCREEN 1000.

         ELSEIF ZWB_WEIGHT-STATUS = 'C'.
MESSAGE I000(ZJ) WITH 'Processing completed, Cancellation not possible '
.
            CLEAR : OK_CODE, PROD_MATL, ZWB_WEIGHT, NET_WT.
            CLEAR : WEIGHT_TAKEN, ZWB_CARRIER, ZWB_PVEH_WT.
            CLEAR : ITAB_WT,ITAB_PRINT.
            REFRESH : ITAB_WT,ITAB_PRINT.
            LEAVE TO SCREEN 1000.
         ENDIF.
      ELSE.
***********************
CALL FUNCTION 'POPUP_TO_CONFIRM_WITH_MESSAGE'
            EXPORTING
              DEFAULTOPTION        = 'N'
              DIAGNOSETEXT1        = 'Caution !!'
*          DIAGNOSETEXT2        = ' '
*          DIAGNOSETEXT3        = ' '
              TEXTLINE1            = 'Want to cancel the Weighment ID?'
*          TEXTLINE2            = ' '
              TITEL                = 'Confirm'
*          START_COLUMN         = 25
*          START_ROW            = 6
           CANCEL_DISPLAY       = ' '
            IMPORTING
              ANSWER               = VAR_CONF
                     .
          CASE VAR_CONF.
            WHEN 'N'.
*              ROLLBACK WORK.
              MESSAGE I000(ZJ) WITH 'Cancellation aborted'.
              CLEAR : OK_CODE, PROD_MATL, ZWB_WEIGHT, NET_WT,
                      WEIGHT_TAKEN,ZWB_CARRIER, ZWB_PVEH_WT,
                      ITAB_WT,ITAB_PRINT,VAR_CONF.
              REFRESH : ITAB_WT,ITAB_PRINT.
              LEAVE TO SCREEN 1000.
            WHEN 'J'.
               UPDATE ZWB_WEIGHT
                  SET STATUS = 'D'
                WHERE WID = ZWB_WEIGHT-WID
                  AND STATUS &amp;lt;&amp;gt; 'C'
                  AND STATUS &amp;lt;&amp;gt; 'D' .

              COMMIT WORK.

              MESSAGE I000(ZJ) WITH 'Cancellation done'.
              CLEAR : OK_CODE, PROD_MATL, ZWB_WEIGHT, NET_WT,
                      WEIGHT_TAKEN,ZWB_CARRIER, ZWB_PVEH_WT,
                      ITAB_WT,ITAB_PRINT,VAR_CONF.
              REFRESH : ITAB_WT,ITAB_PRINT.
              LEAVE TO SCREEN 1000.
            WHEN OTHERS.
              ROLLBACK WORK.
              MESSAGE I000(ZJ) WITH 'Cancellation aborted'.
              CLEAR : OK_CODE, PROD_MATL, ZWB_WEIGHT, NET_WT,
                      WEIGHT_TAKEN,ZWB_CARRIER, ZWB_PVEH_WT,
                      ITAB_WT,ITAB_PRINT,VAR_CONF.
              REFRESH : ITAB_WT,ITAB_PRINT.
              LEAVE TO SCREEN 1000.

          ENDCASE.


***********************
      ENDIF.

      CLEAR : OK_CODE, PROD_MATL, ZWB_WEIGHT, NET_WT, WEIGHT_TAKEN,
              ZWB_CARRIER, ZWB_PVEH_WT, ITAB_WT,ITAB_PRINT.
      REFRESH : ITAB_WT,ITAB_PRINT.
      LEAVE TO SCREEN 1000.
    WHEN 'BACK'.
      CLEAR : OK_CODE, PROD_MATL, ZWB_WEIGHT, NET_WT, WEIGHT_TAKEN,
              ZWB_CARRIER, ZWB_PVEH_WT, ITAB_WT,ITAB_PRINT,INT_MVMT.
      REFRESH : ITAB_WT,ITAB_PRINT.
      LEAVE TO SCREEN 1000.
    WHEN 'EXIT' OR 'CANC'.
      LEAVE TO SCREEN 0.

  ENDCASE.
ENDMODULE.                 " USER_COMMAND_6000  INPUT
*&amp;amp;---------------------------------------------------------------------*
*&amp;amp;      Form  GET_IP_ADD
*&amp;amp;---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*  --&amp;gt;  p1        text
*  &amp;lt;--  p2        text
*----------------------------------------------------------------------*
FORM GET_IP_ADD.
  REFRESH : DESTI,SERVERP.
  CALL FUNCTION 'RFC_GET_LOCAL_SERVERS'
       TABLES
            HOSTS         = DESTI
       EXCEPTIONS
            NOT_AVAILABLE = 1.

  LOOP AT DESTI.
    REFRESH USR_LISTE.
    CALL FUNCTION 'THUSRINFO' DESTINATION DESTI-NAME
        TABLES     USR_TABL  =  USR_LISTE
        EXCEPTIONS COMMUNICATION_FAILURE = 17.
    IF SY-SUBRC = '17'.
*   SERVERA-COMMU = 'P'.
      EXIT.
    ELSE.
*   SERVERA-COMMU = ' '.
    ENDIF.
    DELETE USR_LISTE WHERE BNAME NE SY-UNAME.
    LOOP AT USR_LISTE.
      CHECK USR_LISTE-TERM &amp;lt;&amp;gt; '????' AND USR_LISTE-TERM &amp;lt;&amp;gt; 'APPC-TM'.
      IF USR_LISTE-TERM CS ':'.
        USR_LISTE-TERM = USR_LISTE-TERM(SY-FDPOS).
      ENDIF.
      CLEAR SERVERP-S.
      SERVERP-S = USR_LISTE-TERM.
      SERVERP-X = USR_LISTE-HOSTADR.
*      PERFORM IP_HEX2ASCII_N USING SERVERP-X CHANGING SERVERP-SL.
      IF SERVERP-S IS INITIAL.         " OR SERVERP-SL CS '0.0.0.0'.
      ELSE.
        COLLECT SERVERP.
      ENDIF.
    ENDLOOP.
  ENDLOOP.
ENDFORM.                    " GET_IP_ADD
*&amp;amp;---------------------------------------------------------------------*
*&amp;amp;      Module  SAVE_WEIGHT  OUTPUT
*&amp;amp;---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
MODULE SAVE_WEIGHT OUTPUT.
  IF PRINT_FLAG = 'CANCEL_PRINT'.
    CLEAR : PRINT_FLAG,WEIGHT_TAKEN.
    LEAVE SCREEN.
  ENDIF.

  IF WEIGHT_TAKEN = 'Y'.
*  OR PRINT_FLAG &amp;lt;&amp;gt; 'CANCEL_PRINT'.
    CALL FUNCTION 'POPUP_TO_CONFIRM_WITH_MESSAGE'
          EXPORTING
            DEFAULTOPTION        = 'Y'
            DIAGNOSETEXT1        = 'The weight value is'
            DIAGNOSETEXT2        = ITAB_WT-WEIGHT
            DIAGNOSETEXT3        = 'Want to confirm weight ? '
            TEXTLINE1            = 'Choose YES to confirm...'
*          TEXTLINE2            = ' '
            TITEL                = 'Confirm'
*          START_COLUMN         = 25
*          START_ROW            = 6
*          CANCEL_DISPLAY       = 'X'
          IMPORTING
            ANSWER               = WEIGHT_CONF
                        .
    CASE WEIGHT_CONF.
      WHEN 'J'.
        IF NOT ZWB_WEIGHT-WEIGHT2 IS INITIAL AND NET_WT = 0.
          MESSAGE I000(ZJ) WITH
                  'GROSS WEIGHT AND TARE WEIGHT CAN''T BE EQUAL'.
          CLEAR : ZWB_WEIGHT-WEIGHT2, NET_WT,WEIGHT_TAKEN.
          LEAVE TO SCREEN 6000.
        ELSE.
          MODIFY ZWB_WEIGHT.

          IF SY-SUBRC = 0.
            COMMIT WORK.
*               NET_WT = ABS( ZWB_WEIGHT-WEIGHT2 - ZWB_WEIGHT-WEIGHT1).
            MESSAGE I000(ZJ) WITH 'WEIGHT CAPATURED AND UPDATED'.
            IF NOT ZWB_WEIGHT-WEIGHT2 IS INITIAL.
              ITAB_PRINT-WID = ZWB_WEIGHT-WID.
              ITAB_PRINT-MATL_DESC = ZWB_WEIGHT-MATL_DESC.
              ITAB_PRINT-CAST_NO = ZWB_WEIGHT-CAST_NO.
              ITAB_PRINT-WEIGHT1 = ZWB_WEIGHT-WEIGHT1.
              ITAB_PRINT-WEIGHT2 = ZWB_WEIGHT-WEIGHT2.
              ITAB_PRINT-W1_DATE = ZWB_WEIGHT-W1_DATE.
              ITAB_PRINT-W1_TIME = ZWB_WEIGHT-W1_TIME.
              ITAB_PRINT-W2_DATE = ZWB_WEIGHT-W2_DATE.
              ITAB_PRINT-W2_TIME = ZWB_WEIGHT-W2_TIME.
              APPEND ITAB_PRINT.
*              IF PRINT_FLAG &amp;lt;&amp;gt; 'CANCEL_PRINT'.
              PERFORM PRINT_SLIP.
*              ENDIF.
            ENDIF.
*            IF PRINT_FLAG &amp;lt;&amp;gt; 'CANCEL_PRINT'.
            CLEAR : OK_CODE, PROD_MATL, ZWB_WEIGHT, WEIGHT_TAKEN,
                    ZWB_CARRIER, ZWB_PVEH_WT, ITAB_WT, ITAB_PRINT,
INT_MVMT,NET_WT.
            REFRESH : ITAB_WT, ITAB_PRINT.
            LEAVE TO SCREEN 1000.
*            ELSE.
*              CLEAR : OK_CODE.
*              LEAVE TO SCREEN 6000.
*            ENDIF.
          ELSE.
            ROLLBACK WORK.
            MESSAGE I000(ZJ) WITH
                'PROBLEM IN UPDATION, RETRY... '.
            CLEAR : OK_CODE, WEIGHT_CONF, ITAB_WT, WEIGHT_TAKEN.
            REFRESH ITAB_WT.
            LEAVE TO SCREEN 6000.
          ENDIF.
        ENDIF.
      WHEN OTHERS.
        IF  PROD_MATL = 'X' AND NOT ZWB_WEIGHT-CAST_NO IS INITIAL.
          CLEAR : ZWB_WEIGHT-WEIGHT2, NET_WT. "TO CLEAR WEIGHT

        ELSE.
          IF ZWB_WEIGHT-WEIGHT2 IS INITIAL.
            CLEAR ZWB_WEIGHT-WEIGHT1.
          ELSE.
            CLEAR : ZWB_WEIGHT-WEIGHT2, NET_WT.
          ENDIF.
        ENDIF.
        CLEAR : OK_CODE, WEIGHT_CONF, ITAB_WT, WEIGHT_TAKEN.
        REFRESH ITAB_WT.
        LEAVE TO SCREEN 6000.
    ENDCASE.
*  ELSE.
*    CLEAR PRINT_FLAG.
  ENDIF.
ENDMODULE.                 " SAVE_WEIGHT  OUTPUT
*&amp;amp;---------------------------------------------------------------------*
*&amp;amp;      Module  SHOW_WID_4000  OUTPUT
*&amp;amp;---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
MODULE SHOW_WID_4000 OUTPUT.
  IF NOT ITAB IS INITIAL AND ( OK_CODE = 'SAVE' OR OK_CODE = 'PRNT' ).
    ZWB_WEIGHT-WID = ITAB-WID.
    ZWB_WEIGHT-MATL_DESC = ITAB-MATL_DESC.
    ITAB_PRINT-WID = ITAB-WID.
    ITAB_PRINT-MATL_DESC = ITAB-MATL_DESC.
    APPEND ITAB_PRINT.
*   COUNTER = 'X'.
*ELSE.
*   IF NOT COUNTER = 'X'.
*      ZITEMS = 1.
*      CLEAR COUNTER.
*    ENDIF.
  ENDIF.

ENDMODULE.                 " SHOW_WID_4000  OUTPUT
*&amp;amp;---------------------------------------------------------------------*
*&amp;amp;      Module  AUTH_CHK  OUTPUT
*&amp;amp;---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
MODULE AUTH_CHK OUTPUT.

**** TO ENABLE THE FIELDS FOR THE FIRST TIME AND DISABLE THEM WHEN
****WEIGHT VALUES ARE TAKEN.

  IF NOT ZWB_WEIGHT-WEIGHT1 IS INITIAL AND
     NOT ZWB_WEIGHT-WEIGHT2 IS INITIAL.
    NET_WT = ABS( ZWB_WEIGHT-WEIGHT2 - ZWB_WEIGHT-WEIGHT1 ).
    LOOP AT SCREEN.
      IF SCREEN-GROUP1 = 'G1'.
        SCREEN-INPUT = '0'.
        MODIFY SCREEN.
      ENDIF.
    ENDLOOP.
  ENDIF.
*IF NOT ZWB_WEIGHT-CAST_NO IS INITIAL.

ENDMODULE.                 " AUTH_CHK  OUTPUT
*&amp;amp;---------------------------------------------------------------------*
*&amp;amp;      Form  PRINT_SLIP
*&amp;amp;---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*  --&amp;gt;  p1        text
*  &amp;lt;--  p2        text
*----------------------------------------------------------------------*
FORM PRINT_SLIP.
*{   INSERT         KD1K900432                                        2
  CALL FUNCTION 'SSF_FUNCTION_MODULE_NAME'
    EXPORTING
      FORMNAME                 = 'ZWEIGHMENT_SLIP'
*     VARIANT                  = ' '
*     DIRECT_CALL              = ' '
   IMPORTING
     FM_NAME                  = FM_NAME
   EXCEPTIONS
     NO_FORM                  = 1
     NO_FUNCTION_MODULE       = 2
     OTHERS                   = 3
            .
  IF SY-SUBRC &amp;lt;&amp;gt; 0.
 MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
         WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
  ENDIF.

*}   INSERT
*CONTROL_ITAB-NO_CLOSE = 'X'.
*APPEND CONTROL_ITAB.
*{   REPLACE        KD1K900432                                        1
*\  CALL FUNCTION '/1BCDWB/SF00000005'
  CALL FUNCTION FM_NAME
*}   REPLACE
    EXPORTING
*   ARCHIVE_INDEX              =
*   ARCHIVE_INDEX_TAB          =
*   ARCHIVE_PARAMETERS         =
      CONTROL_PARAMETERS         = CONTROL_ITAB
*   MAIL_APPL_OBJ              =
*   MAIL_RECIPIENT             =
*   MAIL_SENDER                =
*   OUTPUT_OPTIONS             =
*   USER_SETTINGS              = 'X'
      VEHICLE_NO                 = ZWB_CARRIER-VEH_NO
      CARRIER                    = ZWB_CARRIER-TRANSPORTER
* IMPORTING
*   DOCUMENT_OUTPUT_INFO       =
*   JOB_OUTPUT_INFO            =
*   JOB_OUTPUT_OPTIONS         =
    TABLES
      ITAB                       = ITAB_PRINT
    EXCEPTIONS
      FORMATTING_ERROR           = 1
      INTERNAL_ERROR             = 2
      SEND_ERROR                 = 3
      USER_CANCELED              = 4
      OTHERS                     = 5
            .
  IF SY-SUBRC = 4 .
   PRINT_FLAG = 'CANCEL_PRINT'.
    LEAVE SCREEN.

  ELSEIF SY-SUBRC &amp;lt;&amp;gt; 0 .

    MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
            WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.

* LEAVE SCREEN.
  ELSE.
    PRINT_FLAG = ' '.
  ENDIF.

ENDFORM.                    " PRINT_SLIP
*&amp;amp;---------------------------------------------------------------------*
*&amp;amp;      Module  PRINT_SLIP  OUTPUT
*&amp;amp;---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
MODULE PRINT_SLIP OUTPUT.
  IF PRINT_FLAG &amp;lt;&amp;gt; 'CANCEL_PRINT'.
    PERFORM PRINT_SLIP.
    CLEAR PRINT_FLAG.
  ENDIF.
ENDMODULE.                 " PRINT_SLIP  OUTPUT

*{   INSERT         KD1K900432                                        1
*&amp;amp;---------------------------------------------------------------------*
*&amp;amp;      Module  VAL_REQ_WID  INPUT
*&amp;amp;---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
MODULE VAL_REQ_WID INPUT.
CALL SCREEN 100 STARTING AT 10 5
                   ENDING AT 25 15.
   CASE RETURN.
     WHEN 'SELE'.
       ZWB_WEIGHT-WID = SELECTION.
     WHEN 'BREAK'.
      LEAVE TO SCREEN 0.
      CLEAR : RETURN.
   ENDCASE.

ENDMODULE.                 " VAL_REQ_WID  INPUT

AT LINE-SELECTION.
     RETURN = 'SELE'.
     SELECTION = HELP_WID.
     LEAVE LIST-PROCESSING.


*}   INSERT

*{   INSERT         KD1K900432                                        2
*&amp;amp;---------------------------------------------------------------------*
*&amp;amp;      Module  LIST_PROCESSING  OUTPUT
*&amp;amp;---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
MODULE LIST_PROCESSING OUTPUT.
LEAVE TO LIST-PROCESSING AND RETURN TO SCREEN 0.
  NEW-PAGE LINE-SIZE 15.
*  SET PF-STATUS 'POP_PICK'.
  SET PF-STATUS SPACE.
  SET TITLEBAR 'HELP_TITLE'.
  FORMAT COLOR COL_HEADING.
  WRITE : / 'Weighment Id'.
  ULINE AT 0(15).
  FORMAT COLOR COL_NORMAL.
  SELECT WID
    INTO HELP_WID
    FROM ZWB_WEIGHT UP TO 20 ROWS
   WHERE WEIGHT2 = 0
     AND STATUS &amp;lt;&amp;gt; 'D'
 ORDER BY WID DESCENDING.
     WRITE : / HELP_WID.
     HIDE : HELP_WID.

  ENDSELECT.
  IF SY-SUBRC &amp;lt;&amp;gt; 0.
     WRITE : /'No WID generated for today'.
     CLEAR : HELP_WID.
  ENDIF.

 LEAVE SCREEN.

ENDMODULE.                 " LIST_PROCESSING  OUTPUT

AT LINE-SELECTION.
     RETURN = 'SELE'.
     SELECTION = HELP_WID.
     LEAVE LIST-PROCESSING.
  AT USER-COMMAND.

     CASE SY-UCOMM.
       WHEN 'EXIT'.
          RETURN = 'BREAK'. LEAVE LIST-PROCESSING.
       WHEN 'RTRN'.
          RETURN = 'BREAK'. LEAVE LIST-PROCESSING.
       WHEN 'SELE'.
          RETURN = 'SELE'.
     ENDCASE.
&lt;/CODE&gt;&lt;/PRE&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Thanks &amp;amp; regards,&lt;/P&gt;&lt;P&gt;Laxmi&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Code Formatted by: Alvaro Tejada Galindo on Jan 7, 2009 4:22 PM&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 07 Jan 2009 06:39:37 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/problem-in-weigh-bridge-program/m-p/4996541#M1163680</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2009-01-07T06:39:37Z</dc:date>
    </item>
    <item>
      <title>Re: Problem in Weigh Bridge Program</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/problem-in-weigh-bridge-program/m-p/4996542#M1163681</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;In clear, you took this program from internet and you want us to explain you what it does ? Please ask more precise questions, we won't do all the job !&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 07 Jan 2009 23:10:09 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/problem-in-weigh-bridge-program/m-p/4996542#M1163681</guid>
      <dc:creator>Sandra_Rossi</dc:creator>
      <dc:date>2009-01-07T23:10:09Z</dc:date>
    </item>
    <item>
      <title>Re: Problem in Weigh Bridge Program</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/problem-in-weigh-bridge-program/m-p/4996543#M1163682</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;&lt;U&gt;I have found the similar requirement on the Internet .&lt;/U&gt;&lt;/P&gt;&lt;P&gt;&lt;U&gt;Below is my Code in which i am unable to find in which screen i need to put which fields.&lt;/U&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;[I dont see many changes what you made!!|http://www.sapnet.ru/viewtopic.php?t=578]&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Do you think anyone will go through your program?For me this is Complete JUNK,so Reported.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;And I wonder how Mods let this thread alive!!&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 08 Jan 2009 01:34:57 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/problem-in-weigh-bridge-program/m-p/4996543#M1163682</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2009-01-08T01:34:57Z</dc:date>
    </item>
  </channel>
</rss>

