日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

三、K3 Cloud 开发插件《K3 Cloud插件开发新手指导 + K3 Cloud插件开发代码调试》

發(fā)布時(shí)間:2025/7/25 编程问答 27 豆豆
生活随笔 收集整理的這篇文章主要介紹了 三、K3 Cloud 开发插件《K3 Cloud插件开发新手指导 + K3 Cloud插件开发代码调试》 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

案例需求:在銷售訂單上新增一個(gè)按鈕,在訂單明細(xì)中新增一個(gè)字段,命名[即時(shí)庫(kù)存]。

點(diǎn)擊按鈕,彈出“Hello World!”,并獲取訂單明細(xì)物料的即時(shí)庫(kù)存,填入字段[即時(shí)庫(kù)存]。

開(kāi)發(fā)工具Visual Studio 2012

開(kāi)發(fā)語(yǔ)言Asp.net C#

=================================

目錄:

1、BOS單據(jù)加按鈕 - -【測(cè)試按鈕】

2、BOS單據(jù)加字段 - -[即時(shí)庫(kù)存]

3、創(chuàng)建Visual C#類庫(kù)

4、引入命名空間

5、編寫按鈕點(diǎn)擊事件,建議用不帶任何代碼的空白事件進(jìn)行測(cè)試

6、編譯代碼,生成DLL文件

7、插件注冊(cè)

8、IIS重啟

9、代碼調(diào)試,確保事件是否成功觸發(fā)

10、代碼調(diào)試過(guò)程分析

=================================

1、BOS單據(jù)加按鈕 - - 【測(cè)試按鈕】

?打開(kāi)【金蝶K3 Cloud BOS集成開(kāi)發(fā)平臺(tái)】,右鍵點(diǎn)擊【銷售訂單】,選擇擴(kuò)展(在擴(kuò)展/繼承模板才可加字段),

在【銷售訂單屬性】窗口,點(diǎn)擊【菜單集合】,在單據(jù)頭新增按鈕【測(cè)試按鈕】。

?

在菜單編輯中,右鍵點(diǎn)擊【工具條】,新增按鈕【測(cè)試按鈕】,標(biāo)識(shí)為 “HelloWorld”。標(biāo)識(shí)在插件代碼中識(shí)別。

?

?

2、BOS單據(jù)加字段 - - [即時(shí)庫(kù)存]

?

3、創(chuàng)建Visual C#類庫(kù)

打開(kāi)Visual Studio 2012,在菜單【文件】 - - 【新建】,點(diǎn)擊【項(xiàng)目】,新建Visual C# 類庫(kù)。

?

4、引入命名空間

?

?

?

?

5、編寫按鈕點(diǎn)擊事件,建議用不帶任何代碼的空白事件

沒(méi)有代碼的空白事件如下,并設(shè)置斷點(diǎn)調(diào)試:

?

?

這是完全代碼如下:

