<form id="hz9zz"></form>
  • <form id="hz9zz"></form>

      <nobr id="hz9zz"></nobr>

      <form id="hz9zz"></form>

    1. 明輝手游網中心:是一個免費提供流行視頻軟件教程、在線學習分享的學習平臺!

      在powerbuilder中向Excel傳遞數據

      [摘要]PowerBuilder是面向對象的數據庫開發工具之一,它可以操縱很多大型數據庫和桌面數據庫,但它對中國式報表打印不太方便,而 Excel對此卻非常容易,若把兩者結合起來使用則可取長補短。   建立...
          PowerBuilder是面向對象的數據庫開發工具之一,它可以操縱很多大型數據庫和桌面數據庫,但它對中國式報表打印不太方便,而 Excel對此卻非常容易,若把兩者結合起來使用則可取長補短。

        建立一個Excel工作表如圖1,以mxz.xls為文件名保存。  

        然后編寫腳本如下并執行:

        long handle_1

        handle_1=openchannel(″excel″,″mxz.xls″) //建立與Excel的通道

        setremote(″r2c1″,″序號″,″excel″,″mxz.xls″)

        setremote(″r2c2″,″摘要″,″excel″,″mxz.xls″)

        setremote(″r2c3″,″收入″,″excel″,″mxz.xls″)

        setremote(″r2c4″,″支出″,″excel″,″mxz.xls″)

        setremote(″r2c5″,″余額″,″excel″,″mxz.xls″)

        setremote(″r2c6″,″日期″,″excel″,″mxz.xls″)

        execremote(″[Save()]″,″excel″,″xmk.xls″)

        上述腳本執行后,再打開mxz.xls,它變成了如圖2的模樣:

        其實,這段腳本用到了三個DDE客戶函數:OpenChannel()、SetRemote()和ExecRemote(),其實,掌握了這三個DDE函數,就可以隨心所欲地寫出打印功能十分強大的PowerBuilder數據庫程序來。

        一、OpenChannel()   它的功能是打開連接DDE服務器的通道。

        語法   OpenChannel ( applname, topicname {, windowhandle } )

        參數 applname:string類型,指定DDE服務器應用的DDE名稱。

        topicname:string類型,指定命令中要使用的DDE應用的數據或實例。

        windowhandle:long類型,可選項,指明用作DDE客戶的PowerBuilder窗口的窗口句柄。省略該參數時,當前應用中的活動窗口用作DDE客戶。  

       返回值 long類型。函數執行成功時返回一個正數作為已打開通道的句柄,發生錯誤時返回下述值之一:   -1打開失敗。  

      -9句柄為NULL。   

      示例: 下面的代碼建立到Excel的DDE通道,之后請求三個單元格的數據,并把這些數據保存在數組s_regiondata中。DDE會話的客戶端窗口為w_ddewin:

      long handle   

      string s_regiondata[3]

      handle = OpenChannel(″Excel″, ″REGION.XLS″, Handle(w_ddewin))

      GetRemote(″R1C2″, s_regiondata[1], handle, Handle(w_ddewin))   

      GetRemote(″R1C3″, s_regiondata[2], handle, Handle(w_ddewin))

      GetRemote(″R1C4″, s_regiondata[3], handle, Handle(w_ddewin))

      CloseChannel(handle, Handle(w_ddewin))   

      二、SetRemote()   功能是請求服務器應用把指定項設置為指定值。該函數有兩種語法格式,下面分別予以介紹:  

       語法一,請求DDE服務器應用接收保存在指定位置的數據,該格式不要求事先打開通道,適用于僅發出少數幾個請求的情況。

        SetRemote ( location, value, applname, topicname )

        參數   

      location:string類型,指明要DDE服務器的哪一部分接收數據,位置的表達方式由具體的DDE服務器決定。   

      value:string類型變量,指定發送給DDE服務器的數據。

      applname:string類型,指定DDE服務器應用的DDE名稱。   

      topicname:string類型,指定要接收數據的DDE應用的數據或實例。   

      返回值   integer類型。函數執行成功時返回1,發生錯誤時返回下述值之一:

       。1未啟動連接。

       。2請求被拒絕,

      如果任何參數的值為NULL,SetRemote()函數返回NULL。  

       示例:下面的代碼請求Excel把工作表SALES.XLS的第5行第8列單元的值設置為5500:

        SetRemote(″R5C8″, ″5500″, ″Excel″, ″SALES.XLS″)  

       語法二,請求DDE服務器應用接收保存在指定位置的數據,該格式適用于熱連接的情況,即應用程序已經與服務器建立通道。   

      SetRemote ( location, value, handle {, windowhandle } )   參數  

       location:string類型,指明要DDE服務器的哪一部分接收數據。位置的表達方式由具體的DDE服務器決定。   value:string類型變量,指定發送給DDE服務器的數據。  

       handle:long類型,指定使用的DDE通道句柄。  

       windowhandle:long類型,可選項,指明用做DDE客戶的PowerBuilder窗口的窗口句柄。省略該參數時,當前應用中的活動窗口用做DDE客戶。   

      返回值   integer類型。函數執行成功時返回1,發生錯誤時返回下述值之一:

       。1未啟動連接。   

      -2請求被拒絕。

      -9 Handle參數的值為NULL。

        示例:下面的代碼先打開一個通道,然后請求Excel將第5行第8列單元的值設置為5500:

        long hand   

      lehandle = OpenChannel(″Excel″, ″REGION.XLS″)   

      SetRemote(″R5C8″, ″5500″, handle)   

      三、ExecRemote()  

       它的功能是請求DDE服務器應用程序執行命令。該函數也有兩種語法格式,下面分別予以介紹。

        語法一,直接向DDE服務器應用發送一條命令(冷連接方式);

        ExecRemote ( command, applname, topicname )   

      參數   

      command:string類型,其值為希望DDE服務器應用執行的命令,命令格式和語法需要參看DDE服務器應用的文檔applname:string類型,指定服務器應用的DDE名稱。   

      topicname:string類型,指定命令中要使用的DDE應用的數據或實例返回值Integer。函數執行成功時返回1,發生錯誤時返回下述值之一:   

      -1未啟動連接。   

      -2請求被拒絕。

      -3不能終止服務器。   

      如果任何參數的值為NULL,ExecRemote()函數返回NULL。   

      示例:下面的語句請求Excel將活動工作表的內容保存到文件REGION.XLS中:

        ExecRemote(″[Save()]″, ″Excel″, ″REGION.XLS″)   

      語法二,應用程序打開某個通道后向DDE服務器應用發送命令(熱連接方式)   

      ExecRemote ( command, handle {, windowhandle } )   

      參數   

      command:string類型,其值為希望DDE服務器應用執行的命令,命令格式和語法需要參看DDE服務器應用的文檔 handle:long類型,指定使用的DDE通道句柄   

      windowhandle:long類型,可選項,指明用做DDE客戶的PowerBuilder窗口的窗口句柄。省略該參數時,當前應用中的活動窗口用做DDE客戶,返回值integer。函數執行成功時返回1,發生錯誤時返回下述值之一:  

      -1未啟動連接。  

      -2請求被拒絕

      -9handle參數的值為NULL。   

      (新疆 尚建軍) 


      日韩精品一区二区三区高清