现在不是可以在jsp中用水晶报表了吗,也是在刚学这个东西.

解决方案 »

  1.   

    在打印时在不要显示的地方用DIV包含起来,并为该DIV取个ID名,如<div id="divID">不要显示的内容</div>
    打印时用document.all.divID.style.display='none';这样对应的DIV就在打印时不显示出来了,再window.print();一下就行了,
    当然如果要在打印时,打印出正常情况不显示的内容的话,也可以这样,先用DIV把它包含起来,到页面最后地方先把display设为'none',按打印时设为'block'就行了
    不过打印效果不是很理想,对于要求不高的适用.
      

  2.   

    <style media=print>
    .noPrint{display:none;}
    .PageNext{page-break-after: avoid; page-break-before: avoid;}
    </style> <body>
    <div class="PageNext">
    <object classid="CLSID:8856F961-340A-11D0-A96B-00C04FD705A2" height="0" id="wb" name="wb" width="0"></object>  
    <div align="right">
    <input class="noPrint" style="color:#B45CC9" type="button" name="button_setup" value="打印设置" onclick="javascript:printSetup();">&nbsp;&nbsp;
    <input class="noPrint" style="color:#B45CC9" type="button" name="button_show"  value="打印预览" onclick="javascript:printPreview();">&nbsp;&nbsp;
    <input class="noPrint" style="color:#B45CC9" type="button" name="button_print" value="直接打印" onclick="javascript:printIt();">
    </div>
    </body>
      

  3.   


    function printSetup()

      wb.execwb(8,1); 
    }function printPreview()
    {    
    wb.execwb(7,1);  
    } function printIt() 

    if(confirm('  确定要直接打印吗?'))

       wb.execwb(6,6);
      } 
    }
      

  4.   

    参考一下:     我再dev中找不到打印得相关答案就找了个好东西.,.明天我一个一个去试一试 
      WEB打印大全:(转截梅花雨) 
      1、控制"纵打"、 横打”和“页面的边距。 
      (1)<script defer> 
      function SetPrintSettings() { 
      // -- advanced features 
      factory.printing.SetMarginMeasure(2) // measure margins in inches 
      factory.SetPageRange(false, 1, 3) // need pages from 1 to 3 
      factory.printing.printer = "HP DeskJet 870C" 
      factory.printing.copies = 2 
      factory.printing.collate = true 
      factory.printing.paperSize = "A4" 
      factory.printing.paperSource = "Manual feed" 
       
      // -- basic features 
      factory.printing.header = "This is MeadCo" 
      factory.printing.footer = "Advanced Printing by ScriptX" 
      factory.printing.portrait = false 
      factory.printing.leftMargin = 1.0 
      factory.printing.topMargin = 1.0 
      factory.printing.rightMargin = 1.0 
      factory.printing.bottomMargin = 1.0 
      } 
      </script> 
       
      (2) 
      <script language="javascript"> 
      function printsetup(){ 
      // 打印页面设置 
      wb.execwb(8,1); 
      } 
      function printpreview(){ 
      // 打印页面预览 
       
      wb.execwb(7,1); 
       
       
      } 
       
      function printit() 
      { 
      if (confirm('确定打印吗?')) { 
      wb.execwb(6,6) 
      } 
      } 
      </script> 
      </head> 
      <body> 
      <OBJECT classid="CLSID:8856F961-340A-11D0-A96B-00C04FD705A2" 
       
      height=0 id=wb name=wb width=0></OBJECT> 
      <input type=button name=button_print value="打印" 
       
      onclick="javascript:printit()"> 
      <input type=button name=button_setup value="打印页面设置" 
       
      onclick="javascript:printsetup();"> 
      <input type=button name=button_show value="打印预览" 
       
      onclick="javascript:printpreview();"> 
      <input type=button name=button_fh value="关闭" 
       
      onclick="javascript:window.close();"> 
       
      ------------------------------------------------ 
      关于这个组件还有其他的用法,列举如下: 
      WebBrowser.ExecWB(1,1) 打开 
      Web.ExecWB(2,1) 关闭现在所有的IE窗口,并打开一个新窗口 
      Web.ExecWB(4,1) 保存网页 
      Web.ExecWB(6,1) 打印 
      Web.ExecWB(7,1) 打印预览 
      Web.ExecWB(8,1) 打印页面设置 
      Web.ExecWB(10,1) 查看页面属性 
      Web.ExecWB(15,1) 好像是撤销,有待确认 
      Web.ExecWB(17,1) 全选 
      Web.ExecWB(22,1) 刷新 
      Web.ExecWB(45,1) 关闭窗体无提示 
       
      2、分页打印 
      <HTML> 
      <HEAD> 
      <STYLE> 
      P {page-break-after: always} 
      </STYLE> 
      </HEAD> 
      <BODY> 
      <%while not rs.eof%> 
      <P><%=rs(0)%></P> 
      <%rs.movenext%> 
      <%wend%> 
      </BODY> 
      </HTML> 
       
      3、ASP页面打印时如何去掉页面底部的路径和顶端的页码编号 
      (1)ie的文件-〉页面设置-〉讲里面的页眉和页脚里面的东西都去掉,打印就不出来了。 
      (2)<HTML> 
      <HEAD> 
      <TITLE> New Document </TITLE> 
      <META NAME="Generator" CONTENT="EditPlus"> 
      <META NAME="Author" CONTENT="YC"> 
      <script language="VBScript"> 
      dim hkey_root,hkey_path,hkey_key 
      hkey_root="HKEY_CURRENT_USER" 
      hkey_path="\Software\Microsoft\Internet Explorer\PageSetup" 
      '//设置网页打印的页眉页脚为空 
      function pagesetup_null() 
      on error resume next 
      Set RegWsh = CreateObject("WScript.Shell") 
      hkey_key="\header" 
      RegWsh.RegWrite hkey_root+hkey_path+hkey_key,"" 
      hkey_key="\footer" 
      RegWsh.RegWrite hkey_root+hkey_path+hkey_key,"" 
      end function 
      '//设置网页打印的页眉页脚为默认值 
      function pagesetup_default() 
      on error resume next 
      Set RegWsh = CreateObject("WScript.Shell") 
      hkey_key="\header" 
      RegWsh.RegWrite hkey_root+hkey_path+hkey_key,"&w&b页码,&p/&P" 
      hkey_key="\footer" 
      RegWsh.RegWrite hkey_root+hkey_path+hkey_key,"&u&b&d" 
      end function 
      </script> 
      </HEAD> 
       
      <BODY> 
      <br/> 
      <br/> 
      <br/> 
      <br/> 
      <br/> 
      <br/><p align=center> 
      <input type="button" value="清空页码" onclick=pagesetup_null()> <input type="button" value="恢复页吗" onclick=pagesetup_default()><br/> 
       
      </p> 
      </BODY> 
      </HTML> 
      4、浮动帧打印 
      <SCRIPT LANGUAGE=javascript> 
      function button1_onclick() { 
      var odoc=window.iframe1.document; 
      var r=odoc.body.createTextRange(); 
      var stxt=r.htmlText; 
      alert(stxt) 
      var pwin=window.open("","print"); 
      pwin.document.write(stxt); 
      pwin.print(); 
      } 
      </SCRIPT> 
      4、用FileSystem组件实现WEB应用中的本地特定打印 
      <script Language=VBScript> 
      function print_onclick //打印函数 
      dim label 
      label=document.printinfo.label.value //获得HTML页面的数据 
      set objfs=CreateObject("Scripting.FileSystemObject") //创建FileSystem组件对象的实例 
      set objprinter=objfs.CreateTextFile ("LPT1:",true) //建立与打印机的连接 
      objprinter.Writeline("__________________________________") //输出打印的内容 
      objprinter.Writeline("| |") 
      objprinter.Writeline("| 您打印的数据是:"&label& " |”) 
      objprinter.Writeline("| |") 
      objprinter.Writeline("|_________________________________|") 
      objprinter.close //断开与打印机的连接 
      set objprinter=nothing 
      set objfs=nothing // 关闭FileSystem组件对象 
      end function 
      </script> 
      服务器端脚本: 
      <%……… 
      set conn=server.CreateObject ("adodb.connection") 
      conn.Open "DSN=name;UID=XXXX;PWD=XXXX;" 
      set rs=server.CreateObject("adodb.recordset") 
      rs.Open(“select ……”),conn,1,1 
      ……….%> //与数据库进行交互 
      HTML页面编码: 
      <HTML> 
      ……… 
      <FORM ID=printinfo NAME="printinfo" > 
      <INPUT type="button" value="打印>>" id=print name=print > //调用打印函数 
      <INPUT type=hidden id=text1 name=label value=<%=………%>> //保存服务器端传来的数据 
      ……… 
      </HTML>
      

  5.   

    用css控制打印:
    <style>
    @media print{
    INPUT {display:none}
    }
    </style>
    <TABLE border="0" style="font-size:9pt;" width="300px" align="center">
    <THEAD style="display:table-header-group;font-weight:bold">
    <TR><TD colspan="2" align="center" style="font-weight:bold;border:3px double red">每页都有的表头</TD></TR>
    </THEAD>
    <TBODY style="text-align:center"">
    <TR><TD>表格内容</TD><TD>表格内容</TD></TR>
    <TR><TD>表格内容</TD><TD>表格内容</TD></TR>
    <TR><TD>表格内容</TD><TD>表格内容</TD></TR>
    <TR><TD>表格内容</TD><TD>表格内容</TD></TR>
    <TR><TD>表格内容</TD><TD>表格内容</TD></TR>
    <TR><TD>表格内容</TD><TD>表格内容</TD></TR>
    <TR style="page-break-after:always;"><TD>表格内容</TD><TD>表格内容</TD></TR>
    <TR><TD>表格内容</TD><TD>表格内容</TD></TR>
    <TR><TD>表格内容</TD><TD>表格内容</TD></TR>
    <TR><TD>表格内容</TD><TD>表格内容</TD></TR>
    <TR><TD>表格内容</TD><TD>表格内容</TD></TR>
    <TR><TD>表格内容</TD><TD>表格内容</TD></TR>
    <TR><TD>表格内容</TD><TD>表格内容</TD></TR>
    <TR style="page-break-after:always;"><TD>表格内容</TD><TD>表格内容</TD></TR>
    <TR><TD>表格内容</TD><TD>表格内容</TD></TR>
    <TR><TD>表格内容</TD><TD>表格内容</TD></TR>
    <TR><TD>表格内容</TD><TD>表格内容</TD></TR>
    <TR><TD>表格内容</TD><TD>表格内容</TD></TR>
    <TR><TD>表格内容</TD><TD>表格内容</TD></TR>
    <TR><TD>表格内容</TD><TD>表格内容</TD></TR>
    <TR style="page-break-after:always;"><TD>表格内容</TD><TD>表格内容</TD></TR>
    </TBODY>
    <TFOOT style="display:table-footer-group;font-weight:bold">
    <TR>
    <TD colspan="2" align="center" style="font-weight:bold;border:3px double blue">每页都有的表尾</TD>
    </TR>
    </TFOOT>
    </TABLE>
    <input type=button value=" 打  印 " onclick="window.print()">
    --------------------------------
    style="page-break-after:always; 这个就是控制打印分页的。。
      

  6.   

    eprint自定义打印工具,能实现web打印,带打印参数设置小控件,与scriptx功能一样。
    详细见www.fcsoft.com.cn/ePrint.htm
      

  7.   

    建议使用开源的jasperreports来实现,可以生成pdf/excel/rtf/html/csv等多种报表输出结果,有问题可以去这里讨论
    http://forum.brainysoft.net
      

  8.   

    http://download.enet.com.cn/html/030212006012001.html