📄 report_additionals.js
字号:
document.EditView['report_offset'].value=offset; document.EditView.to_pdf.value=''; document.EditView.to_csv.value=''; if ( fill_form() == true) { document.EditView.submit(); } }function load_page() { reload_joins(); current_module = document.EditView.self.options[document.EditView.self.options.selectedIndex].value; reload_join_rows('regular'); all_fields = getAllFieldsMapped(current_module); if(form_submit != "true") { remakeGroups(); reload_groups(); reload_filters(); } reload_columns('regular');}function reload_joins() { for ( var index in report_def.full_table_list ) { var curr_table = report_def.full_table_list[index]; if ( index != "self" ) { add_related(curr_table.parent,index); option_selectbox = document.getElementById('outer_' + index); if ( option_selectbox != null ) { if ( curr_table.optional != null && curr_table.optional == true ) { option_selectbox.checked = true; } else { option_selectbox.checked = false; } } else { //alert("option_selectbox is null (outer_" + index + ")"); } } var curr_select = document.getElementById(index); curr_select.value = curr_table.value; full_table_list[index] = curr_table; }}function getFieldKey(field_def) { var func_name = ''; if (typeof(field_def.group_function) != 'undefined') { func_name = field_def.group_function; } else if (typeof(field_def.column_function) != 'undefined') { func_name = field_def.column_function; } if ( field_def.group_function == 'count') { return 'count'; } else if (! (func_name == 'weighted_amount' || func_name == 'weighted_sum') && func_name != '' ) { return field_def.table_key+":"+field_def.name+":"+func_name; } return field_def.table_key+":"+field_def.name;}function reload_filters() { for(index in report_def.filters_def) { report_def.filters_def[index].column_name = getFieldKey(report_def.filters_def[index]); addFilter(report_def.filters_def[index]); } }function reload_groups() { for(index in report_def.group_defs) { addGroupBy(report_def.group_defs[index]); }}function get_rel_type(linked_field,relationship) { if ( typeof(linked_field['link_type']) != 'undefined') { return linked_field['link_type']; } // code should never get this far.. link_type is already defined if ( relationship.relationship_type == 'one-to-many') { if (linked_field.bean_is_lhs == true) { if ( relationship['lhs_module'] == linked_field['module']) { return 'one'; } else { return 'many'; } } else { if ( relationship['rhs_module'] == linked_field['module']) { return 'one'; } else { return 'many'; } } } return 'many';}function joinChecked(obj) { reload_columns('add'); reload_join_rows('add'); var objName = obj.id; // loop thru all filters, refresh module select, and reset if // was selecting a module that doesnt exist in the current links for( var index in filters_arr) { current_filter_id = index; var filter_row = filters_arr[filters_count_map[index]]; // Bug 13073//// var filter_module = filter_row.module_select[filter_row.module_select.selectedIndex].value; if ( objName.indexOf("_div") > -1) filter_module = filter_module.substr(0, objName.indexOf("_div")); // If the filter and the object refer to the same module and we aren't just adding more relations... // When we add more relations, the object is not a div if ( objName.indexOf("_div") > -1 && objName.substr(0, objName.indexOf("_div")) == filter_module) { deleteFilter(index); } else { // Bug 13124//// var filter = {column_name:filter_row.module_select[filter_row.module_select.selectedIndex].value, qualifier_name:'',input_name0:'',input_name1:''}; // Bug 13124//// refreshFilterModule(filter_row.module_select,filter,index); } } for( var index in groups_arr) { current_group_id = index; var group_row = groups_arr[groups_count_map[index]]; // Bug 13073//// var group_module = group_row.module_select[group_row.module_select.selectedIndex].value; if ( objName.indexOf("_div") > -1) group_module = group_module.substr(0, objName.indexOf("_div")); // If the group and the object refer to the same module and we aren't just adding more relations... // When we add more relations, the object is not a div if ( objName.indexOf("_div") > -1 && objName.substr(0, objName.indexOf("_div")) == group_module) { deleteGroup(index); } else { // Bug 13124//// var group = {column_name:group_row.module_select[group_row.module_select.selectedIndex].value}; // Bug 13124//// refreshGroupModule(group_row.module_select,group,index); refreshGroupColumn(group_row.column_select,group,index); refreshGroupQualify(group_row.qualify_select,group,index); } }}function delete_this_join( this_id ) { // Get rid of my children delete_join_rows(this_id); this_obj = document.getElementById(this_id + "_div"); this_obj.parentNode.removeChild(this_obj); parent_id = full_table_list[this_id].parent; if ( full_table_list[parent_id] != null ) { delete full_table_list[parent_id].children[this_id]; } delete full_table_list[this_id]; joinChecked(this_obj);}function delete_join_rows( parent_id ) { // Reset the selected fields all_fields = new Array(); if ( full_table_list[parent_id] != null && full_table_list[parent_id].children != null ) { // This guy has some children // Make a copy of the list, javascript doesn't like iterating through a list you are modifying. var children_list = full_table_list[parent_id].children; for ( var child in children_list ) { // Delete the grand-children first delete_join_rows(child); // Then delete the child delete full_table_list[child]; delete full_table_list[parent_id].children[child]; } } // Clear out the HTML div that contains the children var children_div = document.getElementById(parent_id + "_children"); if ( children_div != null ) { children_div.innerHTML = ''; children_div.style.display = 'none'; }}function add_related( parent_id, my_id ) { var options = new Array(); var option_info = new Object(); option_info['value'] = ''; option_info['text'] = lbl_none; option_info['selected'] = true; options[options.length] = option_info; // Get the parent module name var mod_name = full_table_list[parent_id].module; if ( mod_name == null ) { alert(lbl_alert_cant_add); return(false); } if ( module_defs[mod_name] == null ) { return(false); } // Grab the parent's link list var link_defs = getLinksByRelType( module_defs[mod_name].link_defs); var selected_linked_field; for (linked_field_name in link_defs) { var linked_field = link_defs[linked_field_name]; var selected = false; var option_info = new Object(); option_info['text'] = linked_field['label']; option_info['value'] = linked_field_name; option_info['selected'] = false; options[options.length] = option_info; } var select_html_info = new Object(); var select_info = new Object(); // Find a free ID if ( my_id == null ) { var id_num = 0; while ( document.getElementById(parent_id + '_link_' + id_num ) != null ) { id_num++; } select_info['name'] = parent_id + '_link_' + id_num; } else { // Use the ID that someone gave me. select_info['name'] = my_id; } select_info['id'] = select_info['name']; select_info['onchange'] = 'table_changed(this);'; select_html_info['select'] = select_info; select_html_info['options'] = options; // Setup the entry in the full table list full_table_list[select_info['id']] = new Object(); full_table_list[select_info['id']].parent = parent_id; full_table_list[select_info['id']].children = new Object(); // Add some bookkeeping so that we can properly prune the children full_table_list[parent_id].children[select_info['id']] = select_info['id']; children_div = document.getElementById(parent_id + "_children"); if ( children_div.style.display == 'none' ) { // We want to add children, we should make the display visible children_div.style.display = ''; } new_child_div = document.createElement('div'); new_child_div.style.marginLeft = '10px'; new_child_div.style.marginTop = '5px'; new_child_div.style.marginBottom = '5px'; new_child_div.innerHTML = "<b>" + LBL_RELATED + "</b>" + buildSelectHTML(select_html_info) + ' <a href="" class="button" style="padding: 2px; text-decoration: none;" onClick="add_related(\'' + select_info['name'] + '\'); return(false);">' + lbl_add_related + '</a> <a href="" class="button" style="padding: 2px; text-decoration: none;" onClick="delete_this_join(\'' + select_info['name'] + '\'); return(false);">' + lbl_del_this + '</a> ' + buildOuterJoinHTML(select_html_info) + '<div style="display: none; border-left: 2px dotted #000000; padding-left: 5px;" id="' + select_info['name'] + '_children"></div>'; new_child_div.id = select_info['name'] + '_div'; children_div.appendChild(new_child_div);}function reload_join_rows( type ) { // This function is now blank, in case someone wants to fill it in.}//FIXME: Delete, this is now unusedfunction build_join_rows(module,joins_table,level) { join_refs = new Array(); if ( typeof (level) == 'undefined') { level = 0; } level++; var link_defs = getLinksByRelType( module_defs[module].link_defs,'one'); if ( level == 1) { } if ( level < 5 ) { var tr = joins_table.insertRow(joins_table.rows.length); var td = tr.insertCell(tr.cells.length); var hidden_input = ''; join_index = 0; for (linked_field_name in link_defs) { var linked_field = link_defs[linked_field_name]; var input_elem = document.createElement('input'); input_elem.type='hidden'; input_elem.name='link_'+linked_field['name']; input_elem.id='link_'+linked_field['name']; input_elem.value=linked_field['name']; join_index++; join_refs.push(input_elem); td.appendChild(input_elem); } } if ( level == 1 ) { var options = new Array(); var option_info = new Object(); option_info['value'] = ''; option_info['text'] = lbl_none; option_info['selected'] = selected; options[options.length] = option_info; var link_defs = getLinksByRelType( module_defs[module].link_defs,'many'); var selected_linked_field; var first = true; for (linked_field_name in link_defs) { if (first) { selected_linked_field = link_defs[linked_field_name]; first = false; } var linked_field = link_defs[linked_field_name]; var selected = false; var option_info = new Object(); option_info['value'] = linked_field['name']; option_info['text'] = linked_field_name.substring(0,1).toUpperCase() + linked_field_name.substring(1,linked_field_name.length); option_info['selected'] = selected; options[options.length] = option_info; } var select_html_info = new Object(); var select_info = new Object(); select_info['name'] = 'joined'; select_info['id'] = 'multijoin'; select_info['onchange'] = 'joinChecked(this);'; select_html_info['select'] = select_info; var tr = joins_table.insertRow(joins_table.rows.length); var td = tr.insertCell(tr.cells.length); select_html_info['options'] = options; }}function getSelectedLinkJoins( link_array ) { var link_join_array = new Object(); var outer_check = document.getElementById("outer_joined"); if ( outer_check != null ) { link_name = document.forms.EditView.joined; if ( outer_check.checked ) { link_join_array[link_name.value] = 1; } else { link_join_array[link_name.value] = 0; } } return link_join_array;}function getSelectedLinks() { var joins_array = new Array(); for (var index in full_table_list) { if ( index == 'self' ) { // This is the primary module, we don't want to include it continue; } if ( full_table_list[index] != null && full_table_list[index].value != '' ) { joins_array.push(index); } } return joins_array;}function getRelatedModule(link_def) { if(typeof link_def == 'undefined') { return; } var rel_name = link_def.relationship_name; var rel_def = rel_defs[rel_name]; if(typeof(rel_def) == 'undefined') { return ''; } if ( link_def.bean_is_lhs ) {
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -