BOS 二次开发 -- 预测订单录入单据开发

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/sz_bdqn/article/details/7227334

 

   上级提出要求让我开发预测订单录入的单据开发及相关的插件开发,对于刚学BOS 插件开发的我也是非常有难度的,没人问、没人指导,只得搞自己慢慢摸索。经过好多天的准备,现在基本上已经入门了,在这里记录下最开始的学习心情、知识点、为以后开发积累资源。

   业务方面现在先不说写,等有空的时候回来补上,直接说开发了。

  首先设计出预测订单界面,效果图如下:

 

 

 对于此单据开发需要处理如下问题:

 1. 选择物料代码后,在表体中显示该物料的所有子项物料?

 2.备料数量=备料数量(表体*备料数量)*数量(表头.数量)?

 3.是否备料勾选上的表体信息才可保存?

    获取单据体中的数据,遍历数据且将没有勾选的记录从表体中移除,后保存。

Private Sub m_BillInterface_BeforeSave(bCancel As Boolean)

    Dim isBL As Integer, i As Integer, counts As Integer
    Dim yesCounts As Integer
    yesCounts = 0
    
    counts = m_BillInterface.Data("Page2").UBound
    Debug.Print "------ : " & counts

    For i = 1 To counts
        If i > counts Then
            Exit Sub
        End If
        
        Debug.Print "row : " & i & "====================== : " & counts
        isBL = m_BillInterface.GetFieldValue("FCheckBox1", i, Enu_ValueType_FFLD)
        If isBL = 0 Then
            m_BillInterface.RemoveRow False, 2, i
            counts = counts - 1
        Else
            yesCounts = yesCounts + 1
        End If
        i = yesCounts + 1
     Next
End Sub



 3.1 K3 BOS 单据保存默认是保存所有的单据数据,表体只保存选中的单据,该如何处理呢?

 3.2 单据体中有复选框,如何在插件中获取复选框选中的单据体数据?

 3.3 获取复选框单据体后如何保存这些选中的单据体数据?

 

 

 

相关知识点:

 1.获取BOS 单据体数据,且遍历

For i = 1 To m_BillInterface.Data("Page2").UBound

Next

 

 

2.获取、设置表单上的字段值

'通过给定的字段名获得字段的模板对象、内部关键字、录入时控件顺序。
m_BillInterface.GetFieldValue("Ftext1", i, Enu_ValueType_FFLD)

 i:是指单据表体中的行数。

 

For i = 1 To m_BillInterface.Data("Page2").UBound

'通过给定的字段名获得字段的模板对象、内部关键字、录入时控件顺序。
Str = Trim(m_BillInterface.GetFieldValue("Ftext1", i, Enu_ValueType_FFLD))

Next

 

  设置表单字段上的值:

  m_BillInterface.SetFieldValue "Fdecimal", Fprice, -1


 

 

 


 

3.VB中 判断不等于的写法

If Not Str = "" Then
End If

If SStr(j) <> "" Then
End If

 

 

4.VB 截取字符串Right(str,1) Let(str,1)

    If Right(Str, 1) <> "]" Or Left(Str, 1) <> "[" Then
        bCancel = True
        MsgBox "第[" & CStr(i) & "]行品牌信息必须以'['开头以']'结尾,格式不正确请检查."
        Exit Sub
    End If

 


 

5.VB如何跳出某个方法?

Exit Sub

 

 

6.VB定义数组

Dim SStr() As String  '声明一个数组
SStr = Split(Str, "[")     '拆分字符串,按指定的字符组装成数组

ubound 最大下标

lbound 最小下标

 


 7.K3 BOS 开发中,保存后,如何在插件中取消当前触发事件?

Private Sub m_BillInterface_BeforeSave(bCancel As Boolean)
    bCancel = true
End Sub

 

 

 


 

 

 

 

 

 

 

阅读更多 登录后自动展开
想对作者说点什么? 我来说一句

没有更多推荐了,返回首页