using System; using System.Collections.Generic; using System.Text; using Kingdee.BOS.Core.Bill.PlugIn; using Kingdee.BOS.Core.DynamicForm; using Kingdee.BOS.Core.DynamicForm.PlugIn.Args; using Kingdee.BOS.Orm.DataEntity; using Kingdee.BOS.Core.Metadata.EntityElement; using Kingdee.BOS; using Kingdee.K3.MFG.App; using System.Data;namespace MyTest.K3.FIN.SE.FirstPlugIn {public class Class1:AbstractBillPlugIn{public override void BarItemClick(BarItemClickEventArgs e){base.BarItemClick(e);if (e.BarItemKey == "HelloWorld") --HelloWorld是測(cè)試按鈕的標(biāo)識(shí){this.View.ShowMessage("Hello world!", MessageBoxType.Notice);decimal jskc; //及時(shí)庫(kù)存量string FNumber;//物料代碼string FBillNo = "";DynamicObject docSCDDIds1 = this.View.Model.DataObject;FBillNo = docSCDDIds1["Date"].ToString(); --單據(jù)頭訂單編號(hào)取值,BillNo是訂單編號(hào)的標(biāo)識(shí),在BOS中查看
--獲取單據(jù)體對(duì)象,并循環(huán)取單據(jù)體字段。FSaleOrderEntry是銷售訂單明細(xì)的單據(jù)體標(biāo)識(shí),在BOS中查看EntryEntity entryEntity
= this.View.BusinessInfo.GetEntryEntity("FSaleOrderEntry");DynamicObjectCollection docCGSQIds = this.View.Model.GetEntityDataObject(entryEntity);StringBuilder sb = new StringBuilder();OrganizationInfo og = this.Context.CurrentOrganizationInfo;--取當(dāng)前組織機(jī)構(gòu)for (int i = 0; i < docCGSQIds.Count; i++){jskc = 0;FNumber = "";//算出物料代碼sb.AppendLine("select FNumber from T_BD_Material ");sb.AppendLine("where (1=1) ");sb.AppendLine(string.Format("and FMaterialID={0}", docCGSQIds[i]["MaterialId_Id"]));FNumber = AppServiceContext.DbUtils.ExecuteScalar<string>(Context, sb.ToString(), "0", null);sb.Remove(0, sb.Length);//清空StringBuilder的方法//更新及時(shí)庫(kù)存,排除報(bào)廢倉(cāng)、不良品倉(cāng)、默認(rèn)庫(kù)存狀態(tài):不良sb.AppendLine("select isnull(SUM(t1.FBASEQTY),0) from T_STK_INVENTORY t1 ");sb.AppendLine("inner join t_BD_Material t2 on t1.FMaterialID=t2.FMaterialID ");sb.AppendLine("where (1=1) ");sb.AppendLine(string.Format("and t2.FNumber='{0}' and t1.FKEEPERID={1} ", FNumber, og.ID));using (IDataReader dr = AppServiceContext.DbUtils.ExecuteReader(Context, sb.ToString())){while (dr.Read()){//entity.DataEntity["F_Dnk_JSKC"] = dr[0];jskc = Convert.ToDecimal(dr[0]);}}sb.Remove(0, sb.Length);//清空StringBuilder的方法this.View.Model.SetValue("F_Dnk_JSKC", jskc, i); --單據(jù)體即時(shí)庫(kù)存賦值}this.View.UpdateView("F_Dnk_JSKC");}}} }

?

6、編譯代碼,生成DLL文件

右鍵點(diǎn)擊【類庫(kù)】,選擇【屬性】,在【生成】頁(yè)簽中,瀏覽DLL生成路徑(安裝根目錄下):

?

?

DLL生成路徑如下:C:\Program Files (x86)\Kingdee\K3Cloud\WebSite\bin

?

在解決方案,右鍵點(diǎn)擊【生成解決方案】或【重新生成解決方案】,成功生成MyTest.K3.FIN.SE.FirstPlugIn.DLL

?

?

7、插件注冊(cè)

在BOS開(kāi)發(fā)平臺(tái),在銷售訂單屬性中,點(diǎn)擊【表單插件】。打開(kāi)插件注冊(cè)窗口,點(diǎn)擊【注冊(cè)】,瀏覽DLL。并啟用DLL

?

8、IIS重啟

在操作系統(tǒng)的開(kāi)始菜單,打開(kāi)【運(yùn)行】,輸入cmd,打開(kāi)DOS窗口,輸入iisreset命令,重啟IIS

?

9、代碼調(diào)試,確保事件是否成功觸發(fā)

在代碼窗口,點(diǎn)擊菜單【調(diào)試】 - - 【附加到進(jìn)程】,選擇進(jìn)程【w3p】,用戶名為:NetWork Service

重點(diǎn)提示:每次代碼修改,都要點(diǎn)擊【重新生成解決方案】,重新生成DLL,并且IIS要重新重啟,新的改動(dòng)才生效,

調(diào)試也要重新附加進(jìn)程,因?yàn)镮IS重啟后,進(jìn)程ID變更了。

?

?

?

打開(kāi)K3 Cloud客戶端,打開(kāi)銷售訂單新增界面,點(diǎn)擊【按鈕測(cè)試】,觸發(fā)代碼調(diào)試

代碼調(diào)試,按F11逐語(yǔ)句調(diào)試。按F10逐過(guò)程調(diào)試。

?

運(yùn)行完代碼后,彈出“Hello World!”消息框,并把值填入字段【即時(shí)庫(kù)存】。

(由于是個(gè)人自己實(shí)戰(zhàn)訓(xùn)練的帳套,沒(méi)有維護(hù)物料和庫(kù)存,故庫(kù)存沒(méi)有值)

?

10、代碼調(diào)試分析

調(diào)試過(guò)程中,業(yè)務(wù)單據(jù)的所有的對(duì)象、變量和值,都可以在局部變量查看到

?

轉(zhuǎn)載于:https://www.cnblogs.com/star-studio/p/7966903.html

《新程序員》:云原生和全面數(shù)字化實(shí)踐50位技術(shù)專家共同創(chuàng)作,文字、視頻、音頻交互閱讀

總結(jié)

以上是生活随笔為你收集整理的三、K3 Cloud 开发插件《K3 Cloud插件开发新手指导 + K3 Cloud插件开发代码调试》的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。