📄 reportprinter.js
字号:
w = w+ oThis.getColumnWidth(c);
}
return w;
}else{
return 100;
}
}else{
return parseInt(column.width);
}
}
this.paintRow = function(rowData){
if(_list_rowStr[rowData.l_r_id]!=null)
return _list_rowStr[rowData.l_r_id];
var sb = [];
sb[sb.length] = "<tr>";
if(oThis.context.sequence==true){
sb[sb.length] = '<td align="center" style="width:40;">';
sb[sb.length] = (rowData._index+1) + '</td>';
}
var columns =oThis.getLeafColumns();
for(var i=0;i<columns.length;i++){
sb[sb.length] = oThis.paintCell(rowData,columns[i]);
}
sb[sb.length] = "</tr>";
var r = sb.join("");
_list_rowStr[rowData.l_r_id] = r;
return r ;
}
var _list_leafColumns = null;
this.getLeafColumns = function(column){
if(column==null){
if(_list_leafColumns==null){
_list_leafColumns = new Array();
for(var i=0;i<oThis.columns.length;i++){
column = oThis.columns[i];
if(false == column._printAble){
continue;
}
if(column.children==null || column.children.length==0){
_list_leafColumns[_list_leafColumns.length] = column;
}else{
oThis.getLeafColumns(column);
}
}
}
return _list_leafColumns;
}else{
for(var i=0;i<column.children.length;i++){
var child = column.children[i];
if(child.children==null|| children.children.length==0){
_list_leafColumns[_list_leafColumns.length] = child;
}else{
oThis.getLeafColumns(child);
}
}
}
}
this.formatNumber = function(value,column){
var f = null;
if(column.format!=null){
f = column.format;
}else{
f = "#.00";
}
return formatToMoney(value,f);
}
this.paintCell = function(rowData,column){
var data = null;
var align = "";
var mode = column.mode;
if(mode==null || mode ==""){
mode = "string";
column.mode = mode;
}
data = oThis.getValueOfCell(rowData,column);
var sb = new Array();
var isListening = false;
if(mode=="string"){
align = "left";
}else if(mode=="number"){
align = "right";
data = oThis.formatNumber(data,column);
}else if(mode=="money"){
align = "right";
data = oThis.formatNumber(data,column);
}else if(mode=="check"){
align = "center";
if(data==true){
data = '√';
}else{
data = ' ';
}
}else if(mode=="select"){
align = "center";
var op = oThis.getColumnOption(column,data);
if(op!=null){
data = op.name;
}else{
data = " ";
}
}else if(mode=="function"){
align = "left";
}else if(mode=="date"){
align = "center";
data = data.substring(0,10);
}else if(mode=="link"){
align = "center";
}else if(mode=="exp"){
align="right";
data = oThis.formatNumber(data,column);
}
if(column.align!=null){
align = column.align;
}
if(data== " "){
data = " ";
}
var width = oThis.getColumnWidth(column);
var sb = new Array();
sb[sb.length] = '<td align='+align;
sb[sb.length] = '>' + data;
sb[sb.length] = '</td>';
return sb.join("");
}
this.getColumnOption = function(column,id){
var options = column.options;
for(var i=0;i<options.length;i++){
var op = options[i];
if(op.id == id){
return op;
}
}
return null;
}
this.getPropertyOfObj = function(obj,pName){
if(obj==null){
return null;
}
var name = pName;
var ns = name.split(".");
if(ns[1]=="")
ns.removeAt(1);
if(ns.length>1){
for(var i=0;i<ns.length-1;i++){
var parent = obj;
obj = parent[ns[i]];
if(obj==null){
return null;
}
}
obj = obj[ns[ns.length-1]];
}else{
obj = obj[pName];
}
return obj;
}
this.getValueOfCell = function(rowData,column){
if(column.mode=="exp"){
return eval(column.expStr);
}else{
var v = oThis.getPropertyOfObj(rowData,column.name);
if(v==null || v==""){
if(column.mode=="number"){
v = 0;
}else if(column.mode=="money"){
v = 0.00;
}else
v = " ";
}
return v;
}
}
this.getMoneyFormat = function(column){
return column.format;
}
this.getSumMoneyFormat = function(colName){
var sumColumns = oThis.context.sum;
var sumCol = null;
for(var i=0;i<sumColumns.length;i++){
var col = sumColumns[i];
if(col.name = colName){
sumCol = col;
break;
}
}
if(sumCol.format==null){
return oThis.getMoneyFormat(oThis.getColumnByName(colName));
}else{
return sumCol.format;
}
}
this.getColumnByName = function(colName,columns){
if(columns==null)
columns = oThis.columns;
for(var i=0;i<columns.length;i++){
var c = columns[i];
if(c.name==colName){
return c;
}else if(c.children!=null){
return oThis.getColumnByName(c.children,colName);
}
}
return null;
}
this.paintSumRow = function(){
if(_list_sumrow_str!=null)
return _list_sumrow_str;
var sumRowData = oThis.getSumData();
var sb = [];
sb[sb.length] = '<tr>';
var colNum = 0;
if(oThis.context.sequence){
colNum++;
}
if(colNum>1){
sb[sb.length] = '<td colspan='+colNum;
sb[sb.length] = ' class="lastRow"';
sb[sb.length] = ' align="center">';
sb[sb.length] = '合计';
sb[sb.length] = '</td>';
}else{
sb[sb.length] = '<td';
sb[sb.length] = ' class="lastRow"';
sb[sb.length] = ' align="center">';
sb[sb.length] = '合计';
sb[sb.length] = '</td>';
}
var columns = oThis.getLeafColumns();
for(var i=0;i<columns.length;i++){
var column = columns[i];
sb[sb.length] = '<td class="lastRow" align="right">';
var sumValue = oThis.getColSum(sumRowData,column.name);
if(sumValue==null){
sb[sb.length] = ' ';
}else
sb[sb.length] = formatToMoney(""+sumValue,oThis.getSumMoneyFormat(column.name));
sb[sb.length] = '</td>';
}
sb[sb.length] = '</tr>';
_list_sumrow_str = sb.join("");
return _list_sumrow_str;
}
var sumData = null;
this.getSumData = function(){
if(sumData==null){
var data = oThis.data;
var sumColumns = oThis.context.sum;
for(var i=0;i<data.length;i++){
var rowData = data[i];
for(var j=0;j<sumColumns.length;j++){
var sumCol = sumColumns[j];
if(sumCol.sumValue==null||i==0)
sumCol.sumValue = 0;
if(sumCol.exp==null)
sumCol.sumValue = sumCol.sumValue + parseFloat(oThis.getPropertyOfObj(rowData,sumCol.colName));
}
}
for(var j=0;j<sumColumns.length;j++){
var sumCol = sumColumns[j];
if(sumCol.sumValue==null||i==0)
sumCol.sumValue = 0;
if(sumCol.exp!=null){
sumCol.sumValue = eval(sumCol.exp);
}
}
sumData = sumColumns;
}
return sumData;
}
this.getColSum = function(sumRowData,colName){
var sumValue = 0;
for(var j=0;j<sumRowData.length;j++){
var sumCol = sumRowData[j];
if(sumCol.colName == colName){
sumValue = sumCol.sumValue;
return sumValue;
}
}
return null;
}
var _list_colsStr = null;
this.clearColsStr = function(){
_list_colsStr = null;
}
this.getColsStr = function(){
if(_list_colsStr==null){
var sb = [];
sb[sb.length] = '<colgroup >';
if(oThis.context.sequence==true){
sb[sb.length] = '<col width="40"/>';
}
var cols = oThis.getLeafColumns();
for(var i=0;i<cols.length;i++){
sb[sb.length] = '<col width="' + oThis.getColumnWidth(cols[i]) + '"/>';
}
sb[sb.length] = '</colgroup>';
_list_colsStr = sb.join("");
}
return _list_colsStr;
}
}
function ReportPrinter(){
this.rHeader = null;
this.pHeader = null;
this.pFoot = null;
this.rFoot = null;
this.test = "teststeswtsta";
this.params = new Object();
this.win = null;
this.columns = null;
this.data = null;
this.context = null;
this.resetColumns = false;
oThis = this;
this.view = function(){
var sFeatures = "";
sFeatures = "width=" + 800 +"px,"
+"height=" + 600 + "px,"
+"status=1,resizable=1,scrollbars ";
window.printer = oThis;
oThis.win = window.open(report_template_url,"_blank",sFeatures);
}
this.setGrid = function(_grid){
oThis.columns = _grid.getOrderedColumns();
oThis.data = _grid.getValue();
oThis.context = _grid.getContext();
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -