Plz rectify this code(urgent)

i want to display all po,s with all grs from requistion up to inspection. if for a po gr not happend or inspection not happend it must also display leaving blank for that po. actual flow is pur.reqpur.ordergoods receipt---quality inspection. once u copy this code and execute it. u will get better idea.
regards!
prasad.
REPORT Z_MM_REQDETAILS1.
TABLES: EKKO, EKPO, MSEG, QALS, EBAN, MKPF, MAKT.
TYPE-POOLS: SLIS.
SELECTION-SCREEN BEGIN OF BLOCK B1 WITH FRAME.
SELECT-OPTIONS: SBADAT FOR EBAN-BADAT,
SLIFNR FOR EKKO-LIFNR,
SEBELN FOR EKKO-EBELN,
SBEDAT FOR EKKO-BEDAT,
SBSART FOR EKKO-BSART,
SMATNR FOR EKPO-MATNR,
SBUDAT FOR MKPF-BUDAT.
SELECTION-SCREEN END OF BLOCK B1.
DATA: BEGIN OF EBAN_TAB OCCURS 0,
BANFN LIKE EBAN-BANFN,
BADAT LIKE EBAN-BADAT,
MENGE LIKE EBAN-MENGE,
EBELN LIKE EBAN-EBELN,
AFNAM LIKE EBAN-AFNAM,
END OF EBAN_TAB.
DATA: BEGIN OF EKKO_TAB OCCURS 0,
BSART LIKE EKKO-BSART,
EBELN LIKE EKKO-EBELN,
LIFNR LIKE EKKO-LIFNR,
BEDAT LIKE EKKO-BEDAT,
END OF EKKO_TAB.
DATA: BEGIN OF EKPO_TAB OCCURS 0,
EBELN LIKE EKPO-EBELN,
MENGE LIKE EKPO-MENGE,
MATNR LIKE EKPO-MATNR,
BANFN LIKE EKPO-BANFN,
EBELP LIKE EKPO-EBELP,
END OF EKPO_TAB.
DATA: BEGIN OF MSEG_TAB OCCURS 0,
EBELN LIKE MSEG-EBELN,
MBLNR LIKE MSEG-MBLNR,
MATNR LIKE MSEG-MATNR,
MENGE LIKE MSEG-MENGE,
EBELP LIKE MSEG-EBELP,
END OF MSEG_TAB.
DATA: BEGIN OF MSEG_TAB1 OCCURS 0,
MBLNR LIKE MSEG-MBLNR,
EBELN LIKE MSEG-EBELN,
END OF MSEG_TAB1.
DATA: BEGIN OF QALS_TAB OCCURS 0,
LMENGE01 LIKE QALS-LMENGE01,
LMENGE07 LIKE QALS-LMENGE07,
MATNR LIKE QALS-MATNR,
MBLNR LIKE QALS-MBLNR,
EBELN LIKE QALS-EBELN,
EBELP LIKE QALS-EBELP,
END OF QALS_TAB.
DATA: BEGIN OF MKPF_TAB OCCURS 0,
MBLNR LIKE MKPF-MBLNR,
BUDAT LIKE MKPF-BUDAT,
END OF MKPF_TAB.
DATA: BEGIN OF MAKT_TAB OCCURS 0,
MATNR LIKE MAKT-MATNR,
MAKTX LIKE MAKT-MAKTX,
END OF MAKT_TAB.
DATA: BEGIN OF SELTAB OCCURS 0,
EBELN LIKE EKKO-EBELN,
BLDAT LIKE MKPF-BLDAT,
END OF SELTAB.
*DATA: BEGIN OF SELTAB1 OCCURS 0,
BUDAT LIKE MKPF-BUDAT,
END OF SELTAB1.
DATA: REPID LIKE SY-REPID.
DATA: F_OUTPUT1 TYPE SLIS_T_FIELDCAT_ALV WITH HEADER LINE.
DATA: IT_SORT TYPE SLIS_T_SORTINFO_ALV WITH HEADER LINE.
DATA: REMARKS(40) TYPE C.
DATA: BEGIN OF OUTPUT OCCURS 0,
BANFN LIKE EBAN-BANFN,
BADAT LIKE EBAN-BADAT,
RMENGE LIKE EBAN-MENGE,
AFNAM LIKE EBAN-AFNAM,
BSART LIKE EKKO-BSART,
EBELN LIKE EKKO-EBELN,
LIFNR LIKE EKKO-LIFNR,
BEDAT LIKE EKKO-BEDAT,
PMENGE LIKE EKPO-MENGE,
MATNR LIKE EKPO-MATNR,
EBELP LIKE EKPO-EBELP,
MBLNR LIKE MSEG-MBLNR,
GMENGE LIKE MSEG-MENGE,
LMENGE01 LIKE QALS-LMENGE01,
LMENGE07 LIKE QALS-LMENGE07,
BUDAT LIKE MKPF-BUDAT,
MAKTX LIKE MAKT-MAKTX,
REMARKS(40) TYPE C,
SL_NO LIKE SY-TABIX,
END OF OUTPUT.
START-OF-SELECTION.
IF SEBELN IS NOT INITIAL OR SLIFNR IS NOT INITIAL OR SBEDAT IS NOT INITIAL OR SBSART IS NOT INITIAL.
SELECT EBELN
BSART
LIFNR
BEDAT FROM EKKO INTO CORRESPONDING FIELDS OF TABLE EKKO_TAB WHERE EBELN IN SEBELN AND LIFNR IN SLIFNR AND BEDAT IN SBEDAT AND
BSART IN SBSART.
ELSEIF SBADAT IS NOT INITIAL.
SELECT EBELN
BANFN
BADAT
MENGE
AFNAM FROM EBAN INTO CORRESPONDING FIELDS OF TABLE EBAN_TAB where BADAT IN SBADAT.
SORT EBAN_TAB BY BADAT ASCENDING.
select ebeln lifnr bedat bsart from ekko into corresponding fields of table ekko_tab for all entries in eban_tab where ebeln = eban_tab-ebeln.
ELSEIF SMATNR IS NOT INITIAL.
SELECT EBELN
EBELP
FROM EKPO INTO CORRESPONDING FIELDS OF TABLE SELTAB
WHERE MATNR IN SMATNR.
SORT SELTAB BY EBELN ASCENDING.
DELETE ADJACENT DUPLICATES FROM SELTAB COMPARING EBELN.
SELECT EBELN
BSART
BEDAT
LIFNR FROM EKKO INTO CORRESPONDING FIELDS OF TABLE EKKO_TAB
FOR ALL ENTRIES IN SELTAB WHERE EBELN = SELTAB-EBELN.
ELSEIF SBUDAT IS NOT INITIAL.
SELECT BUDAT
MBLNR FROM MKPF INTO CORRESPONDING FIELDS OF TABLE MKPF_TAB WHERE
BUDAT IN SBUDAT.
sort mkpf_tab by budat ascending.
SELECT EBELN FROM MSEG INTO CORRESPONDING FIELDS OF TABLE SELTAB FOR ALL ENTRIES IN
MKPF_TAB WHERE MBLNR = MKPF_TAB-MBLNR.
*SELECT EBELN
FROM QALS INTO CORRESPONDING FIELDS OF TABLE SELTAB FOR ALL ENTRIES IN SELTAB WHERE EBELN = SELTAB-EBELN.
SORT SELTAB BY EBELN ASCENDING.
DELETE ADJACENT DUPLICATES FROM SELTAB COMPARING EBELN.
SELECT EBELN
BEDAT
LIFNR
BSART FROM EKKO INTO CORRESPONDING FIELDS OF TABLE EKKO_TAB
FOR ALL ENTRIES IN SELTAB WHERE EBELN = SELTAB-EBELN.
ENDIF.
SELECT EBELN
MENGE
MATNR
EBELP FROM EKPO INTO CORRESPONDING FIELDS OF TABLE EKPO_TAB FOR ALL ENTRIES IN EKKO_TAB WHERE EBELN = EKKO_TAB-EBELN AND
MATNR IN SMATNR.
SELECT EBELN
BANFN
BADAT
MENGE
AFNAM FROM EBAN INTO CORRESPONDING FIELDS OF TABLE EBAN_TAB FOR ALL ENTRIES IN EKKO_TAB WHERE EBELN = EKKO_TAB-EBELN AND
BADAT IN SBADAT.
SELECT EBELN
MBLNR
MATNR
MENGE
EBELP
FROM MSEG INTO CORRESPONDING FIELDS OF TABLE MSEG_TAB FOR ALL ENTRIES IN EKPO_TAB WHERE EBELN = EKPO_TAB-EBELN AND
MATNR = EKPO_TAB-MATNR AND
EBELP = EKPO_TAB-EBELP AND
BWART IN ('101','105').
SELECT LMENGE01
LMENGE07
MATNR
MBLNR
EBELN FROM QALS INTO CORRESPONDING FIELDS OF TABLE QALS_TAB FOR ALL ENTRIES IN MSEG_TAB WHERE MBLNR = MSEG_TAB-MBLNR AND
MATNR = MSEG_TAB-MATNR AND
EBELN = MSEG_TAB-EBELN AND
EBELP = MSEG_TAB-EBELP.
SELECT MBLNR
BUDAT FROM MKPF INTO CORRESPONDING FIELDS OF TABLE MKPF_TAB FOR ALL ENTRIES IN MSEG_TAB WHERE MBLNR = MSEG_TAB-MBLNR AND BUDAT
IN SBUDAT.
SELECT MATNR
MAKTX FROM MAKT INTO CORRESPONDING FIELDS OF TABLE MAKT_TAB FOR ALL ENTRIES IN EKPO_TAB WHERE MATNR = EKPO_TAB-MATNR.
*LOOP AT OUTPUT.
**LOOP AT EKKO_TAB.
**read table EKKO_TAB with key ebeln = output-ebeln.
**if sy-subrc = 0.
*READ TABLE EKPO_TAB WITH KEY EBELN = EKKO_TAB-EBELN.
*IF SY-SUBRC = 0.
*READ TABLE MSEG_TAB WITH KEY EBELN = EKPO_TAB-EBELN MATNR = EKPO_TAB-MATNR.
*IF SY-SUBRC = 0.
**READ TABLE QALS_TAB WITH KEY MBLNR = MSEG_TAB-MBLNR MATNR = MSEG_TAB-MATNR EBELN = MSEG_TAB-EBELN.
**IF SY-SUBRC = 0.
o OUTPUT-EBELN = EKKO_TAB-EBELN.
o OUTPUT-BSART = EKKO_TAB-BSART.
o OUTPUT-LIFNR = EKKO_TAB-LIFNR.
o OUTPUT-BEDAT = EKKO_TAB-BEDAT.
OUTPUT-PMENGE = EKPO_TAB-MENGE.
OUTPUT-MATNR = EKPO_TAB-MATNR.
OUTPUT-MBLNR = MSEG_TAB-MBLNR.
OUTPUT-GMENGE = MSEG_TAB-MENGE.
o OUTPUT-LMENGE01 = QALS_TAB-LMENGE01.
o OUTPUT-LMENGE07 = QALS_TAB-LMENGE07.
modify OUTPUT transporting pmenge matnr MBLNR GMENGE.
**APPEND OUTPUT.
*ENDIF.
*ENDIF.
*ENDLOOP.
LOOP AT EKKO_TAB.
LOOP AT EKPO_TAB WHERE EBELN = EKKO_TAB-EBELN.
LOOP AT MSEG_TAB WHERE EBELN = OUTPUT-EBELN AND MATNR = output-MATNR AND EBELP = OUTPUT-EBELP.
OUTPUT-EBELN = EKKO_TAB-EBELN.
OUTPUT-BSART = EKKO_TAB-BSART.
OUTPUT-LIFNR = EKKO_TAB-LIFNR.
OUTPUT-BEDAT = EKKO_TAB-BEDAT.
OUTPUT-PMENGE = EKPO_TAB-MENGE.
OUTPUT-MATNR = EKPO_TAB-MATNR.
OUTPUT-EBELP = EKPO_TAB-EBELP.
APPEND OUTPUT.
CLEAR OUTPUT.
ENDLOOP.
ENDLOOP.
*LOOP AT OUTPUT.
*LOOP AT EKPO_TAB WHERE EBELN = OUTPUT-EBELN.
OUTPUT-PMENGE = EKPO_TAB-MENGE.
OUTPUT-MATNR = EKPO_TAB-MATNR.
OUTPUT-EBELP = EKPO_TAB-EBELP.
*MODIFY OUTPUT TRANSPORTING PMENGE MATNR EBELP.
*ENDLOOP.
*ENDLOOP.
LOOP AT OUTPUT.
LOOP AT MSEG_TAB WHERE EBELN = OUTPUT-EBELN AND MATNR = OUTPUT-MATNR AND EBELP = OUTPUT-EBELP.
*LOOP AT QALS_TAB WHERE MBLNR = MSEG_TAB-MBLNR AND MATNR = OUTPUT-MATNR AND EBELN = OUTPUT-EBELN AND EBELP = OUTPUT-EBELP.
OUTPUT-MBLNR = MSEG_TAB-MBLNR.
OUTPUT-GMENGE = MSEG_TAB-MENGE.
OUTPUT-LMENGE01 = QALS_TAB-LMENGE01.
OUTPUT-LMENGE07 = QALS_TAB-LMENGE07.
OUTPUT-EBELP = QALS_TAB-EBELP.
*APPEND OUTPUT.
MODIFY OUTPUT TRANSPORTING MBLNR GMENGE.
*CLEAR OUTPUT.
*CLEAR MSEG_TAB.
ENDLOOP.
ENDLOOP.
*ENDLOOP.
LOOP AT OUTPUT.
LOOP AT QALS_TAB WHERE MBLNR = OUTPUT-MBLNR AND MATNR = OUTPUT-MATNR AND EBELN = OUTPUT-EBELN.
OUTPUT-LMENGE01 = QALS_TAB-LMENGE01.
OUTPUT-LMENGE07 = QALS_TAB-LMENGE07.
OUTPUT-EBELP = QALS_TAB-EBELP.
MODIFY OUTPUT TRANSPORTING LMENGE01 LMENGE07.
ENDLOOP.
ENDLOOP.
LOOP AT OUTPUT.
LOOP AT EBAN_TAB WHERE EBELN = OUTPUT-EBELN.
OUTPUT-BANFN = EBAN_TAB-BANFN.
OUTPUT-BADAT = EBAN_TAB-BADAT.
OUTPUT-RMENGE = EBAN_TAB-MENGE.
OUTPUT-AFNAM = EBAN_TAB-AFNAM.
MODIFY OUTPUT TRANSPORTING BANFN BADAT RMENGE AFNAM.
ENDLOOP.
ENDLOOP.
LOOP AT OUTPUT.
LOOP AT MKPF_TAB WHERE MBLNR = OUTPUT-MBLNR.
OUTPUT-BUDAT = MKPF_TAB-BUDAT.
MODIFY OUTPUT TRANSPORTING BUDAT.
ENDLOOP.
ENDLOOP.
*LOOP AT OUTPUT.
*SELECT SINGLE MATNR FROM EKPO INTO OUTPUT-MATNR WHERE EBELN = OUTPUT-EBELN.
*MODIFY OUTPUT TRANSPORTING MATNR.
*SELECT SINGLE MBLNR FROM MSEG INTO OUTPUT-MBLNR WHERE MATNR = OUTPUT-MATNR.
*MODIFY OUTPUT TRANSPORTING MBLNR.
*ENDLOOP.
LOOP AT OUTPUT.
LOOP AT MAKT_TAB WHERE MATNR = OUTPUT-MATNR.
OUTPUT-MAKTX = MAKT_TAB-MAKTX.
MODIFY OUTPUT TRANSPORTING MAKTX.
ENDLOOP.
ENDLOOP.
*LOOP AT EKKO_TAB.
LOOP AT EKPO_TAB WHERE EBELN = EKKO_TAB-EBELN.
o LOOP AT MSEG_TAB WHERE EBELN = EKPO_TAB-EBELN AND MATNR = EKPO_TAB-MATNR.
o LOOP AT QALS_TAB WHERE MBLNR = MSEG_TAB-MBLNR AND MATNR = MSEG_TAB-MATNR AND EBELN = MSEG_TAB-EBELN.
o LOOP AT MKPF_TAB WHERE MBLNR = MSEG_TAB-MBLNR.
OUTPUT-EBELN = EKKO_TAB-EBELN.
OUTPUT-BSART = EKKO_TAB-BSART.
OUTPUT-LIFNR = EKKO_TAB-LIFNR.
OUTPUT-BEDAT = EKKO_TAB-BEDAT.
OUTPUT-PMENGE = EKPO_TAB-MENGE.
OUTPUT-MATNR = EKPO_TAB-MATNR.
OUTPUT-EBELP = EKPO_TAB-EBELP.
o OUTPUT-MBLNR = MSEG_TAB-MBLNR.
o OUTPUT-GMENGE = MSEG_TAB-MENGE.
o OUTPUT-BUDAT = MKPF_TAB-BUDAT.
o OUTPUT-LMENGE01 = QALS_TAB-LMENGE01.
o OUTPUT-LMENGE07 = QALS_TAB-LMENGE07.
o MODIFY OUTPUT TRANSPORTING BSART LIFNR BEDAT PMENGE MATNR.
APPEND OUTPUT.
CLEAR OUTPUT.
o CLEAR QALS_TAB.
o ENDLOOP.
o CLEAR MKPF_TAB.
o ENDLOOP.
o CLEAR MSEG_TAB.
o ENDLOOP.
CLEAR EKPO_TAB.
ENDLOOP.
CLEAR EKKO_TAB.
ENDLOOP.
**SELECT MBLNR EBELN FROM MSEG INTO TABLE MSEG_TAB1 FOR ALL ENTRIES IN EKKO_TAB WHERE EBELN = EKKO_TAB-EBELN.
o LOOP AT OUTPUT.
o MOVE-CORRESPONDING MSEG_TAB1 TO OUTPUT.
o OUTPUT-MBLNR = MSEG_TAB1-MBLNR.
o MODIFY OUTPUT TRANSPORTING MBLNR.
o ENDLOOP.
*LOOP AT OUTPUT.
LOOP AT MSEG_TAB WHERE EBELN = output-EBELN AND MATNR = output-MATNR AND EBELP = OUTPUT-EBELP.
**READ TABLE MSEG_TAB WITH KEY EBELN = OUTPUT-EBELN MATNR = OUTPUT-MATNR.
*IF SY-SUBRC = 0.
OUTPUT-MBLNR = MSEG_TAB-MBLNR.
OUTPUT-GMENGE = MSEG_TAB-MENGE.
*MODIFY OUTPUT TRANSPORTING MBLNR GMENGE.
*ENDIF.
*clear output.
*ENDLOOP.
*endloop.
*LOOP AT OUTPUT.
READ TABLE QALS_TAB WITH KEY MBLNR = OUTPUT-MBLNR MATNR = OUTPUT-MATNR EBELN = OUTPUT-EBELN.
*IF SY-SUBRC = 0.
*OUTPUT-LMENGE01 = QALS_TAB-LMENGE01.
*OUTPUT-LMENGE07 = QALS_TAB-LMENGE07.
*MODIFY OUTPUT TRANSPORTING LMENGE01 LMENGE07.
*ENDIF.
*ENDLOOP.
LOOP AT OUTPUT.
READ TABLE EBAN_TAB WITH KEY EBELN = OUTPUT-EBELN.
IF SY-SUBRC = 0.
OUTPUT-BANFN = EBAN_TAB-BANFN.
OUTPUT-BADAT = EBAN_TAB-BADAT.
OUTPUT-RMENGE = EBAN_TAB-MENGE.
OUTPUT-AFNAM = EBAN_TAB-AFNAM.
MODIFY OUTPUT TRANSPORTING BANFN BADAT RMENGE AFNAM.
ENDIF.
ENDLOOP.
*LOOP AT OUTPUT.
READ TABLE MKPF_TAB WITH KEY MBLNR = OUTPUT-MBLNR.
IF SY-SUBRC = 0.
OUTPUT-BUDAT = MKPF_TAB-BUDAT.
MODIFY OUTPUT TRANSPORTING BUDAT.
ENDIF.
ENDLOOP.
*LOOP AT OUTPUT.
*READ TABLE MAKT_TAB WITH KEY MATNR = OUTPUT-MATNR.
*IF SY-SUBRC = 0.
*OUTPUT-MAKTX = MAKT_TAB-MAKTX.
*MODIFY OUTPUT TRANSPORTING MAKTX.
*ENDIF.
*ENDLOOP.
PERFORM F_OUTPUT.
PERFORM SORT.
PERFORM GRID.
FORM F_OUTPUT.
F_OUTPUT1-FIELDNAME = 'MATNR'.
F_OUTPUT1-REF_TABNAME = 'EKPO'.
F_OUTPUT1-REF_FIELDNAME = 'MATNR'.
APPEND F_OUTPUT1.
CLEAR F_OUTPUT1.
F_OUTPUT1-FIELDNAME ='MAKTX'.
F_OUTPUT1-SELTEXT_M = 'DESCRIPTION.'.
APPEND F_OUTPUT1.
CLEAR F_OUTPUT1.
F_OUTPUT1-FIELDNAME = 'LIFNR'.
F_OUTPUT1-REF_TABNAME = 'EKKO'.
F_OUTPUT1-REF_FIELDNAME = 'LIFNR'.
F_OUTPUT1-SELTEXT_M = 'SUPPLIER'.
APPEND F_OUTPUT1.
CLEAR F_OUTPUT1.
F_OUTPUT1-FIELDNAME = 'AFNAM'.
F_OUTPUT1-REF_TABNAME = 'EBAN'.
F_OUTPUT1-REF_FIELDNAME = 'AFNAM'.
APPEND F_OUTPUT1.
CLEAR F_OUTPUT1.
F_OUTPUT1-FIELDNAME = 'BANFN'.
F_OUTPUT1-REF_TABNAME = 'EBAN'.
F_OUTPUT1-REF_FIELDNAME = 'BANFN'.
APPEND F_OUTPUT1.
CLEAR F_OUTPUT1.
F_OUTPUT1-FIELDNAME = 'BADAT'.
F_OUTPUT1-SELTEXT_M = 'PRS DATE'.
F_OUTPUT1-REF_TABNAME = 'EBAN'.
F_OUTPUT1-REF_FIELDNAME = 'BADAT'.
APPEND F_OUTPUT1.
CLEAR F_OUTPUT1.
F_OUTPUT1-FIELDNAME ='RMENGE'.
*F_OUTPUT1-REF_TABNAME = 'MSEG'.
*F_OUTPUT1-REF_FIELDNAME = 'MBLNR'.
F_OUTPUT1-SELTEXT_M = 'PRS QTY'.
APPEND F_OUTPUT1.
CLEAR F_OUTPUT1.
F_OUTPUT1-FIELDNAME = 'EBELN'.
F_OUTPUT1-REF_TABNAME = 'EKKO'.
F_OUTPUT1-REF_FIELDNAME = 'EBELN'.
APPEND F_OUTPUT1.
CLEAR F_OUTPUT1.
F_OUTPUT1-FIELDNAME = 'BSART'.
F_OUTPUT1-REF_TABNAME = 'EKKO'.
F_OUTPUT1-REF_FIELDNAME = 'BSART'.
APPEND F_OUTPUT1.
CLEAR F_OUTPUT1.
F_OUTPUT1-FIELDNAME = 'BEDAT'.
F_OUTPUT1-REF_TABNAME = 'EKKO'.
F_OUTPUT1-REF_FIELDNAME = 'BEDAT'.
F_OUTPUT1-SELTEXT_M = 'PO DATE'.
APPEND F_OUTPUT1.
CLEAR F_OUTPUT1.
F_OUTPUT1-FIELDNAME ='PMENGE'.
F_OUTPUT1-SELTEXT_M = 'PO QTY'.
APPEND F_OUTPUT1.
CLEAR F_OUTPUT1.
F_OUTPUT1-FIELDNAME = 'MBLNR'.
F_OUTPUT1-REF_TABNAME = 'MSEG'.
F_OUTPUT1-REF_FIELDNAME = 'MBLNR'.
F_OUTPUT1-SELTEXT_M = 'GR NUMBER'.
APPEND F_OUTPUT1.
CLEAR F_OUTPUT1.
F_OUTPUT1-FIELDNAME ='BUDAT'.
F_OUTPUT1-SELTEXT_M = 'GR DATE'.
APPEND F_OUTPUT1.
CLEAR F_OUTPUT1.
F_OUTPUT1-FIELDNAME ='GMENGE'.
*F_OUTPUT1-REF_TABNAME = 'MSEG'.
*F_OUTPUT1-REF_FIELDNAME = 'MBLNR'.
F_OUTPUT1-SELTEXT_M = 'RECEIVED QTY'.
APPEND F_OUTPUT1.
CLEAR F_OUTPUT1.
F_OUTPUT1-FIELDNAME = 'LMENGE01'.
F_OUTPUT1-REF_TABNAME = 'QALS'.
F_OUTPUT1-REF_FIELDNAME = 'LMENGE01'.
F_OUTPUT1-SELTEXT_M = 'ACCEPTED QTY'.
APPEND F_OUTPUT1.
CLEAR F_OUTPUT1.
F_OUTPUT1-FIELDNAME = 'LMENGE07'.
F_OUTPUT1-REF_TABNAME = 'QALS'.
F_OUTPUT1-REF_FIELDNAME = 'LMENGE07'.
F_OUTPUT1-SELTEXT_M = 'REJECTED QTY'.
APPEND F_OUTPUT1.
CLEAR F_OUTPUT1.
F_OUTPUT1-FIELDNAME ='REMARKS'.
**F_OUTPUT1-REF_TABNAME = 'MSEG'.
**F_OUTPUT1-REF_FIELDNAME = 'MBLNR'.
F_OUTPUT1-SELTEXT_M = 'REMARKS'.
APPEND F_OUTPUT1.
CLEAR F_OUTPUT1.
ENDFORM.
FORM SORT.
IT_SORT-FIELDNAME = 'MATNR'.
IT_SORT-UP = 'X'.
APPEND IT_SORT.
CLEAR IT_SORT.
IT_SORT-FIELDNAME = 'MAKTX'.
IT_SORT-UP = 'X'.
APPEND IT_SORT.
CLEAR IT_SORT.
IT_SORT-FIELDNAME = 'LIFNR'.
IT_SORT-UP = 'X'.
APPEND IT_SORT.
CLEAR IT_SORT.
IT_SORT-FIELDNAME = 'AFNAM'.
IT_SORT-UP = 'X'.
APPEND IT_SORT.
CLEAR IT_SORT.
IT_SORT-FIELDNAME = 'BANFN'.
IT_SORT-UP = 'X'.
APPEND IT_SORT.
CLEAR IT_SORT.
IT_SORT-FIELDNAME = 'BADAT'.
IT_SORT-UP = 'X'.
APPEND IT_SORT.
CLEAR IT_SORT.
IT_SORT-FIELDNAME = 'RMENGE'.
IT_SORT-UP = 'X'.
APPEND IT_SORT.
CLEAR IT_SORT.
IT_SORT-FIELDNAME = 'EBELN'.
IT_SORT-UP = 'X'.
APPEND IT_SORT.
CLEAR IT_SORT.
IT_SORT-FIELDNAME = 'BSART'.
IT_SORT-UP = 'X'.
APPEND IT_SORT.
CLEAR IT_SORT.
IT_SORT-FIELDNAME = 'BEDAT'.
IT_SORT-UP = 'X'.
APPEND IT_SORT.
CLEAR IT_SORT.
IT_SORT-FIELDNAME = 'PMENGE'.
IT_SORT-UP = 'X'.
APPEND IT_SORT.
CLEAR IT_SORT.
IT_SORT-FIELDNAME = 'MBLNR'.
IT_SORT-UP = 'X'.
APPEND IT_SORT.
CLEAR IT_SORT.
IT_SORT-FIELDNAME = 'BUDAT'.
IT_SORT-UP = 'X'.
APPEND IT_SORT.
CLEAR IT_SORT.
IT_SORT-FIELDNAME = 'GMENGE'.
IT_SORT-UP = 'X'.
APPEND IT_SORT.
CLEAR IT_SORT.
IT_SORT-FIELDNAME = 'LMENGE01'.
IT_SORT-UP = 'X'.
APPEND IT_SORT.
CLEAR IT_SORT.
IT_SORT-FIELDNAME = 'LMENGE07'.
IT_SORT-UP = 'X'.
APPEND IT_SORT.
CLEAR IT_SORT.
ENDFORM.
FORM GRID.
CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
EXPORTING
I_INTERFACE_CHECK = ' '
I_BYPASSING_BUFFER = ' '
I_BUFFER_ACTIVE = ' '
I_CALLBACK_PROGRAM = 'REPID'
I_CALLBACK_PF_STATUS_SET = ' '
I_CALLBACK_USER_COMMAND = ' '
I_CALLBACK_TOP_OF_PAGE = ' '
I_CALLBACK_HTML_TOP_OF_PAGE = ' '
I_CALLBACK_HTML_END_OF_LIST = ' '
I_STRUCTURE_NAME =
I_BACKGROUND_ID = ' '
I_GRID_TITLE =
I_GRID_SETTINGS =
IS_LAYOUT =
IT_FIELDCAT = F_OUTPUT1[]
IT_EXCLUDING =
IT_SPECIAL_GROUPS =
IT_SORT =
IT_FILTER =
IS_SEL_HIDE =
I_DEFAULT = 'X'
I_SAVE = ' '
IS_VARIANT =
IT_EVENTS =
IT_EVENT_EXIT =
IS_PRINT =
IS_REPREP_ID =
I_SCREEN_START_COLUMN = 0
I_SCREEN_START_LINE = 0
I_SCREEN_END_COLUMN = 0
I_SCREEN_END_LINE = 0
I_HTML_HEIGHT_TOP = 0
I_HTML_HEIGHT_END = 0
IT_ALV_GRAPHICS =
IT_HYPERLINK =
IT_ADD_FIELDCAT =
IT_EXCEPT_QINFO =
IR_SALV_FULLSCREEN_ADAPTER =
IMPORTING
E_EXIT_CAUSED_BY_CALLER =
ES_EXIT_CAUSED_BY_USER =
TABLES
T_OUTTAB = OUTPUT[].
EXCEPTIONS
PROGRAM_ERROR = 1
OTHERS = 2
IF SY-SUBRC 0.
MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.
ENDFORM.

