Modification in MB5B prg...material stock between a date range

Hi experts
I have to modify mb5b tranx prg . presently we are using date as selection criteria..but now onwards user wants G/L account along with date as selection criteria. I created one selec-option for field HKONT type hkont-bseg. Now in select queries i need ur help ..Kindly tell me where i need to use this field in my select queries to fetch RELEVANT data.
Regards
Anu
CODE:
REPORT ZRM07MLBD NO STANDARD PAGE HEADING MESSAGE-ID M7 LINE-SIZE 280.
********my change*******
tables : BSEG.
TYPE-POOLS:  IMREP,                   " Typen Bestandsführungsreporting
             SLIS.                    " Typen Listviewer
INCLUDE ZRM07MLDD.
DATA FLAG(1) TYPE C VALUE ' '.
DATA BAL_QTY TYPE P DECIMALS 2.
DATA BAL_AMT TYPE P DECIMALS 2.
*include:  rm07mldd.     " reportspezifische Datendefinitionen
"n571473
define the selection screen here                          "n571473
"n571473
SELECTION-SCREEN BEGIN OF BLOCK DATABASE-SELECTION
          WITH FRAME TITLE TEXT-001.
Text-001: Datenbankabgrenzungen
SELECT-OPTIONS: MATNR FOR MARD-MATNR MEMORY ID MAT
                                     MATCHCODE OBJECT MAT1,
                BUKRS FOR T001-BUKRS  MEMORY ID BUK,
                WERKS FOR T001W-WERKS MEMORY ID WRK,
                LGORT FOR T001L-LGORT,
                CHARG FOR MCHB-CHARG,
                BWTAR FOR MBEW-BWTAR,
                BWART FOR MSEG-BWART.
PARAMETERS SOBKZ LIKE MSEG-SOBKZ.
SELECTION-SCREEN SKIP.
SELECT-OPTIONS: DATUM FOR MKPF-BUDAT NO-EXTENSION,
**********my change**************
          HKONT FOR BSEG-HKONT.
********END CHANGE************
SELECTION-SCREEN END OF BLOCK DATABASE-SELECTION.
SELECTION-SCREEN BEGIN OF BLOCK BESTANDSART
WITH FRAME TITLE TEXT-002.
Text-002: Bestandsart
SELECTION-SCREEN BEGIN OF LINE.
PARAMETERS LGBST LIKE AM07M-LGBST RADIOBUTTON GROUP BART DEFAULT 'X'.
SELECTION-SCREEN COMMENT 4(50) TEXT-010 FOR FIELD LGBST.
Text-010: Lagerort-/Chargenbestand
SELECTION-SCREEN END OF LINE.
SELECTION-SCREEN BEGIN OF LINE.
PARAMETERS BWBST LIKE AM07M-BWBST RADIOBUTTON GROUP BART.
SELECTION-SCREEN COMMENT 4(50) TEXT-011 FOR FIELD BWBST.
Text-011: bewerteter Bestand
SELECTION-SCREEN END OF LINE.
SELECTION-SCREEN BEGIN OF LINE.
PARAMETERS SBBST LIKE AM07M-SBBST RADIOBUTTON GROUP BART.
SELECTION-SCREEN COMMENT 4(50) TEXT-012 FOR FIELD SBBST.
Text-012: Sonderbestand
SELECTION-SCREEN END OF LINE.
SELECTION-SCREEN END OF BLOCK BESTANDSART.
Commented By Rachit Material group Not Required
improved definition of parameters for scope of list       "n599218
*SELECTION-SCREEN BEGIN OF BLOCK MARA WITH FRAME TITLE TEXT-040.
**selection-screen begin of line.
*PARAMETERS P_MATKL LIKE MARA-MATKL.
**selection-screen end of line.
**SELECTION-SCREEN COMMENT 4(50) TEXT-030 for fieLD s_matkl.
*SELECTION-SCREEN END OF BLOCK MARA.
SELECTION-SCREEN BEGIN OF BLOCK LISTUMFANG
  WITH FRAME TITLE TEXT-003.  "Listumfang
the following 3 parameters became obsolete do not use     "n599218
anymor. They are still here to inform the user about      "n599218
that he is using old variants or SUBMIT commands          "n599218
PARAMETERS :                                                "n599218
  XONUL  LIKE AM07M-XONUL            NO-DISPLAY,            "n599218
  XVBST  LIKE AM07M-XVBST            NO-DISPLAY,            "n599218
  XNVBST LIKE AM07M-XNVBS            NO-DISPLAY.            "n599218
7 new categories for the scope of list                    "n599218
                                                          "n599218
cat. I docs I stock on   I    I stock on I Parameter      "n599218
     I      I start date I    I end date I                "n599218
---+--+--------++------+--------      "n599218
1   I yes  I =  zero    I =  I =  zero  I pa_wdzer       "n599218
2   I yes  I =  zero    I <> I <> zero  I pa_wdzew       "n599218
3   I yes  I <> zero    I <> I =  zero  I pa_wdwiz       "n599218
4   I yes  I <> zero    I <> I <> zero  I pa_wdwuw       "n599218
5   I yes  I <> zero    I =  I <> zero  I pa_wdwew       "n599218
     I      I            I    I          I                "n599218
6   I no   I =  zero    I =  I =  zero  I pa_ndzer       "n599218
7   I no   I <> zero    I =  I <> zero  I pa_ndsto       "n599218
                                                          "n599218
definition of the pushbutton : show or hide the following "n599218
parameters for the scope of list                          "n599218
SELECTION-SCREEN PUSHBUTTON /1(20) PB_LIU                   "n599218
                           USER-COMMAND LIU.                "n599218
                                                            "n599218
text line : materials with movements                      "n599218
SELECTION-SCREEN BEGIN OF LINE.                             "n599218
SELECTION-SCREEN COMMENT 1(55) TEXT-072                     "n599218
                         MODIF ID LIU.                      "n599218
SELECTION-SCREEN END OF LINE.                               "n599218
                                                            "n599218
with movements / start = zero  =  end = zero              "n599218
1   I yes  I =  zero    I =  I =  zero  I pa_wdzer       "n599218
SELECTION-SCREEN BEGIN OF LINE.                             "n599218
SELECTION-SCREEN POSITION 2.                                "n599218
PARAMETERS : PA_WDZER    LIKE AM07M-MB5B_XONUL              "n599218
                         MODIF ID LIU.                      "n599218
  text-083 : no opening stock ; no closing stock          "n599218
SELECTION-SCREEN COMMENT 5(70) TEXT-083                     "n599218
                         FOR FIELD PA_WDZER                 "n599218
                         MODIF ID LIU.                      "n599218
SELECTION-SCREEN END OF LINE.                               "n599218
                                                            "n599218
with movements / start = zero  =  end <> zero             "n599218
2   I yes  I =  zero    I <> I <> zero  I pa_wdzew       "n599218
SELECTION-SCREEN BEGIN OF LINE.                             "n599218
SELECTION-SCREEN POSITION 2.                                "n599218
PARAMETERS : PA_WDZEW    LIKE AM07M-MB5B_XONUL              "n599218
                         MODIF ID LIU.                      "n599218
  text-084 : no opening stock ; with closing stock        "n599218
SELECTION-SCREEN COMMENT 5(70) TEXT-084                     "n599218
                         FOR FIELD PA_WDZEW                 "n599218
                         MODIF ID LIU.                      "n599218
SELECTION-SCREEN END OF LINE.                               "n599218
                                                            "n599218
with movements / start stock <> 0 / end stock = 0         "n599218
3   I yes  I <> zero    I <> I =  zero  I pa_wdwiz       "n599218
SELECTION-SCREEN BEGIN OF LINE.                             "n599218
SELECTION-SCREEN POSITION 2.                                "n599218
PARAMETERS : PA_WDWIZ    LIKE AM07M-MB5B_XONUL              "n599218
                         MODIF ID LIU.                      "n599218
  text-085 : with opening stock ; no closing stock        "n599218
SELECTION-SCREEN COMMENT 5(70) TEXT-085                     "n599218
                         FOR FIELD PA_WDWIZ                 "n599218
                         MODIF ID LIU.                      "n599218
SELECTION-SCREEN END OF LINE.                               "n599218
                                                            "n599218
with movements / with start and end stocks / different    "n599218
4   I yes  I <> zero    I <> I <> zero  I pa_wdwuw       "n599218
SELECTION-SCREEN BEGIN OF LINE.                             "n599218
SELECTION-SCREEN POSITION 2.                                "n599218
PARAMETERS : PA_WDWUW    LIKE AM07M-MB5B_XONUL              "n599218
                         MODIF ID LIU.                      "n599218
  with opening stock ; with closing stock ; changed       "n599218
SELECTION-SCREEN COMMENT 5(70) TEXT-086                     "n599218
                         FOR FIELD PA_WDWUW                 "n599218
                         MODIF ID LIU.                      "n599218
SELECTION-SCREEN END OF LINE.                               "n599218
                                                            "n599218
with movements / with start and end stock / equal         "n599218
5   I yes  I <> zero    I =  I <> zero  I pa_wdwew       "n599218
SELECTION-SCREEN BEGIN OF LINE.                             "n599218
SELECTION-SCREEN POSITION 2.                                "n599218
PARAMETERS : PA_WDWEW    LIKE AM07M-MB5B_XONUL              "n599218
                         MODIF ID LIU.                      "n599218
  with opening stock ; with closing stock ; non-changed   "n599218
SELECTION-SCREEN COMMENT 5(70) TEXT-087                     "n599218
                         FOR FIELD PA_WDWEW                 "n599218
                         MODIF ID LIU.                      "n599218
SELECTION-SCREEN END OF LINE.                               "n599218
                                                            "n599218
text line : materials without movements                   "n599218
SELECTION-SCREEN BEGIN OF LINE.                             "n599218
SELECTION-SCREEN COMMENT 1(55) TEXT-073                     "n599218
                         MODIF ID LIU.                      "n599218
SELECTION-SCREEN END OF LINE.                               "n599218
                                                            "n599218
materials without movements / stocks = zero               "n599218
6   I no   I =  zero    I =  I =  zero  I pa_ndzer       "n599218
SELECTION-SCREEN BEGIN OF LINE.                             "n599218
SELECTION-SCREEN POSITION 2.                                "n599218
PARAMETERS : PA_NDZER    LIKE AM07M-MB5B_XONUL              "n599218
                         MODIF ID LIU.                      "n599218
  text-083 : no opening stock ; no closing stock          "n599218
SELECTION-SCREEN COMMENT 5(70) TEXT-083                     "n599218
                         FOR FIELD PA_NDZER                 "n599218
                         MODIF ID LIU.                      "n599218
SELECTION-SCREEN END OF LINE.                               "n599218
                                                            "n599218
materials without movements / with start or end stock     "n599218
7   I no   I <> zero    I =  I <> zero  I pa_ndsto       "n599218
SELECTION-SCREEN BEGIN OF LINE.                             "n599218
SELECTION-SCREEN POSITION 2.                                "n599218
PARAMETERS : PA_NDSTO    LIKE AM07M-MB5B_XONUL              "n599218
                         MODIF ID LIU.                      "n599218
  with opening stock ; with closing stock ; non-changed   "n599218
SELECTION-SCREEN COMMENT 5(70) TEXT-087                     "n599218
                         FOR FIELD PA_NDSTO                 "n599218
                         MODIF ID LIU.                      "n599218
SELECTION-SCREEN END OF LINE.                               "n599218
                                                            "n599218
SELECTION-SCREEN END OF BLOCK LISTUMFANG.
SELECTION-SCREEN BEGIN OF BLOCK EINSTELLUNGEN
   WITH FRAME TITLE TEXT-068.  "Settings
