以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.com/bbs/index.asp)
--  专家坐堂  (http://foxtable.com/bbs/list.asp?boardid=2)
----  [求助]在增加图片列:扫描件列时,批量增加图片时,不能进行批量编号,请指教  (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=107885)

--  作者:hrw68529
--  发布时间:2017/10/12 8:03:00
--  [求助]在增加图片列:扫描件列时,批量增加图片时,不能进行批量编号,请指教
[求助]在增加图片列:扫描件列时,批量增加图片时,不能进行批量编号,请指教
下列代码,如何修改,才能在“扫描件”列的单元格中批量增加图片时,自动编号,现在是批量增加图片时,只生成1号,然后说重命名或覆盖,谢谢
代码:
Dim dr As DataRow = e.DataRow
If dr.IsNull("年度") Or Dr.IsNull("工伤认定文号") Or dr.IsNull("受伤害职工姓名")  Then
    MessageBox.Show("不能为空!","提示",MessageBoxButtons.OK,MessageBoxIcon.Information)
    e.Cancel = True
Else
    If e.DataCol.Name = "扫描件" Then
        e.SubFolder = e.DataCol.name & "\\" & dr("年度") & "\\" & dr("受伤害职工姓名")
        e.FileName = dr("工伤认定文号") & "_" & dr("受伤害职工姓名") & "_" & (e.DataRow.Lines("扫描件").Count + 1) & ".jpg"
    End If
End If
出现的问题是:如图:
图片点击可在新窗口打开查看此主题相关图片如下:截图00.jpg
图片点击可在新窗口打开查看


--  作者:hrw68529
--  发布时间:2017/10/12 9:12:00
--  
 e.FileName = dr("工伤认定文号") & "_" & dr("受伤害职工姓名") & "_" & (e.DataRow.Lines("扫描件").Count + 1) & ".jpg"
标红的地方怎么改,谢谢

--  作者:hrw68529
--  发布时间:2017/10/12 10:39:00
--  
有点甜,能解决不,谢谢
--  作者:有点甜
--  发布时间:2017/10/12 11:25:00
--  

代码没问题,因为你文件夹里本来就存在对应的文件名了。

 

你先把你文件夹里的文件清空,然后再执行代码肯定没问题的。


--  作者:hrw68529
--  发布时间:2017/10/12 15:22:00
--  
有点甜:出现的问题是一次批量增加图片时,提示覆盖,然后就是编号一样的文件了,你看下图:

图片点击可在新窗口打开查看此主题相关图片如下:截图01.jpg
图片点击可在新窗口打开查看


--  作者:有点甜
--  发布时间:2017/10/12 15:39:00
--  

BeforeAddFile事件

 

If e.DataCol.Name = "第十列" Then
    vars("文件") = e.DataRow.Lines("第十列")
End If

 

BeforeAttachFile事件

 

If e.DataCol.Name = "第十列" Then
    Dim ls = vars("文件")
    e.FileName = (ls.Count+1) & ".jpg"
    ls.add(e.FileName)
End If


--  作者:hrw68529
--  发布时间:2017/10/12 16:40:00
--  
我把你的代码修改到我的代码中,可以增加了,但每次需点覆盖确定按钮,点击确定按钮后,生成按编号的文件,怎么不按按钮就能自动编号?
代码:Dim dr As DataRow = e.DataRow
If dr.IsNull("年度") Or Dr.IsNull("工伤认定文号") Or dr.IsNull("受伤害职工姓名")  Then
    MessageBox.Show("不能为空!","提示",MessageBoxButtons.OK,MessageBoxIcon.Information)
    e.Cancel = True
Else
    If e.DataCol.Name = "扫描件" Then
          Dim ls = vars("path")
        e.SubFolder = e.DataCol.name & "\\" & dr("年度") & "\\" & dr("工伤认定文号") & "_" & dr("受伤害职工姓名")
        e.FileName = dr("受伤害职工姓名") & "_" & (ls.Count +1) & ".jpg"
        ls.add(e.FileName)
    End If
End If
出现问题图:1、
图片点击可在新窗口打开查看此主题相关图片如下:截图02.jpg
图片点击可在新窗口打开查看
2、
图片点击可在新窗口打开查看此主题相关图片如下:截图03.jpg
图片点击可在新窗口打开查看


--  作者:有点甜
--  发布时间:2017/10/12 16:48:00
--  

1、你先在项目里删除对应的jpg文件;

 

2、BeforeAddFile事件要写

 

vars("path") = e.DataRow.lines("扫描件")

 

 

[此贴子已经被作者于2017/10/12 17:04:52编辑过]

--  作者:hrw68529
--  发布时间:2017/10/12 16:57:00
--  
修改好后,出现下图:怎么回事呢?

图片点击可在新窗口打开查看此主题相关图片如下:截图04.jpg
图片点击可在新窗口打开查看


--  作者:有点甜
--  发布时间:2017/10/12 17:05:00
--  

哦,写错了,是

 

vars("path") = e.DataRow.lines("扫描件")