Foxtable(狐表)用户栏目专家坐堂 → [求助]表的关联出现报错


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

主题:[求助]表的关联出现报错

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


加好友 发短信
等级:幼狐 帖子:160 积分:1453 威望:0 精华:0 注册:2016/3/24 19:00:00
[求助]表的关联出现报错  发帖心情 Post By:2023/3/28 16:45:00 [只看该作者]


图片点击可在新窗口打开查看此主题相关图片如下:微信图片_20230328163808.png
图片点击可在新窗口打开查看

老师帮忙解答下...谢谢!
原试用版时OK 转开发版后找不到哪错了?
登陆加载时就报错!

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


加好友 发短信
等级:超级版主 帖子:111393 积分:567029 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2023/3/28 16:50:00 [只看该作者]

关闭退出项目,删除项目所在的文件夹里的bin目录,然后重启项目试试。

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


加好友 发短信
等级:幼狐 帖子:160 积分:1453 威望:0 精华:0 注册:2016/3/24 19:00:00
  发帖心情 Post By:2023/3/28 19:45:00 [只看该作者]

已解决!谢谢!
另外 麻凡老师在看一下...永开版关闭程式时 总是不反应...

图片点击可在新窗口打开查看此主题相关图片如下:微信图片_20230328194251.png
图片点击可在新窗口打开查看



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


加好友 发短信
等级:幼狐 帖子:160 积分:1453 威望:0 精华:0 注册:2016/3/24 19:00:00
  发帖心情 Post By:2023/3/28 19:56:00 [只看该作者]

Q2-打开报表设计模版 总是提示错误...但我确认路径位置没错...重新开机无法解决...

图片点击可在新窗口打开查看此主题相关图片如下:微信图片_20230328195319.png
图片点击可在新窗口打开查看


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


加好友 发短信
等级:超级版主 帖子:111393 积分:567029 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2023/3/28 20:13:00 [只看该作者]

回3楼:检查一下项目事件。另外看看是不是设置了自动备份,然后备份路径是网络共享路径?

回4楼:模板设计的时候只能在本机打开,不能在共享里使用。请把项目整个目录复制到本机开发
[此贴子已经被作者于2023/3/28 20:13:01编辑过]

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


加好友 发短信
等级:幼狐 帖子:160 积分:1453 威望:0 精华:0 注册:2016/3/24 19:00:00
  发帖心情 Post By:2023/6/15 15:10:00 [只看该作者]

蓝老师: 上述问题已都解决..谢谢!

现在关联表部份剩下一个情况的代码报错...请再帮我解惑一下

A表为父表_B表为子表,A."本单单号"与B."来源单号"关联 (A."本单编号"列已设定为不能重复,且A对B 为 一对多)

1-窗口中在子表B编辑行后 点击保存行按钮时 → 要判定该行在父表A中的 ("指定设计员")列 是否为空

我在子表B 的beforsafedatarow 事件中下代码如下:

If e.DataRow.GetParentRow.IsNull("指定设计员") Then
MessageBox.Show("来源父表未指定设计者!", "提示")
    e.canel = True
End If

报错(未知编译错误) 行不通... 

2-然后我改另一个思路...
在子表B保存行前 取该行的"LOG"列值  填写到该行在父表A中的 ("指定设计员")列...
所以把代码改为:
Dim p As DataRow = e.DataRow.GetParentRow("指定设计员")
e.DataRow("log") = p("指定设计员")

还是报错...

但第2个思路不对...因为子表与父表是多对一,这样每保存一行子表就运行代码...效率很不好

第1个思路比较好但也不完整,
虽然它在子表B的第1 笔存档时判断,父表A没有"指定设计员" 用OPEN QQ 就能通知主管修改父表
这样第2笔起就不会再出现提示...但因为图档设计涉及设计师的绩效奖金,第2笔起可能涉及换人设计...SO,很不好搞定,

所以结论是...真正需要的代码是:

在子表B 新增第一行保存行前, 判定父表A中 该行的 "指定设计员" 是否为修改设计图的编辑人...
(编辑人:  表B 的"上传图档"列 变化时将USER写到 "LOG"列)

也就是保存表B 第一行前 → 判定父表A 的 "指定设计人"与表B"LOG"列
>不管表A 的 "指定设计人"是否为空...
>> 把 表B中 "LOG" 列的值,填入父表A 的 "指定设计人"

表B 同一父表行(相同来源单号)的第2行起...保存行前判定父表A 的 "指定设计人" 是否不为空且= "LOG" 列... 
>是: 保存行
>否: 提示 "图档编辑人不是指定设计人!...是否更新"指定设计人" 
   >> Ok→用 "LOG" 值更换掉表A '指定设计人"后保存
   >> Cancel→"指定设计人" 不是空值时, 不替换直接保存...
   >> Cancel→"指定设计人" 为空值时用, 先取表B 同一父表行(相同来源单号)的第1行"LOG"值, 填入父表A 的 "指定设计人" 再保存


请蓝老师指导下...实现这思路的实用代码
谢谢!!






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


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

表B 的beforsafedatarow 事件中下代码如下:
Dim pr As DataRow e.DataRow.GetParentRow("A表")
if pr isnot nothing
If pr.IsNull("指定设计员") Then
pr("指定设计员") = e.DataRow("log")
elseif pr("指定设计员") <> e.DataRow("log")
if MessageBox.Show("图档编辑人不是指定设计人是否更新", "提示", MessageBoxButtons.YesNo, MessageBoxIcon.Question) = DialogResult.Yes
pr("指定设计员") = e.DataRow("log")
else
    e.canel = True
end if
End If
endif

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


加好友 发短信
等级:幼狐 帖子:160 积分:1453 威望:0 精华:0 注册:2016/3/24 19:00:00
  发帖心情 Post By:2023/6/15 17:59:00 [只看该作者]

明白了..谢谢!!

我的永开版自3天前起只要编辑代码(表事件、项目事件) 关闭编辑窗口后 FOXTABLE 程序就没反应...
(没法再进去编辑,所有表全部锁死无法进入任何单元格,有时甚至菜单整个反白)

只能关闭程序载重新打开一次,但没做几个代码后还是会再发生同样状况
→删掉BIN 也没效果...

想请您判断一下...告知我如何处理?

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


加好友 发短信
等级:超级版主 帖子:111393 积分:567029 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2023/6/15 20:07:00 [只看该作者]

1、激活码有问题,明天联系客服核对一下
2、系统环境有问题,卸载重装一下Foxtable,或者换台电脑试试有没有问题
[此贴子已经被作者于2023/6/15 20:07:28编辑过]

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


加好友 发短信
等级:幼狐 帖子:160 积分:1453 威望:0 精华:0 注册:2016/3/24 19:00:00
  发帖心情 Post By:2023/6/16 17:18:00 [只看该作者]

老师:
报错 " 未知编译错误" 调了几次都不对...最后改成下面的 也一样...
dim这行没问题...后头就找不出原因为啥报错..

Dim pr As DataRow = e.DataRow.GetParentRow("设计来源档")  → 这行没问题
If pr.IsNull("指定设计员") Then 
    MessageBox.Show("没有填入设计员??", "存档失败", MessageBoxButtons.OK, MessageBoxIcon.Exclamation) '提示用户
    e.canel = True
End If


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