以文本方式查看主题 - Foxtable(狐表) (http://foxtable.com/bbs/index.asp) -- 专家坐堂 (http://foxtable.com/bbs/list.asp?boardid=2) ---- 分享:优化窗口打开效率的多表查询实例 (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=42594) |
||||
-- 作者:jiterp -- 发布时间:2013/11/16 14:50:00 -- 分享:优化窗口打开效率的多表查询实例 经过几天的捉摸,参照各位老师的指导,终于初步做出了我自己想要的效果,特意分享出来,感谢群里的热心的老师,同时也是与类似于我这样的新同学一起分享,相互增加点鼓励,和对狐表的无限期望. 界面截图: 项目文件:
设计思路: 1、SQL多表查询语句以WHERE条件限制数据加载。 2、借用唐兄的企业版自定义高级过滤实例,进行设置过滤条件,形成SQL过滤条件语句。 3、通过 Tables("窗口1_Table1").Fill("Select * From{表} Where [_Identify] Is Null","数据源","true) 加载过滤条件数据表格。
这样一来,找开窗体的速度就是秒级,然后依条件加载数据就看数据的多少来计,这样一来,用户就能接受了。 以上两个问题,完善了,我想后续所有的多表查询报表,操作起来就简单了。包括单表查询也可以这样不需要加载数据,打开窗口的效率就完美了,当然这是我的方法,我想应该还有更好的方法。 谢谢关注“求助:打开窗体效率慢有什么更好的优化方法? ”这个贴子的老师和所有的论坛同仁。 [此贴子已经被作者于2013-11-16 14:52:24编辑过]
|
||||
-- 作者:Bin -- 发布时间:2013/11/16 14:54:00 -- 顶. |
||||
-- 作者:Bin -- 发布时间:2013/11/16 14:56:00 -- 窗口打开速度挺快的呀. |
||||
-- 作者:狐狸爸爸 -- 发布时间:2013/11/16 16:44:00 -- 1、这个没有办法自动,只能写死代码,根据用户选择的列加上对应的表名。 2、参考: http://www.foxtable.com/help/topics/1921.htm
|
||||
-- 作者:jiterp -- 发布时间:2013/11/16 17:06:00 -- 以下是引用狐狸爸爸在2013-11-16 16:44:00的发言:
1、这个没有办法自动,只能写死代码,根据用户选择的列加上对应的表名。 2、参考: http://www.foxtable.com/help/topics/1921.htm
第一个用代码怎么写死?是不是写在以下代码中? Dim sql As Table Dim frm As winform.Form = e.Form Dim glType As String Dim slt As String = "SELECT 生产单号,A.数量 as 订单数量,物料编码," Dim wb As WinForm.TextBox = e.Form.Controls("文本") |
||||
-- 作者:狐狸爸爸 -- 发布时间:2013/11/16 17:08:00 -- 是的,就是在代码中判断:
Dim nm as string = "列名" select case nm case "金额","数量" nm= "订单." & nm case "规格","型号" nm= "产品." & nm end if |
||||
-- 作者:lsy -- 发布时间:2013/11/16 17:12:00 -- 精神可嘉,顶帖鼓励。 [此贴子已经被作者于2013-11-16 17:12:01编辑过]
|
||||
-- 作者:jiterp -- 发布时间:2013/11/16 17:28:00 -- 1、过滤字段,因为是加载多表查询中的字段,这里会有问题,比如,例子中的ID,生成的查询条件文本是 ID = 161,这样是查不出来的,因为SQL语句中正确的应该是:A.ID =161 ,这个地方怎么转换过来,当选ID时,生成的文本应该是A.ID.我看了条件符的设置,比如"大于",生成的文本是">",使用的添加了一个代码字典,而我是直接调用表的字段,不知怎么去设置?
|
||||
-- 作者:狐狸爸爸 -- 发布时间:2013/11/16 17:34:00 -- 呵呵,这怎么可能啊,字符改了就改了,没改就没改,程序不会自做主张的,逐步调试分析一下你的代码吧: http://www.foxtable.com/help/topics/1485.htm
|
||||
-- 作者:jiterp -- 发布时间:2013/11/17 12:37:00 -- 我知道问题在哪儿了,谢谢狐爸。 |