91av视频/亚洲h视频/操亚洲美女/外国一级黄色毛片 - 国产三级三级三级三级

  • 大小: 0.57M
    文件類型: .zip
    金幣: 1
    下載: 0 次
    發布日期: 2021-02-26
  • 語言: C#
  • 標簽: Csharp??.NET??NET??cs??開發??

資源簡介


    如何使用VC#.net 開發BOS插件

技術支持看到這個問題http://dev.kingdee.com/ask/question.php?qid=4086 ,稍稍研究了一下,然后有這篇總結。

這里的BOS插件是指傳統的、VB的、GUI版本的BOS,不是指eBOSVB能否開發eBOS的插件,我不清楚;不過VC#.net肯定是可以開發BOS插件的。

 

以下以BOS單據插件為例講解。我使用的開發環境是VS2005 SP1英文版,其他版本設置可能稍有不同,可摹擬得之。步驟如下:

 

1、  新建VC# Class Library 工程:



2、 添加相關引用

添加COM組件K3ClassEvents,會自動引用它所依賴的KFO和ADODB。然后再手工添加System.Windows.Forms。 在程序開頭加上:

using System.Runtime.InteropServices; //for com interop using System.Windows.Forms; //for MessageBox

3、 然后修改類屬性:

[ClassInterface(ClassInterfaceType.AutoDual)] public class BillPlugin

{ }

4、 在用VB開發BOS插件時,我們必須在類模塊中添加一個成員變量 m_oBillInterface,用于保存插件接口

對象;必須在類模塊中添加一個公開的成員函數Show,供BOS初始化插件調用。在C#.net中開發插件時,要做同樣的處理。代碼如下:

[ClassInterface(ClassInterfaceType.AutoDual)] public class BillPlugin {

public void Show(object o) { try {

m_BillInterface = (K3ClassEvents.BillEvent)o; MessageBox.Show(\); }

catch(Exception e) {

MessageBox.Show(\); } }

K3ClassEvents.BillEvent m_BillInterface;

}

上述代碼一看就懂,就不解釋了。

5、 下一步我們要讓插件響應BOS單據的事件。添加如下代碼:

上面響應了菜單點擊事件(MenuBarClick)與單元格值更改事件(Change)。跟.net對系統事件的處理完全一樣。 在_MenuBarClick事件中,如果檢測到點擊的菜單項是“計算器”,就彈出一個對話框。 在_Change事件中,顯示字段名稱、修改的行號、字段保存值。 你可以在這里加入其他事件處理過程,項目中需要什么就加什么。

VS2005非常智能,當我輸入m_BillInterface.MenuBarClick = new K3ClassEvents. 并選中事件之后,按兩次Tab鍵就會跳出后面的事件處理器名稱與參數列表,并給出相應的函數聲明。這樣連我這個.net菜鳥都能快速寫出上面的代碼來!什么時候VC也有這樣的功能啊,可憐我總是要一行行手寫接口啊。

6、 然后修改工程屬性。要修改的地方有兩處:

一是Build 下面的 Register for COM interop,要打上勾;

二是Application的Assembly Information…中的 Make assembly COM-Visible選項,要打上勾。

這一步很重要,如果不做這個設置的話,VB就無法調用.net的類庫。保存設置以后,就可以編譯生成.dll了。

7、 現在大功即將告成,不過行百里者半九十,我們立即測試一下。打開BOS IDE,新建單據,添加字段,

指定插件為NetPluginTest.BillPlugin(我的工程名稱為NetPluginTest,類名為BillPlugin),保存模板,F5運行,點工具欄的“計算器”,或修改任何字段的值,應該就可以看到效果了。

如果不能,嘿嘿嘿嘿嘿,我也不知道為啥,問我沒用,自己研究吧!

8、 其他事項: 首先,上面的插件在我的機器上運行是很慢的,尤其是調試的時候。 其次,.net的程序需要.net framework runtime 支持,如果目標機器上沒有裝正確版本的.net運行時的話,插件當然是跑不起來的。而且上面也沒有研究部署的問題,我的意思是,安裝插件到客戶機器上的時候,是否要注冊到GAC什么的,這個問題需要你自己搞定。另外,這樣生成的代碼對K3ClassEvents的版本是否有依賴?K3ClassEvents升級后,本插件是否仍然可用?這個需要測試。因為我不懂.net,所以無法給你答案。上面的示例,目前來說僅供研究,風險自負。 最后,.net實在是方便、好用、夠強大,連我這個從來沒摸過.net的人,都可以花1.5小時研究出插件寫法、編出代碼并測試過,聰明的、精通.net的你肯定更不在話下啦!


資源截圖

代碼片段和文件信息

using?System;
using?System.Collections.Generic;
using?System.Text;
using?System.Runtime.InteropServices;???//for?com?interop
using?System.Windows.Forms;?????????????//for?MessageBox


