Application Development and Automation Discussions
Join the discussions or start your own on all things application development, including tools and APIs, programming models, and keeping your skills sharp.
cancel
Showing results for 
Search instead for 
Did you mean: 
Read only

Selection-Screen

Former Member
0 Likes
1,695

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.

15 REPLIES 15
Read only

Azeemquadri
Contributor
0 Likes
1,468

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.

Read only

former_member673464
Active Contributor
0 Likes
1,468

hi..

Use intial keyword for your problem.

regards,

veeresh

Read only

Former Member
0 Likes
1,468

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

Read only

0 Likes
1,468

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.

Read only

Former Member
0 Likes
1,468

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.

Read only

0 Likes
1,468

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.

Read only

0 Likes
1,468

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.

Read only

0 Likes
1,468

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.

Read only

0 Likes
1,468

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.

Read only

0 Likes
1,468

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.

Read only

0 Likes
1,468

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.

Read only

Former Member
0 Likes
1,468

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.

Read only

Former Member
0 Likes
1,468

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.

Read only

Former Member
0 Likes
1,468

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

Read only

0 Likes
1,468

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.