📄 report_additionals.js
字号:
/** * SugarCRM is a customer relationship management program developed by * SugarCRM, Inc. Copyright (C) 2004 - 2007 SugarCRM Inc. * * This program is free software; you can redistribute it and/or modify it under * the terms of the GNU General Public License version 3 as published by the * Free Software Foundation with the addition of the following permission added * to Section 15 as permitted in Section 7(a): FOR ANY PART OF THE COVERED WORK * IN WHICH THE COPYRIGHT IS OWNED BY SUGARCRM, SUGARCRM DISCLAIMS THE WARRANTY * OF NON INFRINGEMENT OF THIRD PARTY RIGHTS. * * This program is distributed in the hope that it will be useful, but WITHOUT * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS * FOR A PARTICULAR PURPOSE. See the GNU General Public License for more * details. * * You should have received a copy of the GNU General Public License along with * this program; if not, see http://www.gnu.org/licenses or write to the Free * Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA * 02110-1301 USA. * * You can contact SugarCRM, Inc. headquarters at 10050 North Wolfe Road, * SW2-130, Cupertino, CA 95014, USA. or at email address contact@sugarcrm.com. * * The interactive user interfaces in modified source and object code versions * of this program must display Appropriate Legal Notices, as required under * Section 5 of the GNU General Public License version 3. * * In accordance with Section 7(b) of the GNU General Public License version 3, * these Appropriate Legal Notices must retain the display of the "Powered by * SugarCRM" logo. If the display of the logo is not reasonably feasible for * technical reasons, the Appropriate Legal Notices must display the words * "Powered by SugarCRM". */var groups_arr=new Array();var chartTypesHolder = []; // storage for removed chart itemsvar groups_count=-1;var filters_arr=new Array();var filters_count_map=new Object();var filters_count = -1;var current_filter_id = -1;var groups_count_map=new Object();var current_group_id = -1;var join_refs = new Array();var group_field = null;var has_group = null;var global_report_def = null;var goto_anchor = '';// holds all the fields from current and joined tablesvar all_fields = new Object();var full_table_list = new Object();full_table_list.self = new Object();full_table_list.self.parent = '';full_table_list.self.value = document.EditView.self.options[document.EditView.self.options.selectedIndex].value;full_table_list.self.module = document.EditView.self.options[document.EditView.self.options.selectedIndex].value;full_table_list.self.label = document.EditView.self.options[document.EditView.self.options.selectedIndex].text;full_table_list.self.children = new Object();function hideCheckGroups() { document.getElementById('checkGroups').style.display = 'none';}function table_changed(obj) { if(document.EditView.report_type[1].checked) { if(typeof hideCheckGroupsTimeout != 'undefined') clearTimeout(hideCheckGroupsTimeout); document.getElementById('checkGroups').style.display = ''; hideCheckGroupsTimeout = window.setTimeout('hideCheckGroups()', 6000); } current_module = document.EditView.self.options[document.EditView.self.options.selectedIndex].value; if(obj.options[obj.selectedIndex].value == '') { // None was selected, delete the link delete_this_join(obj.id); return; } // Set the master table list to the current value full_table_list[obj.id].value = obj.value; full_table_list[obj.id].label = obj.options[obj.options.selectedIndex].text; if ( obj.id != 'self' ) { // Get the link definitions, and store them var parent_id = full_table_list[obj.id].parent; var parent_module = full_table_list[parent_id].module; var parent_link_defs = getLinksByRelType(module_defs[parent_module].link_defs); full_table_list[obj.id].link_def = parent_link_defs[full_table_list[obj.id].value]; //full_table_list[obj.id].rel_def = rel_defs[full_table_list[obj.id].link_def.relationship_name]; //full_table_list[obj.id].module = full_table_list[obj.id].label; full_table_list[obj.id].module = getRelatedModule(full_table_list[obj.id].link_def); full_table_list[obj.id].link_def.table_key = obj.id; } else { full_table_list[obj.id].module = obj.value; } if ( document.getElementById('report_results') != null ) { document.getElementById('report_results').style.display='none'; } delete_join_rows(obj.id); //alert("I'm done deleting the join rows"); if ( obj.id == 'self' ) { // We are deleting the main entry, nuke everything reload_join_rows(); deleteAllFilters(); deleteAllGroups(0); reload_columns(); } else { joinChecked(obj); } remakeGroups(); document.EditView.sort_by.value = ''; document.EditView.sort_dir.value = ''; document.EditView.summary_sort_by.value = ''; document.EditView.summary_sort_dir.value = '';}function showDetailsClicked(obj) { if (obj.checked) { document.getElementById('columns_table').style.display=''; document.getElementById('columns_more_div').style.display=''; } else { document.getElementById('columns_table').style.display='none'; document.getElementById('columns_more_div').style.display='none'; }}function deleteFilter(index) { var this_row = filters_arr[filters_count_map[index]].row; this_row.parentNode.removeChild(this_row); filters_arr.splice(filters_count_map[index],1); for ( id in filters_count_map) { if (filters_count_map[id] > filters_count_map[index]) { filters_count_map[id]--; } }}function deleteGroup(index) { if(typeof(groups_count_map[index]) == 'undefined' || typeof(groups_arr[groups_count_map[index]]) == 'undefined') { return; } var this_row = groups_arr[groups_count_map[index]].row; this_row.parentNode.removeChild(this_row); groups_arr.splice(groups_count_map[index],1); for ( id in groups_count_map) { if (groups_count_map[id] > groups_count_map[index]) { groups_count_map[id]--; } } var group_by_button = document.getElementById('group_by_button'); group_by_button.style.display = 'inline'; // add back line charts if(groups_arr.length == 1 && document.EditView.chart_type.options.length > 5) { chartTypesHolder.push(document.EditView.chart_type.options[5]); document.EditView.chart_type.options[5] = null; } reload_columns('add');}function getReportType() { for (i=0;i < document.EditView.report_type.length;i++) { if ( document.EditView.report_type[i].checked == true) { return document.EditView.report_type[i].value; } }}function reportTypeChanged() { var report_type = getReportType(); var columns_table = document.getElementById('columns_table'); var summary_table = document.getElementById('summary_table'); if ( report_type == 'summary') { document.getElementById('tab_li_chart_options_tab').style.display=''; document.getElementById('tab_link_chart_options_tab').style.display=''; document.getElementById('tab_li_group_by_tab').style.display=''; document.getElementById('tab_link_group_by_tab').style.display=''; document.getElementById('tab_link_columns_tab').innerHTML = SUGAR.language.get('Reports', 'LBL_4_CHOOSE') ; document.getElementById('summary_table').style.display=''; document.getElementById('summary_more_div').style.display=''; document.getElementById('columns_table').style.display='none'; document.getElementById('columns_more_div').style.display='none'; document.getElementById('group_by_div').style.display=''; if (document.EditView.show_details.checked) { document.getElementById('columns_table').style.display=''; document.getElementById('columns_more_div').style.display=''; } else { document.getElementById('columns_table').style.display='none'; document.getElementById('columns_more_div').style.display='none'; } } else if ( report_type == 'tabular' ) { document.getElementById('tab_li_chart_options_tab').style.display='none'; document.getElementById('tab_link_chart_options_tab').style.display='none'; document.getElementById('tab_li_group_by_tab').style.display='none'; document.getElementById('tab_link_group_by_tab').style.display='none'; document.getElementById('tab_link_columns_tab').innerHTML = SUGAR.language.get('Reports', 'LBL_3_CHOOSE') ; document.getElementById('columns_table').style.display=''; document.getElementById('columns_more_div').style.display=''; document.getElementById('summary_table').style.display='none'; document.getElementById('summary_more_div').style.display='none'; document.getElementById('group_by_div').style.display='none'; } document.getElementById('report_results').style.display='none'; refresh_chart_tab();}function manyColumnSelectChanged(index) { current_filter_id = index; var filter_row = filters_arr[filters_count_map[index]]; refreshFilterColumn(filter_row.column_select,default_filter,index); refreshFilterQualify(filter_row.column_select,default_filter,index); refreshFilterInput(default_filter,index);}function moduleSelectChanged(index) { current_filter_id = index; var filter_row = filters_arr[filters_count_map[index]]; refreshFilterColumn(filter_row.column_select,default_filter,index); refreshFilterQualify(filter_row.column_select,default_filter,index); refreshFilterInput(default_filter,index);}function moduleSelectChangedGroup(index) { current_group_id = index; var group_row = groups_arr[groups_count_map[index]]; refreshGroupColumn(group_row.column_select,default_group,index); refreshGroupQualify(group_row.column_select,default_group,index); reload_columns('add');}function columnSelectChanged(index) { current_filter_id = index; var filter_row = filters_arr[filters_count_map[index]]; refreshFilterQualify(filter_row.column_select,default_filter,index); refreshFilterInput(default_filter,index);}function columnSelectGroupChanged(index) { current_group_id = index; var group_row = groups_arr[groups_count_map[index]]; refreshGroupQualify(group_row.column_select,default_group,index); reload_columns('add');}function refreshGroupQualify(obj,group,index) { current_group_id = index; var group_row = groups_arr[groups_count_map[index]]; group_row.qualify_cell.removeChild(group_row.qualify_select); addGroupQualify(group_row.qualify_cell,group);}function refreshFilterQualify(obj,filter,index) { current_filter_id = index; var filter_row = filters_arr[filters_count_map[index]]; filter_row.qualify_cell.removeChild(filter_row.qualify_select); addFilterQualify(filter_row.qualify_cell,filter);}function refreshFilterColumn(obj,filter,index) { current_filter_id = index; var filter_row = filters_arr[filters_count_map[index]]; filter_row.column_cell.removeChild(filter_row.column_select); addColumnSelectFilter(filter_row.column_cell,filter);}function refreshGroupColumn(obj,group,index) { current_group_id = index; var group_row = groups_arr[groups_count_map[index]]; group_row.column_cell.removeChild(group_row.column_select); addColumnSelectGroup(group_row.column_cell,group);}function refreshFilterModule(obj,filter,index) { current_filter_id = index; var filter_row = filters_arr[filters_count_map[index]]; filter_row.module_cell.removeChild(filter_row.module_select); addModuleSelectFilter(filter_row.module_cell,filter);}function refreshGroupModule(obj,group,index) { current_group_id = index; var group_row = groups_arr[groups_count_map[index]]; group_row.module_cell.removeChild(group_row.module_select); addModuleSelectGroup(group_row.module_cell,group);}function filterTypeChanged(index) { var filter = {input_name0:''}; refreshFilterInput(filter,index);}function refreshFilterInput(filter,index) { current_filter_id = index; var filter_row = filters_arr[filters_count_map[index]]; if (typeof (filter_row.input_field0) != 'undefined' && typeof (filter_row.input_field0.value) != 'undefined') { type = "input"; } filter_row.input_cell.removeChild(filter_row.input_cell.firstChild); addFilterInput(filter_row.input_cell,filter);}function addColumnSelectGroup(cell,group) { var select_html_info = new Object(); var options = new Array(); var select_info = new Object(); select_info['name'] = 'group'; select_info['onchange'] = 'columnSelectGroupChanged('+current_group_id+');'; select_html_info['select'] = select_info; var module_select = groups_arr[groups_count_map[current_group_id]].module_select; var table_key = module_select.options[module_select.selectedIndex].value; if (table_key == 'self') { selected_module = current_module; field_defs = module_defs[selected_module].group_by_field_defs; } else { selected_module = table_key; var field_defs = module_defs[full_table_list[table_key].module].group_by_field_defs; } var field_defs_arr = getOrderedFieldDefArray(field_defs,true); var selected = false; var got_selected = 0; for(var index in field_defs_arr) { var field = field_defs_arr[index]; if ( field.type == 'text' || ( current_db_type == 'oci8' && field.type == 'name' && typeof (field.fields) != 'undefined' )) { continue; } var key = table_key+":"+field.name; if ( typeof(all_fields[key]) == 'undefined') { continue; } if ( group.column_name == key) { got_selected = 1; selected = true; } else { selected = false; } var option_info = new Object(); option_info['value'] = key; option_info['text'] = field.vname; option_info['selected'] = selected; options[options.length] = option_info; } if ( got_selected == 0) { options[0]['selected'] = true; } select_html_info['options'] = options; cell.innerHTML=buildSelectHTML(select_html_info); groups_arr[groups_count_map[current_group_id]].column_select = cell.getElementsByTagName('select')[0];}function addModuleSelectFilter(cell,filter) { var select_html_info = new Object(); var options = new Array(); var select_info = new Object(); select_info['name'] = 'filter'; select_info['onchange'] = 'moduleSelectChanged('+current_filter_id+');'; select_html_info['select'] = select_info; var link_defs = getSelectedLinkDefs(); var option_info = new Object(); option_info['value'] = 'self'; option_info['text'] = module_defs[current_module].label; option_info['selected'] = selected; options[options.length] = option_info; var parts = filter.column_name.split(':'); var selected_link_name = parts[0]; for(var i in link_defs) { var linked_field = link_defs[i]; var selected = false; if ( i == selected_link_name) { selected=true; } else { selected=false; } // re-selected the remembered select (if there was one) var option_info = new Object(); option_info['value'] = i; var label = linked_field['label']; if ( i != 'self' ) { label = full_table_list[full_table_list[i].parent].label + ' > '+ label; } option_info['text'] = label; option_info['selected'] = selected; options[options.length] = option_info; }
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -