以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.com/bbs/index.asp)
--  专家坐堂  (http://foxtable.com/bbs/list.asp?boardid=2)
----  请教下,如何实现输入一列内容后,相关内容可以自动填入  (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=192282)

--  作者:SUV2258
--  发布时间:2024/6/10 10:39:00
--  请教下,如何实现输入一列内容后,相关内容可以自动填入
老师有二个问题请教下:
    问题一:表格中有“委托单编号”、“校验记录编号”、“校验报告编号”、”校验编号“四列,委托单编号的内容是:ZRJC-WT-2024-0001,校验记录编号的内容是:ZRJC-JL-2024-0001,校验报告的编号是:ZRJC-BG-2024-0001,校验编号是:2024-0001,四列的主要内容相同,不同部分分别是编号的第2小项中的字母,校验编号直接是把字母部分去除即可,能否实现我在委托单编号列输入内容后,其余三列自动输入内容?
例如,在委托单编号列输入 ZRJC-WT-2024-0002后,校验记录编号列自动输入了:ZRJC-JL-2024-0002,校验报告编号列自动输入了:ZRJC-BG-2024-0002,校验编号列自动输入了:2024-0002
  问题二:表格中有“接收日期”列和”年份“,“月份”,三列,三列的关系是:当接收日期中输入数值后,其余的年份和月份分别显示为接收日期数值中的年份和月份,例如,接收日期例输入2024-06-10后,年份为2024,月份为06

--  作者:有点蓝
--  发布时间:2024/6/10 21:30:00
--  
参考:http://www.foxtable.com/webhelp/topics/1452.htm

比如

If e.DataCol.Name = "委托单编号" Then 
    If e.DataRow.IsNull("
委托单编号")=false Then
        e.
DataRow("
校验记录编号") = e.DataRow("委托单编号").replace("-WT-","-JL-")
        e.DataRow("校验报告的编号") = e.DataRow("委托单编号").replace("-WT-","-BG-")
    End If
End
 
If

--  作者:SUV2258
--  发布时间:2024/6/11 19:41:00
--  
麻烦老师把校验编号那个还有如何提取年份和月份的代码给写下吧,因为刚接触狐表,现在使用的是软件的基本管理功能,代码正在学习中,因表中有大量数据,不敢轻易偿试,所以请老师帮助写下吧,谢谢!
也正好拿你的代码与我自己偿试编号的代码对照学习下

--  作者:有点蓝
--  发布时间:2024/6/11 21:26:00
--  
参考:http://www.foxtable.com/webhelp/topics/1337.htm

做开发尽量使用测试环境,在开发电脑安装测试数据库

--  作者:SUV2258
--  发布时间:2024/6/12 16:36:00
--  
老师,能在你给编号的代码里,把校验编号列自动输入内容的代码给写下吗?


--  作者:有点蓝
--  发布时间:2024/6/12 16:41:00
--  
没看懂,举例说明一下
--  作者:SUV2258
--  发布时间:2024/6/12 17:12:00
--  
老师有二个问题请教下:
    问题一:表格中有“委托单编号”、“校验记录编号”、“校验报告编号”、”校验编号“四列,委托单编号的内容是:ZRJC-WT-2024-0001,校验记录编号的内容是:ZRJC-JL-2024-0001,校验报告的编号是:ZRJC-BG-2024-0001,校验编号是:2024-0001,四列的主要内容相同,不同部分分别是编号的第2小项中的字母,校验编号直接是把字母部分去除即可,能否实现我在委托单编号列输入内容后,其余三列自动输入内容?
例如,在委托单编号列输入 ZRJC-WT-2024-0002后,校验记录编号列自动输入了:ZRJC-JL-2024-0002,校验报告编号列自动输入了:ZRJC-BG-2024-0002,校验编号列自动输入了:2024-0002
If e.DataCol.Name = "委托单编号" Then 
    If e.DataRow.IsNull("
委托单编号")=false Then
        e.
DataRow("
校验记录编号") = e.DataRow("委托单编号").replace("-WT-","-JL-")
        e.DataRow("校验报告的编号") = e.DataRow("委托单编号").replace("-WT-","-BG-")
    End If
End
 
If
上面的代码是你帮助给填写的,但是没有校验报告这一列,想请你帮助给填补上

[此贴子已经被作者于2024/6/12 17:15:17编辑过]

--  作者:有点蓝
--  发布时间:2024/6/12 17:23:00
--  
参考:http://www.foxtable.com/webhelp/topics/1338.htm


        e.
DataRow("
校验编号") = e.DataRow("委托单编号").replace("-WT-","|").split("|")(1)

--  作者:SUV2258
--  发布时间:2024/6/12 17:39:00
--  
replace("-WT-","|").split("|")(1)

老师,这个代码没看明白,能否给注释一下,特别是后面的(1)

--  作者:有点蓝
--  发布时间:2024/6/13 8:37:00
--  
replace:http://www.foxtable.com/webhelp/topics/0241.htm


假设字符串为:ZRJC-WT-2024-0001,replace("-WT-","|")后等于:ZRJC|2024-0001,split("|")后是一个数组,数组里有2项,第一项是【ZRJC】,第二项是【2024-0001】,按数组的用法(http://www.foxtable.com/webhelp/topics/0216.htm),(1)表示取第二项也就是2024-0001

如果完全没有接触过编程的,建议先学一下基础:http://www.foxtable.com/webhelp/topics/1592.htm