Quantcast
Channel: SCN : All Content - User Interface Development in ABAP
Viewing all articles
Browse latest Browse all 540

Dynamic ALV with field catalog and inner join

$
0
0

Greetings fellow abap programmers.

 

Lets start of with that i am a new programmer learning my way trough error jungle.

 

I have a assignment to link three tables and display it in a ALV grid.

 

My question is as followed: How can i create a dynamic field catalog by using the internal table that has been defined and then pass this structure / catalog to reuse_alv_grid_merge.

 

What i like the program to do:

 

1. create a field catalog / structure based on the defined internal table structure.

2. pass this structure and the internal table data to 'REUSE_ALV_GRID_MERGE' or display.

 

And yes i have done research before posting.

 

like there are three ways to use ALV: Manuel, automatic, semi, automatic.

 

1. First off all i refuse to code the Manuel way,

2. the automatic works but it forces me to create a database table that is matching internal table.

3. semi automatic does not quite what i what to do.

 

My code and comments are in bold for extra information:

 

REPORT z_training_4_material_report.

 

< Table structure is defined, but removed to compact code>

 

data :            pt_fieldcat         type                   lvc_t_fcat,           wa_mara           type                   ts_mara,           it_mara2            type standard table of ts_mara,           it_mara              type standard table of ts_mara with header line initial size 0.
selection-screen begin of block range_select.
select-options : so_matnr for lv_mat_nr.
select-options : so_plnnr for lv_plant.
selection-screen end of block range_select.
select mara~matnr makt~maktx mara~brgew mara~ntgew marc~werks t024d~dsnam mara~meins marc~strgr marc~disls
into corresponding fields of table it_mara from mara
inner join marc on marc~matnr = mara~matnr
inner join makt on makt~matnr = mara~matnr
inner join t024d on marc~werks = t024d~werks
where mara~matnr between so_matnr-low and so_matnr-high.

<found this form code on forum and tried to use it to create the field catalog but it has a type issue. when looking this up i tried changing the type but that did not do it. >

 

perform create_fieldcatalog
using it_mara2
changing pt_fieldcat.
call function 'REUSE_ALV_GRID_MERGE'   exporting     it_fieldcat = pt_fieldcat   tables     t_outtab    = it_mara.
.
*&---------------------------------------------------------------------*
*& Form  create_fieldcatalog
*&---------------------------------------------------------------------*
* Create a field catalogue from any internal table
*----------------------------------------------------------------------*
*      -->PT_TABLE     Internal table
*      -->PT_FIELDCAT  Field Catalogue
*----------------------------------------------------------------------*
form  create_fieldcatalog        using     pt_table     type standard table        changing  pt_fieldcat  type lvc_t_fcat.   data:     lr_tabdescr type ref to cl_abap_structdescr   , lr_data     type ref to data   , lt_dfies    type ddfields   , ls_dfies    type dfies   , ls_fieldcat type lvc_s_fcat   .   clear pt_fieldcat.   create data lr_data like line of pt_table.   lr_tabdescr ?= cl_abap_structdescr=>describe_by_data_ref( lr_data ).   lt_dfies = cl_salv_data_descr=>read_structdescr( lr_tabdescr ).   loop at lt_dfies   into    ls_dfies.     clear ls_fieldcat.     move-corresponding ls_dfies to ls_fieldcat.     append ls_fieldcat to pt_fieldcat.   endloop.
endform.                    "create_fieldcatalog

Viewing all articles
Browse latest Browse all 540

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>