Foxtable(狐表)用户栏目专家坐堂 → [求助]插入图片显示不正常


  共有2161人关注过本帖树形打印复制链接

主题:[求助]插入图片显示不正常

帅哥哟,离线,有人找我吗?
djm2003
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:婴狐 帖子:31 积分:353 威望:0 精华:0 注册:2018/2/26 22:23:00
[求助]插入图片显示不正常  发帖心情 Post By:2018/3/23 9:13:00 [只看该作者]

在安全检查明细表BeforAttachFile事件中,分别设置了两列插入照片和报告,并存放在动态文件夹中,如下图式:
DataTables("安全检查明细表").DataCols("照片").DefaultFolder = ProjectPath & "检查照片\" & e.DataRow("房屋地址") & "\"

If e.DataCol.Name = "照片" Then    
    Dim dr As DataRow = e.DataRow    
    If dr.IsNull("检查人") Or dr.IsNull("检查日期")  Then        
        MessageBox.Show("检查人和检查日期不能为空!","提示",MessageBoxButtons.OK,MessageBoxIcon.Information)        
        e.Cancel = True        
    Else        
        e.SubFolder = dr("检查日期").Date & dr("检查人") 
    End If
    
ElseIf e.DataCol.Name = "鉴定情况_报告" Then
    Dim dr As DataRow = e.DataRow    
    If dr.IsNull("鉴定情况_鉴定单位") Or dr.IsNull("鉴定情况_鉴定统一编号")  Then        
        MessageBox.Show("鉴定单位和鉴定统一编号不能为空!","提示",MessageBoxButtons.OK,MessageBoxIcon.Information)        
        e.Cancel = True        
    Else        
    Dim fl As String = e.FileName
    Dim idx As Integer = fl.LastIndexof(".") 
    Dim ext As String = fl.SubString(idx)
    e.FileName = dr("鉴定情况_鉴定统一编号") & dr("鉴定情况_鉴定单位") & ext
    End If
DataTables("安全检查明细表").DataCols("鉴定情况_报告").DefaultFolder = ProjectPath & "检查照片\" & e.DataRow("房屋地址") & "\鉴定报告\"
          
End If

出现以下问题:
1、插入第一张图片时,未能正确显示,发现是未建立动态文件夹,当插入第二张图片时可正确显示。
2、新增至30行左右,发现照片管理器不能显示图片,提示文件不存在,但动态文件夹内照片存在。
请问怎样解决?

 回到顶部
帅哥哟,离线,有人找我吗?
有点甜
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2018/3/23 9:22:00 [只看该作者]

AfterOpenProject事件,写代码

 

DataTables("安全检查明细表").DataCols("照片").DefaultFolder = ProjectPath & "检查照片\"
 
修改你原来的代码
If e.DataCol.Name = "照片" Then    
    Dim dr As DataRow = e.DataRow    
    If dr.IsNull("检查人") Or dr.IsNull("检查日期")  Then        
        MessageBox.Show("检查人和检查日期不能为空!","提示",MessageBoxButtons.OK,MessageBoxIcon.Information)        
        e.Cancel = True        
    Else        
        e.SubFolder = e.DataRow("房屋地址") & "\" & dr("检查日期").Date & dr("检查人") 
    End If
End If

 回到顶部
帅哥哟,离线,有人找我吗?
有点甜
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2018/3/23 9:23:00 [只看该作者]

不然,你就要在CurrentChanged事件,动态指定每一行的DefaultFolder,如

 

DataTables("安全检查明细表").DataCols("照片").DefaultFolder = ProjectPath & "检查照片\" & e.Table.Current("房屋地址") & "\"


 回到顶部
帅哥哟,离线,有人找我吗?
djm2003
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:婴狐 帖子:31 积分:353 威望:0 精华:0 注册:2018/2/26 22:23:00
  发帖心情 Post By:2018/3/23 10:21:00 [只看该作者]

谢谢老师,解决了这个问题。但出现了新的问题:
检查明细表是子表,基本情况表是父表,当在父表下新增子表一行时,出现“未将对象引用设置到对象实例”,怎样解决。

 回到顶部
帅哥哟,离线,有人找我吗?
djm2003
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:婴狐 帖子:31 积分:353 威望:0 精华:0 注册:2018/2/26 22:23:00
回复:(有点甜)不然,你就要在CurrentChanged事件,...  发帖心情 Post By:2018/3/23 11:17:00 [只看该作者]

谢谢老师,在CurrentChanged中输入解决了这个问题。但出现了新的问题:
检查明细表是子表,基本情况表是父表,当在父表下新增或删除子表一行时,出现“未将对象引用设置到对象实例”,怎样解决。


 回到顶部
帅哥哟,离线,有人找我吗?
有点甜
  6楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2018/3/23 11:22:00 [只看该作者]

代码改成

 

If e.Table.Current is Nothing Then Return

 

DataTables("安全检查明细表").DataCols("照片").DefaultFolder = ProjectPath & "检查照片\" & e.Table.Current("房屋地址") & "\"

[此贴子已经被作者于2018/3/23 11:22:15编辑过]

 回到顶部