📄 uireport.jsp
字号:
<%@ include file="/includes/header.jsp" %>
<%@ page import="com.sourcetap.sfa.ui.*" %>
<%@ page import="com.sourcetap.sfa.util.*" %>
<%@ page import="org.apache.commons.beanutils.*" %>
<%@ taglib uri="displaytag" prefix="display" %>
<%
String action = request.getParameter("action");
if ( (action == null ) || (action.length() < 1))
action = "start";
if ( action.equals("deleteReport") )
{
UIReport.deleteReport( request.getParameter("reportId"), delegator);
action = "start";
}
if ( action.equals("start") ) {
response.setContentType("text/html");
List availableReports = UIReport.getReports(null, userInfo.getAccountId(), userInfo.getPartyId(), delegator);
List availableReportScreens = UIReport.getAvailableReportScreens(delegator);
%>
<LINK rel="stylesheet" type="text/css" href="/sfa/css/report.css">
<TABLE>
<TBODY>
<TR><TD><BR><h3>Choose an Existing Report</h3></TD></TR>
<%
if ( (availableReports == null ) || (availableReports.size() == 0) )
out.write("<TR><TD>No Reports Available</TD></TR>\n");
else
{
%>
<TABLE class=its>
<THEAD><TR><TD>Report Name</TD><TD>Action</TD></TR></THEAD><TBODY>
<%
Iterator availableRptI = availableReports.iterator();
int i = 0;
while ( availableRptI.hasNext() )
{
i++;
String rowClass = (( i % 2 ) == 0 ) ? "even" : "odd";
GenericValue reportGV = (GenericValue) availableRptI.next();
out.write("<TR class=" + rowClass + "><TD><a href=uiReport.jsp?action=showReport&reportId=" + reportGV.getString("reportId") + ">" + reportGV.getString("reportName") + "</a></TD>");
out.write("<TD><a href=uiReport.jsp?action=deleteReport&reportId=" + reportGV.getString("reportId") + ">Remove?</a>" + "</TD></TR>\n");
}
%> </TBODY>
</TABLE>
<%
}
%>
<TR><TD><BR><BR><h3>Create a New Report</h3></TD></TR>
<%
if ( (availableReportScreens == null ) || (availableReportScreens.size() == 0) )
out.write("<TR><TD colspan=2>No Reports Available</TD></TR>\n");
else
{
%>
<TABLE class=its>
<THEAD><TR><TD>Report Type</TD></TR></THEAD>
<TBODY>
<%
Iterator availableRptI = availableReportScreens.iterator();
int i=0;
while ( availableRptI.hasNext() )
{
i++;
String rowClass = (( i % 2 ) == 0 ) ? "even" : "odd";
GenericValue screenGV = (GenericValue) availableRptI.next();
out.write("<TR class=" + rowClass + "><TD colspan=2><a href=uiReport.jsp?action=createReport§ionId=" + screenGV.getString("detailSectionId") + ">" + screenGV.getString("screenDescription") + "</a></TD></TR>\n");
}
%>
</TBODY>
</TABLE>
<%
}
%>
</TABLE>
<%
} else if ((action.equals("createReport")) || (action.equals("showReport") )) {
response.setContentType("text/html");
UIReport report = null;
String sectionId = request.getParameter("sectionId");
if ( action.equals("createReport") )
{
report = new UIReport(delegator);
report.setSectionId(sectionId);
report.setPartyId(userInfo.getAccountId());
}
else
{
String reportId = request.getParameter("reportId");
report = new UIReport(reportId, delegator);
sectionId = report.getSectionId();
}
String conditionHtml = report.getConditionHtml();
String fieldNameOptions = report.getSelectListAvailableOptions();
String selectedFieldNameOptions = report.getSelectListSelectedOptions();
String selectedOrderByOptions = report.getOrderBySelectedOptions();
%>
<LINK rel="stylesheet" type="text/css" href="/sfa/includes/maincss.css">
<SCRIPT LANGUAGE="JavaScript">
function moveSelection(fromSel, toSel){
for(x = 0;x<(fromSel.length);x++)
{
if(fromSel.options[x].selected)
{
with(toSel)
{
options[options.length] = new Option(fromSel.options[x].text,fromSel.options[x].value);
}
fromSel.options[x] = null;
x = -1;
}
}
return true;
}
function swapOptions(select, from, to) {
var swapOption = new Object();
swapOption.text = select.options[from].text;
swapOption.value = select.options[from].value;
swapOption.selected = select.options[from].selected;
swapOption.defaultSelected = select.options[from].defaultSelected;
for (var property in swapOption)
select.options[from][property] = select.options[to][property];
for (var property in swapOption)
select.options[to][property] = swapOption[property];
}
function moveSelected (select, down) {
if (select.selectedIndex != -1) {
if (down) {
if (!select.options[select.options.length - 1].selected) {
for (i=select.options.length - 2; i >= 0; i-- )
if ( select.options[i].selected )
swapOptions(select, i, i + 1)
} else
return;
}
else {
if (!select.options[0].selected) {
for (i = 1; i < select.options.length; i++ )
if ( select.options[i].selected )
swapOptions(select, i, i - 1)
} else
return;
}
}
}
function selectAll(select){
for(x=0; x<(select.length); x++){
select.options[x].selected = "true";
}
}
function preSubmitSelect(theForm) {
selectAll(theForm.selectFields)
selectAll(theForm.sortFields)
}
</script>
<form name=uiReportForm onSubmit=preSubmitSelect(this) action=uiReport.jsp>
<INPUT type=hidden name=action value=runReport>
<INPUT type=hidden name=sectionId value=<%=sectionId%>>
<TABLE>
<TR><TD><H3>Choose Fields to Display in the Report</H3></TD></TR>
<INPUT TYPE=hidden name=inpSelectFields id=inpSelectFields VALUE="">
<TR><TD>
<TABLE CLASS="freeFromSectionDisplayTable">
<TR><TD WIDTH=250 class=selectSectionLabel>Available Fields</TD>
<TD></TD>
<TD WIDTH=250 class=selectSectionLabel>Report Display Fields</TD>
<TD></TD>
<TR>
<TD><SELECT STYLE="width: 100%" name=availableSelectFields id=availableSelectFields multiple=1 size=10>
<%=fieldNameOptions%>
</SELECT>
<TD><p><img src=/sfaimages/arrow-right.gif onclick="moveSelection(availableSelectFields, selectFields);"></p>
<p><img src=/sfaimages/arrow-left.gif onclick="moveSelection(selectFields, availableSelectFields);"></P>
<TD><SELECT STYLE="width: 100%" name=selectFields id=selectFields multiple=1 size=10>
<%=selectedFieldNameOptions%>
</SELECT>
<TD VALIGN=TOP>
<p><img src=/sfaimages/arrow-up.gif onclick="moveSelected(selectFields, false);"/>
<p><img src=/sfaimages/arrow-down.gif onclick="moveSelected(selectFields, true);"/>
</TR>
</TABLE>
</TD></TR>
<TR><TD><BR><H3>Define Conditions for Which Data You want to Retrieve</H3></TD></TR>
<TR><TD><TABLE><TR><TD>
<%=conditionHtml%>
</TD></TR>
</TABLE></TD></TR>
<TR><TD><BR><h3>Select Fields to use to Sort Results</h3></TD></TR>
<INPUT TYPE=hidden name=inpSortFields id=inpSortFields VALUE="">
<TR><TD>
<TABLE CLASS="freeFromSectionDisplayTable">
<TR><TD WIDTH=250 class=selectSectionLabel>Available Fields</TD>
<TD></TD>
<TD WIDTH=250 class=selectSectionLabel>Report Sort Fields</TD>
<TD></TD>
<TR>
<TD><SELECT STYLE="width: 100%" name=availableSortFields id=availableSortFields multiple=1 size=10>
<%=fieldNameOptions%>
</SELECT>
<TD><p><img src=/sfaimages/arrow-right.gif onclick="moveSelection(availableSortFields, sortFields);"></p>
<p><img src=/sfaimages/arrow-left.gif onclick="moveSelection(sortFields, availableSortFields);"></P>
<TD><SELECT STYLE="width: 100%" name=sortFields id=sortFields multiple=1 size=10>
<%=selectedOrderByOptions%>
</SELECT>
<TD VALIGN=TOP>
<p><img src=/sfaimages/arrow-up.gif onclick="moveSelected(sortFields, false);"/>
<p><img src=/sfaimages/arrow-down.gif onclick="moveSelected(sortFields, true);"/>
</TR>
</TABLE>
</TD></TR>
</TABLE>
<input type=hidden name=publicFlag value=Y>
Save Report As: <input name=reportName value='' size=25> <input type=submit value="Run/SaveReport">
</form>
<%
} else if ( action.equals("runReport") )
{
response.setContentType("application/pdf");
String sectionId = request.getParameter("sectionId");
UIReport report = new UIReport(delegator);
report.setSectionId(sectionId);
boolean loaded = report.loadQueryInfo(request, response, uiCache);
if ( !loaded )
out.write("<BR><H1>Error loading Report</H1><BR>\n");
else
{
String reportName = request.getParameter("reportName");
String publicFlag = request.getParameter("publicFlag");
if ( (reportName != null) && ( reportName.length() > 0))
{
report.setReportName(reportName);
report.setPublicFlag(publicFlag);
report.setPartyId(userInfo.getAccountId());
report.saveReport();
}
List results = null;
try {
List resultGVL = report.runReport(userInfo, 1000);
List selectFieldLabels = report.getSelectFieldLabels();
List selectFieldNames = report.getSelectFieldNames();
request.setAttribute("results", resultGVL);
response.setContentType("text/html");
%>
<LINK rel="stylesheet" type="text/css" href="/sfa/css/report.css">
<BR><BR>
<CENTER>
<display:table name="results" export="true" sort="list" pagesize="30" requestURI="uiReport.jsp" class="its">
<display:setProperty name="export.csv.include_header" value="true" />
<display:setProperty name="export.excel.include_header" value="true" />
<display:setProperty name="export.csv.filename" value="data.csv" />
<display:setProperty name="export.excel.filename" value="data.xls" />
<%
for ( int i=0; i < selectFieldNames.size(); i++ ) {
%>
<display:column property="<%=(String) selectFieldNames.get(i)%>" title="<%=(String) selectFieldLabels.get(i)%>" sortable="true" headerClass="sortable"/>
<% } %>
</display:table>
</CENTER>
<% } catch (Exception e) {
Debug.logError("Error on Report: " + e.getMessage(), "uiReport");
e.printStackTrace();
out.write("Unable to run report:" + e.getMessage());
}
}
}
%>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -