Create Context Dsa
Create Context Dsa
====================================================================
METHOD create_fixed_header
====================================================================
Systementwickler Daniel Kawaletz
� MHP Mieschke Hofmann und Partner
Datum (angelegt) 10.10.2015
====================================================================
====================================================================
Lokale Daten
====================================================================
DATA
lo_table_column TYPE REF TO cl_wd_c_table_column,
lo_textview TYPE REF TO cl_wd_text_view,
lo_inputfield TYPE REF TO cl_wd_input_field,
lv_bind_text TYPE string,
lv_bind_cell_design TYPE string,
lv_bind_txt_color TYPE string,
lv_bind_bkg_color TYPE string,
lv_bind_tooltip TYPE string,
lv_bind_alignment TYPE string,
lv_bind_source TYPE string,
lv_id_variant1 TYPE string,
lv_id_variant2 TYPE string,
lv_id_variant3 TYPE string,
lv_empl_count TYPE i VALUE 0,
lv_empl_count_string TYPE string,
lo_image TYPE REF TO cl_wd_image,
lo_node TYPE REF TO if_wd_context_node,
lv_temp_count TYPE i,
lv_separator_line_counter TYPE i,
lv_temp_count_string TYPE string,
lt_req TYPE zhqp_t_req_gen,
ls_req TYPE zhqp_s_req_gen,
lt_employee TYPE zhqp_t_employee_short,
ls_employee TYPE zhqp_s_employee_short,
lv_employee_img_id TYPE string,
lt_partgroup TYPE zhqp_t_empl_partgroup,
ls_partgroup TYPE zhqp_s_empl_partgroup,
lt_employee_column TYPE wd_this-elements_employee_column,
lv_universal_string TYPE string,
ls_qmatrix_settings TYPE zhqp_s_qmatrix,
ls_active_elements TYPE wd_this-element_active_elements,
lv_counter_numc TYPE numc2,
lv_node_name TYPE string,
lv_first_node TYPE string,
lv_third_node TYPE string,
lv_second_node TYPE string,
lo_c_table_fixed_cell TYPE REF TO cl_wd_c_table_fixed_cell,
lv_column_id TYPE string,
lo_standard_cell TYPE REF TO cl_wd_c_table_standard_cell,
lo_button TYPE REF TO cl_wd_button,
lv_path TYPE string,
lv_partgroup_string TYPE string.
====================================================================
Anforderungen holen
====================================================================
lo_node = wd_context-get_child_node( name = wd_this-wdctx_req ).
IF lo_node IS INITIAL.
EXIT.
ENDIF.
lo_node-get_static_attributes_table( IMPORTING table = lt_req ).
ENDLOOP.
If lv_counter_numc 2 and lv_temp_count 2.
DO 3 TIMES.
lv_counter_numc = sy-index.
IF sy-index = 1.
lv_second_node = 'FIXED_HEADER.MATRIX_HEADER_02'.
lv_first_node = 'FIXED_HEADER.MATRIX_HEADER_01'.
lv_third_node = 'FIXED_HEADER.MATRIX_HEADER_02'.
ELSE.
CLEAR lv_first_node.
ENDIF.
ADD 1 TO lv_counter_numc.
lv_temp_count = lv_temp_count + 1.
lv_temp_count_string = lv_temp_count.
CONDENSE lv_temp_count_string.
CONCATENATE 'VIS_MATRIX_C' lv_temp_count_string INTO lv_column_id.
Spaltenreferenz holen
lo_table_column = io_table-get_column( id = lv_column_id ).
Button-Editor ertellen
lo_button = cl_wd_button=new_button(
id = lv_id_variant1
bind_text = lv_bind_text
bind_tooltip = lv_bind_tooltip
context_menu_behaviour = cl_wd_button=e_context_menu_behaviour-inherit
design = cl_wd_button=e_design-standard
enabled = 'X'
hotkey = cl_wd_button=e_hotkey-none
image_first = 'X'
on_action = 'EVT_COLLAPSE_REQ_GRP'
text_direction = cl_wd_button=e_text_direction-inherit
visible = cl_wd_button=e_visible-visible ).
Textview-Editor erstellen
lo_textview = cl_wd_text_view=new_text_view(
id = lv_id_variant2
bind_text = lv_bind_text
bind_semantic_color = lv_bind_txt_color
bind_h_align = lv_bind_alignment
bind_design = lv_bind_cell_design ).
bind_design = lv_bind_cell_design
bind_style_class_name = 'rotateStyle2' ).
ADD 1 TO lv_temp_count.
lv_temp_count_string = lv_temp_count.
CONDENSE lv_temp_count_string.
CASE sy-index.
WHEN 1..
CONCATENATE lv_node_name '.DESCRIPTION' INTO lv_bind_text.
WHEN 2.
CONCATENATE lv_node_name '.HOURS' INTO lv_bind_text.
WHEN 3.
CONCATENATE lv_node_name '.COSTS' INTO lv_bind_text.
WHEN 4.
CONCATENATE lv_node_name '.TYPE_OF_QUALI' INTO lv_bind_text.
WHEN 5.
CONCATENATE lv_node_name '.DESIRED' INTO lv_bind_text.
WHEN 6.
CONCATENATE lv_node_name '.ACTUAL' INTO lv_bind_text.
WHEN 7.
CONCATENATE lv_node_name '.PLANNED' INTO lv_bind_text.
WHEN OTHERS.
ENDCASE.
Standardzelle erstellen
lo_standard_cell = cl_wd_c_table_standard_cell=new_c_table_standard_cell( ).
Textview-Editor erstellen
lo_textview = cl_wd_text_view=new_text_view(
id = lv_id_variant1
bind_text = lv_bind_text
bind_semantic_color = lv_bind_txt_color
bind_design = lv_bind_cell_design
bind_h_align = lv_bind_alignment ).
lv_separator_line_counter = 0.
LOOP AT lt_partgroup INTO ls_partgroup.
ADD 1 TO lv_temp_count.
lv_temp_count_string = lv_temp_count.
CONDENSE lv_temp_count_string.
CONCATENATE 'VIS_MATRIX_C' lv_temp_count_string INTO lv_column_id.
IF lv_first_node IS INITIAL.
CONCATENATE lv_node_name '.CA_C' lv_temp_count_string INTO
lv_bind_alignment.
CONCATENATE lv_node_name '.CB_C' lv_temp_count_string INTO
lv_bind_bkg_color.
CONCATENATE lv_node_name '.CD_C' lv_temp_count_string INTO
lv_bind_cell_design.
CONCATENATE lv_node_name '.CT_C' lv_temp_count_string INTO
lv_bind_txt_color.
CONCATENATE lv_node_name '.VA_C' lv_temp_count_string INTO lv_path.
CONCATENATE lv_node_name '.BTN_C' lv_temp_count_string INTO lv_bind_text.
CONCATENATE lv_node_name '.TOT_C' lv_temp_count_string INTO
lv_bind_tooltip.
ELSE.
CONCATENATE lv_second_node '.CA_C' lv_temp_count_string INTO
lv_bind_alignment.
CONCATENATE lv_first_node '.CB_C' lv_temp_count_string INTO
lv_bind_bkg_color.
CONCATENATE lv_first_node '.CD_C' lv_temp_count_string INTO
lv_bind_cell_design.
CONCATENATE lv_first_node '.CT_C' lv_temp_count_string INTO
lv_bind_txt_color.
CONCATENATE lv_first_node '.VA_C' lv_temp_count_string INTO lv_path.
CONCATENATE lv_first_node '.BTN_C' lv_temp_count_string INTO lv_bind_text.
CONCATENATE lv_first_node '.TOT_C' lv_temp_count_string INTO
lv_bind_tooltip.
ENDIF.
Bild-URL
CONCATENATE 'IMAGE_NAME_EMPL.CI_C' lv_temp_count_string INTO lv_bind_source.
CONDENSE lv_bind_source.
lo_button = cl_wd_button=new_button(
bind_text = lv_bind_text
bind_tooltip = lv_bind_tooltip
context_menu_behaviour = cl_wd_button=e_context_menu_behaviour-
inherit
design = cl_wd_button=e_design-standard
enabled = 'X'
id = lv_id_variant1
hotkey = cl_wd_button=e_hotkey-none
image_first = 'X'
on_action = 'EVT_COLLAPSE_PARTGRP'
text_direction = cl_wd_button=e_text_direction-inherit
visible = cl_wd_button=e_visible-visible ).
lo_standard_cell =
cl_wd_c_table_standard_cell=new_c_table_standard_cell( variant_key = 'PARTGRP' ).
Textview-Editor erstellen
lo_textview = cl_wd_text_view=new_text_view(
id = lv_id_variant3
bind_text = lv_bind_text
bind_semantic_color = lv_bind_txt_color
bind_h_align = lv_bind_alignment
bind_design = lv_bind_cell_design ).
lv_temp_count_string = lv_temp_count.
CONDENSE lv_temp_count_string.
CONCATENATE 'VIS_MATRIX_C' lv_temp_count_string INTO lv_column_id.
IF lv_first_node IS INITIAL.
CONCATENATE lv_node_name '.CA_C' lv_temp_count_string INTO
lv_bind_alignment.
CONCATENATE lv_node_name '.CB_C' lv_temp_count_string INTO
lv_bind_bkg_color.
CONCATENATE lv_node_name '.CD_C' lv_temp_count_string INTO
lv_bind_cell_design.
CONCATENATE lv_node_name '.CT_C' lv_temp_count_string INTO
lv_bind_txt_color.
CONCATENATE lv_node_name '.VA_C' lv_temp_count_string INTO lv_path.
CONCATENATE lv_node_name '.BTN_C' lv_temp_count_string INTO
lv_bind_text.
CONCATENATE lv_node_name '.TOT_C' lv_temp_count_string INTO
lv_bind_tooltip.
ELSE.
CONCATENATE lv_first_node '.CA_C' lv_temp_count_string INTO
lv_bind_alignment.
CONCATENATE lv_first_node '.CB_C' lv_temp_count_string INTO
lv_bind_bkg_color.
CONCATENATE lv_first_node '.CD_C' lv_temp_count_string INTO
lv_bind_cell_design.
CONCATENATE lv_first_node '.CT_C' lv_temp_count_string INTO
lv_bind_txt_color.
CONCATENATE lv_first_node '.VA_C' lv_temp_count_string INTO lv_path.
CONCATENATE lv_first_node '.BTN_C' lv_temp_count_string INTO
lv_bind_text.
CONCATENATE lv_first_node '.TOT_C' lv_temp_count_string INTO
lv_bind_tooltip.
ENDIF.
Bild-URL
CONCATENATE 'IMAGE_NAME_EMPL.CI_C' lv_temp_count_string INTO
lv_bind_source.
CONDENSE lv_bind_source.
lo_button = cl_wd_button=new_button(
bind_text = lv_bind_text
bind_tooltip = lv_bind_tooltip
context_menu_behaviour = cl_wd_button=e_context_menu_behaviour-
inherit
design = cl_wd_button=e_design-standard
enabled = 'X'
id = lv_id_variant1
hotkey = cl_wd_button=e_hotkey-none
image_first = 'X'
on_action = 'EVT_COLLAPSE_SEPL'
text_direction = cl_wd_button=e_text_direction-inherit
visible = cl_wd_button=e_visible-visible ).
lo_standard_cell = cl_wd_c_table_standard_cell=new_c_table_standard_cell(
variant_key = 'IMAGE' ).
lo_image = cl_wd_image=new_image(
id = lv_id_variant2
bind_source = lv_bind_source
bind_tooltip = lv_bind_tooltip ).
Textview-Editor erstellen
lo_textview = cl_wd_text_view=new_text_view(
id = lv_id_variant3
bind_text = lv_bind_text
bind_semantic_color = lv_bind_txt_color
bind_h_align = lv_bind_alignment
bind_design = lv_bind_cell_design ).
--------------------------------------------------------------------
TEST CSS vs. IGS
--------------------------------------------------------------------
BIND_STYLE_CLASS_NAME
lo_textview = cl_wd_text_view=new_text_view(
id = lv_id_variant3
bind_text = lv_bind_text
bind_semantic_color = lv_bind_txt_color
bind_h_align = lv_bind_alignment
bind_design = lv_bind_cell_design
BIND_STYLE_CLASS_NAME = '' ).
--------------------------------------------------------------------
TEST CSS vs. IGS
--------------------------------------------------------------------
ELSE.
IF ls_employee-partgroup_id = ls_partgroup-partgroup_id AND ls_employee-
report_type '010'.
ADD 1 TO lv_temp_count.
IF lv_first_node IS NOT INITIAL.
lv_temp_count_string = lv_temp_count.
ADD 1 TO lv_empl_count.
lv_empl_count_string = lv_empl_count.
CONDENSE lv_temp_count_string.
CONCATENATE 'VIS_MATRIX_C' lv_temp_count_string INTO lv_column_id.
lv_partgroup_string = ls_employee-partgroup_id.
CONDENSE lv_partgroup_string NO-GAPS.
lo_standard_cell =
cl_wd_c_table_standard_cell=new_c_table_standard_cell( variant_key = 'IMAGE' ).
Textview-Editor erstellen
lo_textview = cl_wd_text_view=new_text_view(
id = lv_id_variant2
bind_text = lv_bind_text
bind_semantic_color = lv_bind_txt_color
bind_h_align = lv_bind_alignment
bind_design = lv_bind_cell_design ).
IF lv_first_node IS INITIAL.
lo_standard_cell =
cl_wd_c_table_standard_cell=new_c_table_standard_cell( variant_key = 'EMPL' ).
Textview-Editor erstellen
lo_textview = cl_wd_text_view=new_text_view(
id = lv_id_variant2
bind_text = lv_bind_text
bind_semantic_color = lv_bind_txt_color
bind_h_align = lv_bind_alignment
bind_design = lv_bind_cell_design ).
lo_button = cl_wd_button=new_button(
bind_text = lv_bind_text
bind_tooltip = lv_bind_tooltip
context_menu_behaviour =
cl_wd_button=e_context_menu_behaviour-inherit
design = cl_wd_button=e_design-standard
enabled = 'X'
id = lv_id_variant1
hotkey = cl_wd_button=e_hotkey-none
image_first = 'X'
on_action = 'EVT_TO_MLK'
text = 'MLK '
text_direction = cl_wd_button=e_text_direction-
inherit
visible = cl_wd_button=e_visible-visible ).
Editor der Zelle zuweisen
lo_standard_cell-set_editor( the_editor = lo_button ).
Textview-Editor erstellen
lo_textview = cl_wd_text_view=new_text_view(
id = lv_id_variant3
bind_text = lv_bind_text
bind_semantic_color = lv_bind_txt_color
bind_h_align = lv_bind_alignment
bind_design = lv_bind_cell_design ).