Foxtable(狐表)用户栏目专家坐堂 → 关于照片直接引用的问题


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

主题:关于照片直接引用的问题

帅哥哟,离线,有人找我吗?
狐狸爸爸
  11楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:管理员 帖子:47448 积分:251054 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By:2010/5/19 7:57:00 [显示全部帖子]

我觉得你要掌握基本的编程知识才行,否则会很被动,英语不是借口,版主的英语都不好,有的可以说非常差。

 

你的代码问题:

 

e.Datarow("第八列")= File

 

应该改为:

 

e.Datarow("第八列")= val

 

这是我手误造成难过的,但如果你明白28楼代码的意思,应该很快就可以找出问题所在。

28楼代码的意思就是找出指定目录所有的文件,逐个判断文件名是否以指定的字符开头,如果是的,就加到变量val中(vbcrlf为换行符,一行一个文件),最后将val赋值给第八列中。

 

比较完美的是:

 

Dim Val As String

If e.DataCol.Name = "第一列" Then
    For Each File As String In FileSys.GetFiles("D:\跟单系统外部数据\Attachments\规格")
         If Filesys.GetName(File).StartsWith(e.Datarow("第一列")) Then

              If Val > "" Then 

                  Val = Val & vbcrlf

              End If
              Val = val  & File
         End iF
    next
    e.Datarow("第八列")= Val
End If

 

 

 

 

[此贴子已经被作者于2010-5-19 8:14:00编辑过]

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


加好友 发短信
等级:管理员 帖子:47448 积分:251054 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By:2010/5/19 8:30:00 [显示全部帖子]

 

你的这个建议,是不现实的,例如你说碰到的错误,"DatRow"不是事件的成员,而且告诉你在那一行,这样的提示还不够友善吗?

编程是五花八门的,同一个错误,可能是不同的原因造成的,根本就没有定式。

 

再说30楼说的错误“显示没声明file":

 

e.datarow("第八列")=File

 

通常是因为变量File没有定义,或者名称输入错误。

 

不过这里却不是这么回事,File是在前面的循环语句定义了的:

 

For Each File As String In FileSys.GetFiles("D:\跟单系统外部数据\Attachments\规格")

Next

 

出现没有定义的错误,是因为e.datarow("第八列")=File在循环语句之外,这样的错误,帮助专门有一章的讲述的,就是《变量的作用范围》

 

错误提示足够详细友善的了,但是如果不打好基本功,记忆再多的错误代码也是没有用的。

[此贴子已经被作者于2010-5-19 8:43:42编辑过]

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


加好友 发短信
等级:管理员 帖子:47448 积分:251054 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By:2010/5/19 9:22:00 [显示全部帖子]

规格目录下根本就没有文件,只有目录,怎么加载啊,你是根据目录名来加载的,应该这样

 

If e.DataCol.Name = "第一列" Then
    If e.DataRow.IsNull("第一列") Then '身份证号码是否为空
        e.DataRow("第八列") = Nothing '如果为空,则清除出生日期
    Else
        Dim Val As String
        Dim ph As String = "D:\跟单系统外部数据\Attachments\规格\" & e.DataRow("第一列")
        For Each File As String In FileSys.GetFiles(ph)
            If Val > "" Then
                Val = Val & vbcrlf
            End If
            Val = val  & File
        next
        e.Datarow("第八列")= Val
    End If
End If
 

 

 

另外你要注意,我的一段是:

 

If Val > "" Then
     Val = Val & vbcrlf
End If
Val = val  & File

 

被你改成了:

If Val > "" Then 

    Val = Val & vbcrlf

    Val = val  & File

End If

 

你这样一改,变量val将始终为空,原因你可以想想。


[此贴子已经被作者于2010-5-19 9:31:51编辑过]

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


加好友 发短信
等级:管理员 帖子:47448 积分:251054 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By:2010/5/19 18:10:00 [显示全部帖子]

看看代码加入的和你手工加入的内容有何不同,然后再分析原因,改写代码。


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


加好友 发短信
等级:管理员 帖子:47448 积分:251054 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By:2010/5/19 18:23:00 [显示全部帖子]

改为这样:

If e.DataCol.Name = "第一列" Then
    If e.DataRow.IsNull("第一列") Then '身份证号码是否为空
        e.DataRow("第八列") = Nothing '如果为空,则清除出生日期
    Else
        Dim Val As String
        Dim ph As String = "D:\跟单系统外部数据\Attachments\规格\" & e.DataRow("第一列")
        For Each File As String In FileSys.GetFiles(ph)
            If Val > "" Then
                Val = Val & vbcrlf
            End If
            Val = val  & e.DataRow("第一列") & "\" & FileSys.GetName(File)
        next
        e.Datarow("第八列")= Val
    End If
End If
 


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


加好友 发短信
等级:管理员 帖子:47448 积分:251054 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By:2010/5/24 15:56:00 [显示全部帖子]

比较手工加入的和代码加入的有何不同。


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


加好友 发短信
等级:管理员 帖子:47448 积分:251054 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By:2010/5/24 16:21:00 [显示全部帖子]

一个单元格手工增加

一个单元格代码增加

 

关闭foxtable,重新打开foxtbal,重新打开项目,看看是否都不能打开文件

 

将文件扩展列类型改为多文件,可以看出两个单元格的差别。

 

尽量不要在人家的帖子后面提问,除非是关联很紧密的问题,同样不太相关的问题,最好单独发帖,以免出现超长的帖子。

[此贴子已经被作者于2010-5-24 16:24:11编辑过]

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


加好友 发短信
等级:管理员 帖子:47448 积分:251054 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By:2010/5/24 16:40:00 [显示全部帖子]

文件管理器有“增加”按钮。

搞不定的话,就做一个简单的例子上来测试

[此贴子已经被作者于2010-5-24 16:40:48编辑过]

 回到顶部
总数 19 上一页 1 2