public
ActionForward download(ActionMapping mapping, ActionForm form,
HttpServletRequest request, HttpServletResponse response)
throws Exception {
this .initActionAttributes(request);
// System.out.println(uploadForm.getFile().getFileName()+"--size is --"+uploadForm.getFile().getFileSize());
String tables = new String(request.getParameter( " TABLE_NAME " ).getBytes( " ISO8859_1 " ));
String table = new String(request.getParameter( " TABLE " ).getBytes( " ISO8859_1 " ));
String con = new String(request.getParameter( " SQL_COND " ).getBytes( " ISO8859_1 " ));
String col = new String(request.getParameter( " TITLE_CODE " ).getBytes( " ISO8859_1 " ));
String colName = new String(request.getParameter( " TITLE_NAME " ).getBytes( " ISO8859_1 " ));
String rowNum = new String(request.getParameter( " ROW_NUM " ).getBytes( " ISO8859_1 " ));
String[] columnName = colName.split( " , " );
StringBuffer sb = new StringBuffer();
sb.append( " select " ).append(col).append( " from " ).append(tables).append( " where " ).append(con).append( " order by (cust.BUSY_IN_CALL_DURATION + cust.IDLE_IN_CALL_DURATION) desc fetch first " + rowNum + " rows only " );
StringBuffer updateSql = new StringBuffer();
updateSql.append( " update " ).append(table).append( " set DOWNLOAD_MARK=1,DOWNLOAD_TIME=current Date where comp_product_no in(select cust.comp_product_no from DMCF_cust_ms cust " ).append( " where " ).append(con).append( " order by (cust.BUSY_IN_CALL_DURATION + cust.IDLE_IN_CALL_DURATION) desc fetch first " + rowNum + " rows only) " );
String fileName = " CustInfo " +
new SimpleDateFormat( " yyyyMMddHHmmss " ).format( new java.util.Date()) + " .csv " ;
PrintWriter pw = null ;
Sqlca m_Sql = null ;
// 保存到客户机上
response.setContentType( " application/octet-stream; charset=gbk " );
response.setHeader( " Content-disposition " , " attachment; filename=" " + fileName + " " " );
PrintWriter out1 = null ;
try {
pw = new PrintWriter( new FileOutputStream(fileName));
out1 = response.getWriter();
// 标题vector
Vector titleVector = new Vector();
for ( int i = 0 ; i < columnName.length; i ++ ) {
titleVector.add(columnName[i]);
}
for ( int j = 0 ; j < titleVector.size(); j ++ ) {
out1.print( new String(String.valueOf(titleVector.elementAt(j)).getBytes( " gbk " )));
if (j == titleVector.size() - 1 )
out1.println();
else
out1.print( " , " );
out1.flush();
}
m_Sql = new Sqlca( new ConnectionEx(Const.DATASOURCE));
m_Sql.execute(sb.toString());
String tmpStr;
while (m_Sql.next()) {
for ( int j = 1 ; j <= titleVector.size(); j ++ ) {
tmpStr = "" + m_Sql.getString(j);
out1.write( new String(tmpStr.getBytes( " gbk " )));
if (j == titleVector.size())
out1.println();
else
out1.print( " , " );
}
out1.flush();
}
m_Sql.execute(updateSql.toString());
m_Sql.commit();
} catch (Exception exception) {
m_Sql.rollback();
if (m_Sql != null )m_Sql.closeAll();
exception.printStackTrace();
} finally {
if (m_Sql != null )m_Sql.closeAll();
}
return mapping.findForward( " initAction " );
}
HttpServletRequest request, HttpServletResponse response)
throws Exception {
this .initActionAttributes(request);
// System.out.println(uploadForm.getFile().getFileName()+"--size is --"+uploadForm.getFile().getFileSize());
String tables = new String(request.getParameter( " TABLE_NAME " ).getBytes( " ISO8859_1 " ));
String table = new String(request.getParameter( " TABLE " ).getBytes( " ISO8859_1 " ));
String con = new String(request.getParameter( " SQL_COND " ).getBytes( " ISO8859_1 " ));
String col = new String(request.getParameter( " TITLE_CODE " ).getBytes( " ISO8859_1 " ));
String colName = new String(request.getParameter( " TITLE_NAME " ).getBytes( " ISO8859_1 " ));
String rowNum = new String(request.getParameter( " ROW_NUM " ).getBytes( " ISO8859_1 " ));
String[] columnName = colName.split( " , " );
StringBuffer sb = new StringBuffer();
sb.append( " select " ).append(col).append( " from " ).append(tables).append( " where " ).append(con).append( " order by (cust.BUSY_IN_CALL_DURATION + cust.IDLE_IN_CALL_DURATION) desc fetch first " + rowNum + " rows only " );
StringBuffer updateSql = new StringBuffer();
updateSql.append( " update " ).append(table).append( " set DOWNLOAD_MARK=1,DOWNLOAD_TIME=current Date where comp_product_no in(select cust.comp_product_no from DMCF_cust_ms cust " ).append( " where " ).append(con).append( " order by (cust.BUSY_IN_CALL_DURATION + cust.IDLE_IN_CALL_DURATION) desc fetch first " + rowNum + " rows only) " );
String fileName = " CustInfo " +
new SimpleDateFormat( " yyyyMMddHHmmss " ).format( new java.util.Date()) + " .csv " ;
PrintWriter pw = null ;
Sqlca m_Sql = null ;
// 保存到客户机上
response.setContentType( " application/octet-stream; charset=gbk " );
response.setHeader( " Content-disposition " , " attachment; filename=" " + fileName + " " " );
PrintWriter out1 = null ;
try {
pw = new PrintWriter( new FileOutputStream(fileName));
out1 = response.getWriter();
// 标题vector
Vector titleVector = new Vector();
for ( int i = 0 ; i < columnName.length; i ++ ) {
titleVector.add(columnName[i]);
}
for ( int j = 0 ; j < titleVector.size(); j ++ ) {
out1.print( new String(String.valueOf(titleVector.elementAt(j)).getBytes( " gbk " )));
if (j == titleVector.size() - 1 )
out1.println();
else
out1.print( " , " );
out1.flush();
}
m_Sql = new Sqlca( new ConnectionEx(Const.DATASOURCE));
m_Sql.execute(sb.toString());
String tmpStr;
while (m_Sql.next()) {
for ( int j = 1 ; j <= titleVector.size(); j ++ ) {
tmpStr = "" + m_Sql.getString(j);
out1.write( new String(tmpStr.getBytes( " gbk " )));
if (j == titleVector.size())
out1.println();
else
out1.print( " , " );
}
out1.flush();
}
m_Sql.execute(updateSql.toString());
m_Sql.commit();
} catch (Exception exception) {
m_Sql.rollback();
if (m_Sql != null )m_Sql.closeAll();
exception.printStackTrace();
} finally {
if (m_Sql != null )m_Sql.closeAll();
}
return mapping.findForward( " initAction " );
}