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

合集下载

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

金蝶K3 BOS插件开发手册

金蝶K3 BOS插件开发手册

K/3 BOS插件开发手册K/3 BOS插件开发手册(版本:V12.1)金蝶软件(中国)有限公司BOS系统部K/3 BOS系统部目录概述 (1)COM (1)K3ClassEvents的对象模型 (1)使用说明 (1)K3ClassEvents的对象 (2)ListEvents对象参考 (3)DataSrv 属性 (3)EnableListFillRowEvents 属性 (4)K3Lib 属性 (5)List 属性 (6)ListEntrySort 属性 (6)ListFilterString 属性 (7)ListHeadSort 属性 (7)MenuBar 属性 (7)MultiCheckMgr 属性 (8)RsId 属性 (8)ShowMode 属性 (9)ShowMsg 属性 (9)DeleteBill 函数 (9)GetDataFldByKey 函数 (10)GetDataFld 函数 (11)GetCurrentSelRowInfo 函数 (12)GetSelectedBillInfo 函数 (13)LoadSelectedBill 函数 (14)RefreshList函数 (15)SenderMessage 函数 (15)UpdateNormalFld 函数 (16)UpdateNormalFldByKey 函数 (17)RefreshMenu 函数 (17)AfterBatchMultiCheck事件 (18)AfterBusinessCheck 事件 (18)AfterBusinessCheckEx 事件 (18)AfterCopyBillCreateData 事件 (19)AfterDeleteBill 事件 (19)AfterMergeCopyBill事件 (20)AfterMultiCheck 事件 (20)AfterMultiCheckEx 事件 (21)AfterSelList 事件 (21)AfterUnBusinessCheck 事件 (21)AfterUnBusinessCheckEx 事件 (22)AfterUnMultiCheck 事件 (22)BeforeMultiCheck 事件 (23)BeforeMultiCheckEx 事件 (24)BeforePrintBill 事件 (24)BeforeSenderMessage 事件 (25)BeforRefreshToolBar 事件 (25)BusinessCheck 事件 (26)BusinessCheckEx 事件 (26)FinishMultiCheck 事件 (26)FinishMultiCheckEx 事件 (27)ListFillRow 事件 (28)ListRowSelected 事件 (29)MenuBarClick 事件 (30)MenuBarInitialize 事件 (30)MultiCheck 事件 (30)MultiCheckEx 事件 (31)PrintSuccessful事件 (32)StartMultiCheck 事件 (32)StartMultiCheckEx 事件 (33)UnBusinessCheck 事件 (33)UnBusinessCheckEx 事件 (34)UnMultiCheck 事件 (34)UnMultiCheckEx 事件 (35)ReMultiCheck 事件 (35)ReMultiCheckEx 事件 (36)ReUnMultiCheck 事件 (36)ReUnMultiCheckEx 事件 (37)BaseClassEvent对象参考 (38)BrowseCtl 属性 (38)DataSrv 属性 (38)EnableListFillRowEvents 属性 (38)InsertNewRowAndFillOption属性 (40)K3Lib 属性 (41)ListActiveBar 属性 (41)ListEntrySort 属性 (41)ListFilterString 属性 (42)ListHeadSort 属性 (42)MenuBar 属性 (42)RsClassGroup 属性 (43)RsId 属性 (43)GetActiveCtl 函数 (43)GetSelectedClassID 函数 (44)GetSelectedClassType 函数 (45)GetSelectedItemID 函数 (45)IsSearchState 函数 (47)PitchItemByID 函数 (48)SelectClassGroupByID 函数 (48)SenderMessage 函数 (49)SetStatus函数 (50)RefreshClassGroups 方法 (50)RefreshListByClassGroupID 方法 (51)RefreshSelectedClassGroup 方法 (51)RefreshSelectedClassGroupList 方法 (52)AfterGetData 事件 (52)BeforePrintBill 事件 (53)BeforeSenderMessage 事件 (53)ClassGroupSelected 事件 (54)DeleteBillSucessful事件 (55)ListFillRow 事件 (55)ListRowSelected 事件 (57)MenuBarClick 事件 (57)MenuBarInitialize 事件 (58)RefreshList 事件 (58)BillEvent对象参考 (59)AccessoryTypeID 属性 (59)BillCtl 属性 (59)BillEntrys 属性 (59)BillHeads 属性 (60)BillHeight 属性 (60)BillName 属性 (60)BillStatus 属性 (61)BillWidth 属性 (61)CancelPrintControl属性 (62)ClassType 属性 (62)ClassTypeEntry 属性 (62)ClassTypeKey 属性 (63)Data 属性 (63)DataSrv 属性 (63)EntryPrimaryKey 属性 (64)FID 属性 (64)InsertNewRowAndFillOption属性 (65)IsDoAction 属性 (65)IsDoActionData 属性 (65)K3Lib 属性 (66)LayerCount 属性 (66)LayerNames属性 (66)MenuBar 属性 (67)ObjectID 属性 (68)ObjectType 属性 (68)OriginalFieldValue属性 (68)PrimaryKey 属性 (69)ReSaveSuccess 属性 (69)rsBillID 属性 (69)ShowType 属性 (70)TableInfo 属性 (70)TableName 属性 (70)TaskID 属性 (71)ShowMsg 属性 (71)BatchToDoActions函数 (71)DeleteEntryData 函数 (72)GetActiveCtl 函数 (73)GetActiveField 函数 (74)GetCommonControl函数 (74)GetDataFld 函数 (75)GetDataFldbyKey 函数 (76)GetFieldInfoByKey 函数 (77)GetDynamicCtlByKey函数 (78)GetFieldValue 函数 (78)GetToolIndex 函数 (79)GetVariable函数 (80)InsertNewRowAndFill 函数 (81)IsChange 函数 (82)IsFileNeedFilter 函数 (82)LockBill 函数 (83)RefreshBill 函数 (83)SenderMessage 函数 (84)SetDecimal 函数 (84)SetFieldSumValue函数 (85)SetFieldValue 函数 (85)SetSumDecimal 函数 (87)SetText 函数 (87)SetTypeFloatMax 函数 (88)SetTypeFloatMin 函数 (88)ShowHideField 函数 (89)ShowHideGrid 函数 (90)Sum 函数 (90)UpdateLookFld 函数 (91)UpdateNormalFld 函数 (91)DoAction 方法 (92)IsDoActionByKey 方法 (92)RemoveRow 方法 (93)SaveBill 方法 (94)SetActiveTab方法 (94)SetBillFormCaption 方法 (95)SetCaption 方法 (95)SetGridMaxRows方法 (96)SetStatus 方法 (96)SetActiveCell 方法 (97)SetBillWindowState方法 (97)SetRowsPerRequest方法 (98)SetStateStampPicture方法 (98)SetStatusBarInfo方法 (99)SetVariable函数 (99)SizeBillControl方法 (100)AddNewRow 事件 (100)AfterBusinessCheck 事件 (101)AfterBusinessCheckEx 事件 (101)AfterCopyBill 事件 (101)AfterDeleteRow 事件 (102)AfterDoAction 事件 (102)AfterFillRow 事件 (103)AfterFirstNewBill 事件 (103)AfterInputBillSetSumData 事件 (104)AfterLoadBill 事件 (104)AfterLoadBillSetSumData 事件 (104)AfterLoadDynamicCtl事件 (105)AfterMergeCopyBill 事件 (105)AfterMultiCheck 事件 (105)AfterMultiCheckEx 事件 (106)AfterNewBill 事件 (106)AfterNewEmptyData 事件 (107)AfterSave 事件 (107)AfterSelBill 事件 (107)AfterSelBillBeforeFillData 事件 (108)AfterStockQuery事件 (108)AfterUnBusinessCheck 事件 (108)AfterUnBusinessCheckEx 事件 (108)AfterUnMultiCheck 事件 (109)AfterUnMultiCheckEx 事件 (109)BeforeDeleteRow事件 (110)BeforeDoAction 事件 (110)BeforeLoadBill 事件 (112)BeforeMultiCheck 事件 (112)BeforePrintBill 事件 (113)BeforeSave 事件 (114)BeforeSelBills 事件 (114)BeforeSelBillShowFilter 事件 (114)BeforeSenderMessage 事件 (115)BeforeSetMutilSelData事件 (116)BeforeSetMutilSelData2事件 (116)BeforeVerify 事件 (117)BeforeWindowExit事件 (117)BeforLoadBillFillData 事件 (117)BeginEdit 事件 (118)BusinessCheck 事件 (118)BusinessCheckEx 事件 (118)Change 事件 (119)CommandClick事件 (119)EntryFieldChanged事件 (120)FinishMultiCheck 事件 (120)FinishMultiCheckEx 事件 (121)GetFocus 事件 (121)HeadCtlClick 事件 (122)LostFocus 事件 (122)MenuBarClick 事件 (122)MenuBarInitialize 事件 (123)MultiCheck 事件 (123)MultiCheckEx 事件 (124)ReMultiCheck 事件 (125)ReMultiCheckEx 事件 (125)ReUnMultiCheck 事件 (125)ReUnMultiCheckEx 事件 (126)SaveBillFailed 事件 (126)SaveBillSuccess事件 (127)SSTabClick事件 (127)StartMultiCheck 事件 (127)StartMultiCheckEx 事件 (128)UnBusinessCheck 事件 (128)UnBusinessCheckEx 事件 (129)UnMultiCheck 事件 (129)UnMultiCheckEx 事件 (130)Verify 事件 (130)K3Lib对象参考 (132)Account 属性 (132)Net 属性 (133)User 属性 (133)CreateK3Object 函数 (137)GetData 函数 (138)GetK3Language 函数 (139)LoadKDString 函数 (140)UpdateData 方法 (142)GetStockQty 函数 (142)LookUpClass函数 (143)LoadBill 方法 (145)LoadList方法 (145)AccountID 属性 (147)AccountName 属性 (147)SetupType 属性 (147)Net对象参考 (149)BeginMutex 函数 (149)CommitMutex 函数 (149)QueryFunc 函数 (150)QuerySubSys 函数 (150)User对象参考 (151)UserID 属性 (151)UserName 属性 (151)MenuBar对象参考 (152)MenuBar 对象结构图 (152)ActiveBand 属性 (153)BOSBands 属性 (153)BOSTools 属性 (154)Refresh 方法 (154)BOSBands对象参考 (155)Count 属性 (155)Item 属性 (155)Add 函数 (155)Remove 方法 (156)RemoveAll 方法 (156)BOSBand对象参考 (157)BandName 属性 (157)BandType 属性 (157)BOSTools 属性 (157)Caption 属性 (157)CurrentTool 属性 (158)DockingArea 属性 (158)DockingOffset 属性 (158)DockLine 属性 (159)Flags 属性 (159)Visible 属性 (159)Refresh 方法 (160)BOSTools对象参考 (161)Count 属性 (161)Item 属性 (161)Add 函数 (161)GetFreeToolID 函数 (162)InsertAfter 方法 (162)InsertBefore 方法 (163)Remove 方法 (163)RemoveAll 方法 (164)BOSTool对象参考 (165)Alignment 属性 (165)BeginGroup属性 (165)Caption 属性 (165)CaptionPosition 属性 (166)Checked 属性 (166)Default 属性 (166)Description 属性 (167)Enabled 属性 (167)ShortcutKey 属性 (167)Style 属性 (170)SubBand 属性 (170)Tag 属性 (170)ToolID 属性 (170)ToolName 属性 (171)ToolPicture 属性 (171)TooltipText 属性 (171)Visible 属性 (171)PasteToolFace 方法 (171)SetPicture 方法 (172)BillHeads\BillHead\BillEntrys\BillEntry\BOSFields\BOSField对象参考 (174)MenuBar 对象结构图 (174)BillHeads对象参考 (175)Count 属性 (175)Item 属性 (176)BillHead对象参考 (177)BOSFields 属性 (177)BillEntrys对象参考 (178)Count 属性 (178)Item 属性 (179)BillEntry对象参考 (180)BOSFields 属性 (180)EntryHeight 属性 (180)EntryLeft 属性 (180)EntryTop 属性 (180)EntryType 属性 (181)EntryWidth 属性 (181)KeyField 属性 (181)Layer 属性 (181)MaxRows 属性 (182)TableName 属性 (182)Visible 属性 (182)AddRow 方法 (182)RemoveRow 方法 (183)BOSFields对象参考 (184)Count 属性 (184)Item 属性 (184)BOSField对象参考 (185)Caption 属性 (185)FieldHeight 属性 (185)FieldLeft 属性 (185)FieldLock 属性 (185)FieldName 属性 (186)FieldTop 属性 (186)FieldWidth 属性 (186)Filter 属性 (186)FKey 属性 (186)FontBold 属性 (187)FontItalic 属性 (187)FontName 属性 (187)FontSize 属性 (187)FrameBorder 属性 (188)FrameBorderColor 属性 (188)LabelColor 属性 (188)LabelWidth 属性 (188)Layer 属性 (188)MustInput 属性 (189)NeedSave 属性 (189)Note 属性 (189)Number 属性 (189)Page 属性 (189)Row 属性 (190)TableName 属性 (190)Text 属性 (190)TextColor 属性 (190)Value 属性 (190)SetFieldSumValue方法 (191).Net (192)基础配置 (192)开发环境 (192)使用说明 (192)引用 (192)插件跟踪 (192)K3ClassEvents的对象模型 (193)K3ClassEvents的对象 (193)ListEvents对象参考 (194)事件声明 (194)AfterCopyBillCreateData 事件 (195)OnBarInitialize事件 (195)AfterShowBill事件 (195)OnBarItemClick事件 (196)ShowBill函数 (196)AspxGetSelectList函数 (197)AddBarItem函数 (197)AddBarItemLink函数 (198)SetBarItemProperty函数 (199)AddBarItemLink函数 (199)RemoveBarItem函数 (200)RemoveBarItemLink函数 (200)BillName 属性 (201)ClassType 属性 (201)ClassTypeEntry 属性 (202)ClassTypeKey 属性 (202)PrimaryKey 属性 (202)EntryPrimaryKey 属性 (203)TableInfo 属性 (203)TableName 属性 (203)BillEvent对象参考 (205)事件声明 (205)OnBarInitialize事件 (206)OnBarItemClick事件 (207)AfterNewBill 事件 (207)BeforLoadBillFillData事件 (207)AfterLoadBill事件 (207)AfterShowBill 事件 (208)AfterConfirm事件 (208)AfterF7Select事件 (208)Change 事件 (209)BeforeSave 事件 (209)AddBarItem函数 (210)AddBarItemLink函数 (211)GetBarItemProperty函数 (211)SetBarItemProperty函数 (212)AddBarItemLink函数 (212)RemoveBarItem函数 (213)RemoveBarItemLink函数 (213)Alter函数 (214)Confirm函数 (214)GetFieldValue函数 (215)GetRequest函数 (216)LockCell函数 (216)LockWebTabItem函数 (217)SaveBill函数 (218)SetFieldValue函数 (218)ShowBill函数 (219)ShowF7Select函数 (220)BillName 属性 (221)ClassType 属性 (221)ClassTypeEntry 属性 (221)ClassTypeKey 属性 (222)PrimaryKey 属性 (222)EntryPrimaryKey 属性 (222)TableInfo 属性 (223)TableName 属性 (223)CurBillID属性 (224)BillHeads对象参考 (225)Count 属性 (225)Item 属性 (225)BillHead对象参考 (226)BOSFields 属性 (226)BillEntrys对象参考 (227)Count 属性 (227)Item 属性 (227)BillEntry对象参考 (228)BOSFields 属性 (228)EntryHeight 属性 (228)EntryIndex 属性 (228)EntryLeft 属性 (228)EntryTop 属性 (228)EntryType 属性 (229)EntryWidth 属性 (229)KeyField 属性 (229)TableName 属性 (230)Visible 属性 (230)BOSFields对象参考 (231)Count 属性 (231)Item 属性 (231)BOSField对象参考 (232)Caption 属性 (232)FieldHeight 属性 (232)FieldLeft 属性 (232)FieldLock 属性 (232)FieldName 属性 (233)FieldTop 属性 (233)FieldWidth 属性 (233)Filter 属性 (233)FKey 属性 (233)FontBold 属性 (234)FontItalic 属性 (234)FontName 属性 (234)FontSize 属性 (234)FrameBorder 属性 (235)FrameBorderColor 属性 (235)LabelColor 属性 (235)LabelWidth 属性 (235)Layer 属性 (235)MustInput 属性 (236)NeedSave 属性 (236)Note 属性 (236)Number 属性 (236)Page 属性 (236)Row 属性 (237)TableName 属性 (237)Text 属性 (237)TextColor 属性 (237)Value 属性 (237)Visible 属性 (238)用户场景 (239)需求 (239)总体需求 (239)需求分解 (240)详细需求 (241)单据信息 (241)单据流程 (243)多级审核 (244)设计和实现 (245)单据数据结构设计 (245)单据头 (245)单据体 (247)字段的过滤条件 (250)BOS IDE中设置过滤条件 (250)通过SQL更新字段的过滤条件 (252)Action设置 (253)自动生成Action (253)手动添加Action (256)单据流程 (258)【销售订单】下推生成【产品入库通知单】 (258)练习一下 (262)多级审核 (264)多级审核设置 (264)凭证功能 (265)设置凭证数据来源 (265)操作管理 (266)插件开发 (269)部署 (270)发布到主控台 (270)制作部署文件 (272)概述为了实现客户个性化的需求和保持K/3 BOS架构的开放性,K/3 BOS提供了插件编程,有效的扩展了K/3 BOS平台,K/3 BOS插件编程是通过K3ClassEvents对象代理实现的。

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

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

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

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

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

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

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

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

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

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

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

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

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

