Table Event
I am trying to use a table control to update a table indicator. For example, in Table 1, a control, if the user modifies a cell with a numeric, I would like to numercially process that cell and put it in Table 2, an indicator.
I have tried using the Event structure along with the 'Value Changed' event, however I cannot find a way of obtaining which cell has been modified. Is there a way to find out which cell has been modified within the "Value Changed" event?
Thanks for any help.
On "Table:keyUp" event wire the table reference to the EditPos property. Now every keystroke which changes the table is captured any the table cell is noted.
Paul
Paul Falkenstein
Coleman Technologies Inc.
CLA, CPI, AIA-Vision
Labview 4.0- 2013, RT, Vision, FPGA
Similar Messages
-
Report using internal table events
Hi,
i have an internal table with the fields 1. profitcenter 2. company code 3. gl account 4. amount
for each profit center i need to seggregate accounts based on company code.
the report should look like the one below.
please suggest some code using internal table events at new , at end etc. as im not using alv. your help will be rewarded
regards,
ravi.
-Profitcenter-companycodeglaccount-amount---
-pfcenter1----
glaccount1-1000---
glaccount2-2000---
4444-total--3000---
glaccount1-4000---
glaccount2-1000---
3333-total--5000---
-profitcentre1*total8000---
profitcentre2.........Hi.
TYPES: BEGIN OF G_I_DATA,
PROFIT(4) TYPE C,
COMPANY(4) TYPE C,
ACCOUNT(10) TYPE C,
AMOUNT TYPE P,
END OF G_I_DATA.
DATA: G_IT_DATA TYPE TABLE OF G_I_DATA,
G_WA_DATA TYPE G_I_DATA.
DATA: G_SUM_COMPANY TYPE P,
G_SUM_PROFIT TYPE P,
G_AMOUNT TYPE P.
G_WA_DATA-PROFIT = '0001'.
G_WA_DATA-COMPANY = '1111'.
G_WA_DATA-ACCOUNT = 'ACCOUNT1'.
G_WA_DATA-AMOUNT = 2000.
APPEND G_WA_DATA TO G_IT_DATA.
G_WA_DATA-PROFIT = '0001'.
G_WA_DATA-COMPANY = '1111'.
G_WA_DATA-ACCOUNT = 'ACCOUNT2'.
G_WA_DATA-AMOUNT = 3000.
APPEND G_WA_DATA TO G_IT_DATA.
G_WA_DATA-PROFIT = '0001'.
G_WA_DATA-COMPANY = '2222'.
G_WA_DATA-ACCOUNT = 'ACCOUNT1'.
G_WA_DATA-AMOUNT = 4000.
APPEND G_WA_DATA TO G_IT_DATA.
G_WA_DATA-PROFIT = '0001'.
G_WA_DATA-COMPANY = '2222'.
G_WA_DATA-ACCOUNT = 'ACCOUNT2'.
G_WA_DATA-AMOUNT = 5000.
APPEND G_WA_DATA TO G_IT_DATA.
G_WA_DATA-PROFIT = '0002'.
G_WA_DATA-COMPANY = '1111'.
G_WA_DATA-ACCOUNT = 'ACCOUNT1'.
G_WA_DATA-AMOUNT = 2000.
APPEND G_WA_DATA TO G_IT_DATA.
G_WA_DATA-PROFIT = '0002'.
G_WA_DATA-COMPANY = '1111'.
G_WA_DATA-ACCOUNT = 'ACCOUNT2'.
G_WA_DATA-AMOUNT = 3000.
APPEND G_WA_DATA TO G_IT_DATA.
G_WA_DATA-PROFIT = '0002'.
G_WA_DATA-COMPANY = '2222'.
G_WA_DATA-ACCOUNT = 'ACCOUNT1'.
G_WA_DATA-AMOUNT = 4000.
APPEND G_WA_DATA TO G_IT_DATA.
G_WA_DATA-PROFIT = '0002'.
G_WA_DATA-COMPANY = '2222'.
G_WA_DATA-ACCOUNT = 'ACCOUNT2'.
G_WA_DATA-AMOUNT = 5000.
APPEND G_WA_DATA TO G_IT_DATA.
SORT G_IT_DATA BY PROFIT COMPANY ACCOUNT.
WRITE: /6 'ProfitCenter', 20 'CompanyCode',
34 'Glaccount', 48 'Amount'.
WRITE: /6 SY-ULINE(50).
LOOP AT G_IT_DATA INTO G_WA_DATA.
AT NEW PROFIT.
WRITE: /6 G_WA_DATA-PROFIT.
ENDAT.
G_AMOUNT = G_WA_DATA-AMOUNT.
AT NEW ACCOUNT.
WRITE: /34 G_WA_DATA-ACCOUNT,
48 G_AMOUNT.
ENDAT.
G_SUM_PROFIT = G_SUM_PROFIT + G_WA_DATA-AMOUNT.
G_SUM_COMPANY = G_SUM_COMPANY + G_WA_DATA-AMOUNT.
AT END OF COMPANY.
WRITE: /20 G_WA_DATA-COMPANY,
34 'Totle',
48 G_SUM_COMPANY.
CLEAR G_SUM_COMPANY.
WRITE: /6 '*******'.
ENDAT.
AT END OF PROFIT.
WRITE: /6 G_WA_DATA-PROFIT,
20 'Totle',
48 G_SUM_PROFIT.
CLEAR G_SUM_PROFIT.
WRITE: /6 '*************************************'.
ENDAT.
ENDLOOP. -
Table Event Update Form?
Hi,
If anyone knows about the form "Table event Update",kindly reply or give URL regarding the documentation
Thanks in advance
Manoj MThis form is used for payroll Event model
basically it identifies when event should be recorded .
PEM records the events such as Correction or Update on the table u specify.
e.g. column assignment status change on PER_ALL_ASSIGNMENTS_F table
The retro pay process uses these events to process those assignments while calculating retro pay
U specify the table name e.g. PER_ALL_ASSIGNMENTS_F
In Event section Specify
1) Event type as datetrack correction/ datetrack update
2) Column name : specify the column name
e.g. assignment_status
3) Change Type : reports
Also Refer meta link note : 373148.1
Thanks
Makarand -
Hi,
I have used a table event to update the changed date and changed by in a custom table in SAP 4.7. It is working fine.
Now in ECC6.0, there is a similar requirement, but the similar code does not work. Can you please help?
The code I used in SAP 4.7 is given below.
FORM sub_update_user_date.
DATA: l_tabix TYPE sytabix.
DATA: BEGIN OF l_total.
INCLUDE STRUCTURE ZORF_XREF_3PL.
INCLUDE STRUCTURE vimtbflags.
DATA: END OF l_total,
l_record TYPE ZORF_XREF_3PL.
LOOP AT total INTO l_total.
IF l_total-vim_action = aendern
OR l_total-vim_action = neuer_eintrag.
MOVE-CORRESPONDING l_total TO l_record.
l_record-last_chng_by = sy-uname.
l_record-last_chng_dt = sy-datum.
READ TABLE extract WITH KEY l_total.
IF sy-subrc EQ 0.
l_tabix = sy-tabix.
ELSE.
CLEAR l_tabix.
ENDIF.
MOVE-CORRESPONDING l_record TO l_total.
MODIFY total FROM l_total.
CHECK l_tabix GT 0.
MODIFY extract INDEX l_tabix FROM l_total.
ENDIF.
ENDLOOP.
ENDFORM. "sub_update_user_date
JCHi,
Your code looks good...
But a small change, hope this should work.
READ TABLE extract WITH KEY l_total.
*IF sy-subrc EQ 0.*
*l_tabix = sy-tabix.*
*ELSE.*
*CLEAR l_tabix.*
*ENDIF.*
*l_total-last_chng_by = sy-uname.*
*l_total-last_chng_dt = sy-datum.*
*MODIFY total FROM l_total.*
MODIFY extract INDEX l_tabix FROM l_total.
Regards
Shiva -
What are the internal table events
hi experts
can u help me for thisHi ramesh,
There are basically internal table events are as below...
at first / endat
at last / endat
at new / endat
at end of / endat
sum
on change of / endon
Use the at first and at last statements to perform processing during the first or last loop pass of an internal table.
Use the at new and at end of statements to detect a change in a column from one loop pass to the next. These statements enable you to execute code at the beginning and end of a group of records.
Use the sum statement to calculate totals for the rows of a control level.
Another statement you can use to perform control break processing is on change of. It behaves in a manner similar to at new.
on change of differs from at new in the following respects:
It can be used in any loop construct, not just loop at. For example, it can be used within select and endselect, do and enddo, or while and endwhile, as well as inside get events.
A single on change of can be triggered by a change within one or more fields named after of and separated by or. These fields can be elementary fields or field strings. If you are within a loop, these fields do not have to belong to the loop.
When used within a loop, a change in a field to the left of the control level does not trigger a control break.
When used within a loop, fields to the right still contain their original values; they are not changed to contain zeros or asterisks.
You can use else between on change of and endon.
You can use it with loop at it where . . ..
You can use sum with on change of. It sums all numeric fields except the one(s) named after of.
Any values changed within on change of remain changed after endon. The contents of the header line are not restored as they are for at and endat.
<b>Reward Points if it useful....</b>
Thanks and Regards
Sreenivasa sharma k. -
Making field input editable after giving error msg from table event 01
Hi All,
I have a requirement of giving error msg and making that row or the particular field input editable by writing code in table event 01 i.e before saving any record in a z-table i have to chk some condition for a column value and if that condition fails then i have to give error msg and make that column input editable.
I have created a routine for event 01 and written the code to give error msg. But my problem is that column is not becoming input editable. Could you pls tell me how can i make that field editable?
Thanks in advance.Hi Piyali,
Use SET PARAMETER & GET PARAMETER ID .
You will get it.
Best Regards,
Pravin -
hai ,
how i can use internal table events in ALV's please send me example code
also .Hi Sathish,
According you your query, You want to display the data in Hierarchical format. I am attaching the code of hierarchical format. You just create a Z report and test this report. So that can solve your problem easily with the help of this code.
REPORT BALVHD01 NO STANDARD PAGE HEADING.
ALV
TYPE-POOLS: SLIS.
DB-Table
TABLES: SCARR, SPFLI.
Includes
INCLUDE .
CONSTANTS:
GC_FORMNAME_TOP_OF_PAGE TYPE SLIS_FORMNAME VALUE 'TOP_OF_PAGE'.
DATA: GT_FIELDCAT TYPE SLIS_T_FIELDCAT_ALV,
GS_LAYOUT TYPE SLIS_LAYOUT_ALV,
GS_KEYINFO TYPE SLIS_KEYINFO_ALV,
GT_SP_GROUP TYPE SLIS_T_SP_GROUP_ALV,
GT_EVENTS TYPE SLIS_T_EVENT.
Data to be displayed
DATA: BEGIN OF GT_SPFLI OCCURS 0.
INCLUDE STRUCTURE SPFLI.
DATA:
BOX,
WERT(4) TYPE P,
LIGHTS.
DATA: END OF GT_SPFLI.
DATA: BEGIN OF GT_SCARR OCCURS 0.
INCLUDE STRUCTURE SCARR.
DATA: BOX,
LIGHTS.
DATA: END OF GT_SCARR.
DATA: G_REPID LIKE SY-REPID.
DATA: GT_LIST_TOP_OF_PAGE TYPE SLIS_T_LISTHEADER.
Report Selections
SELECT-OPTIONS CARRID FOR SCARR-CARRID.
SELECTION-SCREEN SKIP 1.
Parameters
PARAMETERS: P_MAXROW TYPE I DEFAULT 50.
SELECTION-SCREEN SKIP 1.
Variante
SELECTION-SCREEN BEGIN OF BLOCK 0 WITH FRAME TITLE TEXT-064.
PARAMETERS: P_VARI LIKE DISVARIANT-VARIANT.
SELECTION-SCREEN END OF BLOCK 0.
Layout
SELECTION-SCREEN BEGIN OF BLOCK A WITH FRAME TITLE TEXT-060.
PARAMETERS:
P_ZEBRA AS CHECKBOX DEFAULT ' ',
P_NOCOLH AS CHECKBOX DEFAULT ' ',
P_COLOPT AS CHECKBOX DEFAULT ' ',
P_KEYHOT AS CHECKBOX DEFAULT ' ',
P_NOINPT AS CHECKBOX DEFAULT ' '.
SELECTION-SCREEN END OF BLOCK A.
SELECTION-SCREEN BEGIN OF BLOCK B WITH FRAME TITLE TEXT-061.
PARAMETERS:
P_LIGHTN RADIOBUTTON GROUP LIG ,
P_LIGHTH RADIOBUTTON GROUP LIG ,
P_LIGHTI RADIOBUTTON GROUP LIG ,
P_LIGHTC AS CHECKBOX DEFAULT ' '.
SELECTION-SCREEN END OF BLOCK B.
SELECTION-SCREEN BEGIN OF BLOCK C WITH FRAME TITLE TEXT-062.
PARAMETERS:
P_TOTONL AS CHECKBOX DEFAULT ' ',
P_TOTEXT(60),
P_STTEXT(60).
SELECTION-SCREEN END OF BLOCK C.
SELECTION-SCREEN BEGIN OF BLOCK D WITH FRAME TITLE TEXT-063.
PARAMETERS:
CHCKBOXN RADIOBUTTON GROUP BOX ,
CHCKBOXH RADIOBUTTON GROUP BOX ,
CHCKBOXI RADIOBUTTON GROUP BOX ,
P_GROUPB AS CHECKBOX DEFAULT ' ',
P_DETPOP AS CHECKBOX DEFAULT 'X',
P_GROUPS AS CHECKBOX DEFAULT ' '.
SELECTION-SCREEN END OF BLOCK D.
DATA: G_BOXNAM TYPE SLIS_FIELDNAME VALUE 'BOX',
P_F2CODE LIKE SY-UCOMM VALUE '&ETA',
P_LIGNAM TYPE SLIS_FIELDNAME VALUE 'LIGHTS',
G_SAVE(1) TYPE C,
G_TABNAME_HEADER TYPE SLIS_TABNAME,
G_TABNAME_ITEM TYPE SLIS_TABNAME,
G_DEFAULT(1) TYPE C,
G_EXIT(1) TYPE C,
GX_VARIANT LIKE DISVARIANT,
G_VARIANT LIKE DISVARIANT.
INITIALIZATION.
G_REPID = SY-REPID.
G_TABNAME_HEADER = 'GT_SCARR'.
G_TABNAME_ITEM = 'GT_SPFLI'.
define keyinfo
CLEAR GS_KEYINFO.
GS_KEYINFO-HEADER01 = 'CARRID'.
GS_KEYINFO-ITEM01 = 'CARRID'.
GS_KEYINFO-HEADER02 = SPACE.
GS_KEYINFO-ITEM02 = 'CONNID'.
PERFORM E01_FIELDCAT_INIT USING GT_FIELDCAT[].
PERFORM E03_EVENTTAB_BUILD USING GT_EVENTS[].
PERFORM E04_COMMENT_BUILD USING GT_LIST_TOP_OF_PAGE[].
PERFORM E07_SP_GROUP_BUILD USING GT_SP_GROUP[].
Schalter Varianten benutzerspezifisch/allgemein speicherbar setzen
Set Options: save variants userspecific or general
G_SAVE = 'A'.
PERFORM VARIANT_INIT.
Get default variant
GX_VARIANT = G_VARIANT.
CALL FUNCTION 'REUSE_ALV_VARIANT_DEFAULT_GET'
EXPORTING
I_SAVE = G_SAVE
CHANGING
CS_VARIANT = GX_VARIANT
EXCEPTIONS
NOT_FOUND = 2.
IF SY-SUBRC = 0.
P_VARI = GX_VARIANT-VARIANT.
ENDIF.
Process on value request
AT SELECTION-SCREEN ON VALUE-REQUEST FOR P_VARI.
PERFORM F4_FOR_VARIANT.
PAI
AT SELECTION-SCREEN.
PERFORM PAI_OF_SELECTION_SCREEN.
START-OF-SELECTION.
PERFORM SELECTION.
END-OF-SELECTION.
PERFORM E05_LAYOUT_BUILD USING GS_LAYOUT. "wg. Parameters
Call ABAP/4 List Viewer
CALL FUNCTION 'REUSE_ALV_HIERSEQ_LIST_DISPLAY'
EXPORTING
I_CALLBACK_PROGRAM = G_REPID
I_CALLBACK_PF_STATUS_SET = ' '
I_CALLBACK_USER_COMMAND = ' '
IS_LAYOUT = GS_LAYOUT
IT_FIELDCAT = GT_FIELDCAT[]
IT_EXCLUDING =
IT_SPECIAL_GROUPS = GT_SP_GROUP[]
IT_SORT =
IT_FILTER =
IS_SEL_HIDE =
I_SCREEN_START_COLUMN = 0
I_SCREEN_START_LINE = 0
I_SCREEN_END_COLUMN = 0
I_SCREEN_END_LINE = 0
i_default = g_default
I_SAVE = G_SAVE
IS_VARIANT = G_VARIANT
IT_EVENTS = GT_EVENTS[]
IT_EVENT_EXIT =
I_TABNAME_HEADER = G_TABNAME_HEADER
I_TABNAME_ITEM = G_TABNAME_ITEM
IS_KEYINFO = GS_KEYINFO
IS_PRINT =
IMPORTING
E_EXIT_CAUSED_BY_CALLER =
TABLES
T_OUTTAB_HEADER = GT_SCARR
T_OUTTAB_ITEM = GT_SPFLI.
FORM E01_FIELDCAT_INIT *
--> E01_LT_FIELDCAT *
FORM E01_FIELDCAT_INIT USING E01_LT_FIELDCAT TYPE SLIS_T_FIELDCAT_ALV.
DATA: LS_FIELDCAT TYPE SLIS_FIELDCAT_ALV.
CLEAR LS_FIELDCAT.
LS_FIELDCAT-FIELDNAME = 'DISTANCE'.
LS_FIELDCAT-TABNAME = G_TABNAME_ITEM.
LS_FIELDCAT-NO_OUT = 'X'.
LS_FIELDCAT-NO_SUM = 'X'.
LS_FIELDCAT-SP_GROUP = 'A'.
APPEND LS_FIELDCAT TO E01_LT_FIELDCAT.
CLEAR LS_FIELDCAT.
LS_FIELDCAT-FIELDNAME = 'DISTID'.
LS_FIELDCAT-TABNAME = G_TABNAME_ITEM.
LS_FIELDCAT-NO_OUT = 'X'.
LS_FIELDCAT-NO_SUM = 'X'.
LS_FIELDCAT-SP_GROUP = 'A'.
APPEND LS_FIELDCAT TO E01_LT_FIELDCAT.
CLEAR LS_FIELDCAT.
LS_FIELDCAT-FIELDNAME = 'CARRID'.
LS_FIELDCAT-TABNAME = G_TABNAME_ITEM.
LS_FIELDCAT-TECH = 'X'.
APPEND LS_FIELDCAT TO E01_LT_FIELDCAT.
CLEAR LS_FIELDCAT.
LS_FIELDCAT-FIELDNAME = 'FLTYPE'.
LS_FIELDCAT-TABNAME = G_TABNAME_ITEM.
LS_FIELDCAT-NO_OUT = 'X'.
APPEND LS_FIELDCAT TO E01_LT_FIELDCAT.
CALL FUNCTION 'REUSE_ALV_FIELDCATALOG_MERGE'
EXPORTING
I_PROGRAM_NAME =
I_INTERNAL_TABNAME = G_TABNAME_HEADER
I_STRUCTURE_NAME = 'SCARR'
I_CLIENT_NEVER_DISPLAY = 'X'
CHANGING
CT_FIELDCAT = E01_LT_FIELDCAT[].
CALL FUNCTION 'REUSE_ALV_FIELDCATALOG_MERGE'
EXPORTING
I_PROGRAM_NAME =
I_INTERNAL_TABNAME = G_TABNAME_ITEM
I_STRUCTURE_NAME = 'SPFLI'
I_CLIENT_NEVER_DISPLAY = 'X'
CHANGING
CT_FIELDCAT = E01_LT_FIELDCAT[].
Nachbessern!!!
CLEAR LS_FIELDCAT.
LS_FIELDCAT-FIELDNAME = 'CARRID'.
LS_FIELDCAT-TABNAME = G_TABNAME_HEADER.
LS_FIELDCAT-REF_FIELDNAME = 'CARRID'.
LS_FIELDCAT-REF_TABNAME = 'SCARR'.
LS_FIELDCAT-KEY = 'X'.
APPEND LS_FIELDCAT TO E01_LT_FIELDCAT.
geht am Anfang nicht !!!!
CLEAR LS_FIELDCAT.
LS_FIELDCAT-COL_POS = 99.
LS_FIELDCAT-FIELDNAME = 'WERT'.
LS_FIELDCAT-TABNAME = G_TABNAME_ITEM.
LS_FIELDCAT-REPTEXT_DDIC = 'Wert'(070).
LS_FIELDCAT-OUTPUTLEN = 4.
LS_FIELDCAT-DATATYPE = 'CURR'.
APPEND LS_FIELDCAT TO E01_LT_FIELDCAT.
ENDFORM.
FORM E02_DATA_ADD *
FORM E02_DATA_ADD TABLES E02_LT_SPFLI STRUCTURE GT_SPFLI
E02_LT_SCARR STRUCTURE GT_SCARR.
LOOP AT E02_LT_SPFLI.
IF SY-TABIX > 10.
E02_LT_SPFLI-BOX = 'X'.
E02_LT_SPFLI-LIGHTS = '3'.
ELSE.
IF SY-TABIX = 1.
E02_LT_SPFLI-LIGHTS = '2'.
ELSE.
E02_LT_SPFLI-LIGHTS = '1'.
ENDIF.
ENDIF.
E02_LT_SPFLI-WERT = SY-TABIX MOD 5.
MODIFY E02_LT_SPFLI.
ENDLOOP.
LOOP AT E02_LT_SCARR.
IF SY-TABIX > 10.
E02_LT_SCARR-BOX = 'X'.
E02_LT_SCARR-LIGHTS = '3'.
ELSE.
IF SY-TABIX = 1.
E02_LT_SCARR-LIGHTS = '2'.
ELSE.
E02_LT_SCARR-LIGHTS = '1'.
ENDIF.
ENDIF.
MODIFY E02_LT_SCARR.
ENDLOOP.
ENDFORM.
FORM E03_EVENTTAB_BUILD *
--> E03_LT_EVENTS *
FORM E03_EVENTTAB_BUILD USING E03_LT_EVENTS TYPE SLIS_T_EVENT.
DATA: LS_EVENT TYPE SLIS_ALV_EVENT.
CALL FUNCTION 'REUSE_ALV_EVENTS_GET'
EXPORTING
I_LIST_TYPE = 0
IMPORTING
ET_EVENTS = E03_LT_EVENTS.
READ TABLE E03_LT_EVENTS WITH KEY NAME = SLIS_EV_TOP_OF_PAGE
INTO LS_EVENT.
IF SY-SUBRC = 0.
MOVE GC_FORMNAME_TOP_OF_PAGE TO LS_EVENT-FORM.
APPEND LS_EVENT TO E03_LT_EVENTS.
ENDIF.
ENDFORM.
FORM E04_COMMENT_BUILD *
--> E04_LT_TOP_OF_PAGE *
FORM E04_COMMENT_BUILD USING E04_LT_TOP_OF_PAGE TYPE SLIS_T_LISTHEADER.
DATA: LS_LINE TYPE SLIS_LISTHEADER.
Listenüberschrift: Typ H
CLEAR LS_LINE.
LS_LINE-TYP = 'H'.
LS_LINE-KEY: not used for this type
LS_LINE-INFO = TEXT-001.
APPEND LS_LINE TO E04_LT_TOP_OF_PAGE.
Kopfinfo: Typ S
CLEAR LS_LINE.
LS_LINE-TYP = 'S'.
LS_LINE-KEY = TEXT-050.
LS_LINE-INFO = TEXT-010.
APPEND LS_LINE TO E04_LT_TOP_OF_PAGE.
LS_LINE-KEY = TEXT-051.
APPEND LS_LINE TO E04_LT_TOP_OF_PAGE.
Aktionsinfo: Typ A
CLEAR LS_LINE.
LS_LINE-TYP = 'A'.
LS_LINE-KEY: not used for this type
LS_LINE-INFO = TEXT-002.
APPEND LS_LINE TO E04_LT_TOP_OF_PAGE.
ENDFORM.
FORM E05_LAYOUT_BUILD *
<-> E05_LS_LAYOUT *
FORM E05_LAYOUT_BUILD USING E05_LS_LAYOUT TYPE SLIS_LAYOUT_ALV.
IF P_LIGHTI = 'X'.
E05_LS_LAYOUT-LIGHTS_FIELDNAME = P_LIGNAM.
E05_LS_LAYOUT-LIGHTS_TABNAME = G_TABNAME_ITEM.
E05_LS_LAYOUT-LIGHTS_CONDENSE = P_LIGHTC.
ENDIF.
IF P_LIGHTH = 'X'.
E05_LS_LAYOUT-LIGHTS_FIELDNAME = P_LIGNAM.
E05_LS_LAYOUT-LIGHTS_TABNAME = G_TABNAME_HEADER.
E05_LS_LAYOUT-LIGHTS_CONDENSE = P_LIGHTC.
ENDIF.
IF P_LIGHTN = 'X'.
CLEAR E05_LS_LAYOUT-LIGHTS_FIELDNAME.
CLEAR E05_LS_LAYOUT-LIGHTS_TABNAME.
CLEAR E05_LS_LAYOUT-LIGHTS_CONDENSE.
ENDIF.
IF CHCKBOXN = 'X'.
E05_LS_LAYOUT-BOX_FIELDNAME = SPACE.
E05_LS_LAYOUT-BOX_TABNAME = SPACE.
ENDIF.
IF CHCKBOXH = 'X'.
E05_LS_LAYOUT-BOX_FIELDNAME = G_BOXNAM.
E05_LS_LAYOUT-BOX_TABNAME = G_TABNAME_HEADER.
ENDIF.
IF CHCKBOXI = 'X'.
E05_LS_LAYOUT-BOX_FIELDNAME = G_BOXNAM.
E05_LS_LAYOUT-BOX_TABNAME = G_TABNAME_ITEM.
ENDIF.
E05_LS_LAYOUT-HEADER_TEXT = TEXT-071.
E05_LS_LAYOUT-ITEM_TEXT = TEXT-072.
E05_LS_LAYOUT-DEFAULT_ITEM = 'X'.
E05_LS_LAYOUT-F2CODE = P_F2CODE.
E05_LS_LAYOUT-ZEBRA = P_ZEBRA.
E05_LS_LAYOUT-COLWIDTH_OPTIMIZE = P_COLOPT.
E05_LS_LAYOUT-NO_INPUT = P_NOINPT.
E05_LS_LAYOUT-NO_COLHEAD = P_NOCOLH.
E05_LS_LAYOUT-TOTALS_TEXT = P_TOTEXT.
E05_LS_LAYOUT-SUBTOTALS_TEXT = P_STTEXT.
E05_LS_LAYOUT-TOTALS_ONLY = P_TOTONL.
E05_LS_LAYOUT-KEY_HOTSPOT = P_KEYHOT.
E05_LS_LAYOUT-DETAIL_POPUP = P_DETPOP.
E05_LS_LAYOUT-GROUP_CHANGE_EDIT = P_GROUPS.
E05_LS_LAYOUT-GROUP_BUTTONS = P_GROUPB.
E05_LS_LAYOUT-GROUP_BUTTONS = SPACE.
ENDFORM.
FORM E07_SP_GROUP_BUILD *
--> E07_LT_SP_GROUP *
FORM E07_SP_GROUP_BUILD USING E07_LT_SP_GROUP TYPE SLIS_T_SP_GROUP_ALV.
DATA: LS_SP_GROUP TYPE SLIS_SP_GROUP_ALV.
CLEAR LS_SP_GROUP.
LS_SP_GROUP-SP_GROUP = 'A'.
LS_SP_GROUP-TEXT = TEXT-005.
APPEND LS_SP_GROUP TO E07_LT_SP_GROUP.
ENDFORM.
FORM SELECTION *
FORM SELECTION.
SELECT * FROM SCARR INTO CORRESPONDING FIELDS OF TABLE GT_SCARR
WHERE CARRID IN CARRID.
SELECT * FROM SPFLI INTO CORRESPONDING FIELDS OF TABLE GT_SPFLI
UP TO P_MAXROW ROWS
WHERE CARRID IN CARRID.
LOOP AT GT_SCARR.
READ TABLE GT_SPFLI WITH KEY CARRID = GT_SCARR-CARRID.
IF SY-SUBRC NE 0.
DELETE GT_SCARR.
ENDIF.
ENDLOOP.
PERFORM E02_DATA_ADD TABLES GT_SPFLI GT_SCARR.
ENDFORM.
FORM TOP_OF_PAGE *
FORM TOP_OF_PAGE.
CALL FUNCTION 'REUSE_ALV_COMMENTARY_WRITE'
EXPORTING
IT_LIST_COMMENTARY = GT_LIST_TOP_OF_PAGE.
ENDFORM.
FORM F4_FOR_VARIANT *
FORM F4_FOR_VARIANT.
CALL FUNCTION 'REUSE_ALV_VARIANT_F4'
EXPORTING
IS_VARIANT = G_VARIANT
I_SAVE = G_SAVE
I_TABNAME_HEADER = G_TABNAME_HEADER
I_TABNAME_ITEM = G_TABNAME_ITEM
it_default_fieldcat =
IMPORTING
E_EXIT = G_EXIT
ES_VARIANT = GX_VARIANT
EXCEPTIONS
NOT_FOUND = 2.
IF SY-SUBRC = 2.
MESSAGE ID SY-MSGID TYPE 'S' NUMBER SY-MSGNO
WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ELSE.
IF G_EXIT = SPACE.
P_VARI = GX_VARIANT-VARIANT.
ENDIF.
ENDIF.
ENDFORM.
*& Form PAI_OF_SELECTION_SCREEN
text
FORM PAI_OF_SELECTION_SCREEN.
IF NOT P_VARI IS INITIAL.
MOVE G_VARIANT TO GX_VARIANT.
MOVE P_VARI TO GX_VARIANT-VARIANT.
CALL FUNCTION 'REUSE_ALV_VARIANT_EXISTENCE'
EXPORTING
I_SAVE = G_SAVE
CHANGING
CS_VARIANT = GX_VARIANT.
G_VARIANT = GX_VARIANT.
ELSE.
PERFORM VARIANT_INIT.
ENDIF.
ENDFORM. " PAI_OF_SELECTION_SCREEN
*& Form VARIANT_INIT
text
--> p1 text
<-- p2 text
FORM VARIANT_INIT.
CLEAR G_VARIANT.
G_VARIANT-REPORT = G_REPID.
ENDFORM. " VARIANT_INIT
Thanks and Best Regards,
Vijay -
MDM Table EVENT(EPCF) to get the record ids
Hi Experts,
I have a requirement where I need to trigger an EPCF event from MDM standard result set iview and need to capture the recordids of all the record present in the table in my customised webdynpro application.I have to later read them to an excel sheet.(the code for which i already have)
I am trying table type EPCF eventing for that and later passing [Search] as parameter but i am not able to get this search object and it seems to be a futile approach.
Please anyone of you can tell me the method to retrieve all records from resultset Iview to my dynpro application.
Thanks
VinayHi Vinay,
You are correct in that you cannot pass a list of ID's from the Result Set iView. This is by design and the reasoning behind it is that there could be thousands or even hundreds of thousands of records in a Result Set, and this would make passing them in a JavaScript function or URL unrealistic.
However, since the ResultSet is always the result of a search, you can pass the "search" to your custom application and recreate the result set there. The only caveat is as follows:
Prior to MDM 5.5 SP6 P2, the iViews were based on the MDM4J API. So if your version of MDM is pre-SP6 Patch 2, you must use the function Search.setArchive() of MDM4J.
From MDM 5.5 SP6 Patch 2, the iViews are based on the MDM Java API, and so you should use the function Search.deserialize() of MDM Java API.
Regards,
Walter -
Table events lost after opening a popup window
In an advanced table , I have a column which shows a link. If this link is clicked , a new window opens which displays a popup window.
If the link is not clicked , I can traverse through the advanced table.
If I click on the link, I cannot navigate through the Advanced Table, The show hide does not work.
The new Window is being shown for the link using
a. A OALinkBean
b. The link bean Destination property is set using OA.jsp?xxx
c. The target frame is set to _blank.
Any suggestions on what could be the problem?The pop up page is a read only page or ur doing some action events on the pop up page?Are you simultaneuosly doing action on pop up and base page?
--Mukul -
How to get the table Event action in the controller???
HI
Based on my requirement i have extended my controller,but i want to perform some validation like ,,,,
i have table in one region ,in which one column is having a Button (flex field) action with image,
i want to write the code in the controller according to the validation ,,,,but i am unable to find the event action in the main controller,
how to get the event action ?,,,,, of the item type as image
thanks in advance
KashIf not you can use image component with clientListener and serverListener to preform your requirement set clientListener click event and then inside clientListener java script method call the
serverListener then will execute serverListener method. -
Table event 'After saving' for date delimition
I have created a custom table which has stat date and end date. Whenever a new record is created and saved,
The default value for new records must be 12/31/9999. When user creates a next record, the existing record must be automatically. delimited to BEGDA minus one.
I have implemented the code in 'After Saving' event where the delimition happens correctly. But once i save and click on exit button, again it's asking to save the record. if i save the delimited records are not updated.
Please provide some solution on this.
Regards,
StanleyHi,
Generate time dep. is disabled when i checked the table maintanance for the table.
Please help to proceed further.
Regards,
Stanley -
Populating custom tables via Table Events.
Hi ,
I have a ztable having the following fields:
MANDT
FAREA
REVID
NAME
EMAIL
Out of this fields I need to populate the field REVID and EMAIL from two standard table USR21 and ADR6.
Like if I enter user id and hit enter tab, then the fields like email address will automatically be fetched from given tables and populated
I found that via tablemaintenance --> events this can be done.
Can you please suggest as to how to proceed with the coding...do I have to use Select from those standard tables and then pass it to the ztable.
Please help.
Thanks,
Suchi.I have created a event via the table maintenance generator-environment events.
I have used 05-- create new entry as the event code and inserted the following code :
FORM zat_newentry.
TYPES : BEGIN OF ty_requester,
bname TYPE usr21-bname ,
persnumber TYPE usr21-persnumber,
addrnumber TYPE usr21-addrnumber,
END OF ty_requester,
BEGIN OF ty_addreq,
persnumber TYPE adr6-persnumber,
addrnumber TYPE adr6-addrnumber,
smtp_addr TYPE adr6-smtp_addr,
END OF ty_addreq.
DATA : i_requester TYPE STANDARD TABLE OF ty_requester WITH HEADER LINE,
i_addreq TYPE STANDARD TABLE OF ty_addreq WITH HEADER LINE.
SELECT bname
persnumber
addrnumber
FROM usr21
INTO TABLE i_requester
WHERE bname = zinf_reviewer-rev.
IF i_requester[] IS NOT INITIAL.
SELECT persnumber
addrnumber
smtp_addr
FROM adr6
INTO TABLE i_addreq
FOR ALL ENTRIES IN i_requester
WHERE persnumber = i_requester-persnumber
AND addrnumber = i_requester-addrnumber .
ENDIF.
zinf_reviewer-rev = i_requester-bname.
zinf_reviewer-email = i_addreq-smtp_addr.
endform.
But while trying to create a new entry I am getting the error message saying : "An entry with the key already exists".
Please suggest. -
I have assigned a Tcode to a maintainance view.. In this one field is a foreign key from another table.. So when i insert a new record which is not in the check table, then the error message is displayed as ' value 'SER' not there in ZVTRT_TEST (Check Entry ) '. But I want to modify this message and want to diaplay another message. IS this possible? if so how? Is it possible using Events in table maintance generator? CAn u please give me the detailed steps?
Thanx. that solved one major part of the problem.. The second part in the same issue involves checking if a mandatory field is left blank while saving or if all fields are blank while saving. In these cases it should not save. So what do i do? another validation requires to check if the start date is lesser than the end date.. CAn u please give me the steps.?
-
Problem on Error Message at Table Event
Hi ,
I have one table where I used EVENT-01 which will trigger in the time of SAVE .
when I maitain data through SM30, I have all New Entry in this Event.
I validate this entry and if there have any problem I am displaying Error , But it will EXIT from the Maintain Screen.
But I want to go to the Maintain Screen with Error.
How Can I do this ?
I also tried with EVENT-05 there I can do all item check .But here i didnot get all the Line Item.
But I need all the line item at a time and then I can validate my requirement so i have to do validation in EVENT-01 .
Please tell me How I will do this validation .Actually I want to check .....
This Table has 33 fields with 8 Primary key. There have 1 field name Sequence Number .
If there have 10 numbers of entry and and among them three entry has same Sequece Number , then I need to check some data
with in these three Entry .And if it fail then I want to display error and go to the Maintain Screen to correct the data -
Hi
Table compatibility NW04S.
I have set my table lead selection to false
In this way user cannot select a line.
However what I would like to know is whether it's possible to catch an event if user has clicked on a cell whose cell editor is
UI Textview?
Thanks for yr help
regards
yuvalA TextView control is not able to capture events.
You could consider using a (readonly) InputField control instead of a TextView. That way you could be able to catch the onEnter event.
Best regards,
Robin van het Hof
Maybe you are looking for
-
Problem with Sessions and window.open
Hi, Hi everyone, Help Please!!! I am working with Sevlet session objects and HTML forms and windows. I have an HTML form for the user to supply a username and password. Once the user clicks submit I need to open another browser window that has no too
-
How do I copy and paste text in a PDF?
I'm new to this Adobe Acrobat stuff, and I'm wondering what I have to do, to able to just copy and paste from a PDF to any old regular document.
-
Missing substitution value for variable [dispatcher.host]
Hello, I'm getting the error message "com.sap.engine.deploy.manager.MissingSubstitutionException: Missing substitution value for variable [dispatcher.host]." if I'm trying to deploy an SCA file via SDM (remotegui.bat). It seems that the problem is a
-
Execution from right to left : a=b=c;
Help! I am using a tutorial to study for the certification exam. Unfortunately, I do not understand the answer of a very simple question. Can you give me a hand on this one? ************* This is the Question of the tutorial *************************
-
Check out is not working in jdevloper10g (Subverion10.1.3.41.57 )