在前端点击打印后,需要根据参数值、模板、数据源
实现解析数据源、生成SQL、读取数据源、解析word模板、识别占位符与约定标识符、识别模板样式(字体尺寸颜色等)、填充数据。
用来保存前端配置的表结构大概这样


前端提交的配置数据类似这样
{
	template:1						 //模板
	datasources:[{                   //数据源
		name:'数据源名称'
		tables:[{
			table:'hr_department'    //数据源-关联表名
			join:'left'              //连接方式(inner:内连接, left:左连接 ,right:右连接)
			relations:[{             //关联条件
				join:'and'                         //关联方式(可选and,or,ors)
				column:'id'                        //列名
				compare:10                         //比较运算符
				value:null                         //常量值或变量(二选一)
				relattion_table:'hr_employee'      //比较表名(二选一)
				relattion_column:'department_id'   //比较列名
			}] //end-relattions
		}] //end-tables
		
		,conditions:[{                             //过滤条件
			join:'and'
			table:'hr_employee'
			column:'type_id'
			compare:10
			value:100							    //常量值或变量
		}]//end-conditions
		,havings:[{									//分组过滤条件
			join:'and'
			method:'sum'
			table:'hr_employee'
			column:'type_id'
			compare:10
			value:100							    //常量值或变量
		}]//end-havings
		,orders:[{						   			//排序
			table:'hr_employee'
			column:'type_id'
			type:'ASC'
		}]
		,groups:[{						   			//分组
			table:'hr_employee'
			column:'type_id'
		}]
	}] //end-datasources
}
把以上参数保存到各自的表中。
关于于常量值或变量
常量就不用说了配置时直接提供值
变量分内置变量和配置变量
内置变量应该提交约定好
一般有两类
1.后台约定或数据库约定,如{id}或{pk}表示主表的主键
2.前端约定,一般固定在url参数中附带,如