BOS插件中实现多单据体下推

栏目:k3wise知识作者:金蝶来源:金蝶云社区发布:2024-09-22浏览:1

BOS插件中实现多单据体下推

    '此方法适用于目标单为新单的多单据体下推

    '由于架构限制,系统本身不支持多单据体下推

    '单个单据体的信息携带可通过流程配置实现,另外一个单据体信息携带则需要在“BOS生产任务单”插件中实现

    '插件中的m_BillInterface_AfterSelBillBeforeFillData为选单返回数据后填充单据之前抛出的事件

    '其中参数dcData就为选单返回后“BOS生产任务单”即将展现的数据情况,可通过更改数据包的值而改变下推后“BOS生产任务单”的数据

    '数据包dctData有一项“SelDat”存储有选单或者下推所选的“技术转化单”的单据ID等信息,

    '可根据单据ID去数据库中查询“技术转化单”另外一个单据体的信息,然后根据源单据体信息去更改填充数据包dcData中相应单据体对应的项

    'dctData数据包结构大概如下:dcData("Page1")存储单据头上字段的值,dcData("Page2")存储单据体1上字段的值,dcData("Page3")存储单据体2上字段的值,以此类推。。。

    

    '以“技术转化单”的工序维护单据体上的【工序代码】字段下推到“BOS生产任务单”的工序维护单据体上的【工序代码】字段上为例

    '“技术转化单”【工序代码】字段关键字为“FSourOperID”,“BOS生产任务单”上【工序代码】字段关键字为“FDestOperID”

Private Sub m_BillInterface_AfterSelBillBeforeFillData(ByVal dcData As KFO.Dictionary, ByVal dctLink As KFO.Dictionary)

    Dim strSql As String

    Dim rs As ADODB.Recordset

    Dim sValue As String

    Dim vctSelData As KFO.Vector

    

    Set vctSelData = dcData("SelDat")

    'vctSelData(1)("FID")为所选的“技术转化单”的单据内码

    '根据单据内码去查询“技术转化单”的工序维护单据体上(对应物理表为t_BOS200000007Entry3)【工序代码】字段的值,携带到“BOS生产任务单”的技术工序维护单据体的【工序代码】字段

    '【工序代码】为辅助资料,需要联查对应的辅助资料表t_SubMessage,以便查询到【工序代码】的代码,然后根据代码去给字段赋值

    '其他小数或者文本类型字段则无需关联查询,可直接赋值

    'strSql = "SELECT FText FROM t_BOS200000007Entry3 FID = " & vctSelData(1)("FID")

    strSql = "SELECT t1.FSourOperID,t2.FID,t2.FName FROM t_BOS200000007Entry3 t1" & " INNER JOIN t_SubMessage t2 ON t1.FSourOperID=t2.FInterID " & "Where t1.FID = " & vctSelData(1)("FID")

    Set rs = m_BillInterface.K3Lib.GetData(strSql)

    If Not rs Is Nothing Then

        For i = 1 To rs.RecordCount

            '如果要填充【工序代码】字段的目标行在数据包中并不存在,则需要新增一行数据包

            If dcData("Page3").UBound < i Then

                 m_BillInterface.InsertNewRowAndFill 3, i

            End If

            'sValue= rs("FText")

            sValue = rs("FID") '查询到的“技术转化单”上【工序代码】字段的代码值

            '将查出来的值sValue赋到“BOS生产任务单”的【工序代码】字段上去("FDestOperID"为【工序代码】字段的关键字FKey)

            m_BillInterface.SetFieldValue "FDestOperID", sValue, i

            rs.MoveNext

        Next

    End If

End Sub


BOS插件中实现多单据体下推

'此方法适用于目标单为新单的多单据体下推 '由于架构限制,系统本身不支持多单据体下推 '单个单据体的信息携带可通过流程...
点击下载文档
确认删除?
回到顶部
客服QQ
  • 客服QQ点击这里给我发消息