‎2007 Apr 16 7:23 AM
in my program i have 2 select-options
1.Company code
2.Portfolios
these two are maintained in a Ztable
a)if we press F4 on Company code it has to show d values from Ztable-company code, and also
b)
i)if we press F4 on Portfolios by entering company code ,it has to show d values from Ztable-portfolios related to that company code,
ii)if we press F4 on Portfolios without entering company code ,it has to show d all values from Ztable-portfolios.
i have done <b>a)</b>,
but i have also written select query for fortfolios in where condition i have given companycode (selectoption)...but it is not taking d values in that select-option,
if i press enter and then pressed F4 on portpolio then only it is taking values in compnay code(then only values are comming into company code, otherwise not comming)....
what is d solution to achive corret result..
Ramesh.
‎2007 Apr 16 7:39 AM
Make search help in se11 for company code using ur ztable.
and use matchcode objects in the abap code.
for showing portfolios use FM ' f4_if_int_table_value_request'.
in this FM populate ur ITAB with values from company code that is selected on selection screen.
‎2007 Apr 16 7:40 AM
‎2007 Apr 16 7:40 AM
Hi ramesh,
I had developed a program in Hr ABAp,which has a similar requirement as in ur selection screen.
Below is my code. jus go thro,u can make out how i hav written the Select query for F4 in selection screen.
REPORT zpdr_010_succession_report.
----
TYPE-POOLS *
----
TYPE-POOLS : slis.
----
TABLES *
----
TABLES: pernr.
----
INFOTYPES *
----
INFOTYPES : 0000, "HR Master Record: Infotype 0000 (Actions)
0001, "HR Master Record: Infotype 0001 (Org. Assignment)
0002, "HR Master Record: Infotype 0002 (Personal Data)
9023. "HR Master Record: Infotype 9023
----
NODES *
----
NODES : peras.
----
TYPES - TY_ *
----
TYPES: BEGIN OF ty_final,
slno TYPE i, "Slno
name1(100) TYPE c, "Company name
rufnm TYPE p0002-rufnm, "Employee name
pernr TYPE p9023-pernr, "Personnel Number
plstx TYPE t528t-plstx, "Designation
rufnmc TYPE p0002-rufnm, "Contigency
rufnms1 TYPE p0002-rufnm, "Successor1
zz_red_level1(2) TYPE c, "Readiness level of succ1
zzdevpln1(144) TYPE c, "Development plan of succ1
rufnms2 TYPE p0002-rufnm, "Successor2
zz_red_level2(2) TYPE c, "Readiness level of succ2
zzdevpln2(144) TYPE c, "Development plan of succ2
rufnms3 TYPE p0002-rufnm, "Successor3
zz_red_level3(2) TYPE c, "Readiness level of succ3
zzdevpln3(144) TYPE c, "Development plan of succ1
END OF ty_final,
BEGIN OF ty_t500p,
persa TYPE t500p-persa , "Personnel area
addrnumber TYPE t500p-adrnr, "Address Number
END OF ty_t500p,
BEGIN OF ty_adrc,
addrnumber TYPE adrc-addrnumber,
name1 TYPE adrc-name1,
name2 TYPE adrc-name2,
name3 TYPE adrc-name3,
name4 TYPE adrc-name4,
END OF ty_adrc,
BEGIN OF ty_sectgrp,
sectgrp TYPE zpat003_sector-sectgrp, "Sector group
END OF ty_sectgrp,
BEGIN OF ty_sector,
sector TYPE zpat003_sector-sector, "Sector
END OF ty_sector,
BEGIN OF ty_level,
zcode TYPE zpat001_f4help-zcode,
ztext TYPE zpat001_f4help-ztext,
END OF ty_level,
BEGIN OF ty_t528t,
plans TYPE plans, "POSITION (Designation)
plstx TYPE plstx, "POSITION TEXT
END OF ty_t528t,
BEGIN OF ty_egrp,
persg TYPE pa0001-persg,
END OF ty_egrp.
----
Constants for ALV *
----
CONSTANTS : c_s TYPE c VALUE 'S' ,
c_h TYPE c VALUE 'H' ,
c_i TYPE c VALUE 'I',
c_1 TYPE c VALUE '1' ,
c_3 TYPE c VALUE '3' ,
c_e TYPE c VALUE 'E' ,
c_f006(15) TYPE c VALUE 'F006_ALV_HEADER',
c_top(11) TYPE c VALUE 'TOP_OF_PAGE',
c_zlevel(12) TYPE c VALUE 'ZZ_LEVEL0001',
c_sect(6) TYPE c VALUE 'SECTOR',
c_sectgrp(7) TYPE c VALUE 'SECTGRP',
c_sgrp(8) TYPE c VALUE 'PR_SECGR',
c_sector(7) TYPE c VALUE 'PR_SECT',
c_0002 TYPE prelp-infty VALUE '0002',
c_prlevel TYPE help_info-dynprofld VALUE 'SO_LEVEL-LOW',
c_zcode TYPE dfies-fieldname VALUE 'ZCODE',
c_01(2) TYPE c VALUE '01',
c_02(2) TYPE c VALUE '02',
c_03(2) TYPE c VALUE '03',
c_r1(2) TYPE c VALUE 'R1',
c_r2(2) TYPE c VALUE 'R2',
c_rn(2) TYPE c VALUE 'R3'.
----
Internal table IT_ *
----
****IT_DISP is the final internal table to which the Employee details
****are populated.
****IT_FCAT is the Internal Table for field catalog in ALV display
DATA : it_final TYPE TABLE OF ty_final,
it_fcat TYPE slis_t_fieldcat_alv,
Interbal Table for the respective types.
it_t500p TYPE TABLE OF ty_t500p,
it_adrc TYPE TABLE OF ty_adrc,
it_sectgrp TYPE TABLE OF ty_sectgrp,
it_sector TYPE TABLE OF ty_sector,
it_level TYPE TABLE OF ty_level,
it_t528t TYPE TABLE OF ty_t528t,
it_egrp TYPE TABLE OF ty_egrp,
IT_EVENT & IT_LHEAD for obtaining ALV header.
it_event TYPE slis_t_event,
it_lhead TYPE slis_t_listheader,
it_02a TYPE TABLE OF pa0002,
it_secgr TYPE TABLE OF dynpread,
it_sector1 TYPE TABLE OF ty_sector.
----
Workfields W_ *
----
DATA: w_temp(50) TYPE c, "ALV header text.
w_count TYPE i, "SLNO
w_index TYPE i.
*----
Data Begin with GW_ (global varibles)
*----
DATA : gw_retfield TYPE dfies-fieldname,
gw_dynprofield TYPE help_info-dynprofld.
----
Workarea WA_ *
----
****WA_DISP is the workarea of the final internal table IT_DISP.
****WA_FCAT is the workarea of the field catalog IT_FCAT.
DATA: wa_final TYPE ty_final,
wa_fcat TYPE slis_fieldcat_alv,
Work area for the respective types.
wa_t500p TYPE ty_t500p,
wa_adrc TYPE ty_adrc,
wa_t528t TYPE ty_t528t,
wa_egrp TYPE ty_egrp,
WA_EVENT & WA_LHEAD for obtaining ALV header.
wa_event TYPE slis_alv_event ,
wa_lhead TYPE slis_listheader ,
wa_02a TYPE pa0002,
wa_secgr TYPE dynpread,
wa_sectgrp TYPE ty_sectgrp.
----
PARAMETERS pr_* *
----
SELECTION-SCREEN BEGIN OF BLOCK bcp WITH FRAME TITLE text-001.
Parameters of Sector group,Sector,Level and Year respectively.
PARAMETERS : pr_secgr TYPE p0001-zz_sectgrp OBLIGATORY,
pr_sect TYPE p0001-zz_sector OBLIGATORY,
pr_year TYPE t549q-pabrj OBLIGATORY.
select-options : so_level for p0001-zz_level0001 no intervals.
SELECTION-SCREEN END OF BLOCK bcp.
************************************************************************
Initialisation *
*
************************************************************************
INITIALIZATION.
REFRESH it_sectgrp.
SELECT sectgrp
FROM zpat003_sector
INTO TABLE it_sectgrp
WHERE sectgrp <> space.
SORT it_sectgrp BY sectgrp.
DELETE ADJACENT DUPLICATES FROM it_sectgrp.
wa_secgr-fieldname = c_sgrp.
APPEND wa_secgr TO it_secgr.
************************************************************************
AT SELECTION-SCREEN ON VALUE-REQUEST *
*
************************************************************************
****To obtain F4 help for the parameters in the selction screen
****F4 for Sector group in selection screen
AT SELECTION-SCREEN ON VALUE-REQUEST FOR pr_secgr.
gw_retfield = c_sectgrp.
gw_dynprofield = c_sgrp.
PERFORM f008_get_help_values TABLES it_sectgrp
CHANGING gw_retfield gw_dynprofield.
************************************************************************
AT SELECTION-SCREEN ON VALUE-REQUEST *
*
************************************************************************
***F4 for Sector in selection screen
AT SELECTION-SCREEN ON VALUE-REQUEST FOR pr_sect.
CALL FUNCTION 'DYNP_VALUES_READ'
EXPORTING
dyname = sy-cprog
dynumb = sy-dynnr
TABLES
dynpfields = it_secgr.
READ TABLE it_secgr INTO wa_secgr INDEX 1.
REFRESH it_sector.
IF wa_secgr-fieldvalue IS NOT INITIAL.
SELECT sector
FROM zpat003_sector
INTO TABLE it_sector
WHERE sectgrp = wa_secgr-fieldvalue.
ELSE.
SELECT sector
FROM zpat003_sector
INTO TABLE it_sector
WHERE sectgrp <> space.
ENDIF.
SORT it_sector BY sector.
DELETE ADJACENT DUPLICATES FROM it_sector.
gw_retfield = c_sect.
gw_dynprofield = c_sector.
PERFORM f008_get_help_values TABLES it_sector
CHANGING gw_retfield gw_dynprofield .
************************************************************************
AT SELECTION-SCREEN *
*
************************************************************************
AT SELECTION-SCREEN.
if pnppersg-low is not initial.
find pnppersg-low in sy-abcde+0(8).
if sy-subrc is not initial.
message 'Enter the valid Employee Group' type 'E'.
endif.
endif.
CLEAR wa_sectgrp.
READ TABLE it_sectgrp INTO wa_sectgrp WITH KEY sectgrp = pr_secgr.
IF wa_sectgrp IS INITIAL.
MESSAGE text-042 TYPE c_e.
ENDIF.
REFRESH it_sector1.
SELECT sector
FROM zpat003_sector
INTO TABLE it_sector1
WHERE sectgrp = pr_secgr
AND sector = pr_sect.
IF it_sector1 IS INITIAL.
MESSAGE text-043 TYPE c_e.
ENDIF.
****F4 for Level in selection screen
AT SELECTION-SCREEN ON VALUE-REQUEST FOR so_level-low.
SELECT zcode ztext
FROM zpat001_f4help
INTO TABLE it_level
WHERE zfield = c_zlevel.
SORT it_level BY zcode.
DELETE ADJACENT DUPLICATES FROM it_level.
CALL FUNCTION 'F4IF_INT_TABLE_VALUE_REQUEST'
EXPORTING
retfield = c_zcode
dynpprog = sy-repid
dynpnr = sy-dynnr
dynprofield = c_prlevel
value_org = c_s
TABLES
value_tab = it_level
EXCEPTIONS
parameter_error = 1
no_values_found = 2
OTHERS = 3.
IF sy-subrc IS NOT INITIAL.
MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
ENDIF.
----
Start-of-Selection *
----
START-OF-SELECTION.
CLEAR : wa_final,
wa_fcat,
wa_t500p,
wa_02a,
wa_adrc,
wa_t528t,
wa_event ,
wa_lhead .
REFRESH : it_final,
it_fcat,
it_t500p,
it_adrc,
it_t528t,
it_02a,
it_event,
it_lhead.
PERFORM f001_data_select.
GET peras.
PERFORM f002_data_fetch.
----
End-of-Selection *
----
END-OF-SELECTION.
**..... Header detail for ALV
wa_event-name = c_top.
wa_event-form = c_f006.
APPEND wa_event TO it_event.
CLEAR wa_event.
PERFORM f005_top_of_page.
PERFORM f003_alv_fcat .
PERFORM f004_alv_display.
&----
*& Form f001_data_select
&----
Fetches data from table ADRC and T528T for display
----
FORM f001_data_select .
**..... Fetches persa adrnr from t500p for all fetched employees
SELECT persa
adrnr
FROM t500p
INTO TABLE it_t500p.
IF it_t500p IS NOT INITIAL.
**..... Fetches name1 name2 name3 name4 from adrc for all fetched employees
SELECT addrnumber
name1
name2
name3
name4
FROM adrc
INTO TABLE it_adrc
FOR ALL ENTRIES IN it_t500p
WHERE addrnumber EQ it_t500p-addrnumber.
IF sy-subrc IS NOT INITIAL.
MESSAGE text-044 TYPE c_i.
ENDIF.
ENDIF.
Fetches the Position (designation) text from PLSTX
SELECT plans plstx
FROM t528t
INTO TABLE it_t528t.
IF sy-subrc IS NOT INITIAL.
MESSAGE text-044 TYPE c_i.
ENDIF.
DO 8 TIMES.
wa_egrp-persg = sy-abcde+w_index(1).
w_index = w_index + 1.
APPEND wa_egrp TO it_egrp.
ENDDO.
ENDFORM. " f001_data_select
&----
*& Form f002_Data_Fetch
&----
Fetches data from info types.
----
FORM f002_data_fetch .
rp_provide_from_last p0000 space pn-begda pn-endda.
IF pnp-sw-found = 1.
IF p0000-stat2 = c_1 OR p0000-stat2 = c_3.
rp_provide_from_last p0001 space pn-begda pn-endda.
IF pnp-sw-found = 1.
IF p0001-zz_sectgrp = pr_secgr
AND p0001-zz_sector = pr_sect.
IF so_level-low = p0001-zz_level0001 OR so_level-low IS INITIAL.
READ TABLE it_egrp INTO wa_egrp
WITH KEY persg = p0001-persg.
IF wa_egrp IS NOT INITIAL.
rp_provide_from_last p0002 space pn-begda pn-endda.
IF pnp-sw-found = 1.
wa_final-rufnm = p0002-rufnm.
ENDIF.
rp_provide_from_last p9023 space pn-begda pn-endda.
IF pnp-sw-found = 1.
IF p9023-zz_red_level1 = c_01.
wa_final-zz_red_level1 = c_rn.
ELSEIF p9023-zz_red_level1 = c_02.
wa_final-zz_red_level1 = c_r1.
ELSEIF p9023-zz_red_level1 = c_03.
wa_final-zz_red_level1 = c_r2.
ENDIF.
IF p9023-zz_red_level2 = c_01.
wa_final-zz_red_level2 = c_rn.
ELSEIF p9023-zz_red_level2 = c_02.
wa_final-zz_red_level2 = c_r1.
ELSEIF p9023-zz_red_level2 = c_03.
wa_final-zz_red_level2 = c_r2.
ENDIF.
IF p9023-zz_red_level3 = c_01.
wa_final-zz_red_level3 = c_rn.
ELSEIF p9023-zz_red_level3 = c_02.
wa_final-zz_red_level3 = c_r1.
ELSEIF p9023-zz_red_level3 = c_03.
wa_final-zz_red_level3 = c_r2.
ENDIF.
READ TABLE it_t500p INTO wa_t500p WITH KEY persa = p0001-werks.
IF wa_t500p IS NOT INITIAL.
READ TABLE it_adrc INTO wa_adrc
WITH KEY addrnumber = wa_t500p-addrnumber.
IF wa_adrc IS NOT INITIAL.
CONCATENATE wa_adrc-name1 wa_adrc-name2
wa_adrc-name3 wa_adrc-name4
INTO wa_final-name1 SEPARATED BY space.
ENDIF.
ENDIF.
READ TABLE it_t528t INTO wa_t528t
WITH KEY plans = p0001-plans.
IF wa_t528t IS NOT INITIAL.
wa_final-plstx = wa_t528t-plstx.
ENDIF.
CONCATENATE p9023-zzdevpln11 p9023-zzdevpln12
INTO wa_final-zzdevpln1.
CONCATENATE p9023-zzdevpln21 p9023-zzdevpln22
INTO wa_final-zzdevpln2.
CONCATENATE p9023-zzdevpln31 p9023-zzdevpln32
INTO wa_final-zzdevpln3.
PERFORM f007_hr_read USING p9023-zzconti.
PERFORM f007_hr_read USING p9023-zzsucc1.
PERFORM f007_hr_read USING p9023-zzsucc2.
PERFORM f007_hr_read USING p9023-zzsucc3.
ENDIF.
w_count = w_count + 1.
wa_final-slno = w_count.
wa_final-pernr = p0001-pernr.
APPEND wa_final TO it_final.
ENDIF.
ENDIF.
ENDIF.
ENDIF.
ENDIF.
ENDIF.
ENDFORM. " f001_Data_Fetch
&----
*& Form f003_Alv_Fcat
&----
ALV field catalog display
----
FORM f003_alv_fcat .
IF it_fcat IS INITIAL.
wa_fcat-fieldname = text-005.
wa_fcat-seltext_l = text-006.
APPEND wa_fcat TO it_fcat.
CLEAR wa_fcat.
wa_fcat-fieldname = text-007.
wa_fcat-seltext_l = text-008.
APPEND wa_fcat TO it_fcat.
CLEAR wa_fcat.
wa_fcat-fieldname = text-009.
wa_fcat-seltext_l = text-010.
APPEND wa_fcat TO it_fcat.
CLEAR wa_fcat.
wa_fcat-fieldname = text-032.
wa_fcat-seltext_l = text-033.
APPEND wa_fcat TO it_fcat.
CLEAR wa_fcat.
wa_fcat-fieldname = text-011.
wa_fcat-seltext_l = text-012 .
APPEND wa_fcat TO it_fcat.
CLEAR wa_fcat.
wa_fcat-fieldname = text-003.
wa_fcat-seltext_l = text-004.
APPEND wa_fcat TO it_fcat.
CLEAR wa_fcat.
wa_fcat-fieldname = text-013 .
wa_fcat-seltext_l = text-014.
APPEND wa_fcat TO it_fcat.
CLEAR wa_fcat.
wa_fcat-fieldname = text-015 .
wa_fcat-seltext_l = text-016.
APPEND wa_fcat TO it_fcat.
CLEAR wa_fcat.
wa_fcat-fieldname = text-017 .
wa_fcat-seltext_l = text-018.
APPEND wa_fcat TO it_fcat.
CLEAR wa_fcat.
wa_fcat-fieldname = text-019 .
wa_fcat-seltext_l = text-020 .
APPEND wa_fcat TO it_fcat.
CLEAR wa_fcat.
wa_fcat-fieldname = text-021 .
wa_fcat-seltext_l = text-022 .
APPEND wa_fcat TO it_fcat.
CLEAR wa_fcat.
wa_fcat-fieldname = text-023.
wa_fcat-seltext_l = text-024.
APPEND wa_fcat TO it_fcat.
CLEAR wa_fcat.
wa_fcat-fieldname = text-025 .
wa_fcat-seltext_l = text-026.
APPEND wa_fcat TO it_fcat.
CLEAR wa_fcat.
wa_fcat-fieldname = text-027 .
wa_fcat-seltext_l = text-028 .
APPEND wa_fcat TO it_fcat.
CLEAR wa_fcat.
wa_fcat-fieldname = text-029 .
wa_fcat-seltext_l = text-030.
APPEND wa_fcat TO it_fcat.
CLEAR wa_fcat.
ENDIF. " if it_fieldcat is initial.
ENDFORM. " f002_Alv_Fcat
&----
*& Form f004_Alv_Display
&----
Calling Function Module for the ALV display
----
FORM f004_alv_display .
IF it_final IS NOT INITIAL.
CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
EXPORTING
i_callback_program = sy-repid
it_fieldcat = it_fcat[]
it_events = it_event[]
TABLES
t_outtab = it_final.
IF sy-subrc IS NOT INITIAL.
ENDIF.
ELSE.
MESSAGE text-045 TYPE c_i.
ENDIF.
ENDFORM. " f003_Alv_Display
&----
*& Form f005_Top_of_page
&----
To get the top of page in the Output
----
FORM f005_top_of_page .
**..... Adding main header
wa_lhead-typ = c_h.
CONCATENATE text-031 pr_year
INTO w_temp SEPARATED BY space.
wa_lhead-info = w_temp.
APPEND wa_lhead TO it_lhead.
CLEAR wa_lhead.
**..... Adding sector in header
wa_lhead-typ = c_s.
wa_lhead-key = text-041.
wa_lhead-info = pr_sect.
APPEND wa_lhead TO it_lhead.
CLEAR wa_lhead.
ENDFORM. " f005_Top_of_page
&----
*& Form f006_ALV_header
&----
To display top of page of the list
This subroutine is not called directly
----
FORM f006_alv_header.
CALL FUNCTION 'REUSE_ALV_COMMENTARY_WRITE'
EXPORTING
it_list_commentary = it_lhead[].
ENDFORM. "f006_ALV_header
&----
*& Form f007_HR_read
&----
Reading the infotypes
----
FORM f007_hr_read USING w_9023 TYPE p9023-pernr.
CALL FUNCTION 'HR_READ_INFOTYPE'
EXPORTING
pernr = w_9023
infty = c_0002
TABLES
infty_tab = it_02a
EXCEPTIONS
infty_not_found = 1
OTHERS = 2.
IF sy-subrc IS NOT INITIAL.
MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
ENDIF.
SORT : it_02a DESCENDING BY endda.
READ TABLE it_02a INTO wa_02a INDEX 1.
IF wa_02a IS NOT INITIAL.
IF w_9023 = p9023-zzconti.
wa_final-rufnmc = wa_02a-rufnm.
ELSEIF w_9023 = p9023-zzsucc1.
wa_final-rufnms1 = wa_02a-rufnm.
ELSEIF w_9023 = p9023-zzsucc2.
wa_final-rufnms2 = wa_02a-rufnm.
ELSEIF w_9023 = p9023-zzsucc3.
wa_final-rufnms3 = wa_02a-rufnm.
ELSE.
ENDIF.
CLEAR wa_02a.
REFRESH it_02a.
ENDIF.
ENDFORM. "f007_HR_read
&----
*& Form f008_get_help_values
&----
To get F4 help for parameters dynamically
----
FORM f008_get_help_values TABLES p_value_tab
CHANGING p_retfield TYPE dfies-fieldname
p_dynprofield TYPE help_info-dynprofld.
CALL FUNCTION 'F4IF_INT_TABLE_VALUE_REQUEST'
EXPORTING
retfield = p_retfield
dynpprog = sy-repid
dynpnr = sy-dynnr
dynprofield = p_dynprofield
value_org = c_s
TABLES
value_tab = p_value_tab
EXCEPTIONS
parameter_error = 1
no_values_found = 2
OTHERS = 3.
IF sy-subrc IS NOT INITIAL.
MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
ENDIF.
ENDFORM. " f008_get_help_values
Hope this helps u.
**********reward points if useful.
All the best
‎2007 Apr 16 8:08 AM
Dear Pavithra,
in ur program for F4 in pr_sect(select-option) ur getting with the value in another pr_secgr(parameter)...its ok...
<b>if pr_secgr is select-option insted of parameter</b>..then how to get the values of pr_secgr ?????
Ramesh.
‎2007 Apr 16 7:41 AM
Then you have to take the value dynamically i.e., while executing the program. use the following code..
wf_dyname = sy-repid.
wf_dynumb = sy-dynnr.
REFRESH tb_dynpfields.
CLEAR tb_dynpfields.
MOVE 'field nameTO
tb_dynpfields-fieldname. "u give field name in brackets"
APPEND tb_dynpfields.
This FM is used to get the data from ship-to party which will be used
in displaying branch dealers.
<b>CALL FUNCTION 'DYNP_VALUES_READ'</b>
EXPORTING
dyname = wf_dyname
dynumb = wf_dynumb
TABLES
dynpfields = tb_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 <> 0.
MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
ENDIF.
wf_dynpro = co_field.
read table tb_dynpfields index 1.
if sy-subrc = 0.
wf_hkunnr = tb_dynpfields-fieldvalue.
CALL FUNCTION 'CONVERSION_EXIT_ALPHA_INPUT'
EXPORTING
INPUT = wf_hkunnr
IMPORTING
OUTPUT = wf_hkunnr.
endif.
<b> NOW you use this wf_hkunnr field and write a select statement here to fill the values in the given internal table.</b>
Displaying the values of branch dealers in the drop down box.
CALL FUNCTION 'F4IF_INT_TABLE_VALUE_REQUEST'
EXPORTING
retfield = co_retfieldd
dynpprog = co_dynprog
dynpnr = sy-dynnr
dynprofield = wf_dynpro
value_org = co_ss
TABLES
value_tab = tb_branch_dealer
EXCEPTIONS
parameter_error = 1
no_values_found = 2
OTHERS = 3.
‎2007 Apr 16 8:31 AM
Sekhar Pullabhatla ,
MOVE 'field nameTO
tb_dynpfields-fieldname. "u give field name in brackets"
APPEND tb_dynpfields.
how to pass a select-option in tb_dynpfields-fieldname
i can pass only one value say s_var-low or s_var-high na ...but in select-option we can/will so many valus..so how in that case..??
Regards,
Ramesh.
‎2007 Apr 16 10:10 AM
Hi Ramesh,
under tb_dynpfields-fieldname, you give the field name i.e., suppose u declared select-options as this
select-options: so_vhcex for zvsl_gotr-vhcex.
then, u give so_vhcex as fieldname.
Note: reward points if useful
Thanx and regards,
Sekhar.
‎2007 Apr 16 10:22 AM
for further clarifyinf your doubt, here is the structure..
DATA: tb_dynpfields LIKE dynpread OCCURS 0 WITH HEADER LINE.
DATA: wf_dyname LIKE d020s-prog,
wf_dynumb LIKE d020s-dnum.
wf_dyname = sy-repid.
wf_dynumb = sy-dynnr.
Note: reward point if useful.
Regards,
Sekhar.
‎2007 Apr 16 10:39 AM
select-options: so_vhcex for zvsl_gotr-vhcex.
then, u give so_vhcex as fieldname. ( ofcouse, i am passing my select-option)
Sekhar Pullabhatla ,
if i am passing it is giving dump, as
Exception condition "INVALID_DYNPROFIELD" raised.
actuvally wehave to pass ' so_vhcex -low' / 'so_vhcex -high',.....then FM will takes values of so_vhcex -low/so_vhcex -high, but what about the rest,, like inclusion,exclusion,multile ranges, multile exclusions,,,,
Regards,
Ramesh.
‎2007 Apr 16 10:54 AM
if u pass low and high, tb_dynpfields would have two records.
then, loop at table or read index 1 and 2...
assign tb_dynpfields-fieldvalue to two different variables both the times(low and high).
if high is empty, take only low for selecting entries ...
if both are given, write a select statement to select between two entries. (like > and <)..similar in other cases...
hope its useful to u in some extent..assign points if useful
Regards,
Sekhar.
‎2007 Apr 16 11:29 AM
Sekhar,
but u r saying is another thing,,,
my requirement is
-
in my program i have 2 select-options
1.Company code (s_bukrs)
2.Portfolios (s_pfolio)
these two are maintained in a Ztable
a)if we press F4 on Company code it has to show d values from Ztable-company code, and also
b)
i)if we press F4 on Portfolios by entering company code ,it has to show d values from Ztable-portfolios related to that company code,
ii)if we press F4 on Portfolios without entering company code ,it has to show d all values from Ztable-portfolios
-
AT SELECTION-SCREEN ON VALUE-REQUEST FOR s_pfolio-low.
PERFORM f4_for_portfolios.
AT SELECTION-SCREEN ON VALUE-REQUEST FOR s_pfolio-high.
PERFORM f4_for_portfolios.
.....
.....
FORM f4_for_portfolios.
l_dynpro = sy-repid.
l_dynnar = sy-dynnr.
for parameters/one single value(low/high) of select-option this is <b>OK</b>,
If i give 'S_BUKRS' it is giving dump.
it_dynpfields-fieldname = 'S_BUKRS-LOW'.
APPEND it_dynpfields.
CALL FUNCTION 'DYNP_VALUES_READ'
EXPORTING
dyname = l_dynpro
dynumb = l_dynnar " '1000'
translate_to_upper = 'X'
TABLES
dynpfields = it_dynpfields.
READ TABLE it_dynpfields INDEX 1.
REFRESH r_bukrs.
IF NOT it_dynpfields-fieldvalue IS INITIAL.
r_bukrs-low = it_dynpfields-fieldvalue.
r_bukrs-sign = 'I'.
r_bukrs-option = 'EQ'.
APPEND r_bukrs.
ENDIF.
SELECT abukrs aportfolio b~xportb
INTO TABLE it_plo
FROM ( zlt_mandate AS a
INNER JOIN twpob AS b
ON abukrs = bbukrs
AND aportfolio = brportb )
WHERE a~bukrs IN r_bukrs . "= it_dynpfields-fieldvalue.
CALL FUNCTION 'F4IF_INT_TABLE_VALUE_REQUEST'
EXPORTING
retfield = 'PORTFOLIO'
dynpprog = l_dynpro
dynpnr = l_dynnar
dynprofield = 'S_PFOLIO-LOW'
value_org = 'S'"C
display = 'F'
TABLES
value_tab = it_plo.
ENDFORM. "get_portfolios
<b>if i want get all the valuse which are delacred in SELECT-OPTION 'S_BUKRS',,,,,
,,,,,,,,,,,,What is the procedure ?</b>
ENDFORM.
Regards,
Ramesh.
‎2007 Apr 16 7:41 AM
Hi ramesh,
1. these two are maintained in a Ztable
U must be having one Z Table,
whose primary key must be
a)Company code
b) Portfoli
2.
a) Make a search help on this Z table
b) Include all the fields
c) Make Company code as IMPORT Parameter.
d) automatically it will get filtered.
3. Just make sure u declare the select options field names,
exactly same as the z table.
regards,
amit m.
‎2007 Apr 16 7:51 AM
Ramesh,
Use Value request event and construct and if loop to check which field is filled, depending on the combination, change the logic to populate the internal table and use the FM F4IF_INT_TABLE_VALUE_REQUEST to display that accordingly.
I hope you need to press enter for this dependant value selection thing.
‎2007 Apr 16 8:10 AM
hi,
DATA : BEGIN OF WA_BATCH,
CHARG LIKE MCHB-CHARG,
CLABS LIKE MCHB-CLABS,
ERSDA LIKE MCHB-ERSDA,
END OF WA_BATCH.
DATA : IT_BATCH LIKE STANDARD TABLE OF WA_BATCH WITH HEADER LINE.
SELECT CHARG SUM( CLABS ) AS CLABS ERSDA
FROM MCHB INTO CORRESPONDING FIELDS OF TABLE IT_BATCH
WHERE
WERKS = ZHT012_JOBORDNO-WERKS AND
MATNR = ZHT012_JOBORDNO-RMCODE AND
LGORT = '0003' GROUP BY CHARG ERSDA.
CALL FUNCTION 'F4IF_INT_TABLE_VALUE_REQUEST'
EXPORTING
RETFIELD = 'CHARG'
DYNPPROG = SY-REPID
DYNPNR = SY-DYNNR
DYNPROFIELD = 'ZHT012_JOBORDNO-LOT'
VALUE_ORG = 'S'
TABLES
VALUE_TAB = IT_BATCH.
the above code should be written in 'AT Selection-screen on Value request ' for the particular field for which you are writting F4 help.Here i have given the example for batch number
pls reward if it is helpful.
Regards,
Sangeetha.A
‎2007 Apr 16 8:20 AM
Sangeetha,
its ok,
suppose <b>one select-option</b> s_werks there in ur report
and say suppose in ur select query ,in where condition u want values related to s_werks.......
u entered some values in s_werks
and u pressed F4 in CHARG then how u get d CHARG values related to s_werks ????????/
SELECT CHARG SUM( CLABS ) AS CLABS ERSDA
FROM MCHB INTO CORRESPONDING FIELDS OF TABLE IT_BATCH
WHERE
<b>WERKS = s_werks</b> <- uhave to write na
MATNR = ZHT012_JOBORDNO-RMCODE AND
LGORT = '0003' GROUP BY CHARG ERSDA.
Regards,
Ramesh.