• <ruby id="5koa6"></ruby>
    <ruby id="5koa6"><option id="5koa6"><thead id="5koa6"></thead></option></ruby>

    <progress id="5koa6"></progress>

  • <strong id="5koa6"></strong>
  • ASP Call Crystal Report with Store Procedure(5)

    發表于:2007-06-30來源:作者:點擊數: 標簽:
    %@ LANGUAGE= VB SCRIPT % % On Error Resume Next ‘’ The oEMF object is a helper object to create EMFs (Ecapsulated Messages) for the viewers. ‘’ The viewers use EMFs to display errors and navigate to specific pages of the report. If Not
    <%@ LANGUAGE="VBSCRIPT" %>
    <%
    On Error Resume Next

    ‘’ The oEMF object is a helper object to create EMFs (Ecapsulated Messages) for the viewers.
    ‘’ The viewers use EMFs to display errors and navigate to specific pages of the report.

    If Not IsObject(session("oEMF")) then
    Set session("oEMF") = Server.CreateObject("CREmfgen.CREmfgen.1")
    Call CheckForError
    End if


    ‘’ Initialize all Global variables
    ‘’ These will contain the page generator and page collection


    Dim goPageGenerator ‘’ page generator object
    Dim goPageCollection ‘’ page collection object
    Dim goPageGeneratorDrill‘’ page generator object in Drill Down Context
    Dim goPage ‘’ the page object
    Dim gvGroupPathDD ‘’ drill down group path, this is an array.
    Dim gvGroupPath ‘’ this is branch, aka Group Path converted from string passed on the QS, it is an Array
    Dim gvGroupLevel ‘’ this is the Group level, converted from the string passed on the QS, it is an Array
    Dim gvMaxNode ‘’ this represents the number of nodes to retrieve for the totaller, it is set to an empty array
    Dim gvTotallerInfo ‘’ this represents the group path of the requested totaller.
    Dim glX ‘’ this is the X Coordinate for a drill down on a graph or Map
    Dim glY ‘’ this is the Y Coordinate for a drill down on a graph or Map
    Dim gvPageNumber ‘’ holds the requested page number
    Dim gvURL ‘’ URL to redirect to
    Dim gsErrorText ‘’ holds the error text to be sent to the viewer.
    Dim ExportOptions ‘’ Export Options Object
    Dim slX ‘’ this is the X Coordinate for a selection of Out of Place subreport
    Dim slY ‘’ this is the Y Coordinate for a selection of Out of Place subreport

    ‘’ Vaiables that represent what was passed on the Query String
    Dim CMD ‘’ This determines the main function to perform
    Dim PAGE ‘’ the page to return
    Dim BRCH ‘’ the branch is a mechanism to determine the drill down level.
    ‘’ A drill down level is like a view of the report, a new tab
    ‘’ is created to indicate that it is a new view
    Dim VIEWER ‘’ This is the viewer that is calling the server
    Dim VFMT ‘’ the format that the viewer understands
    Dim NODE ‘’ Currently not used??
    Dim GRP ‘’ this is a way of specifing the actual group
    Dim COORD ‘’ these are the coordinates on the graph to process
    Dim DIR ‘’ this is the search direction
    Dim CSE ‘’ indicates if the search is case sensitive
    Dim TEXT ‘’ this is the text to search for.
    Dim INIT ‘’ used to build the frames for the html viewer
    Dim NEWBRCH ‘’ used to keep track of when a new branch is to be viewed.
    Dim EXPORT_FMT ‘’ used to hold the export format and type
    Dim SUBRPT ‘’ used to hold the Out Of Place Subreport page, number,
    ‘’ and coordinates on the main report.
    Dim INCOMPLETE_PAGE ‘’ used to indicate whether the page generated should contain placeholders.
    Dim INCOMPLETE_PAGE_COUNT ‘’ used to indicate whether the page should contain the total page count if not yet generated.
    Dim PVERSION ‘’ used to indicate the protocol version of the viewer.
    Dim TTL_INFO ‘’ used to indicate the group path of the totaller request.
    ‘’ Constant Values
    Dim CREFTWORDFORWINDOWS
    Dim CREFTRICHTEXT
    Dim CREFTEXCEL21
    Dim CREFTCRYSTALREPORT
    Dim CREDTDISKFILE
    Dim EMFMIMETYPE
    CREFTWORDFORWINDOWS = 14
    CREFTRICHTEXT = 4
    CREFTEXCEL21 = 18
    CREFTCRYSTALREPORT = 1
    CREDTDISKFILE = 1
    crAllowPlaceHolders = 2
    crDelayTotalPageCountCalc = 1
    EMFMIMETYPe = "application/x-emf"
    EPFMIMETYPE = "application/x-epf"
    ETFMIMETYPE = "application/x-etf"
    ‘’ Initialize Arrays
    gvGroupPath = Array()
    gvGroupLevel = Array()
    gvMaxNode = Array() ‘’ reteive all nodes
    gvTotallerInfo = Array()
    NEWBRCH = "0"
    ‘’ To ensure that the browser does not cache the html pages for the group trees.
    Response.Expires = 0
    ‘’ Parse Query String for paramaters
    Call ParseQS()

    ‘’ INIT is a special QS case, we only care about HTML viewer, if it is then save send page and branch info
    ‘’ to the frame page

    if INIT = "HTML_FRAME" then
    ‘’ build URL and send the QS
    if BRCH <> "" and NEWBRCH = "1" then
    ‘’ htmstart is the base page that creates the frames for the HTML viewer
    ‘’ if there is branch information it needs to be passed along.
    tmpArray = session("tabArray")
    if tmpArray(0) <> "EMPTY" then
    val = UBound(tmpArray, 1) + 1
    redim preserve tmpArray(val + 4)
    else
    val = 0
    end if
    tmpArray(val) = CStr(val)
    tmpArray(val + 1) = session("lastBrch")
    session("lastBrch") = BRCH
    tmpArray(val + 2) = session("CurrentPageNumber")
    tmpArray(val + 3) = session("lastknownpage")
    tmpArray(val + 4) = session("LastPageNumber")
    session("tabArray") = tmpArray
    gvURL = "htmstart.asp?brch=" & BRCH & "&"
    else
    if BRCH <> "" then
    gvURL = "htmstart.asp?brch=" & BRCH
    else
    gvURL = "htmstart.asp"
    end if
    end if
    response.redirect gvURL
    end if



    ‘’ If there is a BRCH then create the gvGroupPath array that represents it.

    if BRCH <> "" then
    gvGroupPath = CreateArray(BRCH)
    end if

    ‘’ If there is a GRP then create the gvGroupLevel array that represents it.

    if GRP <> "" then
    gvGroupLevel = CreateArray(GRP)
    end if

    ‘’ If there is a TTL_INFO then create the gvTotallerInfo array that represents it.

    if TTL_INFO <> "" then
    gvTotallerInfo = CreateArray(TTL_INFO)
    end if



    ‘’ If there are COORDs, then get them
    if COORD <> "" then
    Call GetDrillDownCoordinates(COORD, glX, glY)
    end if

    ‘’ This case statement determines what action to perform based on CMD
    ‘’ there are sub cases for each viewer type



    Select Case CMD

    Case "GET_PG"

    Call RetrieveObjects

    ‘’ create the actual page
    Set goPage = goPageCollection(PAGE)
    ‘’ check for an exception on the page number
    Call ValidatePageNumber

    ‘’ 0 is for epf, 8209 is a SafeArray
    Select Case VFMT

    Case "ENCP"
    session("oPageEngine").PlaceHolderOptions = 0
    if(PVERSION > 2)then
    if INCOMPLETE_PAGE > 0 then
    session("oPageEngine").PlaceHolderOptions = crAllowPlaceHolders
    end if
    if INCOMPLETE_PAGE_COUNT > 0 then
    session("oPageEngine").PlaceHolderOptions = session("oPageEngine").PlaceHolderOptions + crDelayTotalPageCountCalc
    end if
    end if
    session("oPageEngine").ImageOptions = 1
    temp = goPage.Renderepf(8209)
    Response.AddHeader "CONTENT-LENGTH", lenb(temp)
    Response.ContentType = EPFMIMETYPE
    response.binarywrite temp

    Case "HTML_FRAME"
    session("oPageEngine").ImageOptions = 1
    response.binarywrite goPage.Renderhtml(1,2,1,request.ServerVariables("SCRIPT_NAME"),8209)
    ‘’ Need to know if it is the last page to construct the toolbar correctly
    if goPage.IsLastPage then
    session("LastPageNumber") = goPage.pagenumber
    session("CurrentPageNumber") = session("LastPageNumber")
    end if
    Case "HTML_PAGE"
    session("oPageEngine").ImageOptions = 1
    response.binarywrite goPage.Renderhtml(1,3,3,request.ServerVariables("SCRIPT_NAME"),8209)

    end select

    Case "GET_TTL"

    Call RetrieveObjects

    Select Case VFMT

    Case "ENCP"
    Response.ContentType = ETFMIMETYPE
    if(PVERSION > 2)then
    temp = goPageGenerator.RenderTotallerETF(gvTotallerInfo, 0, 1, gvMaxNode, 8209)
    else
    temp = goPageGenerator.RenderTotallerETF(gvGroupPath, 0, 0, gvMaxNode, 8209)
    end if
    Response.AddHeader "CONTENT-LENGTH", lenb(temp)
    response.binarywrite temp

    Case "HTML_FRAME"
    response.binarywrite goPageGenerator.RenderTotallerHTML(gvGroupPath, 1, 0, gvMaxNode, gvGroupLevel, 1, request.ServerVariables("SCRIPT_NAME"), 8209)

    end select


    Case "RFSH"

    ‘’ This command forces the database to be read again.
    session("oRpt").DiscardSavedData
    session("oRpt").ReadRecords
    If Err.Number <> 0 Then
    Call CheckForError
    Else
    session("oRpt").EnableParameterPrompting = False
    Set session("oPageEngine") = session("oRpt").PageEngine
    End If
    Call RetrieveObjects
    Set goPage = goPageCollection(PAGE)
    Call ValidatePageNumber
    session("oPageEngine").ImageOptions = 1
    Select Case VFMT
    Case "ENCP"
    ‘’ Java and Active X Viewers will make a get page command when receiving 0 error msg value
    if VIEWER = "JAVA" then
    session("oPageEngine").PlaceHolderOptions = 0
    if(PVERSION > 2)then
    if INCOMPLETE_PAGE > 0 then
    session("oPageEngine").PlaceHolderOptions = crAllowPlaceHolders
    end if
    if INCOMPLETE_PAGE_COUNT > 0 then
    session("oPageEngine").PlaceHolderOptions = session("oPageEngine").PlaceHolderOptions + crDelayTotalPageCountCalc
    end if
    end if
    temp = goPage.Renderepf(8209)
    Response.AddHeader "CONTENT-LENGTH", lenb(temp)
    Response.ContentType = EPFMIMETYPE
    response.binarywrite temp
    else
    Response.ContentType = EMFMIMETYPE
    session("oEMF").SendErrorMsg 0,""
    end if

    Case "HTML_FRAME"
    InitializeFrameArray()
    gvURL = "htmstart.asp"
    response.redirect gvURL

    Case "HTML_PAGE"
    session("oPageEngine").ImageOptions = 1
    response.binarywrite goPage.Renderhtml(1,3,1,request.ServerVariables("SCRIPT_NAME"),8209)

    end select


    Case "NAV"
    Call RetrieveObjects
    Call CheckForError
    ‘’ Get the page number that the group in on, for this particular branch
    gvPageNumber = goPageGenerator.GetPageNumberForGroup(gvGroupLevel)

    Select Case VFMT
    ‘’ 0 is for epf, 8209 is a SafeArray, 8 is a BSTR
    Case "ENCP"
    ‘’ Create a byte array for the EMF, which will contain the page number
    Response.ContentType = EMFMIMETYPE
    session("oEMF").sendpagenumberrecord(gvPageNumber)

    Case "HTML_FRAME"
    ‘’ for html browser send back the page
    dim appendQuery
    appendQuery = "?"
    session("CurrentPageNumber") = gvPageNumber
    if BRCH <> "" then
    appendQuery = appendQuery & "BRCH=" & BRCH & "&"
    end if
    if GRP <> "" then
    appendQuery = appendQuery & "GRP=" & GRP
    end if
    response.redirect "framepage.asp" & appendQuery

    end select


    Case "CHRT_DD"
    ‘’ only supported in java and active X smart viewers
    Select Case VFMT

    Case "ENCP"

    ‘’ Get page collection
    Call RetrieveObjects
    Call CheckForError
    ‘’ Pass the coordinates to the report engine to determine what
    ‘’ branch the drill down goes to.
    Set goPageGeneratorDrill = goPageGenerator.DrillOnGraph(PAGE, glX, glY)
    ‘’ Check for an exception because of coordinates
    if err.number <> 0 then
    gsErrorText = "Not part of the Graph "
    Response.ContentType = EMFMIMETYPE
    session("oEMF").SendErrorMsg 40, gsErrorText
    err.clear
    response.end
    end if
    ‘’ pass the group level and group path to helper function to create
    ‘’ the EMF message, this tells the viewer where to get the page.

    gvGroupPathDD = goPageGeneratorDrill.grouppath
    gvGroupNameDD = goPageGeneratorDrill.groupname
    Response.ContentType = EMFMIMETYPE
    session("oEMF").GroupName = gvGroupNameDD
    session("oEMF").sendbranchesemf(gvGroupPathDD)


    end select

    Case "GET_LPG"

    ‘’ only support in smart viewers
    Select Case VFMT

    Case "ENCP"
    ‘’ this command returns the page number of the last page
    ‘’ Get page collection
    Call RetrieveObjects
    Call CheckForError
    ‘’ Get the count from the Pages collection
    gvPageNumber = goPageCollection.Count

    ‘’ Send the EMF representing the page number
    Response.ContentType = EMFMIMETYPE
    session("oEMF").sendpagenumberrecord(gvPageNumber)
    end select

    原文轉自:http://www.kjueaiud.com

    老湿亚洲永久精品ww47香蕉图片_日韩欧美中文字幕北美法律_国产AV永久无码天堂影院_久久婷婷综合色丁香五月

  • <ruby id="5koa6"></ruby>
    <ruby id="5koa6"><option id="5koa6"><thead id="5koa6"></thead></option></ruby>

    <progress id="5koa6"></progress>

  • <strong id="5koa6"></strong>