金蝶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开发平台,打开外购⼊库单,并进⾏插件配置: 点击“插件配置管理”,配置客户端插件: 点击“浏览”,找到插件并勾选: 点击“确定”,并保存外购⼊库单。

金蝶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单点登录二次开发指导文档

单点登录二次开发指导文档目录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工业单据二次开发组件参考手册

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。

金蝶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用户操作手册用户操作手册目录1 销售系统业务规程 (1)2 销售订单业务规程 (1)3 销售发货通知业务规程 (5)4 销售出库业务规程 (7)5 分期收款销售处理业务规程 (8)6 销售退货处理业务规程 (10)7 销售发票处理业务规程 (12)8 产品预测业务规程 (15)9 生产计划业务流程 (17)10 计划方案设置业务规程 (23)11 物料计划参数维护业务规程 (26)12 采购系统业务规程 (28)13 采购申请业务规程 (30)14 采购单业务规程 (32)15 采购收货业务规程 (35)16 采购结算业务规程 (38)17 仓库盘点业务规程 (40)18 库存调拨业务规程 (42)19 库物料盘盈、报废处理业务规程 (47)20 受托入库业务流程规程 (49)21 生产任务单维护业务规程 (51)22 生产任务单下达业务规程 (53)23 生产任务单变更业务规程 (55)24 生产任务单返工业务规程 (57)25 生产投料业务规程 (59)26 生产物料报废业务规程 (61)27 采购入库核算流程业务规程 (63)28 采购暂估入库核算流程业务规程 (66)29 销售出库核算业务规程 (69)30 分期收款核算业务规程 (72)31 委外加工核算业务规程 (75)32 物流期末结帐业务规程 (78)33 客户化需求 (80)1销售系统业务流程2.1销售订单处理:生管物控在接到客户订单后,在K3系统[物流管理]→[销售管理] →[销售订单] →[录入]销售订单2销售订单业务规程编号:202031规程说明:2 销售订单多级审核流程图外销流程:注:1、业务助理按客户区域划分,各业务助理只能查看和修改自己录入的销售订单。

