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

Search help (fields from different tables)

Former Member
0 Likes
852

Hi experts!

Please help.

I need to create a search help for field vekp-exdiv and also to show vepo-matnr & makt-maktx.

Something like that:

vekp-exdiv

vepo-matnr

makt-maktx

where vekp-venum = vepo-venum

and vepo-matnr = makt-matnr.

Is it possible in elementary serch help or in collective?

How can I do that?

Thanks forehead.

1 ACCEPTED SOLUTION
Read only

ChandrashekharMahajan
Active Contributor
0 Likes
814

Hi,

use search help exit...

refer below SAMPLE code for the same

-


BEGIN OF INCLUDE LZSHLPTOP -


FUNCTION-POOL zshlp. "MESSAGE-ID ..

TYPE-POOLS shlp.

TYPES:

BEGIN OF t_knvp,

kunnr TYPE kna1-kunnr,

name1 TYPE kna1-name1,

ort01 TYPE ort01_gp,

stras TYPE stras_gp,

kunn2 TYPE knvp-kunn2,

name1_2 TYPE kna1-name1,

END OF t_knvp.

DATA: i_knvp TYPE TABLE OF t_knvp,

wa_knvp TYPE t_knvp,

wa_selopt TYPE ddshselopt,

wa_fielddescr TYPE dfies.

DATA:

rc TYPE i,

v_tabix LIKE sy-tabix.

RANGES: r_ktokd FOR kna1-ktokd,

r_mcod1 FOR kna1-name1,

r_sortl FOR kna1-sortl,

r_kunnr FOR kna1-kunnr,

r_ort01 FOR kna1-ort01.

-


END OF INCLUDE LZSHLPTOP -


-


BEGIN OF FUNCTION MODULE Z_CUSTOM_SEARCH -


FUNCTION z_custom_search.

*"----


""Local interface:

*" TABLES

*" SHLP_TAB TYPE SHLP_DESCR_TAB_T

*" RECORD_TAB STRUCTURE SEAHLPRES

*" CHANGING

*" VALUE(SHLP) TYPE SHLP_DESCR_T

*" VALUE(CALLCONTROL) LIKE DDSHF4CTRL STRUCTURE DDSHF4CTRL

*"----


  • EXIT immediately, if you do not want to handle this step

CASE callcontrol-step.

*"----


  • STEP SELECT (Select values)

*"----


  • This step may be used to overtake the data selection completely.

  • To skip the standard seletion, you should return 'DISP' as following

  • step in CALLCONTROL-STEP.

  • Normally RECORD_TAB should be filled after this step.

WHEN 'SELECT'.

  • Change column header texts appearing on the search help hit list

LOOP AT shlp-fielddescr INTO wa_fielddescr.

v_tabix = sy-tabix.

CASE wa_fielddescr-fieldname.

WHEN 'KUNNR'.

wa_fielddescr-fieldtext = 'ShipToCustomer#'.

wa_fielddescr-reptext = 'ShipToCustomer#'.

wa_fielddescr-scrtext_s = 'ShipTo #'.

wa_fielddescr-scrtext_m = 'ShipToCustomer#'.

wa_fielddescr-scrtext_l = 'ShipToCustomer#'.

MODIFY shlp-fielddescr FROM wa_fielddescr

INDEX v_tabix TRANSPORTING fieldtext reptext scrtext_s

scrtext_m scrtext_l.

WHEN 'KUNN2'.

wa_fielddescr-reptext = 'BillToCustomer#'.

wa_fielddescr-fieldtext = 'BillToCustomer#'.

wa_fielddescr-scrtext_s = 'BillTo #'.

wa_fielddescr-scrtext_m = 'BillToCustomer #'.

wa_fielddescr-scrtext_l = 'BillToCustomer #'.

MODIFY shlp-fielddescr FROM wa_fielddescr

INDEX v_tabix TRANSPORTING fieldtext reptext scrtext_s

scrtext_m scrtext_l.

WHEN 'NAME1'.

wa_fielddescr-fieldtext = 'ShipToCustomer Name'.

