At line selection
Hello All..
1. I have created one basic list, now if i double click on any record then it should call another transaction... this is to be done using LIST PROCESSING. i need to write code in 'At Line Selection' but where to code this at line selection.
2. Also while designing selection screen i've created execute icon using
SET PF-STATUS.. but this is also appearing when basic list is being displayed.. i dont ant this to appear... no other buttons i.e.., back button, cancel are working...
Regards,
Radhi..
Hi
Sample program for At Line-Selection
*& Report ZHC010F_CONFIRMATION_COMPACT *
Module PP - PRODUCTION PLANNING
REPORT ZHC010F_CONFIRMATION_COMPACT LINE-SIZE 275 LINE-COUNT 50 NO STANDARD PAGE HEADING.
TABLES : ZHT010_FORGE,
MARC.
TYPES : BEGIN OF I_CONFIRM,
ZBUDAT TYPE ZHT010_FORGE-ZBUDAT,
MATNR TYPE ZHT010_FORGE-MATNR,
PLWRK TYPE ZHT010_FORGE-PLWRK,
ZSHIFT TYPE ZHT010_FORGE-ZSHIFT,
ZWRKCE TYPE ZHT010_FORGE-ZWRKCE,
ZWIRECD TYPE ZHT010_FORGE-ZWIRECD,
ZACQTY TYPE ZHT010_FORGE-ZACQTY,
ZREQTY TYPE ZHT010_FORGE-ZREQTY,
ZSCQTY TYPE ZHT010_FORGE-ZSCQTY,
ZSEQTY TYPE ZHT010_FORGE-ZSEQTY,
ENDBIT TYPE ZHT010_FORGE-ENDBIT,
ENDBIT2 TYPE ZHT010_FORGE-ENDBIT2,
TIMLO TYPE ZHT010_FORGE-TIMLO,
ZCONFIRM TYPE ZHT010_FORGE-ZCONFIRM,
ZCONFIRMREJ TYPE ZHT010_FORGE-ZCONFIRM,
ZCONFIRMSC TYPE ZHT010_FORGE-ZCONFIRM,
ZCONFIRMSE TYPE ZHT010_FORGE-ZCONFIRM,
ZCONFIRMBIT TYPE ZHT010_FORGE-ZCONFIRM,
ZCONFIRMBIT2 TYPE ZHT010_FORGE-ZCONFIRM,
ZCONFIRMBUR TYPE ZHT010_FORGE-ZCONFIRMBUR,
TOKEN TYPE ZHT010_FORGE-TOKEN,
JONUMBER TYPE ZHT010_FORGE-JONUMBER,
CHARG TYPE ZHT010_FORGE-CHARG,
ZACCISSQTY TYPE ZHT010_FORGE-ZACCISSQTY,
ZREJISSQTY TYPE ZHT010_FORGE-ZREJISSQTY,
ZSCMISSQTY TYPE ZHT010_FORGE-ZSCMISSQTY,
ZSEMISSQTY TYPE ZHT010_FORGE-ZSEMISSQTY,
VERID TYPE ZHT010_FORGE-VERID,
MARK(1),
DELETE(1),
END OF I_CONFIRM.
TYPES: BEGIN OF TAB_TYPE,
FCODE LIKE RSMPE-FUNC,
END OF TAB_TYPE.
TYPES : BEGIN OF STR_BACKFLUSH,
MATNR LIKE ZHT010_FORGE-MATNR,
PLWRK LIKE ZHT010_FORGE-PLWRK,
GSMNG LIKE PLAF-GSMNG,
ZWRKCE LIKE ZHT010_FORGE-ZWRKCE,
ZBUDAT LIKE ZHT010_FORGE-ZBUDAT,
ZSHIFT LIKE ZHT010_FORGE-ZSHIFT,
TIMLO LIKE ZHT010_FORGE-TIMLO,
ZWIRECD LIKE ZHT010_FORGE-ZWIRECD,
ZACQTY LIKE ZHT010_FORGE-ZACQTY,
ZREQTY LIKE ZHT010_FORGE-ZREQTY,
ZSCQTY LIKE ZHT010_FORGE-ZSCQTY,
ZSEQTY LIKE ZHT010_FORGE-ZSEQTY,
ENDBIT LIKE ZHT010_FORGE-ENDBIT,
ENDBIT2 LIKE ZHT010_FORGE-ENDBIT2,
BURSLG LIKE ZHT010_FORGE-BURSLG,
TOKEN LIKE ZHT010_FORGE-TOKEN,
JONUMBER LIKE ZHT010_FORGE-JONUMBER,
CHARG LIKE ZHT010_FORGE-CHARG,
MARK ,
VERID LIKE MKAL-VERID,
END OF STR_BACKFLUSH.
DATA : REM TYPE I,
W_COUNT TYPE I VALUE 4,
WA(200),
W_ZACQTY(15),
W_ZREQTY(15),
W_ZSCQTY(15),
W_ZSEQTY(15),
W_ENDBIT(15),
W_ENDBIT2(15),
W_ACCISSQTY(15),
W_REJISSQTY(15),
W_SCMISSQTY(15),
W_SEMISSQTY(15),
W_CONFIRM,
W_CONFIRMREJ,
W_CONFIRMSC,
W_CONFIRMSE,
W_VERID LIKE ZHT010_FORGE-VERID,
W_START_LINE TYPE I,
W_END_LINE TYPE I,
W_START_COUNT TYPE I,
W_END_COUNT TYPE I,
W_LINES TYPE I ,
W_TAB TYPE TAB_TYPE,
W_MOD TYPE I,
W_SPC(15),
W_MATNR TYPE MARA-MATNR,
W_CHARG TYPE ZHT010_FORGE-CHARG,
W_TIMLO TYPE ZHT010_FORGE-TIMLO,
W_WIRECD TYPE MARA-MATNR,
W_JONO TYPE ZHT010_FORGE-JONUMBER,
W_MACHINE TYPE ZHT010_FORGE-ZWRKCE,
W_LBKUM TYPE MBEW-LBKUM,
ZWCD TYPE ZHT010_FORGE-ZWIRECD,
W_BI TYPE C,
W_LINECOUNT TYPE I,
W_MAKTX LIKE MAKT-MAKTX,
W_STLAL LIKE STKO-STLAL.
TYPES : BEGIN OF I_ST,
MATNR TYPE MARA-MATNR,
WIRECD TYPE MARA-MATNR, "Entered in ZHC018
UOM TYPE MARA-MEINS,
RMCODE TYPE MARA-MATNR, "Actual RM by BOM Explosion
MEINS TYPE MARA-MEINS, "Actual meins of RM by BOM
SPC TYPE MBEW-LBKUM,
END OF I_ST.
TYPES :BEGIN OF STR_BATCH ,
MARK(1),
MATNR LIKE MARA-MATNR,
WIRECD LIKE MARA-MATNR,
CHARG LIKE MCHB-CHARG,
CLABS LIKE MCHB-CLABS,
QTY LIKE MSEG-ERFMG,
UOM LIKE MSEG-ERFME,
SCRPQTY LIKE MSEG-MENGE,
MEINS LIKE MSEG-ERFME,
PENQTY LIKE MCHB-CLABS,
POSSQTY LIKE MCHB-CLABS,
TOPOST LIKE MCHB-CLABS,
REQTY LIKE MCHB-CLABS,
TIMLO LIKE ZHT010_FORGE-TIMLO,
END OF STR_BATCH.
DATA: IT_CONFIRM TYPE STANDARD TABLE OF I_CONFIRM WITH HEADER LINE,
IT_BACKFLUSH TYPE STANDARD TABLE OF STR_BACKFLUSH WITH HEADER LINE
TAB TYPE STANDARD TABLE OF TAB_TYPE WITH NON-UNIQUE DEFAULT KEY
INITIAL SIZE 10,
IT_STBD_SCRP TYPE CSXDOC OCCURS 0 WITH HEADER LINE,
IT_STBE_SCRP TYPE CSXEQUI OCCURS 0 WITH HEADER LINE,
IT_STBK_SCRP TYPE CSXKLA OCCURS 0 WITH HEADER LINE,
IT_STBM_SCRP TYPE CSXMAT OCCURS 0 WITH HEADER LINE,
IT_STBP_SCRP TYPE CSXGEN OCCURS 0 WITH HEADER LINE,
IT_STBT_SCRP TYPE CSXTPL OCCURS 0 WITH HEADER LINE,
IT_BATCH TYPE STANDARD TABLE OF STR_BATCH WITH HEADER LINE,
I_BATCH TYPE STANDARD TABLE OF STR_BATCH WITH HEADER LINE,
IT_STPOX TYPE STPOX OCCURS 0 WITH HEADER LINE,
IT_MAT TYPE CSCMAT OCCURS 0 WITH HEADER LINE,
WA_STPOX LIKE IT_STPOX,
IT_ST TYPE STANDARD TABLE OF I_ST WITH HEADER LINE,
IT_ST1 TYPE STANDARD TABLE OF I_ST WITH HEADER LINE,
IT_STBD TYPE CSXDOC OCCURS 0 WITH HEADER LINE,
IT_STBE TYPE CSXEQUI OCCURS 0 WITH HEADER LINE,
IT_STBK TYPE CSXKLA OCCURS 0 WITH HEADER LINE,
IT_STBM TYPE CSXMAT OCCURS 0 WITH HEADER LINE,
IT_STBP TYPE CSXGEN OCCURS 0 WITH HEADER LINE,
IT_STBT TYPE CSXTPL OCCURS 0 WITH HEADER LINE,
IT_STBD_ACTQTY TYPE CSXDOC OCCURS 0 WITH HEADER LINE,
IT_STBE_ACTQTY TYPE CSXEQUI OCCURS 0 WITH HEADER LINE,
IT_STBK_ACTQTY TYPE CSXKLA OCCURS 0 WITH HEADER LINE,
IT_STBM_ACTQTY TYPE CSXMAT OCCURS 0 WITH HEADER LINE,
IT_STBP_ACTQTY TYPE CSXGEN OCCURS 0 WITH HEADER LINE,
IT_STBT_ACTQTY TYPE CSXTPL OCCURS 0 WITH HEADER LINE.
SELECTION-SCREEN BEGIN OF BLOCK B1 WITH FRAME TITLE TEXT-001.
PARAMETERS : PR_WERKS LIKE IT_CONFIRM-PLWRK OBLIGATORY,
PR_BUDAT LIKE IT_CONFIRM-ZBUDAT OBLIGATORY.
SELECT-OPTIONS : SO_SHIFT FOR IT_CONFIRM-ZSHIFT NO-EXTENSION NO INTERVALS,
SO_MATNR FOR IT_CONFIRM-MATNR,
SO_WORK FOR IT_CONFIRM-ZWRKCE ,
SO_TOKEN FOR ZHT010_FORGE-TOKEN,
SO_CELL FOR MARC-FEVOR NO-EXTENSION NO INTERVALS.
PARAMETERS : PR_CONFM AS CHECKBOX DEFAULT 'X'.
SELECTION-SCREEN END OF BLOCK B1.
**This selection screen gives an option to execute in
**foreground or in the background.
**This is needed to analyse any errors while posting data.
SELECTION-SCREEN BEGIN OF BLOCK RADIO WITH FRAME TITLE TEXT-018 NO
INTERVALS.
PARAMETERS: PR_BIN RADIOBUTTON GROUP BI DEFAULT 'X',
PR_BIA RADIOBUTTON GROUP BI.
SELECTION-SCREEN END OF BLOCK RADIO.
DATA W_WERKS LIKE ZHT010_FORGE-PLWRK.
AT SELECTION-SCREEN.
IF PR_WERKS IS NOT INITIAL.
IF PR_WERKS <> '4100'.
SET CURSOR FIELD 'PR_WERKS'.
MESSAGE E000(ZSFL) WITH 'Plant 4100 Only Allowed'.
EXIT.
ENDIF.
ENDIF.
IF PR_BIA = 'X'.
IF SY-UNAME = 'PP4100A01' OR SY-UNAME = 'PP4100B01' OR SY-UNAME = 'PP4100C01' OR
SY-UNAME = 'PP4100C02' OR SY-UNAME = 'PP4200B01' OR SY-UNAME = 'PP4200C01' OR
SY-UNAME = 'PP4200C02'.
MESSAGE E000(ZSFL) WITH 'No Authorization to Run in Foreground'.
EXIT.
ENDIF.
ENDIF.
START-OF-SELECTION.
MOVE 'DELETE' TO W_TAB-FCODE.
APPEND W_TAB TO TAB.
MOVE 'SELA' TO W_TAB-FCODE.
APPEND W_TAB TO TAB.
MOVE 'DSELA' TO W_TAB-FCODE.
APPEND W_TAB TO TAB.
SET PF-STATUS 'CONF' EXCLUDING TAB.
IF PR_CONFM = 'X'.
SELECT AZBUDAT AMATNR APLWRK AZSHIFT AZWRKCE AZWIRECD A~ZACQTY
A~ZREQTY
AZSCQTY AZSEQTY AENDBIT AENDBIT2 ATIMLO AZCONFIRM
A~ZCONFIRMREJ
AZCONFIRMSC AZCONFIRMSE AZCONFIRMBIT AZCONFIRMBIT2
AZCONFIRMBUR ATOKEN AJONUMBER ACHARG A~ZACCISSQTY
AZREJISSQTY AZSCMISSQTY AZSEMISSQTY AVERID
FROM ZHT010_FORGE AS A INNER JOIN MARC AS B ON B~MATNR =
AMATNR AND BWERKS = PR_WERKS
INNER JOIN MARA AS C ON CMATNR = AMATNR
INTO TABLE IT_CONFIRM
WHERE A~PLWRK EQ PR_WERKS
AND A~ZSHIFT IN SO_SHIFT
AND A~ZBUDAT EQ PR_BUDAT
AND A~MATNR IN SO_MATNR
AND A~ZWRKCE IN SO_WORK
AND A~TOKEN IN SO_TOKEN
AND B~FEVOR IN SO_CELL
AND C~FERTH = 'RCOMP'
AND ( A~ZCONFIRM = ''
OR A~ZCONFIRMREJ = ''
OR A~ZCONFIRMSC = ''
OR A~ZCONFIRMSE = '' )
or a~zconfirmbit = '' )
OR a~zconfirmbit2 = '' ) and
AND KZLOESCH <> 'X'.
ELSE.
SELECT AZBUDAT AMATNR APLWRK AZSHIFT AZWRKCE AZWIRECD A~ZACQTY
A~ZREQTY
AZSCQTY AZSEQTY AENDBIT AENDBIT2 ATIMLO AZCONFIRM
A~ZCONFIRMREJ
AZCONFIRMSC AZCONFIRMSE AZCONFIRMBIT AZCONFIRMBIT2
AZCONFIRMBUR ATOKEN AJONUMBER ACHARG A~ZACCISSQTY
AZREJISSQTY AZSCMISSQTY AZSEMISSQTY AVERID
FROM ZHT010_FORGE AS A INNER JOIN MARC AS B ON B~MATNR =
AMATNR AND BWERKS = PR_WERKS
INNER JOIN MARA AS C ON CMATNR = AMATNR
INTO TABLE IT_CONFIRM
WHERE A~PLWRK EQ PR_WERKS
AND A~ZSHIFT IN SO_SHIFT
AND A~ZBUDAT EQ PR_BUDAT
AND A~MATNR IN SO_MATNR
AND A~ZWRKCE IN SO_WORK
AND A~TOKEN IN SO_TOKEN
AND B~FEVOR IN SO_CELL
AND C~FERTH = 'RCOMP' AND
KZLOESCH <> 'X'.
ENDIF.
W_LINES = LINES( IT_CONFIRM ).
IF W_LINES LT 1.
MESSAGE I999(ZSFL) WITH 'No Records Found For The Seln Criteria'.
EXIT.
ENDIF.
END-OF-SELECTION.
SORT IT_CONFIRM BY MATNR.
LOOP AT IT_CONFIRM.
W_MATNR = IT_CONFIRM-MATNR.
REM = SY-TABIX MOD 2.
W_WIRECD = IT_CONFIRM-ZWIRECD.
W_TIMLO = IT_CONFIRM-TIMLO.
W_CHARG = IT_CONFIRM-CHARG.
W_JONO = IT_CONFIRM-JONUMBER.
W_MACHINE = IT_CONFIRM-ZWRKCE.
W_ZACQTY = IT_CONFIRM-ZACQTY.
W_ZREQTY = IT_CONFIRM-ZREQTY.
W_ZSCQTY = IT_CONFIRM-ZSCQTY.
W_ZSEQTY = IT_CONFIRM-ZSEQTY.
W_ENDBIT = IT_CONFIRM-ENDBIT.
W_ENDBIT2 = IT_CONFIRM-ENDBIT2.
W_ACCISSQTY = IT_CONFIRM-ZACCISSQTY.
W_REJISSQTY = IT_CONFIRM-ZREJISSQTY.
W_SCMISSQTY = IT_CONFIRM-ZSCMISSQTY.
W_SEMISSQTY = IT_CONFIRM-ZSEMISSQTY.
W_CONFIRM = IT_CONFIRM-ZCONFIRM.
W_CONFIRMREJ = IT_CONFIRM-ZCONFIRMREJ.
W_CONFIRMSC = IT_CONFIRM-ZCONFIRMSC.
W_CONFIRMSE = IT_CONFIRM-ZCONFIRMSE.
W_VERID = IT_CONFIRM-VERID.
SHIFT W_ZACQTY LEFT DELETING LEADING SPACE.
SHIFT W_ZREQTY LEFT DELETING LEADING SPACE.
SHIFT W_ZSCQTY LEFT DELETING LEADING SPACE.
SHIFT W_ZSEQTY LEFT DELETING LEADING SPACE.
SHIFT W_ENDBIT LEFT DELETING LEADING SPACE.
SHIFT W_ENDBIT2 LEFT DELETING LEADING SPACE.
SHIFT W_ACCISSQTY LEFT DELETING LEADING SPACE.
SHIFT W_REJISSQTY LEFT DELETING LEADING SPACE.
SHIFT W_SCMISSQTY LEFT DELETING LEADING SPACE.
SHIFT W_SEMISSQTY LEFT DELETING LEADING SPACE.
SELECT SINGLE MAKTX INTO W_MAKTX FROM MAKT WHERE MATNR =
IT_CONFIRM-MATNR AND SPRAS = 'E'.
IF IT_CONFIRM-ZCONFIRM = 'X' AND IT_CONFIRM-ZCONFIRMREJ = 'X' AND
IT_CONFIRM-ZCONFIRMSC = 'X'
AND IT_CONFIRM-ZCONFIRMSE = 'X' AND IT_CONFIRM-ZCONFIRMBIT = 'X'
AND IT_CONFIRM-ZCONFIRMBIT2 = 'X'.
WRITE : / SY-VLINE,
IT_CONFIRM-MARK AS CHECKBOX INPUT OFF ,
IT_CONFIRM-MATNR UNDER TEXT-002,
W_MAKTX(20) UNDER TEXT-027,
IT_CONFIRM-ZSHIFT UNDER TEXT-011,
IT_CONFIRM-ZWRKCE UNDER TEXT-010,
IT_CONFIRM-ZWIRECD UNDER TEXT-003,
IT_CONFIRM-CHARG UNDER TEXT-022,
IT_CONFIRM-JONUMBER UNDER TEXT-019.
ELSE.
WRITE : / SY-VLINE,
IT_CONFIRM-MARK AS CHECKBOX,
IT_CONFIRM-MATNR UNDER TEXT-002 HOTSPOT ON,
W_MAKTX(20) UNDER TEXT-027,
IT_CONFIRM-ZSHIFT UNDER TEXT-011,
IT_CONFIRM-ZWRKCE UNDER TEXT-010,
IT_CONFIRM-ZWIRECD UNDER TEXT-003,
IT_CONFIRM-CHARG UNDER TEXT-022 ,
IT_CONFIRM-JONUMBER UNDER TEXT-019.
ENDIF.
Check if the burslg has already been posted. Incase it
has been posted then acc, rej , pr sc and se sc qnty cannot
be in editable
IF IT_CONFIRM-ZCONFIRM EQ 'X'. "or it_confirm-zconfirmbur eq 'X'.
IF IT_CONFIRM-ZCONFIRM EQ 'X' .
WRITE W_ZACQTY UNDER TEXT-004 COLOR 5 INTENSIFIED OFF.
ELSEIF IT_CONFIRM-ZCONFIRMBUR EQ 'X'.
WRITE W_ZACQTY UNDER TEXT-004 COLOR 3 INTENSIFIED OFF.
ENDIF.
ELSE.
WRITE W_ZACQTY UNDER TEXT-004 INPUT OFF.
ENDIF.
IF IT_CONFIRM-ZCONFIRMREJ EQ 'X' OR IT_CONFIRM-ZCONFIRMBUR EQ 'X'.
IF IT_CONFIRM-ZCONFIRMREJ EQ 'X' .
WRITE W_ZREQTY UNDER TEXT-005 COLOR 5 INTENSIFIED OFF.
ELSEIF IT_CONFIRM-ZCONFIRMBUR EQ 'X'.
WRITE W_ZREQTY UNDER TEXT-005 COLOR 3 INTENSIFIED OFF.
ENDIF.
ELSE.
WRITE W_ZREQTY UNDER TEXT-005. "input on.
ENDIF.
IF IT_CONFIRM-ZCONFIRMSC EQ 'X' OR IT_CONFIRM-ZCONFIRMBUR EQ 'X'.
IF IT_CONFIRM-ZCONFIRMSC EQ 'X' .
WRITE W_ZSCQTY UNDER TEXT-006 COLOR 5 INTENSIFIED OFF.
ELSEIF IT_CONFIRM-ZCONFIRMBUR EQ 'X'.
WRITE W_ZSCQTY UNDER TEXT-006 COLOR 3 INTENSIFIED OFF.
ENDIF.
ELSE.
WRITE W_ZSCQTY UNDER TEXT-006. "input on.
ENDIF.
IF IT_CONFIRM-ZCONFIRMSE EQ 'X' OR IT_CONFIRM-ZCONFIRMBUR EQ 'X'.
IF IT_CONFIRM-ZCONFIRMSE EQ 'X' .
WRITE W_ZSEQTY UNDER TEXT-007 COLOR 5 INTENSIFIED OFF.
ELSEIF IT_CONFIRM-ZCONFIRMBUR EQ 'X'.
WRITE W_ZSEQTY UNDER TEXT-007 COLOR 3 INTENSIFIED OFF.
ENDIF.
ELSE.
WRITE W_ZSEQTY UNDER TEXT-007. "input on.
ENDIF.
IF IT_CONFIRM-ZCONFIRMBIT EQ 'X'.
WRITE W_ENDBIT UNDER TEXT-008 COLOR 5 INTENSIFIED OFF.
ELSE.
WRITE W_ENDBIT UNDER TEXT-008. "input on.
ENDIF.
IF IT_CONFIRM-ZCONFIRMBIT2 EQ 'X'.
WRITE W_ENDBIT2 UNDER TEXT-009 COLOR 5 INTENSIFIED OFF.
ELSE.
WRITE W_ENDBIT2 UNDER TEXT-009. " input on.
ENDIF.
WRITE W_ACCISSQTY UNDER TEXT-023 COLOR 5 INTENSIFIED OFF.
WRITE W_REJISSQTY UNDER TEXT-024 COLOR 5 INTENSIFIED OFF.
WRITE W_SCMISSQTY UNDER TEXT-025 COLOR 5 INTENSIFIED OFF.
WRITE W_SEMISSQTY UNDER TEXT-026 COLOR 5 INTENSIFIED OFF.
WRITE 274 SY-VLINE.
HIDE: W_MATNR,W_WIRECD,W_ZACQTY,W_ZREQTY,W_ZSCQTY,
W_ZSEQTY,W_CHARG,W_JONO,W_MACHINE,W_TIMLO,
W_CONFIRM,W_CONFIRMREJ,W_CONFIRMSC,W_CONFIRMSE,W_VERID.
ULINE (274).
ENDLOOP.
TOP-OF-PAGE.
FORMAT COLOR 5 INTENSIFIED ON.
WRITE : 'Plant: ', PR_WERKS,
"'Shift: ', so_shift-low, ' To ' , so_shift-high,
'Posting date: ', PR_BUDAT.
WRITE : /''.
ULINE (274).
FORMAT COLOR 1 INTENSIFIED ON.
WRITE :/1 SY-VLINE,
5 TEXT-002, " Material no.
21 TEXT-027, " Description
45 TEXT-011, " shift
50 TEXT-010, " Work center.
65 TEXT-003, " Wire code.
85 TEXT-022, " Heat Number
105 TEXT-019, " Job Order Number
125 TEXT-004, " Acc. qty.
140 TEXT-005, " Rej. qty.
154 TEXT-006, " Scrap.
170 TEXT-007, " Set qty.
185 TEXT-008, " Endbit in Kg.
199 TEXT-009, " SOP.
214 TEXT-023,
229 TEXT-024,
244 TEXT-025,
259 TEXT-026,
274 SY-VLINE.
FORMAT COLOR OFF.
WRITE :/''.
ULINE (274).
END-OF-PAGE.
in order to show the stock
of wire code and requirement qty of wirecode .
AT LINE-SELECTION.
DATA: W_MEINS TYPE MARA-MEINS,
W_SPC1 TYPE MBEW-LBKUM,
W_STMAT TYPE MARA-MATNR,
W_QTY1 TYPE STKO-BMENG,
W_QTY2 TYPE STKO-BMENG,
W_QTY3 TYPE STKO-BMENG,
W_QTY4 TYPE STKO-BMENG,
W_TOTAL TYPE STKO-BMENG,
W_BRGEW TYPE MARA-BRGEW,
W_GEWEI TYPE MARA-GEWEI,
W_BUOM TYPE MARA-MEINS,
W_RQTY TYPE P DECIMALS 3,
w_ferth type mara-ferth,
TMATNR LIKE MARA-MATNR,
W_BATCH1(10),
W_BATCH2(10),
W_BATCH3(10),
W_BATCH4(10),
W_BATCH5(10),
W_BALQTY LIKE MCHB-CLABS,
w_penqty like mchb-clabs,
W_CLABS LIKE MCHB-CLABS.
IF SY-LILLI <= 4.
MESSAGE S000(ZSFL) WITH 'Select Correct Record'.
STOP.
ENDIF.
*zwcd = sy-lisel+64(18).
REFRESH IT_ST.
CLEAR IT_ST.
PERFORM F001-READ_MAT.
**Logic changed. the req qty should be shown from the BOM.
**Therefore these changes are needed.
CLEAR : IT_STBD,IT_STBE,IT_STBK,IT_STBM,IT_STBP,IT_STBT,W_QTY1,W_QTY2,
W_QTY3,W_TOTAL.
W_QTY1 = SY-LISEL+119(15).
W_QTY2 = SY-LISEL+137(15).
W_QTY3 = SY-LISEL+152(15).
W_QTY4 = SY-LISEL+167(15).
W_TOTAL = W_QTY1.
PERFORM F002-GET_QTY.
CLEAR : IT_STBD_SCRP,IT_STBE_SCRP,IT_STBK_SCRP,IT_STBM_SCRP,IT_STBP_SCRP
,IT_STBT_SCRP.
PERFORM F002-GET_SCRPQTY.
SORT IT_ST.
IF SY-LSIND = 1.
WINDOW STARTING AT 1 10 ENDING AT 135 20.
SET PF-STATUS 'ZCOMP'.
*to display batch and batch qty in pop up screen
REFRESH IT_BATCH[].
CLEAR :IT_BATCH , IT_ST,TMATNR.
LOOP AT IT_ST WHERE MATNR = W_MATNR AND WIRECD = W_WIRECD.
IT_BATCH-MATNR = IT_ST-MATNR.
IT_BATCH-WIRECD = IT_ST-WIRECD .
IT_BATCH-TIMLO = W_TIMLO.
READ TABLE IT_STBP_SCRP WITH KEY OBJNR = IT_ST-RMCODE.
IF SY-SUBRC = 0.
IF IT_ST-UOM = IT_ST-MEINS.
IT_BATCH-SCRPQTY = IT_STBP_SCRP-MNGLG.
ELSE.
IF IT_ST-MEINS = 'KG' AND IT_ST-UOM = 'TO'.
IT_BATCH-SCRPQTY = IT_STBP_SCRP-MNGLG / 1000.
ELSEIF IT_ST-MEINS = 'TO' AND IT_ST-UOM ='KG'.
IT_BATCH-SCRPQTY = IT_STBP_SCRP-MNGLG * 1000.
ENDIF.
ENDIF.
ENDIF.
SELECT SINGLE MATNR INTO TMATNR FROM MCHB WHERE MATNR =
IT_BATCH-WIRECD.
IF SY-SUBRC <> 0.
READ TABLE IT_BATCH WITH KEY MATNR = W_MATNR WIRECD =
IT_BATCH-WIRECD.
IF SY-SUBRC <> 0.
APPEND IT_BATCH.
ENDIF.
ELSE.
SELECT CLABS CHARG INTO (IT_BATCH-CLABS , IT_BATCH-CHARG) FROM
MCHB
WHERE MATNR = IT_ST-WIRECD AND WERKS = PR_WERKS AND LGORT =
'0007'.
READ TABLE IT_BATCH WITH KEY MATNR = W_MATNR WIRECD =
IT_ST-WIRECD
CHARG = IT_BATCH-CHARG .
IF SY-SUBRC <> 0.
APPEND IT_BATCH.
ENDIF.
ENDSELECT.
ENDIF.
CLEAR :IT_BATCH , IT_STBP_SCRP.
ENDLOOP.
DELETE ADJACENT DUPLICATES FROM IT_BATCH COMPARING WIRECD CHARG.
DELETE IT_BATCH WHERE CLABS = 0.
ULINE AT /1(134).
FORMAT COLOR 5 INTENSIFIED OFF.
WRITE : /1 SY-VLINE,
5 TEXT-003, " Wire code.
23(1) SY-VLINE,
25 TEXT-013,
39(1) SY-VLINE,
40 TEXT-014,
43(1) SY-VLINE,
44 TEXT-015,
59(1) SY-VLINE,
60 TEXT-020,
71(1) SY-VLINE,
72 TEXT-021,
90(1) SY-VLINE,
91 'Pending Qty',
104(1) SY-VLINE,
105 'Possible Qty',
119(1) SY-VLINE,
120 'To Post',
134(1) SY-VLINE.
ULINE AT /1(134).
CLEAR IT_ST.
SORT IT_ST.
DELETE ADJACENT DUPLICATES FROM IT_ST COMPARING ALL FIELDS.
SORT IT_ST.
REFRESH IT_ST1.
CLEAR: IT_ST1,IT_ST.
LOOP AT IT_ST WHERE MATNR = W_MATNR AND WIRECD = W_WIRECD.
MOVE-CORRESPONDING IT_ST TO IT_ST1.
APPEND IT_ST1.
ENDLOOP.
SORT: IT_ST,IT_ST1.
DELETE IT_ST1 WHERE MATNR NE W_MATNR.
SORT: IT_ST,IT_ST1.
CLEAR: IT_ST1.
LOOP AT IT_ST1 WHERE MATNR = W_MATNR AND WIRECD = W_WIRECD .
W_MEINS = IT_ST1-MEINS.
W_SPC = IT_ST1-SPC.
W_STMAT = IT_ST1-WIRECD.
**ZC127 has only a one to one relationship to BOM therefore only one
**line in the internal table is expected.
CLEAR IT_STBP.
READ TABLE IT_STBP WITH KEY OBJNR = IT_ST1-RMCODE.
IF IT_ST1-UOM = IT_ST1-MEINS .
W_RQTY = IT_STBP-MNGLG.
ELSE.
IF IT_ST1-MEINS = 'KG' AND IT_ST1-UOM = 'TO'.
W_RQTY = IT_STBP-MNGLG / 1000.
ELSEIF IT_ST1-MEINS = 'TO' AND IT_ST1-UOM = 'KG'.
W_RQTY = IT_STBP-MNGLG * 1000.
ENDIF.
ENDIF.
FORMAT COLOR 2 INTENSIFIED OFF.
CLEAR : W_BATCH1,W_BATCH2,W_BATCH3,W_BATCH4,W_BATCH5,W_BALQTY,
W_CLABS.
SPLIT W_CHARG AT ',' INTO W_BATCH1 W_BATCH2 W_BATCH3 W_BATCH4
W_BATCH5.
DELETE IT_BATCH WHERE CHARG <> W_BATCH1 AND CHARG <> W_BATCH2 AND
CHARG <> W_BATCH3
AND CHARG <> W_BATCH4 AND CHARG <> W_BATCH5
AND MATNR = W_MATNR
AND WIRECD = W_WIRECD AND TIMLO = W_TIMLO.
W_BALQTY = W_RQTY.
LOOP AT IT_BATCH WHERE MATNR = W_MATNR AND WIRECD = W_WIRECD AND
TIMLO = W_TIMLO.
SELECT SINGLE PENDINGQTY FROM ZHT012_JOBORDNO INTO
IT_BATCH-PENQTY WHERE LOT = IT_BATCH-CHARG AND
RMCODE = W_WIRECD AND
JO_NO = W_JONO AND
MACHINE = W_MACHINE.
IF IT_BATCH-PENQTY >= IT_BATCH-CLABS.
W_CLABS = IT_BATCH-CLABS.
ELSE.
W_CLABS = IT_BATCH-PENQTY.
ENDIF.
IF W_BALQTY > W_CLABS.
IT_BATCH-TOPOST = W_CLABS.
W_BALQTY = W_BALQTY - W_CLABS.
ELSEIF W_BALQTY < W_CLABS.
IT_BATCH-TOPOST = W_BALQTY.
W_BALQTY = W_BALQTY - IT_BATCH-TOPOST.
ENDIF.
IF IT_BATCH-PENQTY < IT_BATCH-CLABS.
IT_BATCH-POSSQTY = IT_BATCH-PENQTY.
ELSEIF IT_BATCH-CLABS < IT_BATCH-PENQTY.
IT_BATCH-POSSQTY = IT_BATCH-CLABS.
ELSEIF IT_BATCH-CLABS = IT_BATCH-PENQTY.
IT_BATCH-POSSQTY = IT_BATCH-CLABS.
ENDIF.
MODIFY IT_BATCH .
CLEAR IT_BATCH.
ENDLOOP.
LOOP AT IT_BATCH WHERE MATNR = W_MATNR AND WIRECD = W_WIRECD .
READ TABLE IT_STBP_ACTQTY WITH KEY OBJNR = IT_ST1-RMCODE.
FORMAT COLOR 2 INTENSIFIED OFF.
WRITE:/1 SY-VLINE,
3 IT_BATCH-MARK AS CHECKBOX,
IT_BATCH-WIRECD UNDER TEXT-003,
23(1) SY-VLINE.
ON CHANGE OF IT_BATCH-WIRECD.
AT NEW WIRECD.
WRITE :
W_SPC UNDER TEXT-013 LEFT-JUSTIFIED.
ENDON.
ENDAT.
WRITE: 39(1) SY-VLINE,
IT_ST1-UOM UNDER TEXT-014 ,
43(1) SY-VLINE,
W_RQTY UNDER TEXT-015 LEFT-JUSTIFIED,
59(1) SY-VLINE,
60 IT_BATCH-CHARG,
71(1) SY-VLINE,
72 IT_BATCH-CLABS LEFT-JUSTIFIED,
90(1) SY-VLINE,
91 IT_BATCH-PENQTY LEFT-JUSTIFIED,
104(1) SY-VLINE,
105 IT_BATCH-POSSQTY LEFT-JUSTIFIED,
119(1) SY-VLINE,
120 IT_BATCH-TOPOST LEFT-JUSTIFIED,
134(1) SY-VLINE.
IT_BATCH-QTY = IT_STBP_ACTQTY-MNGLG.
IT_BATCH-UOM = IT_ST1-UOM.
IT_BATCH-MEINS = IT_ST1-MEINS.
IT_BATCH-REQTY = W_RQTY.
MODIFY IT_BATCH TRANSPORTING QTY UOM MEINS REQTY.
ENDLOOP.
CLEAR : IT_BATCH , IT_STBP_ACTQTY.
ENDLOOP.
ULINE AT /1(134).
ENDIF.
AT USER-COMMAND.
CLEAR W_MOD.
CASE SY-UCOMM.
WHEN 'SELA'.
W_COUNT = 5.
LOOP AT IT_CONFIRM.
IF ( IT_CONFIRM-ZCONFIRM = '' OR IT_CONFIRM-ZCONFIRMREJ = '' OR
IT_CONFIRM-ZCONFIRMSC = ''
OR IT_CONFIRM-ZCONFIRMSE = '' OR IT_CONFIRM-ZCONFIRMBIT = '' OR
IT_CONFIRM-ZCONFIRMBIT2 = '' ) .
IT_CONFIRM-MARK = 'X'.
MODIFY IT_CONFIRM.
READ LINE W_COUNT.
MODIFY LINE W_COUNT FIELD VALUE IT_CONFIRM-MARK FROM 'X'.
ENDIF.
W_MOD = SY-TABIX MOD 46.
IF W_MOD EQ 0.
W_COUNT = W_COUNT + 5.
ELSE.
W_COUNT = W_COUNT + 2.
ENDIF.
ENDLOOP.
WHEN 'DSELA'.
W_COUNT = 5.
LOOP AT IT_CONFIRM.
IT_CONFIRM-MARK = ''.
MODIFY IT_CONFIRM.
READ LINE W_COUNT.
MODIFY LINE W_COUNT FIELD VALUE IT_CONFIRM-MARK FROM ''.
W_MOD = SY-TABIX MOD 46.
IF W_MOD EQ 0.
W_COUNT = W_COUNT + 5.
ELSE.
W_COUNT = W_COUNT + 2.
ENDIF.
ENDLOOP.
WHEN 'BLOCK'.
W_COUNT = 5.
W_START_COUNT = W_START_LINE - W_COUNT.
W_START_COUNT = W_START_COUNT + 1.
W_END_COUNT = W_END_LINE - W_COUNT.
W_END_COUNT = W_END_COUNT + 1.
REM = W_START_COUNT MOD 2.
IF REM EQ 0.
READ LINE W_START_LINE.
MODIFY LINE W_START_LINE LINE FORMAT INTENSIFIED OFF COLOR = 1.
ELSE.
READ LINE W_START_LINE.
MODIFY LINE W_START_LINE LINE FORMAT INTENSIFIED OFF COLOR = 2.
ENDIF.
REM = W_END_COUNT MOD 2.
IF REM EQ 0.
READ LINE W_END_LINE.
MODIFY LINE W_END_LINE LINE FORMAT INTENSIFIED OFF COLOR = 1.
ELSE.
READ LINE W_END_LINE.
MODIFY LINE W_END_LINE LINE FORMAT INTENSIFIED OFF COLOR = 2.
ENDIF.
LOOP AT IT_CONFIRM FROM W_START_COUNT TO W_END_COUNT.
IT_CONFIRM-MARK = 'X'.
MODIFY IT_CONFIRM.
READ LINE W_START_LINE.
MODIFY LINE W_START_LINE FIELD VALUE IT_CONFIRM-MARK FROM 'X'.
W_START_LINE = W_START_LINE + 1.
ENDLOOP.
CLEAR : W_START_COUNT, W_END_COUNT, W_START_LINE, W_END_LINE.
WHEN 'SAV'.
DATA : W_TCOUNT TYPE I VALUE 0.
W_LINECOUNT = 4.
CLEAR IT_BATCH.
LOOP AT IT_BATCH.
READ LINE W_LINECOUNT FIELD VALUE IT_BATCH-MARK.
IF IT_BATCH-MARK = 'X'.
W_TCOUNT = W_TCOUNT + 1.
MODIFY IT_BATCH TRANSPORTING MARK.
READ TABLE I_BATCH WITH KEY MATNR = IT_BATCH-MATNR
WIRECD = IT_BATCH-WIRECD
CHARG = IT_BATCH-CHARG
TIMLO = IT_BATCH-TIMLO.
IF SY-SUBRC <> 0.
MOVE-CORRESPONDING IT_BATCH TO I_BATCH.
APPEND I_BATCH.
ENDIF.
CLEAR : IT_BATCH , I_BATCH.
ENDIF.
W_LINECOUNT = W_LINECOUNT + 1.
ENDLOOP.
IF W_TCOUNT = 0.
MESSAGE E000(ZSFL) WITH 'Select Atleast One Entry'.
ENDIF.
SELECT SINGLE WERKS INTO W_WERKS FROM MAST WHERE WERKS = PR_WERKS AND MATNR = W_MATNR.
IF SY-SUBRC = 0.
CLEAR W_STLAL.
SELECT SINGLE STLAL INTO W_STLAL FROM MKAL WHERE WERKS = PR_WERKS AND
MATNR = W_MATNR AND
VERID = W_VERID.
CALL FUNCTION 'CS_BOM_EXPL_MAT_V2'
EXPORTING
CAPID = 'PP01'
DATUV = SY-DATUM
MKTLS = 'X'
MTNRV = W_MATNR
WERKS = PR_WERKS
STLAL = W_STLAL
TABLES
STB = IT_STPOX.
ENDIF.
CLEAR W_TCOUNT.
LOOP AT IT_BATCH WHERE MARK = 'X'.
AT NEW WIRECD.
W_TCOUNT = W_TCOUNT + 1.
ENDAT.
ENDLOOP.
DESCRIBE TABLE IT_STPOX LINES SY-TFILL.
IF W_TCOUNT <> SY-TFILL.
MESSAGE E000(ZSFL) WITH 'Select all Components as in BOM'.
ENDIF.
SET SCREEN 0.
SET USER-COMMAND 'BACK'.
WHEN 'SAVE'.
DATA W_MARK TYPE I VALUE 0.
W_COUNT = 5.
CLEAR IT_BACKFLUSH.
REFRESH IT_BACKFLUSH.
LOOP AT IT_CONFIRM.
CLEAR W_ZACQTY.
CLEAR W_ZREQTY.
CLEAR W_ZSCQTY.
CLEAR W_ZSEQTY.
CLEAR W_ENDBIT.
CLEAR W_ENDBIT2.
READ LINE W_COUNT FIELD VALUE IT_CONFIRM-MARK.
IF IT_CONFIRM-MARK EQ 'X'.
READ TABLE I_BATCH WITH KEY MATNR = IT_CONFIRM-MATNR WIRECD = IT_CONFIRM-ZWIRECD
TIMLO = IT_CONFIRM-TIMLO.
IF SY-SUBRC <> 0.
W_MARK = W_MARK + 1.
ENDIF.
READ LINE W_COUNT FIELD VALUE W_ZACQTY.
IT_CONFIRM-ZACQTY = W_ZACQTY.
IF IT_CONFIRM-ZACQTY EQ 0.
IT_CONFIRM-ZCONFIRM = 'X'.
ENDIF.
READ LINE W_COUNT FIELD VALUE W_ZREQTY.
IT_CONFIRM-ZREQTY = W_ZREQTY.
IF IT_CONFIRM-ZREQTY EQ 0.
IT_CONFIRM-ZCONFIRMREJ = 'X'.
ENDIF.
READ LINE W_COUNT FIELD VALUE W_ZSCQTY.
IT_CONFIRM-ZSCQTY = W_ZSCQTY.
IF IT_CONFIRM-ZSCQTY EQ 0.
IT_CONFIRM-ZCONFIRMSC = 'X'.
ENDIF.
READ LINE W_COUNT FIELD VALUE W_ZSEQTY.
IT_CONFIRM-ZSEQTY = W_ZSEQTY.
IF IT_CONFIRM-ZSEQTY EQ 0.
IT_CONFIRM-ZCONFIRMSE = 'X'.
ENDIF.
READ LINE W_COUNT FIELD VALUE W_ENDBIT.
IT_CONFIRM-ENDBIT = W_ENDBIT.
IF IT_CONFIRM-ENDBIT EQ 0.
IT_CONFIRM-ZCONFIRMBIT = 'X'.
ENDIF.
READ LINE W_COUNT FIELD VALUE W_ENDBIT2.
IT_CONFIRM-ENDBIT2 = W_ENDBIT2.
IF IT_CONFIRM-ENDBIT2 EQ 0.
IT_CONFIRM-ZCONFIRMBIT2 = 'X'.
ENDIF.
PERFORM CHECK_FLAG_ROUTINE.
PERFORM CHECK_BATCH.
MODIFY IT_CONFIRM.
CLEAR IT_BACKFLUSH.
MOVE-CORRESPONDING IT_CONFIRM TO IT_BACKFLUSH.
UPDATE ZHT010_FORGE
SET ZACQTY = W_ZACQTY
ZREQTY = W_ZREQTY
ZSCQTY = W_ZSCQTY
ZSEQTY = W_ZSEQTY
ENDBIT = W_ENDBIT
ENDBIT2 = W_ENDBIT2
ZCONFIRM = IT_CONFIRM-ZCONFIRM
ZCONFIRMREJ = IT_CONFIRM-ZCONFIRMREJ
ZCONFIRMSC = IT_CONFIRM-ZCONFIRMSC
ZCONFIRMSE = IT_CONFIRM-ZCONFIRMSE
ZCONFIRMBIT = IT_CONFIRM-ZCONFIRMBIT
ZCONFIRMBIT2 = IT_CONFIRM-ZCONFIRMBIT2
WHERE ZBUDAT EQ IT_CONFIRM-ZBUDAT
AND MATNR EQ IT_CONFIRM-MATNR
AND PLWRK EQ IT_CONFIRM-PLWRK
AND ZSHIFT EQ IT_CONFIRM-ZSHIFT
AND JONUMBER EQ IT_CONFIRM-JONUMBER
AND ZWRKCE EQ IT_CONFIRM-ZWRKCE
AND TIMLO EQ IT_CONFIRM-TIMLO.
Transfer recs into the IT only if atleast one column
needs to be posted.
IF ( IT_CONFIRM-ZCONFIRM = '' OR IT_CONFIRM-ZCONFIRMREJ = ''
OR IT_CONFIRM-ZCONFIRMSC = ''
OR IT_CONFIRM-ZCONFIRMSE = '' OR IT_CONFIRM-ZCONFIRMBIT = ''
OR IT_CONFIRM-ZCONFIRMBIT2 = '' ) .
APPEND IT_BACKFLUSH.
ENDIF.
ENDIF.
W_MOD = SY-TABIX MOD 46.
IF W_MOD EQ 0.
W_COUNT = W_COUNT + 5.
ELSE.
W_COUNT = W_COUNT + 2.
ENDIF.
ENDLOOP.
IF W_MARK > 0.
MESSAGE E000(ZSFL) WITH 'Select the component'.
ENDIF.
DELETE IT_BACKFLUSH WHERE ZACQTY = 0 AND ZREQTY = 0 AND ZSCQTY = 0 AND ZSEQTY = 0.
DESCRIBE TABLE IT_BACKFLUSH.
CHECK SY-TFILL GT 0.
SET PARAMETER ID 'ZPLWRK' FIELD PR_WERKS.
SET PARAMETER ID 'ZBUDAT' FIELD PR_BUDAT.
IF PR_BIN = 'X'.
W_BI = 'N'.
ELSEIF PR_BIA = 'X'.
W_BI = 'A'.
ENDIF.
EXPORT W_BI FROM W_BI TO MEMORY ID 'W_BI'.
EXPORT IT_BACKFLUSH TO MEMORY ID 'CONFIRM'.
EXPORT I_BATCH TO MEMORY ID 'TMPBATCH'.
CALL TRANSACTION 'ZHC010_FINAL'.
SET SCREEN 0.
LEAVE SCREEN.
WHEN 'ENTER'.
W_COUNT = 7.
LOOP AT IT_CONFIRM.
READ LINE W_COUNT FIELD VALUE IT_CONFIRM-MARK.
IF IT_CONFIRM-MARK EQ 'X'.
READ LINE W_COUNT FIELD VALUE W_ZACQTY.
IT_CONFIRM-ZACQTY = W_ZACQTY.
READ LINE W_COUNT FIELD VALUE W_ZREQTY.
IT_CONFIRM-ZREQTY = W_ZREQTY.
READ LINE W_COUNT FIELD VALUE W_ZSCQTY.
IT_CONFIRM-ZSCQTY = W_ZSCQTY.
READ LINE W_COUNT FIELD VALUE W_ZSEQTY.
IT_CONFIRM-ZSEQTY = W_ZSEQTY.
READ LINE W_COUNT FIELD VALUE W_ENDBIT.
IT_CONFIRM-ENDBIT = W_ENDBIT.
READ LINE W_COUNT FIELD VALUE W_ENDBIT2.
IT_CONFIRM-ENDBIT2 = W_ENDBIT2.
MODIFY IT_CONFIRM.
ENDIF.
W_MOD = SY-TABIX MOD 46.
IF W_MOD EQ 0.
W_COUNT = W_COUNT + 7.
ELSE.
W_COUNT = W_COUNT + 1.
ENDIF.
ENDLOOP.
WHEN 'DELETE'.
W_COUNT = 5.
CLEAR IT_BACKFLUSH.
LOOP AT IT_CONFIRM.
READ LINE W_COUNT FIELD VALUE IT_CONFIRM-DELETE.
IF IT_CONFIRM-DELETE EQ 'X'.
Tech Note : Provision to delete any record shld be given cos it wud
create prbs
IF ( IT_CONFIRM-ZCONFIRM = '' AND IT_CONFIRM-ZCONFIRMREJ = ''
AND IT_CONFIRM-ZCONFIRMSC = ''
AND IT_CONFIRM-ZCONFIRMSE = '' AND IT_CONFIRM-ZCONFIRMBIT =
'' AND IT_CONFIRM-ZCONFIRMBIT2 = ''
AND IT_CONFIRM-ZCONFIRMBUR = '' ) .
DELETE FROM ZHT010_FORGE
WHERE ZBUDAT = IT_CONFIRM-ZBUDAT
AND MATNR = IT_CONFIRM-MATNR
AND PLWRK = IT_CONFIRM-PLWRK
AND ZSHIFT = IT_CONFIRM-ZSHIFT
AND ZWRKCE = IT_CONFIRM-ZWRKCE
AND TIMLO = IT_CONFIRM-TIMLO.
ENDIF.
ENDIF.
W_COUNT = W_COUNT + 1.
ENDLOOP.
LEAVE PROGRAM.
WHEN 'RW'.
SET SCREEN 0.
WHEN 'BACK'.
SET SCREEN 0.
ENDCASE.
*& Form check_flag_routine
text
--> p1 text
<-- p2 text
FORM CHECK_FLAG_ROUTINE .
IF IT_CONFIRM-ZCONFIRM EQ 'X'.
IT_CONFIRM-ZACQTY = 0.
ENDIF.
IF IT_CONFIRM-ZCONFIRMREJ EQ 'X'.
IT_CONFIRM-ZREQTY = 0.
ENDIF.
IF IT_CONFIRM-ZCONFIRMSC EQ 'X'.
IT_CONFIRM-ZSCQTY = 0.
ENDIF.
IF IT_CONFIRM-ZCONFIRMSE EQ 'X'.
IT_CONFIRM-ZSEQTY = 0.
ENDIF.
IF IT_CONFIRM-ZCONFIRMBIT EQ 'X'.
IT_CONFIRM-ENDBIT = 0.
ENDIF.
IF IT_CONFIRM-ZCONFIRMBIT2 EQ 'X'.
IT_CONFIRM-ENDBIT2 = 0.
ENDIF.
ENDFORM. " check_flag_routine
*& Form f001-read_mat
text
--> p1 text
<-- p2 text
FORM F001-READ_MAT .
DATA :W_FERTH LIKE MARA-FERTH.
**Note: BREMS = 'X' - give limited explosion
MEHRS = 'X' - give the multi level explosion
LOOP AT IT_CONFIRM.
CLEAR W_STLAL.
SELECT SINGLE STLAL INTO W_STLAL FROM MKAL WHERE WERKS = PR_WERKS AND
MATNR = IT_CONFIRM-MATNR AND
VERID = W_VERID.
CALL FUNCTION 'CS_BOM_EXPL_MAT_V2'
EXPORTING
BREMS = 'X'
CAPID = 'PP01'
DATUV = SY-DATUM
MEHRS = 'X'
MTNRV = IT_CONFIRM-MATNR
WERKS = IT_CONFIRM-PLWRK
STLAL = W_STLAL
TABLES
STB = IT_STPOX
EXCEPTIONS
ALT_NOT_FOUND = 1
CALL_INVALID = 2
MATERIAL_NOT_FOUND = 3
MISSING_AUTHORIZATION = 4
NO_BOM_FOUND = 5
NO_PLANT_DATA = 6
NO_SUITABLE_BOM_FOUND = 7
CONVERSION_ERROR = 8
OTHERS = 9.
IF SY-SUBRC <> 0.
MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.
DELETE IT_STPOX WHERE DUMPS = 'x'.
SORT IT_STPOX.
LOOP AT IT_STPOX INTO WA_STPOX.
CLEAR W_BUOM.
SELECT SINGLE MEINS INTO W_BUOM
FROM MARA WHERE MATNR = IT_CONFIRM-ZWIRECD.
CLEAR IT_ST.
IT_ST-MATNR = IT_CONFIRM-MATNR.
IT_ST-WIRECD = IT_CONFIRM-ZWIRECD.
IT_ST-UOM = W_BUOM.
IT_ST-RMCODE = WA_STPOX-IDNRK.
IT_ST-MEINS = WA_STPOX-MMEIN.
APPEND IT_ST.
ENDLOOP.
ENDLOOP.
SORT IT_ST BY MATNR.
CLEAR: IT_ST.
LOOP AT IT_ST.
SELECT SINGLE FERTH INTO W_FERTH FROM MARA WHERE MATNR = IT_ST-MATNR
CLEAR W_LBKUM.
SELECT SINGLE LBKUM INTO W_LBKUM FROM MBEW
WHERE MBEW~MATNR = IT_ST-WIRECD
AND MBEW~BWKEY = PR_WERKS
AND MBEW~BWTAR = ''.
IT_ST-SPC = W_LBKUM.
MODIFY IT_ST INDEX SY-TABIX TRANSPORTING SPC .
ENDLOOP.
ENDFORM. " f001-read_mat
*& Form f002-get_qty
text
--> p1 text
<-- p2 text
----
Similar Messages
-
How To Print Field Value in TOP-OF-PAGE During Line Selection.
How To Print Field Value in TOP-OF-PAGE During Line Selection when double click on field.
(If my memory serves me well (not used for long time ago)
Assign values to system fields sy-tvar0 - sy-tvar9, they will replace the placeholders "&0" through "&9" in the list headers and column headers.
TOP-OF-PAGE DURING LINE-SELECTION.
WRITE: / 'Interactive Report &3'.
WRITE record-vbeln TO sy-tvar3.
Regards,
Raymond -
How to use AT LINE-SELECTION and AT USER-COMMAND in one report????
Dear all,
I have a problem in reports I want to use AT USER-COMMAND.and AT LINE-SELECTION.both in the one report.
But as soon as I use SET PF-STATUS my AT LINE-SELECTION event stop workingand only AT USER-COMMAND is working.
How can I use both of them in one report for your reference I am giving my test program below.
REPORT ZTEST111 .
SET PF-STATUS '100'.
DO 10 TIMES.
WRITE:/ SY-INDEX.
HIDE SY-INDEX.
ENDDO.
START-OF-SELECTION.
AT LINE-SELECTION.
MESSAGE I002(SY) WITH SY-INDEX.
AT USER-COMMAND.
MESSAGE I002(SY) WITH 'USER COMMAND'.
END-OF-SELECTION.
Thanks in advance
Sachin Gautamhi
Syntax
AT USER-COMMAND.
Effect
This statement defines an event block whose event is triggered by the ABAP runtime environment if, during the display of a screen list, a function with a self-defined function code was chosen.
Note
Self-defined function codes are all those that include character combinations, except for the following:
The function codes PICK and PF## ("##" stands for 01 to 24) do not cause the event AT USER-COMMAND, but the events AT LINE-SELECTION and AT PF##.
All function codes that start with the character "%" are interpreted as system functions and do not cause the event AT USER-COMMAND. The system functions for lists are listed in the following table 1.
The function codes in the following table 2, likewise, do not cause the event AT USER-COMMAND, but are handled by the list processor.
Table 1
Function code Function
%CTX Call a context menu
%EX Exit
%PC Save to file
%PRI Print
%SC Search for ...
%SC+ Find next
%SL Search in office
%ST Save to report tree
Table 2
Function code Function
BACK Back
P- Scroll to previous page
P-- Scroll to first page
P+ Scroll to next page
P++ Scroll to last page
PFILE name Store list lines in a text file named abap.lst in standard character representation in the standard directory of the application server. If a name is entered using name, this is converted to lowercase letters and used as the file name.
PL- Scroll to first line of the page
PL-n Scroll n lines back
PL+ Scroll to last line of the page
PL+n Scroll n lines up
PNOP No effect
PP- Scroll back one page
PP-n Scroll n pages back
PP+ Scroll one page forward
PP+n Scroll n pages forwad
PPn Scroll to beginning of page n
PRI, PRINT Print
PS-- Scroll to first column
PS++ Scroll to last column
PS- Scroll one column to the left
PS-n Scroll n columns to the left
PS+ Scroll one column to the right
PS+n Scroll n columns to the right
PSn Scroll to column n
PZn Scroll to line n
RW Cancel -
At line selection in alv report
hi,
i had developed a code in which at 1st execution the normal output is displayed and if i click on a purticular Itemid it displays the whole of items and i want to display only that item's data which i had clicked on.
following is the code which i am using for the at line-selection.
**BEGIN - TEST CODE FOR LINE SELECTION**
data: fld LIKE ITAB-ITEMID,
val LIKE ITAB-ITEMID.
at line-selection.
get cursor field fld value val.
IF fld = 'ITAB-ITEMID'.
SET PARAMETER ID 'ANR' FIELD val.
CLEAR ITAB-ITEMID.
ENDIF.
PERFORM PRN_SMSTOCK_ALV USING VAL.
IF SY-SUBRC <> 0.
MESSAGE 'NO RECORD FOUND' TYPE 'W'.
ENDIF.
FORM PRN_SMSTOCK_ALV USING VAL.
*****END OF TEST CODE FOR LINE SELECTION******
plzz help me out by providing the solution for this problem.Hi,
You need to add extra piece of code as below:
call function 'REUSE_ALV_GRID_DISPLAY'
exporting
i_callback_program = gd_repid
i_callback_top_of_page = 'TOP-OF-PAGE'
I_callback_user_command = 'USER_COMMAND' "see FORM
is_layout = gd_layout
it_fieldcat = fieldcatalog[]
i_save = 'X'
tables
t_outtab = it_ekko
exceptions
program_error = 1
others = 2.
* 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.
"For further information please refer the link below :
http://www.sapdev.co.uk/reporting/alv/alvgrid_ucomm.htm
Thanks,
Sriram Ponna. -
Hi guys: I need to double click on a field in the ALV report that should bring up another structure (which I have created) called s_det
s_det has only document number & company code.
Please provide the code for doing this in ALV. I know I cant use At Line Selection. Please give me simple code.
thanks so much
BrianHi
take this as an example for ur solution.
In this if we double click on first level display then it opens second level display.Just have a look on the following code.
This is Interactive ALV report of displaying each row with colours and Headers.
TYPE-POOLS SLIS.
TYPES: BEGIN OF I_EKKO,
EBELN LIKE EKKO-EBELN,
AEDAT LIKE EKKO-AEDAT,
BUKRS LIKE EKKO-BUKRS,
BSART LIKE EKKO-BSART,
LIFNR LIKE EKKO-LIFNR,
L_COLOR(4) TYPE C,
END OF I_EKKO.
DATA: IT_EKKO TYPE STANDARD TABLE OF I_EKKO INITIAL SIZE 0,
WA_EKKO TYPE I_EKKO.
TYPES: BEGIN OF I_EKPO,
EBELN LIKE EKPO-EBELN,
EBELP LIKE EKPO-EBELP,
MATNR LIKE EKPO-MATNR,
MENGE LIKE EKPO-MENGE,
MEINS LIKE EKPO-MEINS,
NETPR LIKE EKPO-NETPR,
L_COLOR1(4) TYPE C,
END OF I_EKPO.
DATA: IT_EKPO TYPE STANDARD TABLE OF I_EKPO INITIAL SIZE 0,
WA_EKPO TYPE I_EKPO.
DATA: V_REPID TYPE SY-REPID,
I_FLDCAT TYPE SLIS_T_FIELDCAT_ALV,
WA_FLDCAT TYPE SLIS_FIELDCAT_ALV,
I_EVENTS TYPE SLIS_T_EVENT,
WA_EVENT TYPE SLIS_ALV_EVENT,
GD_LAYOUT TYPE SLIS_LAYOUT_ALV,
GD_LAYOUT1 TYPE SLIS_LAYOUT_ALV.
DATA: I_TITLE_EKKO TYPE LVC_TITLE VALUE 'FIRST ALV REPORT',
I_TITLE_EKPO TYPE LVC_TITLE VALUE 'SECONDARY ALV REPORT'.
INITIALIZATION.
V_REPID = SY-REPID.
PERFORM FLDCATALOG.
PERFORM CALL_EVENTS.
PERFORM POPULATE_EVENT.
PERFORM BLD_LAYOUT.
PERFORM BLD_LAYOUT1.
START-OF-SELECTION.
PERFORM DATA_RETRIEVAL.
PERFORM DISPLAY_ALV_REPORT.
FORM FLDCATALOG.
WA_FLDCAT-TABNAME = 'IT_EKKO'.
WA_FLDCAT-FIELDNAME = 'EBELN'.
WA_FLDCAT-SELTEXT_M = 'PO NUMBER'.
APPEND WA_FLDCAT TO I_FLDCAT.
CLEAR WA_FLDCAT.
WA_FLDCAT-TABNAME = 'IT_EKKO'.
WA_FLDCAT-FIELDNAME = 'AEDAT'.
WA_FLDCAT-SELTEXT_M = 'DATE'.
APPEND WA_FLDCAT TO I_FLDCAT.
CLEAR WA_FLDCAT.
WA_FLDCAT-TABNAME = 'IT_EKKO'.
WA_FLDCAT-FIELDNAME = 'BUKRS'.
WA_FLDCAT-SELTEXT_M = 'DOCUMENT TYPE'.
APPEND WA_FLDCAT TO I_FLDCAT.
CLEAR WA_FLDCAT.
WA_FLDCAT-TABNAME = 'IT_EKKO'.
WA_FLDCAT-FIELDNAME = 'LIFNR'.
WA_FLDCAT-SELTEXT_M = 'VENDOR CODE'.
APPEND WA_FLDCAT TO I_FLDCAT.
CLEAR WA_FLDCAT.
ENDFORM.
FORM CALL_EVENTS.
CALL FUNCTION 'REUSE_ALV_EVENTS_GET'
EXPORTING
I_LIST_TYPE = 0
IMPORTING
ET_EVENTS = I_EVENTS
EXCEPTIONS
LIST_TYPE_WRONG = 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.
FORM POPULATE_EVENT.
*READ TABLE I_EVENTS INTO WA_EVENT WITH KEY NAME = 'TOP_OF_PAGE'.
*IF SY-SUBRC = 0.
WA_EVENT-FORM = 'TOP_OF_PAGE'.
MODIFY I_EVENTS FROM WA_EVENT TRANSPORTING FORM WHERE NAME = WA_EVENT-FORM.
*ENDIF.
READ TABLE I_EVENTS INTO WA_EVENT WITH KEY NAME = 'USER_COMMAND'.
IF SY-SUBRC = 0.
WA_EVENT-FORM = 'USER_COMMAND'.
MODIFY I_EVENTS FROM WA_EVENT TRANSPORTING FORM WHERE NAME = WA_EVENT-NAME.
ENDIF.
ENDFORM.
FORM BLD_LAYOUT.
GD_LAYOUT-INFO_FIELDNAME = 'L_COLOR'.
ENDFORM.
FORM DATA_RETRIEVAL.
DATA LN_COLOR(1) TYPE C.
SELECT EBELN AEDAT BUKRS BSART LIFNR
FROM EKKO INTO TABLE IT_EKKO.
LOOP AT IT_EKKO INTO WA_EKKO.
LN_COLOR = LN_COLOR + 1.
IF LN_COLOR = 8.
LN_COLOR = 1.
ENDIF.
CONCATENATE 'C' LN_COLOR '11' INTO WA_EKKO-L_COLOR.
MODIFY IT_EKKO FROM WA_EKKO.
ENDLOOP.
ENDFORM.
FORM DISPLAY_ALV_REPORT.
CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
EXPORTING
I_INTERFACE_CHECK = ' '
I_BYPASSING_BUFFER = ' '
I_BUFFER_ACTIVE = ' '
I_CALLBACK_PROGRAM = V_REPID
I_CALLBACK_PF_STATUS_SET = ' '
I_CALLBACK_USER_COMMAND = 'USER_COMMAND'
I_CALLBACK_TOP_OF_PAGE = '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_TITLE_EKKO
I_GRID_SETTINGS =
IS_LAYOUT = GD_LAYOUT
IT_FIELDCAT = I_FLDCAT[]
IT_EXCLUDING =
IT_SPECIAL_GROUPS =
IT_SORT =
IT_FILTER =
IS_SEL_HIDE =
I_DEFAULT = 'X'
I_SAVE = 'A'
IS_VARIANT =
IT_EVENTS = I_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 = IT_EKKO
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.
FORM TOP_OF_PAGE.
DATA: T_HEADER TYPE SLIS_T_LISTHEADER,
WA_HEADER TYPE SLIS_LISTHEADER.
WA_HEADER-TYP = 'H'.
WA_HEADER-INFO = 'THIS IS MY FIRST ALV'.
APPEND WA_HEADER TO T_HEADER.
CALL FUNCTION 'REUSE_ALV_COMMENTARY_WRITE'
EXPORTING
IT_LIST_COMMENTARY = T_HEADER
I_LOGO =
I_END_OF_LIST_GRID =
I_ALV_FORM =
ENDFORM.
FORM USER_COMMAND USING R_COMM TYPE SY-UCOMM
RS_SELFIELD TYPE SLIS_SELFIELD.
CASE R_COMM.
WHEN '&IC1'.
READ TABLE IT_EKKO INTO WA_EKKO INDEX RS_SELFIELD-TABINDEX.
PERFORM FLDCAT_EKPO.
PERFORM CALL_EVENT_EKPO.
PERFORM POPULATE_EVENT_EKPO.
PERFORM DATA_RETRIEVAL_EKPO.
PERFORM DISPLAY_ALV_REPORT_EKPO.
ENDCASE.
ENDFORM.
FORM FLDCAT_EKPO.
WA_FLDCAT-TABNAME = 'IT_EKPO'.
WA_FLDCAT-FIELDNAME = 'EBELN'.
WA_FLDCAT-SELTEXT_M = 'PO NUMBER'.
APPEND WA_FLDCAT TO I_FLDCAT.
CLEAR WA_EKPO.
WA_FLDCAT-TABNAME = 'IT_EKPO'.
WA_FLDCAT-FIELDNAME = 'EBELP'.
WA_FLDCAT-SELTEXT_M = 'LINE NO'.
APPEND WA_FLDCAT TO I_FLDCAT.
CLEAR WA_EKPO.
WA_FLDCAT-TABNAME = 'IT_EKPO'.
WA_FLDCAT-FIELDNAME = 'MATNR'.
WA_FLDCAT-SELTEXT_M = 'MATERIAL NUMBER'.
APPEND WA_FLDCAT TO I_FLDCAT.
CLEAR WA_FLDCAT.
WA_FLDCAT-TABNAME = 'IT_EKPO'.
WA_FLDCAT-FIELDNAME = 'MENGE'.
WA_FLDCAT-SELTEXT_M = 'QUANTITY'.
APPEND WA_FLDCAT TO I_FLDCAT.
CLEAR WA_FLDCAT.
WA_FLDCAT-TABNAME = 'IT_EKPO'.
WA_FLDCAT-FIELDNAME = 'MEINS'.
WA_FLDCAT-SELTEXT_M = 'BASE UNIT OF MEASURE'.
APPEND WA_FLDCAT TO I_FLDCAT.
CLEAR WA_FLDCAT.
WA_FLDCAT-TABNAME = 'IT_EKPO'.
WA_FLDCAT-FIELDNAME = 'NETPR'.
WA_FLDCAT-SELTEXT_M = 'PRICE'.
APPEND WA_FLDCAT TO I_FLDCAT.
CLEAR WA_FLDCAT.
ENDFORM.
FORM CALL_EVENT_EKPO.
CALL FUNCTION 'REUSE_ALV_EVENTS_GET'
EXPORTING
I_LIST_TYPE = 0
IMPORTING
ET_EVENTS = I_EVENTS
EXCEPTIONS
LIST_TYPE_WRONG = 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.
*FORM POPULATE_EVENT_EKPO.
*READ TABLE I_EVENTS INTO WA_EVENT WITH KEY NAME = 'TOP_OF_PAGE'.
*IF SY-SUBRC = 0.
WA_EVENT-FORM = 'TOP_OF_PAGE'.
MODIFY I_EVENTS FROM WA_EVENT TRANSPORTING FORM WHERE NAME = WA_EVENT-FORM.
*ENDIF.
*ENDFORM.
FORM BLD_LAYOUT1.
GD_LAYOUT1-INFO_FIELDNAME = 'L_COLOR1'.
ENDFORM.
FORM DATA_RETRIEVAL_EKPO.
DATA LN_COLOR1(1) TYPE C.
SELECT EBELN EBELP MATNR MENGE MEINS NETPR
INTO TABLE IT_EKPO
FROM EKPO.
LOOP AT IT_EKPO INTO WA_EKPO.
LN_COLOR1 = LN_COLOR1 + 1.
IF LN_COLOR1 = 8.
LN_COLOR1 = 1.
ENDIF.
CONCATENATE 'C' LN_COLOR1 '11' INTO WA_EKPO-L_COLOR1.
MODIFY IT_EKPO FROM WA_EKPO.
ENDLOOP.
ENDFORM.
FORM DISPLAY_ALV_REPORT_EKPO.
CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
EXPORTING
I_INTERFACE_CHECK = ' '
I_BYPASSING_BUFFER = ' '
I_BUFFER_ACTIVE = ' '
I_CALLBACK_PROGRAM = V_REPID
I_CALLBACK_PF_STATUS_SET = ' '
I_CALLBACK_USER_COMMAND = ' '
I_CALLBACK_TOP_OF_PAGE = 'TOP_OF_PAGE1'
I_CALLBACK_HTML_TOP_OF_PAGE = ' '
I_CALLBACK_HTML_END_OF_LIST = ' '
I_STRUCTURE_NAME =
I_BACKGROUND_ID = ' '
I_GRID_TITLE = I_TITLE_EKPO
I_GRID_SETTINGS =
IS_LAYOUT = GD_LAYOUT1
IT_FIELDCAT = I_FLDCAT[]
IT_EXCLUDING =
IT_SPECIAL_GROUPS =
IT_SORT =
IT_FILTER =
IS_SEL_HIDE =
I_DEFAULT = 'X'
I_SAVE = 'A'
IS_VARIANT =
IT_EVENTS = I_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 = IT_EKPO
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.
FORM TOP_OF_PAGE1.
DATA: T_HEADER1 TYPE SLIS_T_LISTHEADER,
WA_HEADER1 TYPE SLIS_LISTHEADER.
WA_HEADER1-TYP = 'H'.
WA_HEADER1-INFO = 'SECONDARY ALV LEVEL'.
APPEND WA_HEADER1 TO T_HEADER1.
CALL FUNCTION 'REUSE_ALV_COMMENTARY_WRITE'
EXPORTING
IT_LIST_COMMENTARY = T_HEADER1
I_LOGO =
I_END_OF_LIST_GRID =
I_ALV_FORM = .
ENDFORM.
reward points,if it is useful.
Thanks,
chandu. -
How the Pop UP window got closed on line select
Hi All,
at BP_ADDR component we are calling component BP_SEARCH_HELPS by cross component usage on F4,
then we are doing bank details search, then on single line select at View BP_SEARCH_HELPS/BankKeySearchHelpResult
then it goes to event handler method EH_ONSELECT then.
inside this method we have code for to call window outbound plug RETURNRESULT'
METHOD eh_onselect.
via viewmanager:
DATA: lr_window TYPE REF TO cl_bsp_wd_window.
lr_window ?= me->view_manager->get_window_controller( ).
lr_window->call_outbound_plug( iv_outbound_plug = 'RETURNRESULT' ).
endmethod.
but at Window out bound plug there is no code for cross comp Window navigation (like Fire_outbound_plug with navigation link)
then also popup is closing and it gets navigating to BP_ADDR component, how it happenning...?
code at window BP_SEARCH_HELPS/BankKeySearchHelpW outbound plug is
method OP_RETURNRESULT.
endmethod.
there is no navigation link also defined for window BP_SEARCH_HELPS/BankKeySearchHelpW at Runtime repository.
one more question is how the event handler method EH_ONSELECT is executed for line select (we r not define any server event for any field of table's context node), is it property of Table context node?
Thanks,
VjMhydHi VJ,
I hope you are able to find the answer to your question that "how pop up is closing and navigation is done to BP_ADDR component" if not here is the answer.
Go to your window class and search for method call_outbound_plug ( remove the filter check box ). inside that method firstly your outbound plug method RETURNRESULT will be called and then you will find another method fire_outbound_plug. inside this method there is code to navigate back and close the pop up. this code is only triggered for pop up cases and that's how navigations takes places.
check if this is a popup rep. view
if ME->IS_TOPLEVEL_WINDOW = ABAP_TRUE.
We ignore the navigation for popups but save the outbound plug if given
and tell the current popup to get closed
data: LV_VIEW_MANAGER type ref to LCL_VIEW_MANAGER,
LV_APPL_CONTROLLER type ref to CL_BSP_WD_APPL_CONTROLLER.
try.
LV_VIEW_MANAGER ?= ME->VIEW_MANAGER.
LV_APPL_CONTROLLER ?= LV_VIEW_MANAGER->GET_APPLICATION_CONTROLLER( ).
LV_APPL_CONTROLLER->POPUP_MANAGER->CLOSE_POPUP( IV_OUTBOUND_PLUG ).
catch CX_SY_MOVE_CAST_ERROR. "#EC NO_HANDLER
endtry.
I hope this clarifies your issue.
Thanks
Sudhir Grover -
DYNP_VALUES_READ Limitations for multiple lines select options
Hi all !
First post here, but a tough one I think. Here is my inquiry :
I have worked on an specific abap function used in many long abap list reports. Theses reports are launched in background processing. The aim of this routine is to stop the report execution if a background job with the same selection parameters is already launched for the current user (to Prevent useless several launch of a time-expensive program).
Because this routine is dynamic, I read the selection screen of the current report with the function 'DYNP_VALUES_READ'. And I compare the result with the variant of the backgroung job (read with function 'RS_VARIANT_CONTENTS').
The real problem is that function "DYNP_VALUES_READ" only extract the first line of select-options. I found an alternative solution to extract the select options values (a dynamic assign with field symbols), but external conversions (for WBS elements for example ) are lost, so the comparison detects differences between the background job's variant values and the current selection screen values.
Does anybody know a way to get entire select options values from a selection screen just as they are displayed on screen ?
Thanks for reading my message
Message was edited by: Thomas BRICOUTThomas,
Perhaps the following code will help you. A function module in the code captures everything on the selection screen into an internal table. It doesn't actually capture the information the way you want it, but I believe you will be able to work with it to achieve your desired result. If it doesn't meet your needs, it is still useful for printing selection screen fields and their values.
Bruce
report zybttes2.
tables: zf137, " 137 General Ledger Document Details Table
zf137a. " 137 General Ledger Document Details Table, Archive
selection-screen begin of block b1 with frame title text-004." BCT003
parameters: p_zf137 radiobutton group xxx, " BCT003
p_zf137a radiobutton group xxx. " BCT003
selection-screen end of block b1. " BCT003
selection-screen begin of block parameter with frame title text-001.
selection-screen skip 1.
select-options: s_date for zf137-zzpostdat.
selection-screen skip 1.
selection-screen begin of line.
selection-screen comment 3(6) text-002.
selection-screen end of line.
selection-screen skip 1.
select-options: s_loan for zf137-zzloan.
selection-screen skip 1.
selection-screen begin of line.
selection-screen comment 3(6) text-003.
selection-screen end of line.
selection-screen skip 1.
select-options: s_ccentr for zf137-zzcostctr.
selection-screen skip 1.
selection-screen end of block parameter.
data: ww(3) type n.
data: zz(3) type c.
data: c1(1) type c value '0'.
do 2 times.
ww = ww + 1.
zz = ww. shift zz left deleting leading c1.
write: / zz.
enddo.
Capture and then print the selection screen fields and their values
data: begin of i_info occurs 20,
flag,
olength type x,
line like raldb-infoline,
end of i_info.
call function 'PRINT_SELECTIONS'
exporting
mode = 'TABLE'
rname = sy-cprog
rvariante = sy-slset
tables
infotab = i_info.
loop at i_info.
write: / i_info-line.
endloop.
write: / 'end'. -
How can I see the numbers of lines selected in a Multiple Selection Box?
Hi everybody,
what I want to do is to get in an array of numbers all the lines selected.
For instance, if I select the rows 1,4 and 7 from a Multiple Selection Box
of 10 rows in total, how can I see that array when the rows 1,4 and 7 are
selected?
Because I want to connect this numbers to Case Structure and if the only
rows selected are 1,4 and 7, the Case Structure will only realize this cases,
and the rest will be ignored.
I'm sure there is some way to get what I want.
Thank you for your helpful.THANK YOU VERY MUCH. IT WORKS PERFECTLY!!!
"Dennis Knutson" wrote:
>>If you just wire the list box to an array indicator, you will see that
the>output is an array of the selected items. Auto index the array through
a>for loop that has your case statement inside.>>Dennis Knutson>>"Carlos
Jorge" wrote>>Hi everybody,>>what I want to do is to
get in an array of numbers all the>lines selected.>For instance, if I select
the rows 1,4 and 7 from a Multiple>Selection Box>of 10 rows in total, how
can I see that array when the rows>1,4 and 7 are>selected?>>Because I want
to connect this numbers to Case Structure>and if the only>rows selected are
1,4 and 7, the Case Structure will only>realize this cases,>and
the rest
will be ignored.>>I'm sure there is some>way to get what I want.>>Thank you
for your helpful.>> -
How to implement line selectability for a table control using table Wizard?
Hello SDN Community,
I have created a table control using the Table Wizard. I found my exact question in this forum, but unfortunately it had not been andsered. While I cannot paste a screen-print into this plane-text area, here are the steps I followed...
1) SE51
2) Create new screen 0100
3) Click Layout button
4) Clidk Table Control (with Wizard) and draw box on canvas.
5) Step is "Start" - click Continue
6) Step is "Name of Table Control" - provided name
7) Step is "Table Name" - provided name of dictionary table (AUFK)
8) Step is "Definition of Columns" - selected order numver and order text
9) Step is "Table Control Attributes" - Line Selectability is in display mode - cannot set it.
I would like to have a selectability column for my table. Would appreciate any insight into how to do this.
Thank you,
Dean Atteberry.This is a puzzling...
For the table control wizard, in the Table Control Attributes step, I was able to get line selectability to open up by declaring a char01 data element at the beginning of my type.
The puzzling is in regards to the "Selection col. fld" entry field.
If I leave it blank and try to go to the next step, I get message "Enter the name of the selection column if you are using a program table"
So it looked like it wanted to know the name of my selection column. So I type in "CHAR1". and got the message "The field "CHAR1" for the selection column is already contained in the table."
Hmmmmm.... don't understand............
Dean Atteberry. -
TOP-OF-PAGE During line-selection in alv report
Hi Expart
In intractive Alv report u using top-of-page during line-selection . If u using so u give me one example with codeing .
Regards
BhabaniHi,
try this code...
*& Report ZCS_PRG8
REPORT Z_SJALV__PRG8.
TYPE-POOLS: SLIS.
*type declaration for values from ekko
TYPES: BEGIN OF I_EKKO,
EBELN LIKE EKKO-EBELN,
AEDAT LIKE EKKO-AEDAT,
BUKRS LIKE EKKO-BUKRS,
BSART LIKE EKKO-BSART,
LIFNR LIKE EKKO-LIFNR,
END OF I_EKKO.
DATA: IT_EKKO TYPE STANDARD TABLE OF I_EKKO INITIAL SIZE 0,
WA_EKKO TYPE I_EKKO.
*type declaration for values from ekpo
TYPES: BEGIN OF I_EKPO,
EBELN LIKE EKPO-EBELN,
EBELP LIKE EKPO-EBELP,
MATNR LIKE EKPO-MATNR,
MENGE LIKE EKPO-MENGE,
MEINS LIKE EKPO-MEINS,
NETPR LIKE EKPO-NETPR,
END OF I_EKPO.
DATA: IT_EKPO TYPE STANDARD TABLE OF I_EKPO INITIAL SIZE 0,
WA_EKPO TYPE I_EKPO .
*variable for Report ID
DATA: V_REPID LIKE SY-REPID .
*declaration for fieldcatalog
DATA: I_FIELDCAT TYPE SLIS_T_FIELDCAT_ALV,
WA_FIELDCAT TYPE SLIS_FIELDCAT_ALV.
DATA: IT_LISTHEADER TYPE SLIS_T_LISTHEADER.
declaration for events table where user comand or set PF status will
be defined
DATA: V_EVENTS TYPE SLIS_T_EVENT,
WA_EVENT TYPE SLIS_ALV_EVENT.
declartion for layout
DATA: ALV_LAYOUT TYPE SLIS_LAYOUT_ALV.
declaration for variant(type of display we want)
DATA: I_VARIANT TYPE DISVARIANT,
I_VARIANT1 TYPE DISVARIANT,
I_SAVE(1) TYPE C.
*PARAMETERS : p_var TYPE disvariant-variant.
*Title displayed when the alv list is displayed
DATA: I_TITLE_EKKO TYPE LVC_TITLE VALUE 'FIRST LIST DISPLAYED'.
DATA: I_TITLE_EKPO TYPE LVC_TITLE VALUE 'SECONDRY LIST DISPLAYED'.
INITIALIZATION.
V_REPID = SY-REPID.
PERFORM BUILD_FIELDCATLOG.
PERFORM EVENT_CALL.
PERFORM POPULATE_EVENT.
START-OF-SELECTION.
PERFORM DATA_RETRIEVAL.
PERFORM BUILD_LISTHEADER USING IT_LISTHEADER.
PERFORM DISPLAY_ALV_REPORT.
*& Form BUILD_FIELDCATLOG
Fieldcatalog has all the field details from ekko
FORM BUILD_FIELDCATLOG.
WA_FIELDCAT-TABNAME = 'IT_EKKO'.
WA_FIELDCAT-FIELDNAME = 'EBELN'.
WA_FIELDCAT-SELTEXT_M = 'PO NO.'.
APPEND WA_FIELDCAT TO I_FIELDCAT.
CLEAR WA_FIELDCAT.
WA_FIELDCAT-TABNAME = 'IT_EKKO'.
WA_FIELDCAT-FIELDNAME = 'AEDAT'.
WA_FIELDCAT-SELTEXT_M = 'DATE.'.
APPEND WA_FIELDCAT TO I_FIELDCAT.
CLEAR WA_FIELDCAT.
WA_FIELDCAT-TABNAME = 'IT_EKKO'.
WA_FIELDCAT-FIELDNAME = 'BUKRS'.
WA_FIELDCAT-SELTEXT_M = 'COMPANY CODE'.
APPEND WA_FIELDCAT TO I_FIELDCAT.
CLEAR WA_FIELDCAT.
WA_FIELDCAT-TABNAME = 'IT_EKKO'.
WA_FIELDCAT-FIELDNAME = 'BUKRS'.
WA_FIELDCAT-SELTEXT_M = 'DOCMENT TYPE'.
APPEND WA_FIELDCAT TO I_FIELDCAT.
CLEAR WA_FIELDCAT.
WA_FIELDCAT-TABNAME = 'IT_EKKO'.
WA_FIELDCAT-FIELDNAME = 'LIFNR'.
WA_FIELDCAT-NO_OUT = 'X'.
WA_FIELDCAT-SELTEXT_M = 'VENDOR CODE'.
APPEND WA_FIELDCAT TO I_FIELDCAT.
CLEAR WA_FIELDCAT.
ENDFORM. "BUILD_FIELDCATLOG
*& Form EVENT_CALL
we get all events - TOP OF PAGE or USER COMMAND in table v_events
FORM EVENT_CALL.
CALL FUNCTION 'REUSE_ALV_EVENTS_GET'
EXPORTING
I_LIST_TYPE = 0
IMPORTING
ET_EVENTS = V_EVENTS
EXCEPTIONS
LIST_TYPE_WRONG = 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. "EVENT_CALL
*& Form POPULATE_EVENT
Events populated for TOP OF PAGE & USER COMAND
FORM POPULATE_EVENT.
READ TABLE V_EVENTS INTO WA_EVENT WITH KEY NAME = 'TOP_OF_PAGE'.
IF SY-SUBRC EQ 0.
WA_EVENT-FORM = 'TOP_OF_PAGE'.
MODIFY V_EVENTS FROM WA_EVENT TRANSPORTING FORM WHERE NAME =
WA_EVENT-FORM.
ENDIF.
READ TABLE V_EVENTS INTO WA_EVENT WITH KEY NAME = 'USER_COMMAND'.
IF SY-SUBRC EQ 0.
WA_EVENT-FORM = 'USER_COMMAND'.
MODIFY V_EVENTS FROM WA_EVENT TRANSPORTING FORM WHERE NAME =
WA_EVENT-NAME.
ENDIF.
ENDFORM. "POPULATE_EVENT
*& Form data_retrieval
retreiving values from the database table ekko
FORM DATA_RETRIEVAL.
SELECT EBELN AEDAT BUKRS BSART LIFNR FROM EKKO INTO TABLE IT_EKKO.
ENDFORM. "data_retrieval
*& Form bUild_listheader
text
-->I_LISTHEADEtext
FORM BUILD_LISTHEADER USING IT_LISTHEADER TYPE SLIS_T_LISTHEADER.
DATA HLINE TYPE SLIS_LISTHEADER.
HLINE-INFO = 'this is my first alv pgm'.
HLINE-TYP = 'H'.
ENDFORM. "build_listheader
*& Form display_alv_report
text
FORM DISPLAY_ALV_REPORT.
V_REPID = SY-REPID.
CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
EXPORTING
I_CALLBACK_PROGRAM = V_REPID
I_CALLBACK_PF_STATUS_SET = ' '
I_CALLBACK_USER_COMMAND = 'USER_COMMAND'
I_CALLBACK_TOP_OF_PAGE = 'TOP_OF_PAGE'
I_GRID_TITLE = I_TITLE_EKKO
I_GRID_SETTINGS =
IS_LAYOUT = ALV_LAYOUT
IT_FIELDCAT = I_FIELDCAT[]
IT_EXCLUDING =
IT_SPECIAL_GROUPS =
IT_SORT =
IT_FILTER =
IS_SEL_HIDE =
i_default = 'ZLAY1'
I_SAVE = 'A'
is_variant = i_variant
IT_EVENTS = V_EVENTS
TABLES
T_OUTTAB = IT_EKKO
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 TOP_OF_PAGE
text
FORM TOP_OF_PAGE.
CALL FUNCTION 'REUSE_ALV_COMMENTARY_WRITE'
EXPORTING
IT_LIST_COMMENTARY = IT_LISTHEADER
i_logo =
I_END_OF_LIST_GRID =
ENDFORM. "TOP_OF_PAGE
*& Form USER_COMMAND
text
-->R_UCOMM text
-->, text
-->RS_SLEFIELDtext
FORM USER_COMMAND USING R_UCOMM LIKE SY-UCOMM
RS_SELFIELD TYPE SLIS_SELFIELD.
CASE R_UCOMM.
WHEN '&IC1'.
READ TABLE IT_EKKO INTO WA_EKKO INDEX RS_SELFIELD-TABINDEX.
PERFORM BUILD_FIELDCATLOG_EKPO.
PERFORM EVENT_CALL_EKPO.
PERFORM POPULATE_EVENT_EKPO.
PERFORM DATA_RETRIEVAL_EKPO.
PERFORM BUILD_LISTHEADER_EKPO USING IT_LISTHEADER.
PERFORM DISPLAY_ALV_EKPO.
ENDCASE.
ENDFORM. "user_command
*& Form BUILD_FIELDCATLOG_EKPO
text
FORM BUILD_FIELDCATLOG_EKPO.
WA_FIELDCAT-TABNAME = 'IT_EKPO'.
WA_FIELDCAT-FIELDNAME = 'EBELN'.
WA_FIELDCAT-SELTEXT_M = 'PO NO.'.
APPEND WA_FIELDCAT TO I_FIELDCAT.
CLEAR WA_FIELDCAT.
WA_FIELDCAT-TABNAME = 'IT_EKPO'.
WA_FIELDCAT-FIELDNAME = 'EBELP'.
WA_FIELDCAT-SELTEXT_M = 'LINE NO'.
APPEND WA_FIELDCAT TO I_FIELDCAT.
CLEAR WA_FIELDCAT.
WA_FIELDCAT-TABNAME = 'I_EKPO'.
WA_FIELDCAT-FIELDNAME = 'MATNR'.
WA_FIELDCAT-SELTEXT_M = 'MATERIAL NO.'.
APPEND WA_FIELDCAT TO I_FIELDCAT.
CLEAR WA_FIELDCAT.
WA_FIELDCAT-TABNAME = 'I_EKPO'.
WA_FIELDCAT-FIELDNAME = 'MENGE'.
WA_FIELDCAT-SELTEXT_M = 'QUANTITY'.
APPEND WA_FIELDCAT TO I_FIELDCAT.
CLEAR WA_FIELDCAT.
WA_FIELDCAT-TABNAME = 'I_EKPO'.
WA_FIELDCAT-FIELDNAME = 'MEINS'.
WA_FIELDCAT-SELTEXT_M = 'UOM'.
APPEND WA_FIELDCAT TO I_FIELDCAT.
CLEAR WA_FIELDCAT.
WA_FIELDCAT-TABNAME = 'I_EKPO'.
WA_FIELDCAT-FIELDNAME = 'NETPR'.
WA_FIELDCAT-SELTEXT_M = 'PRICE'.
APPEND WA_FIELDCAT TO I_FIELDCAT.
CLEAR WA_FIELDCAT.
ENDFORM. "BUILD_FIELDCATLOG_EKPO
*& Form event_call_ekpo
we get all events - TOP OF PAGE or USER COMMAND in table v_events
FORM EVENT_CALL_EKPO.
CALL FUNCTION 'REUSE_ALV_EVENTS_GET'
EXPORTING
I_LIST_TYPE = 0
IMPORTING
ET_EVENTS = V_EVENTS
EXCEPTIONS
LIST_TYPE_WRONG = 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. "event_call_ekpo
*& Form POPULATE_EVENT
Events populated for TOP OF PAGE & USER COMAND
FORM POPULATE_EVENT_EKPO.
READ TABLE V_EVENTS INTO WA_EVENT WITH KEY NAME = 'TOP_OF_PAGE'.
IF SY-SUBRC EQ 0.
WA_EVENT-FORM = 'TOP_OF_PAGE'.
MODIFY V_EVENTS FROM WA_EVENT TRANSPORTING FORM WHERE NAME =
WA_EVENT-FORM.
ENDIF.
ENDFORM. "POPULATE_EVENT
*& Form TOP_OF_PAGE
text
FORM F_TOP_OF_PAGE.
CALL FUNCTION 'REUSE_ALV_COMMENTARY_WRITE'
EXPORTING
IT_LIST_COMMENTARY = IT_LISTHEADER
i_logo =
I_END_OF_LIST_GRID =
ENDFORM. "TOP_OF_PAGE
*& Form USER_COMMAND
text
-->R_UCOMM text
-->, text
-->RS_SLEFIELDtext
*retreiving values from the database table ekko
FORM DATA_RETRIEVAL_EKPO.
SELECT EBELN EBELP MATNR MENGE MEINS NETPR FROM EKPO INTO TABLE IT_EKPO.
ENDFORM.
FORM BUILD_LISTHEADER_EKPO USING I_LISTHEADER TYPE SLIS_T_LISTHEADER.
DATA: HLINE1 TYPE SLIS_LISTHEADER.
HLINE1-TYP = 'H'.
HLINE1-INFO = 'CHECKING PGM'.
ENDFORM.
FORM DISPLAY_ALV_EKPO.
CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
EXPORTING
I_INTERFACE_CHECK = ' '
I_BYPASSING_BUFFER = ' '
I_BUFFER_ACTIVE = ' '
I_CALLBACK_PROGRAM = V_REPID
I_CALLBACK_PF_STATUS_SET = ' '
I_CALLBACK_USER_COMMAND = 'F_USER_COMMAND'
I_CALLBACK_TOP_OF_PAGE = '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_TITLE_EKPO
I_GRID_SETTINGS =
IS_LAYOUT =
IT_FIELDCAT = I_FIELDCAT[]
IT_EXCLUDING =
IT_SPECIAL_GROUPS =
IT_SORT =
IT_FILTER =
IS_SEL_HIDE =
I_DEFAULT =
I_SAVE = 'A'
IS_VARIANT =
IT_EVENTS = V_EVENTS
TABLES
T_OUTTAB = IT_EKPO
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.
reward if helpful
regards
Shashi -
Page number in Top of page during line selection
Hi All,
I am generating an interactive report.
I want to display the same header at each page break.
How to restrict the page size in At line-selection?
I want to display page in format Page X of Y for each page break?How to handle it?
Thanks in advance.
Regards,
SandyHi,
Try the code:
REPORT ZPAGETEST NO STANDARD PAGE HEADING LINE-SIZE 40
LINE-COUNT 20.
DATA:COUNT(6) TYPE N.
DATA: LAST_PAGE_NO LIKE SY-PAGNO.
DATA: TOTPAGE(6) TYPE C .
TOP-OF-PAGE.
WRITE:20 SY-PAGNO ,'of', '££££££'.
START-OF-SELECTION.
DO 100 TIMES.
WRITE: / COUNT.
COUNT = COUNT + 1.
ENDDO.
LAST_PAGE_NO = SY-PAGNO.
TOTPAGE = SY-PAGNO.
DO LAST_PAGE_NO TIMES.
READ LINE 1 OF PAGE SY-INDEX .
REPLACE '££££££' WITH TOTPAGE INTO SY-LISEL.
MODIFY CURRENT LINE.
ENDDO.
Regards,
Sesh -
Error in at line-selection event...
Hello experts,
In my report, I am hiding the values of BUKRS, ANLN1 and ANLN2 during my loop.
I am using field symbols as my work area for my itab which is it_output. The problem
is, when I try to do this in my at line-selection event:
at line-selection.
data: cursorfield(20) type c.
get cursor field cursorfield.
case cursorfield.
when '<FS_OUTPUT>-ASSET_SUBNUM'.
SET PARAMETER ID 'BUK' FIELD <FS_OUTPUT>-bukrs.
SET PARAMETER ID 'AN1' FIELD <FS_OUTPUT>-asset.
SET PARAMETER ID 'AN2' FIELD <FS_OUTPUT>-anln2.
endcase.
It says that it can't recognize the fields. What am I doing wrong? By the way, I am using
ABAP Objects in my report. Help would be greatly appreciated. Thanks again guys and take care!Hi Viraylab,
Have you assigned the fieldsymbols ?
ASSIGN IT_OUTPUT to <FS_OUTPUT>.
Cheers
VJ
Message was edited by: Vijayendra Rao -
How to use both At USER-COMMAND and AT LINE-SELECTION in one abap program
I am trying out a program where I need to use both line selection and user command events in one program. Suggest me how to do it.
USE the okcode 'PICK'. (I mean add a 'PICK' in the GUI staus or the menu.) When ever u use both the events u have to use PICK to trigger the at line selection.
U just need to add the PICK in the GUI status and ofcourse write code in the program.
AT LINE-SELECTION.
CASE sy-ucomm.
WHEN 'PICK'.
write:/ 'HELLO WORLD'.
ENDCASE. -
At user-command & At Line-selection
Hi,
I am using ECC5 ver. of ABAP.
Can I use AT USER-COMMAND and AT LINE-SELECTION
in the same report?
I have used it but only At user command works, not At line selection.
When I remove Set pf-Status, At line selection works.
Here is my code.
REPORT PF&ATLINE.
AT LINE-SELECTION.
MESSAGE 'Line Selected' TYPE 'I'.
AT USER-COMMAND.
IF sy-ucomm = 'PUSH'.
MESSAGE 'Button Pushed' type 'I'.
elseif sy-ucomm = 'EXIT'.
LEAVE PROGRAM.
ENDIF.
START-OF-SELECTION.
SET PF-STATUS 'ZRND3'.
DO 10 TIMES.
WRITE:/01 SY-INDEX HOTSPOT.
ENDDO.
END-OF-SELECTION.Hi Rajiv,
Setting the PICK function code to F2 will definitely solve it..
and it triggers the at user-command and at line-selection event as per user interaction...
If it is not working properly... then there might me something wrong in your code...
can you place the code... so that we can know the exact problem
regards
padma -
At line-selection in SAP Query ( Infoset ) code
Hi all ,
Here is one for you : can I put somehow the following code in a Sap Query ( at infoset level of course ) :
at line-selection.
set parameter id 'BUK' field XXX-bukrs.
set parameter id 'BLN' field XXX-belnr.
set parameter id 'GJR' field XXX-gjahr.
call transaction 'FB03' and skip first screen.
(In other words I would like to see the documents behind a line in the list)
Some explains : my query's output would be ABAP list , the bukrs, belnr, gjahr fields are on the lines of my resulting list, and my problem is with those XXX 's - I don't know where are stored the lines of my ABAP list.
I'm pretty new at ABAP so any idea and explains about the generated SAP Query code
is appreciated . I looked at the final code but seemed very complex for my level.
Please guide me in this area ( I know the basic things like writing pretty simple reports )
Thanks !
Best of all
ZoliHi,
You need to add extra piece of code as below:
call function 'REUSE_ALV_GRID_DISPLAY'
exporting
i_callback_program = gd_repid
i_callback_top_of_page = 'TOP-OF-PAGE'
I_callback_user_command = 'USER_COMMAND' "see FORM
is_layout = gd_layout
it_fieldcat = fieldcatalog[]
i_save = 'X'
tables
t_outtab = it_ekko
exceptions
program_error = 1
others = 2.
* 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.
"For further information please refer the link below :
http://www.sapdev.co.uk/reporting/alv/alvgrid_ucomm.htm
Thanks,
Sriram Ponna. -
How to use at-line selection in ALV
Can someone help me about how to use at-line selection in an ALV
u can try in user_command
CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
EXPORTING
I_CALLBACK_PROGRAM = G_REPID
IT_FIELDCAT = GT_FIELDCATALOG
I_CALLBACK_PF_STATUS_SET = 'PF_STATUS_SET'
I_CALLBACK_HTML_END_OF_LIST = G_HTML_END_OF_LIST
I_CALLBACK_USER_COMMAND = 'USER_COMMAND'
I_GRID_SETTINGS = GS_SETTINGS
IS_LAYOUT = GS_LAYOUT
I_SAVE = G_SAVE
IS_VARIANT = GS_VARIANT
IT_EVENTS = GT_EVENTS[]
* I_SCREEN_START_COLUMN = 0 "Use coordinates for
* I_SCREEN_START_LINE = 0 "display as dialog box
* I_SCREEN_END_COLUMN = 0
* I_SCREEN_END_LINE = 0
IMPORTING
E_EXIT_CAUSED_BY_CALLER = G_EXIT_CAUSED_BY_CALLER
ES_EXIT_CAUSED_BY_USER = GS_EXIT_CAUSED_BY_USER
TABLES
T_OUTTAB = I_REP
EXCEPTIONS
PROGRAM_ERROR = 1
OTHERS = 2.
FORM USER_COMMAND USING R_UCOMM TYPE SY-UCOMM
RS_SELFIELD TYPE SLIS_SELFIELD.
CASE R_UCOMM.
WHEN '&IC1'.
CASE RS_SELFIELD-FIELDNAME.
WHEN 'XXXXX'.
READ TABLE I_xxx INTO V_xxx
WITH KEY XXX = RS_SELFIELD-VALUE.
IF SY-SUBRC = 0.
ENDIF.
WHEN OTHERS
ENDCASE.
ENDCASE.
ENDFORM.
Maybe you are looking for
-
I just noticed that some of the movies I had in iTunes did not get transferred to the iPhone 5. The missing movies are shown as generic movie icons in the iTunes panel and are checked to select them. But they do not show up in iPhone Videos. How do I
-
Drag Drop icon/image in JApplet
Hi! I would like to implement a Drag Drop of images/icons between two JPanels in a JApplet. Can someone give me a working example of the code that I have to implement ??? Thanks to you !!!! TGuido
-
Apex 2.2 - Admin logon screen cannot be displayed
I have installed Application Express 2.2 into an Oracle 9.2.0.8 database running on a LINUX X86 server but even after following all the relevant documentation for the installation and configuration I am still unable to access the 'apex admin' logon s
-
Financial impact - Need to correct the posting key
Dear All, During a configuration,by mistake in OBYC in transaction key COC, in posting key, a entry 40 and 50 in the field Debit & credit was made. However, It was blank in initially. Now when going to change it by making it blank, system throwing an
-
Topdown JAVA WS and xsd:anyType
Hi, I am developing a JAVA webservice using the Top-down method. I have created the code using the JDeveloper File -> New -> Java Web Service From WSDL Part of the reply payload is a general xml message and I have used xsd:anyType in the WSDL I have