本文為金蝶雲星空表單外掛開發新手教程。內容為技術類文章,而且內容較長。做星空系統二次開發的新手朋友,可以收藏作為參考。非技術職業的朋友,可以直接划走,以免耽誤您的寶貴時間。
本以為技術類文章在頭條不會有什麼閱讀量,實際情況出乎意料,看來頭條的朋友們都是非常愛學習的。不多囉嗦,上菜。
文章末尾可以找到本教程原始碼倉庫地址。
閱讀物件:雲星空二次開發新手
需求場景:在採購訂單表單工具條上新增一個按鈕,命名為“測試按鈕”,點選按鈕彈出“Hello world”提示
開發工具:Visual Studio 2019
開發語言:C#
雲星空版本:7.6.0
外掛型別:表單外掛
說明:本文前提是開發機已經安裝好金蝶雲星空系統和金蝶BOS IDE。
星空系統安裝部署教程:
開發步驟
- 使用BOS新增按鈕
- 建立Visual C#類庫
- 新增星空系統類庫的引用
- 編寫按鈕點選事件
- 編譯程式碼生成dll檔案
- 使用BOS註冊外掛
- 重啟IIS伺服器
1、使用BOS新增按鈕
開啟【金蝶雲星空整合開發平臺】,在業務檢視視窗,選擇“供應鏈”選項,並在右側的子系統中選擇“採購管理”,選擇完畢之後,點選“確定”按鈕。如下圖所示:
BOS的右側“專案”檢視視窗會加載出採購管理的基礎資料和單據等物件。如下圖所示:
說明:在上面截圖中“專案”檢視的單據列表中,選擇“採購訂單”,點選右鍵,撥出右鍵選單,選擇“擴充套件”選項。
根據星空系統的機制,系統預設的單據物件是隻讀狀態,不允許修改和調整,只有擴充套件之後,才可以對單據繼續修改調整。
點選“擴充套件”選項,系統執行完成之後,點選“儲存”按鈕,儲存之後,點選專案視窗工具欄上的“重新整理”按鈕,就可以得到下方截圖所示視窗:
我們可以看到專案視窗的單據列表中,“[KD]採購訂單”下方出現了一個名稱為“採購訂單”的單據物件。
這個單據物件就是我們需要操作的單據物件。
在BOS右下側的“採購訂單”的屬性視窗中找到“選單集合”這一屬性,撥出“選單編輯”視窗。如下圖所示:
選擇上圖視窗中的“工具條”,點選右鍵撥出右鍵下拉選單,選擇“按鈕”選項。
【重要】設定“測試按鈕”的屬性。
標題:測試按鈕
標識:Test_tbButton
後面外掛程式碼中,會根據這個標識來判斷是測試按鈕的點選。
如下圖所示:
設定完成之後,關閉“選單編輯”視窗,回到BOS主視窗,點選主視窗左上方工具欄的“儲存”按鈕。
開啟星空系統客戶端,在採購訂單表單視窗的工具條上,可以找到“測試按鈕”的按鈕。如下圖所示:
2.建立Visual C#類庫
開啟Visual Studio IDE,在啟動視窗中選擇“建立新專案”選項。如下圖所示:
在Visual Studio IDE的專案型別列表中找到“類庫(.NET Framework)”選項。如下圖所示:
點選“下一步”按鈕,配置專案資訊。
【重要】專案名稱是一個比較重要的配置項,金蝶官方在《二次開發規範》中有說明。
按照規範我們暫時將專案命名定為:
Test.K3Cloud.SCM.MyPlugin
【重要】框架選擇 .NET Framework 4
具體配置如下圖所示:
3.新增星空系統類庫的引用
在Visual Studio IDE的解決方案資源管理器視窗中,選擇“引用”,點選右鍵,撥出右鍵選單,選擇“新增引用”選項。
開啟“應用管理器”視窗,選擇“Kingdee.BOS.dll“和“Kingdee.BOS.Core.dll”。
如果視窗列表中沒有此類庫,可以點選視窗下方的“瀏覽”按鈕,在星空系統的安裝目錄中找到此類庫檔案。
預設目錄為:C:\Program Files (x86)\Kingdee\K3Cloud\WebSite\Bin
4.編寫按鈕點選事件
在Visual Studio IDE中編寫如下程式碼:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using Kingdee.BOS.Core.Bill.PlugIn;
using Kingdee.BOS.Core.DynamicForm;
using Kingdee.BOS.Core.DynamicForm.PlugIn.Args;
namespace Test.K3Cloud.SCM.MyPlugin
{
public class Class1:AbstractBillPlugIn
{
/// <summary>
/// 工具條選單點選事件
/// </summary>
/// <param name="e"></param>
public override void BarItemClick(BarItemClickEventArgs e)
{
base.BarItemClick(e);
// Test_tbButton 為自定義按鈕的標識
if (e.BarItemKey == "Test_tbButton")
{
View.ShowMessage("Hello world", MessageBoxType.Notice);
}
}
}
}
5.編譯程式碼生成dll檔案
在Visual Studio IDE選單欄中選擇“專案”選項,選擇 “Test.K3Cloud.SCM.MyPlugin”選項,開啟屬性配置視窗。
選擇視窗右側的“生成”選單選項,將輸出路徑設定為金蝶的安裝目錄的Website\bin目錄。
預設路徑為:C:\Program Files (x86)\Kingdee\K3Cloud\WebSite\Bin
配置完成之後,點選“儲存”按鈕。如下圖所示:
點選選單中的“生成”選項,在下拉選單中選擇“生成Test.K3Cloud.SCM.MyPlugin”選項。
生成“Test.K3Cloud.SCM.MyPlugin.dll”動態連結庫檔案。
在Visual Studio IDE下方的輸出視窗中顯示生成成功,則說明Test.K3Cloud.SCM.MyPlugin.dll檔案生成成功。如下圖所示:
Test.K3Cloud.SCM.MyPlugin.dll 檔案位於
C:\Program Files (x86)\Kingdee\K3Cloud\WebSite\Bin目錄。
如下圖所示:
6.使用BOS設計器註冊外掛
在BOS的專案視窗中開啟“採購訂單”表單物件,在右下方的“屬性”視窗中找到“表單外掛”屬性。
開啟“外掛配置資訊”視窗。如下圖所示:
點選“註冊”按鈕,開啟表單“外掛選擇”視窗,點選“外掛選擇”視窗最上方的“選擇程式集”,撥出下拉選單,點選“瀏覽”。如下圖所示:
在C:\Program Files (x86)\Kingdee\K3Cloud\WebSite\Bin目錄,
找到Test.K3Cloud.SCM.MyPlugin.dll檔案並選擇。
點選“外掛配置資訊”視窗的“確定”按鈕。回到BOS主視窗,點選“儲存”。
等系統儲存成功之後重啟IIS服務。
7.重啟IIS
開啟IIS管理器。選擇站點,然後點選右側視窗中的“重新啟動”按鈕。
重啟IIS。每次程式碼更新,編譯之後,都需要重啟IIS伺服器。如下圖所示:
重啟完成之後,開啟星空系統客戶端的“採購訂單”視窗。
點選“測試按鈕”按鈕,如果沒有出錯的話,就會彈出“Hello world”提示框。如下圖所示:
以上為雲星空系統外掛開發的一個最簡單示例。
除自定義外掛外,其他外掛的開發都是遵循以上流程。
開發星空系統外掛和除錯的過程中,每次更新都需要重啟IIS伺服器,當然星空系統是支援“熱更新”和“程式碼除錯分析”的,本教程為了聚焦外掛本身的開發流程,就沒有將熱更新和程式碼除錯放到教程中。
如果可能,後面會推出教程來專門講述這兩個部分。
本文的例子雖然是最簡單的,但是對於初次接觸星空系統外掛開發的新手來說,想要一次成功也有一定的難度,因為這裡除了那幾行程式碼以外,相應的配置也不少,配置錯了或者在某個環節有遺漏,那麼就不會成功。
在還不熟悉星空系統的情況下,最好的辦法是多嘗試一下。
當成功一次之後,這就是大家起飛的起點。
本教程原始碼地址:
https://gitee.com/hsg4ok_admin/kingdee_documents/tree/master/%E7%A4%BA%E4%BE%8B%E4%BB%A3%E7%A0%81/Test.K3Cloud.SCM.MyPlugin
更多精彩內容釋出於公眾號:程式碼乾坤 (CoderLand)
說明:
本人當前為獨立開發者,在做軟體開發的同時也在嘗試做自媒體;
做自媒體的初心是為了幫助那些需要幫助的朋友,特別是程式設計師朋友;
如果我輸出的內容對您有所幫助,請幫忙點贊支援一下,如果有冒犯到的地方,請私信給我,我這邊做調整。謝謝大家!