Hi,
try this now.
TABLES: EKKO, EKPO, MSEG, QALS, EBAN, MKPF, MAKT.
TYPE-POOLS: SLIS.
SELECTION-SCREEN BEGIN OF BLOCK B1 WITH FRAME.
SELECT-OPTIONS: SBADAT FOR EBAN-BADAT,
SLIFNR FOR EKKO-LIFNR,
SEBELN FOR EKKO-EBELN,
SBEDAT FOR EKKO-BEDAT,
SBSART FOR EKKO-BSART,
SMATNR FOR EKPO-MATNR,
SBUDAT FOR MKPF-BUDAT.
SELECTION-SCREEN END OF BLOCK B1.
DATA: BEGIN OF EBAN_TAB OCCURS 0,
BANFN LIKE EBAN-BANFN,
BADAT LIKE EBAN-BADAT,
MENGE LIKE EBAN-MENGE,
EBELN LIKE EBAN-EBELN,
AFNAM LIKE EBAN-AFNAM,
END OF EBAN_TAB.
DATA: BEGIN OF EKKO_TAB OCCURS 0,
BSART LIKE EKKO-BSART,
EBELN LIKE EKKO-EBELN,
LIFNR LIKE EKKO-LIFNR,
BEDAT LIKE EKKO-BEDAT,
END OF EKKO_TAB.
DATA: BEGIN OF EKPO_TAB OCCURS 0,
EBELN LIKE EKPO-EBELN,
MENGE LIKE EKPO-MENGE,
MATNR LIKE EKPO-MATNR,
BANFN LIKE EKPO-BANFN,
EBELP LIKE EKPO-EBELP,
END OF EKPO_TAB.
DATA: BEGIN OF MSEG_TAB OCCURS 0,
EBELN LIKE MSEG-EBELN,
MBLNR LIKE MSEG-MBLNR,
MATNR LIKE MSEG-MATNR,
MENGE LIKE MSEG-MENGE,
EBELP LIKE MSEG-EBELP,
END OF MSEG_TAB.
DATA: BEGIN OF MSEG_TAB1 OCCURS 0,
MBLNR LIKE MSEG-MBLNR,
EBELN LIKE MSEG-EBELN,
END OF MSEG_TAB1.
DATA: BEGIN OF QALS_TAB OCCURS 0,
LMENGE01 LIKE QALS-LMENGE01,
LMENGE07 LIKE QALS-LMENGE07,
MATNR LIKE QALS-MATNR,
MBLNR LIKE QALS-MBLNR,
EBELN LIKE QALS-EBELN,
EBELP LIKE QALS-EBELP,
END OF QALS_TAB.
DATA: BEGIN OF MKPF_TAB OCCURS 0,
MBLNR LIKE MKPF-MBLNR,
BUDAT LIKE MKPF-BUDAT,
END OF MKPF_TAB.
DATA: BEGIN OF MAKT_TAB OCCURS 0,
MATNR LIKE MAKT-MATNR,
MAKTX LIKE MAKT-MAKTX,
END OF MAKT_TAB.
DATA: BEGIN OF SELTAB OCCURS 0,
EBELN LIKE EKKO-EBELN,
BLDAT LIKE MKPF-BLDAT,
END OF SELTAB.
*DATA: BEGIN OF SELTAB1 OCCURS 0,
*BUDAT LIKE MKPF-BUDAT,
*END OF SELTAB1.
DATA: REPID LIKE SY-REPID.
DATA: F_OUTPUT1 TYPE SLIS_T_FIELDCAT_ALV WITH HEADER LINE.
DATA: IT_SORT TYPE SLIS_T_SORTINFO_ALV WITH HEADER LINE.
DATA: REMARKS(40) TYPE C.
DATA: BEGIN OF OUTPUT OCCURS 0,
BANFN LIKE EBAN-BANFN,
BADAT LIKE EBAN-BADAT,
RMENGE LIKE EBAN-MENGE,
AFNAM LIKE EBAN-AFNAM,
BSART LIKE EKKO-BSART,
EBELN LIKE EKKO-EBELN,
LIFNR LIKE EKKO-LIFNR,
BEDAT LIKE EKKO-BEDAT,
PMENGE LIKE EKPO-MENGE,
MATNR LIKE EKPO-MATNR,
EBELP LIKE EKPO-EBELP,
MBLNR LIKE MSEG-MBLNR,
GMENGE LIKE MSEG-MENGE,
LMENGE01 LIKE QALS-LMENGE01,
LMENGE07 LIKE QALS-LMENGE07,
BUDAT LIKE MKPF-BUDAT,
MAKTX LIKE MAKT-MAKTX,
REMARKS(40) TYPE C,
SL_NO LIKE SY-TABIX,
END OF OUTPUT.
START-OF-SELECTION.
IF SEBELN IS NOT INITIAL OR SLIFNR IS NOT INITIAL OR SBEDAT IS NOT INITIAL OR SBSART IS NOT INITIAL.
SELECT EBELN
BSART
LIFNR
BEDAT FROM EKKO INTO CORRESPONDING FIELDS OF TABLE EKKO_TAB WHERE EBELN IN SEBELN AND LIFNR IN SLIFNR AND BEDAT IN SBEDAT AND
BSART IN SBSART.
ELSEIF SBADAT IS NOT INITIAL.
SELECT EBELN
BANFN
BADAT
MENGE
AFNAM FROM EBAN INTO CORRESPONDING FIELDS OF TABLE EBAN_TAB where BADAT IN SBADAT.
SORT EBAN_TAB BY BADAT ASCENDING.
select ebeln lifnr bedat bsart from ekko into corresponding fields of table ekko_tab for all entries in eban_tab where ebeln = eban_tab-ebeln.
ELSEIF SMATNR IS NOT INITIAL.
SELECT EBELN
EBELP
FROM EKPO INTO CORRESPONDING FIELDS OF TABLE SELTAB
WHERE MATNR IN SMATNR.
SORT SELTAB BY EBELN ASCENDING.
DELETE ADJACENT DUPLICATES FROM SELTAB COMPARING EBELN.
SELECT EBELN
BSART
BEDAT
LIFNR FROM EKKO INTO CORRESPONDING FIELDS OF TABLE EKKO_TAB
FOR ALL ENTRIES IN SELTAB WHERE EBELN = SELTAB-EBELN.
ELSEIF SBUDAT IS NOT INITIAL.
SELECT BUDAT
MBLNR FROM MKPF INTO CORRESPONDING FIELDS OF TABLE MKPF_TAB WHERE
BUDAT IN SBUDAT.
sort mkpf_tab by budat ascending.
SELECT EBELN FROM MSEG INTO CORRESPONDING FIELDS OF TABLE SELTAB FOR ALL ENTRIES IN
MKPF_TAB WHERE MBLNR = MKPF_TAB-MBLNR.
*SELECT EBELN
*FROM QALS INTO CORRESPONDING FIELDS OF TABLE SELTAB FOR ALL ENTRIES IN SELTAB WHERE EBELN = SELTAB-EBELN.
SORT SELTAB BY EBELN ASCENDING.
DELETE ADJACENT DUPLICATES FROM SELTAB COMPARING EBELN.
SELECT EBELN
BEDAT
LIFNR
BSART FROM EKKO INTO CORRESPONDING FIELDS OF TABLE EKKO_TAB
FOR ALL ENTRIES IN SELTAB WHERE EBELN = SELTAB-EBELN.
ENDIF.
SELECT EBELN
MENGE
MATNR
EBELP FROM EKPO INTO CORRESPONDING FIELDS OF TABLE EKPO_TAB FOR ALL ENTRIES IN EKKO_TAB WHERE EBELN = EKKO_TAB-EBELN AND
MATNR IN SMATNR.
SELECT EBELN
BANFN
BADAT
MENGE
AFNAM FROM EBAN INTO CORRESPONDING FIELDS OF TABLE EBAN_TAB FOR ALL ENTRIES IN EKKO_TAB WHERE EBELN = EKKO_TAB-EBELN AND
BADAT IN SBADAT.
SELECT EBELN
MBLNR
MATNR
MENGE
EBELP
FROM MSEG INTO CORRESPONDING FIELDS OF TABLE MSEG_TAB FOR ALL ENTRIES IN EKPO_TAB WHERE EBELN = EKPO_TAB-EBELN AND
MATNR = EKPO_TAB-MATNR AND
EBELP = EKPO_TAB-EBELP AND
BWART IN ('101','105').
SELECT LMENGE01
LMENGE07
MATNR
MBLNR
EBELN FROM QALS INTO CORRESPONDING FIELDS OF TABLE QALS_TAB FOR ALL ENTRIES IN MSEG_TAB WHERE MBLNR = MSEG_TAB-MBLNR AND
MATNR = MSEG_TAB-MATNR AND
EBELN = MSEG_TAB-EBELN AND
EBELP = MSEG_TAB-EBELP.
SELECT MBLNR
BUDAT FROM MKPF INTO CORRESPONDING FIELDS OF TABLE MKPF_TAB FOR ALL ENTRIES IN MSEG_TAB WHERE MBLNR = MSEG_TAB-MBLNR AND BUDAT
IN SBUDAT.
SELECT MATNR
MAKTX FROM MAKT INTO CORRESPONDING FIELDS OF TABLE MAKT_TAB FOR ALL ENTRIES IN EKPO_TAB WHERE MATNR = EKPO_TAB-MATNR.
*LOOP AT OUTPUT.
**LOOP AT EKKO_TAB.
**read table EKKO_TAB with key ebeln = output-ebeln.
**if sy-subrc = 0.
*READ TABLE EKPO_TAB WITH KEY EBELN = EKKO_TAB-EBELN.
*IF SY-SUBRC = 0.
*READ TABLE MSEG_TAB WITH KEY EBELN = EKPO_TAB-EBELN MATNR = EKPO_TAB-MATNR.
*IF SY-SUBRC = 0.
**READ TABLE QALS_TAB WITH KEY MBLNR = MSEG_TAB-MBLNR MATNR = MSEG_TAB-MATNR EBELN = MSEG_TAB-EBELN.
**IF SY-SUBRC = 0.
OUTPUT-EBELN = EKKO_TAB-EBELN.
OUTPUT-BSART = EKKO_TAB-BSART.
OUTPUT-LIFNR = EKKO_TAB-LIFNR.
OUTPUT-BEDAT = EKKO_TAB-BEDAT.
OUTPUT-PMENGE = EKPO_TAB-MENGE.
OUTPUT-MATNR = EKPO_TAB-MATNR.
OUTPUT-MBLNR = MSEG_TAB-MBLNR.
OUTPUT-GMENGE = MSEG_TAB-MENGE.
OUTPUT-LMENGE01 = QALS_TAB-LMENGE01.
OUTPUT-LMENGE07 = QALS_TAB-LMENGE07.
modify TABLE OUTPUT transporting pmenge matnr MBLNR GMENGE.
**APPEND OUTPUT.
*ENDIF.
*ENDIF.
*ENDLOOP.
LOOP AT EKKO_TAB.
LOOP AT EKPO_TAB WHERE EBELN = EKKO_TAB-EBELN.
LOOP AT MSEG_TAB WHERE EBELN = OUTPUT-EBELN AND MATNR = output-MATNR AND EBELP = OUTPUT-EBELP.
OUTPUT-EBELN = EKKO_TAB-EBELN.
OUTPUT-BSART = EKKO_TAB-BSART.
OUTPUT-LIFNR = EKKO_TAB-LIFNR.
OUTPUT-BEDAT = EKKO_TAB-BEDAT.
OUTPUT-PMENGE = EKPO_TAB-MENGE.
OUTPUT-MATNR = EKPO_TAB-MATNR.
OUTPUT-EBELP = EKPO_TAB-EBELP.
APPEND OUTPUT.
CLEAR OUTPUT.
ENDLOOP.
ENDLOOP.
*LOOP AT OUTPUT.
*LOOP AT EKPO_TAB WHERE EBELN = OUTPUT-EBELN.
OUTPUT-PMENGE = EKPO_TAB-MENGE.
OUTPUT-MATNR = EKPO_TAB-MATNR.
OUTPUT-EBELP = EKPO_TAB-EBELP.
*MODIFY OUTPUT TRANSPORTING PMENGE MATNR EBELP.
*ENDLOOP.
*ENDLOOP.
LOOP AT OUTPUT.
LOOP AT MSEG_TAB WHERE EBELN = OUTPUT-EBELN AND MATNR = OUTPUT-MATNR AND EBELP = OUTPUT-EBELP.
*LOOP AT QALS_TAB WHERE MBLNR = MSEG_TAB-MBLNR AND MATNR = OUTPUT-MATNR AND EBELN = OUTPUT-EBELN AND EBELP = OUTPUT-EBELP.
OUTPUT-MBLNR = MSEG_TAB-MBLNR.
OUTPUT-GMENGE = MSEG_TAB-MENGE.
OUTPUT-LMENGE01 = QALS_TAB-LMENGE01.
OUTPUT-LMENGE07 = QALS_TAB-LMENGE07.
OUTPUT-EBELP = QALS_TAB-EBELP.
*APPEND OUTPUT.
MODIFY OUTPUT TRANSPORTING MBLNR GMENGE.
*CLEAR OUTPUT.
*CLEAR MSEG_TAB.
ENDLOOP.
ENDLOOP.
*ENDLOOP.
LOOP AT OUTPUT.
LOOP AT QALS_TAB WHERE MBLNR = OUTPUT-MBLNR AND MATNR = OUTPUT-MATNR AND EBELN = OUTPUT-EBELN.
OUTPUT-LMENGE01 = QALS_TAB-LMENGE01.
OUTPUT-LMENGE07 = QALS_TAB-LMENGE07.
OUTPUT-EBELP = QALS_TAB-EBELP.
MODIFY OUTPUT TRANSPORTING LMENGE01 LMENGE07.
ENDLOOP.
ENDLOOP.
LOOP AT OUTPUT.
LOOP AT EBAN_TAB WHERE EBELN = OUTPUT-EBELN.
OUTPUT-BANFN = EBAN_TAB-BANFN.
OUTPUT-BADAT = EBAN_TAB-BADAT.
OUTPUT-RMENGE = EBAN_TAB-MENGE.
OUTPUT-AFNAM = EBAN_TAB-AFNAM.
MODIFY OUTPUT TRANSPORTING BANFN BADAT RMENGE AFNAM.
ENDLOOP.
ENDLOOP.
LOOP AT OUTPUT.
LOOP AT MKPF_TAB WHERE MBLNR = OUTPUT-MBLNR.
OUTPUT-BUDAT = MKPF_TAB-BUDAT.
MODIFY OUTPUT TRANSPORTING BUDAT.
ENDLOOP.
ENDLOOP.
*LOOP AT OUTPUT.
*SELECT SINGLE MATNR FROM EKPO INTO OUTPUT-MATNR WHERE EBELN = OUTPUT-EBELN.
*MODIFY OUTPUT TRANSPORTING MATNR.
*SELECT SINGLE MBLNR FROM MSEG INTO OUTPUT-MBLNR WHERE MATNR = OUTPUT-MATNR.
*MODIFY OUTPUT TRANSPORTING MBLNR.
*ENDLOOP.
LOOP AT OUTPUT.
LOOP AT MAKT_TAB WHERE MATNR = OUTPUT-MATNR.
OUTPUT-MAKTX = MAKT_TAB-MAKTX.
MODIFY OUTPUT TRANSPORTING MAKTX.
ENDLOOP.
ENDLOOP.
*LOOP AT EKKO_TAB.
LOOP AT EKPO_TAB WHERE EBELN = EKKO_TAB-EBELN.
LOOP AT MSEG_TAB WHERE EBELN = EKPO_TAB-EBELN AND MATNR = EKPO_TAB-MATNR.
LOOP AT QALS_TAB WHERE MBLNR = MSEG_TAB-MBLNR AND MATNR = MSEG_TAB-MATNR AND EBELN = MSEG_TAB-EBELN.
LOOP AT MKPF_TAB WHERE MBLNR = MSEG_TAB-MBLNR.
OUTPUT-EBELN = EKKO_TAB-EBELN.
OUTPUT-BSART = EKKO_TAB-BSART.
OUTPUT-LIFNR = EKKO_TAB-LIFNR.
OUTPUT-BEDAT = EKKO_TAB-BEDAT.
OUTPUT-PMENGE = EKPO_TAB-MENGE.
OUTPUT-MATNR = EKPO_TAB-MATNR.
OUTPUT-EBELP = EKPO_TAB-EBELP.
OUTPUT-MBLNR = MSEG_TAB-MBLNR.
OUTPUT-GMENGE = MSEG_TAB-MENGE.
OUTPUT-BUDAT = MKPF_TAB-BUDAT.
OUTPUT-LMENGE01 = QALS_TAB-LMENGE01.
OUTPUT-LMENGE07 = QALS_TAB-LMENGE07.
MODIFY OUTPUT TRANSPORTING BSART LIFNR BEDAT PMENGE MATNR.
APPEND OUTPUT.
CLEAR OUTPUT.
CLEAR QALS_TAB.
ENDLOOP.
CLEAR MKPF_TAB.
ENDLOOP.
CLEAR MSEG_TAB.
ENDLOOP.
CLEAR EKPO_TAB.
ENDLOOP.
CLEAR EKKO_TAB.
ENDLOOP.
**SELECT MBLNR EBELN FROM MSEG INTO TABLE MSEG_TAB1 FOR ALL ENTRIES IN EKKO_TAB WHERE EBELN = EKKO_TAB-EBELN.
LOOP AT OUTPUT.
MOVE-CORRESPONDING MSEG_TAB1 TO OUTPUT.
OUTPUT-MBLNR = MSEG_TAB1-MBLNR.
MODIFY OUTPUT TRANSPORTING MBLNR.
ENDLOOP.
*LOOP AT OUTPUT.
LOOP AT MSEG_TAB WHERE EBELN = output-EBELN AND MATNR = output-MATNR AND EBELP = OUTPUT-EBELP.
**READ TABLE MSEG_TAB WITH KEY EBELN = OUTPUT-EBELN MATNR = OUTPUT-MATNR.
*IF SY-SUBRC = 0.
OUTPUT-MBLNR = MSEG_TAB-MBLNR.
OUTPUT-GMENGE = MSEG_TAB-MENGE.
*MODIFY OUTPUT TRANSPORTING MBLNR GMENGE.
*ENDIF.
*clear output.
*ENDLOOP.
*endloop.
*LOOP AT OUTPUT.
READ TABLE QALS_TAB WITH KEY MBLNR = OUTPUT-MBLNR MATNR = OUTPUT-MATNR EBELN = OUTPUT-EBELN.
*IF SY-SUBRC = 0.
*OUTPUT-LMENGE01 = QALS_TAB-LMENGE01.
*OUTPUT-LMENGE07 = QALS_TAB-LMENGE07.
*MODIFY OUTPUT TRANSPORTING LMENGE01 LMENGE07.
*ENDIF.
*ENDLOOP.
LOOP AT OUTPUT.
READ TABLE EBAN_TAB WITH KEY EBELN = OUTPUT-EBELN.
IF SY-SUBRC = 0.
OUTPUT-BANFN = EBAN_TAB-BANFN.
OUTPUT-BADAT = EBAN_TAB-BADAT.
OUTPUT-RMENGE = EBAN_TAB-MENGE.
OUTPUT-AFNAM = EBAN_TAB-AFNAM.
MODIFY OUTPUT TRANSPORTING BANFN BADAT RMENGE AFNAM.
ENDIF.
ENDLOOP.
*LOOP AT OUTPUT.
READ TABLE MKPF_TAB WITH KEY MBLNR = OUTPUT-MBLNR.
IF SY-SUBRC = 0.
OUTPUT-BUDAT = MKPF_TAB-BUDAT.
MODIFY OUTPUT TRANSPORTING BUDAT.
ENDIF.
ENDLOOP.
*LOOP AT OUTPUT.
*READ TABLE MAKT_TAB WITH KEY MATNR = OUTPUT-MATNR.
*IF SY-SUBRC = 0.
*OUTPUT-MAKTX = MAKT_TAB-MAKTX.
*MODIFY OUTPUT TRANSPORTING MAKTX.
*ENDIF.
*ENDLOOP.
PERFORM F_OUTPUT.
PERFORM SORT.
PERFORM GRID.
FORM F_OUTPUT.
F_OUTPUT1-FIELDNAME = 'MATNR'.
F_OUTPUT1-REF_TABNAME = 'EKPO'.
F_OUTPUT1-REF_FIELDNAME = 'MATNR'.
APPEND F_OUTPUT1.
CLEAR F_OUTPUT1.
F_OUTPUT1-FIELDNAME ='MAKTX'.
F_OUTPUT1-SELTEXT_M = 'DESCRIPTION.'.
APPEND F_OUTPUT1.
CLEAR F_OUTPUT1.
F_OUTPUT1-FIELDNAME = 'LIFNR'.
F_OUTPUT1-REF_TABNAME = 'EKKO'.
F_OUTPUT1-REF_FIELDNAME = 'LIFNR'.
F_OUTPUT1-SELTEXT_M = 'SUPPLIER'.
APPEND F_OUTPUT1.
CLEAR F_OUTPUT1.
F_OUTPUT1-FIELDNAME = 'AFNAM'.
F_OUTPUT1-REF_TABNAME = 'EBAN'.
F_OUTPUT1-REF_FIELDNAME = 'AFNAM'.
APPEND F_OUTPUT1.
CLEAR F_OUTPUT1.
F_OUTPUT1-FIELDNAME = 'BANFN'.
F_OUTPUT1-REF_TABNAME = 'EBAN'.
F_OUTPUT1-REF_FIELDNAME = 'BANFN'.
APPEND F_OUTPUT1.
CLEAR F_OUTPUT1.
F_OUTPUT1-FIELDNAME = 'BADAT'.
F_OUTPUT1-SELTEXT_M = 'PRS DATE'.
F_OUTPUT1-REF_TABNAME = 'EBAN'.
F_OUTPUT1-REF_FIELDNAME = 'BADAT'.
APPEND F_OUTPUT1.
CLEAR F_OUTPUT1.
F_OUTPUT1-FIELDNAME ='RMENGE'.
*F_OUTPUT1-REF_TABNAME = 'MSEG'.
*F_OUTPUT1-REF_FIELDNAME = 'MBLNR'.
F_OUTPUT1-SELTEXT_M = 'PRS QTY'.
APPEND F_OUTPUT1.
CLEAR F_OUTPUT1.
F_OUTPUT1-FIELDNAME = 'EBELN'.
F_OUTPUT1-REF_TABNAME = 'EKKO'.
F_OUTPUT1-REF_FIELDNAME = 'EBELN'.
APPEND F_OUTPUT1.
CLEAR F_OUTPUT1.
F_OUTPUT1-FIELDNAME = 'BSART'.
F_OUTPUT1-REF_TABNAME = 'EKKO'.
F_OUTPUT1-REF_FIELDNAME = 'BSART'.
APPEND F_OUTPUT1.
CLEAR F_OUTPUT1.
F_OUTPUT1-FIELDNAME = 'BEDAT'.
F_OUTPUT1-REF_TABNAME = 'EKKO'.
F_OUTPUT1-REF_FIELDNAME = 'BEDAT'.
F_OUTPUT1-SELTEXT_M = 'PO DATE'.
APPEND F_OUTPUT1.
CLEAR F_OUTPUT1.
F_OUTPUT1-FIELDNAME ='PMENGE'.
F_OUTPUT1-SELTEXT_M = 'PO QTY'.
APPEND F_OUTPUT1.
CLEAR F_OUTPUT1.
F_OUTPUT1-FIELDNAME = 'MBLNR'.
F_OUTPUT1-REF_TABNAME = 'MSEG'.
F_OUTPUT1-REF_FIELDNAME = 'MBLNR'.
F_OUTPUT1-SELTEXT_M = 'GR NUMBER'.
APPEND F_OUTPUT1.
CLEAR F_OUTPUT1.
F_OUTPUT1-FIELDNAME ='BUDAT'.
F_OUTPUT1-SELTEXT_M = 'GR DATE'.
APPEND F_OUTPUT1.
CLEAR F_OUTPUT1.
F_OUTPUT1-FIELDNAME ='GMENGE'.
*F_OUTPUT1-REF_TABNAME = 'MSEG'.
*F_OUTPUT1-REF_FIELDNAME = 'MBLNR'.
F_OUTPUT1-SELTEXT_M = 'RECEIVED QTY'.
APPEND F_OUTPUT1.
CLEAR F_OUTPUT1.
F_OUTPUT1-FIELDNAME = 'LMENGE01'.
F_OUTPUT1-REF_TABNAME = 'QALS'.
F_OUTPUT1-REF_FIELDNAME = 'LMENGE01'.
F_OUTPUT1-SELTEXT_M = 'ACCEPTED QTY'.
APPEND F_OUTPUT1.
CLEAR F_OUTPUT1.
F_OUTPUT1-FIELDNAME = 'LMENGE07'.
F_OUTPUT1-REF_TABNAME = 'QALS'.
F_OUTPUT1-REF_FIELDNAME = 'LMENGE07'.
F_OUTPUT1-SELTEXT_M = 'REJECTED QTY'.
APPEND F_OUTPUT1.
CLEAR F_OUTPUT1.
F_OUTPUT1-FIELDNAME ='REMARKS'.
**F_OUTPUT1-REF_TABNAME = 'MSEG'.
**F_OUTPUT1-REF_FIELDNAME = 'MBLNR'.
F_OUTPUT1-SELTEXT_M = 'REMARKS'.
APPEND F_OUTPUT1.
CLEAR F_OUTPUT1.
ENDFORM.
FORM SORT.
IT_SORT-FIELDNAME = 'MATNR'.
IT_SORT-UP = 'X'.
APPEND IT_SORT.
CLEAR IT_SORT.
IT_SORT-FIELDNAME = 'MAKTX'.
IT_SORT-UP = 'X'.
APPEND IT_SORT.
CLEAR IT_SORT.
IT_SORT-FIELDNAME = 'LIFNR'.
IT_SORT-UP = 'X'.
APPEND IT_SORT.
CLEAR IT_SORT.
IT_SORT-FIELDNAME = 'AFNAM'.
IT_SORT-UP = 'X'.
APPEND IT_SORT.
CLEAR IT_SORT.
IT_SORT-FIELDNAME = 'BANFN'.
IT_SORT-UP = 'X'.
APPEND IT_SORT.
CLEAR IT_SORT.
IT_SORT-FIELDNAME = 'BADAT'.
IT_SORT-UP = 'X'.
APPEND IT_SORT.
CLEAR IT_SORT.
IT_SORT-FIELDNAME = 'RMENGE'.
IT_SORT-UP = 'X'.
APPEND IT_SORT.
CLEAR IT_SORT.
IT_SORT-FIELDNAME = 'EBELN'.
IT_SORT-UP = 'X'.
APPEND IT_SORT.
CLEAR IT_SORT.
IT_SORT-FIELDNAME = 'BSART'.
IT_SORT-UP = 'X'.
APPEND IT_SORT.
CLEAR IT_SORT.
IT_SORT-FIELDNAME = 'BEDAT'.
IT_SORT-UP = 'X'.
APPEND IT_SORT.
CLEAR IT_SORT.
IT_SORT-FIELDNAME = 'PMENGE'.
IT_SORT-UP = 'X'.
APPEND IT_SORT.
CLEAR IT_SORT.
IT_SORT-FIELDNAME = 'MBLNR'.
IT_SORT-UP = 'X'.
APPEND IT_SORT.
CLEAR IT_SORT.
IT_SORT-FIELDNAME = 'BUDAT'.
IT_SORT-UP = 'X'.
APPEND IT_SORT.
CLEAR IT_SORT.
IT_SORT-FIELDNAME = 'GMENGE'.
IT_SORT-UP = 'X'.
APPEND IT_SORT.
CLEAR IT_SORT.
IT_SORT-FIELDNAME = 'LMENGE01'.
IT_SORT-UP = 'X'.
APPEND IT_SORT.
CLEAR IT_SORT.
IT_SORT-FIELDNAME = 'LMENGE07'.
IT_SORT-UP = 'X'.
APPEND IT_SORT.
CLEAR IT_SORT.
ENDFORM.
FORM GRID.
CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
EXPORTING
*I_INTERFACE_CHECK = ' '
*I_BYPASSING_BUFFER = ' '
*I_BUFFER_ACTIVE = ' '
I_CALLBACK_PROGRAM = SY-REPID
*I_CALLBACK_PF_STATUS_SET = ' '
*I_CALLBACK_USER_COMMAND = ' '
*I_CALLBACK_TOP_OF_PAGE = ' '
*I_CALLBACK_HTML_TOP_OF_PAGE = ' '
*I_CALLBACK_HTML_END_OF_LIST = ' '
*I_STRUCTURE_NAME =
*I_BACKGROUND_ID = ' '
*I_GRID_TITLE =
*I_GRID_SETTINGS =
*IS_LAYOUT =
IT_FIELDCAT = F_OUTPUT1[]
*IT_EXCLUDING =
*IT_SPECIAL_GROUPS =
*IT_SORT =
*IT_FILTER =
*IS_SEL_HIDE =
*I_DEFAULT = 'X'
*I_SAVE = ' '
*IS_VARIANT =
*IT_EVENTS =
*IT_EVENT_EXIT =
*IS_PRINT =
*IS_REPREP_ID =
*I_SCREEN_START_COLUMN = 0
*I_SCREEN_START_LINE = 0
*I_SCREEN_END_COLUMN = 0
*I_SCREEN_END_LINE = 0
*I_HTML_HEIGHT_TOP = 0
*I_HTML_HEIGHT_END = 0
*IT_ALV_GRAPHICS =
*IT_HYPERLINK =
*IT_ADD_FIELDCAT =
*IT_EXCEPT_QINFO =
*IR_SALV_FULLSCREEN_ADAPTER =
*IMPORTING
*E_EXIT_CAUSED_BY_CALLER =
*ES_EXIT_CAUSED_BY_USER =
TABLES
T_OUTTAB = OUTPUT[]
EXCEPTIONS
PROGRAM_ERROR = 1
OTHERS = 2
IF SY-SUBRC <> 0.
MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.
ENDFORM.
rgds,
bharat.

