BDC_OK code for scrolling in custon table control
Hi All,
I have a requirement to create a BDC program for transaction ME31K, but the problem is this ME31K transaction is enhanced adding a custom screen which has three custom table controls. Now this screen is also included in the BDC program.
I am facing problem in tracking the BDC_OKcode for scrolling for these custom table controls. Tried with '=P+' but not working.
While recording it is capturing '/00' for scrolling but while executing through program it is not working.
If anybody has faced this situation before please suggest how to go about it.
Please note '=NP' is not avaiable as it is a custom screen.
Thanks in advance.
go on the screen where you have table control, put /h in command field.
now scroll in table control, this will go in debugger and now check sy-ucomm.
hope you get it.
Similar Messages
-
Remove vertical scroll bar from table control
hi,
i had used table control in my application. i want remove vertical scroll bar from table control.
At initial time in table control there is no vertical scroll bar. In my table control lines are dependent on internal table which i was used to fill it.
i was used these code for to set table control lines.
DESCRIBE TABLE IT_RISK_ZINRISEXC LINES EXC_LINE.
TC_RISK_EX-LINES = EXC_LINE .
Initially there is no data in internal table so there is no vertical scroll bar. After getting value i am filling internal table. and there is scroll bar in my table control. but i does not want that.
i was not selected RESIZING-VERTICAL OR -HORIZONTAL.Hi,
From Scroll Bars in Table Control
You can remove the scroll bar in the table control by switching off horizontal and vertical scrolling in the properties of the table control. The properties can be accessed from the screen painter by double clicking on the table control. Regarding the page up and page down functions, I believe you add those buttons in the screen layout and code for them. You can use the standard function code for the page up and page down functions.
or
You can get rid of the vertical scroll bars by not setting table control lines. This way the user can only see the visible lines of the table control. As for the horizontal scrollbar, just make sure that your table control doesn't contain too many fields.
Regards,
Raj. -
Scroll bar in table control without wizard
Dear All,
I have made a module pool program for gate pass. In which i have taken a TABLE CONTROL WITHOUT WIZARD. Now my problem is , the table control does not have the SCROLL BAR functionality. It is not showing the scroll bar also. So can any one of you can help with the code that i can use to bring that scroll bar.
Table control is without wizard.
Thanks & Regards
VijjuHi,
In PBO module write the code as,
data: fill TYPE i.
DESCRIBE TABLE itab LINES fill.
flights-lines = fill.
Flights is the table control name in screen and itab is the internal table name.
Regards
Haritha
Edited by: Haritha Teegala on Jan 6, 2012 7:53 AM -
Hi All, Pls send me the recording for va01 by handling table control
Hi All, Pls send me the recording for va01 by handling table control with 3 or more materials. Pls send me a flat file and code ASAP.
Thanks®ards.
BharatHere is a example of similar kind ..plz go through this doc..it will be help hul 4 u
How to deal with table control / step loop in BDC?
Steploop and table contol is inevitable in certain transactions. When we run BDC for such transactions, we will face the situation: how many visible lines of steploop/tablecontrol are on the screen? Although we can always find certain method to deal with it, such as function code 'NP', 'POPO', considering some extreme situation: there is only one line visible one the screen,
our BDC program should display an error message. (See transaction 'ME21', we you resize your screen to let only one row visible, you can not enter mutiple lines on this screen even you use 'NP')
Now, I find a method with which we can determine the number of visible lines on Transaction Screen from our Calling BDC program. Maybe it is useless to you, but I think it will give your some idea.
Demo ABAP code has two purposes:
1. how to determine number of visible lines and how to calculte page number; (the 'calpage' routine has been modify to meet general purpose usage)
2. using field symbol in BDC program, please pay special attention to the difference in Static
ASSIGN and Dynamic ASSIGN.
Now I begin to describe the step to implement my method:
(I use transaction 'ME21', screen 121 for sample, the method using is Call Transation Using..)
Step1: go to screen painter to display the screen 121, then we can count the fixed line on this screen, there is 7 lines above the steploop and 2 lines below the steploop, so there are total 9 fixed lines on this screen. This means except these 9 lines, all the other line is for step loop.
Then have a look at steploop itselp, one entry of it will occupy two lines.
(Be careful, for table control, the head and the bottom scroll bar will possess another two fixed lines, and there is a maximum number for table line)
Now we have : FixedLine = 9
LoopLine = 2(for table control, LoopLine is always equal to 1)
Step2: go to transaction itself(ME21) to see how it roll page, in ME21, the first line of new page is always occupied by the last line of last page, so it begin with index '02', but in some other case, fisrt line is empty and ready for input.
Now we have: FirstLine = 0
or FirstLine = 1 ( in our case, FirstLine is 1 because the first line of new page is fulfilled)
Step3: write a subroutine calcalculating number of pages
(here, the name of actual parameter is the same as formal parameter)
global data: FixedLine type i, " number of fixed line on a certain screen
LoopLine type i, " the number of lines occupied by one steploop item
FirstLine type i, " possbile value 0 or 1, 0 stand for the first line of new
" scrolling screen is empty, otherwise is 1
Dataline type i, " number of items you will use in BDC, using DESCRIBE to get
pageno type i, " you need to scroll screen how many times.
line type i, " number of lines appears on the screen.
index(2) type N, " the screen index for certain item
begin type i, " from parameter of loop
end type i. " to parameter of loop
*in code sample, the DataTable-linindex stands for the table index number of this line
form calpage using FixedLine type i (see step 1)
LoopLine type i (see step 1)
FirstLine type i (see step 2)
DataLine type i ( this is the item number you will enter in transaction)
changing pageno type i (return the number of page, depends on run-time visible line in table control/ Step Loop)
changing line type i.(visible lines one the screen)
data: midd type i,
vline type i, "visible lines
if DataLine eq 0.
Message eXXX.
endif.
vline = ( sy-srows - FixedLine ) div LoopLine.
*for table control, you should compare vline with maximum line of
*table control, then take the small one that is min(vline, maximum)
*here only illustrate step loop
if FirstLine eq 0.
pageno = DataLine div vline.
if pageno eq 0.
pageno = pageno + 1.
endif.
elseif FirstLine eq 1.
pageno = ( DataLine - 1 ) div ( vline - 1 ) + 1.
midd = ( DataLine - 1 ) mod ( vline - 1).
if midd = 0 and DataLine gt 1.
pageno = pageno - 1.
endif.
endif.
line = vline.
endform.
Step4 write a subroutine to calculate the line index for each item.
form calindex using Line type i (visible lines on the screen)
FirstLine type i(see step 2)
LineIndex type i(item index)
changing Index type n. (index on the screen)
if FirstLine = 0.
index = LineIndex mod Line.
if index = '00'.
index = Line.
endif.
elseif FirstLine = 1.
index = LineIndex mod ( Line - 1 ).
if ( index between 1 and 0 ) and LineIndex gt 1.
index = index + Line - 1.
endif.
if Line = 2.
index = index + Line - 1.
endif.
endif.
endform.
Step5 write a subroutine to calculate the loop range.
form calrange using Line type i ( visible lines on the screen)
DataLine type i
FirstLine type i
loopindex like sy-index
changing begin type i
end type i.
If FirstLine = 0.
if loopindex = 1.
begin = 1.
if DataLine <= Line.
end = DataLine.
else.
end = Line.
endif.
elseif loopindex gt 1.
begin = Line * ( loopindex - 1 ) + 1.
end = Line * loopindex.
if end gt DataLine.
end = DataLine.
endif.
endif.
elseif FirstLine = 1.
if loopindex = 1.
begin = 1.
if DataLine <= Line.
end = DataLine.
else.
end = Line.
endif.
elseif loop index gt 1.
begin = ( Line - 1 ) * ( loopindex - 1 ) + 2.
end = ( Line - 1 ) * ( loopindex - 1 ) + Line.
if end gt DataLine.
end = DataLine.
endif.
endif.
endif.
endform.
Step6 using field sysbol in your BDC, for example: in ME21, but you should calculate each item will correponding to which index
form creat_bdc.
field-symbols: <material>, <quan>, <indicator>.
data: name1(14) value 'EKPO-EMATN(XX)',
name2(14) value 'EKPO-MENGE(XX)',
name3(15) value 'RM06E-SELKZ(XX)'.
assign: name1 to <material>,
name2 to <quan>,
name3 to <indicator>.
do pageno times.
if sy-index gt 1
*insert scroll page ok_code"
endif.
perform calrange using Line DataLine FirstLine sy-index
changing begin end.
loop at DataTable from begin to end.
perform calindex using Line FirstLine DataTable-LineIndex changing Index.
name1+11(2) = Index.
name2+11(2) = Index.
name3+12(2) = Index.
perform bdcfield using <material> DataTable-matnr.
perform bdcfield using <quan> DataTable-menge.
perform bdcfield using <indicator> DataTable-indicator.
endloop.
enddo.
Sample code
Following is a sample code of handling table control in BDC.
REPORT Y730_BDC5 .
*HANDLING TABLE CONTROL IN BDC
DATA : BEGIN OF IT_DUMMY OCCURS 0,
DUMMY(100) TYPE C,
END OF IT_DUMMY.
DATA : BEGIN OF IT_XK01 OCCURS 0,
LIFNR(10) TYPE C,
BUKRS(4) TYPE C,
EKORG(4) TYPE C,
KTOKK(4) TYPE C,
NAME1(30) TYPE C,
SORTL(10) TYPE C,
LAND1(3) TYPE C,
SPRAS(2) TYPE C,
AKONT(6) TYPE C,
FDGRV(2) TYPE C,
WAERS(3) TYPE C,
END OF IT_XK01,
BEGIN OF IT_BANK OCCURS 0,
BANKS(3) TYPE C,
BANKL(10) TYPE C,
BANKN(10) TYPE C,
KOINH(30) TYPE C,
LIFNR(10) TYPE C,
END OF IT_BANK.
DATA : IT_BDCDATA LIKE BDCDATA OCCURS 0 WITH HEADER LINE,
IT_BDCMSGCOLL LIKE BDCMSGCOLL OCCURS 0 WITH HEADER LINE.
CALL FUNCTION 'WS_UPLOAD'
EXPORTING
FILENAME = 'C:\VENDOR.TXT'
FILETYPE = 'ASC'
TABLES
DATA_TAB = IT_DUMMY.
LOOP AT IT_DUMMY.
IF IT_DUMMY-DUMMY+0(2) = '11'.
IT_XK01-LIFNR = IT_DUMMY-DUMMY+2(10).
IT_XK01-BUKRS = IT_DUMMY-DUMMY+12(4).
IT_XK01-EKORG = IT_DUMMY-DUMMY+16(4).
IT_XK01-KTOKK = IT_DUMMY-DUMMY+20(4).
IT_XK01-NAME1 = IT_DUMMY-DUMMY+24(30).
IT_XK01-SORTL = IT_DUMMY-DUMMY+54(10).
IT_XK01-LAND1 = IT_DUMMY-DUMMY+64(3).
IT_XK01-SPRAS = IT_DUMMY-DUMMY+67(2).
IT_XK01-AKONT = IT_DUMMY-DUMMY+69(6).
IT_XK01-FDGRV = IT_DUMMY-DUMMY+75(2).
IT_XK01-WAERS = IT_DUMMY-DUMMY+77(3).
APPEND IT_XK01.
ELSE.
IT_BANK-BANKS = IT_DUMMY-DUMMY+2(3).
IT_BANK-BANKL = IT_DUMMY-DUMMY+5(10).
IT_BANK-BANKN = IT_DUMMY-DUMMY+15(10).
IT_BANK-KOINH = IT_DUMMY-DUMMY+25(30).
IT_BANK-LIFNR = IT_DUMMY-DUMMY+55(10).
APPEND IT_BANK.
ENDIF.
ENDLOOP.
LOOP AT IT_XK01.
REFRESH IT_BDCDATA.
perform bdc_dynpro using 'SAPMF02K' '0100'.
perform bdc_field using 'BDC_CURSOR'
'RF02K-REF_LIFNR'.
perform bdc_field using 'BDC_OKCODE'
'/00'.
perform bdc_field using 'RF02K-LIFNR'
IT_XK01-LIFNR.
perform bdc_field using 'RF02K-BUKRS'
IT_XK01-BUKRS.
perform bdc_field using 'RF02K-EKORG'
IT_XK01-EKORG.
perform bdc_field using 'RF02K-KTOKK'
IT_XK01-KTOKK.
perform bdc_dynpro using 'SAPMF02K' '0110'.
perform bdc_field using 'BDC_CURSOR'
'LFA1-TELX1'.
perform bdc_field using 'BDC_OKCODE'
'/00'.
perform bdc_field using 'LFA1-NAME1'
IT_XK01-NAME1.
perform bdc_field using 'LFA1-SORTL'
IT_XK01-SORTL.
perform bdc_field using 'LFA1-LAND1'
IT_XK01-LAND1.
perform bdc_field using 'LFA1-SPRAS'
IT_XK01-SPRAS.
perform bdc_dynpro using 'SAPMF02K' '0120'.
perform bdc_field using 'BDC_CURSOR'
'LFA1-KUNNR'.
perform bdc_field using 'BDC_OKCODE'
'/00'.
perform bdc_dynpro using 'SAPMF02K' '0130'.
perform bdc_field using 'BDC_CURSOR'
'LFBK-KOINH(02)'.
perform bdc_field using 'BDC_OKCODE'
'=ENTR'.
DATA : FNAM(20) TYPE C,
IDX TYPE C.
MOVE 1 TO IDX.
LOOP AT IT_BANK WHERE LIFNR = IT_XK01-LIFNR.
CONCATENATE 'LFBK-BANKS(' IDX ')' INTO FNAM.
perform bdc_field using FNAM
IT_BANK-BANKS.
CONCATENATE 'LFBK-BANKL(' IDX ')' INTO FNAM.
perform bdc_field using FNAM
IT_BANK-BANKL.
CONCATENATE 'LFBK-BANKN(' IDX ')' INTO FNAM.
perform bdc_field using FNAM
IT_BANK-BANKN.
CONCATENATE 'LFBK-KOINH(' IDX ')' INTO FNAM.
perform bdc_field using FNAM
IT_BANK-KOINH.
IDX = IDX + 1.
ENDLOOP.
perform bdc_dynpro using 'SAPMF02K' '0130'.
perform bdc_field using 'BDC_CURSOR'
'LFBK-BANKS(01)'.
perform bdc_field using 'BDC_OKCODE'
'=ENTR'.
perform bdc_dynpro using 'SAPMF02K' '0210'.
perform bdc_field using 'BDC_CURSOR'
'LFB1-FDGRV'.
perform bdc_field using 'BDC_OKCODE'
'/00'.
perform bdc_field using 'LFB1-AKONT'
IT_XK01-AKONT.
perform bdc_field using 'LFB1-FDGRV'
IT_XK01-FDGRV.
perform bdc_dynpro using 'SAPMF02K' '0215'.
perform bdc_field using 'BDC_CURSOR'
'LFB1-ZTERM'.
perform bdc_field using 'BDC_OKCODE'
'/00'.
perform bdc_dynpro using 'SAPMF02K' '0220'.
perform bdc_field using 'BDC_CURSOR'
'LFB5-MAHNA'.
perform bdc_field using 'BDC_OKCODE'
'/00'.
perform bdc_dynpro using 'SAPMF02K' '0310'.
perform bdc_field using 'BDC_CURSOR'
'LFM1-WAERS'.
perform bdc_field using 'BDC_OKCODE'
'/00'.
perform bdc_field using 'LFM1-WAERS'
IT_XK01-WAERS.
perform bdc_dynpro using 'SAPMF02K' '0320'.
perform bdc_field using 'BDC_CURSOR'
'WYT3-PARVW(01)'.
perform bdc_field using 'BDC_OKCODE'
'=ENTR'.
perform bdc_dynpro using 'SAPLSPO1' '0300'.
perform bdc_field using 'BDC_OKCODE'
'=YES'.
CALL TRANSACTION 'XK01' USING IT_BDCDATA
MODE 'A'
UPDATE 'S'
MESSAGES INTO IT_BDCMSGCOLL.
ENDLOOP.
FORM BDC_DYNPRO USING PROG SCR.
CLEAR IT_BDCDATA.
IT_BDCDATA-PROGRAM = PROG.
IT_BDCDATA-DYNPRO = SCR.
IT_BDCDATA-DYNBEGIN = 'X'.
APPEND IT_BDCDATA.
ENDFORM.
FORM BDC_FIELD USING FNAM FVAL.
CLEAR IT_BDCDATA.
IT_BDCDATA-FNAM = FNAM.
IT_BDCDATA-FVAL = FVAL.
APPEND IT_BDCDATA.
ENDFORM.
Reward if helpful -
Search help for a field in table control based on another field value
Hi,
I want to attach the Search help for a field in table control based on another field value.
Please help me asap.
Will be highly rewardedHI,..
Check these links
search help in table control
Re: How to create Search Help for a field in Table control !!
How to create Search Help for a field in Table control !!
F4 Help In Table Control
Control table F4 help
Problem in F4 help in screen field
check this code
DATA: BEGIN OF it_value4 OCCURS 0,
TEXTCODE LIKE ZXX-TEXTCODE,
TEXTDESC LIKE ZXX-TEXTDESC,
END OF it_value4.
progname = sy-repid.
dynnum = sy-dynnr.
SELECT TEXTCODE TEXTDESC
FROM xxxx
INTO CORRESPONDING FIELDS OF TABLE<b> it_value4</b>
WHERE LOSS_CODE =<b> IT_VALUE1 .</b>
CALL FUNCTION 'F4IF_INT_TABLE_VALUE_REQUEST'
EXPORTING
retfield = 'TEXTCODE'
dynpprog = progname
dynpnr = dynnum
dynprofield = 'ITVALUE-TEXTCODE' "-->UR 4 th filed value in screen
value_org = 'S'
TABLES
value_tab = it_value4.
endmodule.
Message was edited by:
veereshbabu ponnada -
How to create Search Help for a field in Table control !!
Hello Friends,
I like to know - How to create Search Help for a field in Table control. Is it possible, if it is please share ur knowledge, I wud be happy if U provide some source code example for this.
Thanks,
SenthilCheck the sample code:
*& Include ZSRO_MPRN_SEARCH *
MODULE PSTLZ_F4 INPUT
MODULE pstlz_f4 INPUT.
reading post code
DATA: stepl TYPE systepl,
stepl_index TYPE systepl.
CLEAR: stepl, stepl_index.
CLEAR: lt_returntab,lt_dynpfields,i_mprn1.
REFRESH: lt_returntab,lt_dynpfields,i_mprn1.
lt_dynpfields-fieldname = 'I_MPRN-POST_CODE'.
lt_dynpfields-stepl = stepl.
APPEND lt_dynpfields. CLEAR lt_dynpfields.
CALL FUNCTION 'DYNP_VALUES_READ'
EXPORTING
dyname = sy-repid
dynumb = sy-dynnr
translate_to_upper = c_x
determine_loop_index = c_x
TABLES
dynpfields = lt_dynpfields
EXCEPTIONS
invalid_abapworkarea = 1
invalid_dynprofield = 2
invalid_dynproname = 3
invalid_dynpronummer = 4
invalid_request = 5
no_fielddescription = 6
invalid_parameter = 7
undefind_error = 8
double_conversion = 9
stepl_not_found = 10
OTHERS = 11.
IF sy-subrc EQ 0.
READ TABLE lt_dynpfields INDEX 1.
ENDIF.
ws_outcode = lt_dynpfields-fieldvalue.
stepl_index = lt_dynpfields-stepl.
REPLACE '*' WITH ' ' INTO lt_dynpfields-fieldvalue.
IF NOT lt_dynpfields-fieldvalue IS INITIAL.
MOVE lt_dynpfields-fieldvalue TO ws_outcode.
ws_len = STRLEN( lt_dynpfields-fieldvalue ).
IF ws_len GE 7.
ws_len = ws_len - 3.
ws_icode = ws_code+ws_len(3).
lt_dynpfields-fieldvalue = lt_dynpfields-fieldvalue+0(ws_len).
CONCATENATE lt_dynpfields-fieldvalue '%'
INTO ws_outcode.
CONDENSE lt_dynpfields-fieldvalue.
REPLACE ws_icode WITH ' ' INTO lt_dynpfields-fieldvalue.
ELSE.
CONCATENATE lt_dynpfields-fieldvalue+0(4) '%'
INTO ws_outcode.
ENDIF.
ws_ocode = ws_code+0(3).
ENDIF.
reading MPRN
CLEAR: lt_returntab,lt_dnpfields,i_mprn1.
REFRESH: lt_returntab,lt_dnpfields,i_mprn1.
lt_dnpfields-fieldname = 'I_MPRN-MPRN'.
lt_dnpfields-stepl = stepl_index.
APPEND lt_dnpfields. CLEAR lt_dnpfields.
CALL FUNCTION 'DYNP_VALUES_READ'
EXPORTING
dyname = sy-repid
dynumb = sy-dynnr
translate_to_upper = 'X'
TABLES
dynpfields = lt_dnpfields
EXCEPTIONS
invalid_abapworkarea = 1
invalid_dynprofield = 2
invalid_dynproname = 3
invalid_dynpronummer = 4
invalid_request = 5
no_fielddescription = 6
invalid_parameter = 7
undefind_error = 8
double_conversion = 9
stepl_not_found = 10
OTHERS = 11.
IF sy-subrc EQ 0.
READ TABLE lt_dnpfields INDEX 1.
ENDIF.
MPRN blank and Post code exist
IF lt_dnpfields-fieldvalue IS INITIAL.
IF NOT lt_dynpfields-fieldvalue IS INITIAL.
SELECT mprn ser_num sub_bud bud_name del_pt_alias
bud_num dep_street prin_street dbl_dep_street
dep_locty post_town county outcode incode
lg_site_ind file_date FROM zspa_mprn INTO
CORRESPONDING FIELDS OF TABLE i_mprn1
WHERE outcode LIKE ws_outcode.
ELSE.
MPRN blank and Post code blank
SELECT mprn ser_num sub_bud bud_name del_pt_alias
bud_num dep_street prin_street dbl_dep_street
dep_locty post_town county outcode incode
lg_site_ind file_date FROM zspa_mprn INTO
CORRESPONDING FIELDS OF TABLE i_mprn1.
ENDIF.
ELSE.
MPRN exist and Post code exist
IF NOT lt_dynpfields-fieldvalue IS INITIAL.
SELECT mprn ser_num sub_bud bud_name del_pt_alias
bud_num dep_street prin_street dbl_dep_street
dep_locty post_town county outcode incode
lg_site_ind file_date FROM zspa_mprn INTO
CORRESPONDING FIELDS OF TABLE i_mprn1
WHERE outcode LIKE ws_outcode AND
mprn EQ lt_dnpfields-fieldvalue.
ELSE.
MPRN exist and Post code blank
SELECT mprn ser_num sub_bud bud_name del_pt_alias
bud_num dep_street prin_street dbl_dep_street
dep_locty post_town county outcode incode
lg_site_ind file_date FROM zspa_mprn INTO
CORRESPONDING FIELDS OF TABLE i_mprn1
WHERE mprn EQ lt_dnpfields-fieldvalue.
ENDIF.
ENDIF.
CALL FUNCTION 'F4IF_INT_TABLE_VALUE_REQUEST'
EXPORTING
retfield = 'MPRN'
dynpprog = sy-repid
dynpnr = sy-dynnr
window_title = 'Select MPRN'
value_org = 'S'
TABLES
value_tab = i_mprn1 "lt_mprn
return_tab = lt_returntab
EXCEPTIONS
parameter_error = 1
no_values_found = 2
OTHERS = 3.
IF sy-subrc EQ 0.
READ TABLE lt_returntab INDEX 1.
READ TABLE i_mprn1 WITH KEY mprn = lt_returntab-fieldval.
IF sy-subrc EQ 0.
Updating post code
CONCATENATE i_mprn1-outcode i_mprn1-incode
INTO ws_postcode
SEPARATED BY space.
MOVE ws_postcode TO i_mprn-post_code.
CLEAR : i_dnpfld,
ws_dynpfld.
REFRESH : i_dnpfld.
ws_dyname = 'ZSRO_MASTER_DATA'.
ws_dynumb = '0301'.
ws_dynpfld-fieldname ='I_MPRN-POST_CODE'.
ws_dynpfld-fieldvalue = ws_postcode .
ws_dynpfld-stepl = stepl_index.
APPEND ws_dynpfld TO i_dnpfld.
CALL FUNCTION 'DYNP_VALUES_UPDATE'
EXPORTING
dyname = ws_dyname
dynumb = ws_dynumb
TABLES
dynpfields = i_dnpfld
EXCEPTIONS
invalid_abapworkarea = 1
invalid_dynprofield = 2
invalid_dynproname = 3
invalid_dynpronummer = 4
invalid_request = 5
no_fielddescription = 6
undefind_error = 7
OTHERS = 8.
IF sy-subrc <> 0.
ENDIF.
Updating MPRN
MOVE i_mprn1-mprn TO i_mprn-mprn.
CLEAR : i_dnpfld,
ws_dynpfld.
REFRESH : i_dnpfld.
ws_dyname = 'ZSRO_MASTER_DATA'.
ws_dynumb = '0301'.
ws_dynpfld-fieldname ='I_MPRN-MPRN'.
ws_dynpfld-fieldvalue = i_mprn1-mprn .
ws_dynpfld-stepl = stepl_index.
APPEND ws_dynpfld TO i_dnpfld.
CALL FUNCTION 'DYNP_VALUES_UPDATE'
EXPORTING
dyname = ws_dyname
dynumb = ws_dynumb
TABLES
dynpfields = i_dnpfld
EXCEPTIONS
invalid_abapworkarea = 1
invalid_dynprofield = 2
invalid_dynproname = 3
invalid_dynpronummer = 4
invalid_request = 5
no_fielddescription = 6
undefind_error = 7
OTHERS = 8.
IF sy-subrc <> 0.
ENDIF.
ENDIF.
ELSEIF sy-subrc EQ 2.
MESSAGE s005(zspa) WITH ws_postcode .
ENDIF.
ENDMODULE. "PSTLZ_F4 INPUT
MODULE MPRN_F4 INPUT
MODULE mprn_f4 INPUT.
reading post code
DATA: stepl TYPE systepl,
stepl_index TYPE systepl.
CLEAR: stepl, stepl_index.
CLEAR: lt_returntab,lt_dynpfields,i_mprn1.
REFRESH: lt_returntab,lt_dynpfields,i_mprn1.
lt_dynpfields-fieldname = 'I_MPRN-POST_CODE'.
lt_dynpfields-stepl = stepl.
APPEND lt_dynpfields. CLEAR lt_dynpfields.
CALL FUNCTION 'DYNP_VALUES_READ'
EXPORTING
dyname = sy-repid
dynumb = sy-dynnr
translate_to_upper = c_x
determine_loop_index = c_x
TABLES
dynpfields = lt_dynpfields
EXCEPTIONS
invalid_abapworkarea = 1
invalid_dynprofield = 2
invalid_dynproname = 3
invalid_dynpronummer = 4
invalid_request = 5
no_fielddescription = 6
invalid_parameter = 7
undefind_error = 8
double_conversion = 9
stepl_not_found = 10
OTHERS = 11.
IF sy-subrc EQ 0.
READ TABLE lt_dynpfields INDEX 1.
ENDIF.
ws_outcode = lt_dynpfields-fieldvalue.
stepl_index = lt_dynpfields-stepl.
REPLACE '*' WITH ' ' INTO lt_dynpfields-fieldvalue.
IF NOT lt_dynpfields-fieldvalue IS INITIAL.
MOVE lt_dynpfields-fieldvalue TO ws_outcode.
ws_len = STRLEN( lt_dynpfields-fieldvalue ).
IF ws_len GE 7.
ws_len = ws_len - 3.
ws_icode = ws_code+ws_len(3).
lt_dynpfields-fieldvalue = lt_dynpfields-fieldvalue+0(ws_len).
CONCATENATE lt_dynpfields-fieldvalue '%'
INTO ws_outcode.
CONDENSE lt_dynpfields-fieldvalue.
REPLACE ws_icode WITH ' ' INTO lt_dynpfields-fieldvalue.
ELSE.
CONCATENATE lt_dynpfields-fieldvalue+0(4) '%'
INTO ws_outcode.
ENDIF.
ws_ocode = ws_code+0(3).
ENDIF.
reading MPRN
CLEAR: lt_returntab,lt_dnpfields,i_mprn1.
REFRESH: lt_returntab,lt_dnpfields,i_mprn1.
lt_dnpfields-fieldname = 'I_MPRN-MPRN'.
lt_dnpfields-stepl = stepl_index.
APPEND lt_dnpfields. CLEAR lt_dnpfields.
CALL FUNCTION 'DYNP_VALUES_READ'
EXPORTING
dyname = sy-repid
dynumb = sy-dynnr
translate_to_upper = 'X'
TABLES
dynpfields = lt_dnpfields
EXCEPTIONS
invalid_abapworkarea = 1
invalid_dynprofield = 2
invalid_dynproname = 3
invalid_dynpronummer = 4
invalid_request = 5
no_fielddescription = 6
invalid_parameter = 7
undefind_error = 8
double_conversion = 9
stepl_not_found = 10
OTHERS = 11.
IF sy-subrc EQ 0.
READ TABLE lt_dnpfields INDEX 1.
ENDIF.
MPRN blank and Post code exist
IF lt_dnpfields-fieldvalue IS INITIAL.
IF NOT lt_dynpfields-fieldvalue IS INITIAL.
SELECT mprn ser_num sub_bud bud_name del_pt_alias
bud_num dep_street prin_street dbl_dep_street
dep_locty post_town county outcode incode
lg_site_ind file_date FROM zspa_mprn INTO
CORRESPONDING FIELDS OF TABLE i_mprn1
WHERE outcode LIKE ws_outcode.
ELSE.
MPRN blank and Post code blank
SELECT mprn ser_num sub_bud bud_name del_pt_alias
bud_num dep_street prin_street dbl_dep_street
dep_locty post_town county outcode incode
lg_site_ind file_date FROM zspa_mprn INTO
CORRESPONDING FIELDS OF TABLE i_mprn1.
ENDIF.
ELSE.
MPRN exist and Post code exist
IF NOT lt_dynpfields-fieldvalue IS INITIAL.
SELECT mprn ser_num sub_bud bud_name del_pt_alias
bud_num dep_street prin_street dbl_dep_street
dep_locty post_town county outcode incode
lg_site_ind file_date FROM zspa_mprn INTO
CORRESPONDING FIELDS OF TABLE i_mprn1
WHERE outcode LIKE ws_outcode AND
mprn EQ lt_dnpfields-fieldvalue.
ELSE.
MPRN exist and Post code blank
SELECT mprn ser_num sub_bud bud_name del_pt_alias
bud_num dep_street prin_street dbl_dep_street
dep_locty post_town county outcode incode
lg_site_ind file_date FROM zspa_mprn INTO
CORRESPONDING FIELDS OF TABLE i_mprn1
WHERE mprn EQ lt_dnpfields-fieldvalue.
ENDIF.
ENDIF.
CALL FUNCTION 'F4IF_INT_TABLE_VALUE_REQUEST'
EXPORTING
retfield = 'MPRN'
dynpprog = sy-repid
dynpnr = sy-dynnr
window_title = 'Select MPRN'
value_org = 'S'
TABLES
value_tab = i_mprn1 "lt_mprn
return_tab = lt_returntab
EXCEPTIONS
parameter_error = 1
no_values_found = 2
OTHERS = 3.
IF sy-subrc EQ 0.
READ TABLE lt_returntab INDEX 1.
READ TABLE i_mprn1 WITH KEY mprn = lt_returntab-fieldval.
IF sy-subrc EQ 0.
Updating MPRN
MOVE i_mprn1-mprn TO i_mprn-mprn.
CLEAR : i_dnpfld,
ws_dynpfld.
REFRESH : i_dnpfld.
ws_dyname = 'ZSRO_MASTER_DATA'.
ws_dynumb = '0301'.
ws_dynpfld-fieldname ='I_MPRN-MPRN'.
ws_dynpfld-fieldvalue = i_mprn1-mprn .
ws_dynpfld-stepl = stepl_index.
APPEND ws_dynpfld TO i_dnpfld.
**code changed by laxman 10.08.2005
ws_dynpfld-stepl = mprn-current_line.
**code changed by laxman 10.08.2005
CALL FUNCTION 'DYNP_VALUES_UPDATE'
EXPORTING
dyname = ws_dyname
dynumb = ws_dynumb
TABLES
dynpfields = i_dnpfld
EXCEPTIONS
invalid_abapworkarea = 1
invalid_dynprofield = 2
invalid_dynproname = 3
invalid_dynpronummer = 4
invalid_request = 5
no_fielddescription = 6
undefind_error = 7
OTHERS = 8.
IF sy-subrc <> 0.
ENDIF.
Updating post code
CONCATENATE i_mprn1-outcode i_mprn1-incode
INTO ws_postcode
SEPARATED BY space.
MOVE ws_postcode TO i_mprn-post_code.
CLEAR : i_dnpfld,
ws_dynpfld.
REFRESH : i_dnpfld.
ws_dyname = 'ZSRO_MASTER_DATA'.
ws_dynumb = '0301'.
ws_dynpfld-fieldname ='I_MPRN-POST_CODE'.
ws_dynpfld-fieldvalue = ws_postcode .
ws_dynpfld-stepl = stepl_index.
APPEND ws_dynpfld TO i_dnpfld.
**code changed by laxman 10.08.2005
break gblap0.
ws_dynpfld-stepl = mprn-current_line.
LOOP AT i_mprn.
MOVE i_mprn1-mprn TO i_mprn-mprn.
MOVE ws_postcode TO i_mprn-post_code.
MODIFY i_mprn INDEX
mprn-current_line." transporting MPRN POST_CODE.
ENDLOOP.
**code changed by laxman 10.08.2005
CALL FUNCTION 'DYNP_VALUES_UPDATE'
EXPORTING
dyname = ws_dyname
dynumb = ws_dynumb
TABLES
dynpfields = i_dnpfld
EXCEPTIONS
invalid_abapworkarea = 1
invalid_dynprofield = 2
invalid_dynproname = 3
invalid_dynpronummer = 4
invalid_request = 5
no_fielddescription = 6
undefind_error = 7
OTHERS = 8.
IF sy-subrc <> 0.
ENDIF.
ENDIF.
ELSEIF sy-subrc EQ 2.
MESSAGE s006(zspa) WITH i_mprn1-mprn .
ENDIF.
ENDMODULE. "MPRN_F4 INPUT
MODULE GNTC_F4 INPUT
MODULE gntc_f4 INPUT.
DATA: BEGIN OF lt_gntc OCCURS 0,
gntc LIKE iflot-zzgntc,
END OF lt_gntc.
CLEAR: lt_returntab, lt_gntc.
REFRESH: lt_returntab, lt_gntc.
lt_gntc-gntc = 'DM'.
APPEND lt_gntc. CLEAR lt_gntc.
lt_gntc-gntc = 'NDM'.
APPEND lt_gntc. CLEAR lt_gntc.
CALL FUNCTION 'F4IF_INT_TABLE_VALUE_REQUEST'
EXPORTING
retfield = 'ZZGNTC'
dynpprog = sy-repid
dynpnr = sy-dynnr
window_title = 'Select Gas Nomination Type Code'
value_org = 'S'
TABLES
value_tab = lt_gntc
return_tab = lt_returntab
EXCEPTIONS
parameter_error = 1
no_values_found = 2
OTHERS = 3.
IF sy-subrc EQ 0.
READ TABLE lt_returntab INDEX 1.
i_mprn-dm_ndm = lt_returntab-fieldval.
ENDIF.
ENDMODULE. "GNTC_F4 INPUT
*& Module mprn1_f4 INPUT
text
MODULE mprn1_f4 INPUT.
DATA: lt_f4 TYPE ddshretval OCCURS 0 WITH HEADER LINE,
lt_returntab1 LIKE ddshretval OCCURS 0 WITH HEADER LINE,
lt_dynpfields1 LIKE dynpread OCCURS 0 WITH HEADER LINE,
lt_dnpfields1 LIKE dynpread OCCURS 0 WITH HEADER LINE.
DATA: stepl1 TYPE systepl,
stepl_index1 TYPE systepl.
DATA : i_dnpfld1 LIKE dynpread OCCURS 0 WITH HEADER LINE,
ws_dyname1 LIKE d020s-prog,
ws_dynumb1 LIKE d020s-dnum,
ws_dynpfld1 LIKE dynpread.
CLEAR: i_dnpfld1, ws_dyname1, ws_dynumb1, ws_dynpfld1,
lt_f4, lt_returntab1,lt_dynpfields1, lt_f4,
stepl1, stepl_index1.
REFRESH: i_dnpfld1, lt_returntab1,lt_dynpfields1, lt_f4.
To Determine Steploop Index
lt_dynpfields1-fieldname = 'I_MPRN-POST_CODE'.
lt_dynpfields1-stepl = stepl1.
APPEND lt_dynpfields1. CLEAR lt_dynpfields1.
CALL FUNCTION 'DYNP_VALUES_READ'
EXPORTING
dyname = sy-repid
dynumb = sy-dynnr
translate_to_upper = 'X'
determine_loop_index = 'X'
TABLES
dynpfields = lt_dynpfields1
EXCEPTIONS
invalid_abapworkarea = 1
invalid_dynprofield = 2
invalid_dynproname = 3
invalid_dynpronummer = 4
invalid_request = 5
no_fielddescription = 6
invalid_parameter = 7
undefind_error = 8
double_conversion = 9
stepl_not_found = 10
OTHERS = 11.
IF sy-subrc EQ 0.
READ TABLE lt_dynpfields1 INDEX 1.
ENDIF.
stepl_index1 = lt_dynpfields1-stepl.
CALL FUNCTION 'F4IF_FIELD_VALUE_REQUEST'
EXPORTING
tabname = 'IFLOT'
fieldname = 'I_MPRN-MPRN'
searchhelp = 'ZS_MPRN_PC'
dynpprog = sy-repid
dynpnr = sy-dynnr
TABLES
return_tab = lt_f4
EXCEPTIONS
field_not_found = 1
no_help_for_field = 2
inconsistent_help = 3
no_values_found = 4
OTHERS = 5.
IF sy-subrc <> 0.
MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
ENDIF.
Update tablecontrol
READ TABLE lt_f4 WITH KEY fieldname = 'MPRN'.
IF sy-subrc = 0.
MOVE lt_f4-fieldval TO i_mprn-mprn.
ws_dyname1 = 'ZSRO_MASTER_DATA'.
ws_dynumb1 = '0301'.
ws_dynpfld1-fieldname ='I_MPRN-MPRN'.
ws_dynpfld1-fieldvalue = i_mprn-mprn.
ws_dynpfld1-stepl = stepl_index1.
APPEND ws_dynpfld1 TO i_dnpfld1.
CALL FUNCTION 'DYNP_VALUES_UPDATE'
EXPORTING
dyname = ws_dyname1
dynumb = ws_dynumb1
TABLES
dynpfields = i_dnpfld1
EXCEPTIONS
invalid_abapworkarea = 1
invalid_dynprofield = 2
invalid_dynproname = 3
invalid_dynpronummer = 4
invalid_request = 5
no_fielddescription = 6
undefind_error = 7
OTHERS = 8.
IF sy-subrc <> 0.
ENDIF.
ENDIF.
CLEAR : i_dnpfld1, ws_dynpfld1.
REFRESH: i_dnpfld1.
READ TABLE lt_f4 WITH KEY fieldname = 'ZZPSTLZ'.
IF sy-subrc = 0.
MOVE lt_f4-fieldval TO i_mprn-post_code.
ws_dyname1 = 'ZSRO_MASTER_DATA'.
ws_dynumb1 = '0301'.
ws_dynpfld1-fieldname ='I_MPRN-POST_CODE'.
ws_dynpfld1-fieldvalue = i_mprn-post_code.
ws_dynpfld1-stepl = stepl_index1.
APPEND ws_dynpfld1 TO i_dnpfld1.
CALL FUNCTION 'DYNP_VALUES_UPDATE'
EXPORTING
dyname = ws_dyname1
dynumb = ws_dynumb1
TABLES
dynpfields = i_dnpfld1
EXCEPTIONS
invalid_abapworkarea = 1
invalid_dynprofield = 2
invalid_dynproname = 3
invalid_dynpronummer = 4
invalid_request = 5
no_fielddescription = 6
undefind_error = 7
OTHERS = 8.
IF sy-subrc <> 0.
ENDIF.
ENDIF.
ENDMODULE. " mprn1_f4 INPUT
*& Module pstlz1_f4 INPUT
text
MODULE pstlz1_f4 INPUT.
CLEAR: i_dnpfld1, ws_dyname1, ws_dynumb1, ws_dynpfld1,
lt_f4, lt_returntab1,lt_dynpfields1, lt_f4,
stepl1, stepl_index1.
REFRESH: i_dnpfld1, lt_returntab1,lt_dynpfields1, lt_f4.
To Determine Steploop Index
lt_dynpfields1-fieldname = 'I_MPRN-MPRN'.
lt_dynpfields1-stepl = stepl1.
APPEND lt_dynpfields1. CLEAR lt_dynpfields1.
CALL FUNCTION 'DYNP_VALUES_READ'
EXPORTING
dyname = sy-repid
dynumb = sy-dynnr
translate_to_upper = 'X'
determine_loop_index = 'X'
TABLES
dynpfields = lt_dynpfields1
EXCEPTIONS
invalid_abapworkarea = 1
invalid_dynprofield = 2
invalid_dynproname = 3
invalid_dynpronummer = 4
invalid_request = 5
no_fielddescription = 6
invalid_parameter = 7
undefind_error = 8
double_conversion = 9
stepl_not_found = 10
OTHERS = 11.
IF sy-subrc EQ 0.
READ TABLE lt_dynpfields1 INDEX 1.
ENDIF.
stepl_index1 = lt_dynpfields1-stepl.
CALL FUNCTION 'F4IF_FIELD_VALUE_REQUEST'
EXPORTING
tabname = 'IFLOT'
fieldname = 'I_MPRN-POST_CODE'
searchhelp = 'ZS_MPRN_PC'
dynpprog = sy-repid
dynpnr = sy-dynnr
TABLES
return_tab = lt_f4
EXCEPTIONS
field_not_found = 1
no_help_for_field = 2
inconsistent_help = 3
no_values_found = 4
OTHERS = 5.
IF sy-subrc <> 0.
MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
ENDIF.
Update tablecontrol
READ TABLE lt_f4 WITH KEY fieldname = 'ZZPSTLZ'.
IF sy-subrc = 0.
MOVE lt_f4-fieldval TO i_mprn-post_code.
ws_dyname1 = 'ZSRO_MASTER_DATA'.
ws_dynumb1 = '0301'.
ws_dynpfld1-fieldname ='I_MPRN-POST_CODE'.
ws_dynpfld1-fieldvalue = i_mprn-post_code.
ws_dynpfld1-stepl = stepl_index1.
APPEND ws_dynpfld1 TO i_dnpfld1.
CALL FUNCTION 'DYNP_VALUES_UPDATE'
EXPORTING
dyname = ws_dyname1
dynumb = ws_dynumb1
TABLES
dynpfields = i_dnpfld1
EXCEPTIONS
invalid_abapworkarea = 1
invalid_dynprofield = 2
invalid_dynproname = 3
invalid_dynpronummer = 4
invalid_request = 5
no_fielddescription = 6
undefind_error = 7
OTHERS = 8.
IF sy-subrc <> 0.
ENDIF.
ENDIF.
CLEAR : i_dnpfld1, ws_dynpfld1.
REFRESH: i_dnpfld1.
READ TABLE lt_f4 WITH KEY fieldname = 'MPRN'.
IF sy-subrc = 0.
MOVE lt_f4-fieldval TO i_mprn-mprn.
ws_dyname1 = 'ZSRO_MASTER_DATA'.
ws_dynumb1 = '0301'.
ws_dynpfld1-fieldname ='I_MPRN-MPRN'.
ws_dynpfld1-fieldvalue = i_mprn-mprn.
ws_dynpfld1-stepl = stepl_index1.
APPEND ws_dynpfld1 TO i_dnpfld1.
CALL FUNCTION 'DYNP_VALUES_UPDATE'
EXPORTING
dyname = ws_dyname1
dynumb = ws_dynumb1
TABLES
dynpfields = i_dnpfld1
EXCEPTIONS
invalid_abapworkarea = 1
invalid_dynprofield = 2
invalid_dynproname = 3
invalid_dynpronummer = 4
invalid_request = 5
no_fielddescription = 6
undefind_error = 7
OTHERS = 8.
IF sy-subrc <> 0.
ENDIF.
ENDIF.
ENDMODULE. " pstlz1_f4 INPUT
Regards,
Prakash. -
Determine of Tax Code for Country/Product Category - Table handling
Dear Experts,
in SRM 7.0, CS, i am facing the following requirement regarding tax codes:
We have users from different countries using SRM. These different countries have different tax codes that are to be used for legal reasons.
My question is, how i can achieve a system behaviour, by which in the shopping cart, the correct tax codes gets selected automatically, based on the country of the user, who is creating the shopping cart.
Question 1:
Is it correct to assume, that this requirement can be achieved by maintaining the "Determine of Tax Code for Country/Product Category" - Table?
Q2:
What is the purpose of the 1st column of the above mentioned table, "Domestic/International Indicator"? Can it be left blank?
Q3:
Is it possible to fill in the values for the field "Country" BUT to leave the field "Category ID" empty???The reason for asking it, that otherwise several hundreds entries would have to be maintaind manaully...
Q4:
From where in the shopping cart or ppoma settings is the system fetching the Country code, in order to be able to use it in the table? Is there any specific attribute maintenance that has to be taken care of, so the above mentioned table can be used (e.g. delivery address, including the country information)?
Thank you very much for your help in understanding the topic.Hi
Here are my responses to your questions:
Question 1:
Is it correct to assume, that this requirement can be achieved by maintaining the "Determine of Tax Code for Country/Product Category" - Table?
Answer - If you have a requirement where different countries have different tax codes, then you do need this confiugration. Otherwise Configuraiton in Enter Tax Code are sufficient.
Q2:
What is the purpose of the 1st column of the above mentioned table, "Domestic/International Indicator"? Can it be left blank?
Answer - Sometimes you have different codes for International and Domestic purchases for a product Category. IN those situations you can select Domestic/International field to differentiate btw tax codes. Otherwise this field can be left blank
Q3:
Is it possible to fill in the values for the field "Country" BUT to leave the field "Category ID" empty???The reason for asking it, that otherwise several hundreds entries would have to be maintaind manaully...
Answer - No, if you enter country, then Category Id field is mandatory. You may enter * in case you dont have multiple backend systems. otherwise you will ve to ve individual entries for each category and backend system.
Q4:
From where in the shopping cart or ppoma settings is the system fetching the Country code, in order to be able to use it in the table? Is there any specific attribute maintenance that has to be taken care of, so the above mentioned table can be used (e.g. delivery address, including the country information)?
Answer - It is picked up from the address of the user where is will receive goods. and Domestic/International will be decided based on Vendor address with reference to thta address.
I hope my responses clarify your doubts.
Regards
Virender Singh -
Default value for a column in Table Control
Hi friends, can i set dinamcally a default value for a column in table control?, this column is check type. This default value must appear in empty rows,
thanksADD A MODULE AS Module yyyy In ur PAI.
as
In PAI.
LOOP at itab.
Module YYYY
ENDLOOP.
Module YYYY.
LOOP AT SCREEN.
IF SCREEN-NAME = 'ITAB-VAL.
ITAB-VAL = 'XXXXXXXX' "(DEFAULT VALUE)
SCREEN-INPUT = 0.
MODIFY SCREEN.
ENDIF.
ENDLOOP.
End module.
*note
make this event work only if the previous column is filled okay.
the display will be in display mode on the screen as screen-input = 0.
see that in the table control u can get the table field for all the rows even though you are processing on some fields .
so what u do is make that particular filed masked(no i/p field and populate the field that will be better instead of populating all the columns okay.
hope this helps you out ,
regards,
vijay. -
Possible to code a Find/Find Next feature for use inside a Table Control
Hello,
I have a Table Control that displays many lines. Is it possible to code a Find/Find Next feature that would allow the user to enter a 'keyword' then search each line of the Table Control for existing matches?
I have provided the user with various Selection Criteria that will filter the table control results, but there are still too many lines to visually scan for the desired result.
I am guessing that I would place an input box and a 'Find' button onto my layout screen. Then in user command, I have to scroll through each line of the table control and check every value to see if the string contains 'keyword' When found, stop and display table control assigning current line as Top line?
Am I on the right track or is there a better solution already?
Kind Regards,
MPerssonI've done that. It works pretty well. You might want to allow the user to search only in selected column(s) as well.
Rob -
The PAI Event Code to search for a record in Table Control
Logic
1. I have a position button and entry text field (search content) for a table control in my screen. Position button has the function code 'PBUT'.
2. Content of table control will be in an internal table. The entry text field is to be used for positioning.
3. I enter the search (key) field in text field & Click the position button.
4. The PAI event of button click (Module user_command) of that screen is as under.
Case sy_ucomm.
When 'PBUT'.
What will be the code to bring the row as selected in table control, that I have to write here, for this case-value.
Endcase.
Regards,Hi Alok,
Excuse me, couldn`t catch u yesterday. Ok i`ve the code which will set the cursor on the selected entry.
Reward points if convinced.
*& Report Y131_TC_TEST *
REPORT y131_tc_test NO STANDARD PAGE HEADING.
TABLES: vbak.
DATA : BEGIN OF str_tc,
vbeln LIKE vbak-vbeln,
erdat LIKE vbak-erdat,
END OF str_tc,
it_tc LIKE TABLE OF str_tc WITH HEADER LINE,
loopc LIKE sy-loopc,
flag,
lin TYPE i.
CONTROLS : my_tc TYPE TABLEVIEW USING SCREEN 9000.
CALL SCREEN 9000.
*& Module STATUS_9000 OUTPUT
* text
MODULE status_9000 OUTPUT.
* SET PF-STATUS 'xxxxxxxx'.
* SET TITLEBAR 'xxx'.
IF it_tc[] IS INITIAL.
SELECT vbeln erdat INTO TABLE it_tc UP TO 10
ROWS FROM vbak.
DESCRIBE TABLE it_tc LINES lin.
my_tc-top_line = loopc.
ENDIF.
ENDMODULE. " STATUS_9000 OUTPUT
*& Module USER_COMMAND_9000 INPUT
* text
MODULE user_command_9000 INPUT.
CASE sy-ucomm.
WHEN 'EXIT'.
LEAVE PROGRAM.
<b> WHEN 'PBUT'.</b>
**** Now this event is triggerred when the user uses the ****Position Push button to locate the field value.
CALL SCREEN 9001 STARTING AT 10 15.
ENDCASE.
ENDMODULE. " USER_COMMAND_9000 INPUT
*& Module USER_COMMAND_9001 INPUT
* text
MODULE user_command_9001 INPUT.
CASE sy-ucomm.
WHEN 'OKAY' OR ' ' or 'EXIT'.
<b>**** When the user selects values from the search help on **** position button, the itab is read and index is *****assigned</b>
READ TABLE it_tc WITH KEY vbeln = vbak-vbeln.
IF sy-subrc = 0.
loopc = sy-tabix.
flag = 'X'.
**** the cursor is set here
<b> my_tc-top_line = loopc.</b>
SET SCREEN 0.
LEAVE SCREEN.
ENDIF.
ENDCASE.
ENDMODULE. " USER_COMMAND_9001 INPUT
*& Module STATUS_9001 OUTPUT
* text
MODULE status_9001 OUTPUT.
SET PF-STATUS 'MODAL'.
* SET TITLEBAR 'xxx'.
ENDMODULE. " STATUS_9001 OUTPUT
Regards -
Hi,
How do I remove the vertical and horizontal scroll bars in the table control? I would like to use the Pg Up/Down buttons instead.
Thanks,
Mounika.Mounika,
You can add or remove the scroll bar in the table control by switching off horizontal and vertical scrolling in the properties of the table control. The properties can be accessed from the screen painter by double clicking on the table control. Regarding the page up and page down functions, I believe you add those buttons in the screen layout and code for them. You can use the standard function code for the page up and page down functions.
Regarding the Page up Page down...You need to add some extra code in your program to activvate that. Check the following program for example.
DEMO_DYNPRO_TABCONT_LOOP_AT
or try something like this
try something like:
CASE sy-ucomm.
WHEN 'P+' OR
'P++' OR
'P-' OR
'P--'
CALL FUNCTION 'SCROLLING_IN_TABLE'
EXPORTING
entry_act = tc-top_line
entry_to = tc-lines
last_page_full = 'X'
loops = loops
ok_code = sy-ucomm
overlapping = 'X'
IMPORTING
entry_new = tc-top_line
EXCEPTIONS
no_entry_or_page_act = 1
no_entry_to = 2
no_ok_code_or_page_go = 3
OTHERS = 4
ENDCASE .
Hope this helps
Vinodh Balakrishnan -
Vertical scroll bar in table control with wizrads
Hi,
Im working on a table control with a customised table. I created a table control with wizards. But vertical scroll bar is not working. How can i invoke vertical scroll bar and can any one provide the code for the all the operations on a table control like save,find,find next,change....Thanks in advance.
AvinashHi Avinash
move the records number of your internal table into field LINES of tablecontrol. So you should change the code generated by wizard in PBO, for example create a new module:
PROCESS PBO
MODULE SET_DATA_TO_T_CTRL.
LOOP..
ENDLOOP.
MODULE SET_DATA_TO_T_CTRL.
DESCRIBE TABLE ITAB LINE SY-TABIX.
<TABLECONTROL>-LINES = SY-TABIX.
ENDMODULE.
Max -
Vertical Scroll Reload on Table Control
Hello,
I've created a couple table controls in ABAP for a custom transaction that is going to be run through the web portal. My problem is that the horizontal scroll on the table is handled on the front end, and the vertical scroll is handled in the program. This means that moving the vertical scroll bar is much slower and not as user friendly as the horizontal one when run on the web (where it has to hit the back end and refresh the screen every time it's moved). I don't think there is anything I can do about that, but on behalf of my customer I thought I'd check to see if anyone here knows any settings or any way to run vertical scrolling without hitting the abap code.
Thanks,
Nathan BeelerYou might also look at the<a href="http://help.sap.com/saphelp_webas630/helpdata/en/24/ef243a84da356be10000000a11402f/plain.htm">ITS Service Parameters</a>. I'm thinking of ~AUTOSCROLL.
Rob -
F4 help for a field on table control
Hi All,
I have to display F4 help for a purticular field on the table control depending on one of the value in the row if the table.
There will be multiple entries in the table control and the F4 help for the field should change according to the value of other field in the row.
Can anybdy help me out doing this.....
Edited by: Alvaro Tejada Galindo on Feb 21, 2008 10:46 AMCheck the FM: HELP_VALUES_GET_WITH_TABLE_EXT
Check the documentation for example code.
regards,
Ravi -
Issue while vertical scrolling in the table control
Hi,
i have my table control which can show 14 entries at a time. and i have almost 100 entries in table control.
now if i selected 2 entries in the visible part.
now scroll vertically.
again come back to see the selected records now they are unselected.
please respond soon.
Thanks
MalyaHi,
I have redone the scenario and follow the steps it will work....
STEP 1: Create an internal table with field for selection in table.
STEP 2: Assign the selection field in the table control for the line selection.
STEP 3: Now whenever the line is selected, the selection field will have a field 'X'.
STEP 4: In PAI Modify the table fields those are selected with 'X'.
STEP 5: Set a flag in PAI, flag = 'X'.
STEP 6: In PBO set a condition . " We set a flag so that we fetch the data only once.
If flag NE 'X'.
Fetch data.
endif.
Data:
begin of ztable,
ID type char4,
Name type char30,
Sel type c,
end of ztable.
PROCESS BEFORE OUTPUT.
MODULE STATUS_0100.
LOOP AT ITAB INTO FS WITH CONTROL EMP CURSOR W_I.
MODULE UPDATE.
ENDLOOP.
PROCESS AFTER INPUT.
LOOP AT ITAB.
MODULE APPEND.
ENDLOOP.
MODULE USER_COMMAND_0100.
INCLUDE YMODTOP . " global Data
*& Module UPDATE OUTPUT
* text
MODULE UPDATE OUTPUT.
MOVE FS TO FS.
ENDMODULE. " UPDATE OUTPUT
*& Module STATUS_0100 OUTPUT
* text
MODULE STATUS_0100 OUTPUT.
IF FL_FLAG <> 1.
SELECT * FROM ZTABLE INTO CORRESPONDING FIELDS OF TABLE ITAB.
ENDIF.
ENDMODULE. " STATUS_0100 OUTPUT
*& Module append INPUT
* text
MODULE APPEND INPUT.
MODIFY ITAB INDEX SY-STEPL FROM FS TRANSPORTING SEL .
FL_FLAG = 1.
ENDMODULE.
Thanks&Regards
Sarves
Maybe you are looking for
-
Notes not syncing in last 10 days
even before upgrading to version 4.1, my 3GS stopped syncing notes from MacMail. I used to be able to type my notes onto the computer and sync them into the phone and visa versa. Now any new notes I add to macmail notes just disappear. And I think th
-
Best Practice for Debugging Code
Hi! I am new to development in Crystal. What method do you recommend to verify my formulas are doing what I expect? For example, in other environments I would print or prompt the result. What is the best approach in Crystal? Any help you can provi
-
Strange number rounding problem
I am using CR 8.5 and I have a number field inserted into the detail section of my report. Although rounding is set to 0.001 in the number format, the field displays rounded to the nearest whole number (e.g. 11.235 is displayed as 11.000). I have che
-
Purple box appearing around links in IE only.
I designed standard links from the index page to other pages. In Safari, they look fine, but in Internet Explorer there is a purple box that appears around the link once it is clicked. I cannot figure out why. Any help would be greatly appreciated.
-
Acrobat 9 not connecting to Thunderbird in Windows 8
I have seen many posts from people where Acrobat will not send via Thunderbird. This problem persists even while the email link works using other Windows apps and the mailto link on web pages. The solution is simple. Open "Contol Panel" in Windows