金蝶二次开发 K3插件开发 指导手册(初稿)

合集下载

金蝶k3-最全的操作使用手册图文(最新版本)

金蝶k3-最全的操作使用手册图文(最新版本)

K3 wise 12 版本系统概述关于本系统总账系统是财务会计系统中最核心的系统,以凭证处理为中心,进行账簿报表的管理。

可与各个业务系统无缝联接,实现数据共享。

企业所有的核算最终在总账中体现。

本系统主要功能有:✓多重辅助核算✓科目计息控制✓科目预算控制✓凭证分账制核算流程✓强大的账簿报表查询✓多币别核算的处理✓现金流量表的制作✓往来业务的核算处理,精确计算账龄✓与其他业务系统无缝链接✓对业务系统生成的凭证提供明细管理功能✓自动转账设置✓期末调汇的处理✓期末损益结转✓结账日的控制可以进行月份的选择✓集团内部往来协同1.1.1多重辅助核算:在总账系统中,可对科目设置任意多的核算项目进行多重辅助核算。

并且提供丰富的核算项目账簿和报表,满足企业对多种辅助核算信息的项目管理。

1.1.2提供科目计息控制:在未使用结算中心系统时,可以对科目进行利息计算,提供资金管理,计算科目积数与利息,计算各种资金机会成本。

1.1.3提供科目预算控制:可进行科目预算,科目预算也可从预算管理系统中引入,从而在凭证录入时可根据需要进行各种控制。

而与预算管理系统集成使用,可以实现更复杂的预算管理与控制。

1.1.4提供凭证分账制核算流程:系统在提供对外币通常的核算要求——统账制的基础上,同时提供了分账制核算要求下的从凭证处理到业务报表的完整核算流程。

1.1.5强大的账簿报表查询:查询账簿报表时,可追查至明细账直至凭证,同时可查询到核算项目信息。

有跨期查询功能,可以在本期未结账的情况下查询以后期间的数据。

提供多种核算项目报表的查询,可进行多核算项目类别的组合查询。

具体提供的账簿包括:总分类账、明细分类账、数量金额总账、数量金额明细账、多栏账、核算项目分类总账、核算项目明细账等;具体提供的报表包括:科目余额表、试算平衡表、日报表、摘要汇总表、核算项目余额表、核算项目明细表、核算项目汇总表、核算项目组合表、核算项目与科目组合表、科目利息计算表、调汇历史信息表等。

金蝶二次开发 K3插件开发 指导手册(初稿)(优选.)

金蝶二次开发 K3插件开发 指导手册(初稿)(优选.)

金蝶 K/3 BOS V10.1插件开发指导手册金蝶软件(中国)有限公司2004.9目录打个小广告:金蝶二次开发技术交流QQ群①群 30121062 已满②群 28307002 未满③群待定大家共同学习共同进步1开发基础 (3)1.1插件开发概念 (3)1.2插件开发配置 (3)2开发指南 (4)2.1创建一个金蝶K/3 BOS 插件 (4)2.1.1创建一个金蝶K/3 BOS 客户端事件插件 (4)2.1.2创建一个金蝶K/3 BOS 中间层事件插件 (9)2.2自定义金蝶K/3 BOS 标准菜单、工具栏 (11)2.3添加新的菜单、工具栏 (12)2.4添加新的事件、方法 (12)2.5访问中间层和数据库 (12)2.6保存数据 (12)3参考 (13)3.1客户端插件事件、方法、属性 (13)3.2中间层插件事件 (13)3.3判断业务对象引用存储过程 (13)3.4金蝶K/3 BOS数据库结构 (13)4示例 (13)4.1XXX (13)1开发基础1.1插件开发概念金蝶K/3运行平台为金蝶K/3 BOS开发的业务单据提供了稳定、标准的运行环境,但为了实现客户更加个性化的需求和保持金蝶K/3 BOS架构的开放性,还为客户化开发提供了插件编程机制:通过金蝶K/3 BOS业务单据和序时簿事件代理组件,把业务单据处理的关键事件接口抛出,客户可以接收这个事件代理组件,并对组件的抛出事件编程,从而实现个性化的事件处理方法,对金蝶K/3 BOS运行平台进行有效的扩充和扩展。

需要注意的是:a) 当前版本的金蝶K/3 BOS支持的插件,仅应用在金蝶K/3的GUI版本,不支持WEB版本;b) 当前版本的金蝶K/3 BOS支持采用Microsoft Visual Basic 编写的插件,采用的类型推荐为ActiveX DLL 类型;c) 当前版本的金蝶K/3 BOS支持的插件分为客户端事件插件、中间层事件插件;在本手册中,我们所有关于金蝶K/3 BOS插件的定义、描述、示例等,都符合上述3点特征。

K3客户化开发指导手册v1.0

K3客户化开发指导手册v1.0
K/3 客户化开发指导手册 v1.0
©金蝶软件(中国)有限公司 K/3 产品事业部.设计部
概述
随着 K/3 系统的广泛应用,越来越多的 K/3 客户,特别是一些特殊行业的客户希望利用 K/3 系统实现个性化需求,进行个性化的客户化开发。为了能满足客户的个性化要求,同时 标准化 K/3 系统的二次开发,特别提供了 K/3 客户化开发指导手册和工具包,为二次开发配 备资源,指导客户进行 K/3 系统的二次开发以满足自身的个性化需求。
通过该文档,您可以了解到
1、 定制 K/3 登录 Logo 2、 定制主控台菜单并调用客户化开发模块 3、 工业单据二次开发 4、 代理服务二次开发 5、 K/3 凭证接口 6、 K/3 发票接口 7、 K/3 数据交换接口 8、 K/3BOS 定制开发 9、 第三方系统集成无界面登录 K/3 10、K/3HR 系统无界面登录 11、提供无界面凭证引入功能 12、K/3HR 系统对外接口
2
定制 K/3 登录 Logo
登录界面添加客户化 Logo
在中间层 KDCOM 下新建一个文件夹,命名为 eptlogo 并将其设置为只读共享,然后制作 一个 BMP 格式的图片,大小为 145×180,命名为 enterprise_logo.bmp,然后在客户端的主 控台编辑器启用企业界面即可。
该文档阅读的适用对象
1、 金蝶 K/3 系统开发工程师 2、 机构 K/3 二次开发工程师 3、 客户 K/3 定制开发人员 4、 想了解 K/3 客户化开发的人员
1
目录
目录 ....................................................................................................................... 2 定制K/3 登录Logo ................................................................................................... 3

金蝶K3wise插件二次开发与配置

金蝶K3wise插件二次开发与配置

⾦蝶K3wise插件⼆次开发与配置开发环境:K/3 Wise 13.0、K/3 Bos开发平台、Visual Basic 6.0⽬录⼀、⼆次开发插件编程⼆、代码演⽰三、配置插件四、测试插件五、插件事件附录⼀、⼆次开发插件编程 打开Visual Basic 6.0,新建⼯程ActiveX DLL: 命名为FirstPlugin.class: 引⽤类库如下: 已安装K/3 Wise,在VB 6.0菜单栏上会多出⼀个⾦蝶开发插件: 打开⾦蝶开发向导,创建⼯业单据客户端插件(⼯业单据俗称“⽼单”): 点击“确定”,选择类“FirstPlugin”: 点击“下⼀步”,这⾥我们⾃定义⼀个菜单项“插件⼯具”: 点击“下⼀步”,选择事件“UserMenuClick”: 完成向导。

