注冊 登錄
Office中國論壇/Access中國論壇 返回首頁

葉海峰的個(gè)人空間 http://m.mzhfr.cn/?42510 [收藏] [復(fù)制] [分享] [RSS]

日志

2個(gè)水晶易表之間進(jìn)行參數(shù)傳遞

熱度 3已有 3496 次閱讀2012-11-22 15:35 |個(gè)人分類:水晶易表| 水晶易表

水晶易表和mdb交互,和.net交互,都已經(jīng)實(shí)現(xiàn)了,那么,水晶易表之間能不能交互呢,當(dāng)然是可以的.

圖里面演示的就是兩個(gè)水晶易表導(dǎo)出的swf文件,嵌入到一個(gè)ppt文檔中,一個(gè)負(fù)責(zé)傳出參數(shù),一個(gè)接收參數(shù)作出相應(yīng)的改變.

實(shí)現(xiàn)的思路:

傳出參數(shù)的swf,設(shè)置了FS命令,傳遞出參數(shù)
接收參數(shù)的swf設(shè)置了xml數(shù)據(jù)連接,獲取參數(shù)
PPT負(fù)責(zé)shockwave控件的fs_command事件激活獲取到傳遞來的參數(shù)時(shí),將參數(shù)寫到指定的xml的文檔中,讓接收參數(shù)的swf獲取到參數(shù).

注: Access,Excel等套件解決思路一樣,只要對部分代碼作出修改即可.

Sub OnSlideShowPageChange() 'PPT開始播放
'預(yù)先生成一個(gè)xml文件,防止接收參數(shù)的swf因沒有連接到對應(yīng)的xml文件而報(bào)錯(cuò)
    If Dir("c:\test.xml") = "" Then Call WriteToXML("上海")

End Sub
Sub OnSlideShowTerminate() 'PPT播放完畢
    On Error Resume Next
    Kill "c:\test.xml" '刪除臨時(shí)生成的xml文件
End Sub

Sub WriteToXML(argsStr As String)

    Dim Str    As String
    Dim xn

    Open "c:\test.txt" For Output As #1
    Str = "<?xml version=" & Chr(34) & "1.0" & Chr(34) & " encoding=" & Chr(34) & "UTF-8" & Chr(34) & "?>"

    Print #1, , Str
    Print #1, , "<data>"
    Str = "<variable name=" & Chr(34) & "Range_0" & Chr(34) & ">"
    Print #1, , Str

    On Error Resume Next

    Print #1, , "<row>"
    Print #1, , "<column>" & argsStr & "</column>"
    Print #1, "</row>"
    Print #1, , "</variable>"
    Print #1, , "</data>"
    Close #1
    xn = "c:\test.txt"
    Call WriteToFile(xn, ReadFile(xn, CheckCode(xn)), "UTF-8")
    Kill "c:\test.xml"
    Name "c:\test.txt" As "c:\test.xml"

End Sub

Private Sub ShockwaveFlash1_FSCommand(ByVal command As String, ByVal args As String)
    Call WriteToXML(args)
End Sub



Function WriteToFile(FileUrl, Str, CharSet)
    Dim stm    As Object
    On Error Resume Next
    Set stm = CreateObject("Adodb.Stream")
    stm.Type = 2
    stm.Mode = 3
    stm.CharSet = CharSet
    stm.Open
    stm.WriteText Str
    stm.SaveToFile FileUrl, 2
    stm.flush
    stm.Close
    Set stm = Nothing
End Function

Function ReadFile(FileUrl, CharSet)
    On Error Resume Next
    Dim stm    As Object
    Dim Str
    Set stm = CreateObject("Adodb.Stream")
    stm.Type = 2
    stm.Mode = 3
    stm.CharSet = CharSet
    stm.Open
    stm.LoadFromFile FileUrl
    Str = stm.readtext
    stm.Close
    Set stm = Nothing
    '  wscript.Echo Str
    ReadFile = Str
End Function

Function CheckCode(FileUrl)
    Dim slz
    Dim Bin
    Dim Codes
    Set slz = CreateObject("Adodb.Stream")
    slz.Type = 1
    slz.Mode = 3
    slz.Open
    slz.Position = 0
    slz.LoadFromFile FileUrl
    Bin = slz.read(2)
    If AscB(MidB(Bin, 1, 1)) = &HEF And AscB(MidB(Bin, 2, 1)) = &HBB Then
        Codes = "UTF-8"
    ElseIf AscB(MidB(Bin, 1, 1)) = &HFF And AscB(MidB(Bin, 2, 1)) = &HFE Then
        Codes = "Unicode"
    Else
        Codes = "GB2312"
    End If
    slz.Close
    Set slz = Nothing
    CheckCode = Codes
End Function


發(fā)表評論 評論 (6 個(gè)評論)

回復(fù) yanwei82123300 2012-11-22 15:58
葉老師的大作真多,望與大家分享有例子的,謝謝
回復(fù) tmtony 2012-11-22 18:07
受教了。
回復(fù) 輕風(fēng) 2012-11-23 15:23
最近專門研究水晶易表啦?
回復(fù) 葉海峰 2012-11-23 17:23
輕風(fēng): 最近專門研究水晶易表啦?
是的,呵呵.
回復(fù) 輕風(fēng) 2012-11-26 14:48
葉海峰: 是的,呵呵.
好學(xué)么?我也要學(xué)
回復(fù) 葉海峰 2012-11-26 16:14
很容易學(xué).

facelist doodle 涂鴉板

您需要登錄后才可以評論 登錄 | 注冊

QQ|站長郵箱|小黑屋|手機(jī)版|Office中國/Access中國 ( 粵ICP備10043721號-1 )  

GMT+8, 2025-7-13 08:32 , Processed in 0.089511 second(s), 18 queries .

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

返回頂部