parameter for totals only - hierseq. list
corresponding display variant
SELECTION-SCREEN BEGIN OF LINE.
SELECTION-SCREEN POSITION 1.
PARAMETERS XSUM          LIKE AM07M-XSUM.
SELECTION-SCREEN COMMENT 4(60) TEXT-090 FOR FIELD XSUM.
SELECTION-SCREEN END OF LINE.
SELECTION-SCREEN BEGIN OF LINE.
SELECTION-SCREEN COMMENT 5(30) TEXT-091 FOR FIELD PA_SUVAR.
*Commented by Rachit
SELECTION-SCREEN POSITION 40.
PARAMETERS: PA_SUVAR LIKE DISVARIANT-VARIANT.
SELECTION-SCREEN END OF LINE.
parameter for totals only - flat list + corresponding display variant
SELECTION-SCREEN BEGIN OF LINE.
SELECTION-SCREEN POSITION 1.
PARAMETERS PA_SUMFL LIKE AM07M-XSUM.
SELECTION-SCREEN COMMENT 4(60) TEXT-092 FOR FIELD PA_SUMFL.
SELECTION-SCREEN END OF LINE.
SELECTION-SCREEN BEGIN OF LINE.
SELECTION-SCREEN COMMENT 5(30) TEXT-091 FOR FIELD PA_SFLVA.
SELECTION-SCREEN POSITION 40.
PARAMETERS: PA_SFLVA LIKE DISVARIANT-VARIANT.
SELECTION-SCREEN END OF LINE.
SELECTION-SCREEN BEGIN OF LINE.
SELECTION-SCREEN POSITION 1.
PARAMETERS XCHAR LIKE AM07M-XCHRG.
SELECTION-SCREEN COMMENT 4(50) TEXT-015 FOR FIELD XCHAR.
Text-015: nur chargenpflichtige Materialien
Das Kennzeichen 'xchar' bestimmt die Art der Listausgabe entweder
auf Material- oder Chargenebene.
SELECTION-SCREEN END OF LINE.
the function "No reversal movements" is only         "n571473
available from relaese 4.5B and higher               "n571473
( TEXT-026 : No reversal movements )                 "n571473
SELECTION-SCREEN BEGIN OF LINE.                             "n571473
SELECTION-SCREEN POSITION 1.                                "n571473
PARAMETERS NOSTO LIKE AM07M-NOSTO.                          "n571473
SELECTION-SCREEN COMMENT 4(50) TEXT-026                     "n571473
                       FOR FIELD NOSTO.                     "n571473
SELECTION-SCREEN END OF LINE.                               "n571473
SELECTION-SCREEN END OF BLOCK EINSTELLUNGEN.
*Rachit
SELECTION-SCREEN BEGIN OF BLOCK LISTE WITH FRAME TITLE TEXT-040.
PARAMETERS: P_VARI LIKE DISVARIANT-VARIANT.
SELECTION-SCREEN END OF BLOCK LISTE.
HAUPTPROGRAMM *********************************
F4-Hilfe für Reportvariante -
AT SELECTION-SCREEN ON VALUE-REQUEST FOR P_VARI.
  PERFORM F4_FOR_VARIANT.
AT SELECTION-SCREEN ON VALUE-REQUEST FOR PA_SFLVA.
  PERFORM                    VARIANT_VALUE_REQUEST_F4
                             USING  PA_SFLVA  G_S_VARI_SUMFL.
AT SELECTION-SCREEN ON VALUE-REQUEST FOR PA_SUVAR.
  PERFORM                    VARIANT_VALUE_REQUEST_F4
                             USING  PA_SUVAR G_S_VARI_SUMHQ.
"n599218
INITIALIZATION                                            "n599218
"n599218
                                                            "n599218
INITIALIZATION.
  CLEAR : G_S_VARI_SUMHQ, G_S_VARI_SUMFL.
  REPID = SY-REPID.
  VARIANT_SAVE = 'A'.
preprae the working areas for the variants
  MOVE  : REPID              TO  G_S_VARI_SUMHQ-REPORT,
          'SUHQ'             TO  G_S_VARI_SUMHQ-HANDLE,
          REPID              TO  G_S_VARI_SUMFL-REPORT,
          'SUFL'             TO  G_S_VARI_SUMFL-HANDLE.
  MOVE-CORRESPONDING : G_S_VARI_SUMHQ  TO  G_S_VARI_SUMHQ_DEF,
                       G_S_VARI_SUMFL  TO  G_S_VARI_SUMFL_DEF.
  PERFORM  GET_THE_DEFAULT_VARIANT
                             USING  PA_SFLVA
                                    G_S_VARI_SUMFL
                                    G_S_VARI_SUMFL_DEF.
  PERFORM  GET_THE_DEFAULT_VARIANT
                             USING  PA_SUVAR
                                    G_S_VARI_SUMHQ
                                    G_S_VARI_SUMHQ_DEF.
  PERFORM INITIALISIERUNG.
get the parameters from the last run                      "n547170
  PERFORM                    ESDUS_GET_PARAMETERS.          "n547170
set flag when INITILIZATION is processed
  MOVE  'X'        TO  G_FLAG_INITIALIZATION.
"n599218
AT SELECTION-SCREEN                                       "n599218
"n599218
Prüfung der eingegebenen Selektionsparameter, -
Berechtigungsprüfung -
AT SELECTION-SCREEN.
the following 3 parameters XONUL, XVBST, and XNVBST       "n599218
became obsolete; send error when they should be filled.   "n599218
This could be possible if the user works with old         "n599218
selection variants or this report is launched by a        "n599218
SUBMIT command                                            "n599218
  IF  XONUL  IS INITIAL  AND                                "n599218
      XVBST  IS INITIAL  AND                                "n599218
      XNVBST IS INITIAL.                                    "n599218
ok, the old parameters are empty                         "n599218
  ELSE.                                                     "n599218
  text-088 : note 599218 : obsolete parameter used        "n599218
    MESSAGE E895             WITH  TEXT-088.                "n599218
  ENDIF.
did the user hit the pushbutton "Category" ?              "n599218
  CASE     SSCRFIELDS-UCOMM.                                "n599218
    WHEN  'LIU '.                                           "n599218
    yes, the pushbutton "Category" was hit                "n599218
      IF  G_FLAG_STATUS_LIU  =  C_HIDE.                     "n599218
      show the 7 parameters on the selection srceen       "n599218
        MOVE  C_SHOW         TO  G_FLAG_STATUS_LIU.         "n599218
      ELSE.                                                 "n599218
      hide the 7 paramaters                               "n599218
        MOVE  C_HIDE         TO  G_FLAG_STATUS_LIU.         "n599218
      ENDIF.                                                "n599218
  ENDCASE.                                                  "n599218
                                                            "n599218
go on only if the user wants to launch this report        "n599218
  CHECK : SY-UCOMM = 'ONLI'  OR                             "n599218
          SY-UCOMM = 'PRIN'  OR                             "n599218
          SY-UCOMM = 'SJOB'.                                "n599218
only one sum function can be processed
  IF  XSUM     = 'X' AND
      PA_SUMFL = 'X'.
    SET CURSOR               FIELD 'XSUM'.
  select one sum list only
    MESSAGE  E895            WITH  TEXT-093.
  ENDIF.
  PERFORM EINGABEN_PRUEFEN.
  SET CURSOR                 FIELD 'PA_SFLVA'.
  PERFORM  VARIANT_CHECK_EXISTENCE
                             USING     PA_SFLVA
                                       G_S_VARI_SUMFL
                                       G_S_VARI_SUMFL_DEF.
  SET CURSOR                 FIELD 'PA_SUVAR'.
  PERFORM  VARIANT_CHECK_EXISTENCE
                             USING     PA_SUVAR
                                       G_S_VARI_SUMHQ
                                       G_S_VARI_SUMHQ_DEF.
check whether FI summarization is active and other        "n547170
restrictions could deliver wrong results                  "n547170
  PERFORM                    F0800_CHECK_RESTRICTIONS.      "n547170
- the user wants to surpress the reversal movements :     "n497992
  process warning M7 392                                  "n497992
  IF NOT NOSTO IS INITIAL.                                  "n497992
  emerge warning ?                                        "n497992
    CALL FUNCTION            'ME_CHECK_T160M'               "n497992
        EXPORTING                                           "n497992
          I_ARBGB          = 'M7'                           "n497992
          I_MSGNR          = '392'                          "n497992
        EXCEPTIONS                                          "n497992
          NOTHING          = 0                              "n497992
          OTHERS           = 1.                             "n497992
                                                            "n497992
    IF SY-SUBRC <> 0.                                       "n497992
      SET CURSOR               FIELD  'NOSTO'.              "n497992
      to surpress the reversal movements could cause ...  "n497992
      MESSAGE                  W392.                        "n497992
    ENDIF.                                                  "n497992
  ENDIF.                                                    "n497992
carry out special authotity check for the tax auditor     "n547170
  PERFORM                    TPC_CHECK_TAX_AUDITOR.         "n547170
does the user wants a selection via company code or a plant ?
fill range table g_ra_werks
  REFRESH : G_RA_BWKEY,  G_RA_WERKS, G_T_ORGAN.
  CLEAR   : G_RA_BWKEY,  G_RA_WERKS, G_T_ORGAN, G_S_ORGAN.
  REFRESH : G_0000_RA_BWKEY,  G_0000_RA_WERKS,  G_0000_RA_BUKRS.
  CLEAR   : G_0000_RA_BWKEY,  G_0000_RA_WERKS,  G_0000_RA_BUKRS.
  DESCRIBE TABLE  BUKRS      LINES  G_F_CNT_LINES_BUKRS.
  DESCRIBE TABLE  WERKS      LINES  G_F_CNT_LINES_WERKS.
  IF  G_F_CNT_LINES_BUKRS  > 0  OR
      G_F_CNT_LINES_WERKS  > 0.
  fill range tables for the CREATION OF TABLE G_T_ORGAN
    MOVE : WERKS[]           TO  G_0000_RA_WERKS[],
           BUKRS[]           TO  G_0000_RA_BUKRS[].
    PERFORM  F0000_CREATE_TABLE_G_T_ORGAN
                             USING  C_ERROR.
  ENDIF.
save the parameters of this run                           "n547170
  PERFORM                    ESDUS_SAVE_PARAMETERS.         "n547170
"n599218
AT SELECTION-SCREEN OUTPUT                                "n599218
"n599218
                                                            "n599218
AT SELECTION-SCREEN OUTPUT.                                 "n599218
                                                            "n599218
  IF  G_FLAG_INITIALIZATION IS INITIAL.                     "n599218
  the process time INITIALIZATION was not done, so        "n599218
  carry out the functions here                            "n599218
    MOVE  'X'                TO G_FLAG_INITIALIZATION.      "n599218
                                                            "n599218
    PERFORM                  INITIALISIERUNG.               "n599218
                                                            "n599218
  get the parameters from the last run                    "n599218
    PERFORM                  ESDUS_GET_PARAMETERS.          "n599218
  ENDIF.                                                    "n599218
                                                            "n599218
how to handle the 7 paramaters for the scope of list ?    "n599218
  LOOP AT SCREEN.                                           "n599218
  modify the selection screen                             "n599218
    CASE    SCREEN-GROUP1.                                  "n599218
      WHEN  'LIU'.                                          "n599218
        IF  G_FLAG_STATUS_LIU  = C_SHOW.                    "n599218
          SCREEN-ACTIVE = '1'.         "show parameters     "n599218
        ELSE.                                               "n599218
          SCREEN-ACTIVE = '0'.         "Hide parameters     "n599218
        ENDIF.                                              "n599218
                                                            "n599218
        MODIFY SCREEN.                                      "n599218
    ENDCASE.                                                "n599218
  ENDLOOP.                                                  "n599218
                                                            "n599218
