首页 新闻 论坛 群组 Blog 文档 下载 读书 Tag 网摘 搜索 .NET Java 游戏 视频 人才 外包 培训 数据库 书店 程序员
中国软件网
欢迎您:游客 | 登录 注册 帮助
  • [300分求解,在线等!!!]如何开启新页面进行打印? [无满意答案结贴,结贴人:nsqsmile]
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • nsqsmile
    • 等级:
    • 可用分等级:
    • 总技术专家分:
    • 总技术专家分排名:
    • 揭帖率:
    发表于:2007-10-12 12:52:31 楼主
    页面1中有一按钮,点击后进行业务处理并生成打印方法的参数,同时开启页面2,需要根据页面1生成的参数生成打印数据。

    我有一思路:点击页面1按钮时,通过js打开一空页面2,按钮事件处理完后,再次响应页面2,不知道是否合理?如何实现?

    谢谢!!!
    100  修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • ProvidenceZY
    • 等级:
    • 可用分等级:
    • 总技术专家分:
    • 总技术专家分排名:
    • 2

    发表于:2007-10-12 12:58:401楼 得分:0
    JScript code
    ...这里是打印方法参数生成代码; window.open("2.html");

    很简单的!
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • happytreefriends
    • 等级:
    • 可用分等级:
    • 总技术专家分:
    • 总技术专家分排名:
    发表于:2007-10-12 14:27:372楼 得分:0
    我觉得你的第一句话就已经把思路说出来了啊
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • mygod_cx
    • 等级:
    • 可用分等级:
    • 总技术专家分:
    • 总技术专家分排名:
    发表于:2007-10-12 14:28:013楼 得分:0
    思路可行的,将页面1导出到WORD(页面2)并打印:
    先创立记录集rs,保存查询出来的记录集,然后
    try{
        ResultSetMetaData rsmd=rs.getMetaData();
      int no=1;
        while(rs.next()){
          out.println(" <tr>");
          out.println(" <td height='25' align='center' bgcolor='#FFFFFF'>"+no+" </td>");
          for(int i=2;i <=rsmd.getColumnCount();i++){
            %>
              <td align="center" bgcolor="#FFFFFF">&nbsp; <%=rs.getString(i)%> </td>
            <%
        }
        out.println(" </tr>");
        no++;
        }
      }catch(Exception e){
        System.out.println(e.getMessage());
      }
    使用下面函数将页面信息输出到WORD
    <script language="javascript">
    function outDoc(){
      var table=document.all.customer;
      row=table.rows.length;
      column=table.rows(1).cells.length;
      var wdapp=new ActiveXObject("Word.Application");
      wdapp.visible=true;
      wddoc=wdapp.Documents.Add();  //添加新的文档
      thearray=new Array();
    //将页面中表格的内容存放在数组中
    for(i=0;i <row;i++){
    thearray[i]=new Array();
    for(j=0;j <column;j++){
              thearray[i][j]=table.rows(i).cells(j).innerHTML;
    }
    }
    var range = wddoc.Range(0,0);
    range.Text="客户信息列表"+"\n";
    wdapp.Application.Activedocument.Paragraphs.Add(range);
    wdapp.Application.Activedocument.Paragraphs.Add();
    rngcurrent=wdapp.Application.Activedocument.Paragraphs(3).Range;

    var objTable=wddoc.Tables.Add(rngcurrent,row,column)    //插入表格
    for(i=0;i <row;i++){
    for(j=0;j <column;j++){
    objTable.Cell(i+1,j+1).Range.Text = thearray[i][j].replace("&nbsp;","");

    }
    }
    wdapp.Application.ActiveDocument.SaveAs("customerList.doc",0,false,"",true,"",false,false,false,false,false);
    wdapp.Application.Printout();
    wdapp=null;
    }
    </script>
    通过链接 <a href="#" onClick="outDoc();">打印 </a>调用打印。。。。。。
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • nsqsmile
    • 等级:
    • 可用分等级:
    • 总技术专家分:
    • 总技术专家分排名:
    发表于:2007-10-12 14:39:484楼 得分:0
    我是使用jasperreport生成pdf的,生成没有问题。
    现在主要的问题是如何传递参数(存于session bean中)到页面2
    在页面1中的按钮的onclick中window.open"/xx/faces/newPage1.jsp", "_blank","height="+screen.availHeight+",width=,"+screen.availWidth - 195 +"toolbar=no,menubar=no,status=yes,scrollbars=yes")
    打开空的页面2,然后按钮事件处理完后,声称参数存放于session bean,这时候如何响应页面2,使其取得此参数。

    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • stefli
    • 等级:
    • 可用分等级:
    • 总技术专家分:
    • 总技术专家分排名:
    发表于:2007-10-12 14:41:595楼 得分:0
    可以用ajax,点击按钮后,发送数据到后台,让后面生成参数,生成完后就可以返回给当前页面,也可以直接在后台生成一个临时文件。然后,前台根据返回的标志位,决定什么时候弹出打印窗口。打印窗口中其实就可以根据传过来的参数或者直接去临时文件获取,来产生打印内容。最后就是打印了。

    临时文件可以用各种形式,建议xml
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • oscar_java
    • 等级:
    • 可用分等级:
    • 总技术专家分:
    • 总技术专家分排名:
    发表于:2007-10-12 15:25:306楼 得分:0
    我也是用jasperreport的,,试过生成出PDF 和 excel

    我把报表数据获取写在jasperreport里,再用页面调时把参数传进去,这样jasperreport就可以根据你的条件,
    获取对应的记录了,并生成一个报表,再把这个报表output出来就可以啦,,,。。。:)
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • nsqsmile
    • 等级:
    • 可用分等级:
    • 总技术专家分:
    • 总技术专家分排名:
    发表于:2007-10-12 16:43:287楼 得分:0
    stefli 的方法应该可行,但不熟悉ajax,现在这个问题比较急。

    j2ee的环境

    应该可以使用HttpServletResponse处理,哪位能够给个详细的解答?
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • nsqsmile
    • 等级:
    • 可用分等级:
    • 总技术专家分:
    • 总技术专家分排名:
    发表于:2007-10-13 09:18:258楼 得分:0
    老大们,帮帮忙呀
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • billysky
    • 等级:
    • 可用分等级:
    • 总技术专家分:
    • 总技术专家分排名:
    发表于:2007-10-13 11:42:559楼 得分:0
    你能不能把需求说得再详细些,怎么感觉很简单的东西啊
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • nsqsmile
    • 等级:
    • 可用分等级:
    • 总技术专家分:
    • 总技术专家分排名:
    发表于:2007-10-18 11:27:1810楼 得分:0
    那我再详细描述一下:
    1、页面1中有一个“缴费”按钮,按钮处理后生成一个打印字符串prtStr放到session bean中
    (this.getSessionBean1().setPrintString(printStr);)
    2、“缴费”按钮javascript的onclick()中打开打印页面2 {window.open"/yx/faces/newPage1.jsp", "_blank","height="+screen.availHeight+",width=,"+screen.availWidth - 195 +"toolbar=no,menubar=no,status=yes,scrollbars=yes");}

    3、打印页面2的初始化过程中取打印字符串(printStr = this.getSessionBean1().getPrintString();),生成打印的pdf文件

    现在存在的问题是在页面1的“缴费”按钮处理完毕生成打印字符串后,没有办法传给打印页面2,因为打开打印页面2 的代码在按钮的onclick()中,还没有处理就已经打开页面2了。

    需要等“缴费”按钮处理完毕后,再次响应页面2,将打印字符串传给页面2
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • whjwu
    • 等级:
    • 可用分等级:
    • 总技术专家分:
    • 总技术专家分排名:
    发表于:2007-10-18 13:10:4311楼 得分:0
    1.AJAX
    2.写一个JS函数:
    页面2 onload js定时器,页面2不断查看request传过来的字符串是不是空的,如果是继续不断查看,如果不是,获取其中的值显示出来,停止定时器
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • JJsper
    • 等级:
    • 可用分等级:
    • 总技术专家分:
    • 总技术专家分排名:
    发表于:2007-10-18 13:21:2412楼 得分:0
    学习一下
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • nsqsmile
    • 等级:
    • 可用分等级:
    • 总技术专家分:
    • 总技术专家分排名:
    发表于:2007-10-19 09:56:4813楼 得分:0
    to whjwu :能不能把第二种方法写出来?
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • xiaojing7
    • 等级:
    • 可用分等级:
    • 总技术专家分:
    • 总技术专家分排名:
    发表于:2007-10-19 11:35:5714楼 得分:0
    up
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • nsqsmile
    • 等级:
    • 可用分等级:
    • 总技术专家分:
    • 总技术专家分排名:
    发表于:2007-10-30 08:11:4015楼 得分:0
    没有人帮我解决呀?
    修改 删除 举报 引用 回复

    网站简介广告服务网站地图帮助联系方式诚聘英才English 问题报告
    北京创新乐知广告有限公司 版权所有 京 ICP 证 070598 号
    世纪乐知(北京)网络技术有限公司 提供技术支持
    Copyright © 2000-2008, CSDN.NET, All Rights Reserved