⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 uireport.jsp

📁 国外的一套开源CRM
💻 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&sectionId=" + 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 + -