* 今天在工作的时候,自己对JavaScript的操作能力比较差,修改之前的 打印功能,功能要求将默认打印本月时间改为,想打印哪一个月或者打印哪一段时间,时间由使用者筛选。*
---------------------------------------
1.本人想到的时,既然想任意打印,那么久有一个时间筛选条件,所以可以通过使用者多条件搜索时筛选的时间点来进行打印对应内容
2.通过js捕捉到搜索框的时间并且拼成链接,拿到时间进行请求后台数据,后台数据依靠时间进行条件搜索,返回值到打印页面,同时请求数据到另一个方法,进行数据统计,来完成这一功能。
代码
1.打印按钮
<shiro:hasPermission name="crm:bonusInfo:doprint">
<a id="payYmBtn" class="btn btn-primary">打印本月待付清单</a>
</shiro:hasPermission>
----------------------------------------------------------------------------------------
2.条件查询时间控件
<li>
<label>打款月:</label>
<form:input id="startmonth" onchange="time()" path="startpayYm" type="text" maxlength="20" class="input-mini Wdate" value="${currdate}" readonly="true"
onclick="WdatePicker({dateFmt:'yyyy.MM',isShowClear:false});"/>
--
<form:input id="endmoth" path="endpayYm" type="text" maxlength="20" class="input-mini Wdate" value="${currdate}"readonly="true" onclick="WdatePicker({dateFmt:'yyyy.MM',isShowClear:false});"/>
</li>
----------------------------------------------------------------------------------------
3.通过JavaScript代码得到时间并且拼接链接
<script type="text/javascript">
$("#payYmBtn").click(function(){
/* 拿到开始月的值 */
var startmonth = $("#startmonth").val();
/* 拿到链接 */
var link = "${ctx}/crm/bonusInfo/forward?startpayYm=";
/* 拼接链接开始月和打印链接 */
startlink = link + startmonth;
/* 拿到结束月 */
var endmonth = $("#endmoth").val();
/* 拼接开始月和结束月 */
printlink = startlink + "&endpayYm="+endmonth;
$("#payYmBtn").attr("href",printlink);
});
</script>
这样就实现了任意打印。
在数据库时间比较时候,尽量少用between and 会出现误差情况,所以一般是时间日期格式化进行比较
<!-- 创建时间查询条件 -->
<if test="signBeginDate !=null">
AND date_format(a.create_date,'%Y%m%d %H:%M%S') >= date_format(#{signBeginDate},'%Y%m%d %H:%M%S')
</if>
<if test="signEndDate !=null">
AND date_format(a.create_date,'%Y%m%d') <= date_format(#{signEndDate},'%Y%m%d')
</if>