关于一些插件开发的参考代码
更新时间:2023-03-15 12:45:01 阅读量: 教育文库 文档下载
- 关于一些书法家的故事推荐度:
- 相关推荐
K/3 BOS开发百问百答 应用集成部 客户化管理部 2005年12月 目录
一,插件开发篇
【问题1】在插件中以新增,修改和查看方式打开另一单据 【解答】
使用代码调用序时簿
'******************************************** '功能:显示BOS单据,显示的方式为新增,修改和浏览 '参数:lClassTypeID—显示BOS单据的ID
'******************************************** Private Sub ShowBill(ByVal lClassTypeID As Long)
Dim oDataSrv As Object Dim oBill As Object
On Error GoTo err_ctr
Set oDataSrv = m_BillInterface.K3Lib.CreateK3Object(\oDataSrv.ClassTypeID = lClassTypeID
Set oBill = CreateObject(\With oBill
.DataSrv = oDataSrv .ISNetControl = True .ISCheckRight = 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 With
Set oDataSrv = Nothing Set oBill = Nothing
Exit Sub err_ctr:
Set oDataSrv = Nothing Set oBill = Nothing End Sub
【问题2】我想在投料变更单的菜单上加入一个菜单项,需要插入一个插件,但投料变更单上已经有一个插件了,我想了解一下怎样才可以再插入一个插件呢 【解答】
点插件管理中的按钮,可以通过浏览来选择自定义插件,并选择多个插件对象,BOS允许多个插件同时存在.
【问题3】如何通过插件代码动态设置基础资料或业务单据序时薄过滤条件 【解答】 业务场景:
在开发BOS单据时,经常需要根据前面录入的字段值来过滤选择
的基础资料.例如录入客户后,在选择客户对应客户地址基础资料时,在基础资料F7查询界面只显示当前单据上客户对应地址.根据当前物料,在选择物料对应批次. 我们下面就以批次为例说明实现方法:
需求:在选择批次前要求必须录入物料,批次查询界面只显示物料对应的批次 开发步骤:
假设:物料对应FKey=\批次对应FKey=\单据类型 200000001
只需更新对应元数据即可实现: update ICClassTableinfo set FFilter='(FItemID=GetFldValue(FItemID,1))' where FKey=\如果不要求先录入物料 update ICClassTableinfo set FFilter='(FItemID=GetFldValue(FItemID,0))' where FKey=\再举个例子
根据工艺路线过滤工序名称
假设:工艺路线FKey=\工序名称FKey=\单据类型 200000001
update ICClassTableinfo set FFilter='FInterID In (Select FOperID from t_routingoper where FinterID=GetFldValue(FNewRoutingID,1))' where FKey='FOperID' and FClassTypeID=200000001
其中GetFldValue为BOS内部函数,取单据上指定字段值,
第一个参数为字段对应FKey,第二个参数为是否要求该字段先录入,1 要求 0 不要求 此方法虽能实现,但不是最好方法.希望能在插件接口中提供在函数. 【问题4】在插件中调用序时簿并返回选中的数据 【回答】
请参考下面代码
'******************************************** '功能:显示BOS序时簿并返回选中的值 '参数:lClassTypeID—显示BOS单据的ID
'********************************************
Private Function ShowListByReturn(ByVal lClassTypeID As Long) As Object
Dim oDataSrv As Object Dim objLookup As Object
On Error GoTo err_ctr
Set oDataSrv = m_BillInterface.K3Lib.CreateK3Object(\oDataSrv.ClassTypeID = lClassTypeID If oDataSrv.showfilter Then
Set objLookup = CreateObject(\objLookup.ClassTypeID = lClassTypeID Set objLookup.DataSrv = oDataSrv
objLookup.Lookup
Set ShowListByReturn = objLookup.VectReturn
End If
Set oDataSrv = Nothing Set objLookup = Nothing
Exit Function err_ctr:
Set oDataSrv = Nothing Set objLookup = Nothing End Function
【问题5】在自定义的BOS单据上,通过插件作生成凭证的功能,但是在调用凭证的组件时,需要一个二次登录后才能使用相应的模块.请问:如何处理隐身的二次登录,或者其他的变通处理. 【解答】
凭证组件的调用是不需要二次登录的,可能你是在VB调试状态下运行,编译后就没事了. 请参考下面代码
Private Sub m_BillInterface_MenuBarClick(ByVal BOSTool As K3ClassEvents.BOSTool, Cancel As Boolean)
Dim glvch As Object '中间层凭证对象
Dim mvch As KFO.Dictionary '待保存凭证头
Dim mvchentry As KFO.Vector '待保存凭证分录集 Dim entry As KFO.Dictionary '待保存凭证分录 Dim mvchdetail As KFO.Vector '核算项目明细集 Dim detail As KFO.Dictionary '核算项目明细 Dim i, iCount As Long Dim vValue As Variant
'TODO: 请在此处添加代码响应事件 MenuBarClick
Select Case BOSTool.ToolName Case \生成凭证\
vValue = m_BillInterface.GetFieldValue(\
If Not (CStr(vValue) = \
MsgBox \当前合同已经生成凭证!\金蝶提示\Exit Sub End If
'此处添加处理 生成凭证 菜单对象的 Click 事件 Set mvch = New KFO.Dictionary mvch(\
mvch(\金华泰项目\
mvch(\Set mvchentry = New KFO.Vector
vValue = m_BillInterface.GetFieldValue(\合同金额
'创建凭证分录
Set entry = New KFO.Dictionary
entry(\entry(\entry(\
entry(\'数量&单价
entry(\entry(\
entry(\'创建核算项目明细
Set mvchdetail = New KFO.Vector Set detail = New KFO.Dictionary detail(\detail(\mvchdetail.Add detail
Set entry(\mvchentry.Add entry
Set mvch(\Set entry = New KFO.Dictionary
entry(\entry(\entry(\
entry(\'数量&单价
entry(\
entry(\
entry(\'创建核算项目明细
Set mvchdetail = New KFO.Vector Set detail = New KFO.Dictionary detail(\detail(\mvchdetail.Add detail
Set entry(\mvchentry.Add entry
Set mvch(\
Dim s As String s = \ID=sa;Password=ahyj;Data Source=JAMES;Initial Catalog=xt_3};UserName=administrator;UserID=16394;DBMS Name=Microsoft SQL Server;DBMS Version=2000;SubID=GL;AcctType=gy;Setuptype=Industry;Language=chs;IP=192.168.1.92;MachineName=JAMES;UUID=800A878D-F574-4877-B79C-D88AB721ECA0\
Set glvch = CreateObject(\oucher.VoucherUpdate\
glvch.Create s, mvchs = \\
m_BillInterface.K3Lib.UpdateData s m_BillInterface.RefreshBill
MsgBox \凭证生成成功!\金蝶提示\
Case \变更\End Select
End Sub
【问题6】在设计BOS单据的过程中,经常会有关联的下拉列表框操作,如我在客户上选择\建设银行\那么在客户相对应的地址的下拉列表框中应动态显示\建设银行所对应的地址\也就是说客户地址是随着客户的变化而变化的. 【解答】
BOS不支持运行时动态修改下拉列表框的列表值,否则序时簿显示有问题.建议通过其它变通方法实现.客户改变时把相关地址取回到字典包中,用户录入后,自动匹配地址并自动回写.保存时判断地址是否正确.
可以首先定义一个基础资料(客户地址对应表),将下拉框字段改为基础资料字段,关联到客户地址对应表上,并设置动态过滤条件,条件设置方法为:K/3 BOS 开发秘籍之单据录入时动态改变基础资料过滤条件(http://www.mykingdee.com:8000/forum/article.asp id=37977)
通过插件的Change事件更新ICClassTableInfo 的FLookUpList字段值,运行正常,但是下拉列
表框的数据没有变化,据推测好像是新增BOS单据时将所有的元数据规则加载到单据上,即使在单据操作过程中更改元数据规则单据也不能马上更新.不知道将下拉列表框类型替换为基础资料类型,在Change事件时更新基础资料的过滤条件,是否可行,仅供参考.
Private Sub m_BillInterface_Change(ByVal dct As KFO.IDictionary, ByVal dctFld As KFO.IDictionary, ByVal Col As Long, ByVal Row As Long, Cancel As Boolean) Dim iDeptID As Integer
Dim rs As ADODB.Recordset Dim sSql As String
'TODO: 请在此处添加代码响应事件 Change If dct(\
iDeptID = m_BillInterface.BillHeads(1).BOSFields(\
sSql = \where fdepartmentID=\
Set rs = m_BillInterface.K3Lib.GetData(sSql)
End If
End Sub
【问题7】如何可以物料多选 【解答】
'/* 判断物料是否为为多选
If TypeOf ReturnItem.ReturnObject Is KFO.Vector Then '/*如物料是多选,返回值是vector
For lCount = 1 To ReturnItem.ReturnObject.UBound If ReturnItem.ReturnObject.Item(lCount).ItemID 0 Then Set dicItem = New KFO.Dictionary
dicItem(\dicItem(\end if next End If
注意目前只有物料能多选,其他核算项目不支持多选.
【问题8】在表单分录里需要在第一列中使用F7键或点击菜单调出某一窗体(在插件中自定义Form,上有Spread表单),在Form中选中数据(多条或一条),返回到源单,请问在插件中用什么事件可以完成 在单据中添加一菜单,用MenuBarClick事件,F7不易实现.返回的数据需用赋值方法填写到表体中.是什么样的需求不能用BOS单据或基础资料完成\表单\ 【解答】
Private Sub m_BillInterface_MenuBarClick(ByVal BOSTool As K3ClassEvents.BOSTool, Cancel As Boolean)
Dim dct As KFO.Dictionary Dim row As Long Dim col As Long
'TODO: 请在此处添加代码响应事件 MenuBarClick If BOSTool.ToolName = \m_BillInterface.GetActiveField dct, col, row If dct(\要处理字段FKey\frm.Show 1
'通过frm返回 值 If ok Then
m_BillInterface.UpdateNormalFld dct, 值, row End If
Cancel = True End If
End If End Sub
还需要处理下面事件
Private Sub m_BillInterface_BeginEdit(ByVal dct As KFO.IDictionary, ByVal Col As Long, ByVal Row As Long)
If dct(\要处理字段FKey\
m_BillInterface.MenuBar.BOSTools(\End If End Sub
【问题9】插件中字定义系统中如何获取当前系统字符连接串 有个项目中,需要作一个年结功能,进行土地数据结转,在vb中定义了年结功能窗口,要在主控台子系统中调用,怎样或得当前数据库连接信息,亦无法通过k3lib获得,因为我没必要去调用 bos表单或序时簿.另外,一些复杂报表,我也是通过vb中单独实现,这些报表也需要获的连接字符串才能调用 【解答】
连接串获取方式:(注意不支持调试,调试的话可以用实际连接串代替)
Private Declare Function GetCurrentProcessId Lib \Long
'获取连接串
Public Function GetPropsString() As String Dim lProc As Long Dim spmMgr As Object
lProc = GetCurrentProcessId
Set spmMgr = CreateObject(\
GetPropsString = spmMgr.GetProperty(lProc, \
需要申请MMTS.bas的源代码,还需要申请ICKDListener的接口.另外,如果需要调试程序,就还需要申请KDMain的源代码.
【问题10】关于K3Billtransfer.dll组件无法使用问题 【解答】
K3BillTransfer是工业单据里的接口组件,不是K/3BOS的接口组件,K/3 BOS的接口组件是K3ClassEvents. K/3 BOS插件中不能调用K3BillTransfer. 【问题11】BOS单据插件里的取分录的合计值该怎么做
【解答】
工业单据自定义里面有个GetSumGridText方法取得分录某一列的合计值,现在BOS单据里面需要取某一列的合计,请问有什么方法可以调用.我注意到有个sum方法,但不知道该怎么用 里面带BRow和ERow两个参数,应该是起始行和结束行吧,但分录的行是可以改变的,这两个值怎么取得
我也有个客户使用Sum时有问题,在用bos做开发的时候,想计算一个表体中某一个字段的和,我们不明白如何使用函数
Object.Sum (dct As Dictionary, [BRow As Long], [ERow As Long])中
另外,从单据体下推单据头能通过插件来实现吗,因为我看你给我们的资料上写的是单据体不能下推单据头.
Object.Sum (dct As Dictionary, [BRow As Long], [ERow As Long]) 参数说明:
dct-字段的模板字典
BRow-合计开始行,可选参数,默认值是1
ERow-合计结束行,可选参数,默认值是最大行 举例(要求税额合计值):
Set dct = m_BillInterface.GetFieldInfoByKey(\\0) dblTaxSum = m_BillInterface.Sum(dct) 参考(表体行数的取值方法): BillEntry.MaxRows
【问题12】隐藏选单时序时簿不要的菜单和工具栏.K/3单据查看和选单使用的是同一个序时簿,在插件中用MenuBarInitialize添加的菜单和工具栏在选单时也显示出来. 【解答】
在MenuBarInitialize事件中使用m_ListInterface.List.ShowMode判断(查看和选单)1—查看;2—选单.如:If m_ListInterface.List.ShowMode = 1 Then ……end. 如需隐藏其他的菜单和工具栏,参考以下代码: Dim oTool As K3ClassEvents.BOSTool Dim oBand As K3ClassEvents.BOSBand
'*************** 开始设置 BOS 原有菜单 ***************
'获得 mnuEdit 菜单对象,并设置属性 Set oBand = oMenuBar.BOSBands(\Set oTool = oBand.BOSTools(\With oTool .Visible = False .Enabled = False End With
【问题13】标体行高设置和值更新事件
表单的表体的行高的属性在哪里,我找不到,如果发布后到主控台里去调,表体的标题行会同比例变化,非常不美观.
在值更新事件里怎么能调用sql呢
对于已携带辅助属性的字段再定义值更新事件,如果值更新事件里包含该辅助属性,计算公司
无效.也就是值更新事件公式里调用的辅助属性是更新前的.
事件函数描述中,tkeyword参数应该是fkeyword的笔误,能否改正. 【解答】
标体的行高目前不能调整. 插件中调用SQL的方法有:m_BillInterface.K3Lib.GetData 和 m_BillInterface.K3Lib.UpdateData. 在插件中使用更新后事件. 谢谢提醒,在下一版本中改之. 【问题14】事务处理
BOS的插件开发中,事务怎样处理啊 又不能直接操作数据库.有什么好方法吗 否则数据可能就乱掉了.
在事务完整性处理上,目前的BOS插件还有很多需要改进. 说个简单例子:
BOS是支持多插件的,那么多插件之间如何保证事务完整性呢
同样是审核事件,有2个插件响应了这个事件,如果第一个插件通过了审核,但是第二个插件却不能通过,那么第一个插件处理了的数据又如何回滚 【解答】
如在插件中编写大量的更新SQL请使用中间层插件,中间层插件能保证事务的完整性.
如果在客户端希望执行SQL时保证事务一致性,建议使用 K3Lib.UpdateData 方法,将希望在同一事物中处理的SQL语句通过它一次性提交,BOS会自动启用事务处理来保证;如果像多个插件中的审核等操作的一致性问题,解决的方法是制定一个中间层的审核前插肩来判断处理;这类的问题都可以在中间层的相关事件中处理,来保证一致性. 【问题15】如何在新的BOS单据中通过代码逐行添加分录数据
在BOS单据中新增菜单,功能为向当前新单据(单据为BOS创建)中添加物料等数据,因需加入的数据来自多张表,所以不适用于BOS的单据流程下推功能生成,而采用插件的方式实现.但在用 SetFieldValue 方法向分录中添加数据时发现第一行总是顺利通过,但写下一行(即第二行)时就写不下去了,错误提示:
Err.Description : 没有找到给定字段名的字段的值 Err.Number : -2147221403
Err.Source : K3ClassEvents.BillEvent 请问是什么原因 附部分代码: With rsItem lngRow = 1 .MoveFirst Do Until .EOF
m_BillInterface.SetFieldValue \m_BillInterface.SetFieldValue \lngRow = lngRow + 1 .MoveNext Loop End With 【解答】 参考下列代码
With rsItem lngRow = 1 MoveFirst Do Until EOF
m_BillInterface.InsertNewRowAndFill 2,lngRow,\lngRow = lngRow + 1 MoveNext Loop End With 【问题16】在单据体中有没有办法让下一条分录自动携带上一条分录的数据(只是部分字段). 【解答】
用插件可以实现.示例代码:
'物料录入后,第二行的值自动默认第一行的值 If dct(\
m_BillInterface.SetFieldValue \Enu_ValueType_FFND), row '提货地点 endif
【问题17】否有办法完成单据体中的行点击事件 现在有需要在点击BOS单据中单据体的某一行时,在另一个表体中显示与该行有关的信息,请问各位有什么好的实现方法,特别是怎么获取点击事件和所点击的行数据信息. 【解答】
【问题18】多分录序时簿浏览,字段权限.
在多表体单据中,用序事簿预览时,不出现第二个表体的内容.怎么实现查询第二个表体的内容.
在使用单据的序事簿查询时,想看单据的全部内容,但在选单时想看一少部分内容,现在不能实现. 可用字段授权对不同的人进行授权解决(给选单人字段权限少一些字段) 【解答】
目前序时薄只能实现单据头+一个单据体的预览方式,但单据体在过滤界面是可选择的.如果问题的要求是实现多单据体的同时展现,则为需求,目前暂不能实现,待后续版本规划.
此问题要求选单与单据序时薄有不同的展现设置,字段授权的方式解决不了这个问题,请确定这个需求的通用性.如不通用建议通过序时薄插件开发来实现.FillRow时,不可见字段内容作屏蔽.
【问题19】怎么样可以用代码调出单据的序时薄窗口. 【解答】
调用序时簿不返回选中值
'lClassTypeID ——BOS单据ID
Private Function ShowList(ByVal lClassTypeID As Long) As Boolean
Dim oDataSrv As Object Dim objLookup As Object
On Error GoTo err_ctr
Set oDataSrv = m_BillInterface.K3Lib.CreateK3Object(\
oDataSrv.ClassTypeID = lClassTypeID If oDataSrv.showfilter Then
Set objLookup = CreateObject(\objLookup.ClassTypeID = lClassTypeID 'oDataSrv.ClassTypeID Set objLookup.DataSrv = oDataSrv
objLookup.Show End If
Set oDataSrv = Nothing Set objLookup = Nothing
Exit Function err_ctr:
Set oDataSrv = Nothing Set objLookup = Nothing End Function
调用序时簿返回选中值
Private Function ShowListByReturn(ByVal lClassTypeID As Long) As Object
Dim oDataSrv As Object Dim objLookup As Object
On Error GoTo err_ctr
Set oDataSrv = m_BillInterface.K3Lib.CreateK3Object(\oDataSrv.ClassTypeID = lClassTypeID If oDataSrv.showfilter Then
Set objLookup = CreateObject(\objLookup.ClassTypeID = lClassTypeID Set objLookup.DataSrv = oDataSrv
objLookup.Lookup
Set ShowListByReturn = objLookup.VectReturn
End If
Set oDataSrv = Nothing Set objLookup = Nothing
Exit Function err_ctr:
Set oDataSrv = Nothing
Set objLookup = Nothing End Function
【问题20】K/3 BOS SDK 二次开发组件(k3Billtransfer组件)嵌入K/3系统,数据库端按装后(update ictransactiontype... 后),再在..../system32/ls_DV.dll,并注册,最后进入K/3,没有效果!是不是K3 V10.2不支持二次组件开发 还是不支持K/3 BOS SDK中的K3billtransfer组件 【解答】
为了支持多二次开发的结构,单据二次开发记录现在在t_ThirdPartyComponent表里维护. FTypeID,INT,4,用于区分事件类型(0,表示单据,1,表示序时簿,2,表示其它通用业务);
FTypeDetailID,INT,4,对应单据,序时簿上的具体ID,在单据上使用时,该事件ID对应单据的TranType,在序时簿上使用时,对应序时簿的FID,对于FTypeID=2的类型,FTypeDetailID表示只有中间层的二次开发类型,比如审核;
FIndex,INT,4,对于一个FTypeDetailID,可以有多个二次开发操作,中间用FIndex来决定执行顺序,(标记为负数的会在ictransactiontype中记录的二次开发之前执行,ictransactiontype中的FIndex默认为0),非空; FComponentName,VARCHAR,200,二次开发组件名称(ComName.clsName);
FCompenentSrv,VARCHAR,200,中间层二次开发组件; FDescription,NVARCHAR,255,二次开发组件说明;
【问题21】如何在单据插件代码中通过条件判断来启动多级审核. 【解答】
在保存后事件(AfterSave)中添加下列代码: '条件判断
If m_BillInterface.MultiCheckMgr.MultiCheckBill(m_BillInterface.BillCtl.CurBillID) Then m_BillInterface.RefreshBill End If
【问题22】在插件开发中,如何获得当前登陆的用户ID 比如administrator登陆,如何得到ID 另外,如何得到选中多行单据时的集合 一个表体中,有职员编码和职员名称,想通过输入编码后,直接关联出名称来.名称这个字段用职员类型,还是文本 值更新事件好象不管用. 【解答】
获得当前登陆的用户ID:K3Lib.User.UserID.
选中多行的函数GetSelectedBillInfo(),此函数返回一个KFO.Vector数据包,Vector的Size和选中的行数一致.每行包含一个KFO.Dictionary数据包,此数据包包含FClassTypeID,FID,FEntryID.FClassTypeID表示单据类型;FID表示当前行所属单据的内码;FEntryID表示单据分录ID. 示例
获取选中的第一行所属单据的分录ID: Dim I As Long
Dim dct as KFO.Dictionary Dim vct As KFO.Vector
Set vct = m_ListInterface.GetSelectedBillInfo Set dct = vct(1) I = dct(\
职员名称用\基础资料属性\不要用文本. 【问题23】在销售系统中增加了一张BOS开发的单据. 单据上也指定了相应的插件.(插件是依据BOS 开发向导生成的. 插件的功能只是增加一个自定的菜单项).组件中也引用了:
K3ClassEvents.dll,但在单据测试时,却总是提示错误: \单据接口无效\的错误. 请问BOS新开发的单据是不是不能调用自定义的插件 如果有调用是不是要做其它处理 【解答】
插件调试时要编译或运行起来.BOS单据可以调用插件,也可以在插件中调用其他组件.请把你的Project Properties->Project Name改为和组件名一致.
【问题24】Bos 开发的单据还能不能调用 k3billtransfer.dll 这个组件 BOS插件中如何取得连接字符串 (以前 m_Billtransfer.Cnnstring ) 我想把连接字符串做为参数传递给其它语言开发的程序. 【解答】
BOS 开发的单据不能调用 k3billtransfer.dll,只有在工业单据里能调用.目前BOS插件不能获取连接字符串.
【问题25】需要通过工具栏上的按钮,实现单据体分录的上移和下移功能,请问BOS插件的如何实现 【解答】
可通过m_BillInterface_MenuBarInitialize事件实现\上移\下移\按钮的添加,通过在m_BillInterface_MenuBarClick事件中重写单据体和数据包,实现该功能.
【问题26】新增BOS 单据分录中有数量 及基本单位数量 字段, 基本单位数量关联字段为数量, 但输入完数量后,基本单位数量仍然为空. 【解答】
保存后基本单位数量就有了.
【问题27】我在做k3BillTransfer开发时需要取表体中的\批次\列是否可以录入,即该物料是否批次管理,请问控件fpSpread中,怎么才能知道哪一个单元格可以录入或不能录入 或者可以取到该物料的内码也可以.EnteryCtl都有那些属性啊,我只知道一个fieldname,其他的比如内码等是什么 在单据二次开发参考组件没有描述,在哪有详细的说明 【解答】
1,获取分录某一分录物料的内码你可以通过EndGridLookUp(BeforGridLookUp)在分录执行查找功能后(前)激化这个事件,你就可以获取当前行,列,当前查询的资料类型(例如返回4说明是物料).EnteryCtl对应分录各列,记录每个分录列个属性的数组,在数组属性里面会有物料内码的属性!
2,当TEntryCtl(Col).LookUpCls = 4 为按F7时查询物料 Col为物料在单身对应的列TEntryCtl(Col).DInterID(CurRow)保存的就是物料ID,Col:为物料在单身对应的列,CurRow:分录行号.
【问题28】K/3 BOS单据,序时簿和工业单据,序时簿中分别如何获得当前用户的信息 (比如ID)
【解答】
BOS单据单据和序时簿都能读\当前用户\方法为:.K3Lib.User.UserID. 工业单据单据目前还不能没有办法实现你的需求,请另想办法.
【问题29】通过工业单据插件怎么获得当前K/3的版本号 工业单据插件是否支持所有账套类型的单据,不区分工业供应链,商业供应链 【解答】
通过以下代码可以解决: Dim read As Object Dim reg As String Dim result As String
Set read = CreateObject(\
reg = \result = read.RegRead(reg) MsgBox result Set read = Nothing
在ictransactiontype表中管理的单据,都可以应用工业单据插件
【问题30】在工业单据的插件中如何得到单据的FInterID (工业单据) 【解答】
BillID = m_BillTransfer.SaveVect.Item(1).Value(\
【问题31】在BOSV10.2中,填充新行数据可以用m_BillInterface.InsertNewRowAndFill方法实现,但是在BOSV10.1中不知道用什么方法可以向单据体逐行插入数据 如果单据体中有物料,计量单位等查找类型字段,其赋值是否一样 【解答】
将10.1的KFO.DLL换成10.2 KFO.DLL,是兼容的 m_BillInterface.Data(\
【问题32】请问10.2的工业老单(非BOS),作k3BillTransfer插件的时候,是否可以在BeforHeadLookUp事件中指定基础资料的过滤条件,如:m_BillTransfer.HeadCtl(CtlIndex).Filter = \1=2 \我发现这段代码所指定的过滤条件不起作用. 【解答】
参考以下代码:
Private Sub m_BillTransfer_BeforHeadLookUp(ByVal CtlIndex As Long, ByVal nLookUpClsID As Long, Cancel As Boolean) If nLookUpClsID = 5 Then Dim tHeadCtl As Variant
tHeadCtl = m_BillTransfer.HeadCtl
tHeadCtl(CtlIndex).Filter = tHeadCtl(CtlIndex).Filter & \'m_BillTransfer.HeadCtl(CtlIndex).Filter = \m_BillTransfer.HeadCtl = tHeadCtl End If End Sub
【问题33】 我们在使用K/3 BOS+VB6为新港湾开发一个完全个性的项目管理系统,是使用一套帐的方式实现的,帐套理面将会创建几十或更多的工程项目,这就涉及到基础资料,项目计划,项目施工记录,项目有关单据等诸多信息要跟具体的项目邦定起来,用户一旦选定当前项目后,所有的数据维护,查询及报表都只针对当前项目操作,现在录入时跟项目邦定的问题我已解决,可查询(主要是序时薄,包括基础资料序时薄与业务单据序时薄如何与当前选定项目邦定,即序时薄只显示属于当前选定项目的数据)的问题还没解决,这就是我提出问题的背景,该问题若解决不了,整个使用K/3 BOS进行开发的解决方案将行不通,面临几十万元退款损失的风险,故十分重要.需求如下(举个例):
如用BOS定义了一个名为\项目任务\的基础资料,包含工程项目,任务代码,任务名称等字段,如下所示:
工程项目 任务代码 任务名称 ------------------------------- 00000001 01 进场准备
00000001 02 进场 00000002 01 进场准备 00000002 02 进场 ........ .. ........
写插件时,请问想要达到进入该基础资料序时薄时只显示某一个工程项目的相关基础资料记录该如何编码
(在那个事件入口处理,怎样处理),同样,如果是业务单据序时薄,又该如何设置过滤条件(在那个事
件入口处理,怎样处理),本人看过开发手册,好象没有合适的事件入口,更没有该方面的例子. 【解答】
在K/310.2+SP1的环境下,基础资料序时簿和单据序时簿有\应可以实现.但在重新查询,过滤条件失效,在SP2解决此问题 【问题34】怎么找每个字段的索引 【解答】 参考下列代码 '表头
THeadCtl = m_BillTransfer.HeadCtl For i = 1 To UBound(THeadCtl)
If UCase(THeadCtl(i).FieldName) = \m_BillTransfer.head(i).text = \张三\Exit For End If Next '表体
EntryCtl = m_BillTransfer.EntryCtl
For i = 1 To UBound(m_BillTransfer.EntryCtl) If UCase(EntryCtl(i).FieldName) = \Exit For End If Next
【问题35】BOS 开发一张新的单据. 在选单返回时, 希望能在表体自动添加一行分录. 事件测试代码如下:
Private Sub m_BillInterface_AfterSelBillBeforeFillData(ByVal dcData As KFO.IDictionary, ByVal dctLink As KFO.IDictionary) Dim CoDict As KFO.Dictionary
Set CoDict = dcData(\拷贝第一条分录数据 dcData(\添加到 dcData
dcData(\//更改分录号 'Stop
set CoDict=Nothing End Sub
我用 watch 查看 DcData 的值. DcData(\也有增加一条, 但返回后,新添加的分录并未带到目标单据上 请问我还要修改哪些地方
【解答】
此方法在调试状态下是不能把值传过去的,编译之后就可以了. 你的代码有以下问题:
1,取分录号使用dcData(\2,Vect的最大值用UBound,而不是count.
3,去字段的key值使用m_BillInterface.TableInfo(\是字段名. 正确的代码是:
Dim CoDict As KFO.Dictionary
'dcData(\Set CoDict = dcData(\拷贝第一条分录数据 dcData(\添加到 dcData
dcData(\更改分录号 'Stop
Set CoDict = Nothing
【问题18】BOS单据插件里的BusinessCheck事件有何用途 写在BusinessCheck里面的代码也不执行,不知道这个事件到底是什么时候触发的.在AfterBusinessCheck事件中写的代码在打了10.2SP1之后就不执行了,我把代码放到BusinessCheck事件中也不执行,不知道什么原因,但AfterUnBusinessCheck中的代码却执行了.我只做了一级审核.AfterBusinessCheck事件和BusinessCheck事件触发时点的问题,以查看状态打开单据进行审核时,这两个事件不触发,只有在修改状态打开单据并进行审核,这两个事件才会被触发.之前没有打SP1的时候是没有这个问题的.因为强制审核人必须要打开单据检查后再进行审核,所以我在该单据的序时簿中把审核菜单去掉了,只能打开单据审核.不知道有没有人遇到这个问题. 【解答】
经检查,以查看状态打开单据,进行多级审核,在业务审核级次被审核时,能够触发业务审核事件,另外,昨天发现的业务审核事件在某条件下会多次触发的BUG已经修改,将会随8.31日须完成的功能点一起发放.估计还是因为用户没有针对单据插件进行编码,所以没有捕捉到事件. 二,方案篇
【问题1】客户的产品是通过图纸来制造的,图纸有些是客户自己提供标准图纸,有些是客户的需求自己根据需求画出来的,报价单很大的部分是根据图纸来的,而且图纸是公司的机密.现在用户需求是图纸需要有严格的权限控制,最好能够放在数据库里面统一管理,有图纸单据有:报价单,销售定单,合同;现在我们的K/3v10.2的附件的权限不好管理不能满足客户的需求.如何提供解决方案 【解答】
这样的话可以对图纸管理进行开发(如果对方有PDM系统就不需要),图纸存放可以用局域网FTP或数据库存储解决,后者比较容易进行权限控制,自己设定权限控制,下载,浏览,更新,删除,都能进行控制;而且关于图纸管理也比较容易解决,如图纸的版本控制. K/3 BOS解决不了.
【问题2】客户需要开发一张外贸报价单,里面涉及到物料对应表的内容,对应代码具体能实现的功能跟现有的报价单的一致,现在不知道怎么样能够具体的实现这样的功能,因为BOS的基础资料里面没有物料对应表,可以新增BOS基础资料和物料对应表共用一个表名,但是怎么可以做到跟原有的报价单在物料对应这一块的一摸一样的功能. 【解答】
不可能具有原来一模一样的功能,\新增基础资料,映射到原有的数据表或视图\方式只能
提供数据映射功能,保证能通过F7选择原有的数据.但由于原有数据的业务逻辑上的不可控,因此在实际操作过程中建议对这种基础资料隐藏增加,删除,修改等功能,来保证系统的稳定性.
在这里的物料对应表没有基于BOS开发,因此不能在外贸报价单上直接引用物料对应表,可以通过映射物料对应表的物理表方式满足客户需求. 具体操作:
1,新增一个BOS基础资料,把主表映射到表ICItemMapping.表ICItemMapping里面已经有数据.
2,把BOS基础资料里代码字段映射到FMapNumber字段,名称字段映射到FMapName,保存. 3,BOS单据序时薄测试的时候并不能把表ICItemMapping里面已有字段的内容显示出来,序时薄为空.
【问题3】能否在新版BOS中提供一个没有数据,只有工具条及菜单栏的浏览数据窗口,供做插件集成操作窗口用,现在只能用单据窗口实现,打开时还出现过滤窗口,很别扭. 【解答】
BOS中有一个自定义序事簿联查接口,可以指定单据类型和过滤条件联查所有新老单序事簿,不用弹出过滤条件. 【问题4】新单下推(钩稽)老单时,在新单序时簿里可以选中多张单据下推生成老单,但在老单单据中选取新单是不能选取多张单据,怎样解决 【解答】
在ICClassLink.FRemark中加上\后就能选取多张单据.
【问题5】为什么在BOS单据下推到外购入库单时无法选择红字单据,只能是蓝字单据呢 BOS单据下推生成老单的时候,怎样把BOS单据的单据号显示在老单上呢 【解答】
BOS单据下推到老单没有处理红兰字单据,默认就是蓝字单据,目前下推没有处理红字单据. BOS单据下推生成老单的时候,使用钩稽就可以把BOS单据的单据号显示在老单上. 【问题6】如何在单据中做一个可以选择,又可以随意录入的字段 客户要在单据上加入一个\送货地点\送货地点有一部分是固定的,还有一部分是只用一次,所以客户需要当是固定送货地点时的就进行选择,对于选不到的就直接在单据上打字(也就是不录入BOS基础资料中). 【解答】
在单据上增加一个文本类型的字段(送货地点),通过插件在菜单上增加一菜单项(选择送货地点),并在插件中实现如下功能: 1,判断客户的送货地点类别,
2,如果是固定送货点,则菜单项可用,点菜单项选择\送货地点\基础资料,返回值填入字段中(只返回名称即可)
3,如果是一次性送货点,则菜单项不可用,可手工在单据上输入送货地点
当然上面的还可以更细化,比如固定送货点时,\送货地点\只能选择,不能录入等等. 【问题7】如何在把BOS单据的税率携带到下游老单据 BOS新做的单据税率是基础资料属性来做的,但是K/3的老单据的税率不是基础资料属性,所以BOS单据下推生成老单据的时候怎么样携带税率下去呢. 【解答】
可以将BOS的单据税率用小数类型描述,在基础资料值更新事件中,自动将基础资料的税率带到单据税率中,然后就可以关联到K/3来单据中.
【问题8】客户的车间管理的单据与我们K310.2的差异很大,无法使用K3的车间来满足客户需求.从派工单,到工序汇报,到最后的计时计件工资,都有差异,比如派工单,K3的表头是客
户单据的表体,而K3的表体是客户单据的表头.但单据流是基本一致的.请问这样的开发用BOS是否可行 还是单独写程序比较好 哪个综合起来效果最佳 另外,分录是否可以把字段竖着表示 把行变成列,把列变成行 【解答】
K/3 BOS 的单据为主表-明细表的一对多结构,如你的单据可以设计成这种结构即可用BOS实现,如为特殊结构单据,如无法变通,只能自行开发了.\分录是否可以把字段竖着表示\不能行变成列,但如果分录为单条纪录,可以用常用字段库中的字段或自定义字段实现. 【问题9】K310.2 委外加工生产任务单-录入界面中,我们的系统中是只能实现录入一个物料进行委外加工,现在客户要求录入多条物料在一个界面内且能实现在原有界面上的所有操作.目前我用BOS新建一个表单做到的情况是可以录入多条物料,但BOM代码数据抓不到,单据能保存.实现不了确认单据后,单据状态由计划状态变为下达状态.请问应该怎么做. 【解答】
通过K3BOS的开发平台可以实现大部分通用的功能,比如新增,修改,删除,审核,单据流转等等,但如果涉及到特殊业务的话,必须通过插件实现.
【问题10】在工业单据上定义了\审核日期\字段,需要在审核后将系统日期填充到\审核日期\字段.我想通过工业单据插件来实现,但是不知道在哪个事件中执行 【解答】
如果是v102版本,可以在t_ThirdPartyComponent表中,增加一条记录FTypeID=2,FTypeDetailID=200001,FIndex=Max(FIndex),FComponentSrv=插件名称(中间层)插件实现HookInvoke(Long,KFO.Dictionary)接口,接口参数的详细文档,请联系基础项目组陈跃申请!以前版本没有审核接口,考虑通过触发器实现,增加update触发器,根据审核标志进行处理
【问题11】K3/10.2中调用不了Billtransfer,10.2以前版本中更新表ictransactiontype 中字段fcheckpro 成\就可以调用 10.2版本是否需要修改其他地方 【解答】
K/3V10.2插件注册方式发生变化:为了支持多二次开发的结构,单据二次开发记录现在在t_ThirdPartyComponent表里维护. 字段名称 类型 长度 说明 FTypeID INT 4
用于区分事件类型(0,表示单据,1,表示序时簿,2,表示其它通用业务) FTypeDetailID INT 4
对应单据,序时簿上的具体ID,在单据上使用时,该事件ID对应单据的TranType,在序时簿上使用时,对应序时簿的FID,对于FTypeID=2的类型,FTypeDetailID表示只有中间层的二次开发类型,比如审核 FIndex INT
4
对于一个FTypeDetailID,可以有多个二次开发操作,中间用FIndex来决定执行顺序,(标记为负数的会在ictransactiontype中记录的二次开发之前执行,ictransactiontype中的FIndex默认为0).非空
FComponentName VARCHAR 200
二次开发组件名称(ComName.clsName) FCompenentSrv VARCHAR 200
中间层二次开发组件 FDescription VARCHAR 255
二次开发组件说明 三,单据定义篇
【问题1】在单据头要设置一个对应物料的销售出库单编号,要由系统自动填写,是不是可以用单据推啊 还有更好的方法吗 客户要求在单据体下面设置运费,整单折扣和总金额(总金额=运费+合计金额*整单折扣),合计金额就是单据体中的合计金额,但是在单据体中不能出现运费项,其中整单折扣是在客户资料有的,由系统自动填写.我们想的是在单据体中先把运费加进去,等保存时就把运费项给隐藏,其中总金额的计算可以用值更新事件做,如何把单据头里的运费和单据体里的运费关联起来 【解答】
对应物料的销售出库单号应该在选单时由系统填写,可以在单据头设置源单类型,源单编号两个字段,那么在设计流程时,使用勾稽或强制勾稽两种选单关系时,系统将自动填写对应的单据号.
目前还没有在BOS封装的事件中提供单据头和单据体之间进行计算的功能,另外也没有提供合适的将单据体金额字段进行汇总并填写到指定字段的功能(这两个功能都将在V10.3开发阶段完成!),因此,你说的这个功能需要通过插件才能完成. 【问题2】我做的项目中,80%的表单可以通过BOS完成,但有一些表单和报表完全开发,这些表单和报表如何发布到主控台 现在表单上需要加载图形,BOS什么时候能够支持图形 【解答】
BOS有直接发布到主控台的功能.
近期还没有支持图形的功能规划.在表单上支持图形的计划已列入V10.3预研范围,计划会在V10.3中提供预览,缩放,拖动,打印,权限控制等功能. 【问题3】能否对BOS基础资料做过滤,即:在调出基础资料序时簿时,过滤出我需要的基础资料.
【解答】
1,在ICClasstypeentry的FFilter字段增加过虑条件 2,在ICClassTableInfo的FFilter中填写条件.
下例能完成只显示\组的物料,FFilter的值应是\
SELECT t1.FItemID FROM t_Item t1 with(index (uk_Item2)) LEFT JOIN t_ICItem x2 ON t1.FItemID = x2.FItemID WHERE FItemClassID = 4 AND t1.FDetail=1 AND (x2.FNumber like
'01.%') AND t1.FDeleteD=0 ORDER BY t1.FNumber 【问题4】有关多级审核的问题
在对一张单据进行\多级审核流程\配置时,在对每一级审核进行配置时,业务审核级次,业务审核人,业务审核日期都只能是一样的,这就导致在单据序时薄测试时,启动多级审核后,多级审核中只能有其中某一级的审核人和审核日期有数据,其余审核人和审核日期字段都不能在相应级别审核完毕后记录数据.
在设置多级审核流程后,如果在某一级驳回审核,填写的驳回意见不能看到.
设置多级审核流程后,在单据运行时,\审核\并没有像原有K/3系统中其它单据审核一样出现在上方菜单下的按钮上,而只能在菜单中启动多级审核.
在多级审核级别之间进行\流转配置\时,只能在中间级别之间进行跳转,如共有5级审核,想要在某一条件下4级审核完毕后就结束,无法实现,只能在1-5级之间跳转.
\流转配置\时,只能增加一次流转配置,即级别之间只能进行一次\添加关系\且添加上的关系不能删除.
在设置\流转配置\的\跳转条件\时,字段列表中只有单据的单据头字段,而没有单据体字段. 最不方便使用的是在单据定义时,一旦添加上字段之后便不能删除,否则便会将单据上的所有字段全部删除.新增的单据,多级审核流程,单据转换流程保存后也不能删除.在多级审核流程中进行流转配置时添加上的关系不能删除.
在进行\单据转换流程\定义时,不能由源单的单据体下推生成目的单的单据头. 【解答】
答复:每一级审核都已经记录了审核人,审核日期,审核意见,在单据上\多级审核\页可以很清楚的看到.单据序时簿则暂时没有提供查看各级审核人,审核日期,审核意见的功能;这个和多级审核配置中的业务审核人,业务审核日期字段是无关的,业务审核人只在做业务审核的时候才会同时记录,多级审核中有且只有一个级次能作为业务审核级次,所以也只需要一个字段作为业务审核人字段;
答复:已经记录了驳回意见,但暂时没有提供驳回意见的查看.驳回意见会以消息的方式发送出去;
答复:SP2中会进一步简化,优化多级审核,本点在列;
答复:9.30补丁中会增加一种属性,提供给插件判断流程是否已经跳转到结束,让插件有依据进行自动审核等操作,自动结束多级审核流程;
答复:在关闭\启用多级审核\选项并保存后,可以自由添加,删除跳转关系; 答复:暂时没有提供单据体字段;
答复:10.2 SP增加了新功能,单据模版,多级审核配置,单据转换流程,报表等都可以删除; 答复:暂没有提供;
【问题5】开发过程中需要从一张BOS单据下推生成一张K/3老单据,其中要从源单据的一个单据体字段推成目的单据的单据头字段,在你拷贝给我们的文档资料中明确说明不能由单据体推成单据头,所以只能通过插件开发来实现.但是在插件开发中我们发现不能对目的单据即K/3老单据进行定位,所以不知道这个功能能否通过插件开发来实现,如果可以,怎么实现 【解答】
在BOS单据中增加一个隐藏的字段,单据保存时用插件代码自动把单据体要下推的字段赋值到单据头这个字段中,然后再定义单据头下推到单据头,这样就不用在老单据中定义插件了. 【问题6】在K/3 BOS单据中,有没有属性可以设置某个项目,审核后可修改 有的话怎么做,没有的话是否有什么变通的方法 【解答】
你可以在使用K3 BOS的审核功能时将需要修改的项目的属性设为不锁定,审核后就可以修
改!
【问题7】在BOS单据单据头中加了源单单据类型和源单单号两个字段,单据关联已设置好.(旧)生产任务单生成 BOS制作的委外加工订单(类似于采购订单).1,选单后,源单单据类型和源单单号两字段中的数据立即变成空,保存后整个字段被隐藏.2,选单后,单据体中的物料编码可以带过来,但物料名称,规格等没有显示出来,保存后名称,规格等基本资料属性显示出来.请问源单单据类型和源单单号这个地方是BOS设计成这样 还是BUG 源单单据类型和源单单号应该像其他单据选单一样,保留在单据上并一直显示. 【解答】
选单后,源单单据类型和源单单号两字段中的数据立即变成空,保存后整个字段被隐藏.源单类型和源单单号是设置成这样的,有不合理的地方,我们在下个版本将进行调整;
选单后,单据体中的物料编码可以带过来,但物料名称,规格等没有显示出来,保存后名称,规格等基本资料属性显示出来.选单后的物料名称,规格没有显示出来,是在流程定义过程中没有设置物料代码的值更新事件.
【问题8】多级审核的操作.Bos单据多级审核增加的\启动多级审核\具体完成什么功能 客户对原有的F4 ,Shift+F4操作比较习惯,对现有的\启动多级审核\多级审核\和\驳回审核\操作有比较大的意见.问能否统一设置为这种审核操作方式 【解答】
这种问题产品是不好改了,只有让客户适应. 【问题9】K3Bos表体如何设置合计 【解答】
目前不能在界面上设置合计,(系统对数量和金额默认合计),如需对其他字段设置合计,需更改ICClassTableInfo.FSum的值为1.
【问题10】1,在BOS中,将源单单号(选单)拖入表头,在哪里设置才能可见并选择单据 2,在BOS平台中,我们可以进行单据测试和序时簿测试.请问,我能否用vb程序调起这些单据呢 如何调用 3,我在采购申请单中增加一个插件,希望能够调用我用BOS开发的一张单据.打开这张单据时,在源单单号处将采购申请单单号自动写入,并将一些数据从采购申请单中自动带入.如果申请单已审核,那这张单据将不能修改.如何做到 4,使用BOS平台生成的单据,能否传入一些参数 如果能,怎么传入 【解答】
可以通过单据流转来解决. 四,其他
【问题1】如何打包应用程序 有一个项目需要发布,如何像开K/3发布补丁一样,自动找到金蝶的安装目录,自动注册组件,在中间层连接帐套,执行SQL语句.是否有类似的InstallShield的脚本参考 【解答】
请尝试使用BOS里的部署功能(除BOS的插件外,其他客户端和中间层组件也能发布),使用InstallShield比较复杂.《客户化开发知识库v1.0》文档中有使用InstallShield制作安装包的说明.
在最新的BOS V10.2SP中,提供了\一次环境部署,所有客户端自动更新\的功能,即在客户环境中一次部署完毕后,所有客户端登陆中间层时,能自动更新客户端组件,减少了重复安装客户端的工作量.
【问题2】是否可以在相关的基础资料的对象中增加通过名字查询功能.目前的基础资料(部门,人员,物料等)是通过F7查询或者输入代码,但是实际业务中很多情况是输入名字,很多客户已经要求使用名字查询,特别是涉及职员,部门等基础资料,不知道BOS能不能先行一步,改
掉k/3的这个习惯 即直接在那个文本框中输入名称,然后自动匹配,就像在文本框中输入代码一样,能够自动找到相应的基础资料. 【解答】
具体功能计划10.3实现.
另外,现在BOS支持汉字的模糊查询,按F8(F9)即可.
【问题3】BOS中相关单据生成BOS安装包后,在新的账套中安装后不能直接在主控台上体现出来,要在新账套中用BOS重新发布才能在主控台上体现.希望能早日完善这功能. 【解答】
在V10.2SP中已解决你说的问题.
【问题4】在10.2产品中对合同进行多级审核,在消息提示中,打开后提示需要BOS加密狗,但数据量只有一条,难道,10.2产品中自带的审批流设置也需要BOS狗吗 【解答】
这个问题应该是Bug,计划在10月底V10.2SP补丁中解决.
【问题5】如何设置通过BOS定义的字段的套打 目前在收款单通过BOS自定义了一个字段,那么在收款的套打设置里面怎么取到这个字段呢 【解答】
在单据中添加一个字段保存后,打开这个套打文件中可以自已添加一个字段,在设置对象属性时可以指定到单据中的这个字段.
【问题6】有个客户,需要做接口,用到应收应付模块,但有些要求比较特殊,需要修改应收模板.K/3 版本10.2,因为应收应付是BOS做的,所以我想在现有应收模块基础上进行修改,BOS设计界面可以调出来应收款管理,但不能发布.我想问在现有应收款管理上修改,可行么 【解答】
应收款管理属于标准模块,暂时没有提供部署发布功能,但可以在客户运行环境中进行修改,环境如下:K/3 V10.2SP1+PT00704.
【问题7】对BOS单据中的层处理.如何做到显示或隐藏单据中某一层 【解答】
以层为单位的动态显示隐藏现在没有提供方法.
可以在插件中一个一个字段的隐藏,从字段的FLAYER属性可判断其所属的层 【问题8】销售前台客户端开发是否可以使用Dataflow.dat 【解答】 可以.
【问题9】基础资料数据传输和单据传输用到的组件名称,包括销售前台的客户端和K3的服务器端 【解答】
数据传输的客户端组件:K3BillExpImp.dll,中间层组件:EbsBillExpImp.dll. 【问题10】销售前台零售单组件名称 【解答】
销售前台零售单组件:POSRetailBill.dll. 【问题11】请问用K/3 BOS开发的多种单据后,客户在正式上线使用时,需如何购买站点数 是统一并发的吗 (方案) 【解答】
底价5万元人民币,包括6个站点,每增加一个站点2000元人民币;客户也可以用20万元买断,没有站点限制.是统一并发的,与单据数量无关,只与并发站点相关. 【问题12】老单下推生成新单.老单为外购入库单.希望选定老单的某一条分录,通过手工操作
能够自动弹出新单据的录入界面,并关联几个字段.每一个分录对应一张新单.每次选定老单一条分录即可.请问有没有办法实现这一功能 如有其他变通方式也可,要求为下推方式. 【解答】
现在没有此功能,在10.3能实现.用工业单据插件也较难实现.
【问题13】在BOS的单据选单流程中,钩稽后不会自动扣减源单的数量,不能关闭,请问如何解决 从新单到老单建立了一个选单关系,发布以后,老单的源单类型下拉列表中丢失了原来的类型,只有新单.请问如何恢复 【解答】
BOS老单和新单之间钩稽在10.2+SP1的环境下确有问题,在SP2解决.
【问题14】Bos钩稽生成旧单据出错.Bos定义单据下推生成销售出库单,关系为钩稽,Bos定义单据下推生成采购入库单,关系为钩稽,在Bos可以完成流程编辑和保存,实际操作中表现为复制,即出入库单不携带源单信息,源单扣减字段无变化. 【解答】
确有此问题,请安装最新的补丁,在SP2解决.
【问题15】考虑过增加审核和反审核按钮,根据对多级审核的审核和反审核的sql事件跟踪直接修改审核相关表(单据界面还要刷新内容锁定状态),这样的话就越过了\启动多级审核\这一步骤,忽略这一步骤是否会带来其他问题 【解答】
BOS单据可以不用多级审核,直接添加按钮,但比较麻烦.
【问题16】在K/3 BOS中能否打印一张复杂的单据 需要结合三张单据的内容进行打印.用两个以上的表体.其中一张单据的表头中一部分数据需要和表体的数据合在一起组成一个表体打印.其他部分数据在表头或其他的表体中打印. 【解答】
K/3 BOS套打只能是每个单据体制作一种套打.一般来讲,各单据体只具有联合关系,不具备内外连接关系.
【问题17】最近我在网上下了一个不知名的程序安装后随即卸了,可VB6运行时报错,我就重新修复安装了一下,但原来的K/3 BOS插件开发向导菜单按钮不见了,这样开发BOS插件很不方便,我想能否注册一下BOS组件就能解决问题 【解答】
经过试验证明,以下注册表代码可以使VB中消失了的BOS插件向导重新找回来,或者使用附件中的注册表文件.
Windows Registry Editor Version 5.00
[HKEY_CURRENT_USER\\Software\\Microsoft\\Visual Basic\\6.0\\Addins\\K3BOSPLUGINSADDIN.Connect] \\\
\
客户化开发技术资料——K/3 BOS开发百问百答 客户化开发技术资料——K/3 BOS开发百问百答 第页
正在阅读:
关于一些插件开发的参考代码03-15
2016上海公务员面试:如何“征服”考官挑剔的目光08-06
新加墙处拆改梁、板回顶施工方案06-11
人教版七年级第一章第二节绝对值(一)(20210202112621)06-09
城市区位分析与选择导学案定稿03-19
包饺子的小学生二年级作文100字06-13
免费作文我的乐园350字优秀4篇03-22
3-08质量员应知试卷 (1)05-01
XHTML+CSS试题有答案12-20
- exercise2
- 铅锌矿详查地质设计 - 图文
- 厨余垃圾、餐厨垃圾堆肥系统设计方案
- 陈明珠开题报告
- 化工原理精选例题
- 政府形象宣传册营销案例
- 小学一至三年级语文阅读专项练习题
- 2014.民诉 期末考试 复习题
- 巅峰智业 - 做好顶层设计对建设城市的重要意义
- (三起)冀教版三年级英语上册Unit4 Lesson24练习题及答案
- 2017年实心轮胎现状及发展趋势分析(目录)
- 基于GIS的农用地定级技术研究定稿
- 2017-2022年中国医疗保健市场调查与市场前景预测报告(目录) - 图文
- 作业
- OFDM技术仿真(MATLAB代码) - 图文
- Android工程师笔试题及答案
- 生命密码联合密码
- 空间地上权若干法律问题探究
- 江苏学业水平测试《机械基础》模拟试题
- 选课走班实施方案
- 插件
- 一些
- 参考
- 代码
- 开发
- 关于
- 企业集团内部会计信息网络传递文献综述
- 计算机基础复习题2
- 三军事理论填空题
- 奶牛业的调查报告
- 水泥设备操作规程培训试题答案
- 常用种关联词造句
- 中小学美术基础知识
- 中国红十字会建会纪实
- 18秋学期(1709、1803、1809)《初级微观经济学》在线作业
- 关于县级公安机关警务运行机制改革的几点思考
- 《运输管理实务》课程考试试题及答案
- 安徽省省道网调整规划-报批稿 - 图文
- 实践性作业设计 精品 - 图文
- 外研版初二上英语Module 3复习
- 百科知识竞赛题库
- 药理学名词解释必考
- 十佳社团评优材料 - 图文
- 无人值班变电站标准化建设考核标准(试行)
- Android BatteryStatsHelper深入理解(and5.1)
- 珠海市政务信息资源共享平台项目技术要求