以文本方式查看主题 - Foxtable(狐表) (http://foxtable.com/bbs/index.asp) -- 专家坐堂 (http://foxtable.com/bbs/list.asp?boardid=2) ---- [求助]用试用版编写的程序,过一段时间就不运行了 (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=90056) |
-- 作者:jyh7081 -- 发布时间:2016/9/4 16:36:00 -- [求助]用试用版编写的程序,过一段时间就不运行了 求教:安装试用版一个月左右,编写了一些小程序,开始运行都是正常的,但是过几天之后,程序就不运行了。情况如下: 1、为了知道是什么原因,就在代码最后加了个提示窗口“运行完毕!”。然后点击运行按钮,结果直接就弹出提示窗口“运行完毕!”,中间的代码实际没有运行。 2、随后,我就把主程序窗口导出,新建一个项目导入它,结果在新项目中能运行。但把其他辅助程序完善好,一开始也正常,但过几天又出现上述情况了。 3、上述情况反复出现多次,不知道是什么原因,请指教!
|
-- 作者:狐狸爸爸 -- 发布时间:2016/9/4 16:44:00 -- 代码是自己写的吗? 中间的代码不运行,肯定是设置了运行的条件,你可以调试分析一下:
http://www.foxtable.com/webhelp/scr/1485.htm |
-- 作者:jyh7081 -- 发布时间: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编辑过]
|
-- 作者:有点酸 -- 发布时间: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 -- 发布时间:2016/9/5 11:29:00 -- 谢谢“有点酸”朋友,但实际上是有符合条件的行,程序没有判断出来。 现在的情况是如果新建一个项目,导入上述代码,可以正常运行,但运行几次之后,代码中间的部分就不运行了,等于没有生成word报表。也不提示出错信息。
|
-- 作者:有点蓝 -- 发布时间: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 -- 发布时间:2016/9/5 11:43:00 -- 弹出符合条件的行了,但没有往模板中写数据,就结束了。也不提示出错信息。 |
-- 作者:有点蓝 -- 发布时间:2016/9/5 11:48:00 -- 如果数据没有加载,试试 Dim dr As DataRow = DataTables(nm).SQLFind("名称 = \'" & clbx1.items(i) & "\'")
|
-- 作者:jyh7081 -- 发布时间:2016/9/5 12:17:00 -- 加上SQL也不行,我上传附件你看看! |
-- 作者:有点蓝 -- 发布时间:2016/9/5 14:21:00 -- 数据有问题,到命令窗口执行看看就知道了 For Each r As Row In Tables("表A").Rows Output.Show("|" & r("名称") & "|长度" & r("名称").length) Next |