‎2008 May 02 11:59 AM
hi all,
please help me.i have written one program.after executing the programs in the records null records are also comming.
so what the condition should i write so that the null value should not come..
and after which statement i should write.
regards
jignesh
‎2008 May 02 12:06 PM
Hi,
Debug your program and observe when are the null values comming into the internal table.
mostly that would happen in an IDES system where you might have some null entries in the report.
so in the select what ever you have written you can
select...
...
Where VBELN NE Space.
or
after you selected the data into te the ITAB
Delete ITAB Where VBELN = SPACE.
will delete all the records where VBELN which is the field which you are looking for is blank.
santhosh
‎2008 May 02 12:01 PM
hi,
use the condition NOT <field> IS INITIAL to filter out null values.
regards,
Peter
‎2008 May 02 12:06 PM
Hi,
Debug your program and observe when are the null values comming into the internal table.
mostly that would happen in an IDES system where you might have some null entries in the report.
so in the select what ever you have written you can
select...
...
Where VBELN NE Space.
or
after you selected the data into te the ITAB
Delete ITAB Where VBELN = SPACE.
will delete all the records where VBELN which is the field which you are looking for is blank.
santhosh
‎2008 May 02 12:07 PM
when i have written this condition the error comes
STATEMENT "NOT" IS NOT DEFINED. CHECK YOUR SPELLING. SPELLING
‎2008 May 02 12:09 PM
hi,
please paste the code on where you have written the condition.
thanks,
Peter
‎2008 May 02 12:11 PM
Hi
For example you have an Internal table GT_ITAB. Then
IF NOT gt_itab IS INITIAL.
....
ENDIF.If you still have errors, post your code to get it resolved.
‎2008 May 02 12:12 PM
hi
can u send one solved example where you have use this command
regards
jignesh
‎2008 May 02 12:14 PM
Hi,
Pls paste your code so that I can include the command and it works for you
santhosh
‎2008 May 02 12:16 PM
TABLES : MSEG,MKPF,MCH1.
TYPE-POOLS : SLIS.
DATA : FCAT TYPE SLIS_T_FIELDCAT_ALV,
WCAT TYPE SLIS_FIELDCAT_ALV,
LYT TYPE SLIS_LAYOUT_ALV,
TSORT TYPE SLIS_T_SORTINFO_ALV,
WSORT LIKE LINE OF TSORT.
DATA : BEGIN OF ITAB_MKPF OCCURS 0,
MBLNR LIKE MKPF-MBLNR,
MJAHR LIKE MKPF-MJAHR,
BLDAT LIKE MKPF-BLDAT,
END OF ITAB_MKPF.
DATA : BEGIN OF ITAB_MSEG OCCURS 0,
CHARG LIKE MSEG-CHARG,
MBLNR LIKE MSEG-MBLNR,
BWART LIKE MSEG-BWART,
MATNR LIKE MSEG-MATNR,
LGORT LIKE MSEG-LGORT,
LIFNR LIKE MSEG-LIFNR,
SHKZG LIKE MSEG-SHKZG,
ERFMG LIKE MSEG-ERFMG,
END OF ITAB_MSEG.
DATA : BEGIN OF ITAB_MCHB OCCURS 0,
WERKS LIKE MCHB-WERKS,
MATNR LIKE MCHB-MATNR,
CHARG LIKE MCHB-CHARG,
ERSDA LIKE MCHB-ERSDA,
CLABS LIKE MCHB-CLABS,
END OF ITAB_MCHB.
DATA : BEGIN OF ITAB_MCH1 OCCURS 0,
CHARG LIKE MCH1-CHARG,
MATNR LIKE MCH1-MATNR,
LICHA LIKE MCH1-LICHA,
END OF ITAB_MCH1.
DATA : BEGIN OF ITAB_MAKT OCCURS 0,
MATNR LIKE MAKT-MATNR,
MAKTX LIKE MAKT-MAKTX,
END OF ITAB_MAKT.
DATA : BEGIN OF ITAB_LFA1 OCCURS 0,
LIFNR LIKE LFA1-LIFNR,
NAME1 LIKE LFA1-NAME1,
END OF ITAB_LFA1.
DATA : BEGIN OF ITAB_MAIN OCCURS 0,
BLDAT LIKE MKPF-BLDAT,
MBLNR LIKE MSEG-MBLNR,
MAKTX LIKE MAKT-MAKTX,
NAME1 LIKE LFA1-NAME1,
CHARG LIKE MSEG-CHARG,
LICHA LIKE MCH1-LICHA,
GQTY LIKE MSEG-ERFMG,
IQTY LIKE MSEG-ERFMG,
RQTY LIKE MSEG-ERFMG,
DQTY LIKE MSEG-ERFMG,
SQTY LIKE MSEG-ERFMG,
END OF ITAB_MAIN.
DATA : DQTY1 LIKE MSEG-ERFMG,
DQTY2 LIKE MSEG-ERFMG,
MBLNR1 LIKE MKPF-MBLNR,
BLDAT1 LIKE MKPF-BLDAT.
SELECTION-SCREEN : BEGIN OF BLOCK BLOCK1 WITH FRAME TITLE TEXT001.
SELECT-OPTIONS : Z_WERKS FOR MSEG-WERKS NO INTERVALS NO-EXTENSION OBLIGATORY.
SELECT-OPTIONS : Z_LGORT FOR MSEG-LGORT NO INTERVALS NO-EXTENSION OBLIGATORY.
SELECT-OPTIONS : Z_BLDAT FOR MKPF-BLDAT OBLIGATORY.
SELECTION-SCREEN : END OF BLOCK BLOCK1.
SELECT WERKS MATNR CHARG ERSDA CLABS
FROM MCHB
INTO CORRESPONDING FIELDS OF TABLE ITAB_MCHB
WHERE CHARG = '0000000952' AND WERKS = '1003' AND LGORT = '0002'.
WHERE WERKS IN Z_WERKS AND
LGORT IN Z_LGORT AND
ERSDA IN Z_BLDAT.
IF ITAB_MCHB[] IS NOT INITIAL.
SELECT CHARG MBLNR BWART MATNR LGORT LIFNR SHKZG ERFMG
FROM MSEG INTO TABLE ITAB_MSEG FOR ALL ENTRIES IN ITAB_MCHB
WHERE WERKS = ITAB_MCHB-WERKS AND
MATNR = ITAB_MCHB-MATNR AND
CHARG = ITAB_MCHB-CHARG.
SORT ITAB_MSEG BY CHARG.
ENDIF.
IF ITAB_MSEG[] IS NOT INITIAL.
SELECT MBLNR MJAHR BLDAT
FROM MKPF
INTO TABLE ITAB_MKPF FOR ALL ENTRIES IN ITAB_MSEG
WHERE MBLNR = ITAB_MSEG-MBLNR.
ENDIF.
IF SY-SUBRC <> 0.
MESSAGE 'Record not Found...' TYPE 'E'.
ENDIF.
IF ITAB_MSEG[] IS NOT INITIAL.
SELECT CHARG MATNR LICHA
FROM MCH1
INTO TABLE ITAB_MCH1 FOR ALL ENTRIES IN ITAB_MSEG
WHERE MATNR = ITAB_MSEG-MATNR AND
CHARG = ITAB_MSEG-CHARG.
ENDIF.
IF ITAB_MSEG[] IS NOT INITIAL.
SELECT MATNR MAKTX
FROM MAKT
INTO TABLE ITAB_MAKT FOR ALL ENTRIES IN ITAB_MSEG
WHERE MATNR = ITAB_MSEG-MATNR.
ENDIF.
IF ITAB_MSEG[] IS NOT INITIAL.
SELECT LIFNR NAME1
FROM LFA1
INTO TABLE ITAB_LFA1 FOR ALL ENTRIES IN ITAB_MSEG
WHERE LIFNR = ITAB_MSEG-LIFNR.
ENDIF.
LOOP AT ITAB_MSEG.
READ TABLE ITAB_MKPF WITH KEY MBLNR = ITAB_MSEG-MBLNR.
READ TABLE ITAB_MCH1 WITH KEY CHARG = ITAB_MSEG-CHARG MATNR = ITAB_MSEG-MATNR.
READ TABLE ITAB_MAKT WITH KEY MATNR = ITAB_MSEG-MATNR.
READ TABLE ITAB_LFA1 WITH KEY LIFNR = ITAB_MSEG-LIFNR.
WRITE : / ITAB_MKPF-BLDAT,ITAB_MSEG-MBLNR,ITAB_MAKT-MAKTX,ITAB_LFA1-NAME1,ITAB_MCH1-LICHA,ITAB_MSEG-CHARG,ITAB_MSEG-ERFMG.
IF ( ITAB_MSEG-BWART = '101' OR ITAB_MSEG-BWART = '561' ) AND ITAB_MSEG-LGORT = '0002' AND ITAB_MSEG-SHKZG = 'S'.
ITAB_MAIN-CHARG = ITAB_MSEG-CHARG.
ITAB_MAIN-BLDAT = ITAB_MKPF-BLDAT.
ITAB_MAIN-MBLNR = ITAB_MSEG-MBLNR.
ITAB_MAIN-MAKTX = ITAB_MAKT-MAKTX.
ITAB_MAIN-NAME1 = ITAB_LFA1-NAME1.
ITAB_MAIN-LICHA = ITAB_MCH1-LICHA.
ITAB_MAIN-GQTY = ITAB_MAIN-GQTY + ITAB_MSEG-ERFMG.
ELSEIF ITAB_MSEG-BWART = '311' AND ITAB_MSEG-LGORT = '0002' AND ITAB_MSEG-SHKZG = 'H'.
ITAB_MAIN-IQTY = ITAB_MAIN-IQTY + ITAB_MSEG-ERFMG.
ELSEIF ITAB_MSEG-BWART = '311' AND ITAB_MSEG-LGORT = '0027' AND ITAB_MSEG-SHKZG = 'H'.
ITAB_MAIN-RQTY = ITAB_MAIN-RQTY + ITAB_MSEG-ERFMG.
ELSEIF ( ( ITAB_MSEG-BWART = '641' OR ITAB_MSEG-BWART = '541' ) OR ITAB_MSEG-LGORT = '0002' ) AND ITAB_MSEG-SHKZG = 'H'.
ITAB_MAIN-DQTY = ITAB_MAIN-DQTY + ITAB_MSEG-ERFMG.
ENDIF.
AT END OF CHARG.
ITAB_MAIN-SQTY = ( ITAB_MAIN-GQTY + ITAB_MAIN-RQTY ) - ( ITAB_MAIN-IQTY + ITAB_MAIN-DQTY ).
APPEND ITAB_MAIN.
CLEAR ITAB_MAIN.
ENDAT.
ENDLOOP.
*LOOP AT ITAB_MAIN.
WRITE : / 'MAIN---',ITAB_MAIN-BLDAT,ITAB_MAIN-MBLNR,ITAB_MAIN-MAKTX,ITAB_MAIN-NAME1,ITAB_MAIN-LICHA,ITAB_MAIN-CHARG.
*ENDLOOP.
WCAT-COL_POS = 1.
WCAT-FIELDNAME = 'BLDAT'.
WCAT-TABNAME = 'ITAB_MAIN'.
WCAT-SELTEXT_M = 'Date'.
APPEND WCAT TO FCAT.
CLEAR WCAT.
WCAT-COL_POS = 2.
WCAT-FIELDNAME = 'MBLNR'.
WCAT-TABNAME = 'ITAB_MAIN'.
WCAT-SELTEXT_M = 'Migono'.
APPEND WCAT TO FCAT.
CLEAR WCAT.
WCAT-COL_POS = 3.
WCAT-FIELDNAME = 'MAKTX'.
WCAT-TABNAME = 'ITAB_MAIN'.
WCAT-SELTEXT_M = 'Itemname'.
APPEND WCAT TO FCAT.
CLEAR WCAT.
WCAT-COL_POS = 4.
WCAT-FIELDNAME = 'NAME1'.
WCAT-TABNAME = 'ITAB_MAIN'.
WCAT-SELTEXT_M = 'Millname'.
APPEND WCAT TO FCAT.
CLEAR WCAT.
WCAT-COL_POS = 5.
WCAT-FIELDNAME = 'CHARG'.
WCAT-TABNAME = 'ITAB_MAIN'.
WCAT-SELTEXT_M = 'Lotno'.
APPEND WCAT TO FCAT.
CLEAR WCAT.
WCAT-COL_POS = 6.
WCAT-FIELDNAME = 'LICHA'.
WCAT-TABNAME = 'ITAB_MAIN'.
WCAT-SELTEXT_M = 'Olotno'.
APPEND WCAT TO FCAT.
CLEAR WCAT.
WCAT-COL_POS = 7.
WCAT-FIELDNAME = 'GQTY'.
WCAT-TABNAME = 'ITAB_MAIN'.
WCAT-SELTEXT_M = 'Grn Qty'.
APPEND WCAT TO FCAT.
CLEAR WCAT.
WCAT-COL_POS = 8.
WCAT-FIELDNAME = 'IQTY'.
WCAT-TABNAME = 'ITAB_MAIN'.
WCAT-SELTEXT_M = 'Iss Qty'.
APPEND WCAT TO FCAT.
CLEAR WCAT.
WCAT-COL_POS = 9.
WCAT-FIELDNAME = 'RQTY'.
WCAT-TABNAME = 'ITAB_MAIN'.
WCAT-SELTEXT_M = 'Ret Qty'.
APPEND WCAT TO FCAT.
CLEAR WCAT.
WCAT-COL_POS = 10.
WCAT-FIELDNAME = 'DQTY'.
WCAT-TABNAME = 'ITAB_MAIN'.
WCAT-SELTEXT_M = 'Desp Qty'.
APPEND WCAT TO FCAT.
CLEAR WCAT.
WCAT-COL_POS = 11.
WCAT-FIELDNAME = 'SQTY'.
WCAT-TABNAME = 'ITAB_MAIN'.
WCAT-SELTEXT_M = 'Stk Qty'.
APPEND WCAT TO FCAT.
CLEAR WCAT.
*LYT-ZEBRA = 'X'.
LYT-COLWIDTH_OPTIMIZE = 'X'.
WSORT-FIELDNAME = 'MBLNR'.
WSORT-TABNAME = 'ITAB_MAIN'.
WSORT-UP = 'X'.
WSORT-SUBTOT = 'X'.
APPEND WSORT TO TSORT.
CLEAR WSORT.
WSORT-FIELDNAME = 'CHARG'.
WSORT-TABNAME = 'ITAB_MAIN'.
WSORT-UP = 'X'.
APPEND WSORT TO TSORT.
CLEAR WSORT.
CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
EXPORTING
I_INTERFACE_CHECK = ' '
I_BYPASSING_BUFFER = ' '
I_BUFFER_ACTIVE = ' '
I_CALLBACK_PROGRAM
‎2008 May 02 12:23 PM
SELECT WERKS MATNR CHARG ERSDA CLABS
FROM MCHB
INTO CORRESPONDING FIELDS OF TABLE ITAB_MCHB
WHERE CHARG = '0000000952' AND WERKS = '1003' AND LGORT = '0002'.
WHERE WERKS IN Z_WERKS AND
LGORT IN Z_LGORT AND
ERSDA IN Z_BLDAT.
Delete ITAB Where MATNR is Initial.
try this
santhosh
‎2008 May 02 12:27 PM