⼆、代码演⽰ 代码编写如下:'配置路径:供应链-外购⼊库单'函数功能:插件⼯具--根据“长、宽、厚”⾃动计算批号'定义插件对象接⼝. 必须具有的声明, 以此来获得事件Private WithEvents m_BillTransfer As K3BillTransfer.BillDim F55 As Long, F55Text As String '长Dim F56 As Long, F56Text As String '宽Dim F57 As Long, F57Text As String '⾼Dim FDate As Long, FDateText As String '⽇期Dim FBatchNo As String '批号Dim FItemID As Long, FNumber As String '物料编码Dim FBatchManager As Boolean '是否采⽤业务批号管理Dim str As StringPublic Sub Show(ByVal oBillTransfer As Object)'接⼝实现'注意: 此⽅法必须存在, 请勿修改Set m_BillTransfer = oBillTransferEnd SubPrivate Sub Class_Terminate()'释放接⼝对象'注意: 此⽅法必须存在, 请勿修改Set m_BillTransfer = NothingEnd SubPrivate Sub m_BillTransfer_BillInitialize()'*************** 开始设置菜单 ***************m_BillTransfer.AddUserMenuItem "⾃动批号", "插件⼯具"'*************** 结束设置菜单 ***************'TODO: 请在此处添加代码响应事件 BillInitializeF55 = GetCtlIndexByFld("FEntrySelfA0155", True)F56 = GetCtlIndexByFld("FEntrySelfA0156", True)F57 = GetCtlIndexByFld("FEntrySelfA0157", True)FBatchNo = GetCtlIndexByFld("FBatchNo", True)FDate = GetCtlIndexByFld("FDate", False)FItemID = GetCtlIndexByFld("FItemID", True)End SubPrivate Sub m_BillTransfer_UserMenuClick(ByVal Index As Long, ByVal Caption As String)'TODO: 请在此处添加代码响应事件 UserMenuClickSelect Case CaptionCase "⾃动批号"'此处添加处理批号⽣成菜单对象的 Click 事件With m_BillTransferFor i = 1 To 1000If .GetGridText(i, FItemID) = "" ThenExit ForEnd If'从物料表检测是否采⽤业务批次管理Dim strSQL As String '⽤于执⾏SQLDim rs As ADODB.RecordsetFNumber = ""FNumber = .GetGridText(i, FItemID)strSQL = ""strSQL = "SELECT FBatchManager FROM t_ICItem WHERE FNumber='" & FNumber & "'"Set rs = SQLHelper.ExecuteSQL(strSQL, "")If rs.EOF = False ThenFBatchManager = rs.Fields("FBatchManager")End IfSet rs = NothingF55Text = .GetGridText(i, F55)F56Text = .GetGridText(i, F56)F57Text = .GetGridText(i, F57)If F55Text = "" Then F55Text = "0"If F56Text = "" Then F56Text = "0"If F57Text = "" Then F57Text = "0"FDateText = Replace(.GetHeadText(FDate), "-", "")If (FBatchManager = True) Then.SetGridText i, FBatchNo, F55Text & "-" & F56Text & "-" & F57Text & "-" & FDateTextEnd IfNextEnd WithCase ElseEnd SelectEnd Sub'*****************************************'获取分录⾏数'*****************************************Public Function GetEntryMax() As LongDim k As LongDim iFItemID As LongDim oEntryCtl As VariantDim maxrow As Long '最⼤⾏'For k = LBound(m_BillTransfer.EntryCtl) To UBound(m_BillTransfer.EntryCtl)If UCase(m_BillTransfer.EntryCtl(k).FieldName) = UCase("FItemID") Then '物料代码所在列iFItemID = kExit ForEnd IfNext koEntryCtl = m_BillTransfer.EntryCtlmaxrow = UBound(oEntryCtl(iFItemID).DInterID) '获取表体最⼤⾏GetEntryMax = maxrowEnd Function'**********************************'返回单据字段顺序(isEntry True是表体)'**********************************Public Function GetCtlIndexByFld(ByVal fldName As String, Optional ByVal isEntry As Boolean = False) As LongDim ctlIdx As LongDim i As IntegerDim isFind As BooleanDim vValue As VariantfldName = UCase(fldName)isFind = FalseWith m_BillTransferIf isEntry ThenFor i = LBound(.EntryCtl) To UBound(.EntryCtl)If UCase(.EntryCtl(i).FieldName) = fldName ThenctlIdx = .EntryCtl(i).FCtlOrderisFind = TrueExit ForEnd IfNext iElseFor i = LBound(.HeadCtl) To UBound(.HeadCtl)If UCase(.HeadCtl(i).FieldName) = fldName ThenctlIdx = .HeadCtl(i).FCtlIndexisFind = TrueExit ForEnd IfNext iEnd IfEnd WithIf isFind = True ThenGetCtlIndexByFld = ctlIdxElseGetCtlIndexByFld = 0End IfEnd Function三、配置插件 在Visual Basic 6.0⽣成DLL: 启动K/3 Wise BOS开发平台,打开外购⼊库单,并进⾏插件配置: 点击“插件配置管理”,配置客户端插件: 点击“浏览”,找到插件并勾选: 点击“确定”,并保存外购⼊库单。

k3二次开发

k3二次开发

k3二次开发1、单据头字段赋值m_BillTransfer.SetHead Index, Value备注: Index:表头控件索引Value:设置的值。

如果该表头项是查找类型的,Value 应设置为代码。

2、单据体赋值m_BillTransfer.SetGridText Row, Col, Value备注: Row:分录行Col:分录列Value:设置的值。

如果该单元格是查找类型的,Value 应设置为代码。

3、单据体合计字段赋值m_BillTransfer.SetSumGridText Row, Col, Value备注: Row:分录行Col:分录列Value:设置的值4、给查找类型字段(基础资料)赋值用SetGridText直接赋值一般情况下也可以,但有时会导致显示异常,建议使用下面的方法。

以给物料字段赋值为例,参考以下代码:Dim EntryCtl As VariantEntryCtl = m_BillTransfer.EntryCtlEntryCtl(ItemCol).DInterID(i) = rs.Fields("FItemID").Value & ""EntryCtl(ItemCol).DNumber(i) = rs.Fields("FNumber").Value & ""EntryCtl(ItemCol).DName(i) = rs.Fields("FName").Value & ""m_BillTransfer.EntryCtl = EntryCtlm_BillTransfer.SetGridText i, ItemCol, rs.Fields("FNumber").Value & ""5、单据头字段,在查找时改变其Filter 属性值Private Sub m_BillTransfer_BeforHeadLookUp(ByVal CtlIndex As Long, ByVal nLookUpClsID As Long, Cancel As Boolean) Dim THeadCtl As VariantDim i As LongIf CtlIndex = 4 ThenTHeadCtl = m_BillTransfer.HeadCtlTHeadCtl(CtlIndex).Filter = Replace(THeadCtl(CtlIndex).Filter, 986=986”, “986<>986”)m_BillTransfer.HeadCtl = THeadCtl‘End IfEnd Sub6、改变辅助属性的值Set tmpItemInfo = New KFO.DictionarytmpItemInfo("Name") = "黄色"'辅助属性名称tmpItemInfo("Number") = "YELLOW"'辅助属性代码tmpItemInfo("Value") = "2"'辅助属性内码m_BillTransfer.BillForm.SetBillDataInput tmpItemInfo,"FAuxPropID", 1, 1Set tmpItemInfo = Nothing备注:在插件中改变辅助属性的值,对表体的赋值有的不能按照m_BillTransfer.SetGridText的形式修改,一定要调用m_BillTransfer.BillForm.SetBillDataInput方式才可以真正修改,SetBillDataInput 辅助属性包,字段名,单据体(0:单据头;1:单据体),行号。

金蝶K3BOS插件开发常见技巧

金蝶K3BOS插件开发常见技巧

1、如何在工具栏上添加多级审核的按钮?在m_BillInterface_MenuBarInitialize 事件里添加如下代码即可.Set oTool = m_BillInterface.MenuBar.BOST001s("mnuEditMultiCheck")With oTool.Caption =" 多级审核".ToolTipText =" 多级审核".Description =" 多级审核".BeginGroup = False.ToolPicture = App.Path + "\Checker.bmp".SetPicture 0, vbButtonFaceEnd WithSet oBand = oMenuBar.BOSBands("BandToolBar")oBand.BOSTools.InsertBefore "mnuFilePrint", oTool ' 将菜单对象插入指定工具栏2、如何在显示一张Bos单据的同时给它赋值?要想在显示Bos单据的同时给它赋值,关键是在显示前要购建m_Billinterface 的data包,这样在显示这张同据的时候,程序会解析data包,并将里面的值赋到单据界面上来.Dim dctData As kfo.DictionaryDim datasrv as objectDim oTableinfo as objectSet DataSrv = m_BillInterface.K3Lib.CreateK3Object("K3ClassTpl.DataSrv") DataSrv.ClassTypeID = lClassTypeID 'lClassTypeID 需要弹出单据的IDSet oTableInfo = DataSrv.TableInfoSet dctData = DataSrv.GetEmptyBill ' 然后将当前单据数据包中需要的数据填充到dctdata的对应字段’在以上语句执行后,dctdata( "page2")里只有一行表结构(即表体只有一行)'赋表头的值dctData("Page1")(oTableinfo("map")("FText"))("FFLD") = m_BillInterface.GetFieldValue("FText")dctData("Page1")(oTableinfo("map")("FDeptID"))("FFLD") = m_BillInterface.GetFieldValue("FDeptID", -1, Enu_ValueType_FFLD)dctData("Page1")(oTableinfo("map")("FDeptID"))("FFND") = m_BillInterface.GetFieldValue("FDeptID", -1, Enu_ValueType_FFND)dctData("Page1")(oTableinfo("map")("FDeptID"))("FDSP") = m_BillInterface.GetFieldValue("FDeptID", -1, Enu_ValueType_FDSP)'赋表体的值Dim oPage2 As ObjectFor i = 1 To m_BillInterface.Data("Page2").UBound - 1Set oPage2 = dctData("Page2")(1).CloneAlldctData("Page2").Add oPage2 '添力口至U dcDatadctData("Page2")(i + 1)(oTableinfo("map")("FIndex2"))("FFLD") = i + 1更改分录号NextFor i = 1 To m_BillInterface.Data("Page2").UBound' 物料FItemIDdctData("Page2")(i)(oTableinfo("map")(" FItemID "))("FFLD")m_BillInterface.GetFieldValue("FItemID ", i, Enu_ValueType_FFLD) dctData("Page2")(i)(oTableinfo("map")(" FItemID "))("FDSP")m_BillInterface.GetFieldValue("FItemID ", i, Enu_ValueType_FDSP) dctData("Page2")(i)(oTableinfo("map")(" FItemID "))("FFND")m_BillInterface.GetFieldValue("FItemID ", i, Enu_ValueType_FFND)' 物料名称fbasepropertydctData("page2")(i)(oTableinfo("map")("fbaseproperty"))("FFLD")m_BillInterface.GetFieldValue("fbaseproperty", i, Enu_ValueType_FFLD)dctData("Page2")(i)(oTableinfo("map")("fbaseproperty"))("FDSP")m_BillInterface.GetFieldValue("fbaseproperty", i, Enu_ValueType_FDSP)dctData("Page2")(i)(oTableinfo("map")("fbaseproperty"))("FFND")m_BillInterface.GetFieldValue("fbaseproperty", i, Enu_ValueType_FFND)' 计量单位FUnitIDdctData("Page2")(i)(oTableinfo("map")(" FUnitID "))("FFLD")m_BillInterface.GetFieldValue("FUnitID ", i, Enu_ValueType_FFLD) dctData("Page2")(i)(oTableinfo("map")(" FUnitID "))("FDSP")m_BillInterface.GetFieldValue("FUnitID ", i, Enu_ValueType_FDSP) dctData("Page2")(i)(oTableinfo("map")(" FUnitID "))("FFND")m_BillInterface.GetFieldValue("FUnitID ", i, Enu_ValueType_FFND)' 数量FQtydctData("Page2")(i)(oTableinfo("map")("FQty"))("FFLD") m_BillInterface.GetFieldValue("fqty", i, Enu_ValueType_FFLD)NextSet obj = CreateObject("K3SingleClassBill.ClassInfoManager")With obj.datasrv = datasrv.ISCheckRight = True .Show , , , dctData End With3、如何在插件中实现选单的功能?调用Bos单据m_BillInterface.BillCtl.DoSelBill lClassTypeID'( 原单的ClassTypeID)调用工业单据m_BillInterface.BillCtl.DoSe101dBill lClassTypeID '( 原单的ClassTypeID)4、在插件中以新增、修改和查看方式翻开另一单据,********************************************’功能:显示B0环据,显示的方式为新增、修改和浏览'参数:lClassTypeID 一显示B0环据的ID ' '********************************************Private Sub ShowBill(ByVal lClassTypeID As Long)Dim oDataSrv As ObjectDim oBill As ObjectOn Error GoTo err_ctrSet oDataSrv = m_BillInterface.K3Lib.CreateK/30bject("K3ClassTpl.DataSrv") oDataSrv.ClassTypeID = lClassTypeIDSet oBill = CreateObject("K3SingleClassBill.ClassInfoManager") With oBill.DataSrv = oDataSrv.ISNetControl = True.I SCheckRight = True .Show ′********************** 'Show 参数类型' 第一个参数Optional ByVal lID As Long = 0 ;描述修改或查看的单据ID' 第二个参数Optional ByVal bShowGroup As Boolean = False ;如是根底资料时, 是否显示分组' 第三个参数Optional ByVal BillStatus As Long = Enu_BillStatus_New ;显示方式0—查看;1—新增;2—修改' 第四个参数Optional ByVal dctData As KFO.Dictionary ' 单据初始值\**********************End WithSet oDataSrv = NothingSet oBill = NothingExit Sub err_ctr:Set oDataSrv = Nothing Set oBill = NothingEnd Sub5、显示BOS序时簿并返回选中的值,********************************************’功能:显示BO时时簿并返回选中的值'参数:lClassTypeID 一显示BO环据的ID ' '********************************************Private Function ShowListByReturn(ByVal lClassTypeID As Long) As Object Dim oDataSrv As Object Dim objLookup As ObjectOn Error GoTo err_ctrSet oDataSrv = m_BillInterface.K3Lib.CreateK3Object("K3ClassTpl.DataSrv")oDataSrv.ClassTypeID = lClassTypeID If oDataSrv.showfilter ThenSet objLookup = CreateObject("K3ClassLookUp.BillLookUp") objLookup.ClassTypeID = lClassTypeID Set objLookup.DataSrv = oDataSrvobjLookup.LookupSet ShowListByReturn = objLookup.VectReturnEnd IfSet oDataSrv = NothingSet objLookup = NothingExit Function err_ctr:Set oDataSrv = NothingSet objLookup = NothingEnd Function6、如何在序事簿中得到选中行的记录集值?Dim vectSelect as kfo.vectorDim rs as adodb.recordsetSet vectSelect=m_Listinterface. GetSelectedBillInfoSet rs=m_Listinterface.datasrv. GetBillDetail(vectSelect(1)("FID"))7、将当前单据转化为另一单据,并无界面保存数据,********************************************’功能:将当前单据转化为另一单据,并无界面保存数据'参数:lClassTypeID 一显示BO环据的ID'********************************************Private Sub NoUISaveBill(ByVal lClassTypeID As Long)Dim oDataSrv As ObjectDim oTableInfo As ObjectDim oBill As ObjectDim oData As ObjectDim oSrv As ObjectDim oPage2 As ObjectDim i As LongOn Error GoTo err_ctrSet oDataSrv = m_BillInterface.K3Lib.CreateK3Object("K3ClassTpl.DataSrv")oDataSrv.ClassTypeID = lClassTypeIDSet oTableInfo = oDataSrv.TableInfoSet oData = oDataSrv.GetEmptyBillFor i = 1 To m_BillInterface.Data("Page2").UBound - 1Set oPage2 = oData("Page2")(1).CloneAlloData("Page2").Add oPage2 ' 添加到dcDataoData("Page2")(i + 1)("_-0001_FIndex2")("FFLD") = i + 1 ' 更改分录号NextFor i = 1 To m_BillInterface.Data("Page2").UBoundoData("Page2")(i)(oTableInfo("map")("FItemID"))("FFLD")=m_BillInterface.GetFieldValue("FItemID", i, Enu_ValueType_FFLD) oData("Page2")(i)(oTableInfo("map")("FItemID"))("FFND")=m_BillInterface.GetFieldValue("FItemID", i, Enu_ValueType_FFND) oData("Page2")(i)(oTableInfo("map")("FItemID"))("FDSP")=m_BillInterface.GetFieldValue("FItemID", i, Enu_ValueType_FDSP)NextSet oSrv = CreateObject("K3MClass.BillUpdate")i = oSrv.Save(MMTS.PropsString, oDataSrv.ClassType, oDataSrv.ClassTypeEntry,oDataSrv.TableInfo, oData, oDataSrv.dctLink)Set oDataSrv = NothingSet oBill = NothingExit Suberrctr:MsgBox Err.DescriptionSet oDataSrv = NothingSet oBill = NothingEnd Sub【备注】1、K/3 BOS保存方法Save的参数描述:'Public Function Save(ByVal sDsn As String, _' ByVal dctClassType As KFO.Dictionary, _' ByVal vctClassTypeEntry As KFO.Vector, _' ByVal dctTableinfo As KFO.Dictionary, _' ByRef dctData As KFO.Dictionary, _' ByVal dctLinks As KFO.Dictionary) As Long'/********************************************************************/'/*描述:单据保存'/*参数:'/*@ dctClassType KFO.Dictionary 单据整体信息模板'/*@ dctData KFO.Dictionary 单据数据包'/*@ dctLink KFO.Dictionary 选单关系模板,无选单为Nothing'/*@ dctTableInfo KFO.Dictionary 单据字段模板信息'/*@ sDsn String K/3 标准数据库连接串'/*@ vctClassTypeEntry KFO.Vector单据体模板信息'/*备注:'/********************************************************************/2、使用此方法时插件要添加MMTS8、如何在插件中获取当前系统字符连接串?一、连接串获取方式:(注意不支持调试,调试的话可以用实际连接串代替)Private Declare Function GetCurrentProcessId Lib "kernel32" Alias "GetCurrentProcessID"() As Long ’获取连接串Public Function GetPropsString() As StringDim lProc As LongDim spmMgr As ObjectIProc = GetCurrentProcessIdSet spmMgr = CreateObject("PropsMgr.ShareProps")GetPropsString = spmMgr.GetProperty(lProc, "PropsString")End Function.、需要申请MMTS.bas的源彳弋码,还需要申请ICKDListener的接口.另外,如果需要调试程序,就还需要申请KDMain的源代码.。

金蝶K3WISE基础二次开发及案例

金蝶K3WISE基础二次开发及案例
新增COM+组件需要修改配置文件: $/CODE/K3Base/Public/database/MtsSpSetup.LST
$/CODE/K3Base/Public/database/KDCom.cfg $/CODE/K3Base/Public/database/KdLogin.Lst
版权所有 ©1993-2009 金蝶软件(中国)有限公司
基础二次开发及案例
张庆
金蝶软件(中国)有限公司
研发中心
版权所有 ©1993-2009 金蝶软件(中国)有限公司
提纲

K/3环境配置及常见问题 基础领域主要模块及代码结构 基础领域常用开发接口说明及事例代码 问题交流
版权所有 ©1993-2009 金蝶软件(中国)有限公司
P2
K/3环境配置及常见问题

版权所有 ©1993-2009 金蝶软件(中国)有限公司
P6
基础资料
版权所有 ©1993-2009 金蝶软件(中国)有限公司
P7
主控台Biblioteka 版权所有 ©1993-2009 金蝶软件(中国)有限公司
P8
帐套管理
版权所有 ©1993-2009 金蝶软件(中国)有限公司
P9
用户管理,权限管理
版权所有 ©1993-2009 金蝶软件(中国)有限公司
P14
基础领域常用开发接口说明及事例代码
版权所有 ©1993-2009 金蝶软件(中国)有限公司
P15
基础领域常用开发接口说明及事例代码
基础领域插件化开发: 1.基础资料插件化开发 2.用户权限管理插件化开发 3.系统参数平台插件化开发
版权所有 ©1993-2009 金蝶软件(中国)有限公司

金蝶K3全系列使用手册

金蝶K3全系列使用手册

金蝶K3系统K/3系统是它融合先进的管理思想,结合国内企业实际情况,采用MS SQL Server 7.0大型数据库、三层结构和组件式开发等先进技术,严格遵循Windows DNA架构提供网络分布式应用,抓住企业物流和资金流两条主线,优化企业流程,为企业管理层提供最佳的企业管理手段。

使企业信息资源充分共享,全面提升企业的市场应变能力和整体竞争力。

K/3ERP系统主要由三个产品内容组成:K/3财务管理系统、K/3工业管理系统、K/3商贸管理系统。

三个产品内容的应用功能涵盖了中国企业的各种应用需求,形成了以企业自身经营活动为中心,包括供应链管理(SCM)、客户关系管理(CRM)、价值链管理(VM)、知识管理(KM)四个功能管理系统,涉及供应市场、消费市场、资本市场、知识市场四个企业外部环境的信息管理。

完全满足中国企业用户的功能需求。

同时为了满足企业电子商务发展的需要,K/3 ERP的三个产品内容都支持基于Internet的Web应用,完全满足基于浏览器的软件应用,这就是发展成熟的K/3的e系统。

充分满足了不同企业用户的操作习惯和使用要求。

K/3ERP系统的功能组成图如下:K/3 ERP软件产品立足企业实际情况,充分吸收MRPII、JIT等先进的管理理念和技术,扬弃国外ERP软件系统设计思想,集成了对企业物流、资金流、信息流的业务和财务管理功能,优化了企业内部管理和控制的职能,帮助企业实现基础化的管理,提出和推行完善的“数据——信息——决策——控制”的企业管理解决方案,帮助顾客成功。

其三个产品内容的主要功能分述如下。

●K/3财务管理系统在承接部门级财务软件产品金蝶2000客户群的基础上,K/3财务管理系统更加突出了面向中、大型企业和集团型企业用户的应用功能。

一方面在技术上保证了大规模并发用户使用的稳定性;另一方面,除普通财务管理的应用功能之外,还提供了集团控制、结算中心等功能模块,结合管理会计的功能模块,极大地加强了各种类型企业用户的财务管理和控制功能,提高了企业的财务运筹能力。

金蝶K3供应链系统内部技术分析手册之一(初始化设置篇)

金蝶K3供应链系统内部技术分析手册之一(初始化设置篇)

金蝶K3供应系统内部技术分析手册(初始化设置篇)目录一、工业物流初始设置 (3)1.1工业初始化 (3)1.1.1初始化参数设置 (3)1.1.1处理流程 (3)1.1.1.2相关的数据结构: (3)1.1.1.3其他 (5)1.1.2初始化功能流程 (5)1.1.2.1.初始数据录入 (5)1.1.2.2流程 (6)1.1.2.3传递余额到总帐 (7)1.1.2.4初始余额数据录入和保存:icinvinitial (10)1.1.2.5初始化数据的规则 (11)1.1.3结束初始化 (13)1.3.1检查条件如下 (13)1.1.3.2结束初始化过程 (13)1.1.3.3结束初始化的处理内容 (13)1.1.4 反初始化 (13)1.1.5初始化以前三类单据 (14)1.2工业系统参数设置 (15)1.2.1系统设置 (15)1.2.2编码规则设置 (15)1.2.3打印控制 (16)1.2.4单据科目类型 (16)1.2.5工业整体选项:共17项 (16)1.2.6采购系统选项:共10项 (16)1.2.7销售系统选项:共11项 (17)1.2.8仓存系统选项 (17)1.2.9核算系统选项共11项 (17)1.2.10成本核算共4项 (18)1.2.11生产系统选项共11项 (18)1.2.12车间1项 (18)1.2.13 业务流程设计应用: (18)1.2.14其他: (19)1.3工业辅助功能 (19)1.3.1多级审核 (19)1.3.2供应商供货信息 (20)1.3.3物料对应表 (21)1.3.4价格资料 (22)1.3.5折扣资料 (23)1.3.6信用管理 (24)1.3.7批号管理 (25)1.3.8条形码,条形码关联 (26)1.3.9客户BOM和批号对应表 (27)一、工业物流初始设置1.1工业初始化1.1.1初始化参数设置1.1.1处理流程核算参数得设置流程:启用年度和启用期间---------税率----------核算方式------库存结余控制-------库存更新控制---------销售模块设置参数说明:启用年度和启用期间:业务实际的启用年度和期间,其自定义得期间规则参照总帐的设置税率:系统默认为17%,输入时只输入%前面的数据即可,不要输入0.17等数据,参照总帐核算方式:数量核算”和“数量、金额核算”两种方式,“数量核算”,系统以后只核算数量,不核算金额,数量、金额核算”是对材料的数量和成本都核库存结余控制:确定是否允许负结存,负结存是库存即时数量为负数库存更新控制:单据审核后才更新,单据保存后立即更新,在新增、修改、复制、删除、作废、反作废该库存单据时进行库存调整销售模块设置:日常业务中是否存在企业集团内部销售业务,1.1.1.2相关的数据结构:整个核算参数涉及的数据流程如下1.表示销售模块设置是否启用集团分销0:不区分1:区分数据存放于: t_SystemProfile系统参数表 FCategory='GL' AND Fkey='DisCivilExportSale')例如:设置保存过程IF Exists(select * from t_SystemProfile WHERE FCategory='GL' AND Fkey='DisCivilExportSale')UPDATE t_SystemProfile SET FValue='1' WHERE FCategory='GL' AND Fkey='DisCivilExportSale'ELSEINSERT INTO t_SystemProfile(FCategory,FKey,FValue) Values('GL','DisCivilExportSale','1')2-税率参照总帐税率, 数据存放于FCategory='GL' AND Fkey='TaxRate例如:设置保存过程IF Exists(select * from t_SystemProfile WHERE FCategory='GL' AND Fkey='TaxRate')UPDATE t_SystemProfile SET FValue='17' WHERE FCategory='GL' AND Fkey='TaxRate' ELSEINSERT INTO t_SystemProfile(FCategory,FKey,FValue) Values('GL','TaxRate','17')3.表示启用年度和期间,目前年度和期间,数据存放于'CurrentPeriod' 'CurrentYear','StartPeriod','StartYear'例如:设置保存过程IF Exists(select * from t_SystemProfile WHERE FCategory='IC' AND Fkey='CurrentPeriod')UPDATE t_SystemProfile SET FValue='7' WHERE FCategory='IC' AND Fkey='CurrentPeriod'ELSEINSERT INTO t_SystemProfile(FCategory,FKey,FValue) Values('IC','CurrentPeriod','7')IF Exists(select * from t_SystemProfile WHERE FCategory='IC' AND Fkey='CurrentYear')UPDATE t_SystemProfile SET FValue='2003' WHERE FCategory='IC' AND Fkey='CurrentYear'ELSEINSERT INTO t_SystemProfile(FCategory,FKey,FValue) Values('IC','CurrentYear','2003')goIF Exists(select * from t_SystemProfile WHERE FCategory='IC' AND Fkey='StartPeriod')UPDATE t_SystemProfile SET FValue='7' WHERE FCategory='IC' AND Fkey='StartPeriod' ELSEINSERT INTO t_SystemProfile(FCategIF Exists(select * from t_Syory,FKey,FValue) V alues('IC','StartPeriod','7')gostemProfile WHERE FCategory='IC' AND Fkey='StartYear')UPDATE t_SystemProfile SET FValue='2003' WHERE FCategory='IC' AND Fkey='StartYear'ELSEINSERT INTO t_SystemProfile(FCategory,FKey,FValue) Values('IC','StartYear','2003')4.历史遗留的暂估凭证 , 数据存放于FCategory='IC' AND Fkey='ZanguV oucher'例如:设置保存过程:IF Exists(select * from t_SystemProfile WHERE FCategory='IC' AND Fkey='ZanguV oucher')UPDATE t_SystemProfile SET FValue='0' WHERE FCategory='IC' AND Fkey='ZanguV oucher'ELSEINSERT INTO t_SystemProfile(FCategory,FKey,FValue) Values('IC','ZanguV oucher','0')5.库存结余控制(是否允许负结存(1--允许,0--不允许)数据存放于'UnderStock'例如:设置保存过程IF Exists(select * from t_SystemProfile WHERE FCategory='IC' AND Fkey='UnderStock')UPDATE t_SystemProfile SET FValue='1' WHERE FCategory='IC' AND Fkey='UnderStock' ELSEINSERT INTO t_SystemProfile(FCategory,FKey,FValue) Values('IC','UnderStock','1')6.-核算方式0:数量核算,1:数量、金额核算,数据存放于FCategory='IC' AND Fkey='AuditChoice'例如:设置保存过程IF Exists(select * from t_SystemProfile WHERE FCategory='IC' AND Fkey='AuditChoice')UPDATE t_SystemProfile SET FValue='1' WHERE FCategory='IC' AND Fkey='AuditChoice' ELSEINSERT INTO t_SystemProfile(FCategory,FKey,FValue) Values('IC','AuditChoice','1')go7.库存更新控制0:审核更新,1:保存更新数据存放于FCategory='IC' AND Fkey='UPSTOCKWHENSA VE') 例如:设置保存过程IF Exists(select * from t_SystemProfile WHERE FCategory='IC' AND Fkey='UPSTOCKWHENSA VE') UPDATE t_SystemProfile SET FValue='1' WHERE FCategory='IC' AND Fkey='UPSTOCKWHENSA VE' ELSEINSERT INTO t_SystemProfile(FCategory,FKey,FValue) Values('IC','UPSTOCKWHENSA VE','1')1.1.1.3其他核算参数的设置前提有两个:工业供需链系统处于初始化阶段工业供需链系统中不存在任何已录入的初始余额和业务单据1.1.2初始化功能流程1.1.2.1.初始数据录入处理流程采用加权平均法、移动平均法计价的物料:不进行批次管理,直接在“初始数据录入”界面的右边录入期初数量、期初金额;进行批次管理,物料必须保证所有批次的年初余额、期初余额的单价一致,录入每批次的初始数据,对于期初余额,只在“合计行”录入计划成本法计价的物料:直接在“初始数据录入”界面的右边录入期初数量、差异类数采用先进先出法、后进先出法计价的物料:需要通过单击“物料”和“批次/顺序号”对应的空白按钮、调出顺序录入数据分批认定法计价:必须进行业务批次管理,因此需要通过单击“物料”和“批次/顺序号”对应的空白按钮初始录入:初始数据分仓库、仓位录入如果是年中启用:年初金额,年初差异,本年累计收入数量,本年累计收入金额,本年累计收入差异,本年累计发出数量,本年累计发出金额,本年累计发出差异等根据帮助说明,进行相关入录,平衡得到。

K3工业单据二次开发组件参考手册

K3工业单据二次开发组件参考手册

K3BillTransfer组件使用参考客户化开发工具包参考手册目录目录 (1)概述 (1)属性 (1)方法 (2)事件 (4)中间层事件 (7)应用示例 (8)概述单据二次开发是针对现目前单据的一些功能无法满足一些客户的特殊要求,同时分公司又有能力进行二次开发而提出的,这样既可以在现有的系统不做变动的情况下面满足用户的需求,同时也增强了系统的稳定性。

注意:本篇所介绍所用到的动态连接库名为:K3BillTransfer.dll通过该说明文档,你可以了解到1.如何通过K3BillTransfer组件在录单过程中对单据上各项目加以控制。

2.如何通过K3BillTransfer组件实现自定义功能菜单。

3.如何通过K3BillTransfer组件控制数据的保存。

4.应用示例。

该文档阅读的适用对象需要在K/3工业供需链系统单据上进行二次开发的开发者。

属性1.Property Cnnstring As String当前数据库的MMTS.PropsString连接串。

2.Property SystemName As String当前系统名称。

3.Property LastInfo As String最后一次系统返回的各种信息4.Property BillForm As Object整个单据窗体对象。

可通过该对象访问单据上的任何一个对象,包括控件,菜单。

共有的方法有:InsertRow(),在Grid的当前行追加一行,它没有参数。

5.Property BillFunc as Object代表单据对象。

目前没什么用途。

6.Property Head As Object单据表头控件,是一个KDText控件数组7.Property Grid As Object单据分录控件,为FpSpread控件8.Property SumGrid As Object单据分录合计控件,为FpSpread控件9.Property HeadCtl As Variant对应表头控件数组,记录每个表头项目各属性的数组如果要改变HeadCtl中的某个属性值,需先对HeadCtl做一个备份,然后修改此备份的相应属性值,再将此备份赋值给HeadCtl。

金蝶ERP系统(金蝶K3)管理与二次开发

金蝶ERP系统(金蝶K3)管理与二次开发

金蝶ERP系统(金蝶K/3)管理与二次开发作者:赵彩娟来源:《财税前沿·理论版》2013年第06期摘要:人类社会大踏步迈进21世纪,信息技术和经济已表现出卓越的发展趋势,信息技术从模拟向数字化、从单一媒体向多媒体、从低速传输向畅通的“信息高速公路”、从一般网络向智能化广域网络转变;经济从物质型经济向信息经济、从实体经济向虚拟经济、从本地经济向跨区经济甚至全球一体化经济转变。

革新企业管理,加快信息建设势在必行,企业管理软件成为当今经济需求和技术发展的必然产物。

金蝶K/3系统是基于局域网、广域网范围的企业管理解决方案,它严格遵循微软WindowsDNA框架结构,以三层结构技术为基石,结合先进的Citrix终端技术实现真正的分布式网络计算架构,从应用上将单一主体的会计核算转变成群体的财务管理,从分散的部门管理变为一体化的企业管理解决。

关键词:金蝶;ERP系统;金蝶K/3;管理;二次开发一、金蝶K3系统的关键技术金蝶K3系统遵循微软WindowsDNA框架结构,基于三层结构技术,支持网络数据库,支持Microsoft/Citrix终端应用,是真正面向网络的企业管理软件。

它有如下技术组成:数据库技术+三层结构组件技术+Citrix终端技术+企业管理技术。

1.数据库技术企业管理软件应关注的是数据存放系统,即用来存储和管理企业数据工具。

解决如何存储数据才不会丢失;如何存储才是最高效,处理最快及意外事件的数据自动恢复等问题。

金蝶K/3系统采用大型网络数据库管理系统,支持大用户量的访问和海量的数据存储,支持主流大型数据库MSSQLSERVER2000。

2.三层结构技术企业管理软件是典型的数据库应用,三层结构是一项先进且成熟的数据库应用结构。

根据分布式计算原理,它将应用分为数据库端、中间层、客户端三个层次。

数据库端即数据库服务器;中间层包含了封装商业规则的计算组件;客户端为用户界面,可以是本地客户端GUI、也可以是远程的Citrix客户端。

K3WebAPI二次开发文档

K3WebAPI二次开发文档

K3WebAPI二次开发文档
Web API 二次开发文档
一、自定义实现单据API接口
1.1 API插件表插入相应记录
1.2 C#代码开发说明
以采购订单(PO)为例,插入表记录如下:
该API组件为Kingdee.K3.API.SCM,入口类为OldBillEntrance.cs文件
该API接口访问地址为:
http://127.0.0.1/K3API/PO/Save
http://127.0.0.1/K3API/PO/GetDetail
http://127.0.0.1/K3API/PO/GetList
http://127.0.0.1/K3API/PO/Update
http://127.0.0.1/K3API/PO/Delete
……
同时用户可自行实现所需接口。

(方法名区分大小写)
1.2.1 入口类编码规则
1、OldBillEntrance.cs 若继承BOSEntrance, 则自动实现GetList、GetTemplate、GetDetail接口,其余接口需自行实现,同时该类构造函数必须指明由BOS单据处理,对于其他接口方法用户也可重写该接
口。

代码如下:
2、OldBillEntrance.cs 不继承任何类,用户所需接口可自行实现。

3、BOSEntrance 、ActionResponseResult、来自组件mon,用户引用该组件即可,接口参数dictPara 包含用户传入的所有参数。

1.2.2 打包部署
将用户组件Kingdee.K3.API.SCM.dll拷贝至Web服务器..\ K3ERP\K3API\BIN\目录下即可。

金蝶K3实际成本模块操作手册

金蝶K3实际成本模块操作手册

⾦蝶K3实际成本模块操作⼿册⾦蝶K/3实际成本模块应⽤指导⼿册⽬录⼀、基础设置部分 (2)1.车间班组设置 (2)2.成本对象 (3)3. 系统设置-基础资料-公共资料-成本项⽬(按系统默认设置即可) (4)4. 系统设置-基础资料-公共资料-科⽬ (4)5. 系统设置-基础资料-公共资料-要素费⽤ (4)6.财务会计-实际成本-分配标准设置 (5)⼆、业务处理部分 (7)1.财务会计-实际成本-分配标准数据录⼊ (7)2.财务会计-实际成本-产量归集 (8)3.财务会计-实际成本-费⽤归集 (10)4.财务会计-实际成本-费⽤分配 (14)5.财务会计-实际成本-成本计算 (15)6.财务会计-实际成本-成本计算报表 (17)⼀、基础设置部分1.车间班组设置1.1系统设置-基础资料-公共资料-核算项⽬-部门设置1.2系统设置-基础资料-公共资料-核算项⽬-新增“班组”类别2.成本对象新增⾃制属性的物料后,系统⾃动⽣成对应的成本对象。