Similar Messages

  • How do i double buffer this code (URGENT)

    i make an image move when user presses the arrow buttons but the moving image flickers how do i prevent that
    the code:
    import java.awt.*;
    import java.io.*;
    public class KenshinGame extends Frame{
    MoveImages mi = new MoveImages();
    int x = 355;
    int y = 10;
    int spaceCount = 0;
    public KenshinGame () {
         add ("Center", mi);
    public boolean handleEvent (Event evt){
         if (evt.id == Event.WINDOW_DESTROY){
         System.exit(0);
         return super.handleEvent(evt);
    public boolean keyDown(Event evt, int key){
    if (key == Event.LEFT) {
         //System.out.println (x);
         if (y > 125 && y <170 && x > 65){
         x = x - 10;
         mi.move(x, y);
         else if (y < 650&& y > 620 && x > 110){
         x = x - 10;
         mi.move(x, y);
    else if (key == Event.RIGHT) {
         //System.out.println (x);
         if (y > 125 && y <170 && x < 675){
         x = x + 10;
         mi.move(x, y);
         else if (y < 650&& y > 620 && x < 640){
         x = x + 10;
         mi.move(x, y);
    else if (key == Event.UP) {
         //System.out.println (y);
         if (y > 10 && x == 355){
         y = y - 10;
         mi.move(x, y);
         else if (y > 120 && x > 320 && x < 390){
         y = y - 10;
         mi.move(x, y);
         else if (x < 130 && x > 110 && y > 120 && y < 170){
         y = y - 10;
         mi.move(x, y);
         else if (x > 475 && x < 515 && y > 110 && y < 170){
         y = y - 10;
         mi.move(x, y);
         else if (x > 625 && x < 655 && y > 110 && y < 170){
         y = y - 10;
         mi.move(x, y);
         else if (x < 130 && x > 110 && y > 605 && y < 640){
         y = y - 10;
         mi.move(x, y);
    else if (key == Event.DOWN) {
         if (x > 320 && x < 390 && y < 670){
         y = y + 10;
         mi.move(x, y);
         else if (x < 130 && x > 110 && y > 100 && y < 170){
         y = y + 10;
         mi.move(x, y);
         else if (x > 475 && x < 515 && y > 90 && y < 170){
         y = y + 10;
         mi.move(x, y);
         else if (x > 625 && x < 655 && y > 90 && y < 170){
         y = y + 10;
         mi.move(x, y);
         else if (x < 130 && x > 110 && y > 595 && y < 640){
         y = y + 10;
         mi.move(x, y);
         else if (y > 660){
         x = 615;
         y = 390;
         mi.move (x, y);
    return true;
    public static void main(String args[]) {
         Frame f = new KenshinGame();
         f.resize (760, 740);
         f.show();
         f.setTitle ("Gmae: Level 1");
    class MoveImages extends Canvas {
    int x = 355;
    int y = 10;
    int w = 10;
    int h = 20;
    String mapLoc = new String ("c:\\My Documents\\My Pictures\\liotto.gif");
    String maincLoc = new String ("c:\\My Documents\\My Pictures\\rstand.gif");
    Image map = Toolkit.getDefaultToolkit().getImage(mapLoc);
    Image mainc = Toolkit.getDefaultToolkit().getImage (maincLoc);
    public void paint (Graphics g){
         MediaTracker tracker = new MediaTracker(this);
         tracker.addImage(map, 0);
         g.drawImage (map, 0, 0, this);
         try {     
         tracker.waitForAll();
         catch (InterruptedException e) {
         g.drawImage (mainc, x, y, this);
    public void move(int xCo, int yCo){
         x = xCo;
         y = yCo;
         repaint();
    public void update (Graphics g){
         paint (g);
    }

    i havent changed the main class but i did change the canvas because i have figured out how to use double buffering any suggestions how i can fix this instead:
    class MoveImages extends Canvas {
    int x = 355;
    int y = 10;
    String di = "stand";
    String mapLoc = new String ("c:\\My Documents\\My Pictures\\liotto.gif");
    Image map = Toolkit.getDefaultToolkit().getImage(mapLoc);
    Image stand = Toolkit.getDefaultToolkit().getImage("c:\\My Documents\\My Pictures\\rstand.gif");
    Image walka = Toolkit.getDefaultToolkit().getImage("c:\\My Documents\\My Pictures\\rwalka.gif");
    Image walkt = Toolkit.getDefaultToolkit().getImage("c:\\My Documents\\My Pictures\\rwalkt.gif");
    Image walkl = Toolkit.getDefaultToolkit().getImage("c:\\My Documents\\My Pictures\\rwalkl.gif");
    Image walkr = Toolkit.getDefaultToolkit().getImage("c:\\My Documents\\My Pictures\\rwalkr.gif");
    int w = 760;
    int h = 740;
    Image offscreen ;
    Graphics og;
    public MoveImages (){
    public void paint (Graphics g){
         g.drawImage (map, 0, 0, this);
         if (di.equals ("stand")){
         g.drawImage (walka, x, y, this);
         g.drawImage (walkt, x, y, this);
         g.drawImage (walkl, x, y, this);
         g.drawImage (walkr, x, y, this);
         g.drawImage (stand, x, y, this);
         else if (di.equals ("walka")){
         g.drawImage (walkt, x, y, this);
         g.drawImage (walkl, x, y, this);
         g.drawImage (walkr, x, y, this);
         g.drawImage (stand, x, y, this);
         g.drawImage (walka, x, y, this);
         else if (di.equals ("walkt")){
         g.drawImage (walkl, x, y, this);
         g.drawImage (walkr, x, y, this);
         g.drawImage (stand, x, y, this);
         g.drawImage (walka, x, y, this);
         g.drawImage (walkt, x, y, this);
         else if (di.equals ("walkl")){
         g.drawImage (walkt, x, y, this);
         g.drawImage (walkr, x, y, this);
         g.drawImage (stand, x, y, this);
         g.drawImage (walka, x, y, this);
         g.drawImage (walkl, x, y, this);
         else if (di.equals ("walkr")){
         g.drawImage (walkt, x, y, this);
         g.drawImage (walkl, x, y, this);
         g.drawImage (stand, x, y, this);
         g.drawImage (walka, x, y, this);
         g.drawImage (walkr, x, y, this);
    public void move(int xCo, int yCo, String direction){
         di = direction;
         x = xCo;
         y = yCo;
         repaint();
    public void addNotify(){
         super.addNotify();
    public void update (Graphics g){
         if (offscreen == null){
         offscreen = createImage (w, h);
    og = offscreen.getGraphics ();
         paint (og);
         g.drawImage (offscreen, 0, 0, this);
    }

  • PROBLE IN ADDING A FIELD IN STRUCTURE...PLZ CORRECT THIS CODE

    HI, PLZ CORRECT IT.
    TYPES : BEGIN OF FS_OUTPUT .
          TEXT(20) TYPE C.
            INCLUDE STRUCTURE HRPDV_EXPIRED_Q.
    TYPES       TEXT(20) TYPE C.
    TYPES    END OF FS_OUTPUT.
    LOOP AT P_GT_FIELDCAT INTO WA_FIELDCAT.
        l_tabix = sy-tabix.
        CASE WA_FIELDCAT-FIELDNAME.
          when 'OTYPE'.
            WA_FIELDCAT-DDICTXT = 'L'.
          when 'SOBID'.
            WA_FIELDCAT-DDICTXT = 'L'.
          WHEN 'STEXT'.
            WA_FIELDCAT-DDICTXT = 'L'.
          when 'PTYPE'.
            WA_FIELDCAT-DDICTXT = 'L'.
          when 'POBID'.
            WA_FIELDCAT-DDICTXT = 'L'.
          when 'PSHORT'.
            WA_FIELDCAT-DDICTXT = 'L'.
          WHEN 'PTEXT'.
            WA_FIELDCAT-DDICTXT = 'L'.
          WHEN 'QUALID'.
            WA_FIELDCAT-DDICTXT = 'L'.
          WHEN 'QUALSTXT'.
            WA_FIELDCAT-DDICTXT = 'L'.
          WHEN 'EXPBEGDA'.
            WA_FIELDCAT-DDICTXT = 'L'.
          WHEN 'EXPENDDA'.
            WA_FIELDCAT-DDICTXT = 'L'.
          WHEN 'ICON_S_EVENTS'.
            IF P_H_EVENTS IS INITIAL.
              WA_FIELDCAT-NO_OUT = 'X'.
            else.
              WA_FIELDCAT-DDICTXT = 'X'.
            endif.
        ENDCASE.
        MODIFY P_GT_FIELDCAT FROM WA_FIELDCAT INDEX l_tabix.
      ENDLOOP.
      CLEAR WA_FIELDCAT.
      WA_FIELDCAT-FIELDNAME = ' TEXT '.
      WA_FIELDCAT-SELTEXT_1 = hTEXT.
      wa_fieldcat-tabname   = ALV_OUTPUT.
      APPEND WA_FIELDCAT TO P_GT_FIELDCAT.
    ENDFORM.

    As you have added te fields below, add the other required fields:
    when 'OTYPE'.
    WA_FIELDCAT-DDICTXT = 'L'.
    when 'SOBID'.
    WA_FIELDCAT-DDICTXT = 'L'.
    WHEN 'STEXT'.
    WA_FIELDCAT-DDICTXT = 'L'.
    when 'PTYPE'.
    WA_FIELDCAT-DDICTXT = 'L'.
    when 'POBID'.
    WA_FIELDCAT-DDICTXT = 'L'.
    when 'PSHORT'.
    WA_FIELDCAT-DDICTXT = 'L'.
    WHEN 'PTEXT'.
    WA_FIELDCAT-DDICTXT = 'L'.
    WHEN 'QUALID'.
    WA_FIELDCAT-DDICTXT = 'L'.
    WHEN 'QUALSTXT'.
    WA_FIELDCAT-DDICTXT = 'L'.
    WHEN 'EXPBEGDA'.
    WA_FIELDCAT-DDICTXT = 'L'.
    WHEN 'EXPENDDA'.
    WA_FIELDCAT-DDICTXT = 'L'.

  • Plz see this code

    rs=stm.executeQuery("select news.news_id,to_char(news_date,'dd-MON-yy HH:MM:SS AM'),heading,desc1,desc2 from news where sysdate<=news_date + interval '2' day order by news_date desc");
              while(rs.next()){
              newsDate=rs.getString("news_date");
              out.println("News ID"+rs.getString("news_id")+"<div align=right>"+newsDate+"</div><br>");
              news_id=rs.getInt("news_id");
              heading=rs.getString("heading");
              out.println("<tr><td><a href=http://localhost:5050/examples/servlet/displayNews?newsID="+news_id+"><font color=olive face='times new roman' size=3><b>"+heading+"</a></font></td></tr>");               
              out.println("<tr><td>"+rs.getString("desc1")+"<a href=http://localhost:5050/examples/servlet/displayNews?newsID="+news_id+">   Details.....</a><br><br></td></tr>");
              }news_date exists in DB but it gives
    Error:
    Invalid column name

    try to use like this to get data :
    rs. getInt(1) > use column index number
    maybe helps you.

  • Plzz help me with the output of this code....

    hi all..
    plz check this code and tell me how to select one or more options from this Jlist and write the selected item into a text file....This code does that but the text file shows only one item (i tried using arry but din work) AND text file displays the item which is selected last time the code is interpreted..
    import java.awt.*;
    import java.io.*;
    import java.awt.event.*;
    import javax.swing.*;
    import javax.swing.event.*;
    public class mld extends JFrame implements ListSelectionListener, ActionListener
    {private JFrame    myframe = new JFrame("Select File");
                       private DefaultListModel listModel = new DefaultListModel();
         private JList list= new JList(listModel);
         private String selString = "select file name";
         private JButton selButton;
            public mld(){
         super("mld");
         addWindowListener(new WindowAdapter()
       {     public void windowClosing(WindowEvent ev) {dispose();     
                   System.exit(0);
              listModel.addElement("prog1");
    listModel.addElement("prog2");
         listModel.addElement("prog3");
         listModel.addElement("prog4");
         listModel.addElement("prog5");
         listModel.addElement("prog6");
         listModel.addElement("prog7");
         listModel.addElement("prog8");
         listModel.addElement("prog9");
         listModel.addElement("prog10");
         listModel.addElement("prog11");     
    listModel.addElement("prog12");
         list.setSelectionMode(ListSelectionModel.MULTIPLE_INTERVAL_SELECTION);
    list.addListSelectionListener(this);
         JScrollPane listScrollPane = new JScrollPane(list);
         JButton selButton = new JButton(selString);
         selButton.setActionCommand(selString);
         selButton.addActionListener(this);
    //Create a panel that uses FlowLayout (the default).
         JPanel buttonPane = new JPanel();
         buttonPane.add(selButton);
         Container contentPane = getContentPane();
         contentPane.add(listScrollPane, BorderLayout.CENTER);
         contentPane.add(buttonPane, BorderLayout.SOUTH);
         pack();
         show();}
    public void valueChanged(ListSelectionEvent e) {}
    public void actionPerformed(ActionEvent e){
         String tmp = new String(list.getSelectedValue().toString());
    try{
    FileOutputStream fileOut = new FileOutputStream("temp.txt");
    fileOut.write(tmp.getBytes());
    fileOut.close();}
    catch (Exception e1)
    {                e1.printStackTrace();  }
    //*main method//
    public static void main(String s[]) {
         JFrame frame = new mld();
    try {
    Process p = Runtime.getRuntime().exec("notepad temp.txt ");
    p.waitFor();
    Process p1 = Runtime.getRuntime().exec("c:/Program Files/Microsoft Office/Office/outlook.EXE /c ipm.note /m [email protected] /a c:/temp.txt");
    catch(Exception e)
    {                e.printStackTrace();  }
    Thanx in advance
    bharthi

    replace
    FileOutputStream fs = new FileOutputStream("filename");
    with
    FileOutputStream fs = new FileOutputStream("filename",true);

  • Plz corrct this alv code

    hi all,
    plz correct this revert back whan i executing every time it will show internal table itab is no long enough.
    plz rectify the errirs and send back it.
    ABLES:     zfm_kfz.
    type-pools: slis.                                 "ALV Declarations
    *Data Declaration
    *TYPES: BEGIN OF t_ekko,
    ebeln TYPE ekpo-ebeln,
    ebelp TYPE ekpo-ebelp,
    statu TYPE ekpo-statu,
    aedat TYPE ekpo-aedat,
    matnr TYPE ekpo-matnr,
    menge TYPE ekpo-menge,
    meins TYPE ekpo-meins,
    netpr TYPE ekpo-netpr,
    peinh TYPE ekpo-peinh,
    END OF t_ekko.
    *DATA: it_ekko TYPE STANDARD TABLE OF t_ekko INITIAL SIZE 0,
         wa_ekko TYPE t_ekko.
    DATA : BEGIN OF ITAB OCCURS 0,
           KFZNR LIKE ZFM_KFZ-KFZNR,
           GERAET LIKE ZFM_KFZ-KFZNR,
           KOSTENTRAEGER(10) TYPE C,
           BEZEICHNUNG(10) TYPE C,
           TUVDATUMMMYYYY(6) TYPE C,
           ASUDATUMMMYYYY(6) TYPE C,
           KMSTAND(6) TYPE C,
           HISTO(1) TYPE C,
           REIFEN(1) TYPE C,
           USERNAME(12) TYPE C,
           END OF ITAB.
    DATA: BEGIN OF ITAB1 OCCURS 0.
            INCLUDE STRUCTURE ITAB.
    DATA: END OF ITAB1.
    DATA: BEGIN OF ITAB_FIELDCAT OCCURS 0.
            INCLUDE STRUCTURE ITAB.
    DATA: END OF ITAB_FIELDCAT.
    DATA: T_KFZ LIKE TABLE OF ZFM_KFZ.
    *ALV data declarations
    data: fieldcatalog type slis_t_fieldcat_alv with header line,
          gd_tab_group type slis_t_sp_group_alv,
          gd_layout    type slis_layout_alv,
          gd_repid     like sy-repid,
          gt_events     type slis_t_event,
          gd_prntparams type slis_print_alv.
    *Start-of-selection.
    START-OF-SELECTION.
    perform data_retrieval.
    perform build_fieldcatalog.
    perform build_layout.
    perform build_events.
    perform build_print_params.
    perform display_alv_report.
    *&      Form  BUILD_FIELDCATALOG
          Build Fieldcatalog for ALV Report
    form build_fieldcatalog.
    There are a number of ways to create a fieldcat.
    For the purpose of this example i will build the fieldcatalog manualy
    by populating the internal table fields individually and then
    appending the rows. This method can be the most time consuming but can
    also allow you  more control of the final product.
    Beware though, you need to ensure that all fields required are
    populated. When using some of functionality available via ALV, such as
    total. You may need to provide more information than if you were
    simply displaying the result
                  I.e. Field type may be required in-order for
                       the 'TOTAL' function to work.
      fieldcatalog-fieldname   = 'kfznr'.
      fieldcatalog-seltext_m   = 'kfznr'.
      fieldcatalog-col_pos     = 0.
      fieldcatalog-outputlen   = 11.
      fieldcatalog-emphasize   = 'X'.
      fieldcatalog-key         = 'X'.
    fieldcatalog-do_sum      = 'X'.
    fieldcatalog-no_zero     = 'X'.
      append fieldcatalog to fieldcatalog.
      clear  fieldcatalog.
      fieldcatalog-fieldname   = 'geraet'.
      fieldcatalog-seltext_m   = 'geraet'.
      fieldcatalog-col_pos     = 1.
      append fieldcatalog to fieldcatalog.
      clear  fieldcatalog.
      fieldcatalog-fieldname   = 'kostentraeger'.
      fieldcatalog-seltext_m   = 'kostentraeger'.
      fieldcatalog-col_pos     = 2.
      append fieldcatalog to fieldcatalog.
      clear  fieldcatalog.
      fieldcatalog-fieldname   = 'bezeichnung'.
      fieldcatalog-seltext_m   = 'bezeichnung'.
      fieldcatalog-col_pos     = 3.
      append fieldcatalog to fieldcatalog.
      clear  fieldcatalog.
      fieldcatalog-fieldname   = 'tuvdatummmyyyy'.
      fieldcatalog-seltext_m   = 'tuvdatummmyyyy'.
      fieldcatalog-col_pos     = 4.
      append fieldcatalog to fieldcatalog.
      clear  fieldcatalog.
      fieldcatalog-fieldname   = 'asudatummmyyyy'.
      fieldcatalog-seltext_m   = 'asudatummmyyyy'.
      fieldcatalog-col_pos     = 5.
      append fieldcatalog to fieldcatalog.
      clear  fieldcatalog.
      fieldcatalog-fieldname   = 'kmstand'.
      fieldcatalog-seltext_m   = 'kmstand'.
      fieldcatalog-col_pos     = 6.
      append fieldcatalog to fieldcatalog.
      clear  fieldcatalog.
      fieldcatalog-fieldname   = 'histo'.
      fieldcatalog-seltext_m   = 'histo'.
      fieldcatalog-col_pos     = 7.
      fieldcatalog-outputlen   = 1.
    fieldcatalog-datatype     = 'CURR'.
      append fieldcatalog to fieldcatalog.
      clear  fieldcatalog.
      fieldcatalog-fieldname   = 'reifen'.
      fieldcatalog-seltext_m   = 'reifen'.
      fieldcatalog-col_pos     = 8.
      append fieldcatalog to fieldcatalog.
      clear  fieldcatalog.
      fieldcatalog-fieldname   = 'username'.
      fieldcatalog-seltext_m   = 'username'.
      fieldcatalog-col_pos     = 9.
      append fieldcatalog to fieldcatalog.
      clear  fieldcatalog.
    endform.                    " BUILD_FIELDCATALOG
    *&      Form  BUILD_LAYOUT
          Build layout for ALV grid report
    form build_layout.
      gd_layout-no_input          = 'X'.
      gd_layout-colwidth_optimize = 'X'.
      gd_layout-totals_text       = 'Totals'(201).
    gd_layout-totals_only        = 'X'.
    gd_layout-f2code            = 'DISP'.  "Sets fcode for when double
                                            "click(press f2)
    gd_layout-zebra             = 'X'.
    gd_layout-group_change_edit = 'X'.
    gd_layout-header_text       = 'helllllo'.
    endform.                    " BUILD_LAYOUT
    *&      Form  DISPLAY_ALV_REPORT
          Display report using ALV grid
    form display_alv_report.
      gd_repid = sy-repid.
      call function 'REUSE_ALV_GRID_DISPLAY'
           exporting
                i_callback_program      = gd_repid
                i_callback_top_of_page   = 'TOP-OF-PAGE'  "see FORM
                i_callback_user_command = 'USER_COMMAND'
               i_grid_title           = outtext
                is_layout               = gd_layout
                it_fieldcat             = fieldcatalog[]
               it_special_groups       = gd_tabgroup
                it_events               = gt_events
                is_print                = gd_prntparams
                i_save                  = 'X'
               is_variant              = z_template
           tables
                t_outtab                = itab1
           exceptions
                program_error           = 1
                others                  = 2.
      if sy-subrc <> 0.
    MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
            WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
      endif.
    endform.                    " DISPLAY_ALV_REPORT
    *&      Form  DATA_RETRIEVAL
          Retrieve data form EKPO table and populate itab it_ekko
    form data_retrieval.
    select * from zfm_kfz
      into table itab where kfznr = itab-kfznr.
    endform.                    " DATA_RETRIEVAL
    Form  TOP-OF-PAGE                                                 *
    ALV Report Header                                                 *
    Form top-of-page.
    *ALV Header declarations
    data: t_header type slis_t_listheader,
          wa_header type slis_listheader,
          t_line like wa_header-info,
          ld_lines type i,
          ld_linesc(10) type c.
    Title
      wa_header-typ  = 'H'.
      wa_header-info = 'EKKO Table Report'.
      append wa_header to t_header.
      clear wa_header.
    Date
      wa_header-typ  = 'S'.
      wa_header-key = 'Date: '.
      CONCATENATE  sy-datum+6(2) '.'
                   sy-datum+4(2) '.'
                   sy-datum(4) INTO wa_header-info.   "todays date
      append wa_header to t_header.
      clear: wa_header.
    Total No. of Records Selected
      describe table itab lines ld_lines.                 
      ld_linesc = ld_lines.
      concatenate 'Total No. of Records Selected: ' ld_linesc
                        into t_line separated by space.
      wa_header-typ  = 'A'.
      wa_header-info = t_line.
      append wa_header to t_header.
      clear: wa_header, t_line.
      call function 'REUSE_ALV_COMMENTARY_WRITE'
           exporting
                it_list_commentary = t_header.
               i_logo             = 'Z_LOGO'.
    endform.
          FORM USER_COMMAND                                          *
          --> R_UCOMM                                                *
          --> RS_SELFIELD                                            *
    FORM user_command USING r_ucomm LIKE sy-ucomm
                      rs_selfield TYPE slis_selfield.
    Check function code
      CASE r_ucomm.
        WHEN '&IC1'.
      Check field clicked on within ALVgrid report
        IF rs_selfield-fieldname = 'EBELN'.
        Read data table, using index of row user clicked on
          READ TABLE it_ekko INTO wa_ekko INDEX rs_selfield-tabindex.
        Set parameter ID for transaction screen field
          SET PARAMETER ID 'BES' FIELD wa_ekko-ebeln.
        Sxecute transaction ME23N, and skip initial data entry screen
          CALL TRANSACTION 'ME23N' AND SKIP FIRST SCREEN.
        ENDIF.
      ENDCASE.
    ENDFORM.
    *&      Form  BUILD_EVENTS
          Build events table
    form build_events.
      data: ls_event type slis_alv_event.
      call function 'REUSE_ALV_EVENTS_GET'
           exporting
                i_list_type = 0
           importing
                et_events   = gt_events[].
      read table gt_events with key name =  slis_ev_end_of_page
                               into ls_event.
      if sy-subrc = 0.
        move 'END_OF_PAGE' to ls_event-form.
        append ls_event to gt_events.
      endif.
        read table gt_events with key name =  slis_ev_end_of_list
                               into ls_event.
      if sy-subrc = 0.
        move 'END_OF_LIST' to ls_event-form.
        append ls_event to gt_events.
      endif.
    endform.                    " BUILD_EVENTS
    *&      Form  BUILD_PRINT_PARAMS
          Setup print parameters
    form build_print_params.
      gd_prntparams-reserve_lines = '3'.   "Lines reserved for footer
      gd_prntparams-no_coverpage = 'X'.
    endform.                    " BUILD_PRINT_PARAMS
    *&      Form  END_OF_PAGE
    form END_OF_PAGE.
      data: listwidth type i,
            ld_pagepos(10) type c,
            ld_page(10)    type c.
      write: sy-uline(50).
      skip.
      write:/40 'Page:', sy-pagno .
    endform.
    *&      Form  END_OF_LIST
    form END_OF_LIST.
      data: listwidth type i,
            ld_pagepos(10) type c,
            ld_page(10)    type c.
      skip.
      write:/40 'Page:', sy-pagno .
    endform.

    Hi,
    Change this..
    DATA : BEGIN OF ITAB ,
    KFZNR LIKE ZFM_KFZ-KFZNR,
    GERAET LIKE ZFM_KFZ-KFZNR,
    KOSTENTRAEGER(10) TYPE C,
    BEZEICHNUNG(10) TYPE C,
    TUVDATUMMMYYYY(6) TYPE C,
    ASUDATUMMMYYYY(6) TYPE C,
    KMSTAND(6) TYPE C,
    HISTO(1) TYPE C,
    REIFEN(1) TYPE C,
    USERNAME(12) TYPE C,
    END OF ITAB.
    DATA: BEGIN OF ITAB1 OCCURS 0.
    INCLUDE STRUCTURE ITAB.
    DATA: END OF ITAB1.
    DATA: ITAB_FIELDCAT type SLIS_T_FIELDCAT_ALV .
    and also use CAPS for field names.
    fieldcatalog-fieldname = '<b>KFZNR</b>'.
    fieldcatalog-seltext_m = 'kfznr'.
    fieldcatalog-col_pos = 0.
    fieldcatalog-outputlen = 11.
    fieldcatalog-emphasize = 'X'.
    fieldcatalog-key = 'X'.
    fieldcatalog-do_sum = 'X'.
    fieldcatalog-no_zero = 'X'.
    append fieldcatalog to fieldcatalog.
    clear fieldcatalog.
    Regards
    vijay

  • Urgent :ORACLE.FDK.UnexpectedError --how to rectify this error

    Hello,
    I am getting the following error when I am running a standalone java program, where I am trying to list the folders in a container.
    ===========================
    log created on console
    ===========================
    FdkException:
    Error Code: ORACLE.FDK.UnexpectedError
    Detailed Error Code: ORACLE.FDK.ServerError
    Trace Id: 1-1194351196408
    info (NamedValue[]): null
    ======================
    Log created in <ocdbhome>\content\log\Content\<cdbinstance_node.log>
    ======================
    no log created when this error occurs.
    I am unable to understand, what is happening with the server.
    Could you shed somelight on this issue.
    thanks
    Siva.......

    Thanks to those who have viewed this thread.
    I have rectified this problem. The problem was occuring because I was creating more than one session in my code and infact while calling logout method also I was creating a new session. So the accumulation of session has created this error.
    I think, server should show proper error message instead of saying "UnexpectedError"
    Cheers
    ~Siva

  • I keep getting an error message that I have an invalid security code when trying to make purchased in itunes.  But my security code and billing info are valid.  How do I rectify this problem?

    I keep getting an error message that I have an invalid security code when trying to make purchased in itunes.  But my security code and billing info are valid.  How do I rectify this problem?

    Did you ever get an answer to this? Im having same issue now! So frustrating!

  • I create an id. on review option when i enter visa card and security code, it always gives an error msg "Invalid Secruity code". but i use this code for money withdraw from ATM and for shopping also. plz tell the solution ????

    i create an id. on review option when i enter visa card and security code, it always gives an error msg "Invalid Secruity code". but i use this code for money withdraw from ATM and for shopping also. plz tell the solution ????

    The code they are asking for is the last three digits of the number on the back of the card (you don't use this when using an ATM or presenting the card in shops).

  • HT3678 everytime I open qt pro i have to enter the registration code. This is really annoying. Does anyone know how to rectify this problem?

    everytime I open qt pro i have to enter the registration code. This is really annoying. Does anyone know how to rectify this problem?

    This procedure will check for files in your home folder that are locked or have a wrong owner. It makes no changes and will not, in itself, solve your problem.
    Launch the Terminal application in any of the following ways:
    ☞ Enter the first few letters of its name into a Spotlight search. Select it in the results (it should be at the top.)
    ☞ In the Finder, select Go ▹ Utilities from the menu bar, or press the key combination shift-command-U. The application is in the folder that opens.
    ☞ If you’re running Mac OS X 10.7 or later, open LaunchPad. Click Utilities, then Terminal in the page that opens.
    Drag or copy — do not type — the following line into the Terminal window, then press return:
    find . -flags +uchg,uappnd -o ! -user $UID
    The command may take a noticeable amount of time to run. Wait for a new line ending in a dollar sign (“$”) to appear.
    Post any lines of output that appear below what you entered — the text, please, not a screenshot.
    If any personal information appears in the output, edit before posting, but don’t remove the context.

  • Hi guys i have a problem related updating icloud desktop.while updating it shows (error code :A12E5).I have macbook air mid 2011..plz sort this out

    hi guys i have a problem related updating icloud desktop.while updating it shows (error code :A12E5).I have macbook air mid 2011..plz sort this out

    olliemilne wrote:
    - I've tried holding a bunch of different keys when starting up (cmd+R etc.) but again, nothing.
    You could try booting the MBP using the OPTION+COMMAND+R keys and see if it will connect to the Apple servers.  This would allow you to install the original OSX .  I have my doubts though.
    - I've tried something crazy suggested in another thread; leaving the Macbook partially opening and shaking it, which supposedly does something to the "sudden motion sensor".
    The Sudden Motion Sensor is applicable for conventional Hard Drives, not the SSD that is in a MBA.  Doing that will serve no useful purpose.
    You have exhausted all reasonable options and will just have to have the MBA evaluated at the genius bar.
    Ciao.

  • I want to install WhatsApp on my iphone 16gb, but I need a code of 3 figures! Where can I get this code? i tried looking at my messages folder, but i havent got any 3 digit code. plz help

    I want to install WhatsApp on my iphone 16gb, but I need a code of 3 figures! Where can I get this code? i tried looking at my messages folder, but i havent got any 3 digit code. plz help

    post in the iPhone forum : https://discussions.apple.com/community/iphone/using_iphone

  • Problem in Filling Pool, In ConnectionPooling Code:Urgent Plz

    Hi All,
    I m using this program for Connection Pooling.
    import java.sql.*;
    import javax.sql.*;
    import java.util.*;
    import java.io.*;
    import javax.naming.*;
    public class ConnectionPool implements Runnable{
      private DataSource datasource;
      private int maxConnections;
      private int initialConnections;
      private boolean waitIfBusy;
      private boolean connectionPending = false;
      private Vector<java.sql.Connection> availableConnections;
      private Vector<java.sql.Connection> busyConnections;
      public ConnectionPool()throws SQLException {
        try{
             Context ic = new InitialContext();
              this.datasource = (DataSource)ic.lookup("java:msgds");                    
              System.out.println("DataSource Found msgds");
         }catch(Exception e){
              System.out.println("Error in ConnectionPool COnstructor While Locatin ashishds");
        this.waitIfBusy = true;   
        this.waitIfBusy = waitIfBusy;
        this.maxConnections = 5;
        this.initialConnections = 2;
        availableConnections = new Vector<java.sql.Connection>(2);
        busyConnections = new Vector<java.sql.Connection>();
        for(int i=0; i<initialConnections; i++) {
          availableConnections.addElement(makeNewConnection());
      public synchronized Connection getConnection()
          throws SQLException {
        if (!availableConnections.isEmpty()) {
          Connection existingConnection =
            (Connection)availableConnections.lastElement();
          int lastIndex = availableConnections.size() - 1;
          availableConnections.removeElementAt(lastIndex);
          // If connection on available list is closed (e.g.,
          // it timed out), then remove it from available list
          // and repeat the process of obtaining a connection.
          // Also wake up threads that were waiting for a
          // connection because maxConnection limit was reached.
          if (existingConnection.isClosed()) {
            notifyAll(); // Freed up a spot for anybody waiting
            return(getConnection());
          } else {
            busyConnections.addElement(existingConnection);
            return(existingConnection);
        } else {
          // Three possible cases:
          // 1) You haven't reached maxConnections limit. So
          //    establish one in the background if there isn't
          //    already one pending, then wait for
          //    the next available connection (whether or not
          //    it was the newly established one).
          // 2) You reached maxConnections limit and waitIfBusy
          //    flag is false. Throw SQLException in such a case.
          // 3) You reached maxConnections limit and waitIfBusy
          //    flag is true. Then do the same thing as in second
          //    part of step 1: wait for next available connection.
          if ((totalConnections() < maxConnections) &&
              !connectionPending) {
            makeBackgroundConnection();
          } else if (!waitIfBusy) {
            throw new SQLException("Connection limit reached");
          // Wait for either a new connection to be established
          // (if you called makeBackgroundConnection) or for
          // an existing connection to be freed up.
          try {
            wait();
          } catch(InterruptedException ie) {}
          // Someone freed up a connection, so try again.
          return(getConnection());
      // You can't just make a new connection in the foreground
      // when none are available, since this can take several
      // seconds with a slow network connection. Instead,
      // start a thread that establishes a new connection,
      // then wait. You get woken up either when the new connection
      // is established or if someone finishes with an existing
      // connection.
      private void makeBackgroundConnection() {
        connectionPending = true;
        try {
          Thread connectThread = new Thread(this);
          connectThread.start();
        } catch(OutOfMemoryError oome) {
          // Give up on new connection
      public void run() {
        try {
          Connection connection = makeNewConnection();
          synchronized(this) {
            availableConnections.addElement(connection);
            connectionPending = false;
            notifyAll();
        } catch(Exception e) { // SQLException or OutOfMemory
          // Give up on new connection and wait for existing one
          // to free up.
      // This explicitly makes a new connection. Called in
      // the foreground when initializing the ConnectionPool,
      // and called in the background when running.
      private Connection makeNewConnection()
          throws SQLException {
        try {    
          // Establish network connection to database
          Connection connection = datasource.getConnection();
          return(connection);
        } catch(Exception cnfe) {
          // Simplify try/catch blocks of people using this by
          // throwing only one exception type.
          throw new SQLException("Error in makeNewConnection() : " +cnfe);
      public synchronized void free(Connection connection) {
        busyConnections.removeElement(connection);
        availableConnections.addElement(connection);
        // Wake up threads that are waiting for a connection
        notifyAll();
      public synchronized int totalConnections() {
        return(availableConnections.size() +
               busyConnections.size());
      /** Close all the connections. Use with caution:
       *  be sure no connections are in use before
       *  calling. Note that you are not <I>required</I> to
       *  call this when done with a ConnectionPool, since
       *  connections are guaranteed to be closed when
       *  garbage collected. But this method gives more control
       *  regarding when the connections are closed.
      public synchronized void closeAllConnections() {
        closeConnections(availableConnections);
        availableConnections = new Vector<java.sql.Connection>();
        closeConnections(busyConnections);
        busyConnections = new Vector<java.sql.Connection>();
      private void closeConnections(Vector connections) {
        try {
          for(int i=0; i<connections.size(); i++) {
            Connection connection =
              (Connection)connections.elementAt(i);
            if (!connection.isClosed()) {
              connection.close();
        } catch(SQLException sqle) {
          // Ignore errors; garbage collect anyhow
      public synchronized String toString() {
        String info =
          "ConnectionPool(Data Source is :"+datasource+ ")" +
          ", available=" + availableConnections.size() +
          ", busy=" + busyConnections.size() +
          ", max=" + maxConnections;
        return(info);
    }To Test This code, I had created one Servlet. In This Servlet I m calling like this:
    in
    init(){
         connectionPool = new ConnectionPool();
    }in
    in
    service(){
         private ConnectionPool connectionPool=null;
         connection = connectionPool.getConnection();
    }in destroy of
    destroy{
         if(connectionPool != null){
                  connectionPool.closeAllConnections();     
    }The Problem is that, Many a times it work, many a times it shows following Error:
    09:56:35,109 WARN  [JBossManagedConnectionPool] Unable to fill pool
    org.jboss.resource.JBossResourceException: Could not create connection; - nested throwable: (java.sql.SQLException:
    Listener refused the connection with the following error:
    ORA-12516, TNS:listener could not find available handler with matching protocol stack
    The Connection descriptor used by the client was:
    192.168.1.8:1521
            at org.jboss.resource.adapter.jdbc.local.LocalManagedConnectionFactory.createManagedConnection(LocalManagedConnectionFa
    ctory.java:177)
            at org.jboss.resource.connectionmanager.InternalManagedConnectionPool.createConnectionEventListener(InternalManagedConn
    ectionPool.java:539)
            at org.jboss.resource.connectionmanager.InternalManagedConnectionPool.fillToMin(InternalManagedConnectionPool.java:486)
            at org.jboss.resource.connectionmanager.PoolFiller.run(PoolFiller.java:74)
            at java.lang.Thread.run(Thread.java:595)
    Caused by: java.sql.SQLException: Listener refused the connection with the following error:
    ORA-12516, TNS:listener could not find available handler with matching protocol stack
    The Connection descriptor used by the client was:
    192.168.1.8:1521
            at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:112)
            at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:261)
            at oracle.jdbc.driver.T4CConnection.logon(T4CConnection.java:387)
            at oracle.jdbc.driver.PhysicalConnection.<init>(PhysicalConnection.java:414)
            at oracle.jdbc.driver.T4CConnection.<init>(T4CConnection.java:165)
            at oracle.jdbc.driver.T4CDriverExtension.getConnection(T4CDriverExtension.java:35)
            at oracle.jdbc.driver.OracleDriver.connect(OracleDriver.java:801)
            at org.jboss.resource.adapter.jdbc.local.LocalManagedConnectionFactory.createManagedConnection(LocalManagedConnectionFa
    ctory.java:169)
            ... 4 moreI M using JBoss 4.0, With OracleXE. I had defined my DataSource-> msgds in mydb-ds.xml of deploy folder of JBoss.
    which is like this:
    <?xml version="1.0" encoding="UTF-8"?>
    <datasources>
      <local-tx-datasource>
        <jndi-name>msgds</jndi-name>
        <connection-url>jdbc:oracle:thin:@192.168.1.8:1521</connection-url>   
        <driver-class>oracle.jdbc.OracleDriver</driver-class>
        <!-- The login and password -->
        <user-name>ashish</user-name>
        <password>ashish</password>
        <min-pool-size>5</min-pool-size>
        <max-pool-size>100</max-pool-size>
        <idle-timeout-minutes>0</idle-timeout-minutes>
      </local-tx-datasource>
    </datasources>I want to know whether This is a right approach to do Connection Pooling. How can I implement this Using Commons.
    What changes i need to made in my mydb-ds.xml if I use Commons Package and also in the code.

    never ask for help to be sent to your email, always post in this thread so that if someone else has the same question they can get the help too.
    this should help get you started... just make sure you get the apache dbcp package (you may need some commons things too, like commons pool)
    private BasicDataSource dataSource;
    * This function actually initializes the datasource, which is
    * in charge of setting up the BasicDataSource, which handles
    * all the database pooling.
    protected synchronized void initDataSource() {
         loadProperties(); // this loads my database properties from a config file
         try {
              dataSource = new BasicDataSource();
              dataSource.setDefaultAutoCommit(true);
              dataSource.setDefaultCatalog(catalogName);
              dataSource.setDriverClassName(jdbcDriver);
              dataSource.setUsername(jdbcUserID);
              dataSource.setPassword(jdbcPassword);
              dataSource.setUrl(jdbcURL);
              dataSource.setMinIdle(minCons);
              dataSource.setMaxIdle(maxCons);
              dataSource.setMaxActive(maxCons);
              dataSource.setMaxWait(5000); // milliseconds to wait for connection if none are available
              dataSource.setAccessToUnderlyingConnectionAllowed(true);
              // will validate each connection before handing it out
              dataSource.setTestOnBorrow(true);
              dataSource.setValidationQuery("select getDate()");
              // setup to test idle objects in the pool
              dataSource.setTestWhileIdle(true);
              dataSource.setTimeBetweenEvictionRunsMillis(600000); // run every 10 minutes
              dataSource.setMinEvictableIdleTimeMillis(60000);  // only examine connections idle for more than 10 minutes
              dataSource.setNumTestsPerEvictionRun(-3); // when this is negative one Nth of connections will be examined
         } catch (Exception e) {
              //whatever you want
    public Connection getConnection() {
         try {
              Connection con = dataSource.getConnection();
              if(con == null) {
                   throw new Exception("Error: DataSource gave a null connection object");
              return con;
         } catch (Exception e) {
              // whatever
    public void freeConnection(Connection con) {
         freeConnection(con, false);
    public void freeConnection(Connection con, boolean isError) {
         try {
              if(con == null) return;
              if(!con.isClosed()) {
                   if(isError && !con.getAutoCommit()) {
                        con.rollback();
                   con.clearWarnings();
                   con.close(); // this adds the con back to the pool
         } catch(Exception e) {
              // whatever
    }     

  • URGENT Check this code for me please

    Dear whoeverthisreads, please read and see at the bottom my sourcecode, or whatever I could make of it until (even with help) I failed to see any solution. Please copy, paste and run to see if you can manage to adjust the program to make it work in the way as described. And I think I made it unnecessarily complicated. Whatever you can do for me, I will be very, very grateful.
    Prem Pradeep, email: [email protected]
    (A beginning dutch Java student who is running out of time and hope)
    Catalogue Manager
    Specification:
    a) Develop an object to represent to encapsulate an item in a catalogue. Each CatalogueItem has three pieces of information: an alphanumeric catalogue code, a name, and a price (in dollars and cents), that excludes sales tax. The object should also be able to report the price, inclusive of a 15% sales tax, and the taxed component of the price.
    b) Work out a way to be able to support the inc tax/ex tax price accessors, and the tax component accessor, without needing to store any additional information in the object.
    c) Use an array of 5 CatalogueItem items to store data. (You may assume that no imported goods will be recorded.)
    d) Write a driver program that prompts for three sets of user input (catalogue number, description and price), to be stored in the atalogueItem instance.
    e) The data are to be read for each item in a single line. The data lines will be in the format:
    CatNo:Description:Price
    Use a StringTokenizer object to separate these data lines into their components.
    f) Review the class definition of CatalogueItem, and use modifiers where appropriate to:
    � Ensure that data is properly protected;
    � Ensure that the accessors and mutators are most visible;
    � The accessors and mutators for the catalogue number and description cannot be overridden.
    � The constant for the tax rate is publicly accessible, and does not need an instance of the class
    present in order to be accessible.
    As well as a summary, the program should also calculate and display:
    � All of the cheapest and most expensive item(s) in the catalogue. In the case of more than one
    item being the cheapest (or most expensive), they should all be listed.
    � A total of the pre-tax worth of the goods in the catalogue.
    � The average amount of tax on the items in the catalogue.
    A sample execution of the program may be as follows (output should be tabulated):
    Enter five items of data:
    AA123: Telephone: 52.00
    ZJ282: Pine Table: 98.00
    BA023: Headphones: 23.00
    ZZ338: Wristwatch: 295.00
    JW289: Tape Recorder: 23.00
    LISTING OF ALL GOODS
    Cat      Description      ExTax           Tax           IncTax ~
    ZJ282      pine Table           98.00           14.70           112.70
    AA123 Telephone           52.00           7.80           59.80
    BA023 Headphones      23.00           3.45           26.45
    ZZ338      Wristwatch      295.00      44.25      339.25
    JW289 Tape Recorder      23.00           3.45           26.45
    CHEAPEST GOODS IN CATALOGUE
    Cat      Description      ExTax           Tax           IncTax
    BA023 Headphones           23.00           3.45           26.45
    JW289 Tape Recorder      23.00           3.45           26.45
    MOST EXPENSIVE GOODS IN CATALOGUE
    Cat      Description      ExTax           Tax           IncTax
    ZZ338      Wristwatch      295.00      44.25      339.25
    TOTAL PRE-TAX WORTH OF CATALOGUE ITEMS:      491.00
    AVERAGE AMOUNT OF TAX PAYABLE PER ITEM:      14.73
    The next code is what I could make of it�until I got terribly stuck...
    //CatalogueItem.java
    import java.io.*;
    import java.text.DecimalFormat;
    import java.util.StringTokenizer;
    public class CatalogueItem {
    private static final double TAXABLE_PERCENTAGE = 0.15;
    private String catalogNumber;
    private String description;
    private double price;
    /** Creates a new instance of CatalogueItem */
    public CatalogueItem() {
    catalogNumber = null;
    description = null;
    price = 0;
    public CatalogueItem(String pCatalogNumber, String pDescription, double pPrice) {
    catalogNumber = pCatalogNumber;
    description = pDescription;
    price = pPrice;
    void setCatalogNumber(String pCatalogNumber) {
    catalogNumber = pCatalogNumber;
    String getCatalogNumber() {
    String str = catalogNumber;
    return str;
    void setDescription(String pDescription) {
    description = pDescription;
    String getDescription() {
    String str = description;
    return str;
    void setPrice(String pPrice) {
    price = Double.parseDouble(pPrice);
    double getPrice() {
    double rprice = price;
    return formatDouble(rprice);
    double getTaxAmount(){
    double rTaxAmount = price * TAXABLE_PERCENTAGE;
    return formatDouble(rTaxAmount);
    double getIncTaxAmount() {
    double rTaxAmount = price * (1 + TAXABLE_PERCENTAGE);
    return formatDouble(rTaxAmount);
    double formatDouble(double value) {
    DecimalFormat myFormatter = new DecimalFormat("###.##");
    String str1 = myFormatter.format(value);
    // System.out.println("String is " + str1);
    // System.out.println("The format value : " + value);
    return Double.parseDouble(str1);
    public static void main(String[] args) throws IOException {
    final int MAX_INPUT_SET = 5;
    final String strQ = "Enter five items of data:";
    CatalogueItem[] catalogList = new CatalogueItem[MAX_INPUT_SET];
    String strInput;
    BufferedReader stdin = new BufferedReader(new InputStreamReader(System.in));
    String header = "Cat\tDescription\tExTax\tTax\tInc Tax";
    String lines = "---\t-----------\t------\t---\t-------";
    // Input of five items with three data each, delimiter ":"
    for (int i = 0; i < MAX_INPUT_SET; i++) {
    catalogList[i] = new CatalogueItem();
    System.out.print(strQ);
    strInput = stdin.readLine();
    StringTokenizer tokenizer = new StringTokenizer(strInput, ":" );
    String inCatNo = tokenizer.nextToken();
    String inDescr = tokenizer.nextToken();
    String inPrice = tokenizer.nextToken();
    catalogList.setCatalogNumnber(inCatNo);
    catalogList[i].setDescription(inDescr);
    catalogList[i].setPrice(inPrice);
    // Listing of all goods
    System.out.println("LISTING OF ALL GOODS");
    System.out.println(header);
    System.out.println(lines);
    for (int i = 0; i < MAX_INPUT_SET; i++) {
    System.out.println(
    catalogList[i].getCatalogNumber() + "\t" +
    catalogList[i].getDescription() + "\t" +
    catalogList[i].getPrice() + "\t" +
    catalogList[i].getTaxAmount() + "\t" +
    catalogList[i].getIncTaxAmount());
    // This should pick the cheapest and most expensive goods in catalogue, but
    // this code is not good:
    // In the case of more than one item being the cheapest (or most expensive),
    // they should all be listed.
    double cheapest = cataloguelist[1].getPrice();
    double mostExpensive = cataloguelist[1].getPrice();
              for(int i=2; i< MAX_INPUT_SET; i++){
                   if (cataloguelist[i].getPrice < cheapest)
              cheapest = i;}
              for(int i=2; i< MAX_INPUT_SET; i++){
                   if (cataloguelist[i].getPrice > mostExpensivet)
              mostExpensive = i;}
    // Lists cheapest goods (not complete enough)
    i = cheapest;
    System.out.println("CHEAPEST GOODS IN CATALOGUE");
    System.out.println(header);
    System.out.println(lines);
    System.out.println(
    catalogList[i].getCatalogNumber() + "\t" +
    catalogList[i].getDescription() + "\t" +
    catalogList[i].getPrice() + "\t" +
    catalogList[i].getTaxAmount() + "\t" +
    catalogList[i].getIncTaxAmount());
    // Lists most expensive goods (not complete enough)
    i = mostExpensive;
    System.out.println("MOST EXPENSIVE GOODS IN CATALOGUE");
    System.out.println(header);
    System.out.println(lines);
    System.out.println(
    catalogList[i].getCatalogNumber() + "\t" +
    catalogList[i].getDescription() + "\t" +
    catalogList[i].getPrice() + "\t" +
    catalogList[i].getTaxAmount() + "\t" +
    catalogList[i].getIncTaxAmount());}}
    // Generates and shows total pre-tax worth of catalogue items (how??)
    // generates and shows amount of tax payable per item (how??)

    How is this:
    import java.io.*;
    import java.text.*;
    import java.util.*;
    public class Cat
         Vector items = new Vector();
    public Cat()
    public void read(String fname)
         FileReader     fr;
        BufferedReader br;
         String         str ="";
        try
             fr = new FileReader(fname);
            br = new BufferedReader(fr);
            while ((str = br.readLine()) != null && items.size() < 30)
                   if (!str.trim().equals(""))
                        StringTokenizer tokenizer = new StringTokenizer(str, ":");
                     String n = tokenizer.nextToken().trim();
                        String d = tokenizer.nextToken().trim();
                        String s = tokenizer.nextToken().trim();
                        double p = Double.parseDouble(s);
                        items.add(new Item(n,d,p));
            fr.close();
        catch (FileNotFoundException e)
            System.out.println("Input file cannot be located, please make sure the file exists!");
            System.exit(0);
        catch (IOException e)
            System.out.println(e.getMessage());
            System.out.println("Application cannot read the data from the file!");
            System.exit(0);
    public void displayAll()
         for (int j=0; j < items.size(); j++)
              Item item = (Item)items.get(j);
              System.out.println(item.toString());
    public void sort()
         Collections.sort(items);     
    public class Item implements Comparable
         String       number, description;
         double       price,pricep;
         final double TAXRATE = 0.15;
    public Item(String number, String description, double price)
         this.number      = number;
         this.description = description;
         this.price       = price;
         this.pricep      = price * TAXRATE;
    public int compareTo(Object o1)
         String o = ((Item)o1).number;
         return(number.compareTo(o));
    public String toString()
         DecimalFormat df = new DecimalFormat("#.00");     
         String        p1 = df.format(TAXRATE*price);
         String        p2 = df.format(TAXRATE*price+price);
         String s = number+"\t "+description+"\t"+price+"\t"+p1+"\t"+p2+"\t" ;
         return(s);
    public static void main (String[] args)
         Cat catalog = new Cat();
         catalog.read("C31.dat");
         String reply = "";
         BufferedReader stdin = new BufferedReader(new InputStreamReader(System.in));
         while (!reply.equals("e"))
              System.out.println("");
            System.out.println("CATALOGUE MANAGER: MAIN MENU");
            System.out.println("============================");
            System.out.println("a) display all goods        b) display cheapest/dearest goods");
            System.out.println("c) sort the goods list      d) search the good list");
            System.out.println("e) quit");
            System.out.print("Option:");
              try
                   reply = stdin.readLine();
              catch (IOException e)
                System.out.println("ERROR:" + e.getMessage());
                System.out.println("Application exits now");
                System.exit(0);
              if (reply.equals("a")) catalog.displayAll();
              if (reply.equals("c")) catalog.sort();
    Noah

  • Error in Code?-PlZ Check This

    Hai,
    We are getting an error in this code.We are beginners in Flex.
    Can anyone help us?
    This is our code....
    <?xml version="1.0" encoding="utf-8"?>
    <mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute" creationComplete="init()">
    <mx:Script>
        <![CDATA[
            import flash.media.Camera;
            import flash.media.Microphone;
            private function init():void
                cam.dataProvider=Camera.names;
                mic.dataProvider=Microphone.names;
            private function send():void
                //var camera:Camera=Camera.getCamera();
                var micro:Microphone=Microphone.getMicrophone();
                micro.addEventListener(StatusEvent.STATUS, this.onMicStatus);
                private function onMicstatus(event:StatusEvent):void
                    if(event.code == "Microphone.Unmuted")
                        trace("Microphone access allowed");
                    else if(event.code == "Microphone.Muted")
                        trace("Microphone access denied");
        ]]>
    </mx:Script>
        <mx:Panel x="265" y="50" width="294" height="200" layout="absolute">
            <mx:VideoDisplay x="0" y="0" width="274" height="160"/>
        </mx:Panel>
        <mx:Button x="381.5" y="314" label="Start" click="send()"/>
        <mx:Text x="281" y="24" text="Username" id="uname"/>
        <mx:TextArea x="351" y="24" height="18" width="150"/>
        <mx:Text x="281" y="260" text="Camera" width="62"/>
        <mx:ComboBox x="351" y="258" width="191" id="cam"></mx:ComboBox>
        <mx:Label x="273" y="286" text="microphone"/>
        <mx:ComboBox x="351" y="284" width="191" id="mic"></mx:ComboBox>
    </mx:Application>
    ERROR:-
    1013: The private attribute may be used only on class property definitions.    videovoice/src    videovoice.mxml    line 23    1267425378537    662

    First of all, check Permit Debugging in publish settings so you can at least reference a line number. It's not very realistic to post 150 lines of code, and say guys can you check this.
    Anyway from a cursory glance it looks like you only create 27 bricks:
    for (var i=0; i<9; i++)
    for (var j=0; j<3; j++)
    bricks = new brick(i,j);
    Brick_Array.push(bricks);
    And then later you do this:
    for (var k=0; k<100; k++)
    if (Ball.hitTestObject(Brick_Array[k]))
    You don't have 100 bricks in Brick_Array.
    Also - as a matter of convention variables names should not have the first letter capitalized - that is for class naming.

Maybe you are looking for

  • Interactive Report Download to CSV limit is 65535 in APEX 3.2

    Hello , I have an IR report in APEX 3.2 that returns around 75,000 rows . I have set the maximum row count in the report attributes under Pagination to 200,000 rows. Despite this when I download the report to CSV, only 65535 rows are downloaded . Is

  • Panasonic Plasma TV repair - Geek Squad

    Hello community - Two years ago I splurged, and purchased a beautiful 55" Panasonic plasma TV.  I am frugal, and do not do this often, so I also decided to protect it with a 4 year Black Tie Geek Squad warranty. Been very pleased with it, up until 20

  • How to get back my Canvas and Timeline?

    I closed the canvas and timeline and then saved the project. Now i don't know how to get them back.

  • Good Siebel Opening in a CMM level 5 co

    1. Siebel EAI Developer • 4-6 years experience in Siebel EAI development, • hands on expertise with inbound and outbound web services, middleware, transport protocols, scripting, configuration, integration objects, VBC's, EBC's, having been through e

  • Oracle 8 Enterprise/Parallel Server availability on Linux

    I have not downloaded the Linux port of Oracle 8 yet so please bear with me... I would like to know whether Oracle Parallel Server is included in the distribution for Linux. Specifically, I would like to build a system that has a failover node for a