8fd40c0dd83442010d6d343fe08a3cd535a3e88a.svn-base 1.9 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950
  1. package xin.glue.ui.common.blob;
  2. import java.io.BufferedInputStream;
  3. import java.io.InputStream;
  4. import java.io.OutputStream;
  5. import java.util.zip.GZIPInputStream;
  6. import javax.servlet.http.HttpServletRequest;
  7. import javax.servlet.http.HttpServletResponse;
  8. import javax.servlet.jsp.JspWriter;
  9. import javax.servlet.jsp.PageContext;
  10. import com.posdata.glue.biz.constants.PosBizControlConstants;
  11. import com.posdata.glue.biz.control.PosBizProvider;
  12. import com.posdata.glue.context.PosContext;
  13. import com.posdata.glue.dao.vo.PosRow;
  14. import com.posdata.glue.dao.vo.PosRowSet;
  15. import com.posdata.glue.web.control.PosWebConstants;
  16. public class PosExcelManager extends PosBolbManager {
  17. public PosExcelManager(HttpServletRequest request,
  18. HttpServletResponse response, JspWriter out, PageContext pageContext) {
  19. super(request, response, out, pageContext);
  20. }
  21. protected void setContext(OutputStream os) throws Exception {
  22. PosContext context = new PosContext();
  23. request.setAttribute(PosWebConstants.CONTEXT, context);
  24. context.put(PosBizControlConstants.SERVICE_NAME, "Excel-Template-service");
  25. context.put("TMPL_NM", request.getParameter("template"));
  26. PosBizProvider.getController().doAction(context);
  27. PosRowSet rowSet = (PosRowSet)context.get("ListResult_0");
  28. if (rowSet == null || !rowSet.hasNext()) return;
  29. PosRow row = rowSet.next();
  30. InputStream in = (InputStream)row.getAttribute("TMPL_CONTENT");
  31. if (in == null) return;
  32. String clsName = (String)row.getAttribute("JAVA_CLASS");
  33. if (clsName == null) return;
  34. PosExcelInterface excelInferface = (PosExcelInterface)Class.forName(clsName).newInstance();
  35. excelInferface.setData(dataList, new BufferedInputStream(new GZIPInputStream(in)), os,
  36. Integer.parseInt(row.getAttribute("DATA_ROW").toString()),
  37. Integer.parseInt(row.getAttribute("PAGE_SIZE").toString()));
  38. excelInferface = null;
  39. dataList.clear();
  40. in.close();
  41. }
  42. }