2.1系统设置-基础资料-公共资料-核算项⽬“物料”档案:2.2系统设置-基础资料-公共资料-成本对象:3. 系统设置-基础资料-公共资料-成本项⽬(按系统默认设置即可)4. 系统设置-基础资料-公共资料-科⽬按核算要求设定⽣产成本明细科⽬(是否核算到成本对象?)及制造费⽤明细科⽬。

5. 系统设置-基础资料-公共资料-要素费⽤系统预设了5001材料费⽤,5002⼯资费⽤,5003折旧费⽤;按4105制造费⽤的明细科⽬新增对应的要素费⽤,并且要素费⽤要指定对应的制造费⽤明细科⽬,建⽴⼀⼀对应的关系。

6.财务会计-实际成本-分配标准设置需要设置23004、23005、23006、23007、23013 举例:23004(23006和23004设置⼀样)需要下拉选择每个要素费⽤,逐⼀制定费⽤分配标准“实际总⼯时”。

23005(23008设置和23005⼀样)23013设置⼆、业务处理部分1.财务会计-实际成本-分配标准数据录⼊备注:⼯时取每个⽣产指令对应的成本对象(所⽣产的产品)实际耗⽤的实际材料成本汇总数。

金蝶k3-最全的操作使用手册图文(最新版本)

金蝶k3-最全的操作使用手册图文(最新版本)

K3 wise 12版本系统概述关于本系统总账系统是财务会计系统中最核心的系统,以凭证处理为中心,进行账簿报表的管理。

可与各个业务系统无缝联接,实现数据共享。

企业所有的核算最终在总账中体现。

本系统主要功能有:多重辅助核算科目计息控制科目预算控制凭证分账制核算流程强大的账簿报表查询多币别核算的处理现金流量表的制作往来业务的核算处理,精确计算账龄与其他业务系统无缝链接对业务系统生成的凭证提供明细管理功能自动转账设置期末调汇的处理期末损益结转结账日的控制可以进行月份的选择集团内部往来协同1.1.1多重辅助核算:在总账系统中,可对科目设置任意多的核算项目进行多重辅助核算。

并且提供丰富的核算项目账簿和报表,满足企业对多种辅助核算信息的项目管理。

1.1.2提供科目计息控制:在未使用结算中心系统时,可以对科目进行利息计算,提供资金管理,计算科目积数与利息,计算各种资金机会成本。

1.1.3提供科目预算控制:可进行科目预算,科目预算也可从预算管理系统中引入,从而在凭证录入时可根据需要进行各种控制。

而与预算管理系统集成使用,可以实现更复杂的预算管理与控制。

1.1.4提供凭证分账制核算流程:系统在提供对外币通常的核算要求——统账制的基础上,同时提供了分账制核算要求下的从凭证处理到业务报表的完整核算流程。

1.1.5强大的账簿报表查询:查询账簿报表时,可追查至明细账直至凭证,同时可查询到核算项目信息。

有跨期查询功能,可以在本期未结账的情况下查询以后期间的数据。

提供多种核算项目报表的查询,可进行多核算项目类别的组合查询。

具体提供的账簿包括:总分类账、明细分类账、数量金额总账、数量金额明细账、多栏账、核算项目分类总账、核算项目明细账等;具体提供的报表包括:科目余额表、试算平衡表、日报表、摘要汇总表、核算项目余额表、核算项目明细表、核算项目汇总表、核算项目组合表、核算项目与科目组合表、科目利息计算表、调汇历史信息表等。

1.1.6多币别核算的处理:期末自动进行调汇的处理。

k3 功能、字段、数据权限设置操作手册

k3 功能、字段、数据权限设置操作手册

佛山市X X X有限公司实施文档功能、字段、数据权限操作手册文档作者:黄华明创建日期:2010-11-10当前版本:1.01、设置功能权限控制功能权限管理指对子系统的每一个具体功能进行授权,允许用户可以进入哪些子系统使用哪些功能。

具体操作步骤如表8-1,步骤描述是否必需(是/否)第一步选择一个用户,然后选择【功能权限】→【功能权限管理】,打开权限管是理界面,在这里可以对各功能模块的权限进行初步设置。

查询权:只允许用户查看系统中的数据。

管理权:则允许用户不仅可以查看,还可以新增、修改、删除系统的数据。

第二步单击【高级】,打开“用户权限”界面,此界面可以进行明细功能授权,否是对功能授权的进一步细化,允许用户对各种功能进行更细的授权。

否第三步在“基础资料-核算项目”这一项下的自定义核算项目和其他系统预设的核算项目一样都可以进行单独的授权,所有的核算项目都显示在“用户权限”界面中,自定义核算项目权限控制对象的增加是一个动态增加的过程,用户在基础资料中新增一个核算项目,“用户权限”界面就新增一个核算项目权限控制对象。

否第四步对于自定义核算项目的权限也和其他系统预设的核算项目一样有查看、详细信息、新增、修改、删除五种权限设置。

表8-1注意:“用户管理_功能权限管理”界面的授权是一种快捷的授权方式,如果不想进行明细的授权可以在此处授权,如想进行明细授权可以直接在“用户权限”界面授权。

2、设置字段权限控制系统默认不进行字段权限检查,只有当授权用户对指定字段设置了字段权限控制后,用户进行该数据类别的指定字段进行操作时进行权限检查。

设置字段权限控制操作步骤,如表8-11:步骤描述是否必需(是/否)第一步点击【字段权限】菜单中【设置字段权限控制】是第二步选择某一子系统下的数据类型,系统显示该数据类型的所有可授权字段。

是是第三步授权用户可以根据需要设置指定的数据类别的字段【启用字段权限控制】,并点击【应用】按钮保存设置结果。

K3BOS插件开发入门教程

K3BOS插件开发入门教程

BOS插件开发入门教程本文主要针对初学者,介绍BOS插件开发与制作的基本流程与步骤,为入门所用。

以一个简单的插件开发需求为例:比如想在新开发的BOS单据上,增加一个自定义菜单按钮,按钮标题为“My BOS MenuBarButton”,位置放在编辑菜单下的驳回审核按钮之后,在工具栏上的退出按钮之前;当点击该自定义按钮时弹出提示框“Hello,This Is My First BOS Bill InterFace!”。

针对此需求,让我们一起看看如何一步一步通过BOS插件来实现:【第一步】:由于插件是基于VB语言开发,首先需要在装有金蝶K3的环境下安装Microsoft Visual Basic 6.0(简称VB6.0)开发工具。

附开发工具下载地址:/liangchan/1935.html【第二步】:安装好VB6.0之后,在开始菜单中找到VB6.0的快捷方式,打开VB之后将出现以下界面(如图1):图1在此界面一定要选择“ActiveX DLL”,再点击“打开”按钮,然后会进入以下工作界面(如图2):图2注意界面右上方的“插件开发向导”按钮。

有的环境可能会出现打开VB6.0后并没有“金蝶k/3-BOS”菜单的问题,解决方法如下:找到K3安装目录下的ADDIN文件夹,将此文件夹下的两个DLL文件(K3BOSPLUGINSADDIN.dll 和K3GLParaConsolePlugin.dll),在CMD命令行中用RegSvr32命令进行注册。

例如:K3安装目录为C:\Program Files\Kingdee\K3ERP,那么在cmd中输入命令就为:regsvr32 "C:\Program Files\Kingdee\K3ERP\ADDIN\K3BOSPLUGINSADDIN.dll"regsvr32 "C:\Program Files\Kingdee\K3ERP\ADDIN\K3GLParaConsolePlugin.dll"回车提示注册成功之后,再重新打开VB就会出现“金蝶k/3-BOS”菜单,如果还没出现需要再重启下电脑解决。

K3单点登录二次开发指导文档

K3单点登录二次开发指导文档

单点登录二次开发指导文档目录1.概要信息 (3)1.1.目的 (3)1.2.范围 (3)2.二次开发实现步骤 (3)2.1.Visual Basic单点登录二次开发实现步骤 (3)2.1.1. Demo简介 (3)2.1.2. 实现步骤和流程 (4)2.1.3. 注意事项 (7)2.2.Visual C#单点登录二次开发实现步骤 (8)2.2.1. Demo简介 (8)2.2.2. 实现步骤和流程 (9)2.2.3. 注意事项 (12)单点登录二次开发实现步骤 (13)2.3.1. Demo简介 (13)2.3.2. 实现步骤和流程 (13)2.3.3. 注意事项 (17)1.概要信息1.1. 目的本文档主要描述如何在第三方系统中,使用K/3门户系统的单点登录功能,以方便与K/3各应用系统如K/3门户、K/3、K/3HR进行集成应用。

阅读本文需要具备一定的软件开发知识,最好具备相应语言如Visual Basic、Visual C#、 开发经验,同时也需要对单点登录的业务逻辑有一定的了解,关于单点登录业务逻辑的信息文档,请参见K/3门户的帮助系统。

1.2. 范围本文档描述单点登录的二次开发功能实现,主要分3种语言分包进行描述,分别为VB、C#、,当然,K/3门户系统的单点登录也支持其他开发语言,具体请参考已有语言的逻辑进行二次开发工作。

