userreportform.jsp
来自「Java的框架」· JSP 代码 · 共 274 行
JSP
274 行
<%@ include file="/common/taglibs.jsp"%>
<%@ page import="java.util.*" %>
<%@ page import="mcap.core.reporting.model.ReportParameter" %>
<c:url var="actionUrl" value="/userReport." />
<c:set var="format" value="${param.format}" />
<c:if test="${empty format}">
<c:set var="format" value="html" />
</c:if>
<html>
<head>
<title><fmt:message key="userReportForm.title"/></title>
<content tag="heading">
<fmt:message key="userReportForm.heading"/>
</content>
<script type="text/javascript" src="<c:url value='/scripts/selectbox.js'/>"></script>
</head>
<script type="text/javascript" language="JavaScript">
<!--
function generateReport(format){
document.userReportForm.format.value=format;
document.userReportForm.action='<c:out value="${actionUrl}" />' + format;
//document.userReportForm.submit();
}
function isValidDate(day, month, year) {
if (month < 1 || month > 12) {
return false;
}
if (day < 1 || day > 31) {
return false;
}
if ((month == 4 || month == 6 || month == 9 || month == 11) && (day == 31)) {
return false;
}
if (month == 2) {
var leap = (year % 4 == 0 && (year % 100 != 0 || year % 400 == 0));
if (day>29 || (day == 29 && !leap)) {
return false;
}
}
return true;
}
var reInteger = /^\d+$/
function isInteger (s) {
if (isEmpty (s))
return false;
return reInteger.test(s)
}
var reFloat = /^((\d+(\.\d*)?)|((\d*\.)?\d+))$/;
function isFloat (s) {
if (isEmpty(s))
return false;
return reFloat.test(s)
}
function isEmpty (s) {
return ((s == null) || (s.length == 0))
}
function isBoolean (s) {
return ((s == "true") || (s.length == "false"))
}
function validate(ctl,valueType){
//Disable client script validation
return true;
var value = ctl.value;
if (valueType == "java.lang.Boolean"){
if (!isBoolean(value)){
alert("errors.validate.boolean");
return false;
}
}else if (valueType == "java.util.Date"){
if (!isBoolean(value)){
alert("errors.validate.date");
return false;
}
}else if (valueType == "java.lang.Double"){
if (!isFloat(value)){
alert("errors.validate.double");
return false;
}
}else if (valueType == "java.lang.Float"){
if (!isFloat(value)){
alert("errors.validate.float");
return false;
}
}else if (valueType == "java.lang.Integer"){
if (!isInteger(value)){
alert("errors.validate.integer");
return false;
}
}else if (valueType == "java.lang.Long"){
if (!isInteger(value)){
alert("errors.validate.long");
return false;
}
}else if (valueType == "java.lang.Short"){
if (!isInteger(value)){
alert("errors.validate.short");
return false;
}
}else if (valueType == "java.lang.Number"){
if ((!isInteger(value)) || (!isFloat(value))){
alert("errors.validate.number");
return false;
}
}
return true;
}
//--></script>
<body>
<!-- If page return with error, as a result of failure in parameter validation, the content of
the page should not be shown and only error message will be displayed and a link for closing
the form. The is because the submission of this page will pop another new window, thus
in event of error, the same form should not be displayed.
Otherwise the normal form for parameter input will be displayed.
-->
<c:choose>
<c:when test="${not empty errors}">
<a href="javascript:window.close();">Close</a>
</c:when>
<c:otherwise>
<span id="message"><c:out value="${message}"/></span>
<div class="separator"></div>
<spring:bind path="report.*">
<c:if test="${not empty status.errorMessages}">
<div class="error">
<c:forEach var="error" items="${status.errorMessages}">
<img src="<c:url value="/images/iconWarning.gif"/>"
alt="<fmt:message key="icon.warning"/>" class="icon" />
<c:out value="${error}" escapeXml="false"/><br />
</c:forEach>
</div>
</c:if>
</spring:bind>
<form method="post" action="<c:out value="${actionUrl}${format}"/>" id="userReportForm" name="userReportForm">
<input type="hidden" name="from" value="<c:out value="${param.from}"/>" />
<input type="hidden" name="reportName" value="<c:out value="${param.reportName}"/>" />
<input type="hidden" name="format" value="<c:out value="${format}"/>" />
<spring:bind path="report.description">
<input type="hidden" id="<c:out value="${status.expression}"/>"
name="<c:out value="${status.expression}"/>"
value="<c:out value="${status.value}"/>">
</spring:bind>
<spring:bind path="report.sourceFile">
<input type="hidden" id="<c:out value="${status.expression}"/>"
name="<c:out value="${status.expression}"/>"
value="<c:out value="${status.value}"/>">
</spring:bind>
<spring:bind path="report.version">
<input type="hidden" id="<c:out value="${status.expression}"/>"
name="<c:out value="${status.expression}"/>"
value="<c:out value="${status.value}"/>">
</spring:bind>
<spring:bind path="report.jndiDataSourceName">
<input type="hidden" id="<c:out value="${status.expression}"/>"
name="<c:out value="${status.expression}"/>"
value="<c:out value="${status.value}"/>">
</spring:bind>
<table width="100%">
<tr>
<td width="80%" valign="top">
<spring:bind path="report.name">
<input type="hidden" id="<c:out value="${status.expression}"/>"
name="<c:out value="${status.expression}"/>"
value="<c:out value="${status.value}"/>">
<h2><c:out value="${status.value}"/></h2>
</spring:bind>
</td>
<!--
<td width="20%" align="right">
<a href="#" onclick="javascript:generateReport('pdf');" title="<fmt:message key="title.report.pdf"/>">
<img src="<c:url value="/images/l_pdf.gif" />" class="icon" border="1"/>
</a>
<a href="#" onclick="javascript:generateReport('xls');" title="<fmt:message key="title.report.xls"/>">
<img src="<c:url value="/images/l_xls.gif" />" class="icon" border="1"/>
</a>
<a href="#" onclick="javascript:generateReport('html');" title="<fmt:message key="title.report.html"/>">
<img src="<c:url value="/images/l_html.gif" />" class="icon" border="1"/>
</a>
</td>
-->
</tr>
</table>
<c:if test="${empty reportParamList}">
<p><fmt:message key="note.param.notreq" />
</c:if>
<c:if test="${!empty reportParamList}">
<p><fmt:message key="userReportForm.reportParameter" />:<br><br>
<table class="detail" width="100%">
<c:forEach var="reportParam" items="${reportParamList}">
<tr>
<td width="15%" valign="top">
<c:out value="${reportParam.name}"/>
<input type="hidden" id="_<c:out value="${reportParam.name}"/>_valueClassName"
name="_<c:out value="${reportParam.name}"/>_valueClassName"
value="<c:out value="${reportParam.valueClassName}"/>">
</td>
<td width="10%" valign="top" align="right">
<c:set var="valueClassName" value="${reportParam.valueClassName}" />
<c:if test="${reportParam.valueClassName == 'java.lang.Boolean'}" >
<c:set var="valueClassName" value="boolean" />
</c:if>
<c:if test="${reportParam.valueClassName == 'java.util.Date'}" >
<c:set var="valueClassName" value="date" />
</c:if>
<c:if test="${reportParam.valueClassName == 'java.lang.Double'}" >
<c:set var="valueClassName" value="decimal" />
</c:if>
<c:if test="${reportParam.valueClassName == 'java.lang.Float'}" >
<c:set var="valueClassName" value="decimal" />
</c:if>
<c:if test="${reportParam.valueClassName == 'java.lang.Integer'}" >
<c:set var="valueClassName" value="number" />
</c:if>
<c:if test="${reportParam.valueClassName == 'java.lang.Long'}" >
<c:set var="valueClassName" value="number" />
</c:if>
<c:if test="${reportParam.valueClassName == 'java.lang.Short'}" >
<c:set var="valueClassName" value="number" />
</c:if>
<c:if test="${reportParam.valueClassName == 'java.lang.Number'}" >
<c:set var="valueClassName" value="number" />
</c:if>
<c:if test="${reportParam.valueClassName == 'java.lang.String'}" >
<c:set var="valueClassName" value="string" />
</c:if>
[<c:out value="${valueClassName}"/>]
</td>
<td width="25%" valign="top">
<input type="text" id="_<c:out value="${reportParam.name}"/>"
name="_<c:out value="${reportParam.name}"/>"
value="<c:out value="${reportParam.value}"/>" size="30"
onchange="validate(this,'<c:out value="${reportParam.valueClassName}"/>')">
</td>
<td width="50%" valign="top">
<i>
<c:if test="${empty reportParam.description}">
(<fmt:message key="note.desciption.na"/>)
</c:if>
<c:if test="${!empty reportParam.description}">
(<c:out value="${reportParam.description}"/>)
</c:if>
</td>
</tr>
</c:forEach>
</table><br>
<p><fmt:message key="userReportForm.reportFormat" />:<br>
<table class="detail" >
<tr>
<td>
<input type="radio" name="formatOption" value="0" onclick="javascript:generateReport('html');" checked >
<img src="<c:url value="/images/html.gif" />" class="icon" />
<input type="radio" name="formatOption" value="1" onclick="javascript:generateReport('pdf');" >
<img src="<c:url value="/images/pdf.gif" />" class="icon" />
<input type="radio" name="formatOption" value="2" onclick="javascript:generateReport('xls');" >
<img src="<c:url value="/images/xls.gif" />" class="icon" />
</td>
</tr>
</table><br><br>
<input type="submit" class="button" name="ok" onclick="document.userReportForm.target='_blank';bCancel=false;" value="<fmt:message key="button.ok"/>" >
</c:if>
<input type="submit" class="button" name="cancel" onclick="document.userReportForm.target=null;bCancel=true;" value="<fmt:message key="button.cancel"/>" >
</form>
</c:otherwise>
</c:choose>
</body>
</html>
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?