• 水晶报表


    <%
    Function GetParamName(byval Str)
     if Str="" then Exit Function
     if Instr(1,Str,"?Pm-") then exit Function
     Dim TempValue
     TempValue=Mid(Str,3,Len(Str)-3)
     GetParamName=TempValue
    End Function
    'on error resume next
    If Not IsObject (session("oApp")) Then
     Set session("oApp") = Server.CreateObject("CrystalRuntime.Application")
    End If

    If IsObject(session("oRpt")) then
     Set session("oRpt") = nothing
    End if
    Set session("oRpt") = session("oApp").OpenReport(Server.MapPath("Orders.RPT"), 1)
    if Err.number<>0 then
     Response.Write err.number & "<BR>"
     Response.Write Err.Description
     Response.End
    end if
    session("oRpt").MorePrintEngineErrorMessages = False
    session("oRpt").EnableParameterPrompting = False
    'on error goto 0

    set oConn=Server.CreateObject("ADODB.Connection")
    Set oADORecordset = Server.CreateObject("ADODB.Recordset")
    Set rs = Server.CreateObject("ADODB.Recordset")
    Set rs2 = Server.CreateObject("ADODB.Recordset")
    set xmldoc=Server.CreateObject("MSXML2.DOMDocument")
    set xmldoc2=Server.CreateObject("MSXML2.DOMDocument")
    oConn.Open "driver={SQL Server};server=127.0.0.1;uid=sa;pwd=;database=Northwind"
    strSQL="SELECT * FROM Orders"
    oADORecordset.Open strSQL,oConn
    oADORecordset.Save xmldoc,1
    oADORecordset.Close
    rs.Open xmldoc

    strSQL="SELECT * FROM [Order Details]"
    oADORecordset.Open strSQL,oConn
    oADORecordset.Save xmldoc2,1
    oADORecordset.Close
    oConn.Close
    rs2.Open xmldoc2
    'xmldoc.loadXML ReportData
    'oADORecordset.Open xmldoc
    Set oRptTable = session("oRpt").Database.Tables.Item(1)

    oRptTable.SetDataSource rs, 3

    'set Params = Session("oRpt").Parameterfields 
    'For each Param in Params
     'Select Case Param.Name
      'Case "{?UNIT_NAME}" Param.SetCurrentValue CStr(unit_name), 7
      'Case "{?DATE_FROM}" Param.SetCurrentValue CDate(date_from), 10
      'Case "{?DATE_TO}" Param.SetCurrentValue CDate(date_to), 10
     'End Select
    'Next
    'set Params=nothing

    set Params = Session("oRpt").Parameterfields 
    For each Param in Params
     ParamType=Param.valuetype
     ParamName=GetParamName(Param.Name)
     ParamValue=Eval(ParamName)
     Select Case ParamType
      Case 7 Call Param.SetCurrentValue (dfVntToInt(ParamValue), 7)     'Number
      Case 8 Call Param.SetCurrentValue (Cdbl(ParamValue), 8)           'Currency
      Case 10 Call Param.SetCurrentValue (CDate(ParamValue), 10)        'Date
      Case 12 Call Param.SetCurrentValue (CStr(ParamValue), 12)         'String
     End Select
    Next
    set Params=nothing

    '************************************
    Set CRXSections = Session("oRpt").Sections
    For Each CRXSection In CRXSections
     'In each section, you get all the objects in the section.
     Set CRXReportObjects = CRXSection.ReportObjects
     'You cycle through the objects.
     For Each CRXReportObject In CRXReportObjects
      '1---Text Object 2---Fields Object 3---Line 4---Box 5---Sub Report
      If CRXReportObject.Kind = 5 Then
       Set CRXSubreportObj = CRXReportObject
       Set CRXSubreport = CRXSubreportObj.OpenSubreport
       '************************************
       'Set The Sub Reports Parameters'Value
       Set Params=CRXSubreport.Parameterfields
       For each Param in Params
        ParamType=Param.valuetype
        ParamName=GetParamName(Param.name)
        ParamValue=Eval(ParamName)
        if Instr(1,ParamName,"?Pm-")=0 then
         Select Case ParamType
          Case 7 Call Param.SetCurrentValue (CInt(ParamValue), 7)  'Number
          Case 8 Call Param.SetCurrentValue (CDbl(ParamValue), 8)  'Currency
          Case 10 Call Param.SetCurrentValue (CDate(ParamValue), 10) 'Date
          Case 12 Call Param.SetCurrentValue (CStr(ParamValue), 12) 'String
         End Select
        end if
       Next
       set Params=nothing
       '************************************
       Set subReportOneTablesCollection = CRXSubreport.Database.Tables
       For Each Table in subReportOneTablesCollection
        Table.SetDataSource rs2, 3
        DatabaseName=Table.Name
        Response.Write DatabaseName
       Next
      End If
     Next
    Next

    'on error resume next
    session("oRpt").ReadRecords
    If Err.Number <> 0 Then
     Response.Write "An Error has occured on the server in attempting to access the data source" & "<BR>"
     Response.Write Err.number & "<BR>"
     Response.Write Err.Description
    Else
     If IsObject(session("oPageEngine")) Then
      set session("oPageEngine") = nothing
     End If
     set session("oPageEngine") = session("oRpt").PageEngine
    End If
    'on error goto 0
    'Response.End
    %> <html>

    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=gb2312">
    <title><%=ReportTitle%></title>
    </head>

    <body onunload="CallDestroy();" bottommargin="0" topmargin="0" rightmargin="0" leftmargin="0">

    <object id="CRViewer" classid="CLSID:2DEF4530-8CE6-41c9-84B6-A54536C90213" width="100%" height="100%" codebase="activexviewer.cab#Version=9,2,0,442&quot;" viewastext>
     <param name="EnableRefreshButton" value="1">
     <param name="EnableGroupTree" value="0">
     <param name="DisplayGroupTree" value="0">
     <param name="EnablePrintButton" value="1">
     <param name="EnableExportButton" value="1">
     <param name="EnableDrillDown" value="1">
     <param name="EnableSearchControl" value="1">
     <param name="EnableAnimationControl" value="1">
     <param name="EnableZoomControl" value="1">
     <param name="LaunchHTTPHyperlinkInNewBrowser" value="1">
     <param name="DisplayBackGroundEdge" value="0">
     <param name="DisplayTabs" value="0">
     <param name="EnablePopupMenu" value="0">
     <param name="EnableCloseButton" value="0">
    </object>
    <script language="VBScript">
    <!--
    Sub Window_Onload
     On Error Resume Next
     Dim webBroker
     Set webBroker = CreateObject("WebReportBroker9.WebReportBroker")
     if ScriptEngineMajorVersion < 2 then
      window.alert "IE 3.02 users on NT4 need to get the latest version of VBScript or install IE 4.01 SP1. IE 3.02 users on Win95 need DCOM95 and latest version of VBScript, or install IE 4.01 SP1. These files are available at Microsoft's web site."
     else
      Dim webSource
      Set webSource = CreateObject("WebReportSource9.WebReportSource")
      webSource.ReportSource = webBroker
      webSource.URL = "rptserver.asp"
      webSource.PromptOnRefresh = True
      CRViewer.ReportSource = webSource
     end if
     CRViewer.ViewReport
    End Sub
    -->
    </script>
    <script language="javascript">
    function CallDestroy()
    {
     window.open("Cleanup.asp","","toolbar=no,location=no,directories=no,status=no,menubar=no,scrollbars=no,resizable=no,width=0,height=0,top=0,left=0");
    }
    </script>

    </body>

    </html>

  • 相关阅读:
    使用XUACompatible来设置IE8兼容模式[转]
    XML Sitemaps 格式
    A Link 链接的rel、target属性详解
    IE与Firefox等浏览器对容器width的不同解释及解决办法
    超越文档类型,web标准化向前兼容和IE8
    MSSQL、MYSQL,ACCESSl,Oracle随机读取N条记录方法
    IE8如何定义浏览器工作模式避免网页显示混乱
    什么是SVN? 什么是CVS? SVN跟CVS又有什么关系呢?
    2008年度75套最佳网页设计资源
    一组JS创建和操作表格的函数集合
  • 原文地址:https://www.cnblogs.com/qiao198/p/4512.html
Copyright © 2020-2023  润新知