Foxtable(狐表)用户栏目专家坐堂 → [求助]用试用版编写的程序,过一段时间就不运行了


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

主题:[求助]用试用版编写的程序,过一段时间就不运行了

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


加好友 发短信
等级:四尾狐 帖子:957 积分:8440 威望:0 精华:0 注册:2012/10/3 13:25:00
[求助]用试用版编写的程序,过一段时间就不运行了  发帖心情 Post By:2016/9/4 16:36:00 [只看该作者]

求教:安装试用版一个月左右,编写了一些小程序,开始运行都是正常的,但是过几天之后,程序就不运行了。情况如下:
1、为了知道是什么原因,就在代码最后加了个提示窗口“运行完毕!”。然后点击运行按钮,结果直接就弹出提示窗口“运行完毕!”,中间的代码实际没有运行。
2、随后,我就把主程序窗口导出,新建一个项目导入它,结果在新项目中能运行。但把其他辅助程序完善好,一开始也正常,但过几天又出现上述情况了。
3、上述情况反复出现多次,不知道是什么原因,请指教!

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


加好友 发短信
等级:管理员 帖子:47449 积分:251065 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By:2016/9/4 16:44:00 [只看该作者]

代码是自己写的吗?
中间的代码不运行,肯定是设置了运行的条件,你可以调试分析一下:
http://www.foxtable.com/webhelp/scr/1485.htm


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


加好友 发短信
等级:四尾狐 帖子:957 积分:8440 威望:0 精华:0 注册:2012/10/3 13:25:00
  发帖心情 Post By:2016/9/4 19:54:00 [只看该作者]

我把代码分成6段,用MessageBox.Show()来显示运行部位。
程序运行显示到MessageBox.Show(3)后,就直接显示MessageBox.Show(7),结束了程序。
If dr IsNot Nothing”往后没有再运行,但也没有出现错误提示。是不是IsNot Nothing...

请专家指教!代码如下:

'生成word报表:

Dim clbx1 As WinForm.CheckedListBox = e.Form.Controls("CheckedListBox1")
Dim clbx2 As WinForm.CheckedListBox = e.Form.Controls("CheckedListBox2")

For Each j As String In clbx2.CheckedIndices
    Dim tm As String  = ProjectPath & "模板文件\" & clbx2.Items(j) '指定模板文件
    For Each i As Integer In clbx1.CheckedIndices
        Dim fl As String = ProjectPath & "成品文件\" & clbx1.items(i) & clbx2.Items(j)      '指定目标文件
       MessageBox.Show(1) 

        '文件已经存在,是否覆盖重新填写
        If FileSys.FileExists(fl) Then
            If  MessageBox.Show(fl & "文件已经存在,是否覆盖重新填写?","提示", MessageBoxButtons.YesNo, MessageBoxIcon.Question) = DialogResult.No Then
                Continue For
            End If
        End If

        Dim nm As String  = CurrentTable.Name
        Dim dr As DataRow = DataTables(nm).Find("名称 = '" & clbx1.items(i) & "'")

--------------------------------------以下代码不运行
        '写入模板
        If dr IsNot Nothing
            Dim wrt As New WordReport(Tables(nm),tm,fl)    '定义一个WordReport
            wrt.BuildOne(dr)   
            wrt.quit
        End If
    Next
Next

[此贴子已经被作者于2016/9/4 20:31:29编辑过]

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


加好友 发短信
等级:五尾狐 帖子:1093 积分:6682 威望:0 精华:0 注册:2013/7/1 9:05:00
  发帖心情 Post By:2016/9/4 22:15:00 [只看该作者]

        If dr IsNot Nothing
            Dim wrt As New WordReport(Tables(nm),tm,fl)    '定义一个WordReport
            wrt.BuildOne(dr)   
            wrt.quit
        else
            messagebox.show("没有符合条件的行,所以不运行")
        End If

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


加好友 发短信
等级:四尾狐 帖子:957 积分:8440 威望:0 精华:0 注册:2012/10/3 13:25:00
  发帖心情 Post By:2016/9/5 11:29:00 [只看该作者]

谢谢“有点酸”朋友,但实际上是有符合条件的行,程序没有判断出来。
现在的情况是如果新建一个项目,导入上述代码,可以正常运行,但运行几次之后,代码中间的部分就不运行了,等于没有生成word报表。也不提示出错信息。

 回到顶部
帅哥,在线噢!
有点蓝
  6楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:107807 积分:548386 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2016/9/5 11:34:00 [只看该作者]

弹出看看条件,查询表是否有符合条件的行,注意数据是否有前后空格

 Dim nm As String  = CurrentTable.Name
msgbox("名称 = '" & clbx1.items(i) & "'")
        Dim dr As DataRow = DataTables(nm).Find("名称 = '" & clbx1.items(i) & "'")

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


加好友 发短信
等级:四尾狐 帖子:957 积分:8440 威望:0 精华:0 注册:2012/10/3 13:25:00
  发帖心情 Post By:2016/9/5 11:43:00 [只看该作者]

弹出符合条件的行了,但没有往模板中写数据,就结束了。也不提示出错信息。

 回到顶部
帅哥,在线噢!
有点蓝
  8楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:107807 积分:548386 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2016/9/5 11:48:00 [只看该作者]

如果数据没有加载,试试

Dim dr As DataRow = DataTables(nm).SQLFind("名称 = '" & clbx1.items(i) & "'")

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


加好友 发短信
等级:四尾狐 帖子:957 积分:8440 威望:0 精华:0 注册:2012/10/3 13:25:00
  发帖心情 Post By:2016/9/5 12:17:00 [只看该作者]

加上SQL也不行,我上传附件你看看!
附件:
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:开发.rar




 回到顶部
帅哥,在线噢!
有点蓝
  10楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:107807 积分:548386 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2016/9/5 14:21:00 [只看该作者]

数据有问题,到命令窗口执行看看就知道了

For Each r As Row In Tables("表A").Rows
    Output.Show("|" & r("名称") & "|长度" & r("名称").length)
Next

 回到顶部
总数 16 1 2 下一页