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.
Similar Messages
-
How we can replace the column in Core Table plz see this msg
Hi,
How we can replace the column in Core Table plz see this msg
Req:
when i push the Insert button the data inserted into the Table
like
Cols Values
FOCD CUFZ14
PRDCD FU6
Month 082008
AgencyCD AG02
PLAN 123
This is FO_Plan Table....
Requirement:
i need at table show to replace the Prd_CD to Prd_Desc while inserting the above Row....
There is no Prd_Desc in FO Plan Table....
Prd_desc comes from Product Table.
did u get my point...
how to solve.
Thanks
Ram
Edited by: Ram Vungarala on Sep 24, 2008 9:09 AM
Edited by: Ram Vungarala on Sep 24, 2008 9:15 AMHi,
I'm not sure if I understood what are you trying to do. But you can modify your table in a backing bean code. JSF page code for a table:
<af:table id="product_search_results_tbl" binding="#{backingBean.boundTable}" ... />
And a backing bean code:
import oracle.adf.view.faces.component.core.data.CoreTable;
public class YourBackingBean {
private CoreTable boundTable;
public void setBoundTable(CoreTable boundTable) {
this.boundTable = boundTable;
public CoreTable getBoundTable() {
return boundTable;
public String insertButtonAction() {
// Bind your button action to this method and modify here your bound table
return null;
{code}
Look for column modification methods in a CoreTable class documentation.
Marius -
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. -
Hi,see this code....
hi group,
I am a new user. I am new in Swing also.
Try this code.
when I press keyboard( like a,b,c.....)In my tree I am selecting corresponding nodes.
In keytyped event i have written like this
public void keyTyped(KeyEvent kt)
this.selectNodeWithValue('A');
private void selectNodeWithValue(char ch)
DefaultMutableTreeNode root = (DefaultMutableTreeNode)treemodel.getRoot();
TreePath selPath = null;
Enumeration enum = root.breadthFirstEnumeration();
int counter = 0;
while(enum.hasMoreElements())
DefaultMutableTreeNode node = (DefaultMutableTreeNode)enum.nextElement();
String obj = (String)node.getUserObject();
StringBuffer buf = new StringBuffer(obj);
if(buf.charAt(0) == ch)
TreeNode[] nArr = treemodel.getPathToRoot(node);
selPath = new TreePath(nArr);
System.out.println("inside selpath is:"+selPath);
System.out.println("the selpath is:"+selPath);
getJDestTree().setSelectionPath(selPath);
getJDestTree().scrollPathToVisible(selPath);
updateUI();
if(selPath != null)
ivjJDestTree.setSelectionPath(selPath);
here just I am checking with one char 'A'.like this I want all the chars.
Any suggestions will be appreciated.
shalini.Hi shalini,
you have the key event as parameter.
with this you can get the key char
Eg.KeyEvent Ke
Ke.getKeyChar()..
this will return the key that was pressed.
good luck.
yamuna. -
SAX problem(plz see the code given)
hi all,
i am using SAX parser for validating my xml file against the dtd,i am getting some errors that i am not able to make out.cud u plz help me.i am sending u my files.
------------------------java file------------------------------------
import java.io.*;
import org.xml.sax.*;
import org.xml.sax.helpers.DefaultHandler;
import javax.xml.parsers.SAXParserFactory;
import javax.xml.parsers.ParserConfigurationException;
import javax.xml.parsers.SAXParser;
public class Echo extends DefaultHandler
public static void main(String argv[]){
if (argv.length != 1) {
System.err.println("Usage: cmd filename");
System.exit(1);
// Use an instance of ourselves as the SAX event handler
//DefaultHandler handler=new DefaultHandler();
Echo handler=new Echo();
// Use the default (non-validating) parser
SAXParserFactory factory = SAXParserFactory.newInstance();
factory.setValidating(true);
try {
// Set up output stream
out = new OutputStreamWriter(System.out, "UTF8");
// Parse the input
SAXParser saxParser = factory.newSAXParser();
saxParser.parse( new File(argv[0]), handler );
catch (SAXParseException spe) {
// Error generated by the parser
System.out.println("\n** Parsing error"
+ ", line " + spe.getLineNumber()
+ ", uri " + spe.getSystemId());
System.out.println(" " + spe.getMessage() );
}catch (Throwable t){
t.printStackTrace();
System.exit(0);
static private Writer out;
public void startDocument()
throws SAXException{
emit("<?xml version='1.0' encoding='UTF-8'?>");
nl();
public void endDocument()
throws SAXException{
try {
nl();
out.flush();
}catch (IOException e) {
throw new SAXException("I/O error", e);
public void startElement(String namespaceURI,
String sName, // simple name (localName)
String qName, // qualified name
Attributes attrs)
throws SAXException
String eName = sName; // element name
if ("".equals(eName)) eName = qName; // namespaceAware = false
emit("<"+eName);
if (attrs != null) {
for (int i = 0; i < attrs.getLength(); i++) {
String aName = attrs.getLocalName(i); // Attr name
if ("".equals(aName)) aName = attrs.getQName(i);
emit(" ");
emit(aName+"=\""+attrs.getValue(i)+"\"");
emit(">");
public void endElement(String namespaceURI,
String sName, // simple name
String qName // qualified name
throws SAXException
emit("</"+qName+">");
public void characters(char buf[], int offset, int len)
throws SAXException
String s = new String(buf, offset, len);
emit(s);
public void ignorableWhitespace(char buf[], int offset, int Len)
throws SAXException
nl();
//emit("IGNORABLE");
private void emit(String s)
throws SAXException
try {
out.write(s);
out.flush();
} catch (IOException e) {
throw new SAXException("I/O error", e);
private void nl()
throws SAXException
String lineEnd = System.getProperty("line.separator");
try {
out.write(lineEnd);
} catch (IOException e) {
throw new SAXException("I/O error", e);
public void error(SAXParseException e)
throws SAXParseException
throw e;
public void warning(SAXParseException e)throws SAXParseException{
System.out.println("WARNING : Line Number:- "+e.getLineNumber());
System.out.println("WARNING : Column Number:- "+e.getColumnNumber());
System.out.println("WARNING : System ID:- "+e.getSystemId());
System.out.println("WARNING : Public Number:- "+e.getPublicId());
--------------------------xml file------------------------------------
<?xml version='1.0' encoding='utf-8'?>
<!DOCTYPE slideshow SYSTEM "echo.dtd">
<!-- A SAMPLE set of slides -->
<slideshow
title="Sample Slide Show"
date="Date of publication"
author="Yours Truly"
>
<![CDATA[Digram : frobmorten <------------ fuznaten
| <3> ^
| <1> | <1> = fozzle
V | <2> = framboze
Staten+ <3> = frenzle
<2>
]]>
<!-- TITLE SLIDE -->
<slide type="all">
<image src="my.gif" alt="this is my pic" type="image/gif"/>
<title>Wake up to WonderWidgets!</title>
</slide>
<!-- OVERVIEW -->
<slide type="all">
<title>Overview</title>
<item>WonderWidgets are great</item>
<item/>
<item>Who buys WonderWidgets</item>
</slide>
<slide type="all">
<title>Overview</title>
<item>Who buys WonderWidgets</item>
</slide>
</slideshow>
-----------------------------dtd file---------------------------------
<!ELEMENT slideshow (slide+)>
<!ATTLIST slideshow
title CDATA #IMPLIED
date CDATA #IMPLIED
author CDATA #IMPLIED
>
<!ELEMENT slide (image?,title, item*)>
<!ATTLIST slide type CDATA #IMPLIED>
<!ELEMENT title (#PCDATA)>
<!ELEMENT item (#PCDATA | item)* >
<!ELEMENT image EMPTY>
<!ATTLIST image
alt CDATA #IMPLIED
src CDATA #REQUIRED
type CDATA "image/gif"
>
-----------------------ERROR I AM GETTING IS--------------------------
<?xml version='1.0' encoding='UTF-8'?>
<slideshow title="Sample Slide Show" date="Date of publication" author="Yours Tr
uly">
Digram : frobmorten <------------ fuznaten
| <3> ^
| <1> | <1> = fozzle
V | <2> = framboze
Staten+ <3> = frenzle
<2>
<slide type="all">
<image src="my.gif" alt="this is my pic" type="image/gif"></image>
<title>Wake up to WonderWidgets!</title>
</slide>
<slide type="all">
<title>Overview</title>
<item>WonderWidgets are great</item>
<item></item>
<item>Who buys WonderWidgets</item>
</slide>
<slide type="all">
<title>Overview</title>
<item>Who buys WonderWidgets</item>
</slide>
org.xml.sax.SAXException: The content of element type "slideshow" must m
atch "(slide)+".
at org.apache.xerces.parsers.AbstractSAXParser.parse(AbstractSAXParser.j
ava:979)
at javax.xml.parsers.SAXParser.parse(Unknown Source)
at javax.xml.parsers.SAXParser.parse(Unknown Source)
at Echo.main(Echo.java:28)
with my lot efforts i am not able to make out where i am wrong,plz do have a look on the codes.
thanx in advance
best regards
anshulHi i have consulted the XML spec and it is not possible to have a CDATA section as element content. A element declaration can have only content that is empty, ANY (i.e. can include any other declared elements in DTD), mixed (i.e. can contain PCDATA or child elements, or child elements. An element cannot include any character data which CDATA represents. i.e it is not valid to do <!ELEMENT slideshow CDATA>
The CDATA can only be used with an attribute declaration. Regard CDATA as a type definition for any attribute variables.
So what do i suggest. You could declare a separate element which has an attribute for the CDATA section
<!ELEMENT input (Name)>
<!ATTLIST input instructions CDATA #REQUIRED>
hope this helps. -
hi Everyone,
I have written a bdc for multiple line items for single header in PO.but i am getting multiple PO number for different line item.
Plz suggest how should i correct it.
report ZPURCHAGE1
no standard page heading line-size 255.
*include bdcrecx1.
*parameters: dataset(132) lower case.
DO NOT CHANGE - the generated data section - DO NOT CHANGE ***
If it is nessesary to change the data section use the rules:
1.) Each definition of a field exists of two lines
2.) The first line shows exactly the comment
'* data element: ' followed with the data element
which describes the field.
If you don't have a data element use the
comment without a data element name
3.) The second line shows the fieldname of the
structure, the fieldname must consist of
a fieldname and optional the character '_' and
three numbers and the field length in brackets
4.) Each field must be type C.
Generated data section with specific formatting - DO NOT CHANGE ***
data: t_bdc_data like bdcdata occurs 10 with header line.
data: begin of record2,
ebelp(005),
ematn(010),
menge(017),
name1(030),
spinf(001),
end of record2.
data: begin of record,
data element: BSART
BSART(004),
data element: MEPO_VENDOR
SUPERFIELD(051),
data element: EBDAT
BEDAT(010),
data element:
LIST(040),
data element: BSART
BSART_005(004),
data element: MEPO_VENDOR
SUPERFIELD_006(051),
data element: EBDAT
BEDAT_007(010),
data element: EKORG
EKORG(004),
data element: EKGRP
EKGRP(003),
data element: BUKRS
BUKRS(004),
data element:
LIST_011(040),
data element: BSART
BSART_012(004),
data element: MEPO_VENDOR
SUPERFIELD_013(051),
data element: EBDAT
BEDAT_014(010),
data element: EKORG
EKORG_015(004),
data element: EKGRP
EKGRP_016(003),
data element: BUKRS
BUKRS_017(004),
data element:
LIST_018(040),
data element: BSART
BSART_019(004),
data element: MEPO_VENDOR
SUPERFIELD_020(051),
data element: EBDAT
BEDAT_021(010),
data element: EKORG
EKORG_022(004),
data element: EKGRP
EKGRP_023(003),
data element: BUKRS
BUKRS_024(004),
data element: EBELP
EBELP(005),
data element: EMATNR
EMATN(018),
data element: BSTMG
MENGE(017),
data element: MEPO_EWERK
NAME1(030),
data element:
LIST_029(040),
data element: BSART
BSART_030(004),
data element: MEPO_VENDOR
SUPERFIELD_031(051),
data element: EBDAT
BEDAT_032(010),
data element: EKORG
EKORG_033(004),
data element: EKGRP
EKGRP_034(003),
data element: BUKRS
BUKRS_035(004),
data element:
LIST_036(040),
data element: INFUP
SPINF(001),
end of record.
data : itab like standard table of record with header line.
data: itab1 like standard table of record2 with header line.
End generated data section ***
start-of-selection.
*perform open_dataset using dataset.
*perform open_group.
*do.
*read dataset dataset into record.
CALL FUNCTION 'UPLOAD'
EXPORTING
FILENAME = ' '
FILETYPE = 'DAT'
TABLES
DATA_TAB = ITAB.
IF SY-SUBRC <> 0.
MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.
CALL FUNCTION 'UPLOAD'
EXPORTING
FILENAME = ' '
FILETYPE = 'DAT'
TABLES
DATA_TAB = itab1.
IF SY-SUBRC <> 0.
MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.
loop at itab into record.
*if sy-subrc <> 0. exit. endif.
LOOP AT ITAB1 INTO RECORD2.
perform bdc_dynpro using 'SAPLMEGUI' '0014'.
perform bdc_field using 'BDC_OKCODE'
'=MEV4000BUTTON'.
perform bdc_field using 'BDC_CURSOR'
'MEPO_TOPLINE-SUPERFIELD'.
perform bdc_field using 'MEPO_TOPLINE-BSART'
record-BSART.
perform bdc_field using 'MEPO_TOPLINE-SUPERFIELD'
record-SUPERFIELD.
perform bdc_field using 'MEPO_TOPLINE-BEDAT'
record-BEDAT.
*perform bdc_field using 'DYN_6000-LIST'
record-LIST.
perform bdc_dynpro using 'SAPLMEGUI' '0014'.
perform bdc_field using 'BDC_OKCODE'
'/00'.
perform bdc_field using 'MEPO_TOPLINE-BSART'
record-BSART.
perform bdc_field using 'MEPO_TOPLINE-SUPERFIELD'
record-SUPERFIELD.
perform bdc_field using 'MEPO_TOPLINE-BEDAT'
record-BEDAT.
perform bdc_field using 'BDC_CURSOR'
'MEPO1222-BUKRS'.
perform bdc_field using 'MEPO1222-EKORG'
record-EKORG.
perform bdc_field using 'MEPO1222-EKGRP'
record-EKGRP.
perform bdc_field using 'MEPO1222-BUKRS'
record-BUKRS.
*perform bdc_field using 'DYN_6000-LIST'
record-LIST.
perform bdc_dynpro using 'SAPLMEGUI' '0014'.
perform bdc_field using 'BDC_OKCODE'
'=MEV4001BUTTON'.
perform bdc_field using 'MEPO_TOPLINE-BSART'
record-BSART.
perform bdc_field using 'MEPO_TOPLINE-SUPERFIELD'
record-SUPERFIELD.
perform bdc_field using 'MEPO_TOPLINE-BEDAT'
record-BEDAT.
perform bdc_field using 'BDC_CURSOR'
'MEPO1222-BUKRS'.
perform bdc_field using 'MEPO1222-EKORG'
record-EKORG.
perform bdc_field using 'MEPO1222-EKGRP'
record-EKGRP.
perform bdc_field using 'MEPO1222-BUKRS'
record-BUKRS.
*perform bdc_field using 'DYN_6000-LIST'
record-LIST.
perform bdc_dynpro using 'SAPLMEGUI' '0014'.
perform bdc_field using 'BDC_OKCODE'
'/00'.
perform bdc_field using 'MEPO_TOPLINE-BSART'
record-BSART.
perform bdc_field using 'MEPO_TOPLINE-SUPERFIELD'
record-SUPERFIELD.
perform bdc_field using 'MEPO_TOPLINE-BEDAT'
record-BEDAT.
perform bdc_field using 'MEPO1222-EKORG'
record-EKORG.
perform bdc_field using 'MEPO1222-EKGRP'
record-EKGRP.
perform bdc_field using 'MEPO1222-BUKRS'
record-BUKRS.
perform bdc_field using 'BDC_CURSOR'
'MEPO1211-NAME1(01)'.
perform bdc_field using 'MEPO1211-EBELP(01)'
record2-EBELP.
perform bdc_field using 'MEPO1211-EMATN(01)'
record2-EMATN.
perform bdc_field using 'MEPO1211-MENGE(01)'
record2-MENGE.
perform bdc_field using 'MEPO1211-NAME1(01)'
record2-NAME1.
*perform bdc_field using 'DYN_6000-LIST'
record-LIST.
perform bdc_dynpro using 'SAPLMEGUI' '0014'.
perform bdc_field using 'BDC_OKCODE'
'=MESAVE'.
perform bdc_field using 'MEPO_TOPLINE-BSART'
record-BSART.
perform bdc_field using 'MEPO_TOPLINE-SUPERFIELD'
record-SUPERFIELD.
perform bdc_field using 'MEPO_TOPLINE-BEDAT'
record-BEDAT.
perform bdc_field using 'MEPO1222-EKORG'
record-EKORG.
perform bdc_field using 'MEPO1222-EKGRP'
record-EKGRP.
perform bdc_field using 'MEPO1222-BUKRS'
record-BUKRS.
perform bdc_field using 'BDC_CURSOR'
'MEPO1211-EEIND(01)'.
*perform bdc_field using 'DYN_6000-LIST'
record-LIST.
perform bdc_field using 'MEPO1319-SPINF'
record2-SPINF.
*perform bdc_transaction using 'ME21N'.
CALL TRANSACTION 'ME21N' USING t_bdc_data
MODE 'A'
UPDATE 'S'.
clear t_bdc_data.
refresh t_bdc_data.
endloop.
endloop.
*perform close_group.
*& Form bdc_dynpro
text
-->P_0046 text
-->P_0047 text
FORM bdc_dynpro USING PROGRAM
DYNPRO.
CLEAR t_bdc_data.
t_bdc_data-PROGRAM = PROGRAM.
t_bdc_data-DYNPRO = DYNPRO.
t_bdc_data-DYNBEGIN = 'X'.
APPEND t_bdc_data.
ENDFORM. " bdc_dynpro
*& Form bdc_field
text
-->P_0051 text
-->P_0052 text
FORM bdc_field USING FNAM
FVAL.
CLEAR t_bdc_data.
t_bdc_data-FNAM = FNAM.
t_bdc_data-FVAL = FVAL.
APPEND t_bdc_data.
ENDFORM. " bdc_field
MohitHi ,
try this :
ur existing codes:
*perform bdc_transaction using 'ME21N'.
CALL TRANSACTION 'ME21N' USING t_bdc_data
MODE 'A'
UPDATE 'S'.
clear t_bdc_data.
refresh t_bdc_data.
endloop.
endloop.
proposed codes by me:
clear t_bdc_data.
endloop.
*perform bdc_transaction using 'ME21N'.
CALL TRANSACTION 'ME21N' USING t_bdc_data
MODE 'A'
UPDATE 'S'.
refresh t_bdc_data.
endloop.
Message was edited by:
Jogdand M B -
Plz see this and think once..
hai friends,
i got one trouble plz help as soon as u can....imagine i ahve 10000 rows....
i want to upload into one it table and i want to split them into 100 text files..each having the
100 rows...just like splitting them into text files and downloading them as .txt files..plz.help me..How about something like this.
REPORT zrich_0001.
DATA: itab1 TYPE STANDARD TABLE OF string.
DATA: itab2 TYPE STANDARD TABLE OF string.
DATA: wa LIKE LINE OF itab1.
DATA: rec_counter TYPE i.
DATA: fil_counter(3) TYPE c.
DATA: file_name TYPE string.
CALL METHOD cl_gui_frontend_services=>gui_upload
EXPORTING
filename = 'C:/testfile.txt'
CHANGING
data_tab = itab1
EXCEPTIONS
OTHERS = 19.
CLEAR fil_counter.
CLEAR rec_counter.
LOOP AT itab1 INTO wa.
APPEND wa TO itab2.
rec_counter = rec_counter + 1.
IF rec_counter = 100.
PERFORM download_it.
ENDIF.
AT LAST.
CHECK itab2[] IS NOT INITIAL.
PERFORM download_it.
ENDAT.
ENDLOOP.
*& Form download_it
* text
FORM download_it.
CLEAR file_name.
fil_counter = fil_counter + 1.
CONCATENATE 'c:/testfile' fil_counter '.txt' INTO file_name.
CONDENSE file_name NO-GAPS.
CALL METHOD cl_gui_frontend_services=>gui_download
EXPORTING
filename = file_name
CHANGING
data_tab = itab2
EXCEPTIONS
OTHERS = 24.
CLEAR rec_counter.
REFRESH itab2.
ENDFORM. "download_it
Regards,
Rich Heilman -
Smartforms o/p 2 PDF conversion problem , plz see my code
Hi Smartform Guys
1)I m getting error <b>"CONVT_NO_NUMBER "</b> in converting my Smartform output to PDF.
*Printing of Export Invoice, Packing List,Enclosure to Packing List & *
*Case Marking in one SMART FORMS Layout *
REPORT ZSD_REP_MULTI_PRINT.
TABLES :
vbak,
vbap,
vbpa,
vbfa,
VBRK,
VBRP,
LIKP,
LIPS,
KONV,
objk,
tvko,
ser01,
sadr,
equi,
makt,
mast,
t005t,
kna1,
t001w,
T001,
ADRC,
sscrfields,
zpp_plcmi, "Packing list history For Conf: Item data
zplh, "PACKING LIST HISTORY : HEADER DATA
zpli. "PACKING LIST HISTORY : ITEM DATA
DATA: FM_NAME TYPE RS38L_FNAM,
P_E_DEVTYPE TYPE RSPOPTYPE,
P_JOB_OUTPUT_INFO TYPE SSFCRESCL OCCURS 2000 WITH HEADER LINE,
P_OUTPUT_OPTIONS TYPE SSFCOMPOP OCCURS 0 WITH HEADER LINE,
P_CONTROL_PARAMETERS TYPE SSFCTRLOP OCCURS 0 WITH HEADER LINE ,
P_DOC LIKE DOCS OCCURS 2000 WITH HEADER LINE,
P_LINES LIKE TLINE OCCURS 200,
P_BIN_FILESIZE TYPE I,
P_LANGUAGE TYPE SFLANGU,
P_BIN_FILE TYPE XSTRING.
DATA: T_ITEM TYPE ZSD_TABL_LITEM,
WA_ITEM TYPE ZSD_STRUCT_LITEM,
T_ADRS LIKE ZSD_STRUCT_ADRS OCCURS 0 WITH HEADER LINE,
MSLINES LIKE TLINE OCCURS 1 WITH HEADER LINE,
TIDNO LIKE STXL-TDID,
TNAME LIKE STXL-TDNAME,
TOBJT LIKE STXL-TDOBJECT,
SSORD LIKE VBAK-VBELN,
TOT LIKE VBAK-NETWR,
WORD LIKE SPELL.
SELECTION-SCREEN BEGIN OF BLOCK blk1 WITH FRAME TITLE text-001.
PARAMETERS: P_DELNO LIKE LIKP-VBELN OBLIGATORY,
P_INVNO LIKE VBRK-VBELN OBLIGATORY,
P_DATE LIKE SY-DATUM.
SELECTION-SCREEN END OF BLOCK blk1.
AT SELECTION-SCREEN.
CLEAR T_ADRS.
REFRESH T_ITEM.
T_ADRS-INVNO = P_INVNO.
T_ADRS-INVDAT = P_DATE.
SELECT SINGLE VBELV INTO VBFA-VBELV
FROM VBFA
WHERE VBELN = P_DELNO
AND VBTYP_N = 'J' .
SSORD = VBFA-VBELV.
*Exporter's Address
SELECT SINGLE BUKRS_VF INTO VBAK-BUKRS_VF
FROM VBAK
WHERE VBELN = VBFA-VBELV.
SELECT SINGLE ADRNR
INTO T001-ADRNR
FROM T001
WHERE BUKRS = VBAK-BUKRS_VF.
SELECT SINGLE NAME1 STREET CITY1 POST_CODE1 COUNTRY
INTO (T_ADRS-NAME1,T_ADRS-STREET,T_ADRS-CITY1,
T_ADRS-POST_CODE1, ADRC-COUNTRY)
FROM ADRC
WHERE ADDRNUMBER EQ T001-ADRNR.
SELECT SINGLE LANDX
INTO T_ADRS-COUNTRY
FROM T005T
WHERE SPRAS = 'EN'
AND LAND1 = ADRC-COUNTRY.
**BUYERS NO & DATE
SELECT SINGLE BSTNK BSTDK INTO (T_ADRS-BSTNK,T_ADRS-BSTDK)
FROM VBAK
WHERE VBELN = VBFA-VBELV.
*Consignee Address & Buyer Other Than Consignee
SELECT SINGLE KUNNR KUNAG INTO (LIKP-KUNNR, LIKP-KUNAG)
FROM LIKP WHERE VBELN = P_DELNO.
IF LIKP-KUNNR = LIKP-KUNAG.
SELECT SINGLE NAME1 NAME2 STRAS ORT01 PSTLZ REGIO TELF1 ADRNR
INTO (T_ADRS-CNAME1, T_ADRS-CNAME2, T_ADRS-CSTREET,
T_ADRS-CCITY, T_ADRS-CPCODE, T_ADRS-CREGIO,
T_ADRS-CTELF1, KNA1-ADRNR)
FROM KNA1
WHERE KUNNR = LIKP-KUNNR.
SELECT SINGLE COUNTRY INTO ADRC-COUNTRY
FROM ADRC
WHERE ADDRNUMBER EQ KNA1-ADRNR.
SELECT SINGLE LANDX
INTO T_ADRS-CCOUNTRY
FROM T005T
WHERE SPRAS = 'EN'
AND LAND1 = ADRC-COUNTRY.
T_ADRS-ONAME1 = T_ADRS-CNAME1 .
T_ADRS-ONAME2 = T_ADRS-CNAME2 .
T_ADRS-OSTREET = T_ADRS-CSTREET .
T_ADRS-OCITY = T_ADRS-CCITY.
T_ADRS-OPCODE = T_ADRS-CPCODE .
T_ADRS-OREGIO = T_ADRS-CREGIO.
T_ADRS-OTELF1 = T_ADRS-CTELF1 .
T_ADRS-OCOUNTRY = T_ADRS-CCOUNTRY.
ELSE.
SELECT SINGLE NAME1 NAME2 STRAS ORT01 PSTLZ REGIO TELF1 ADRNR
INTO (T_ADRS-CNAME1, T_ADRS-CNAME2, T_ADRS-CSTREET,
T_ADRS-CCITY, T_ADRS-CPCODE, T_ADRS-CREGIO,
T_ADRS-CTELF1, KNA1-ADRNR)
FROM KNA1
WHERE KUNNR = LIKP-KUNNR.
SELECT SINGLE COUNTRY INTO ADRC-COUNTRY
FROM ADRC
WHERE ADDRNUMBER EQ KNA1-ADRNR.
SELECT SINGLE LANDX
INTO T_ADRS-CCOUNTRY
FROM T005T
WHERE SPRAS = 'EN'
AND LAND1 = ADRC-COUNTRY.
*Buyer Other than Consignee
SELECT SINGLE NAME1 NAME2 STRAS ORT01 PSTLZ REGIO TELF1 ADRNR
INTO (T_ADRS-ONAME1, T_ADRS-ONAME2, T_ADRS-OSTREET,
T_ADRS-OCITY, T_ADRS-OPCODE, T_ADRS-OREGIO,
T_ADRS-OTELF1, KNA1-ADRNR)
FROM KNA1
WHERE KUNNR = LIKP-KUNAG.
SELECT SINGLE COUNTRY INTO ADRC-COUNTRY
FROM ADRC
WHERE ADDRNUMBER EQ KNA1-ADRNR.
SELECT SINGLE LANDX
INTO T_ADRS-OCOUNTRY
FROM T005T
WHERE SPRAS = 'EN'
AND LAND1 = ADRC-COUNTRY.
ENDIF.
*Other's Ref
TIDNO = 'Z071'.
TNAME = SSORD.
TOBJT = 'VBBK'.
PERFORM FINDTEXT.
LOOP AT MSLINES.
T_ADRS-OREF = mslines-tdline(25).
EXIT.
ENDLOOP.
*Buyer's Order No Ref
TIDNO = 'Z023'.
TNAME = SSORD.
TOBJT = 'VBBK'.
PERFORM FINDTEXT.
LOOP AT MSLINES.
T_ADRS-BUYER = mslines-tdline(25).
EXIT.
ENDLOOP.
*Exporter Ref
TIDNO = 'Z072'.
TNAME = SSORD.
TOBJT = 'VBBK'.
PERFORM FINDTEXT.
LOOP AT MSLINES.
T_ADRS-XPREF = mslines-tdline(25).
EXIT.
ENDLOOP.
*Pre-Carraige By
TIDNO = 'Z074'.
TNAME = SSORD.
TOBJT = 'VBBK'.
PERFORM FINDTEXT.
LOOP AT MSLINES.
T_ADRS-PCRG = mslines-tdline(25).
EXIT.
ENDLOOP.
*Place Of reciept by Pre-Carraige
TIDNO = 'Z073'.
TNAME = SSORD.
TOBJT = 'VBBK'.
PERFORM FINDTEXT.
LOOP AT MSLINES.
T_ADRS-PLPCRG = mslines-tdline(25).
EXIT.
ENDLOOP.
*Vessel/Flight No
TIDNO = 'Z075'.
TNAME = SSORD.
TOBJT = 'VBBK'.
PERFORM FINDTEXT.
LOOP AT MSLINES.
T_ADRS-VFNO = mslines-tdline(25).
EXIT.
ENDLOOP.
*Port Of Loading
TIDNO = 'Z077'.
TNAME = SSORD.
TOBJT = 'VBBK'.
PERFORM FINDTEXT.
LOOP AT MSLINES.
T_ADRS-PLOAD = mslines-tdline(25).
EXIT.
ENDLOOP.
*Port Of Discharge
TIDNO = 'Z076'.
TNAME = SSORD.
TOBJT = 'VBBK'.
PERFORM FINDTEXT.
LOOP AT MSLINES.
T_ADRS-PDISG = mslines-tdline(25).
EXIT.
ENDLOOP.
*Final Destination
TIDNO = 'Z070'.
TNAME = SSORD.
TOBJT = 'VBBK'.
PERFORM FINDTEXT.
LOOP AT MSLINES.
T_ADRS-FDEST = mslines-tdline(25).
EXIT.
ENDLOOP.
*Terms Of Delivery & Payment
TIDNO = 'Z080'.
TNAME = SSORD.
TOBJT = 'VBBK'.
PERFORM FINDTEXT.
LOOP AT MSLINES.
T_ADRS-TERMS = mslines-tdline(50).
EXIT.
ENDLOOP.
APPEND T_ADRS.
*BODY SECTION FOR LINE ITEMS
SELECT POSNR KWMENG VRKME WAERK
INTO (VBAP-POSNR, VBAP-KWMENG, VBAP-VRKME, VBAP-WAERK)
FROM VBAP
WHERE VBELN = SSORD.
*Mark/Case No
TIDNO = '0002'.
CONCATENATE SSORD
VBAP-POSNR
INTO TNAME.
TOBJT = 'VBBP'.
PERFORM FINDTEXT.
LOOP AT MSLINES.
WA_ITEM-MARKNO = mslines-tdline(40).
EXIT.
ENDLOOP.
*Packing Type
TIDNO = '0003'.
CONCATENATE SSORD
VBAP-POSNR
INTO TNAME.
TOBJT = 'VBBP'.
PERFORM FINDTEXT.
LOOP AT MSLINES.
WA_ITEM-PACKTYP = mslines-tdline(40).
EXIT.
ENDLOOP.
*Goods Description
TIDNO = '0001'.
CONCATENATE SSORD
VBAP-POSNR
INTO TNAME.
TOBJT = 'VBBP'.
PERFORM FINDTEXT.
LOOP AT MSLINES.
WA_ITEM-PACKTYP = mslines-tdline(40).
EXIT.
ENDLOOP.
*Goods Quantity
WA_ITEM-QTY = VBAP-KWMENG.
WA_ITEM-VRKME = VBAP-VRKME.
*Goods Rate
SELECT SINGLE KNUMV INTO VBAK-KNUMV FROM VBAK WHERE VBELN = SSORD.
SELECT SINGLE KBETR WAERS
INTO (WA_ITEM-RATE, WA_ITEM-WAERS)
FROM KONV
WHERE KNUMV = VBAK-KNUMV
AND KPOSN = VBAP-POSNR
AND KSCHL = 'PR00'.
*Goods Amount
WA_ITEM-AMOUNT = WA_ITEM-QTY * WA_ITEM-RATE.
WA_ITEM-WAERK = VBAP-WAERK.
TOT = TOT + WA_ITEM-AMOUNT.
APPEND WA_ITEM TO T_ITEM.
ENDSELECT.
T_ADRS-TOT = TOT.
CALL FUNCTION 'SPELL_AMOUNT'
EXPORTING
AMOUNT = TOT
CURRENCY = VBAP-WAERK
FILLER = ' '
LANGUAGE = SY-LANGU
IMPORTING
IN_WORDS = WORD
EXCEPTIONS
NOT_FOUND = 1
TOO_LARGE = 2
OTHERS = 3
IF SY-SUBRC <> 0.
MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.
TEXT = WORD-WORD.
CONCATENATE TEXT
'DECIMAL'
WORD-WORD
INTO TEXT
SEPARATED BY ' '.
T_ADRS-TOT_WORDS = WORD-WORD.
APPEND T_ADRS.
START-OF-SELECTION.
CALL FUNCTION 'SSF_FUNCTION_MODULE_NAME'
EXPORTING
FORMNAME = 'Z_SD_REP_MULTI_PRINT'
VARIANT = ' '
DIRECT_CALL = ' '
IMPORTING
FM_NAME = FM_NAME
EXCEPTIONS
NO_FORM = 1
NO_FUNCTION_MODULE = 2
OTHERS = 3
IF SY-SUBRC <> 0.
MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.
P_LANGUAGE = 'EN'.
CALL FUNCTION 'SSF_GET_DEVICE_TYPE'
EXPORTING
I_LANGUAGE = P_LANGUAGE
I_APPLICATION = 'SAPDEFAULT'
IMPORTING
E_DEVTYPE = P_E_DEVTYPE.
P_OUTPUT_OPTIONS-XSFCMODE = 'X'.
P_OUTPUT_OPTIONS-XSF = SPACE.
P_OUTPUT_OPTIONS-XDFCMODE = 'X'.
P_OUTPUT_OPTIONS-XDF = SPACE.
P_OUTPUT_OPTIONS-TDPRINTER = P_E_DEVTYPE.
P_OUTPUT_OPTIONS-TDDEST = 'LOCL'.
APPEND P_OUTPUT_OPTIONS.
P_CONTROL_PARAMETERS-NO_DIALOG = 'X'.
P_CONTROL_PARAMETERS-GETOTF = 'X'.
P_CONTROL_PARAMETERS-NO_CLOSE = SPACE.
APPEND P_CONTROL_PARAMETERS.
CALL FUNCTION FM_NAME
EXPORTING
ARCHIVE_INDEX =
ARCHIVE_INDEX_TAB =
ARCHIVE_PARAMETERS =
CONTROL_PARAMETERS = P_CONTROL_PARAMETERS
MAIL_APPL_OBJ =
MAIL_RECIPIENT =
MAIL_SENDER =
OUTPUT_OPTIONS = P_OUTPUT_OPTIONS
USER_SETTINGS = 'X'
IMPORTING
DOCUMENT_OUTPUT_INFO =
JOB_OUTPUT_INFO = P_JOB_OUTPUT_INFO
JOB_OUTPUT_OPTIONS =
TABLES
T_ADRS = T_ADRS
T_ITEM = T_ITEM
EXCEPTIONS
FORMATTING_ERROR = 1
INTERNAL_ERROR = 2
SEND_ERROR = 3
USER_CANCELED = 4
OTHERS = 5
IF SY-SUBRC <> 0.
MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.
P_OTF[] = P_JOB_OUTPUT_INFO-OTFDATA.
CALL FUNCTION 'CONVERT_OTF_2_PDF'
EXPORTING
USE_OTF_MC_CMD = 'X'
ARCHIVE_INDEX =
IMPORTING
BIN_FILESIZE = P_BIN_FILESIZE
TABLES
OTF = P_JOB_OUTPUT_INFO-OTFDATA
DOCTAB_ARCHIVE = P_DOC
LINES = P_LINES
EXCEPTIONS
ERR_CONV_NOT_POSSIBLE = 1
ERR_OTF_MC_NOENDMARKER = 2
OTHERS = 3.
IF SY-SUBRC <> 0.
MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.
BREAK-POINT.
CALL FUNCTION 'WS_DOWNLOAD'
EXPORTING
BIN_FILESIZE = P_BIN_FILESIZE
CODEPAGE = ' '
FILENAME = 'C:\TEMP.PDF'
FILETYPE = 'BIN'
MODE = ''
WK1_N_FORMAT = ' '
WK1_N_SIZE = ' '
WK1_T_FORMAT = ' '
WK1_T_SIZE = ' '
COL_SELECT = ' '
COL_SELECTMASK = ' '
NO_AUTH_CHECK = ' '
IMPORTING
FILELENGTH = P_BIN_FILESIZE
TABLES
DATA_TAB = P_LINES
FIELDNAMES =
EXCEPTIONS
FILE_OPEN_ERROR = 1
FILE_WRITE_ERROR = 2
INVALID_FILESIZE = 3
INVALID_TYPE = 4
NO_BATCH = 5
UNKNOWN_ERROR = 6
INVALID_TABLE_WIDTH = 7
GUI_REFUSE_FILETRANSFER = 8
CUSTOMER_ERROR = 9
NO_AUTHORITY = 10
OTHERS = 11
IF SY-SUBRC <> 0.
MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.
CALL FUNCTION 'GUI_DOWNLOAD'
EXPORTING
BIN_FILESIZE = P_BIN_FILESIZE
FILENAME = 'C:\Documents and Settings\pvipin\Desktop\sd.pdf'
FILETYPE = 'BIN'
APPEND = ' '
WRITE_FIELD_SEPARATOR = ' '
HEADER = '00'
TRUNC_TRAILING_BLANKS = ' '
WRITE_LF = 'X'
COL_SELECT = ' '
COL_SELECT_MASK = ' '
DAT_MODE = ' '
CONFIRM_OVERWRITE = ' '
NO_AUTH_CHECK = ' '
CODEPAGE = ' '
IGNORE_CERR = ABAP_TRUE
REPLACEMENT = '#'
WRITE_BOM = ' '
TRUNC_TRAILING_BLANKS_EOL = 'X'
IMPORTING
FILELENGTH =
*TABLES
DATA_TAB = P_LINES.
FIELDNAMES =
**EXCEPTIONS
FILE_WRITE_ERROR = 1
NO_BATCH = 2
GUI_REFUSE_FILETRANSFER = 3
INVALID_TYPE = 4
NO_AUTHORITY = 5
UNKNOWN_ERROR = 6
HEADER_NOT_ALLOWED = 7
SEPARATOR_NOT_ALLOWED = 8
FILESIZE_NOT_ALLOWED = 9
HEADER_TOO_LONG = 10
DP_ERROR_CREATE = 11
DP_ERROR_SEND = 12
DP_ERROR_WRITE = 13
UNKNOWN_DP_ERROR = 14
ACCESS_DENIED = 15
DP_OUT_OF_MEMORY = 16
DISK_FULL = 17
DP_TIMEOUT = 18
FILE_NOT_FOUND = 19
DATAPROVIDER_EXCEPTION = 20
CONTROL_FLUSH_ERROR = 21
OTHERS = 22 .
IF SY-SUBRC <> 0.
MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.
*& Form FINDTEXT
text
FORM FINDTEXT.
REFRESH mslines.
CALL FUNCTION 'READ_TEXT'
EXPORTING
client = sy-mandt
id = tidno
language = sy-langu
name = tname
object = tobjt
TABLES
lines = mslines
EXCEPTIONS
id = 1
language = 2
name = 3
not_found = 4
object = 5
reference_check = 6
wrong_access_to_archive = 7
OTHERS = 8.
DELETE mslines WHERE tdline IS INITIAL.
ENDFORM. "FINDTEXTThnx in Advnce
Moni
Message was edited by: md monirujjaman
Message was edited by: md monirujjaman
Message was edited by: md monirujjaman
Message was edited by: md monirujjaman
Message was edited by: md monirujjaman
Message was edited by: md monirujjaman
Message was edited by: md monirujjaman
Message was edited by: md monirujjaman
Message was edited by: md monirujjamanHello,
I think the following statement is causing problem.
P_OTF[] = P_JOB_OUTPUT_INFO-OTFDATA.
either give:
P_OTF[] = P_JOB_OUTPUT_INFO-OTFDATA[].
or
directly pass P_JOB_OUTPUT_INFO-OTFDATA into FM parameter.
This is because you are filling only header into P_OTF and NOT the Contents of internal table by the statement
P_OTF[] = P_JOB_OUTPUT_INFO-OTFDATA.
let me know whether it works.
Regards, Murugesh AS
have alook at this thread:
Re: SX_OBJECT_CONVERT_OTF_PDF
this may help you
Message was edited by: Murugesh Arcot
Message was edited by: Murugesh Arcot -
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'. -
Conversion form .mdf to .DBF , Plz see this...
Hi all,
Thanks for reading this:
My Java application needs to read a .mdf database format (SQLServer) and export data (after some processing) in a .DBF format (for use with ArcView GIS).I can read from my SQLServer, but don't know how to generate a .DBF format. Are there any mechanisms in Java to do this?
Any comments, i greatly welcome.I assume that you are using Windows (as you are talking about SQL Server)
What you could do, is to create an ODBC datasource with the DBF driver.
Then create the target tables while connected to your ODBC connection (through the JDBC/ODBC bridge). This will create the .dbf files (one for each table). This can be done by sending the CREATE TABLE commands through JDBC. You will probably need to test which datatypes DBF supports (apart from CHAR(n))
Then you can connect to SQL Server and read the data from there and INSERT the data into your DBF tables.
If you it's a one to one table copy, you could save your data as SQL INSERT with an appropriate tool and then execute those inserts while connected to you DBF datasource.
Thomas -
How to stop the encoding ?plz see the code and correct it
public class NewClass
/** Creates a new instance of NewClass */
public NewClass ()
StateHelper sh=null;
Processor p=null;
try
p=Manager.createProcessor (new URL ("file:///ring.wav"));
sh = new StateHelper (p);
p.configure ();
catch (NoProcessorException ex)
ex.printStackTrace ();
catch (IOException ex)
ex.printStackTrace ();
p.setContentDescriptor (new FileTypeDescriptor (FileTypeDescriptor.MPEG_AUDIO));
TrackControl track[] = p.getTrackControls ();
boolean encodingPossible = false;
for (int i = 0; i < track.length; i++)
try
track.setFormat (new AudioFormat (AudioFormat.MPEG));
encodingPossible = true;
catch (Exception e)
track[i].setEnabled (false);
if (!sh.realize (10000))
System.exit (-1);
DataSource source = p.getDataOutput ();
MediaLocator dest = new MediaLocator ("file://ring1.mpg");
DataSink filewriter = null;
try
filewriter = Manager.createDataSink (source, dest);
filewriter.open ();
filewriter.addDataSinkListener (new DataSinkListener ()
public void dataSinkUpdate (DataSinkEvent e)
if(e instanceof javax.media.datasink.EndOfStreamEvent)
DataSink ds=e.getSourceDataSink ();
try
ds.stop ();
System.out.println ("finished write");
catch (IOException ex)
ex.printStackTrace ();
filewriter.start ();
catch (NoDataSinkException e)
System.exit (-1);
catch (IOException e)
System.exit (-1);
catch (SecurityException e)
System.exit (-1);
p.start ();
p.addControllerListener (new ControllerAdapter ()
public void endOfMedia (EndOfMediaEvent e)
Controller controller = (Controller) e.getSource ();
controller.stop ();
controller.deallocate ();
System.out.println ("finished run through");
public static void main (String[] args)
new NewClass ();
o/p is "finished run through",the EndOfStreamEvent never occurs.please correct if anything is wrong.when i manually stop the program then only the encoded file appears on the disk. this has to used from the other class and i cannot afford to use exit().help me.Try this - it seems to work
public class NewClass
Processor p = null;
DataSink sink = null;
/** Creates a new instance of NewClass */
public NewClass ()
try{
p = Manager.createProcessor (new URL ("file:C:/WINDOWS/Media/Windows XP Startup.wav"));
p.addControllerListener (new ControllerAdapter ()
public void configureComplete(ConfigureCompleteEvent e){
System.out.println ("ConfigureCompleteEvent");
Processor p = (Processor)e.getSourceController();
processConfigured(p);
public void realizeComplete(RealizeCompleteEvent e){
System.out.println ("RealizeCompleteEvent");
Processor p = (Processor)e.getSourceController();
processrealized(p);
public void controllerClosed(ControllerClosedEvent e){
System.out.println ("ControllerClosedEvent");
public void endOfMedia (EndOfMediaEvent e)
System.out.println ("EndOfMediaEvent");
Processor p = (Processor)e.getSourceController();
p.stop();
public void stop(StopEvent e){
System.out.println ("StopEvent");
Processor p = (Processor)e.getSourceController();
p.close();
p.configure();
}catch (NoProcessorException ex){
ex.printStackTrace ();
}catch (IOException ex){
ex.printStackTrace ();
private void processrealized(Processor p){
MediaLocator dest = new MediaLocator("file:C:/Workspace/ring1.mpg");
try{
sink = Manager.createDataSink(p.getDataOutput(), dest);
sink.addDataSinkListener(new DataSinkListener(){
public void dataSinkUpdate(DataSinkEvent e){
if(e instanceof EndOfStreamEvent){
System.out.println ("EndOfStreamEvent");
sink.close();
sink.open();
sink.start();
}catch(Exception eX){
p.start();
private void processConfigured(Processor p){
p.setContentDescriptor (new FileTypeDescriptor (FileTypeDescriptor.MPEG_AUDIO));
TrackControl track[] = p.getTrackControls ();
boolean encodingPossible = false;
for (int i = 0; i < track.length; i++){
try{
track.setFormat (new AudioFormat (AudioFormat.MPEG));
encodingPossible = true;
}catch (Exception e){
track[i].setEnabled (false);
p.realize();
public static void main (String[] args)
new NewClass ();
` -
hi,
i have 3 radio butttons , such that i disable one radiobutton. when i start running application in create mode the radiobutton is disabed and it is fine.
now if i have pasted any old transactionid and open the form in change mode i.e changeform the radiobutton is not disable.
can any one tell me . and for create i have ws_mode eq create but i did not found for change .
Bye.-- REP-1401: ''cf_2formula': Fatal PL/SQL error occured.
Hi! I have the same error too except that I'm not using a select statement. The error occurs even if i entered a valid paramter for date.
When I tried inputing into
:refdt1 = 02/01/2007
:refdt2 = 02/15/2007 it doesn't work......(the error occurs)
but when I tried inputing into
:refdt1 = 02/01/2000
:refdt2 = 02/15/2007 it works......
the code is written below....
function CF_2Formula return Char is
begin
return('For the Month '||to_char(:refdt1,'DD FmMonth, YYYY')||' to '||to_char(:refdt2,'DD FmMonth, YYYY'))
end;
please reply asap! thanks!
Message was edited by:
Bernabe, David B. -
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
bharthireplace
FileOutputStream fs = new FileOutputStream("filename");
with
FileOutputStream fs = new FileOutputStream("filename",true); -
hai all
i solve a dayanamic "select" statement using ref cursor.but the output is displaying without spaces .i want to split the output.
see this code.i need a output in browser(using htp package).
declare
TYPE generic_rc IS REF CURSOR;
cv generic_rc;
column_list varchar2(500);
temp varchar2(500);
BEGIN
column_list:='select pname| |course| |splace from studies ';
OPEN cv FOR
column_list;
loop
fetch cv into temp;
exit when cv%notfound;
dbms_output.put_line(temp);
insert into tab1 values(temp);
end loop;
close cv;
commit;
end;
here i am selecting 3 columns.i got answer without space.how to split the answer.
advanced thanx for ur repply
nullYour code was :
column_list:='select pname| |course| |splace from studies ';
Try:
column_list:='select pname| |' '| |course| |' '| |splace from studies ';
For output in a browser, change dbms_output.put_line by htp.p
Hth,
Ton -
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
Maybe you are looking for
-
Books not showing up on my iPad
I have books that my Mac's iBooks see which don't show up on my iPad. If I uncheck "All books" in the iTunes "books" tab, I can scroll down and see the books, but then I check "All books" again (Sync Books is checked), and I don't see the books I'
-
Getting a message saying my hard drive has bad health.
Hello! Theres a problem with my computer. Ive recently got a program to tell my Hard Drive's health. when I opened it it sayed this: The Program is: Hard Disk Sentinel Its saying my computer's hard drive has 53 Days to live? And the health is bad? By
-
Does anyone know if the apple web page china exists in an english version. Apple store here in shanghai will not help me to upgrade the imac i wish to purchase and refers to the apple store which is in chinese language. Any thoughts?
-
"windows" with options keep popping up
Why do "windows" with options keep popping up whenever I try to do something; they are all different, but will be like "Go Back/ Save as" etc. It is so annoying. How do I get rid of it. I tried removing check mark next to Pop Up Windows, but that
-
Firewall interfering with Internet Sharing?
Hello -- I have an iMac (let's call it "iMac 1") physically connected to a cable modem, and, using Internet Sharing on that machine, I can connect to it via AirPort with another iMac ("iMac 2") and access the internet without any problems. However, w