以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.com/bbs/index.asp)
--  专家坐堂  (http://foxtable.com/bbs/list.asp?boardid=2)
----  [求助]一个表中有两列照片列,一个是登记表列,一个是备案表列,如何修改下列代码?  (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=52539)

--  作者:hrw68529
--  发布时间:2014/6/17 17:36:00
--  [求助]一个表中有两列照片列,一个是登记表列,一个是备案表列,如何修改下列代码?

假定表中有六列,分别是县区、单位名称、生成日期、姓名、登记表(照片列)、备案表(照片列),希望向登记表列添加文件的时候,自动根据县区和单位名称创建子目录来存放文件,如果点击登记表列,就将取名为"单位名称_姓名_生成日期.jpg"的文件存放到Attachments的子目录下的:登记表\\县区\\单位名称中;如果点击备案表列,就将取名为"单位名称_生成日期.jpg"的文件存放到Attachments的子目录下的:备案表\\县区\\单位名称中。如何修改,谢谢,下边的代码只能存放备案表列的。



Dim dr As DataRow = e.DataRow

If dr.IsNull("县区") Or Dr.IsNull("单位名称") Or dr.IsNull("生成日期") Or dr.IsNull("姓名") Then

    MessageBox.Show("不能为空!","提示",MessageBoxButtons.OK,MessageBoxIcon.Information)

    e.Cancel = True

Else

    e.SubFolder = "备案表" & "\\" & dr("县区") & "\\" & dr("单位名称")

    e.FileName = dr("单位名称") & "_" & dr("生成日期") &  ".jpg"

End If


--  作者:有点甜
--  发布时间:2014/6/17 17:41:00
--  

 如下

 

Dim dr As DataRow = e.DataRow

If dr.IsNull("县区") Or Dr.IsNull("单位名称") Or dr.IsNull("生成日期") Or dr.IsNull("姓名") Then
    MessageBox.Show("不能为空!","提示",MessageBoxButtons.OK,MessageBoxIcon.Information)
    e.Cancel = True
Else
    e.SubFolder = e.DataCol.name & "\\" & dr("县区") & "\\" & dr("单位名称")
    e.FileName = dr("单位名称") & "_" & dr("生成日期") &  ".jpg"
End If


--  作者:hrw68529
--  发布时间:2014/6/17 17:46:00
--  
如果是登记表,生成文件名字时为e.FileName = dr("单位名称") & "_" & dr("姓名") & "_" & dr("生成日期") &  ".jpg"要加上姓名,如何做
--  作者:有点甜
--  发布时间:2014/6/17 17:54:00
--  

Dim dr As DataRow = e.DataRow

If dr.IsNull("县区") Or 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("生成日期") &  ".jpg"
    Else If e.DataCol.Name = "登记表" Then
        e.SubFolder = e.DataCol.name & "\\" & dr("县区") & "\\" & dr("单位名称")
        e.FileName = e.FileName = dr("单位名称") & "_" & dr("姓名") & "_" & dr("生成日期") &  ".jpg"
    End If
End If


--  作者:hrw68529
--  发布时间:2014/6/18 8:32:00
--  
按照你给的代码,可以执行,但当在同一单元格中,增加多个图片时,不能按顺序加入,图片—1.jpg,图片—2.jpg.如 e.FileName = e.FileName = dr("单位名称") & "_" & dr("姓名") & "_" & dr("生成日期") & "_" & Indexs & ".jpg",下列代码如何修改,谢谢甜老师。

Dim dr As DataRow = e.DataRow
If dr.IsNull("县区") Or 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 Index As Integer = dr("备案表").split(vbcrlf).length
        e.SubFolder = e.DataCol.name & "\\" & dr("县区") & "\\" & dr("单位名称")
        e.FileName = dr("单位名称") & "_" & dr("生成日期") & "_" & Index & ".jpg"
    ElseIf e.DataCol.Name = "登记表" Then
        Dim Indexs As Integer = dr("登记表").split(vbcrlf).length
        e.SubFolder = e.DataCol.name & "\\" & dr("县区") & "\\" & dr("单位名称")
        e.FileName = e.FileName = dr("单位名称") & "_" & dr("姓名") & "_" & dr("生成日期") & "_" & Indexs & ".jpg"
    End If
End If


--  作者:Bin
--  发布时间:2014/6/18 8:35:00
--  
试试把  Indexs 改为

(e.DataRow("存放文件的列名").Lines.Count+1)

--  作者:hrw68529
--  发布时间:2014/6/18 8:40:00
--  
加上后,出现如下错误,请指教

.NET Framework 版本:2.0.50727.3655
Foxtable 版本:2014.5.12.1
错误所在事件:人员增减,BeforeAttachFile
详细错误信息:
Public member \'Lines\' on type \'String\' not found.


--  作者:Bin
--  发布时间:2014/6/18 8:41:00
--  
e.DataRow.Lines("列名").Count
--  作者:hrw68529
--  发布时间:2014/6/18 8:45:00
--  
老大,不行


--  作者:Bin
--  发布时间:2014/6/18 8:46:00
--  
怎么不行?