sponsored links

金蝶雲星空外掛實戰開發-新手保姆級教程-表單外掛

本文為金蝶雲星空表單外掛開發新手教程。內容為技術類文章,而且內容較長。做星空系統二次開發的新手朋友,可以收藏作為參考。非技術職業的朋友,可以直接划走,以免耽誤您的寶貴時間。

本以為技術類文章在頭條不會有什麼閱讀量,實際情況出乎意料,看來頭條的朋友們都是非常愛學習的。不多囉嗦,上菜。

文章末尾可以找到本教程原始碼倉庫地址。



閱讀物件:雲星空二次開發新手
需求場景:在採購訂單表單工具條上新增一個按鈕,命名為“測試按鈕”,點選按鈕彈出“Hello world”提示
開發工具:Visual Studio 2019
開發語言:C#
雲星空版本:7.6.0
外掛型別:表單外掛

說明:本文前提是開發機已經安裝好金蝶雲星空系統和金蝶BOS IDE。
星空系統安裝部署教程:

金蝶雲社群課程詳情-課程詳情-金蝶雲社群官網

開發步驟

  1. 使用BOS新增按鈕
  2. 建立Visual C#類庫
  3. 新增星空系統類庫的引用
  4. 編寫按鈕點選事件
  5. 編譯程式碼生成dll檔案
  6. 使用BOS註冊外掛
  7. 重啟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)

說明:

本人當前為獨立開發者,在做軟體開發的同時也在嘗試做自媒體;

做自媒體的初心是為了幫助那些需要幫助的朋友,特別是程式設計師朋友;

如果我輸出的內容對您有所幫助,請幫忙點贊支援一下,如果有冒犯到的地方,請私信給我,我這邊做調整。謝謝大家!

分類: 科學
時間: 2021-12-27

相關文章

人類發展歷史長河之燈塔!淺析文化君前世今生

人類發展歷史長河之燈塔!淺析文化君前世今生
自古華夏民族崇尚儒家思想,尊崇文化的學習及文人雅士的修養! 自從盤古開天地,地球上有了人類的活動,華夏大地上五千年的文化傳承,而得以弘揚延續至今,人類生存為了應對大自然災害,在歷史的演變中從個體到族群 ...

2.34億年前,一場200萬年的大雨,將恐龍扶上了霸主的寶座

2.34億年前,一場200萬年的大雨,將恐龍扶上了霸主的寶座
地球從上生命誕生開始,大自然就一直在不斷的對已經存活於世界的物種進行篩查考核. 在達爾文的<物種起源>中,生物進化的"優勝劣汰"闡明瞭一切,面對大自然的考驗,所有生物都 ...

財政資金如何更好投資科技領域
周城雄:財政資金如何更好投資科技領域 財政資金對科技領域的投資分為兩種型別:一是對科技研發活動進行投資,物件既可以是高校和科研機構,也可以是企業的研發活動:二是對科技企業進行投資. 我國正處於向高質量 ...

美科學家發現地球正“變綠”,原因在中印,但專家對印度十分擔憂

美科學家發現地球正“變綠”,原因在中印,但專家對印度十分擔憂
綜述‍ 森林是地球上最大的陸地生態系統,是全球生物圈中最重要的一環.其不僅具有製造氧氣.淨化空氣.過濾空氣中塵埃的能力之外,還可以緩解城市熱島效應.可以說森林的存在為諸多生物創造了舒適的生活圈. 但人 ...

人才流失太嚴重,東北企業求賢若渴!親愛的“孔雀”你能否慢點兒飛……
21世紀什麼最貴?答案是:人才!擁有人才,在某種程度來說就等於是擁有未來. 日前,證券時報記者在黑龍江.遼寧.吉林三省採訪獲悉,一些經營勢頭很好的東北企業.特別是高科技企業,基於公司未來持續發展的考慮 ...

人類還在演化嗎?

人類還在演化嗎?
從猿類到現代人類,我們的演化走向終點了嗎?如今人類是不是還在演化?在未來,我們會變成什麼樣子? The March Of Progress, Rudolph Zallinger, 1965 作者|劉天 ...

冒險家狂喜!人類再次住進太空

冒險家狂喜!人類再次住進太空
重回上世紀Space Age, 那時萬物正交響. 相比地心與海底,人們總是對於天空有著更深沉而持久的嚮往. 當第二次世界大戰結束後,美國和蘇聯開始了漫長的"冷戰".此後的十年中,「 ...

這種魚出生時還沒蝦米大,同類殘食,勝利者即為“海洋霸主”

這種魚出生時還沒蝦米大,同類殘食,勝利者即為“海洋霸主”
生活在沿海城市的人們都知道大海有多美,晴朗時,金黃的沙灘之外深海共晴天一色,那種顏色又清又亮,像是濃墨重彩旁的一抹孤獨的淡藍,一眼望去,只感覺海天沒有了界線,整個世界都變得遼闊無垠了起來.而探入深海, ...

可可西里為何不允許隨意進入?帶你深度瞭解這一“人類禁區”

可可西里為何不允許隨意進入?帶你深度瞭解這一“人類禁區”
前言 在我國,有一個極具神秘色彩的地區,因為包括了我國最大面積的無人居住的土地,許多人都對這片未知的區域懷有好奇之心和嚮往. 這裡有綿延的雪山.一望無際的草原.清澈的湖水.白雲的倒影和成群的野生動物, ...

為啥人類找不到外星人?比黑暗森林更可怕的大過濾理論,給出解釋

為啥人類找不到外星人?比黑暗森林更可怕的大過濾理論,給出解釋
前言 市場上的科幻小說有很多,以前的科幻小說中,經常會暢想未來,因為在幾十年前,科技的發展十分迅猛,每個人對未來的環境充滿期待,在他們的幻想中,未來社會一定是一個美好的,高度發達的世界. 但是現在市場 ...

失聯51年的東方紅衛星,現狀如何,中國還能接它“回家”嗎?

失聯51年的東方紅衛星,現狀如何,中國還能接它“回家”嗎?
你知道中國發射的第1顆人造衛星叫什麼名字嗎?它什麼時候完成的發射任務呢?它在被研製的過程中又遇到了哪些困難?而它現在的處境又是如何呢? 一:驀地飛仙降碧空,雲車雙輛挈靈童. 其實中國發射的第1顆人造衛 ...

50億年後,太陽開始熄滅,地球不再適合生命居住,人類怎麼辦?

50億年後,太陽開始熄滅,地球不再適合生命居住,人類怎麼辦?
地球 地球是一顆蔚藍色的行星,從太空中觀察會發現,地球表面大部分被海洋覆蓋,陸地只佔整體的很小一部分,從資料來看海洋佔據了地球表面的71%,我們生活的陸地只是地球的很小一部分. 在地球的類地行星中,地 ...

地雷打飛機,美國都害怕?價格居然還很便宜!中東某組織:給我買

地雷打飛機,美國都害怕?價格居然還很便宜!中東某組織:給我買
你敢相信地上的地雷可以打天上的飛機嗎?這種地雷都用到哪些地方了?它又是怎麼做出來的呢?你敢相信,那些電影裡踩住就不能松腳的地雷竟然可以打到天上的直升機?這到底是怎麼回事呢? "美軍出糗&qu ...

人類歷史巨無霸,270萬噸級郵輪,比美軍福特級大27倍

人類歷史巨無霸,270萬噸級郵輪,比美軍福特級大27倍
眾所周知,航母是一種高科技武器,擁有最先進的技術.說到這裡,大多數人都會想到美軍的福特級航母.它在2017年7月正式開始服役,排水量達到11萬噸,可搭乘4000多名美軍,裡面有幾百個房間,可見航母的龐 ...

五種不一樣的人類,你能接受哪一種?

五種不一樣的人類,你能接受哪一種?
每個人都有各自喜好,有些人喜歡平凡.普通安然無恙地度過小日子,有些人則偏愛鋒芒畢露,成為眾人的焦點,但不管是哪一種喜好,而不造成別人的傷害都值得被尊重.現今的社會上存在著一些小眾喜好,讓執行他們的人們 ...

旅行者2號遇到“火牆”阻擋,溫度達49427℃,人類飛不出太陽系?

旅行者2號遇到“火牆”阻擋,溫度達49427℃,人類飛不出太陽系?
綜述 從很久以前的古代開始,人類雖然還沒有具備認清世界的能力,但已經充滿了對宇宙的好奇.西方占星學上有黃道12星座,即黃道十二宮,是對宇宙方位的代名詞,是人們描述太陽在天體上經過黃道的十二個被均分的區 ...

人類的起源竟有可能來源自外太空

人類的起源竟有可能來源自外太空
說起人類起源,這個話題人們一直存在著爭議,目前主流的主要有三個觀點. 神創論 人們認為是"神"或者是"上帝"創造了人類,當然這種創世論在世界各地的神話傳說中都能 ...

地球上的森林面積增加1倍後會發生什麼?人類將難以承受後果

地球上的森林面積增加1倍後會發生什麼?人類將難以承受後果
自然環境組成部分 地球是我們人類賴以生存的家園.就地球環境來說,它是由大氣圈.水圈.生物圈和岩石圈組成,每個圈層都有著自己的功能. 它們的存在,促成了不同的自然環境,有的存在茂密森林.有的貧瘠.有的河 ...

太陽熄滅,人類8分鐘後能感知到嗎?準確來說是10000年

太陽熄滅,人類8分鐘後能感知到嗎?準確來說是10000年
前言 我們人類發展至今,依靠的就是聰明的大腦和智慧,但有一樣東西也是人類發展不可缺少的,那就是能源. 人類對能源的最早利用,就是使用牛馬羊等牲畜,使用它們的力氣幫忙搬運貨物或者加快移動速度,這是對生物 ...

連最基本的誠意都沒有,還想讓中國辦事?中國誰的面子都不給

連最基本的誠意都沒有,還想讓中國辦事?中國誰的面子都不給
環境保護已經成為國際共識,根據京都議定書和巴黎全球氣候大會的決議,各國都制定了自己的碳排放計劃.我國計劃在2030年達到二氧化碳排放峰值,2060年達到碳中和.限制各國二氧化碳的排放主要是為了保護我們 ...