adapt the icon on the pushbutton depending on the status  "n599218
  CASE    G_FLAG_STATUS_LIU.                                "n599218
    WHEN  C_HIDE.                                           "n599218
      MOVE  TEXT-081         TO  PB_LIU.  "@0EQ@ Scope ... "n599218
    WHEN  C_SHOW.                                           "n599218
      MOVE  TEXT-082         TO  PB_LIU.  "@0HQ@ Scope ... "n599218
    WHEN  OTHERS.                                           "n599218
  ENDCASE.                                                  "n599218
                                                            "n599218
"n599218
START-OF-SELECTION
START-OF-SELECTION.
*SET PF-STATUS 'TEST'.
create the title line
If no date is given at all, the range is set to the maximum
extend (1.1.0000 - 31.12.9999).
If only datum-low is set, it is interpreted as the day for
which the analysis is wanted --> datum-high is filled up.
  IF DATUM-LOW IS INITIAL.
    DATUM-LOW = '00000101'.
    IF DATUM-HIGH IS INITIAL.
      DATUM-HIGH = '99991231'.
    ENDIF.
  ELSE.
    IF DATUM-HIGH IS INITIAL.
      DATUM-HIGH = DATUM-LOW.
    ENDIF.
  ENDIF.
  MOVE: DATUM-LOW(4)    TO JAHRLOW,
        DATUM-LOW+4(2)  TO MONATLOW,
        DATUM-LOW+6(2)  TO TAGLOW,
        DATUM-HIGH(4)   TO JAHRHIGH,
        DATUM-HIGH+4(2) TO MONATHIGH,
        DATUM-HIGH+6(2) TO TAGHIGH.
  SET TITLEBAR 'MAN'
  WITH TAGLOW MONATLOW JAHRLOW TAGHIGH MONATHIGH JAHRHIGH.
create the headlines using the titelbar                   "n599218
  PERFORM                    CREATE_HEADLINE.               "n599218
calculate the offsets for the list header
  PERFORM                    CALCULATE_OFFSETS.
for the representation of tied empties                    "n547170
  PERFORM                    F0700_PREPARE_TIED_EMPTIES.    "n547170
create table g_t_mseg_fields with the names of all
wanted fields from MSEG and MKPF
  PERFORM                    F0300_GET_FIELDS.
set a break-point : is IS-OIL active ?                    "n599218 A
                                                            "n599218 A
check whether this is a IS-OIL system                     "n599218 A
  PERFORM                    CHECK_IS_OIL_SYSTEM.           "n599218 A
                                                            "n599218 A
  IF  G_FLAG_IS_OIL_ACTIVE = 'X'.           "IS-OIL ?       "n599218 A
  the 2 IS-OIL specific data fields will be inserted into "n599218 A
  working table G_T_MSEG_FIELDS. Then these fields will   "n599218 A
  transported from database table MSEG, too               "n599218 A
    APPEND  'MSEG~OIGLCALC'  TO  G_T_MSEG_FIELDS.           "n599218 A
    APPEND  'MSEG~OIGLSKU'   TO  G_T_MSEG_FIELDS.           "n599218 A
  ENDIF.                                                    "n599218 A
create the ALV fieldcatalog for the main list always
  MOVE  'G_T_BELEGE'         TO  G_F_TABNAME.
  PERFORM                    F0400_CREATE_FIELDCAT.
do not print the ALV-statistics and selection criteria
  CLEAR                      G_S_PRINT.
  G_S_PRINT-NO_PRINT_SELINFOS   = 'X'.
  G_S_PRINT-NO_PRINT_LISTINFOS = 'X'."
create the range table for the storage location
  PERFORM                    F0600_CREATE_RANGE_LGORT.
- show the current activity and the progress              "n599218
  CALL FUNCTION 'SAPGUI_PROGRESS_INDICATOR'                 "n599218
    EXPORTING                                               "n599218
      TEXT = TEXT-063.       "Reading current stocks        "n599218
get the stock tables
  PERFORM                    AKTUELLE_BESTAENDE.
  PERFORM TABELLEN_LESEN.
- show the current activity and the progress              "n599218
  CALL FUNCTION 'SAPGUI_PROGRESS_INDICATOR'                 "n599218
    EXPORTING                                               "n599218
      TEXT = TEXT-064.       "Reading MM documents          "n599218
  PERFORM                    F1000_SELECT_MSEG_MKPF.
  PERFORM                    BELEGSELEKTION.
END-OF-SELECTION
END-OF-SELECTION.
results of all the autority checks
  PERFORM                    F9100_AUTH_PLANT_RESULT.
- show the current activity and the progress              "n599218
  IF BWBST = 'X'.                                           "n599218
    CALL FUNCTION 'SAPGUI_PROGRESS_INDICATOR'               "n599218
      EXPORTING                                             "n599218
        TEXT = TEXT-066.     "Calculating Stocks and Values "n599218
  ELSE.                                                     "n599218
    CALL FUNCTION 'SAPGUI_PROGRESS_INDICATOR'               "n599218
      EXPORTING                                             "n599218
        TEXT = TEXT-067.     "Calculating Stocks            "n599218
  ENDIF.                                                    "n599218
  PERFORM SUMMEN_BILDEN.
  PERFORM BESTAENDE_BERECHNEN.
  PERFORM LISTUMFANG.
- show the current activity and the progress              "n599218
  CALL FUNCTION 'SAPGUI_PROGRESS_INDICATOR'                 "n599218
    EXPORTING                                               "n599218
      TEXT = TEXT-065.       "Preparing list output         "n599218
stop if table bestand is empty
  LOOP AT BESTAND.
    SELECT SINGLE MATKL FROM MARA INTO CORRESPONDING FIELDS OF BESTAND
    WHERE
     MATNR = BESTAND-MATNR.
    MODIFY BESTAND INDEX SY-TABIX.
  ENDLOOP.
  DESCRIBE TABLE BESTAND     LINES G_F_CNT_LINES.
  IF  G_F_CNT_LINES IS INITIAL.
  Keinen Eintrag zu den Suchbegriffen gefunden/selektiert
    MESSAGE                  S083.
  perform                  anforderungsbild.
  ELSE.
  process log function if the use is a tax auditor        "n555246
  and the database selection was successful               "n555246
    IF  G_FLAG_TPCUSER = '1'.                               "n555246
      PERFORM                TPC_WRITE_LOG.                 "n555246
    ENDIF.                                                  "n555246
    PERFORM FELDGRUPPEN_AUFBAUEN.
  sort table with header data per material
    IF BWBST IS INITIAL.
      SORT BESTAND BY MATNR WERKS CHARG.
    ELSE.
      SORT BESTAND BY MATNR BWKEY.
    ENDIF.
  which function does the user want ?
    IF      XSUM = 'X'.
    hierseq. alv with sums
      PERFORM                CREATE_TABLE_TOTALS_HQ.
      PERFORM                CREATE_FIELDCAT_TOTALS_HQ.
      PERFORM                ALV_HIERSEQ_LIST_TOTALS.
    ENDIF.
    IF FLAG NE 'X'.
      IF PA_SUMFL = 'X'.
   elseif  pa_sumfl = 'X'.
    show the sums only in a flat ALV
        PERFORM                CREATE_TABLE_TOTALS_FLAT.
        PERFORM                CREATE_FIELDCAT_TOTALS_FLAT.
        PERFORM                ALV_FLAT_LIST_SUMS_ONLY.
      ELSE.
    display the full list using the APPEND ALV
     PERFORM                BESTAENDE_AUSGEBEN.
      ENDIF.
    ENDIF.
    FLAG = ' '.
  ENDIF.
  CLEAR: G_T_MSEG_LEAN, G_T_BSIM_LEAN, BESTAND.             "n443935
*&   PF_STATUS_SET_TOTALS
FORM PF_STATUS_SET_TOTALS                                   "#EC CALLED
                   USING     EXTAB TYPE SLIS_T_EXTAB.
  SET PF-STATUS 'STANDARD'   EXCLUDING EXTAB.
ENDFORM.                     "PF_STATUS_SET_TOTALS
   user_parameters_save
FORM USER_PARAMETERS_SAVE.
  GET PARAMETER ID 'BUK'     FIELD  G_SAVE_PARAMS-BUKRS.
  GET PARAMETER ID 'WRK'     FIELD  G_SAVE_PARAMS-WERKS.
  GET PARAMETER ID 'MAT'     FIELD  G_SAVE_PARAMS-MATNR.
  GET PARAMETER ID 'CHA'     FIELD  G_SAVE_PARAMS-CHARG.
  GET PARAMETER ID 'BLN'     FIELD  G_SAVE_PARAMS-BELNR.
  GET PARAMETER ID 'BUK'     FIELD  G_SAVE_PARAMS-BUKRS.
  GET PARAMETER ID 'GJR'     FIELD  G_SAVE_PARAMS-GJAHR.
ENDFORM.                     "user_parameters_save
   user_parameters_restore
FORM USER_PARAMETERS_RESTORE.
  SET PARAMETER ID 'BUK'     FIELD  G_SAVE_PARAMS-BUKRS.
  SET PARAMETER ID 'WRK'     FIELD  G_SAVE_PARAMS-WERKS.
  SET PARAMETER ID 'MAT'     FIELD  G_SAVE_PARAMS-MATNR.
  SET PARAMETER ID 'CHA'     FIELD  G_SAVE_PARAMS-CHARG.
  GET PARAMETER ID 'BLN'     FIELD  G_SAVE_PARAMS-BELNR.
  GET PARAMETER ID 'BUK'     FIELD  G_SAVE_PARAMS-BUKRS.
  GET PARAMETER ID 'GJR'     FIELD  G_SAVE_PARAMS-GJAHR.
ENDFORM.                     "user_parameters_restore
*&   USER_COMMAND_TOTALS
FORM USER_COMMAND_TOTALS                                    "#EC CALLED
                   USING     R_UCOMM     LIKE  SY-UCOMM
                             RS_SELFIELD TYPE  SLIS_SELFIELD.
  CLEAR                      G_S_BESTAND_KEY.
  CASE R_UCOMM.
    WHEN '&GRPT'.
      SORT BESTAND BY BWKEY MATKL.
      FLAG = 'X'.
      PERFORM GRP_TOTAL(ZGRP_TOTAL) TABLES BESTAND.
      IF FLAG = 'X'.
        EXIT.
      ENDIF.
    WHEN '&STR'.
      IF BWBST = 'X'.
        IF FLAG = 'X'.
    clear: LGBST,BWBST ,SBBST.
      PERFORM GRP_TOTAL(ZGRP_TOTAL1) TABLES BESTAND.
          SUBMIT ZRM07MLBD2 WITH  LGBST = 'X'
                           WITH WERKS = '1000'
                           WITH BUKRS = '1001'
                           WITH XSUM = 'X'
                           WITH PA_WDZER =  PA_WDZER
                           WITH PA_WDZEW = PA_WDZEW
                           WITH PA_WDWIZ = PA_WDWIZ
                           WITH PA_WDWUW = PA_WDWUW
                           WITH PA_WDWEW = PA_WDWEW
                           WITH PA_NDZER = PA_NDZER
                           WITH PA_NDSTO = PA_NDSTO
                           WITH LGORT IN LGORT
                           WITH DATUM IN DATUM
                           WITH MATNR IN MATNR VIA SELECTION-SCREEN
                                                   AND RETURN.
          CLEAR:      LGBST.
        ELSE.
          MESSAGE E345(0) WITH 'First see the grp total'.
        ENDIF.
      ELSE.
        MESSAGE E345(0) WITH 'Stock type chosen was not valuated'.
      ENDIF.
