# # # # create_report_info_util.cfv # # # include "templates.util.base_util"; # # # override_report_element_with_user_info_settings() # # subroutine(override_report_element_with_user_info_settings( node report_element, node session_report_element), ( # We have to recursively loop through all session data and override # the report element. # check if the user info data exist in report_element, and if so, # override the report element data node session_item; string item_name; node base_item; foreach session_item session_report_element ( # Check if the node exists in original report_element # KHP-RC, verify if the override_report_element_with_user_info_settings() works correct! item_name = node_name(session_item); # if (report_element?{item_name}) then ( # # base_item = report_element{item_name}; # # if (num_subnodes(session_item) == 0) then ( # # # Before overriding the value make sure that the report element # # has no subnodes as well # # if (num_subnodes(base_item) == 0) then ( # # set_node_value(base_item, @session_item); # ); # ) # else ( # # # recursively loop through subitems # # override_report_element_with_user_info_settings(base_item, session_item); # ); # ); base_item = report_element{item_name}; if (num_subnodes(session_item) == 0) then ( # Before overriding the value make sure that the report element # has no subnodes as well set_node_value(base_item, @session_item); ) else ( # recursively loop through subitems override_report_element_with_user_info_settings(base_item, session_item); ); ); )); # # # # # get_entry_or_exit_pages_table_filter_expression # # # # # DISABLED because we use a different method to handle this # subroutine(get_entry_or_exit_pages_table_filter_expression( # string session_id, # bool is_root_admin, # string profile_name, # node report_element, # string report_element_type), ( # # # Creates a hard coded table_filter_expression for entry_pages and exit_pages report elements # # to omit all pages with zero entrances or exits. # # # session_field_name is "session_entrances" or "session_exits" # # node query_fields = get_query_fields(session_id, is_root_admin, profile_name); # # string existing_table_filter_expression = @report_element{"table_filter_expression"}; # string new_table_filter_expression; # string required_session_field_name = if (report_element_type eq "entry_pages") then ("session_entrances") else ("session_exits"); # # # # # Find the session_entrances or session_exits field which is used in the expression. # # # # if (report_element?{"columns"}) then ( # # node column; # node report_element_columns = report_element{"columns"}; # string report_field_name; # string report_field_name_in_expression; # node query_field_item; # # foreach column report_element_columns ( # # report_field_name = @column{"report_field"}; # query_field_item = query_fields{report_field_name}; # # if ((@query_field_item{"derivation_method"} eq "session_field") and # (@query_field_item{"session_field"} eq required_session_field_name)) then ( # report_field_name_in_expression = report_field_name; # last; # ) # ); # # # # # Create expression # # # # if (report_field_name_in_expression ne "") then ( # # new_table_filter_expression = "(cell_by_name('" . report_field_name_in_expression . "') > 0)"; # # if (existing_table_filter_expression ne "") then ( # # new_table_filter_expression = "(" . existing_table_filter_expression . ") and " . new_table_filter_expression; # ); # ); # ); # # new_table_filter_expression; # ));