2、PMC审核销售订单时屏蔽价格和付款方式。

3.1输入数据3.1.1 销售订单3.2输出数据3.2.1销售订单执行情况明细表3.2.2销售订单执行情况汇总表3.2.3 订单批次跟踪表3销售发货通知业务规程编号:202041规程说明:2 销售发货业务流程图3.1输入数据3.1.1 销售订单3.1.2 发货检验单3.2输出数据3.2.1 已审核的销售发货通知4销售出库业务规程编号:202052 销售出库业务流程图3.1输入数据3.1.1 销售发货通知单3.2输出数据5分期收款销售处理业务规程。

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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集成开发平台功能介绍 演示及操作练习

金蝶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的源代码.。

在金蝶老单据序时簿上进行二次开发(主要是增加按钮这类的操作)

在金蝶老单据序时簿上进行二次开发(主要是增加按钮这类的操作)

在金蝶老单据序时簿上进行二次开发(主要是增加按钮这类的操作)1.接口及参数说明MainFunction(ByVal sKey As string,oList AsObject,Byref bCancel as Boolean)sKey : 菜单的Key值,也就是菜单名oList : K3List控件bCancel:是否取消后继操作标志2.使用方法序时薄的二次开发是通过菜单挂接组件来实现的。

对于使用者需要按照以下步骤进行:1).在t_BandToolMapping中的FcomName填入需要调用组件的名称,注意:不要覆盖原有内容,要在原有内容上用“| ”分割后加入自己的组件,可以加多个组件。

第一个插件前一定要加“|”,因为之前的部分是记录了其他信息。

2).二次开发组件必须实现MainFunction(ByVal sKey As string,oList AsObject,Byref bCancel as Boolean)方法。

要终止事件,请将bCancel设置为true。

3).oList为一个即是ICList,可以使用其中的任何Public方法。

比方说 GetSelData 为取得选取的对象3.使用范例例如外购入库需要对"back"MENU做二次开发,则增加应该为Update a set a.FComName=a.FComName+Case When Right(a.FComName,1)='|' then 'K3GMSPTransBill.GMSPTransList|' else '|K3GMSPTransBill.GMSPTransList|' endfrom t_BandT oolMapping a left join t_MenuT oolBar b on a.FToolID = b.FToolIDwhere FName = 'Back' and FComName not like '%K3GMSPTransBill.GMSPTransList%' and a.FID=82(FID取iclisttemplate.fmenuID)然后在组件K3GMSPTransBill.GMSPTransList中实现Public的MainFunction方法下面是序时簿插件的示例插件示例:Public Function MainFunction(ByVal sKey As String, oList As Object, ByRef bCancel As Boolean)Dim vectBill As KFO.VectorDim lmul As Long' Dim rs As ADODB.RecordsetDim InBatch As FormSet InBatch = New InBatchSet OBJ = CreateObject("K3Connection.AppConnection")'菜单响应Select Case sKeyCase "FMenuPC" '和你在数据库里插入的FNAME一样'通过Set vectBill = oList.GetSelected 可以获取当前选中序时薄数据'返回记录集方式'Set rs = obj.Execute("select * from t_icitem")'执行存储过程方式' obj.Execute3 ("exec KY_PlanQty")End SelectEnd Function。

  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保存数据 (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点特征。

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 "当前资料被保存前扩展处理方法"Code 3: 中间层事件插件连接代码在上面的代码中,我们可以看到,不同于金蝶K/3 BOS 的客户端事件插件的处理,在金蝶K/3 BOS中间层事件插件中,我们只需要实现这4个标准事件就可以了。

关于这4个事件的参数含义,请参考“3.2中间层插件事件”。

3) 编译工程。

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