Quarter Ending----
    WHEN '&QTRE'.
      TYPES: BEGIN OF TY_MTART,
              MATNR LIKE MARA-MATNR,
              MTART LIKE MARA-MTART,
             END OF TY_MTART.
      DATA: L_REC_QTY TYPE P DECIMALS 3,
            L_ISS_QTY TYPE P DECIMALS 3,
            L_REC_AMT TYPE P DECIMALS 3,
            L_ISS_AMT TYPE P DECIMALS 3,
            L_OTHERS_QTY TYPE P DECIMALS 3,
            L_SALE_QTY TYPE P DECIMALS 3,
            L_SALE_AMT TYPE P DECIMALS 3,
            L_OTHERS_AMT TYPE P DECIMALS 3.
      DATA: IT_MAKT TYPE STANDARD TABLE OF MAKT WITH HEADER LINE,
            IT_T023T TYPE STANDARD TABLE OF T023T WITH HEADER LINE,
            IT_T134 TYPE STANDARD TABLE OF T134T WITH HEADER LINE.
      DATA: IT_MTART TYPE STANDARD TABLE OF TY_MTART WITH HEADER LINE.

Dear Experts,
Thanks all for the reply.
I have followed the OSS notes 194788
Only enter the selection criteria which are required for the selection of the stock management unit for which the opening stock balance and closing stock should be determined.
In MB5B I key in selection criteria which are :
material number : xxxxxx
company code : 1000
plant : 1500
batch : xxxxxx
special stock indicator : orders on hand
selection date : 01.08.2009 to current date
stock type :special stock
and the result comes out :
there is initial balance of 3000 kg on 01.08.2009 - INCORRECT ( our team never enter this initial balance but still came out )
therefore the stock of current date also WRONG
if the total stock is adjusted using stock take , the accounting journal will be created, and reduce the financial asset with the same amount of 3000 kg (WRONG EFFECT)
how to solve this issue without affecting the accounting journal ?
Thanks
Pauline

