哦,不用什么JAVA技术,你把他作成个打包文件,到时连接再他上面时,他就自动下载了。你试试。
解决方案 »
- JAVA中乱码问题!!!!!!
- struts+hibernate为什么操作一会就提示cannot open connection
- 菜鸟第一次发言,用jstl解析xml出现异常,谁能帮我看看啊谢谢啊
- 奇怪!很奇怪!!太奇怪了~!!同志们看看这段代码,把我整晕了~!
- js可不可以让一个iframe在一定时间内刷新并只刷新一次(或指定次数)?
- 如何应用Session开发非Web终端
- 急!层如何根据鼠标的位置动?
- java实现ckeditor编辑器粘贴word内容,word里面图片默认上传
- 求一个jsp使用import一个类进行数据库连接的例子
- 请问Jbuilder5和ViusalAge for Java哪个开发工具更好
- jsp生成txt
- 9ias jdeveloper的下载网址
reponse.sendRedirect(pathname+filename);
pathname+filename 需要下载的文件全路经。实施
package dsgl.file; import java.sql.*;
import java.util.*;
import dsgl.basic.*;
import dsgl.database.*;
import dsgl.include.*; /**
* 数据导出模块.
* <p>CreateTime:2003-7-6
* @author Avenger
* @version 1.0
*/ public class ExportFile extends dsgl.database.LinkSQL { private String strNr=new String();
ResultSet rs=null;
OutString os=new OutString(); /**
* 构造函数
* @throws SQLException
*/
public ExportFile() throws SQLException { }
/**
* 表内容导出
* @param sql sql语句
* @return 执行成功返回表内容,否则返回空
*/
public String ExportNr(String sql) {
try {
openConnect();
rs=executeQuery(sql);
//ResultSetMetaData rsmd = rs.getMetaData();
//int intCols = rsmd.getColumnCount();
String strTemp="";
while (rs.next())
{
//for (int i=1;i<=intCols;i++)
//{
//switch (rsmd.getColumnType(i))
//{
//case Types.DATE:
// strTemp=rs.getDate(i).toString();
// break;
//default:
strTemp=rs.getString(1);
//} //end switch
strNr+=strTemp;
//if (i==intCols)
//{
strNr+="\r\n";
//}else{
//strNr+=",";
//} //end if
//}//end for
} //end while
rs.close();
} catch (Exception e) {
System.out.println(sql);
} finally {
return strNr;
}
} }
2.index.jsp
<%@ page import="java.sql.*"%>
<%@page contentType="text/html; charset=gb2312"%>
<jsp:useBean id="conn" scope="page" class="dsgl.database.LinkSQL"/>
<jsp:useBean id="jsp" scope="page" class="dsgl.include.OutString"></jsp:useBean>
<html> <head>
<meta http-equiv="Content-Language" content="zh-cn">
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<LINK href="/include/css.css" REL="stylesheet" type="text/css">
<script language="Javascript" src="/include/mydate.js"></script>
<title>预算收入日报表查询</title> </head>
<%
ResultSet rsA=null;
String strSql="";
String yhbm=(String)session.getAttribute("yhbm");
String ksbm=(String)session.getAttribute("ksbm");
%>
<body>
<H3 ALIGN="CENTER">预算收入日报表查询</H3>
<form method="POST" action="cx_resule.jsp">
<table border="0" width="500" cellspacing="0" cellpadding="0" ALIGN="CENTER">
<tr>
<td width="100" align="right">收款国库:</td>
<td>
<select size="1" name="skgk">
<%
String strDw="";
strSql="select * from dm_jg order by jg_dm";
rsA=conn.executeQuery(strSql);
while (rsA.next()) {
strDw+="<option value='"+rsA.getString("jg_dm")+"'>"+jsp.convert(rsA.getString("jg_mc"))+"</option>";
out.println("<option value='"+rsA.getString("jg_dm")+"'>"+jsp.convert(rsA.getString("jg_mc"))+"</option>");
}
rsA.close();
%>
</select>
</td>
</tr>
<tr>
<td width="100" align="right">目的国库:</td>
<td>
<select size="1" name="mdgk">
<option selected value="all">全部</option>
<%
out.println(strDw);
%>
</select>
</td>
</tr>
<tr>
<td width="100" align="right">所属国库:</td>
<td>
<select size="1" name="ssgk">
<option selected value="all">全部</option>
<%
out.println(strDw);
%>
</select>
</td>
</tr>
<tr>
<td width="100" align="right">预算级次:</td>
<td>
<select size="1" name="ysjc">
<option selected value="all">全部</option>
<option value='0'>0</option>
<option value='1'>中央</option>
<option value='2'>省</option>
<option value='3'>市</option>
<option value='4'>县</option>
<option value='5'>乡</option>
</select>
</td>
</tr>
<tr>
<td width="100" align="right">预算科目:</td>
<td>
<select size="1" name="yskm">
<option selected value="all">全部</option>
<%
strSql="select * from dm_yskm order by yskm_dm";
rsA=conn.executeQuery(strSql);
while (rsA.next()) {
out.println("<option value='"+rsA.getString("yskm_dm")+"'>"+jsp.convert(rsA.getString("yskm_mc"))+"</option>");
}
rsA.close();
%>
</select>
</td>
</tr>
<tr>
<td width="100" align="right">预算种类:</td>
<td><select size="1" name="yszl">
<option selected value="all">全部</option>
<option value="1">预算内</option>
<option value="2">预算外</option>
</select></td>
</tr>
<tr>
<td width="100" align="right">报表范围:</td>
<td><select size="1" name="bbfw">
<option value="0">本级</option>
<option value="1">全辖</option>
</select></td>
</tr>
<tr>
<td width="100" align="right">帐务日期:</td>
<td><input type="text" name="zwrq_s" size="10"><input type="button" value="↓" onclick="dateShow(zwrq_s);"> 至 <input type="text" name="zwrq_e" size="10"><input type="button" value="↓" onclick="dateShow(zwrq_e);"></td>
</tr>
<tr>
<td colspan="2">
<p align="center"> </p>
</td>
</tr>
<tr>
<td colspan="2">
<p align="center"><input type="submit" value="提交" name="B1">
<input type="reset" value="全部重写" name="B2"><input type="button" value="返 回" onclick="history.back();"></p>
</td>
</tr>
</table>
<%
conn.close();
%>
</form> </body>
</html>
<%@page contentType="text/html; charset=gb2312"%>
<%@page language="java" import="java.sql.*" %>
<jsp:useBean id="jsp" scope="page" class="dsgl.include.OutString"></jsp:useBean>
<jsp:useBean id="conn" scope="page" class="dsgl.database.LinkSQL"/>
<html>
<head>
<title>Untitled Document</title>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<LINK href="/include/css.css" REL="stylesheet" type="text/css">
<script language="Javascript" src="/include/mydate.js"></script>
</head>
<% int i=0;
ResultSet rsA;
String strSql="";
String strSqlTemp="";
String strSqlCd=""; //传递用 String strskgk =request.getParameter("skgk"); //收款国库
String strmdgk =request.getParameter("mdgk"); //目的国库
String strssgk =request.getParameter("ssgk"); //所属国库
String strysjc =request.getParameter("ysjc"); //预算级次
String stryskm =request.getParameter("yskm"); //预算科目
String stryszl =request.getParameter("yszl"); //预算种类 1预算内,2预算外
String strbbfw =request.getParameter("bbfw"); //报表范围 0本级 1全辖
String strzwrq_s=request.getParameter("zwrq_s"); //帐务日期 S
String strzwrq_e=request.getParameter("zwrq_e"); //帐务日期 E
java.util.Date date=new java.util.Date();
java.text.SimpleDateFormat sdf = new java.text.SimpleDateFormat("yyyy-MM-dd");
strSql="select a.*,b.gkf_mc as skgk,c.gkf_mc as mdgk,d.gkf_mc as ssgk,e.yskm_mc from sk_bb_1 a,dm_gkbm b,dm_gkbm c,dm_gkbm d,dm_yskm e where a.skgkdm=b.gkf_dm(+) and a.mdgkdm=c.gkf_dm(+) and a.ssgkdm=d.gkf_dm(+) and a.kmdm=e.yskm_dm(+)"; strSqlTemp+=" and a.skgkdm='"+strskgk+"'";
strSqlTemp+=""; //预留附属条件
//out.println(strSql);
if (strmdgk!=null && !strmdgk.equalsIgnoreCase("all")) strSqlTemp+=" and a.mdgkdm='"+strmdgk+"'";
if (strssgk!=null && !strssgk.equalsIgnoreCase("all")) strSqlTemp+=" and a.ssgkdm='"+strssgk+"'";
if (strysjc!=null && !strysjc.equalsIgnoreCase("all")) strSqlTemp+=" and a.ysjc='"+strysjc+"'";
if (stryskm!=null && !stryskm.equalsIgnoreCase("all")) strSqlTemp+=" and a.kmdm='"+stryskm+"'";
if (stryszl!=null && !stryszl.equalsIgnoreCase("all")) strSqlTemp+=" and a.yszl="+stryszl+"";
if (strbbfw!=null && !strbbfw.equalsIgnoreCase("all")) strSqlTemp+=" and a.bbfw="+strbbfw+"";
if (strzwrq_s!=null && strzwrq_s.length()>0 && strzwrq_e!=null && strzwrq_e.length()>0) strSqlTemp+=" and a.zwrq between to_date('"+strzwrq_s+"','yyyy-mm-dd') and to_date('"+strzwrq_e+"','yyyy-mm-dd')";
strSql+=strSqlTemp;
strSqlCd="select a.skgkdm||','||a.mdgkdm||','||a.ssgkdm||','||a.ysjc||','||a.jgdm||','||a.kmdm||','||to_char(a.zwrq,'YYYY-MM-DD')||','||a.yszl||','||a.rlj||','||a.ylj||','||a.nlj from sk_bb_1 a where 1=1" + strSqlTemp;
//out.println(strSql);
//out.println(strSqlCd);
rsA=conn.executeQuery(strSql);
%>
<body bgcolor="#FFFFFF" text="#000000">
<H3 ALIGN="CENTER">预算收入日报表查询结果</H3>
<table border="1" width="98%" bordercolorlight="#000000" bordercolordark="#000000" cellspacing="0" cellpadding="0" align="center">
<tr class="tr" align="center">
<td>收款国库</td>
<td>目的国库</td>
<td>所属国库</td>
<td>预算级次</td>
<td>预算科目</td>
<td>预算种类</td>
<td>帐务日期</td>
<td>日累计</td>
<td>月累计</td>
<td>年累计</td>
</tr>
<% while (rsA.next()) { i=i+1; %>
<tr>
<td nowrap><%=jsp.convert(rsA.getString("skgk"))%></td>
<td nowrap><%=jsp.convert(rsA.getString("mdgk"))%></td>
<td nowrap><%=jsp.convert(rsA.getString("ssgk"))%></td>
<td nowrap ALIGN="CENTER"><%=rsA.getString("ysjc")%></td>
<td nowrap><%=rsA.getString("kmdm")+" "+jsp.convert(rsA.getString("yskm_mc"))%></td>
<td nowrap ALIGN="CENTER"><%=(rsA.getInt("yszl")==1?"预算内":"预算外")%></td>
<td nowrap ALIGN="CENTER"><%=rsA.getDate("zwrq")%></td>
<td nowrap ALIGN="RIGHT"><%=rsA.getString("rlj")%></td>
<td nowrap ALIGN="RIGHT"><%=rsA.getString("ylj")%></td>
<td nowrap ALIGN="RIGHT"><%=rsA.getString("nlj")%></td>
</tr>
<%}%>
</table>
<%
rsA.close();
conn.close();
%>
<FORM METHOD=POST ACTION="export.jsp" target="frameExp">
<input type="hidden" value="<%=strbbfw%>" name="fw">
<input type="hidden" value="<%=strskgk%>" name="dw">
<input type="hidden" value="<%=strSqlCd%>" name="sql">
<p align="center"><input type="submit" value="下 载" ><input type="button" value="返 回" onclick="history.back();"></p>
</FORM>
<iframe name="frameExp" width=200 height=200 style="display:none" border=0 frameborder=0 framespacing=0 marginheight=0 marginwidth=0></iframe>
</body>
</html>
4.export.jsp
<%@ page import="java.sql.*"%>
<%@ page import=" java.io.*"%>
<jsp:useBean id="Exp" scope="page" class="dsgl.file.ExportFile"/>
<%
String strSql=request.getParameter("sql");
String res=Exp.ExportNr(strSql);
String strskgk=request.getParameter("dw");
String strbbfw=request.getParameter("fw");
String headpath=request.getRealPath("/");
java.util.Date date=new java.util.Date();
java.text.SimpleDateFormat rq = new java.text.SimpleDateFormat("yyyyMMdd"); String filename = "s"+strskgk; // 收款国库
//报表定义
//0、总额分成报表
//1、预算收入报表
//2、支出报表
//3、调拨收入报表
//4、共享分成报表
//6、收入退库报表
//7、预算收入对帐报表
//8、收入税票
//y、月调整期报表
//c、财政库存报表
//f、分户对帐单
//t、退库凭证
//z、支出凭证
filename+="_1"; // 报表名称
filename+=strbbfw; // 报表范围
filename+=rq.format(date); // 日期
filename+=".txt";
File file=new File(headpath+"/tempfile/"+filename);
file.delete();
if (res!=null) {
FileWriter fw=new FileWriter(headpath+"/tempfile/"+filename,true);
String writeStr="";
writeStr=res;
fw.write(writeStr,0,writeStr.length());
fw.flush();
response.reset(); fw.close(); response.setContentType("application/octet-stream");
response.setHeader("Content-disposition", "attachment; filename=" + filename);
BufferedInputStream bis = null;
BufferedOutputStream bos = null;
try
{
FileInputStream fis = new FileInputStream(headpath+"/tempfile/"+filename);
bis = new BufferedInputStream(fis);
bos = new BufferedOutputStream(response.getOutputStream());
byte abyte0[] = new byte[2048];
int i;
while((i = bis.read(abyte0, 0, abyte0.length)) >0)
bos.write(abyte0, 0, i);
}
catch(IOException ioexception)
{
ioexception.getMessage();
throw ioexception;
}
finally
{
if(bis != null)
bis.close();
if(bos != null)
bos.close();
file.delete();
}
}else{
out.println("<SCRIPT LANGUAGE=\"JavaScript\">");
out.println("alert('Error');");
out.println("</SCRIPT>");
}
%>