2.二次开发实现步骤2.1. Visual Basic单点登录二次开发实现步骤2.1.1.Demo简介正常安装K/3后,请在服务器打开(K3安装目录一般为C:\Program Files\Kingdee\K3ERP)/K3Portal/ PortalHelp/Demo/VB/目录,其中VBPassportDemo.vbp为采用Visual Basic 语言开发的单点登录Demo,运行时界面如下图:录入正确的用户和密码后,选择单点登录,进入正常的第三方业务系统,界面效果如下图:2.1.2.实现步骤和流程下面以Demo为例,详细讲解二次开发流程1、假定VBPassportDemo为第三方的业务系统,并具备自己的用户和登录系统,假定原登录界面为FrmLogin,原主控为frmMain2、在FrmLogin增加3个控件,首先增加一个GroupBox(登录方式),然后增加2个OptionButton,分别命名为opt1(命名用户登录),opt2(单点登录),其中命名用户登录为原有的登录方式,改进后增加了如下图的内容3、增加一个Module,命名为PassportLogin,假定原系统存在登录逻辑校验函数为LoginVB,则增加函数LoginPassword,该函数首先调用单点登录组件进行单点登录验证,当单点登录验证通过之后,再调用原有登录逻辑LoginVB进行登录具体如下:4、在登录界面FrmLogin中,调用单点登录函数,如下图5、注销功能实现,当退出主控台时,需要注销单点登录信息,注销实现如下图:6、在FrmMain界面调用注销功能,代码如下图:2.1.3.注意事项1、关于门户Url地址和门户用户关联:因为单点登录是使用K/3门户的用户进行登录的,而第三方系统有自己的用户系统,因此,需要进行两者的用户关联,本Demo默认使用K/3的用户关联系统,第三方系统需要替换成自己的用户关联处理函数下面介绍一下K/3的用户关联逻辑2、K/3系统的Url地址在安装有K/3的机器上,通过开始菜单-程序-金蝶K3-金蝶K3 服务器配置工具-帐套管理,进入后点击系统(&S)菜单-系统参数设置,见如下界面该参数在VB中通过下列代码可以获取3、K/3单点登录用户关联在安装有K/3的机器上,通过开始菜单-程序-金蝶K3-金蝶K3 服务器配置工具-帐套管理,选择具体的帐套,进入菜单帐套(&A)-用户管理,在用户管理界面中,选择一个用户,双击,弹出如下界面,其中包括“对应门户用户”的信息2.2. Visual C#单点登录二次开发实现步骤2.2.1.Demo简介正常安装K/3后,请在服务器打开(K3安装目录一般为C:\Program Files\Kingdee\K3ERP)/K3Portal/ PortalHelp/Demo/ C#/目录,其中CSharpPassportDemo.csproj为采用Visual C#语言开发的单点登录Demo,运行时界面如下图:录入正确的用户和密码后,选择单点登录,进入正常的第三方业务系统,界面效果如下图:2.2.2.实现步骤和流程下面以Demo为例,详细讲解二次开发流程1、假定CSharpPassportDemo为第三方的业务系统,并具备自己的用户和登录系统,假定原登录界面为FrmLogin.cs,原主控为FrmMain.cs2、在FrmLogin增加3个控件,首先增加一个GroupBox(登录方式),然后增加2个OptionButton,分别命名为opt1(命名用户登录),opt2(单点登录),其中命名用户登录为原有的登录方式,改进后增加了如下图的内容3、增加一个Class,命名为CPassportLogin.cs,假定原系统存在登录逻辑校验函数为LoginCSharp,则增加函数LoginPassword,该函数首先调用单点登录组件进行单点登录验证,当单点登录验证通过之后,再调用原有登录逻辑LoginCSharp进行登录具体如下:4、在登录界面FrmLogin中,调用单点登录函数,如下图5、注销功能实现,当退出主控台时,需要注销单点登录信息,注销实现如下图:6、在主控台FrmMain调用注销功能,代码如下图:2.2.3.注意事项1、关于门户Url地址和用户关联:因为单点登录是使用K/3门户的用户进行登录的,而第三方系统有自己的用户系统,因此,需要进行两者的用户关联,本Demo默认使用K/3的用户关联系统,第三方系统需要替换成自己的用户关联处理函数2、门户Url地址:本Demo未取实际的Url设置地址,实际应用中要增加门户Url设置界面,并调用相关接口提取门户Url地址,本Demo采取了简化处理,直接取本机,如下图3、单点登录用户关联如VB本版介绍,需要进行用户关联设置并提供相关接口进行用户映射2.3. 单点登录二次开发实现步骤2.3.1.Demo简介正常安装K/3后,请在服务器打开(K3安装目录一般为C:\Program Files\Kingdee\K3ERP)/K3Portal/ PortalHelp/Demo/ ASPNET/目录,其中包括Login.aspx和Default.aspx,该页面是采用语言开发的单点登录Demo,首先在IIS服务器建立一个虚拟目录为ASPNET,并将路径指向该目录。

金蝶K3 BOS二次开发

金蝶K3 BOS二次开发

任务2 字段定义
介绍:(1)字段分类; (2)字段属性分类; (3)字段特殊属性定义; (4)物理表定义; (5)单据关键字段定义; (6)名称、描述定义; (7)尺寸属性;
任务3 事件定义及单据运行测试
操作:(1)计算定义公式的值并填写到指定列;
(2)合法性检查; (3)携带当前字段相关属性到指定列; (4)表达式为真/假时显示/隐藏字段; (5)表达式为真/假时锁定/解锁字段;
金蝶K/3 12.1 BOS 应用开发
李武韬 办公室:SC514
项目一 金蝶K/3 BOS概述
面向服务架构(Service-Oriented Architecture,简称SOA) :一个组件模型, 它将应用程序的不同功能单元(称为服务) 通过这些服务之间定义良好的接口和契约联 系起来。 例如:海澜之家更换制造商
任务4 权限定义
功能权限、字段权限定义
任务5 其它单据定义功能
1.业务对象操作定义:操作管理(改变适用 场景,新增操作),操作消息管理 2.界面布局定义 3.窗体风格定义 4.录入顺序定义
上机练习:单据定义 项目十一 上机操作 练习一 外贸合同 练习二 生产领料结算单 练习三 生产工艺单 其他:
服务被抽象为统一的模型,形成业务服务库。
BOS使用开放的平台及技术标准。 业务服务完整的生命周期。
思考和讨论: 如何理解BOS? 如何通过BOS理解更为抽象的SOA?
任务2 BOS开发流程
K/3 BOS
需求 分析
业务 抽象
业务对 象定义
流程 定义
定制 插件
报表 定义
部 署
项目四 K/3 BOS集成开发平台
任务1 K/3 BOS集成开发平台功能介绍 演示及操作练习

初学者-k3cloud插件开发基础资料

初学者-k3cloud插件开发基础资料

插件开发基础1、插件开发环境开发环境配置要求K/3 Cloud BOS是运行在windows平台上的,开发工具也是基于windows平台的Visual在过去,由于追求大规模集约生产技术、标准化的理念和操作的高效率,使得很多应用产品都趋于标准化。

随着信息技术快速发展,越来越多的企业把对人的关注、人的个性释放及人的个性需求的满足推到空前中心的地位,企业与市场逐步建立一种新型关系,建立消费者个人数据库和信息档案,与消费者建立更为个人化的联系,及时地了解市场动向和顾客需求,向顾客提供一种个人化的销售和服务,顾客根据自己需求提出商品性能要求,企业尽可能按顾客要求进行生产,迎合消费者个别需求和品味,并应用信息,采用灵活战略适时地加以调整,以生产者与消费者之间的协调合作来提高竞争力,以多品种、中小批量混合生产取代过去的大批量生产。

这有利于节省中间环节,降低销售成本。

K/3Cloud BOS平台提供动态扩展功能,通过动态领域模型建模将业务成各种标准接口和标准服务,通过插件开发完成标准业务扩展,快速高效实现个性化和非标准化业务。

K/3Cloud BOS平台的插件是一种专门为某一软件设计、用于功能扩充的程序。

通过它可以:实现更灵活的控制方式和客户化定制;实现标准产品中特殊的业务流程处理;进行个性化的菜单、外观定制;增加自定义的菜单并响应其操作;对已有操作和服务未支持的功能进行扩展;快速开发、快速实施、快速应用;可配置,可测试,快速部署。

介绍插件开发前再回顾一下BOS架构模型:(图 10 – 1 架构模型)动态表单模型封装了表单标准服务、操作和扩展服务,通过引擎和标准插件调用来组装业务。

标准插件可被业务插件继承和替代,实现客户个性化需求。

根据应用,BOS平台提供了4类插件:1.动态表单插件业务逻辑封装的插件,用于单据上业务各种事件、操作和服务的介入;提供了一系列事件、操作和服务接口;此类插件最常用。

2.服务插件基于动态表单服务端的插件,提供服务编程接口;此类接口在外部服务直接调用。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