wa_fielddescr-reptext = 'ShipToCustomer Name'.

wa_fielddescr-scrtext_s = 'ShipTo Name'.

wa_fielddescr-scrtext_m = 'ShipToCustomer Name'.

wa_fielddescr-scrtext_l = 'ShipToCustomer Name'.

MODIFY shlp-fielddescr FROM wa_fielddescr

INDEX v_tabix TRANSPORTING fieldtext reptext scrtext_s

scrtext_m scrtext_l.

ENDCASE.

ENDLOOP.

  • Select the Bill to party customer based on the select options

FREE: r_ktokd, r_kunnr, r_sortl, r_mcod1, r_ort01, i_knvp.

LOOP AT shlp-selopt INTO wa_selopt.

  • Build a Range for the 5 selection options of the search help

CASE wa_selopt-shlpfield.

WHEN 'KTOKD'.

r_ktokd-sign = wa_selopt-sign.

r_ktokd-option = wa_selopt-option.

r_ktokd-low = wa_selopt-low.

r_ktokd-high = wa_selopt-high.

APPEND r_ktokd.

CLEAR r_ktokd.

WHEN 'KUNNR'.

r_kunnr-sign = wa_selopt-sign.

r_kunnr-option = wa_selopt-option.

r_kunnr-low = wa_selopt-low.

r_kunnr-high = wa_selopt-high.

APPEND r_kunnr.

CLEAR r_kunnr.

WHEN 'SORTL'.

r_sortl-sign = wa_selopt-sign.

r_sortl-option = wa_selopt-option.

r_sortl-low = wa_selopt-low.

r_sortl-high = wa_selopt-high.

APPEND r_sortl.

CLEAR r_sortl.

WHEN 'MCOD1'.

r_mcod1-sign = wa_selopt-sign.

r_mcod1-option = wa_selopt-option.

r_mcod1-low = wa_selopt-low.

r_mcod1-high = wa_selopt-high.

APPEND r_mcod1.

CLEAR r_mcod1.

WHEN 'ORT01'.

r_ort01-sign = wa_selopt-sign.

r_ort01-option = wa_selopt-option.

r_ort01-low = wa_selopt-low.

r_ort01-high = wa_selopt-high.

APPEND r_ort01.

CLEAR r_ort01.

ENDCASE.

ENDLOOP.

  • Retrieve data from KNVP table for the above selected ranges

  • Doing query to retrieve data for the search help

SELECT knvp~kunnr

kna1~name1

kna1~ort01

kna1~stras

knvp~kunn2

INTO TABLE i_knvp

FROM knvp

INNER JOIN kna1

ON knvpkunnr = kna1kunnr

WHERE

knvp~parvw = 'RE' AND " Bill to Party

knvp~kunnr IN r_kunnr AND

kna1~ktokd IN r_ktokd AND

kna1~sortl IN r_sortl AND

kna1~mcod1 IN r_mcod1 AND

kna1~ort01 IN r_ort01.

CHECK sy-subrc = 0.

DELETE ADJACENT DUPLICATES FROM i_knvp.

  • Select the short text for kunn2 from kna1.

  • Move all the selected records to Record_Tab

LOOP AT i_knvp INTO wa_knvp.

v_tabix = sy-tabix.

SELECT SINGLE name1 FROM kna1

INTO wa_knvp-name1_2

WHERE kunnr = wa_knvp-kunnr.

MOVE wa_knvp TO record_tab-string.

APPEND record_tab.

CLEAR record_tab.

MODIFY i_knvp FROM wa_knvp INDEX v_tabix.

CLEAR wa_knvp.

ENDLOOP.

rc = 0.

IF rc = 0.

callcontrol-step = 'DISP'.

ELSE.

callcontrol-step = 'EXIT'.

ENDIF.

EXIT. "Don't process STEP DISP additionally in this call.

WHEN 'PRESEL1'.

WHEN 'DISP'.

WHEN OTHERS.

ENDCASE.

ENDFUNCTION.

Regards,

Chandra

(Reward Points if helpful)