namespace?NetPlugInTest
{
????[ClassInterface(ClassInterfaceType.AutoDual)]
????public?class?BillPlugin
????{
????????public?void?Show(object?o)
????????{
????????????try?{
????????????????m_BillInterface?=?(K3ClassEvents.BillEvent)o;
????????????????m_BillInterface.MenuBarClick?+=?new?
????????????????????K3ClassEvents.__BillEvent_MenuBarClickEventHandler(m_BillInterface_MenuBarClick);
????????????????m_BillInterface.Change?+=?new?
????????????????????K3ClassEvents.__BillEvent_ChangeEventHandler(m_BillInterface_Change);
????????????????MessageBox.Show(“I‘m?in.“);
????????????}
????????????catch(Exception?e)
????????????{
????????????????MessageBox.Show(“Invalid?interface.“);
????????????}

????????}

????????void?m_BillInterface_Change(KFO.Dictionary?dct?
??????????????????

?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????目錄???????????0??2009-09-23?16:23??NetPlugInTest\
?????目錄???????????0??2009-09-23?16:23??NetPlugInTest\NetPlugInTest\
?????目錄???????????0??2009-09-23?16:23??NetPlugInTest\NetPlugInTest\Properties\
?????文件????????1396??2009-09-23?16:31??NetPlugInTest\NetPlugInTest\Properties\AssemblyInfo.cs
?????文件????????1945??2009-09-24?10:13??NetPlugInTest\NetPlugInTest\Class1.cs
?????文件????????3609??2009-09-23?17:01??NetPlugInTest\NetPlugInTest\NetPlugInTest.csproj
?????目錄???????????0??2009-09-23?16:23??NetPlugInTest\NetPlugInTest\bin\
?????目錄???????????0??2009-09-23?16:23??NetPlugInTest\NetPlugInTest\bin\Debug\
?????文件???????16384??2009-09-23?17:46??NetPlugInTest\NetPlugInTest\bin\Debug\NetPlugInTest.dll
?????文件???????13824??2009-09-23?17:46??NetPlugInTest\NetPlugInTest\bin\Debug\NetPlugInTest.pdb
?????文件???????73728??2009-09-23?16:27??NetPlugInTest\NetPlugInTest\bin\Debug\Interop.ActiveBarLibrary.dll
?????文件??????901120??2009-09-23?16:27??NetPlugInTest\NetPlugInTest\bin\Debug\Interop.K3ClassEvents.dll
?????文件???????40960??2009-09-23?16:27??NetPlugInTest\NetPlugInTest\bin\Debug\Interop.KFO.dll
?????文件????????2280??2009-09-23?17:46??NetPlugInTest\NetPlugInTest\bin\Debug\NetPlugInTest.tlb
?????目錄???????????0??2009-09-23?16:23??NetPlugInTest\NetPlugInTest\obj\
?????目錄???????????0??2009-09-23?16:23??NetPlugInTest\NetPlugInTest\obj\Debug\
?????目錄???????????0??2009-09-23?16:23??NetPlugInTest\NetPlugInTest\obj\Debug\TempPE\
?????文件???????40960??2009-09-23?16:27??NetPlugInTest\NetPlugInTest\obj\Debug\Interop.KFO.dll
?????文件???????73728??2009-09-23?16:27??NetPlugInTest\NetPlugInTest\obj\Debug\Interop.ActiveBarLibrary.dll
?????文件???????49152??2009-09-23?16:27??NetPlugInTest\NetPlugInTest\obj\Debug\Interop.VBRUN.dll
?????文件???????10752??2009-09-23?16:27??NetPlugInTest\NetPlugInTest\obj\Debug\Interop.VBA.dll
?????文件??????901120??2009-09-23?16:27??NetPlugInTest\NetPlugInTest\obj\Debug\Interop.K3ClassEvents.dll
?????文件?????????966??2009-09-23?16:27??NetPlugInTest\NetPlugInTest\obj\Debug\NetPlugInTest.csproj.ResolveComReference.cache
?????文件???????16384??2009-09-23?17:46??NetPlugInTest\NetPlugInTest\obj\Debug\NetPlugInTest.dll
?????文件???????13824??2009-09-23?17:46??NetPlugInTest\NetPlugInTest\obj\Debug\NetPlugInTest.pdb
?????文件????????1025??2009-09-23?17:46??NetPlugInTest\NetPlugInTest\obj\NetPlugInTest.csproj.FileListAbsolute.txt
?????文件?????????544??2009-09-23?17:46??NetPlugInTest\NetPlugInTest\obj\NetPlugInTest.csproj.UnmanagedRegistration.cache
?????文件?????????313??2009-09-23?17:19??NetPlugInTest\NetPlugInTest\NetPlugInTest.csproj.user
?????文件?????????928??2009-09-23?16:23??NetPlugInTest\NetPlugInTest.sln
?????文件???????14336??2009-09-24?10:14??NetPlugInTest\NetPlugInTest.suo
?????文件??????117760??2009-09-24?12:09??使用VCSharp.net開發BOS插件.doc
............此處省略0個文件信息

評論

共有 條評論