Foxtable(狐表)用户栏目专家坐堂 → [求助]不加载原始数据的情况下,如何使用表达式列


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

主题:[求助]不加载原始数据的情况下,如何使用表达式列

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


加好友 发短信
等级:九尾狐 帖子:2216 积分:18225 威望:0 精华:0 注册:2011/11/26 20:21:00
[求助]不加载原始数据的情况下,如何使用表达式列  发帖心情 Post By:2019/4/2 21:44:00 [显示全部帖子]

使用外部数据源。
表A和表B设置关联,表B作为表A的子表。
表A中有编号、名称、规格型号、单位这4列。
表B中有AID是数据列,然后有编号、名称、规格型号、单位这四列都是表达式列。

如果不加载表A的数据,如何在表中展示选定的AID对应的编号、名称、规格型号、单位这四列的信息呢?

主要是不想在表B中冗余过多的列,一是数据量大的时候保存耗时长,二是无谓导致数据库大很多
[此贴子已经被作者于2019/4/2 21:50:05编辑过]

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


加好友 发短信
等级:九尾狐 帖子:2216 积分:18225 威望:0 精华:0 注册:2011/11/26 20:21:00
  发帖心情 Post By:2019/4/2 22:07:00 [显示全部帖子]

不同的项目,有不同的采购清单。

但公司在审核多个项目的采购计划的时候,总不能审A项目的采购计划之前,还把A项目的采购清单加载进来;再审B项目的,又把B项目的采购清单加进来啊

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


加好友 发短信
等级:九尾狐 帖子:2216 积分:18225 威望:0 精华:0 注册:2011/11/26 20:21:00
  发帖心情 Post By:2019/4/2 22:25:00 [显示全部帖子]

图片点击可在新窗口打开查看为了审10行物资的采购计划,还要把采购清单的几千上万行先加载进来,这个……

当然,也不排除一次审的采购计划会有几千行的情况

[此贴子已经被作者于2019/4/2 22:25:19编辑过]

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


加好友 发短信
等级:九尾狐 帖子:2216 积分:18225 威望:0 精华:0 注册:2011/11/26 20:21:00
  发帖心情 Post By:2019/4/3 10:55:00 [显示全部帖子]

不是这个意思。

每个项目有一个物资采购目录A(它的明细行数很多,非常多),即:项目名称、物资编号、名称、规格、单位
采购计划是一个主子表结构。
主表X是项目名称、计划编号、编制日期
子表Y是XID、物资ID、采购数量、单价、金额。

这里物资ID就是从A中取的。
每次的计划明细都要从A中选择过来,然后填写数量、单价等信息。

公司可能一天要审多个项目的采购计划。
要么是审A项目的时候,把A项目的物资目录A加载进来,然后计划明细中的物资ID对应的编号、名称、规格、单位都用表达式列(因为采购目录行数多,加载耗时),而且公司不仅要审多个项目的,在不同项目间切换时,就要不断加载不同项目的采购目录,比较耗时
要么是审A项目的时候,子表Y用临时列,查找相应的物资ID,给编号、名称、规格、单位列赋值(如果有的计划明细项很多,多列赋值效率就比较低)


或者在加载物资目录的时候,增加一个条件,只加载某一个计划明细所包含的物资目录,这样行数会少很多。
[此贴子已经被作者于2019/4/3 11:02:19编辑过]

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


加好友 发短信
等级:九尾狐 帖子:2216 积分:18225 威望:0 精华:0 注册:2011/11/26 20:21:00
  发帖心情 Post By:2019/4/3 11:41:00 [显示全部帖子]

Dim x As String = DataTables("采购明细").SQLGetComboListString("ID","项目 = 'A项目' and 采购单号 = 'CG001'")
Dim y As String = "'" & x.Replace("|","','") & "'"

DataTables("采购目录").LoadFilter = "项目 = 'A项目' and 物资ID in (" & y & ")"
DataTables("采购目录").Load

当y过长的时候,运行时报错:
加载[采购目录]失败!
详细错误信息:
查询过于复杂。


如何正确使用加载条件呢?

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


加好友 发短信
等级:九尾狐 帖子:2216 积分:18225 威望:0 精华:0 注册:2011/11/26 20:21:00
  发帖心情 Post By:2019/4/6 13:32:00 [显示全部帖子]

看了一下exists和in的一些用法,如果用这样,是否效率会高一些。因为采购目录虽然多,但比起采购明细很大的数据行来说,算是小表了吧。
[此贴子已经被作者于2019/4/6 13:39:16编辑过]

 回到顶部