以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  [求助]自动追文本  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=109288)

--  作者:沪上游客
--  发布时间:2017/11/8 17:05:00
--  [求助]自动追文本
老师你好!
在设定了主表中增加一条记录时,会自动录入合同编号(前部分)。如下图

图片点击可在新窗口打开查看此主题相关图片如下:qq图片20171108165522.png
图片点击可在新窗口打开查看
然后我想在所属年份中输入年份(整数)后,后面2位自动加在合同编号后面,如下图

图片点击可在新窗口打开查看此主题相关图片如下:qq图片20171108165741.png
图片点击可在新窗口打开查看
另外如果21位编号已经保存,修改所属年份就忽略不改
谢谢老师请解决一下!
[此贴子已经被作者于2017/11/8 17:05:25编辑过]

--  作者:有点甜
--  发布时间:2017/11/8 17:43:00
--  

DataChanged事件

 

If e.DataCol.Name = "所属年份" AndAlso e.DataRow.RowState = DataRowState.Added Then
    If e.newvalue = Nothing Then
        e.DataRow("合同编号") = "aabbcceeffgg-"
    ElseIf e.newvalue.length = 4 Then
        e.DataRow("合同编号") = "aabbcceeffgg-" & e.newvalue.substring(0, 2)
    End If
End If


--  作者:沪上游客
--  发布时间:2017/11/9 9:56:00
--  
谢谢老师!还是不行。出现以下提示:

图片点击可在新窗口打开查看此主题相关图片如下:qq图片20171109095241.png
图片点击可在新窗口打开查看
是不是“所属年份”列类型问题?
请帮忙看一下
我现在的代码:
If User.Group Like "*分公司" Then
    If e.DataCol.Name = "所属年份" AndAlso e.DataRow.RowState = DataRowState.Added Then
        If e.newvalue = Nothing Then
            e.DataRow("合同编号") = "aabbcceeffggh"
        ElseIf e.newvalue.length = 4 Then
            e.DataRow("合同编号") = "aabbcceeffggh" & e.newvalue.substring(0, 2)
        End If
    End If
End If

--  作者:有点甜
--  发布时间:2017/11/9 9:58:00
--  
If e.DataCol.Name = "所属年份" AndAlso e.DataRow.RowState = DataRowState.Added Then
    If e.newvalue = Nothing Then
        e.DataRow("合同编号") = "aabbcceeffgg-"
    ElseIf cstr(e.newvalue).length = 4 Then
        e.DataRow("合同编号") = "aabbcceeffgg-" & cstr(e.newvalue).substring(0, 2)
    End If
End If
[此贴子已经被作者于2017/11/9 9:57:49编辑过]

--  作者:沪上游客
--  发布时间:2017/11/9 9:58:00
--  
另外我已经把第十三位的“-”加上了
--  作者:有点甜
--  发布时间:2017/11/9 9:59:00
--  
认认真真看懂4楼代码。
--  作者:有点甜
--  发布时间:2017/11/9 10:00:00
--  
If User.Group Like "*分公司" Then
    If e.DataCol.Name = "所属年份" AndAlso e.DataRow.RowState = DataRowState.Added Then
        If e.newvalue = Nothing Then
            e.DataRow("合同编号") = "aabbcceeffggh"
        ElseIf cstr(e.newvalue).length = 4 Then
            e.DataRow("合同编号") = "aabbcceeffggh" & cstr(e.newvalue).substring(0, 2)
        End If
    End If
End If

--  作者:沪上游客
--  发布时间:2017/11/9 10:54:00
--  
谢谢老师,已解决!