📄 report_additionals.js
字号:
var the_table = document.getElementById('filters'); var row = document.createElement('tr'); filters_arr[filters_count_map[filters_count]].row = row; row.valign="top"; var module_cell = document.createElement('td'); module_cell.valign="top"; row.appendChild(module_cell); filters_arr[filters_count_map[filters_count]].module_cell = module_cell; addModuleSelectFilter(module_cell,filter); var column_cell = document.createElement('td'); column_cell.valign="top"; row.appendChild(column_cell); filters_arr[filters_count_map[filters_count]].column_cell = column_cell; addColumnSelectFilter(column_cell,filter); var qualify_cell = document.createElement('td'); qualify_cell.valign="top"; row.appendChild(qualify_cell); filters_arr[filters_count_map[filters_count]].qualify_cell = qualify_cell; addFilterQualify(qualify_cell,filter); var input_cell = document.createElement('td'); input_cell.valign="top"; row.appendChild(input_cell); filters_arr[filters_count_map[filters_count]].input_cell = input_cell; addFilterInput(input_cell,filter); var cell = document.createElement('td'); cell.valign="top"; row.appendChild(cell); var cell = document.createElement('td'); cell.innerHTML = "<input type=button onclick=\"deleteFilter("+filters_count+");\" class=button value="+lbl_remove+">"; row.appendChild(cell); the_table.appendChild(row);}function deleteAllFilters() { var the_table = document.getElementById('filters'); var rows = the_table.rows; for (i=rows.length - 1; i >= 0;i--) { the_table.removeChild(rows[i]); } return;}function deleteAllGroups(index) { if (typeof(groups_arr[groups_count_map[index]])!='undefined') { 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'; } return;}function remakeGroups() { document.EditView['report_offset'].value=0; if (typeof(document.EditView.show_columns) != 'undefined' && document.EditView.show_columns.checked){ module_defs[current_module].group_by_field_defs = new Object(); for(i=0; i < object_refs['display_columns'].options.length ;i++) { var field_name = object_refs['display_columns'].options[i].value; var field_def = module_defs[current_module].field_defs[field_name]; module_defs[current_module].group_by_field_defs[ field_def.name ] = field_def; } }}function getListFieldDef(field_key) { var field_def = new Object(); var vardef = all_fields[field_key].field_def; if ( typeof(vardef.field_def_name) != 'undefined') { field_def.name = vardef['field_def_name']; } else { field_def.name = vardef['name']; } field_def.label = vardef['vname']; if ( typeof(vardef.group_function) != 'undefined' && vardef.group_function != null) { field_def.group_function = vardef.group_function; } if ( typeof(vardef.column_function) != 'undefined' && vardef.column_function != null) { field_def.column_function = vardef.column_function; } field_def.table_key = all_fields[field_key].linked_field_name; return field_def;}// called on save:function fill_form(type) { var report_def = new Object(); var form_obj = document.EditView; // we want an export of csv: if ( typeof (type) != 'undefined' && type == 'export') { form_obj.to_pdf.value = ''; form_obj.to_csv.value = 'on'; } var got_sort = 0; var got_summary_sort = 0; var got_summary_column = 0; var got_error = 0; var error_msgs = lbl_missing_fields+': \n'; report_def['report_type'] = getReportType(); report_def.display_columns = new Array(); var group_by_table = document.getElementById('group_by_tbody'); if (document.EditView.show_details.checked == true || report_def.report_type=='tabular') { var disp_opts = object_refs['display_columns'].options; // loop thru display columns in the select element // and construct report_def for display_columns for(i=0; i < disp_opts.length ;i++) { var field_def = getListFieldDef(disp_opts[i].value); if(typeof(disp_opts[i].saved_text) != 'undefined') { field_def['label'] = disp_opts[i].saved_text; } else { field_def['label'] = disp_opts[i].text; } report_def.display_columns.push(field_def); if (form_obj.sort_by.value == disp_opts[i].value) { got_sort = 1; } } } report_def.summary_columns = new Array(); if (report_def.report_type=='summary' && object_refs['display_summary'].style.display != 'none') { // loop thru display columns in the select element // and construct report_def for display_columns var sum_opts = object_refs['display_summary'].options; var summary_column_map = new Object(); for(i=0; i < sum_opts.length ;i++) { var field_def = getListFieldDef(sum_opts[i].value); if (typeof(field_def.group_function) != 'undefined') { got_summary_column = 1; } if(typeof(sum_opts[i].saved_text) != 'undefined') { field_def['label'] = sum_opts[i].saved_text; } else { field_def['label'] = sum_opts[i].text; } summary_column_map[sum_opts[i].value] = field_def; report_def.summary_columns.push(field_def); if (form_obj.summary_sort_by.value == sum_opts[i].value) { got_summary_sort = 1; } } } // set sorting var sort_by = new Array(); var summary_sort_by = new Array(); var sort_dir = new Array(); var summary_sort_dir = new Array(); if (got_sort == 0 ) { form_obj.sort_by.value = ''; form_obj.sort_dir.value = ''; } else { var sort_by_elem = new Object(); var sort_by_elem = getListFieldDef(form_obj.sort_by.value); sort_by_elem.sort_dir = form_obj.sort_dir.value; sort_by.push(sort_by_elem); report_def.order_by = sort_by; } if (got_summary_sort == 0 || document.EditView.show_details.checked) { form_obj.summary_sort_by.value = ''; form_obj.summary_sort_dir.value = ''; } else { var summary_sort_by_elem = new Object(); var key_arr = form_obj.summary_sort_by.value.split(':'); summary_sort_by_elem.name = key_arr[1]; if ( typeof(all_fields[ form_obj.summary_sort_by.value ].field_def.group_function) != 'undefined') { summary_sort_by_elem.group_function = all_fields[ form_obj.summary_sort_by.value ].field_def.group_function; } else if ( typeof(all_fields[ form_obj.summary_sort_by.value ].field_def.column_function) != 'undefined') { summary_sort_by_elem.group_function = all_fields[ form_obj.summary_sort_by.value ].field_def.column_function; } summary_sort_by_elem.column_function = key_arr[2]; summary_sort_by_elem.table_key = all_fields[ form_obj.summary_sort_by.value ].linked_field_name; summary_sort_by_elem.sort_dir = form_obj.summary_sort_dir.value; summary_sort_by.push(summary_sort_by_elem); report_def.summary_order_by = summary_sort_by; } var group_by_table = document.getElementById('group_by_tbody'); var report_type_elem = document.EditView.report_type; var group_defs = new Array(); if ((document.EditView.show_details.checked || report_def['report_type'] == 'tabular' ) && object_refs['display_columns'].options.length == 0) { error_msgs += lbl_at_least_one_display_column+'\n'; got_error = 1; } if (report_def['report_type'] == 'summary' && object_refs['display_summary'].options.length == 0 ) { error_msgs += lbl_at_least_one_summary_column+'\n'; got_error = 1; } // check if all options have been filled out for related tables for(var wp in full_table_list) { if(typeof full_table_list[wp].value == 'undefined') { error_msgs += lbl_related_table_blank + '\n'; got_error = 1; break; } } var filter_table = document.getElementById('filters'); var filters_def = new Array(); for(i=0; i < filter_table.rows.length;i++) { // the module select is the first cell.. we dont need that var cell0 = filter_table.rows[i].cells[1]; var cell1 = filter_table.rows[i].cells[2]; var cell2 = filter_table.rows[i].cells[3]; var column_name = cell0.getElementsByTagName('select')[0].value; var filter_def = new Object(); var field = all_fields[column_name].field_def; filter_def.name = field.name; filter_def.table_key = all_fields[column_name].linked_field_name; column_vname = all_fields[column_name].label_prefix+": "+ field['vname']; filter_def.qualifier_name=cell1.getElementsByTagName('select')[0].value; var input_arr = cell2.getElementsByTagName('input'); if ( typeof(input_arr[0]) != 'undefined') { filter_def.input_name0=input_arr[0].value; if (input_arr[0].value == '') { got_error = 1; error_msgs += "\""+column_vname+"\""+lbl_missing_input_value+"\n"; } if ( typeof(input_arr[1]) != 'undefined') { filter_def.input_name1=input_arr[1].value; if (input_arr[1].value == '') { got_error = 1; error_msgs += "\"" + column_vname + "\""+lbl_missing_second_input_value+"\n"; } } } else { var got_selected = 0; var select_input = cell2.getElementsByTagName('select')[0]; filter_def.input_name0= new Array(); for (j=0;j<select_input.options.length;j++) { if (select_input.options[j].selected == true) { filter_def.input_name0.push(decodeURI(select_input.options[j].value)); got_selected = 1; } } if (got_selected==0) { error_msgs += "\"" +column_vname +"\": "+lbl_missing_second_input_value+"\n"; got_error = 1; } } if ( field.type == 'datetime' || field.type == 'date') { if ( typeof(filter_def.input_name0) != 'undefined' && typeof(filter_def.input_name0) != 'array') { var date_match = filter_def.input_name0.match(date_reg_format); if ( date_match != null) { filter_def.input_name0 = date_match[date_reg_positions['Y']] + "-"+date_match[date_reg_positions['m']] + "-"+date_match[date_reg_positions['d']]; } } if ( typeof(filter_def.input_name1) != 'undefined' && typeof(filter_def.input_name1) != 'array') { var date_match = filter_def.input_name1.match(date_reg_format); if ( date_match != null) { filter_def.input_name1 = date_match[date_reg_positions['Y']] + "-"+date_match[date_reg_positions['m']] + "-"+date_match[date_reg_positions['d']]; } } } filters_def.push(filter_def); } if (got_error == 1) { alert(error_msgs); return false; } report_def.filters_def = filters_def; // and/or filter option report_def.filters_combiner = document.getElementById('filters_combiner').options[document.getElementById('filters_combiner').selectedIndex].value; var group_by_table = document.getElementById('group_by_tbody'); var group_defs = new Array(); if (report_def.report_type!='tabular') { //Loop through the group by table for(i=0; i < group_by_table.rows.length;i++) { var cell0 = group_by_table.rows[i].cells[1]; var cell1 = group_by_table.rows[i].cells[2]; var group_by_def = getListFieldDef(cell0.getElementsByTagName('select')[0].value); var group_key = cell0.getElementsByTagName('select')[0].value; if ( typeof (cell1) != 'undefined' && cell1.getElementsByTagName('select')[0].style.display != 'none') { group_by_def.qualifier = cell1.getElementsByTagName('select')[0].value; } //Should this column be displayed? if ( typeof(summary_column_map[group_key]) == 'undefined') { // unshift on the display summary columns this group and mark it report_def.summary_columns.unshift( group_by_def); group_by_def.is_group_by = 'hidden'; if ( typeof(group_by_def.qualifier) != 'undefined') { group_by_def.column_function = group_by_def.qualifier; } } else { summary_column_map[group_key].is_group_by = 'visible'; } group_defs.push(group_by_def); } } report_def.group_defs = group_defs; var links = getSelectedLinks(); var links_def = new Array(); for(var i in links) { links_def.push(links[i]); } var link_joins = getSelectedLinkJoins(links_def); report_def.full_table_list = full_table_list; report_def.module = current_module; report_def.report_name = document.EditView.save_report_as.value; report_def.chart_type = document.EditView.chart_type.value; report_def.chart_description = document.EditView.chart_description.value; report_def.numerical_chart_column = document.EditView.numerical_chart_column.value; global_report_def = report_def; report_def.assigned_user_id = document.EditView.assigned_user_id.value; report_def_str = JSON.stringifyNoSecurity(report_def); form_obj.report_def.value = report_def_str; return true;}function do_export() { if ( fill_form('export') == true) { document.EditView.submit(); }}function set_sort(column_name,source) { if ( source == 'undefined') { source = 'columns'; } var sort_by = 'sort_by'; var sort_dir = 'sort_dir'; if ( source == 'summary') { sort_by = 'summary_sort_by'; sort_dir = 'summary_sort_dir'; } if (column_name == document.EditView[sort_by].value) { if ( document.EditView[sort_dir].value=="d") { document.EditView[sort_dir].value = "a"; } else { document.EditView[sort_dir].value = "d"; } } else { document.EditView[sort_by].value = column_name; document.EditView[sort_dir].value = "a"; } document.EditView.to_pdf.value=''; document.EditView.to_csv.value=''; document.EditView['report_offset'].value=0; if ( fill_form() == true) { document.EditView.submit(); }}function set_offset(offset) {
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -