Ext 入门 (05) 打印+gridpanel()方法

附: Ext打印::: gridpanel()方法:
		
	doStatis: function () {
		var me = this;
		var kssj = new Date();
		if (this.dateFieldStart) {
			kssj = this.dateFieldStart.getValue();
		};
		var jssj = new Date();
		if (this.dateFieldEnd) {
			jssj = this.dateFieldEnd.getValue();
		};

		var r = phis.script.rmi.miniJsonRequestSync({
			serviceId: "phis." + this.serviceId,
			serviceAction: "statis",
			body: {
				startDate: kssj.format('Y-m-d') + ' ' + '00:00:00',
				endDate: jssj.format('Y-m-d') + ' ' + '23:59:59',
			}
		});
		console.warn(r);
		var jsonstore = new Ext.data.JsonStore({
			data: r.json.body,
			fields: [
				'SJSL',
				'ZHJE',
				'ZJJE',
				'ZFJE',
				'QTYS',
				'HBWC',
				'STARTDATE',
				'ENDDATE'
			]
		});
		//定义列
		var column = new Ext.grid.ColumnModel({
			columns: [{
					header: '总收费次数',
					dataIndex: 'SJSL',
					width: 100
				},
				{
					header: '(开始)收费日期',
					dataIndex: 'STARTDATE',
					renderer: Ext.util.Format.dateRenderer('Y-m-d'),
					width: 140
				},
				{
					header: '(结束)收费日期',
					dataIndex: 'ENDDATE',
					renderer: Ext.util.Format.dateRenderer('Y-m-d'),
					width: 150
				},
				{
					header: '总帐户金额',
					dataIndex: 'ZHJE',
					width: 100
				},
				{
					header: '总自费金额',
					dataIndex: 'ZFJE',
					width: 100
				},
				{
					header: '总其他应收(医保)',
					dataIndex: 'QTYS',
					width: 140
				},
				{
					header: '总计金额',
					dataIndex: 'ZJJE',
					width: 105
				},
				{
					header: '总货币误差',
					dataIndex: 'HBWC',
					width: 100
				}

			]
		});
	//列表
		var grid = new Ext.grid.GridPanel({
			height: 470,
			store: jsonstore,
			colModel: column,
			tbar: [{
				pressed: true,
				enableToggle: true,
				text: '打印',
				id: 'print',
				iconCls: 'printing',
				handler: printGrid
			}],
		});
		//表单
		var form = new Ext.form.FormPanel({
			frame: true, 
			url: 'abc',
			title: '门诊收费结算汇总',
			style: 'margin:6px',
			items: [grid],
		});
		var win = new Ext.Window({
			title: "结算统计",
			width: 990,
			height: 600,
			minimizable: true, // 最大化
			maximizable: true, // 最小化
			frame: true,
			constrain: true, // 防止窗口超出浏览器窗口,保证不会越过浏览器边界
			buttonAlign: "center", // 按钮显示的位置 
			plain: true, // 将窗口变为半透明状态。,
			//closeAction : 'close',//这里写成 'hide'
			items: form


		});

		win.show(); 
		//打印方法
function printGrid() {
			//建jsp显示格式,初步标题以及table,<tr>行,<td>列
			var tableStr = '<table width="100%" ><caption align="top"><h2>门诊收费统计汇总单<br></caption></table><table width="100%" border=1>';
			var cm = grid.getColumnModel(); 	console.warn(cm);
			var colCount = cm.getColumnCount(); console.warn(colCount);
			var temp_obj = new Array();
			// 只下载没有隐藏的列(isHidden()为true表示隐藏,其他都为显示)
			// 临时数组,存放所有当前显示列的下标
			for (var i = 0; i < colCount; i++) { //从第三列开始,因为我的第1、2列是分别是rownumber和selectmodel。
				if (cm.isHidden(i) == true) {} else {
					temp_obj.push(i);
				}
			}
			tableStr = tableStr + '<tr><td>序号</td>';
			//
			for (var i = 0; i < temp_obj.length; i++) {
				// 显示列的列标题
				tableStr = tableStr + '<td>' + cm.getColumnHeader(temp_obj[i]) + '</td>';
			}
			//
			tableStr = tableStr + '</tr>';
			var store = grid.getStore(); 			console.warn(store);
			var recordCount = store.getCount(); 	console.warn(recordCount); //记录计数 
			//行
			for (var i = 0; i < recordCount; i++) {
				var r = store.getAt(i);
				tableStr = tableStr + '<tr><td>' + (i + 1) + '</td>';
				//列
				for (var j = 0; j < temp_obj.length; j++) {
					var dataIndex = cm.getDataIndex(temp_obj[j]); 	//标题
					var tdValue = r.get(dataIndex); 				//值
					var rendererFunc = cm.getRenderer(temp_obj[j]);
					if (rendererFunc != null) {
						tdValue = rendererFunc(tdValue);
					}
					if (tdValue == null) {
						tdValue = '';
					}
					//显示 行列对应
					tableStr = tableStr + '<td>' + tdValue + '</td>';
				}
				tableStr = tableStr + '</tr>';
			}
			tableStr = tableStr + '</table>';
			var titleHTML = tableStr; // document.getElementById("printGridfff").innerHTML;
			var newwin = window.open('printer.jsp', '', '');
			newwin.document.write(titleHTML);
			newwin.document.location.reload();
			newwin.print();
			newwin.close();
		}
	},
});
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值