Message was edited by:

Chandrashekhar Mahajan

Hi,

use search help exit...

refer below SAMPLE code for the same

-


BEGIN OF INCLUDE LZSHLPTOP -


FUNCTION-POOL zshlp. "MESSAGE-ID ..

TYPE-POOLS shlp.

TYPES:

BEGIN OF t_knvp,

kunnr TYPE kna1-kunnr,

name1 TYPE kna1-name1,

ort01 TYPE ort01_gp,

stras TYPE stras_gp,

kunn2 TYPE knvp-kunn2,

name1_2 TYPE kna1-name1,

END OF t_knvp.

DATA: i_knvp TYPE TABLE OF t_knvp,

wa_knvp TYPE t_knvp,

wa_selopt TYPE ddshselopt,

wa_fielddescr TYPE dfies.

DATA:

rc TYPE i,

v_tabix LIKE sy-tabix.

RANGES: r_ktokd FOR kna1-ktokd,

r_mcod1 FOR kna1-name1,

r_sortl FOR kna1-sortl,

r_kunnr FOR kna1-kunnr,

r_ort01 FOR kna1-ort01.

-


END OF INCLUDE LZSHLPTOP -


-


BEGIN OF FUNCTION MODULE Z_CUSTOM_SEARCH -


FUNCTION z_custom_search.

*"----


""Local interface:

*" TABLES

*" SHLP_TAB TYPE SHLP_DESCR_TAB_T

*" RECORD_TAB STRUCTURE SEAHLPRES

*" CHANGING

*" VALUE(SHLP) TYPE SHLP_DESCR_T

*" VALUE(CALLCONTROL) LIKE DDSHF4CTRL STRUCTURE DDSHF4CTRL

*"----


  • EXIT immediately, if you do not want to handle this step

CASE callcontrol-step.

*"----


  • STEP SELECT (Select values)

*"----


  • This step may be used to overtake the data selection completely.

  • To skip the standard seletion, you should return 'DISP' as following

  • step in CALLCONTROL-STEP.

  • Normally RECORD_TAB should be filled after this step.

WHEN 'SELECT'.

  • Change column header texts appearing on the search help hit list

LOOP AT shlp-fielddescr INTO wa_fielddescr.

v_tabix = sy-tabix.

CASE wa_fielddescr-fieldname.

WHEN 'KUNNR'.

wa_fielddescr-fieldtext = 'ShipToCustomer#'.

wa_fielddescr-reptext = 'ShipToCustomer#'.

wa_fielddescr-scrtext_s = 'ShipTo #'.

wa_fielddescr-scrtext_m = 'ShipToCustomer#'.

wa_fielddescr-scrtext_l = 'ShipToCustomer#'.

MODIFY shlp-fielddescr FROM wa_fielddescr

INDEX v_tabix TRANSPORTING fieldtext reptext scrtext_s

scrtext_m scrtext_l.

WHEN 'KUNN2'.

wa_fielddescr-reptext = 'BillToCustomer#'.

wa_fielddescr-fieldtext = 'BillToCustomer#'.

wa_fielddescr-scrtext_s = 'BillTo #'.

wa_fielddescr-scrtext_m = 'BillToCustomer #'.

wa_fielddescr-scrtext_l = 'BillToCustomer #'.

MODIFY shlp-fielddescr FROM wa_fielddescr

INDEX v_tabix TRANSPORTING fieldtext reptext scrtext_s

scrtext_m scrtext_l.

WHEN 'NAME1'.

wa_fielddescr-fieldtext = 'ShipToCustomer Name'.

wa_fielddescr-reptext = 'ShipToCustomer Name'.

wa_fielddescr-scrtext_s = 'ShipTo Name'.

wa_fielddescr-scrtext_m = 'ShipToCustomer Name'.

wa_fielddescr-scrtext_l = 'ShipToCustomer Name'.

MODIFY shlp-fielddescr FROM wa_fielddescr

INDEX v_tabix TRANSPORTING fieldtext reptext scrtext_s

scrtext_m scrtext_l.

ENDCASE.

ENDLOOP.

  • Select the Bill to party customer based on the select options

FREE: r_ktokd, r_kunnr, r_sortl, r_mcod1, r_ort01, i_knvp.

LOOP AT shlp-selopt INTO wa_selopt.

  • Build a Range for the 5 selection options of the search help

CASE wa_selopt-shlpfield.

WHEN 'KTOKD'.

r_ktokd-sign = wa_selopt-sign.

r_ktokd-option = wa_selopt-option.

r_ktokd-low = wa_selopt-low.

r_ktokd-high = wa_selopt-high.

APPEND r_ktokd.

CLEAR r_ktokd.

WHEN 'KUNNR'.

r_kunnr-sign = wa_selopt-sign.

r_kunnr-option = wa_selopt-option.

r_kunnr-low = wa_selopt-low.

r_kunnr-high = wa_selopt-high.

APPEND r_kunnr.

CLEAR r_kunnr.

WHEN 'SORTL'.

r_sortl-sign = wa_selopt-sign.

r_sortl-option = wa_selopt-option.

r_sortl-low = wa_selopt-low.

r_sortl-high = wa_selopt-high.

APPEND r_sortl.

CLEAR r_sortl.

WHEN 'MCOD1'.

r_mcod1-sign = wa_selopt-sign.

r_mcod1-option = wa_selopt-option.

r_mcod1-low = wa_selopt-low.

r_mcod1-high = wa_selopt-high.

APPEND r_mcod1.

CLEAR r_mcod1.

WHEN 'ORT01'.

r_ort01-sign = wa_selopt-sign.

r_ort01-option = wa_selopt-option.

r_ort01-low = wa_selopt-low.

r_ort01-high = wa_selopt-high.

APPEND r_ort01.

CLEAR r_ort01.

ENDCASE.

ENDLOOP.

  • Retrieve data from KNVP table for the above selected ranges

  • Doing query to retrieve data for the search help

SELECT knvp~kunnr

kna1~name1

kna1~ort01

kna1~stras

knvp~kunn2

INTO TABLE i_knvp

FROM knvp

INNER JOIN kna1

ON knvpkunnr = kna1kunnr

WHERE

knvp~parvw = 'RE' AND " Bill to Party

knvp~kunnr IN r_kunnr AND

kna1~ktokd IN r_ktokd AND

kna1~sortl IN r_sortl AND

kna1~mcod1 IN r_mcod1 AND

kna1~ort01 IN r_ort01.

CHECK sy-subrc = 0.

DELETE ADJACENT DUPLICATES FROM i_knvp.

  • Select the short text for kunn2 from kna1.

  • Move all the selected records to Record_Tab

LOOP AT i_knvp INTO wa_knvp.

v_tabix = sy-tabix.

SELECT SINGLE name1 FROM kna1

INTO wa_knvp-name1_2

WHERE kunnr = wa_knvp-kunnr.

MOVE wa_knvp TO record_tab-string.

APPEND record_tab.

CLEAR record_tab.

MODIFY i_knvp FROM wa_knvp INDEX v_tabix.

CLEAR wa_knvp.

ENDLOOP.

rc = 0.

IF rc = 0.

callcontrol-step = 'DISP'.

ELSE.

callcontrol-step = 'EXIT'.

ENDIF.

EXIT. "Don't process STEP DISP additionally in this call.

WHEN 'PRESEL1'.

WHEN 'DISP'.

WHEN OTHERS.

ENDCASE.

ENDFUNCTION.

Regards,

Chandra

(Reward Points if helpful)

Message was edited by:

Chandrashekhar Mahajan

5 REPLIES 5
Read only

Former Member
0 Likes
814

Hi,

Create a Z Table with the required fields for search help, and populate that table with the data from VEPO,VEKP,and MAKT and use that table for creating an elementary search Help and use that search help.

reward if useful

regards,

Anji

Read only

ChandrashekharMahajan
Active Contributor
0 Likes
815

Hi,

use search help exit...

refer below SAMPLE code for the same

-


BEGIN OF INCLUDE LZSHLPTOP -


FUNCTION-POOL zshlp. "MESSAGE-ID ..

TYPE-POOLS shlp.

TYPES:

BEGIN OF t_knvp,

kunnr TYPE kna1-kunnr,

name1 TYPE kna1-name1,

ort01 TYPE ort01_gp,

stras TYPE stras_gp,

kunn2 TYPE knvp-kunn2,

name1_2 TYPE kna1-name1,

END OF t_knvp.

DATA: i_knvp TYPE TABLE OF t_knvp,

wa_knvp TYPE t_knvp,

wa_selopt TYPE ddshselopt,

wa_fielddescr TYPE dfies.

DATA:

rc TYPE i,

v_tabix LIKE sy-tabix.

RANGES: r_ktokd FOR kna1-ktokd,

r_mcod1 FOR kna1-name1,

r_sortl FOR kna1-sortl,

r_kunnr FOR kna1-kunnr,

r_ort01 FOR kna1-ort01.

-


END OF INCLUDE LZSHLPTOP -


-


BEGIN OF FUNCTION MODULE Z_CUSTOM_SEARCH -


FUNCTION z_custom_search.

*"----


""Local interface:

*" TABLES

*" SHLP_TAB TYPE SHLP_DESCR_TAB_T

*" RECORD_TAB STRUCTURE SEAHLPRES

*" CHANGING

*" VALUE(SHLP) TYPE SHLP_DESCR_T

*" VALUE(CALLCONTROL) LIKE DDSHF4CTRL STRUCTURE DDSHF4CTRL

*"----


  • EXIT immediately, if you do not want to handle this step

CASE callcontrol-step.

*"----


  • STEP SELECT (Select values)

*"----


  • This step may be used to overtake the data selection completely.

  • To skip the standard seletion, you should return 'DISP' as following

  • step in CALLCONTROL-STEP.

  • Normally RECORD_TAB should be filled after this step.

WHEN 'SELECT'.

  • Change column header texts appearing on the search help hit list

LOOP AT shlp-fielddescr INTO wa_fielddescr.

v_tabix = sy-tabix.

CASE wa_fielddescr-fieldname.

WHEN 'KUNNR'.

wa_fielddescr-fieldtext = 'ShipToCustomer#'.

wa_fielddescr-reptext = 'ShipToCustomer#'.

wa_fielddescr-scrtext_s = 'ShipTo #'.

wa_fielddescr-scrtext_m = 'ShipToCustomer#'.

wa_fielddescr-scrtext_l = 'ShipToCustomer#'.

MODIFY shlp-fielddescr FROM wa_fielddescr

INDEX v_tabix TRANSPORTING fieldtext reptext scrtext_s

scrtext_m scrtext_l.

WHEN 'KUNN2'.

wa_fielddescr-reptext = 'BillToCustomer#'.

wa_fielddescr-fieldtext = 'BillToCustomer#'.

wa_fielddescr-scrtext_s = 'BillTo #'.

wa_fielddescr-scrtext_m = 'BillToCustomer #'.

wa_fielddescr-scrtext_l = 'BillToCustomer #'.

MODIFY shlp-fielddescr FROM wa_fielddescr

INDEX v_tabix TRANSPORTING fieldtext reptext scrtext_s

scrtext_m scrtext_l.

WHEN 'NAME1'.

wa_fielddescr-fieldtext = 'ShipToCustomer Name'.

wa_fielddescr-reptext = 'ShipToCustomer Name'.

wa_fielddescr-scrtext_s = 'ShipTo Name'.

wa_fielddescr-scrtext_m = 'ShipToCustomer Name'.

wa_fielddescr-scrtext_l = 'ShipToCustomer Name'.

MODIFY shlp-fielddescr FROM wa_fielddescr

INDEX v_tabix TRANSPORTING fieldtext reptext scrtext_s

scrtext_m scrtext_l.

ENDCASE.

ENDLOOP.

  • Select the Bill to party customer based on the select options

FREE: r_ktokd, r_kunnr, r_sortl, r_mcod1, r_ort01, i_knvp.

LOOP AT shlp-selopt INTO wa_selopt.

  • Build a Range for the 5 selection options of the search help

CASE wa_selopt-shlpfield.

WHEN 'KTOKD'.

r_ktokd-sign = wa_selopt-sign.

r_ktokd-option = wa_selopt-option.

r_ktokd-low = wa_selopt-low.

r_ktokd-high = wa_selopt-high.

APPEND r_ktokd.

CLEAR r_ktokd.

WHEN 'KUNNR'.

r_kunnr-sign = wa_selopt-sign.

r_kunnr-option = wa_selopt-option.

r_kunnr-low = wa_selopt-low.

r_kunnr-high = wa_selopt-high.

APPEND r_kunnr.

CLEAR r_kunnr.

WHEN 'SORTL'.

r_sortl-sign = wa_selopt-sign.

r_sortl-option = wa_selopt-option.

r_sortl-low = wa_selopt-low.

r_sortl-high = wa_selopt-high.

APPEND r_sortl.

CLEAR r_sortl.

WHEN 'MCOD1'.

r_mcod1-sign = wa_selopt-sign.

r_mcod1-option = wa_selopt-option.

r_mcod1-low = wa_selopt-low.

r_mcod1-high = wa_selopt-high.

APPEND r_mcod1.

CLEAR r_mcod1.

WHEN 'ORT01'.

r_ort01-sign = wa_selopt-sign.

r_ort01-option = wa_selopt-option.

r_ort01-low = wa_selopt-low.

r_ort01-high = wa_selopt-high.

APPEND r_ort01.

CLEAR r_ort01.

ENDCASE.

ENDLOOP.

  • Retrieve data from KNVP table for the above selected ranges

  • Doing query to retrieve data for the search help

SELECT knvp~kunnr

kna1~name1

kna1~ort01

kna1~stras

knvp~kunn2

INTO TABLE i_knvp

FROM knvp

INNER JOIN kna1

ON knvpkunnr = kna1kunnr

WHERE

knvp~parvw = 'RE' AND " Bill to Party

knvp~kunnr IN r_kunnr AND

kna1~ktokd IN r_ktokd AND

kna1~sortl IN r_sortl AND

kna1~mcod1 IN r_mcod1 AND

kna1~ort01 IN r_ort01.

CHECK sy-subrc = 0.

DELETE ADJACENT DUPLICATES FROM i_knvp.

  • Select the short text for kunn2 from kna1.

  • Move all the selected records to Record_Tab

LOOP AT i_knvp INTO wa_knvp.

v_tabix = sy-tabix.

SELECT SINGLE name1 FROM kna1

INTO wa_knvp-name1_2

WHERE kunnr = wa_knvp-kunnr.

MOVE wa_knvp TO record_tab-string.

APPEND record_tab.

CLEAR record_tab.

MODIFY i_knvp FROM wa_knvp INDEX v_tabix.

CLEAR wa_knvp.

ENDLOOP.

rc = 0.

IF rc = 0.

callcontrol-step = 'DISP'.

ELSE.

callcontrol-step = 'EXIT'.

ENDIF.

EXIT. "Don't process STEP DISP additionally in this call.

WHEN 'PRESEL1'.

WHEN 'DISP'.

WHEN OTHERS.

ENDCASE.

ENDFUNCTION.

Regards,

Chandra

(Reward Points if helpful)

Message was edited by:

Chandrashekhar Mahajan

Read only

Former Member
0 Likes
814

Thanks for your answers, but is there any way to create search help using only trans. SE11?

Read only

0 Likes
814

Hi,

From SE 11 you can create search help, but how do you get all those fields from VEKP,VEPO and MAKT, you can't?

For elementary You have to use a single table.

for cumulative you can use mulitple but all the fields shoild be there in each and every table.

regards,

Anji

Read only

0 Likes
814

Hi,

if you can get all required fields using select query then better (and Simple) way is to write search help exit and attch the same to your elementary search help.

refer the sample code given in preivious mail.

Regards,

Chandra