金蝶 K/3 BOS V10.1插件开发指导手册金蝶软件(中国)有限公司2004.9目录打个小广告:金蝶二次开发技术交流QQ群①群 30121062 已满②群 28307002 未满③群待定大家共同学习共同进步1开发基础 (3)1.1插件开发概念 (3)1.2插件开发配置 (3)2开发指南 (4)2.1创建一个金蝶K/3 BOS 插件 (4)2.1.1创建一个金蝶K/3 BOS 客户端事件插件 (4)2.1.2创建一个金蝶K/3 BOS 中间层事件插件 (9)2.2自定义金蝶K/3 BOS 标准菜单、工具栏 (11)2.3添加新的菜单、工具栏 (12)2.4添加新的事件、方法 (12)2.5访问中间层和数据库 (12)2.6保存数据 (13)3参考 (13)3.1客户端插件事件、方法、属性 (13)3.2中间层插件事件 (13)3.3判断业务对象引用存储过程 (13)3.4金蝶K/3 BOS数据库结构 (13)4示例 (13)4.1XXX (13)1开发基础1.1插件开发概念金蝶K/3运行平台为金蝶K/3 BOS开发的业务单据提供了稳定、标准的运行环境,但为了实现客户更加个性化的需求和保持金蝶K/3 BOS架构的开放性,还为客户化开发提供了插件编程机制:通过金蝶K/3 BOS业务单据和序时簿事件代理组件,把业务单据处理的关键事件接口抛出,客户可以接收这个事件代理组件,并对组件的抛出事件编程,从而实现个性化的事件处理方法,对金蝶K/3 BOS运行平台进行有效的扩充和扩展。

需要注意的是:a) 当前版本的金蝶K/3 BOS支持的插件,仅应用在金蝶K/3的GUI版本,不支持WEB版本;b) 当前版本的金蝶K/3 BOS支持采用Microsoft Visual Basic 编写的插件,采用的类型推荐为ActiveX DLL 类型;c) 当前版本的金蝶K/3 BOS支持的插件分为客户端事件插件、中间层事件插件;在本手册中,我们所有关于金蝶K/3 BOS插件的定义、描述、示例等,都符合上述3点特征。

1.2插件开发配置开发、调试金蝶K/3 BOS插件,需要安装:a) 金蝶K/3 客户端部件b) 金蝶K/3 BOSc) Microsoft Visual Basic(推荐使用v6.0 版本,并且安装SP5)另外,如果要通过插件在K/3 BOS标准单据、序时簿界面上增加菜单、工具条,还需要安装:d) Data Dynamics ActiveBar ActiveX v1.0.6.5同时,我们推荐:a) 采用Microsoft Windows 2000 Server(及以上版本)等Server类操作系统作为开发、调试操作系统;b) 在该操作系统上安装Microsoft SQL Server 2000数据库;c) 在该操作系统上安装金蝶K/3 客户端部件、金蝶K/3 中间层部件、金蝶K/3BOS;这样,我们就可以同时开发、调试金蝶K/3 BOS客户端事件插件和金蝶K/3 BOS中间层插件了。

2开发指南2.1创建一个金蝶K/3 BOS 插件在安装、配置完1.2 要求的环境后,我们就可以开始创建一个金蝶K/3 BOS插件了。

2.1.1创建一个金蝶K/3 BOS 客户端事件插件要创建一个金蝶K/3 BOS 客户端事件插件,请按照以下步骤操作:1) 启动Microsoft Visual Basic 6.0。

2) 在出现的“New Project”对话框中选择“ActiveX DLL”。

3) 选择菜单“Project”—〉“References”。

4) 在出现的“References”对话框中,选择下述2项:●K3ClassEvents●Kingdee Foundation Objects 1.0如果没有在这个列表中没有找到上述2项,可以点击对话框上的“Browse”按键,在出现的打开文件对话框中分别选择本机上的●K3ClassEvents.dll●Kfo10.dll这2个DLL文件即可(一般在金蝶K/3 客户端部件的安装目录中可以找到)。

5) 重新命名工程及类模块名称,保存工程。

例如将默认的新建工程名和类模块名改为下图所示。

6) 在BOSPlugIns.cls类模块的代码中写入如下的代码。

Option ExplicitPrivate WithEvents m_BillInterface As K3ClassEvents.BillEvent '必须具有的声明, 以此来获得单据事件'这个 Public Sub 必须存在, 且必须如下格式, 请不要修改或删除Public Sub Show(ByVal oBillInterface As Object)'这里获得了K/3的单据对象. 共有 26 个事件, 11 个属性和 49 个方法可以使用'具体的事件、属性、方法,可以通过 VB IDE 的“Object Browser”工具,选'择“K3ClassEvents”下的“BillEvent”察看Set m_BillInterface = oBillInterfaceEnd Sub'这个 Private Sub 必须存在, 且必须如下格式, 请不要修改或删除Private Sub Class_Terminate()'释放K/3的单据对象Set m_BillInterface = NothingEnd SubCode 1: 客户端单据事件插件连接代码在上面的代码中,我们定义了一个名为m_BillInterface的BillEvent对象,来接受金蝶K/3 BOS 的客户端单据事件。

在BOSPlugIns.cls类模块的代码中写入如下的代码则可以接受金蝶K/3 BOS的客户端序时薄事件。

Option ExplicitPrivate WithEvents m_ListInterface As K3ClassEvents.ListEvents '必须具有的声明, 以此来获得序时薄事件'这个 Public Sub 必须存在, 且必须如下格式, 请不要修改或删除Public Sub Show(ByVal oListInterface As Object)'这里获得了K/3的序时薄对象. 共有 8 个事件, 5 个属性和 15 个方法可以使用'具体的事件、属性、方法,可以通过 VB IDE 的“Object Browser”工具,选'择“K3ClassEvents”下的“ListEvents”察看Set m_ListInterface = oListInterfaceEnd Sub'这个 Private Sub 必须存在, 且必须如下格式, 请不要修改或删除Private Sub Class_Terminate()'释放K/3的序时薄对象Set m_ListInterface = NothingEnd SubCode 2: 客户端序时薄事件插件连接代码如果希望在一个插件中同时可以处理客户端单据事件和序时薄事件,可以通过在工程中添加1个类模块,如下图所示,分别在2个类模块中添加上述2段代码。

这样就可以利用1个类来处理客户端单据事件,用另1个类来处理客户端序时薄事件了。

7) 编译工程。

8) 在金蝶K/3 BOS中设置插件。

如下图所示:上图所示的是步骤6中的同时可以处理单据事件和序时薄事件的插件的设置。

以上步骤完成后,我们就建立了一个金蝶K/3 BOS 客户端事件(包括单据事件和序时薄事件)插件。

虽然我们在这个例子中没有进行任何额外的单据事件和序时薄事件操作,但经过设置后,实际上已经在使用了这个插件的单据、序时薄中调用了这个插件。

我们现在需要做的,只是在这个插件中,利用获得的单据、序时薄对象,实现我们希望的具体操作了。

2.1.2创建一个金蝶K/3 BOS 中间层事件插件要创建一个金蝶K/3 BOS 中间层事件插件,请按照以下步骤操作:1) 执行“2.1.1创建一个金蝶K/3 BOS 客户端事件插件”中的步骤1至步骤5。

唯一不同的是在步骤4中,只需要添加Kingdee Foundation Objects 1.0的引用。

2) 在BOSPlugIns.cls类模块的代码中写入如下的代码。

Option Explicit'/********************************************************************/'/*描述:单据保存后扩展处理方法'/*备注:可以将该单触发器处理的过程在此函数中处理'/********************************************************************/Public Function BeforeSave(ByVal sDsn As String, _ByVal dctClassType As KFO.Dictionary, _ByVal vctClassTypeEntry As KFO.Vector, _ByVal dctTableInfo As KFO.Dictionary, _ByVal dctData As KFO.Dictionary, _ByVal dctLink As KFO.Dictionary)Debug.Print "当前资料被保存前扩展处理方法"End Function'/********************************************************************/ '/*描述:单据删除前扩展处理方法'/********************************************************************/ Public Function BeforeDel(ByVal sDsn As String, _ByVal nClassID As Long, _ByVal dctClassType As KFO.Dictionary, _ByVal nInterID As Long)Debug.Print "当前资料被删除前扩展处理方法"End Function'/********************************************************************/ '/*描述:单据保存后扩展处理方法'/*备注:可以将该单触发器处理的过程在此函数中处理'/********************************************************************/ Public Function AfterSave(ByVal sDsn As String, _ByVal dctClassType As KFO.Dictionary, _ByVal vctClassTypeEntry As KFO.Vector, _ByVal dctTableInfo As KFO.Dictionary, _ByVal dctData As KFO.Dictionary, _ByVal dctLink As KFO.Dictionary)Debug.Print "当前资料被保存后扩展处理方法"End Function'/********************************************************************/ '/*描述:单据删除后扩展处理方法'/********************************************************************/ Public Function AfterDel(ByVal sDsn As String, _ByVal nClassID As Long, _ByVal dctClassType As KFO.Dictionary, _ByVal nInterID As Long)Debug.Print "当前资料被删除后扩展处理方法"End FunctionCode 3: 中间层事件插件连接代码在上面的代码中,我们可以看到,不同于金蝶K/3 BOS 的客户端事件插件的处理,在金蝶K/3 BOS中间层事件插件中,我们只需要实现这4个标准事件就可以了。

相关文档
最新文档