如下图所示:以上步骤完成后,我们就建立了一个金蝶K/3 BOS 中间层事件插件。

和“2.1.1创建一个金蝶K/3 BOS 客户端事件插件”中的示例一样,我们在这个例子中没有进行任何额外的事件操作,我们现在需要做的,只是在这个插件中,利用这4个事件,实现我们希望的具体操作了。

2.2自定义金蝶K/3 BOS 标准菜单、工具栏请注意:因为金蝶K/3 BOS中间层事件插件不处理界面事件,所以这一小节的内容,都是指金蝶K/3 BOS客户端事件插件的操作。

我们可以看到,金蝶K/3 BOS提供了一个标准的单据界面和序时薄界面,如下图所示。

在这个标准界面的菜单和工具栏项,显示、操作了金蝶K/3 BOS的标准功能,非常方便。

可是有时候我们不需要其中的某些功能,例如我们不希望用户使用“套打设置”这个功能,怎么办?AAA2.3添加新的菜单、工具栏2.4添加新的事件、方法2.5访问中间层和数据库2.6保存数据3参考3.1客户端插件事件、方法、属性3.2中间层插件事件3.3判断业务对象引用存储过程3.4金蝶K/3 BOS数据库结构4示例4.1XXX最新文件---------------- 仅供参考--------------------已改成-----------word文本--------------------- 方便更改赠人玫瑰,手留余香。

相关文档
最新文档