Similar Messages

  • Any Standard FM  for material stocks on posting date  using  Tcode  MB5B

    Hi,
    I  need   Standard  FM  to get  material stocks on posting date  using   Tcode   :   MB5B
    Stock type  i am using  is  : Storage Location/Batch Stock
    the  Input   i am  providing  is    Material, Plant , Storage Location, selection  date From , selecDate To.
    Then   i need  to get  data  that it  provides   header  and  document  item level.
    Can u please tel me  how do i get  that  material stock data  on posting date and in which tables
    it will be populated in the database.
    ITs required  can u take view and post info
    Thanks & Regards
    sivakumar kasa
    Edited by: siva kumar kasa on Dec 21, 2010 2:30 PM
    Edited by: siva kumar kasa on Dec 22, 2010 7:15 AM

    hi Rehan,
    I have checked all settings also enhancement  but there is no as such control to restrict backposting within current period
    I think its self disipline action not to post backdated GI when GR is done on later date
    Vishal...

  • Find material Stock to given date

    I have been asked to customize the standard report transaction MB5L. I have created ZPROGRAM for the report. I have an input field for date to get material stock till that date.How can i calculate material stock till the given date ?

    Basically you will have to use
    An "historical" table with stock at end of periods
    - MBEWH     Material Valuation: History
    - MARDH     Material Master Storage Location Segment: History
    etc.
    A "flow" table for movement before last period recorded and date asked for
    - MSEG/MKPF Document Segment: Material
    - BSIM Secondary Index, Documents for Material
    <i>(Use MSEG/MKPF for quantities and BSIM for valuations its easier than matching the two files, valuation can vary without movement in MSEG and some movement in MSEG don't reflect in accounting)</i>
    Regards

  • Extracting a count of distinct values between two date ranges over months

    Hi All,
    I am having a bit of difficulty in figuring out the query to build a list of active campaigns over a date range.
    i.e. I have a table with campaign IDs and their start and end date details like this
    Campaign_id     Start_date     End_date
            10001     1-Jun-09     31-May-11
            10002     1-Jun-09     23-Jun-11
            30041     21-Aug-09     31-Dec-09
            20005     3-Jun-10     31-May-11
            90021     21-Nov-09     30-Nov-10
            54000     1-Jun-11     1-Dec-12
            35600     1-Mar-10     31-Mar-12 What the above data means is, for eg. the campaign 10001 is active from 1-Jun-09 to 31-May-11 i.e. for 24 months (inclusive of the month Jun-09 and May-11)
    What I need to figure out is the counts of active campaigns between a date range and display that active count at a month level (for e.g. lets say we want to see all the campaigns that were active
    between the date range '01-JUN-2007' and '30-APR-2012' ). So the partial output would be as seen below. The list would continue till december-2012
    Month    Year    Count of active campaigns
    Jan    2009    0
    Feb    2009    0
    Mar    2009    0
    Apr    2009    0
    May    2009    0
    Jun    2009    2
    Jul    2009    2
    Aug    2009    3
    Sep    2009    3
    Oct    2009    3
    Nov    2009    4
    Dec    2009    4
    Jan    2010    3
    Feb    2010    3
    Mar    2010    4
    Apr    2010    4
    Dec    2012    1 Could anybody please help me with the right query for this.
    Thanks a lot for help
    Regards
    Goldi

    set pagesize 40
    with tab as
                    select 1 id, sysdate -100 start_date, sysdate end_date from dual
                    union
                    select 1 id, sysdate -200 start_date, sysdate -150 end_date from dual
                    union
                    select 1 id, sysdate -600 start_date, sysdate - 400 end_date from dual
                    union
                    select 1 id, sysdate -300 start_date, sysdate - 150 end_date from dual
                    union
                    select 2 id, sysdate -100 start_date, sysdate-50 end_date from dual
          year_tab as
                        select
                                 add_months(min_date, level -1) m
                        from
                                select min(trunc(start_date,'YYYY')) min_date, add_months(max(trunc(end_date,'YYYY')), 12) max_date
                                from tab
                        connect by level <= months_between(max_date, min_date)
    select to_char(m,'YYYY') year_,
             to_char(m,'Month') month_,
             nvl(act, 0) act
    from   year_tab,
                select m date_,count(*)  act
                from tab, year_tab
                where m between trunc(start_date,'MM') and trunc(end_date,'MM')
                group by m
                ) month_tab
    where m = date_(+)
    order by m;
    YEAR_ MONTH_           ACT
    2010  January            0
    2010  February           0
    2010  March              0
    2010  April              0
    2010  May                0
    2010  June               0
    2010  July               0
    2010  August             0
    2010  September          1
    2010  October            1
    2010  November           1
    2010  December           1
    2011  January            1
    2011  February           1
    2011  March              1
    2011  April              0
    2011  May                0
    2011  June               0
    2011  July               1
    2011  August             1
    2011  September          1
    2011  October            2
    2011  November           2
    2011  December           2
    2012  January            2
    2012  February           2
    2012  March              2
    2012  April              1
    2012  May                1
    2012  June               0
    2012  July               0
    2012  August             0
    2012  September          0
    2012  October            0
    2012  November           0
    2012  December           0
    36 rows selected.

  • How to use SQL to display Datethat falls between the date range

    Hi,
    I'm figuring out how do i use SQL to select data
    that falls between the date range stated
    (for eg. 19/02/1955 to 19/02/2003)
    I've tried :
    sql="Select * From StudentRecords WHERE DOB BETWEEN #" jTextField21.getText() "#" +" And " +"#" +jTextField22.getText;
    Using BETWEEN statment , but Between Statement isn't doing what i want..
    even those out of range are displayed... any ideas how??
    Thank yOU in advance!

    oracle:
    sql = "Select * From StudentRecords WHERE DOB between TO_DATE('07/04/2003','dd/mm/yyyy') and TO_DATE('08/04/2003','dd/mm/yyyy')";

  • Function module to calculate no of days between two date ranges

    hi experts,
    can some one please suggest a function module that can calculate no of days between specified date range.
    for example : if i enter date range between 26.02.2011 to 20.05.2011, then it should calculate no of days between these dates.
    Moderator message : Basic date questions not allowed. Read forum rules before posting. Thread locked.
    Edited by: Vinod Kumar on May 25, 2011 10:57 AM

    Hi,
    Please search SDN.. there are lots of posts for teh same.
    [http://wiki.sdn.sap.com/wiki/display/ABAP/FunctionModulerelatedonDate+calculations]

  • Select Between two date ranges from xml file

    Hi ,
    I have a column date_ with datatype VARCHAR2(150) it stores
    data as
    05/19/2010 11:23 AM
    05/20/2010 12:23 PM
    05/22/2010 11:23 AM
    05/25/2010 11:23 AM
    i have to select all the rows between 05/19/2010 and 05/22/2010 how to do that this column is in xml file

    I have a table wit two fields
    Field1 is integer and field2 is xmltype
    in the xmltype i store an xml file
    <ParentNode>
    <Node>
    <Cat>1</Cat>
    <Date>05/19/2010 11:23 AM </Date>
    </Node>
    <Node>
    <Cat>2</Cat>
    <Date>05/20/2010 12:23 PM </Date>
    </Node>
    <Node>
    <Cat>3</Cat>
    <Date>05/22/2010 11:23 AM </Date>
    </Node>
    </Parentnode>
    I am using teh below query to retrive teh result
    SELECT T.Feild1, XML.* FROM Tablename T,
    XMLTable( 'Parentnod/Node' PASSING T.Feild2 COLUMNS Cat NUMBER PATH 'Cat' ,
    DATE_ VARCHAR2(100) PATH 'Date'
    )XML where cat >1;
    now i have to do teh same to select the rows between two date range 05/19/2010 and 05/21/2010
    hope i am able to make teh question simple

  • MB5B views material stock

    Dear Expert,
    When I display MB5B for material xxxx with criteria :
    - it's a special stock
    - has batch number
    - special stock indicator : orders on hand
    - posting date : blank
    MB5B shows the date of 01.01.0000 with the stock 3000 kg.
    it is impossible because in our plant initial balance is done on 2005-2006
    Why it can happen?
    anyone experience this problem?
    thanks
    pauline

    Dear Experts,
    Thanks all for the reply.
    I have followed the OSS notes 194788
    Only enter the selection criteria which are required for the selection of the stock management unit for which the opening stock balance and closing stock should be determined.
    In MB5B I key in selection criteria which are :
    material number : xxxxxx
    company code : 1000
    plant : 1500
    batch : xxxxxx
    special stock indicator : orders on hand
    selection date : 01.08.2009 to current date
    stock type :special stock
    and the result comes out :
    there is initial balance of 3000 kg on 01.08.2009 - INCORRECT ( our team never enter this initial balance but still came out )
    therefore the stock of current date also WRONG
    if the total stock is adjusted using stock take , the accounting journal will be created, and reduce the financial asset with the same amount of 3000 kg (WRONG EFFECT)
    how to solve this issue without affecting the accounting journal ?
    Thanks
    Pauline

  • Stock report with date range

    Hi Experts.
    Material stock report (unrestricted, blocked, quality) with in date range.
    getting information in T-CODE:  MB52 but not in date range.
    In mard table i did't find the date for unrestricted, blocked and quality.
    from where can i get that information and how should i link all
    Need a psudo code for it.
    If any one worked on this kind of object plz send me the code.
    Points assured..
    Regards..
    Ravi Reddy.

    Hi
    Check this sample code hope it will helpfull for you
    *DATA: ED TYPE F.
    DATA : ED(15) TYPE N .
    TABLES: EKKO, EKBE, EKPO, KONH , KONV ,LFA1 ,ESLL.
    TYPE-POOLS: SLIS.
    DATA: val1  like konh-vakey.
    Data:GS_LAYOUT TYPE SLIS_LAYOUT_ALV,
         G_REPID LIKE SY-REPID,
         G_GRID_TITLE TYPE LVC_TITLE.
    Data:G_USER_COMMAND TYPE SLIS_FORMNAME VALUE 'USER_COMMAND'.
    DATA:G_TABNAME TYPE SLIS_TABNAME VALUE 'ITAB1',
    G_SAVE .
    DATA:GS_VARIANT LIKE DISVARIANT.
    DATA:LS_FIELDCAT TYPE SLIS_FIELDCAT_ALV.
    DATA:GT_FIELDCAT TYPE SLIS_T_FIELDCAT_ALV WITH HEADER LINE.
         G_SAVE = 'A'.
    DATA: BEGIN OF ITAB OCCURS 10,
              EBELN LIKE EKKO-EBELN,
    *          LIFNR  like p_vendor,
              LIFNR LIKE EKKO-LIFNR,
              NAME1 LIKE LFA1-NAME1,
              NAME2 LIKE LFA1-NAME2,
    *          EBELP LIKE EKBE-EBELP,
              BELNR LIKE EKBE-BELNR,
              VGABE LIKE EKBE-VGABE,
              GJAHR LIKE EKBE-GJAHR,
              KNUMV LIKE EKKO-KNUMV,
              EKORG LIKE EKKO-EKORG,
              BEDAT LIKE EKKO-BEDAT,
    *          VAKEY LIKE KONH-VAKEY,
         END OF ITAB.
    DATA: BEGIN OF ITAB1 OCCURS 10,
              NAME1 LIKE LFA1-NAME1,
              NAME2 LIKE LFA1-NAME2,
              EBELN LIKE EKPO-EBELN,
              LIFNR LIKE EKKO-LIFNR,
              EBELP LIKE EKPO-EBELP,
    *          EBELP LIKE EKBE-EBELP,
              KNUMH LIKE KONH-KNUMH,
              BELNR LIKE EKBE-BELNR,
              MATNR LIKE EKPO-MATNR,
              TXZ01 LIKE EKPO-TXZ01,
              PS_PSP_PNR LIKE EKKN-PS_PSP_PNR,
              EXTROW LIKE ESLL-EXTROW,
              SRVPOS LIKE ESLL-SRVPOS,
              KTEXT1 LIKE ESLL-KTEXT1,
              KOSTL LIKE EKKN-KOSTL,
              NETPR LIKE EKPO-NETPR,
              NETWR LIKE EKPO-NETWR,
              ED1  TYPE p decimals 2,
              KBETR2 LIKE KONV-KBETR,
              KBETR1 LIKE KONV-KBETR,
              KBETR LIKE KONV-KBETR,
    *          KBETR3 LIKE KONV-KBETR,
              KWERT LIKE KONV-KWERT, " THIS IS FOR FREIGHT
              KWERT1 LIKE KONV-KWERT, " THIS IS FOR PBXX OR PB00
              KWERT2 LIKE KONV-KWERT, " THIS FOR OTHER CONDITION
              MENGE LIKE EKPO-MENGE,
    *          TOTAL(15) type  .
              TOTAL TYPE p decimals 2,
              VAKEY LIKE KONH-VAKEY,
              WERKS LIKE EKPO-WERKS,
              MWSKZ LIKE EKPO-MWSKZ,
              PACKNO LIKE EKPO-PACKNO,
              KNUMV LIKE KONV-KNUMV,
              SUB_PACKNO LIKE ESLL-SUB_PACKNO,
              GJAHR LIKE RSEG-GJAHR,
          END OF ITAB1.
    DATA: BEGIN OF ITAB2 OCCURS 10,
             EBELN LIKE EKKN-EBELN,
             EBELP LIKE EKKN-EBELP,
             PS_PSP_PNR LIKE EKKN-PS_PSP_PNR,
             KOSTL      LIKE EKKN-KOSTL,
          END OF ITAB2.
    data: begin of itab3 occurs 10,
            KNUMH LIKE KONH-KNUMH,
            KSCHL LIKE KONH-KSCHL,
         end of itab3.
    data: begin of itab4 occurs 10,
            KBETR LIKE KONP-KBETR,
          end of itab4.
    data: begin of itab5 occurs 10,
            KPOSN LIKE KONV-KPOSN,
            KNUMV LIKE KONV-KNUMV,
            KSCHL LIKE KONV-KSCHL,
            KBETR LIKE KONV-KBETR,
            KWERT LIKE KONV-KWERT, " THIS IS FOR FREIGHT
    *          KAWRT LIKE KONV-KAWRT,
         end of itab5.
    DATA: BEGIN OF ITAB6 OCCURS 10,
    *          PACKNO LIKE EKPO-PACKNO,
              SUB_PACKNO LIKE ESLL-SUB_PACKNO,
            END OF ITAB6.
    DATA: BEGIN OF ITAB7 OCCURS 10,
           BELNR LIKE RSEG-BELNR,
           GJAHR LIKE RSEG-GJAHR,
    END OF ITAB7.
    DATA: BEGIN OF ITAB8 OCCURS 10,
           SUB_PACKNO LIKE ESLL-SUB_PACKNO,
           SRVPOS LIKE ESLL-SRVPOS,
           EXTROW LIKE ESLL-EXTROW,
           KTEXT1 LIKE ESLL-KTEXT1,
    END OF ITAB8.
    *selection-screen
    *SELECTION-SCREEN BEGIN OF BLOCK b1 WITH FRAME TITLE text-001.
    *SELECTION-SCREEN SKIP 2.
    *SELECTION-SCREEN BEGIN OF LINE.
    *SELECTION-SCREEN COMMENT 25(23) text-002.
    **SELECT-OPTIONS: s_lifnr FOR ekko-lifnr.
    *PARAMETERS:p_lifnr LIKE ekko-lifnr obligatory.
    *SELECTION-SCREEN END OF LINE.
    *SELECTION-SCREEN END OF BLOCK b1.
    START-OF-SELECTION.
      PERFORM get_data.
    *  PERFORM field_catalog.
    *  PERFORM display_data.
    END-OF-SELECTION.
    **&      Form  display_data
    **       text
    *FORM display_data.
    *data: new(15) TYPE N.
    *  CALL FUNCTION 'REUSE_ALV_LIST_DISPLAY'
    *    EXPORTING
    *      i_callback_program = sy-repid
    *      it_fieldcat        = int_cat[]
    *    TABLES
    *      t_outtab           = int_out
    *    EXCEPTIONS
    *      program_error      = 1
    *      OTHERS             = 2.
    *ENDFORM.                    "display_data
    PERFORM GET_DATA.
    PERFORM CALL_ALV_GRID.
    FORM CALL_ALV_GRID.
    PERFORM FIELDCAT_INIT USING GT_FIELDCAT[].
    CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
        EXPORTING
          I_CALLBACK_PROGRAM                = G_repid
          I_CALLBACK_USER_COMMAND           = G_USER_COMMAND
          I_GRID_TITLE                      = G_GRID_TITLE
          IT_FIELDCAT                       = GT_FIELDCAT[]
          I_DEFAULT                         = 'X'
          I_SAVE                            =  G_SAVE
          IS_VARIANT                        =  Gs_VARIANT
        TABLES
          T_OUTTAB                          = ITAB1.
    ENDFORM.
    FORM FIELDCAT_INIT
           USING RT_FIELDCAT TYPE SLIS_T_FIELDCAT_ALV.
      CLEAR LS_FIELDCAT.
      LS_FIELDCAT-TABNAME       = G_TABNAME.
      LS_FIELDCAT-seltext_l     = 'Vendo No'.
      LS_FIELDCAT-FIELDNAME     = 'LIFNR'.
      LS_FIELDCAT-REF_FIELDNAME = 'LIFNR'.
      LS_FIELDCAT-REF_TABNAME   = 'EKKO'.
      APPEND LS_FIELDCAT TO  RT_FIELDCAT.
       CLEAR LS_FIELDCAT.
      LS_FIELDCAT-TABNAME       = G_TABNAME.
      LS_FIELDCAT-SELTEXT_L  = 'Vendor Name'.
      LS_FIELDCAT-FIELDNAME     = 'NAME1'.
      LS_FIELDCAT-REF_FIELDNAME = 'NAME1'.
      LS_FIELDCAT-REF_TABNAME   = 'LFA1'.
      APPEND LS_FIELDCAT TO  RT_FIELDCAT.
    * CLEAR LS_FIELDCAT.
    *  LS_FIELDCAT-TABNAME       = G_TABNAME.
    *  LS_FIELDCAT-FIELDNAME     = 'NAME2'.
    *  LS_FIELDCAT-REF_FIELDNAME = 'NAME2'.
    *  LS_FIELDCAT-REF_TABNAME   = 'LFA1'.
    *  APPEND LS_FIELDCAT TO  RT_FIELDCAT.
      CLEAR LS_FIELDCAT.
      LS_FIELDCAT-TABNAME       = G_TABNAME.
      LS_FIELDCAT-seltext_l   = 'Purchase Document No'.
      LS_FIELDCAT-FIELDNAME     = 'EBELN'.
      LS_FIELDCAT-REF_FIELDNAME = 'EBELN'.
      LS_FIELDCAT-REF_TABNAME   = 'EKKO'.
      APPEND LS_FIELDCAT TO  RT_FIELDCAT.
    *  CLEAR LS_FIELDCAT.
    *  LS_FIELDCAT-TABNAME       = G_TABNAME.
    *  LS_FIELDCAT-FIELDNAME     = 'VGABE'.
    *  LS_FIELDCAT-REF_FIELDNAME = 'VGABE'.
    *  LS_FIELDCAT-REF_TABNAME   = 'EKBE'.
    *  APPEND LS_FIELDCAT TO  RT_FIELDCAT.
      CLEAR LS_FIELDCAT.
      LS_FIELDCAT-TABNAME       = G_TABNAME.
      LS_FIELDCAT-SELTEXT_L     = 'Item No'.
      LS_FIELDCAT-FIELDNAME     = 'EBELP'.
      LS_FIELDCAT-REF_FIELDNAME = 'EBELP'.
      LS_FIELDCAT-REF_TABNAME   = 'EKPO'.
      APPEND LS_FIELDCAT TO  RT_FIELDCAT.
    *  CLEAR LS_FIELDCAT.
    *  LS_FIELDCAT-TABNAME       = G_TABNAME.
    *  LS_FIELDCAT-FIELDNAME     = 'BELNR'.
    *  LS_FIELDCAT-REF_FIELDNAME = 'BELNR'.
    *  LS_FIELDCAT-REF_TABNAME   = 'EKBE'.
    *  APPEND LS_FIELDCAT TO  RT_FIELDCAT.
       CLEAR LS_FIELDCAT.
      LS_FIELDCAT-TABNAME       = G_TABNAME.
      LS_FIELDCAT-SELTEXT_L     = 'Document Con'.
      LS_FIELDCAT-FIELDNAME     = 'KNUMH'.
      LS_FIELDCAT-REF_FIELDNAME = 'KNUMH'.
      LS_FIELDCAT-REF_TABNAME   = 'KONH'.
      APPEND LS_FIELDCAT TO  RT_FIELDCAT.
    *   CLEAR LS_FIELDCAT.
    *  LS_FIELDCAT-TABNAME       = G_TABNAME.
    *  LS_FIELDCAT-SELTEXT_L = 'Service/Material No'.
    *  LS_FIELDCAT-FIELDNAME     = 'MATNR'.
    *  LS_FIELDCAT-REF_FIELDNAME = 'MATNR'.
    *  LS_FIELDCAT-REF_TABNAME   = 'EKPO'.
    *  APPEND LS_FIELDCAT TO  RT_FIELDCAT.
    *   CLEAR LS_FIELDCAT.
    *  LS_FIELDCAT-TABNAME       = G_TABNAME.
    *  LS_FIELDCAT-SELTEXT_L = 'Service / Material description' .
    *  LS_FIELDCAT-FIELDNAME     = 'TXZ01'.
    *  LS_FIELDCAT-REF_FIELDNAME = 'TXZ01'.
    *  LS_FIELDCAT-REF_TABNAME   = 'EKPO'.
    *  APPEND LS_FIELDCAT TO  RT_FIELDCAT.
    *   CLEAR LS_FIELDCAT.
    *  LS_FIELDCAT-TABNAME       = G_TABNAME.
    *  LS_FIELDCAT-SELTEXT_L =  'WBS Element' .
    *  LS_FIELDCAT-FIELDNAME     = 'PS_PSP_PNR'.
    *  LS_FIELDCAT-REF_FIELDNAME = 'PS_PSP_PNR'.
    *  LS_FIELDCAT-REF_TABNAME   = 'EKKN'.
    *  APPEND LS_FIELDCAT TO  RT_FIELDCAT.
    *   CLEAR LS_FIELDCAT.
    *  LS_FIELDCAT-TABNAME       = G_TABNAME.
    *  LS_FIELDCAT-SELTEXT_L =  'Serial Number' .
    *  LS_FIELDCAT-FIELDNAME     = 'EXTROW'.
    *  LS_FIELDCAT-REF_FIELDNAME = 'PACKNO'.
    *  LS_FIELDCAT-REF_TABNAME   = 'ESLL'.
    *  APPEND LS_FIELDCAT TO  RT_FIELDCAT.
    *  CLEAR LS_FIELDCAT.
    *  LS_FIELDCAT-TABNAME       = G_TABNAME.
    *  LS_FIELDCAT-SELTEXT_L =  'Service Number' .
    *  LS_FIELDCAT-FIELDNAME     = 'SRVPOS'.
    *  LS_FIELDCAT-REF_FIELDNAME = 'SRVPOS'.
    *  LS_FIELDCAT-REF_TABNAME   = 'ESLL'.
    *  APPEND LS_FIELDCAT TO  RT_FIELDCAT.
    *   CLEAR LS_FIELDCAT.
    *  LS_FIELDCAT-TABNAME       = G_TABNAME.
    *  LS_FIELDCAT-SELTEXT_L =  'Dscription' .
    *  LS_FIELDCAT-FIELDNAME     = 'KTEXT1'.
    *  LS_FIELDCAT-REF_FIELDNAME = 'KTEXT1'.
    *  LS_FIELDCAT-REF_TABNAME   = 'ESLL'.
    *  APPEND LS_FIELDCAT TO  RT_FIELDCAT.
    *   CLEAR LS_FIELDCAT.
    *  LS_FIELDCAT-TABNAME       = G_TABNAME.
    *    LS_FIELDCAT-SELTEXT_L = 'Cost Center'.
    *  LS_FIELDCAT-FIELDNAME     = 'KOSTL'.
    *  LS_FIELDCAT-REF_FIELDNAME = 'KOSTL'.
    *  LS_FIELDCAT-REF_TABNAME   = 'EKKN'.
    *  APPEND LS_FIELDCAT TO  RT_FIELDCAT.
      CLEAR LS_FIELDCAT.
      LS_FIELDCAT-TABNAME       = G_TABNAME.
    *  LS_FIELDCAT-FIELDNAME     = 'NETWR'.
      LS_FIELDCAT-FIELDNAME     = 'NETPR'.
      LS_FIELDCAT-reptext_ddic = 'Basic'.
    *  LS_FIELDCAT-SELTEXT_L    = 'Basic'.
       LS_FIELDCAT-REF_FIELDNAME = 'NETPR'.
      LS_FIELDCAT-REF_TABNAME   = 'EKPO'.
      APPEND LS_FIELDCAT TO  RT_FIELDCAT.
      CLEAR LS_FIELDCAT.
      LS_FIELDCAT-TABNAME       = G_TABNAME.
      LS_FIELDCAT-FIELDNAME     = 'NETWR'.
    *  LS_FIELDCAT-FIELDNAME     = 'NETPR'.
    *  LS_FIELDCAT-reptext_ddic = ''.
    *  LS_FIELDCAT-SELTEXT_L    = 'Basic'.
       LS_FIELDCAT-REF_FIELDNAME = 'NETWR'.
      LS_FIELDCAT-REF_TABNAME   = 'EKPO'.
      APPEND LS_FIELDCAT TO  RT_FIELDCAT.
    CLEAR LS_FIELDCAT.
      LS_FIELDCAT-TABNAME       = G_TABNAME.
        LS_FIELDCAT-SELTEXT_L = 'Excise'.
      LS_FIELDCAT-FIELDNAME     = 'ED1'.
      LS_FIELDCAT-REF_FIELDNAME = 'ED1'.
    *  LS_FIELDCAT-REF_TABNAME   = 'EKKN'.
      APPEND LS_FIELDCAT TO  RT_FIELDCAT.
       CLEAR LS_FIELDCAT.
      LS_FIELDCAT-TABNAME       = G_TABNAME.
      LS_FIELDCAT-SELTEXT_L = 'Insurance'.
      LS_FIELDCAT-FIELDNAME     = 'KBETR2'.
        LS_FIELDCAT-REF_FIELDNAME = 'KBETR'.
      LS_FIELDCAT-REF_TABNAME   = 'KONV'.
      APPEND LS_FIELDCAT TO  RT_FIELDCAT.
    CLEAR LS_FIELDCAT.
      LS_FIELDCAT-TABNAME       = G_TABNAME.
      LS_FIELDCAT-SELTEXT_L     = 'Frieght'.
      LS_FIELDCAT-FIELDNAME     = 'KWERT'.
      LS_FIELDCAT-REF_FIELDNAME = 'KWERT'.
      LS_FIELDCAT-REF_TABNAME   = 'KONV'.
      APPEND LS_FIELDCAT TO  RT_FIELDCAT.
    * CLEAR LS_FIELDCAT.
    *  LS_FIELDCAT-TABNAME       = G_TABNAME.
    *  LS_FIELDCAT-SELTEXT_L     = '' .
    *  LS_FIELDCAT-FIELDNAME     = 'KBETR1'.
    *  LS_FIELDCAT-REF_FIELDNAME = 'KBETR'.
    *  LS_FIELDCAT-REF_TABNAME   = 'KONV'.
    *  APPEND LS_FIELDCAT TO  RT_FIELDCAT.
    *CLEAR LS_FIELDCAT.
    *  LS_FIELDCAT-TABNAME       = G_TABNAME.
    *  LS_FIELDCAT-SELTEXT_L     = 'PBXX'.
    *  LS_FIELDCAT-FIELDNAME     = 'KWERT1'.
    *  LS_FIELDCAT-REF_FIELDNAME = 'KWERT'.
    *  LS_FIELDCAT-REF_TABNAME   = 'KONV'.
    *  APPEND LS_FIELDCAT TO  RT_FIELDCAT.
      CLEAR LS_FIELDCAT.
      LS_FIELDCAT-TABNAME       = G_TABNAME.
      LS_FIELDCAT-SELTEXT_L     = 'VAT/ST '.
      LS_FIELDCAT-FIELDNAME     = 'KBETR'.
      LS_FIELDCAT-REF_FIELDNAME = "KBETR".
      LS_FIELDCAT-REF_TABNAME   = 'KONV'.
      APPEND LS_FIELDCAT TO  RT_FIELDCAT.
    CLEAR LS_FIELDCAT.
      LS_FIELDCAT-TABNAME       = G_TABNAME.
      LS_FIELDCAT-SELTEXT_L     = 'OTHER '.
      LS_FIELDCAT-FIELDNAME     = 'KWERT2'.
      LS_FIELDCAT-REF_FIELDNAME = "KWERT".
      LS_FIELDCAT-REF_TABNAME   = 'KONV'.
      APPEND LS_FIELDCAT TO  RT_FIELDCAT.
      CLEAR LS_FIELDCAT.
      LS_FIELDCAT-TABNAME       = G_TABNAME.
      LS_FIELDCAT-SELTEXT_L = 'TOTAL'.
      LS_FIELDCAT-FIELDNAME     = 'TOTAL'.
      LS_FIELDCAT-REF_FIELDNAME = 'TOTAL'.
    *  LS_FIELDCAT-REF_TABNAME   = 'EKKN'.
      APPEND LS_FIELDCAT TO  RT_FIELDCAT.
       ENDFORM.                    " FIELDCAT_INIT
       FORM GET_DATA.
       SELECT  A~EBELN A~LIFNR  A~EKORG A~KNUMV B~VGABE  B~GJAHR B~BELNR
               L~NAME1 L~NAME2
            FROM  EKKO AS A
                          INNER JOIN EKBE  AS B ON  B~EBELN = A~EBELN
                          INNER JOIN LFA1 AS L ON L~LIFNR = A~LIFNR
                          INTO  CORRESPONDING
                          FIELDS OF TABLE ITAB.
    *                      WHERE B~VGABE = '2'.
    SELECT EKPO~EBELN EKPO~EBELP EKPO~MATNR EKPO~TXZ01 EKPO~WERKS
              EKPO~NETWR EKPO~MENGE EKPO~MWSKZ  EKPO~NETPR EKPO~PACKNO
              FROM EKPO
                        INTO CORRESPONDING FIELDS OF TABLE ITAB1
                        FOR ALL ENTRIES IN ITAB
                        WHERE EKPO~EBELN = ITAB-EBELN and
                              EKPO~BUKRS = 'company code'.
       SELECT EKKN~EBELN EKKN~EBELP EKKN~KOSTL EKKN~PS_PSP_PNR
          FROM EKKN
                   INTO CORRESPONDING FIELDS OF TABLE ITAB2
                   FOR ALL ENTRIES IN ITAB1
                   WHERE EKKN~EBELN = ITAB1-EBELN  AND
                         EKKN~EBELP = ITAB1-EBELP.
       SELECT KONV~KNUMV KONV~KSCHL KONV~KBETR KONV~KWERT KONV~KWERT
                  KONV~KPOSN
          FROM KONV
              INTO CORRESPONDING FIELDS OF TABLE ITAB5
              WHERE KONV~KNUMV =   ITAB1-KNUMV AND
                    KONV~KPOSN = ITAB1-EBELP.
    *    SELECT LFA1~NAME1 LFA1~NAME2 FROM LFA1
    *    INTO CORRESPONDING FIELDS OF TABLE ITAB1
    *    WHERE  LFA1~LIFNR = ITAB-LIFNR.
    *  SELECT ESLL~SUB_PACKNO ESLL~SRVPOS
    *           ESLL~EXTROW  ESLL~KTEXT1 FROM ESLL
    *       INTO CORRESPONDING FIELDS OF TABLE ITAB6
    *       FOR ALL ENTRIES IN ITAB1
    *       WHERE ESLL~PACKNO = ITAB1-PACKNO .
    **         SELECT ESLL~SUB_PACKNO FROM ESLL
    **       INTO CORRESPONDING FIELDS OF TABLE ITAB6
    **       FOR ALL ENTRIES IN ITAB1
    **       WHERE ESLL~PACKNO = ITAB1-PACKNO.
    *        SELECT ESLL~SUB_PACKNO ESLL~SRVPOS
    *           ESLL~EXTROW  ESLL~KTEXT1 FROM ESLL
    *       INTO CORRESPONDING FIELDS OF TABLE ITAB8
    *       FOR ALL ENTRIES IN ITAB6
    *       WHERE ESLL~PACKNO = ITAB6-SUB_PACKNO .
    * SELECT RSEG~BELNR RSEG~GJAHR FROM RSEG
    *        INTO CORRESPONDING FIELDS OF TABLE  ITAB7
    *        FOR ALL ENTRIES IN ITAB
    *        WHERE RSEG~BELNR = ITAB-BELNR AND
    *              RSEG~GJAHR = ITAB-GJAHR.
    *LOOP AT ITAB1.
    LOOP AT ITAB.
                  READ TABLE ITAB1 WITH KEY EBELN = ITAB-EBELN.
    *         IF ITAB1-EBELN = ITAB-EBELN.
                    IF sy-subrc eq 0.
    *                          ITAB1-EBELN = ITAB-EBELN.
                              ITAB1-LIFNR = ITAB-LIFNR.
    *                          ITAB1-EBELP = ITAB-EBELP.
                              ITAB1-BELNR = ITAB-BELNR.
                              ITAB1-KNUMV = ITAB-KNUMV.
                              ITAB1-NAME1  = ITAB-NAME1.
                              ITAB-NAME2 = ITAB-NAME2.
                              ITAB1-GJAHR = ITAB-GJAHR.
                    modify itab1 index   sy-tabix.
            ENDIF.
    ENDLOOP.
    *LOOP AT ITAB2.
    *         READ TABLE ITAB1 WITH KEY EBELN = ITAB2-EBELN.
    *          IF sy-subrc eq 0.
    *              ITAB1-EBELN = ITAB2-EBELN.
    *              ITAB1-PS_PSP_PNR = ITAB2-PS_PSP_PNR.
    *              ITAB1-KOSTL = ITAB2-KOSTL.
    *               modify itab1 transporting ps_psp_pnr kostl
    *               where ebeln = Itab2-ebeln AND EBELP = ITAB2-EBELP.
    *          ENDIF.
    *ENDLOOP.
    LOOP AT ITAB1.
    **ON CHANGE OF   ITAB1-ebeln or itab1-ebelp.
    *     concatenate itab1-werks itab1-lifnr itab1-matnr
    *         into val1.
    *   MOVE VAL1 TO ITAB1-VAKEY.
    *   MODIFY ITAB1.
    *    SELECT KONH~KNUMH KONH~KSCHL FROM KONH
    *        INTO  CORRESPONDING FIELDS OF TABLE ITAB3
    *        FOR ALL ENTRIES IN ITAB1
    *        WHERE KONH~VAKEY = ITAB1-VAKEY.
    **endon.
    **        sort Itab3 by kschl descending.
    **        Select konp-kbetr  from konp into itab4 where
    **        KONP~KNUMH = ITAB3-KNUMH AND KONP~KSCHL = ITAB3-KSCHL.
    **ON CHANGE OF  ITAB1-ebelp.
    **LOOP AT ITAB3
    **  ON CHANGE OF  ITAB1-ebelp.
    *              itab1-knumh = itab3-knumh.
    **              SELECT  KONP~KBETR FROM KONP INTO CORRESPONDING FIELDS
    **              OF  TABLE  ITAB4
    **              FOR ALL ENTRIES IN ITAB3   WHERE
    **              KONP~KNUMH = ITAB3-KNUMH AND KONP~KSCHL = ITAB3-KSCHL .
    **              IF ITAB3-KSCHL = 'JMOP' .
    **               ED = ITAB4-KBETR / 1000 * ITAB1-NETWR .
    **              ENDIF.
    **             IF ITAB3-KSCHL = 'JEC1'.
    **              Itab1-ed1 = ITAB4-KBETR / 1000 * ED.
    **              ADD ED TO ITAB1-ED1.
    **             modify  ITAB1 transporting ed1.
    **             ENDIF.
    *              IF ITAB3-KSCHL = 'JMOP' .
    *               ED = 16 / 100 * ITAB1-NETWR .
    *              ENDIF.
    *             IF ITAB3-KSCHL = 'JEC1'.
    *              Itab1-ed1 = 2 / 100 * ED.
    *              ADD ED TO ITAB1-ED1.
    *             modify  ITAB1 transporting ed1.
    *             ENDIF.
    **        ENDLOOP.
    **endon.
    modify  ITAB1.
    *endon.
      LOOP AT ITAB5.
         IF ITAB5-KSCHL = 'NAVS' OR ITAB5-KSCHL = 'NAVM'.
                ITAB1-KBETR = ITAB5-KBETR.
                 modify  ITAB1 transporting KBETR
                 where  KNUMV =  ITAB1-KNUMV AND EBELP = ITAB1-EBELP .
               ELSEIF ITAB5-KSCHL = 'FRA1' OR ITAB5-KSCHL = 'FRC1' OR
                    ITAB5-KSCHL = 'FRB1'.
                       ITAB1-KWERT = ITAB5-KWERT .
                       modify  ITAB1 transporting KWERT
                       where  KNUMV =  ITAB1-KNUMV AND EBELP = ITAB1-EBELP
    *               IF ITAB5-KSCHL = 'FRA1'.
    *                    ITAB1-KBETR1 = ITAB5-KBETR / 1000 * ITAB1-NETWR .
    *                   modify  ITAB1 transporting KBETR1
    *                   where  KNUMV =  ITAB1-KNUMV AND EBELP = ITAB1-EBELP
    *                 ELSEIF ITAB5-KSCHL = 'FRC1' .
    *                   ITAB1-KBETR1 = ITAB5-KBETR * ITAB1-MENGE .
    *                   modify  ITAB1 transporting KBETR1
    *                   where  KNUMV =  ITAB1-KNUMV AND EBELP = ITAB1-EBELP
    *                 ELSEIF ITAB5-KSCHL = 'FRB1' .
    *                    ITAB1-KBETR1 = ITAB5-KBETR .
    *                   modify  ITAB1 transporting KBETR1
    *                   where  KNUMV =  ITAB1-KNUMV AND EBELP = ITAB1-EBELP
    *              ENDIF.
    *           **THIS  CODE IS FOR iNSURANCE  CONDITION
               ELSEIF ITAB5-KSCHL = 'ZGIN' OR ITAB5-KSCHL = 'ZIN2'.
                       ITAB1-KBETR2 = ITAB5-KBETR.
                       modify  ITAB1 transporting KBETR2
                       where  KNUMV =  ITAB1-KNUMV AND EBELP = ITAB1-EBELP
    *           **THIS  CODE IS FOR PBXX OR PB00  CONDITION
    *          ELSEIF ITAB5-KSCHL = 'PBXX' OR ITAB5-KSCHL = 'PB00'.
    *                   ITAB1-KWERT1 = ITAB5-KWERT1.
    *                   modify  ITAB1 transporting KWERT1
    *                   where  KNUMV =  ITAB1-KNUMV AND EBELP = ITAB1-EBELP
    **          ELSEIF ITAB5-KSCHL = 'JOCM' OR ITAB5-KSCHL = 'RA00' OR
    **                 ITAB5-KSCHL = 'RA01' OR ITAB5-KSCHL = 'RB00' OR
    **                 ITAB5-KSCHL = 'RC00' OR
    **THIS  CODE IS FOR OTHER CONDITION
               ELSEIF ITAB5-KSCHL = 'RL01' OR ITAB5-KSCHL = 'ZA00' OR
                     ITAB5-KSCHL = 'ZA01' OR ITAB5-KSCHL = 'ZAE1' OR
                     ITAB5-KSCHL = 'ZAED' OR
                     ITAB5-KSCHL = 'ZAFR' OR ITAB5-KSCHL = 'ZB00' OR
                     ITAB5-KSCHL = 'ZBCH' OR ITAB5-KSCHL = 'ZBED' OR
                     ITAB5-KSCHL = 'ZC00' OR
                     ITAB5-KSCHL = 'ZCEX' OR ITAB5-KSCHL = 'ZCIF' OR
                     ITAB5-KSCHL = 'ZHC1' OR ITAB5-KSCHL = 'ZHC2' OR
                     ITAB5-KSCHL = 'ZHCT' OR
                     ITAB5-KSCHL = 'ZHCV' OR ITAB5-KSCHL = 'ZJOC' OR
                     ITAB5-KSCHL = 'ZOTH' OR ITAB5-KSCHL = 'ZOTP' OR
                     ITAB5-KSCHL = 'ZOTT' OR
                     ITAB5-KSCHL = 'ZPK1' OR ITAB5-KSCHL = 'ZPK2' OR
                     ITAB5-KSCHL = 'ZPK3' OR ITAB5-KSCHL = 'ZPK4' OR
                     ITAB5-KSCHL = 'ZRPO' OR
                     ITAB5-KSCHL = 'ZSE1' OR ITAB5-KSCHL = 'ZSED' OR
                     ITAB5-KSCHL = 'ZSFR' OR ITAB5-KSCHL = 'ZSTX' OR
                     ITAB5-KSCHL = 'ZTPI' OR
                     ITAB5-KSCHL = 'ZTPV' OR ITAB5-KSCHL = 'ZTRD' OR
                     ITAB5-KSCHL = 'ZWCT'.
                       ITAB1-KWERT2 = ITAB5-KWERT.
                       modify  ITAB1 transporting KWERT2
                       where  KNUMV =  ITAB1-KNUMV AND EBELP = ITAB1-EBELP
              modify itab1.
           ENDIF.
    ENDLOOP .
    ITAB1-TOTAL = ITAB1-NETWR + ITAB1-KWERT2 + ITAB1-KWERT + ITAB1-KBETR.
    *              ITAB1-TOTAL = ITAB1-NETWR + ITAB1-ED1 + ITAB1-KBETR2 +
    *                     ITAB1-KBETR1 + ITAB1-KBETR + ITAB1-KWERT   .
                     modify  ITAB1 transporting TOTAL.
    LOOP AT ITAB6.
              ITAB1-SUB_PACKNO = ITAB6-SUB_PACKNO.
    *           modify  ITAB1.
    ENDLOOP.
    LOOP AT ITAB7.
            ITAB1-BELNR = ITAB7-BELNR.
            ITAB1-GJAHR = ITAB7-GJAHR.
      ENDLOOP.
    LOOP AT ITAB8.
              ITAB1-SUB_PACKNO = ITAB8-SUB_PACKNO.
              ITAB1-SRVPOS  = ITAB8-SRVPOS.
              ITAB1-EXTROW = ITAB8-EXTROW.
              ITAB1-KTEXT1 = ITAB8-KTEXT1.
              modify  ITAB1.
    ENDLOOP.
    * SELECT ESLL~PACKNO ESLL~SUB_PACKNO ESLL~SRVPOS ESLL~KTEXT1
    *          FROM ESLL
    *          INTO CORRESPONDING FIELDS OF TABLE ITAB6
    *          WHERE ESLL~PACKNO = ITAB1-PACKNO.
    ** delete  adjacent  duplicates  from itab1 comparing EBELN .
    modify  ITAB1.
    endloop.
    sort Itab1 by EBELN Ascending.
            SELECT KONV~KBETR FROM KONV
            INTO ITAB1-KBETR
            WHERE KONV~KSCHL =  'NAVS' OR KONV~KSCHL = 'NAVM'.
            ENDSELECT.
            ITAB1-KBETR = ITAB5-KBETR.
    *ENDLOOP.
    *ENDLOOP.
    *ENDLOOP.
    ENDFORM.
    Reward all helpfull answers
    Regards
    Pavan

  • List Months between a date range

    Hi, I'm trying to list the months between a given date range in an ABAP report to generate a MIS report(ALV).. Say I have 2 date ranges, 01.01.2006 to 01.04.2006.. I want to list
    Jan 2006
    Feb 2006
    Mar 2006
    Apr 2006.. Any FM in SAP to get this OP..

    hi vivek,
    use this function module to get months beween two dates
    1. MONTHS_BETWEEN_TWO_DATES   or
    2. MONTHS_BETWEEN_TWO_DATES_NEW
    please reward the point if you are satisfied with answer
    thanks,
    john.

  • SQL to select data between a date range

    Hello,
    I am a new user to HTMLDB and I have an application where I need to select the rows from a table that are between a specified date range. The table description is
    name varchar2
    class varchar2
    sal number
    hdate date
    I want to select the rows of all names between date value 1 and date value 2. The SQL query I use in SQLPLUS does not work in HTML DB. The query I used is
    select null link, name from tab_data where hdate between TO_DATE('06-JAN-04','DD-MON-YY') and TO_DATE('08-JAN-04','DD-MON-YY')
    I also have 2 date picker fields in my form and I used a similar query which did not work.
    select null link, name from tab_data where hdate between TO_DATE(:P2_DATE1,'DD-MON-YY') and TO_DATE(:P2_DATE2,'DD-MON-YY').
    Can someone help me out?
    Thanks

    To All,
    This is getting frustrating... I have tried every combination and permutation I can think of with zero success. The table column I am querying is of type date. The nls_date_format is 'DD-MON-YY' on a 10g database on Linux ES. I am using datepicker 'DD-MON-YY'. I have converted it using TO_DATE, TO_CHAR(TO_DATE(, trunc etc. Is it just my installation? I have upgraded to the latest patch, so that can't be the problem. I created various test scenarios (virgin tables, one row, etc). I've been writing PL/SQL for fourteen years and I think I'm pretty good, but I've sure run up against a stone wall here. Surely somebody has done a date compare out there...
    select to_char(to_date('06-JAN-04','DD-MON-YY'),'MM/DD/YYYY') from dual;
    06-JAN-2004
    select to_char(YOUR_DATE_COLUMN,'MM/DD/YYYY') from YOUR_TABLE_WITH_DATE_COLUMN;
    15-OCT-2004
    15-OCT-2004
    15-OCT-2004

  • Query using Between for date range

    Hi,
    I need to list a date range of registration.. i entered
    4/12/2007 (as value for form.regstart) and 7/12/2007 (as value for
    form.regend)..
    WHERE dateregistered BETWEEN #CreateODBCDate(form.regstart)#
    AND #CreateODBCDate(form.regend)#
    the result that i got was only from 4/12/2007 to 6/7/2007..
    however when i run the same coding at mysql.. it works
    perfectly..
    any idea?

    Turn on debugging and see what dates show up in the sql that
    went to your db. Cold Fusion might be confused by your date format.
    I certainly am.

  • Oracle 8i - select between to date ranges, but exculde time ranges

    Hi, I'm using Oracle 8i
    I'm trying to select a set of records that are between a certain date time (say between October 15 at 6pm and October 17 at 6am) and then want to include only those records that fall between 6am and 6pm within the range.
    I've tried extract and trunc function and can't seem to get it to work.
    If I do a trunc to try to pull out only hour, it returns all of the date information as well:
    SQL> select trunc(to_date('14-10-2007 02:43:46','DD-MM-YYYY HH24:MI:SS'),'HH24') from dual;
    TRUNC(TO_DATE('14-10
    14-OCT-2007 02:00:00
    SQL>Any Ideas? Here is some sample data:
    select * from
            select to_date('14-10-2007 02:43:46','DD-MM-YYYY HH24:MI:SS') from dual union all
            select to_date('14-10-2007 03:02:50','DD-MM-YYYY HH24:MI:SS') from dual union all
            select to_date('14-10-2007 15:13:16','DD-MM-YYYY HH24:MI:SS') from dual union all
            select to_date('14-10-2007 15:16:04','DD-MM-YYYY HH24:MI:SS') from dual union all
            select to_date('14-10-2007 15:18:26','DD-MM-YYYY HH24:MI:SS') from dual union all
            select to_date('14-10-2007 15:20:25','DD-MM-YYYY HH24:MI:SS') from dual union all
            select to_date('14-10-2007 15:22:35','DD-MM-YYYY HH24:MI:SS') from dual union all
            select to_date('14-10-2007 15:23:59','DD-MM-YYYY HH24:MI:SS') from dual union all
            select to_date('14-10-2007 15:26:30','DD-MM-YYYY HH24:MI:SS') from dual union all
            select to_date('14-10-2007 15:33:30','DD-MM-YYYY HH24:MI:SS') from dual union all
            select to_date('14-10-2007 15:54:36','DD-MM-YYYY HH24:MI:SS') from dual union all
            select to_date('14-10-2007 15:56:11','DD-MM-YYYY HH24:MI:SS') from dual union all
            select to_date('14-10-2007 18:56:52','DD-MM-YYYY HH24:MI:SS') from dual union all
            select to_date('15-10-2007 09:12:38','DD-MM-YYYY HH24:MI:SS') from dual union all
            select to_date('15-10-2007 10:23:42','DD-MM-YYYY HH24:MI:SS') from dual union all
            select to_date('15-10-2007 11:17:32','DD-MM-YYYY HH24:MI:SS') from dual union all
            select to_date('15-10-2007 11:46:12','DD-MM-YYYY HH24:MI:SS') from dual union all
            select to_date('15-10-2007 12:36:22','DD-MM-YYYY HH24:MI:SS') from dual union all
            select to_date('15-10-2007 23:23:17','DD-MM-YYYY HH24:MI:SS') from dual union all
            select to_date('16-10-2007 14:43:06','DD-MM-YYYY HH24:MI:SS') from dual union all
            select to_date('16-10-2007 14:44:37','DD-MM-YYYY HH24:MI:SS') from dual union all
            select to_date('16-10-2007 14:48:17','DD-MM-YYYY HH24:MI:SS') from dual union all
            select to_date('16-10-2007 14:49:36','DD-MM-YYYY HH24:MI:SS') from dual union all
            select to_date('16-10-2007 15:07:05','DD-MM-YYYY HH24:MI:SS') from dual union all
            select to_date('16-10-2007 15:08:24','DD-MM-YYYY HH24:MI:SS') from dual union all
            select to_date('17-10-2007 08:55:33','DD-MM-YYYY HH24:MI:SS') from dual union all
            select to_date('17-10-2007 09:58:19','DD-MM-YYYY HH24:MI:SS') from dual union all
            select to_date('17-10-2007 15:07:16','DD-MM-YYYY HH24:MI:SS') from dual union all
            select to_date('17-10-2007 15:19:35','DD-MM-YYYY HH24:MI:SS') from dual union all
            select to_date('17-10-2007 15:58:32','DD-MM-YYYY HH24:MI:SS') from dual union all
            select to_date('17-10-2007 19:56:51','DD-MM-YYYY HH24:MI:SS') from dual union all
            select to_date('17-10-2007 21:22:49','DD-MM-YYYY HH24:MI:SS') from dual union all
            select to_date('17-10-2007 22:16:52','DD-MM-YYYY HH24:MI:SS') from dual union all
            select to_date('17-10-2007 22:45:51','DD-MM-YYYY HH24:MI:SS') from dual union all
            select to_date('18-10-2007 07:52:10','DD-MM-YYYY HH24:MI:SS') from dual union all
            select to_date('18-10-2007 07:54:15','DD-MM-YYYY HH24:MI:SS') from dual union all
            select to_date('18-10-2007 08:03:57','DD-MM-YYYY HH24:MI:SS') from dual union all
            select to_date('18-10-2007 08:31:27','DD-MM-YYYY HH24:MI:SS') from dual union all
            select to_date('18-10-2007 09:16:14','DD-MM-YYYY HH24:MI:SS') from dual union all
            select to_date('18-10-2007 11:10:55','DD-MM-YYYY HH24:MI:SS') from dual union all
            select to_date('18-10-2007 11:21:57','DD-MM-YYYY HH24:MI:SS') from dual
    ) DataSet

    If you can subtract date types from each other in 8i (I think you can but don't know for sure) you can use this:select dte, (dte-trunc(dte))*24 hours
    from (SELECT TO_DATE('15-10-2007 05:59:59',    'DD-MM-YYYY HH24:MI:SS') DTE FROM DUAL UNION ALL
       SELECT TO_DATE('15-10-2007 06:00:00',    'DD-MM-YYYY HH24:MI:SS') FROM DUAL UNION ALL
       SELECT TO_DATE('15-10-2007 06:00:01',    'DD-MM-YYYY HH24:MI:SS') FROM DUAL UNION ALL
       SELECT TO_DATE('15-10-2007 17:59:59',    'DD-MM-YYYY HH24:MI:SS') FROM DUAL UNION ALL
       SELECT TO_DATE('15-10-2007 18:00:00',    'DD-MM-YYYY HH24:MI:SS') FROM DUAL UNION ALL
       SELECT TO_DATE('15-10-2007 18:00:01',    'DD-MM-YYYY HH24:MI:SS') FROM DUAL UNION ALL
       SELECT TO_DATE('16-10-2007 05:59:59',    'DD-MM-YYYY HH24:MI:SS') FROM DUAL UNION ALL
       SELECT TO_DATE('16-10-2007 06:00:00',    'DD-MM-YYYY HH24:MI:SS') FROM DUAL UNION ALL
       SELECT TO_DATE('16-10-2007 06:00:01',    'DD-MM-YYYY HH24:MI:SS') FROM DUAL UNION ALL
       SELECT TO_DATE('16-10-2007 17:59:59',    'DD-MM-YYYY HH24:MI:SS') FROM DUAL UNION ALL
       SELECT TO_DATE('16-10-2007 18:00:00',    'DD-MM-YYYY HH24:MI:SS') FROM DUAL UNION ALL
       SELECT TO_DATE('16-10-2007 18:00:01',    'DD-MM-YYYY HH24:MI:SS') FROM DUAL UNION ALL
       SELECT TO_DATE('17-10-2007 05:59:59',    'DD-MM-YYYY HH24:MI:SS') FROM DUAL UNION ALL
       SELECT TO_DATE('17-10-2007 06:00:00',    'DD-MM-YYYY HH24:MI:SS') FROM DUAL UNION ALL
       SELECT TO_DATE('17-10-2007 06:00:01',    'DD-MM-YYYY HH24:MI:SS') FROM DUAL UNION ALL
       SELECT TO_DATE('17-10-2007 17:59:59',    'DD-MM-YYYY HH24:MI:SS') FROM DUAL UNION ALL
       SELECT TO_DATE('17-10-2007 18:00:00',    'DD-MM-YYYY HH24:MI:SS') FROM DUAL UNION ALL
       SELECT TO_DATE('17-10-2007 18:00:01',    'DD-MM-YYYY HH24:MI:SS') FROM DUAL
       ) t
    where dte between TO_DATE('15-10-2007 18:00:00',    'DD-MM-YYYY HH24:MI:SS')
                  and TO_DATE('17-10-2007 06:00:00',    'DD-MM-YYYY HH24:MI:SS')
          and (dte-trunc(dte))*24 between 6 and 18
    DTE                       HOURS                 
    15-OCT-2007 18.00.00      18                    
    16-OCT-2007 06.00.00      6                     
    16-OCT-2007 06.00.01      6.00027777777777777777777777777777777778
    16-OCT-2007 17.59.59      17.99972222222222222222222222222222222222
    16-OCT-2007 18.00.00      18                    
    17-OCT-2007 06.00.00      6                     
    6 rows selected

  • How to determine if first date in multi record dataset is between certain date range.

    Post Author: wal
    CA Forum: Formula
    I am trying to determine how many patients enrolled in our database from 1/1/2000 to 12/31/2003. The "ltvisit" table has a field called "visit_date" which is the field I am working with to determine. How do I code in crystal reports to find out if the FIRST visit_date record (FIRST VISIT) was between 1/1/2000 and 12/31/2003. Thanks.

    Post Author: yangster
    CA Forum: Formula
    are you creating this in a command or you just bringing in the information from a single table or whatwhat you need to do is do a simple queary to pull in the first record from the patientonce you have that date then you then can do a simple in statement between your 2 dates

  • Get the SQLs In between a date range

    Get the SQLs irrespective of sessions in the order of its execution from a specified schema with in a date time range

    Which version of Oracle are you using?
    Jaffar

Maybe you are looking for