以文本方式查看主题
- Foxtable(狐表) (http://foxtable.net/bbs/index.asp)
-- 专家坐堂 (http://foxtable.net/bbs/list.asp?boardid=2)
---- 跨表查询不改变被查表状态 (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=79533)
|
-- 作者:sf020cf
-- 发布时间:2016/1/4 14:21:00
-- 跨表查询不改变被查表状态
现有车辆信息表一张 在表中有车辆状态一列 当前表事件
If e.DataCol.Name = "车辆状态"
Dim dr As DataRow dr = DataTables("配载订单").Find("车牌 = \'" & e.DataRow("车牌") & "\'" ) If dr IsNot Nothing \'如果找到, 则设置各列内容 e.DataRow("车辆状态")= "车辆运营中" Else e.DataRow("车辆状态")= "车辆闲置中" End If End If
这样在目录树中的车辆状态只会按配载订单当前的信息显示
我想这样在车辆信息窗口加入一个按钮 可以动态选择按哪一天的配载订单来 代码事件是这样
Dim sd As WinForm.DateTimePicker Dim ed As WinForm.DateTimePicker sd = e.Form.Controls("DateTimePicker1") ed = e.Form.Controls("DateTimePicker2") \'Dim cpbh As String = e.Form.Controls("项目").Value
Dim filter As String = "1=1" If sd.Value <> Nothing Then filter &= " And 出车日期 >= \'" & sd.value & "\'" End If If ed.Value <> Nothing Then filter &= " And 出车日期 <= \'" & ed.value & "\'" End If \'If cpbh <> "" Then \'Dim temp As String = "1=2" \'For Each s As String In cpbh.split("/") \'temp &= " or [项目] Like \'%" & s & "%\' " \'Next \' filter &= " And (" & temp & ")" \' End If If ed.value = Nothing AndAlso sd.value = Nothing Then filter &= " And 出车日期 = \'" & Date.today & "\'" End If DataTables("配载订单").LoadFilter=filter DataTables("配载订单").load DataTables("车辆信息").DataCols("车辆状态").RaiseDataColChanged()
这样是可以实现动态选择日期筛选 但是在另外一个界面的配载订单也会跟着转到那一天的数据 怎样才能实现既可以跨表查询又不改变被查表状态
|
-- 作者:大红袍
-- 发布时间:2016/1/4 14:25:00
--
你为什么要加这句重置列的代码?DataTables("车辆信息").DataCols("车辆状态").RaiseDataColChanged()
去掉不行?
|
-- 作者:sf020cf
-- 发布时间:2016/1/4 18:04:00
--
我以为一定要重置该列才能得到最新数据 这个节点统计代码怎么写 比如 所有订单 比如车辆运营中(有多少台车在运营)
|
-- 作者:大红袍
-- 发布时间:2016/1/4 18:06:00
--
参考
http://www.foxtable.com/help/topics/0393.htm
http://www.foxtable.com/help/topics/2741.htm
|
-- 作者:sf020cf
-- 发布时间:2016/1/5 11:21:00
--
dt = b.Build(False) \'参数设置为False,生成一个临时表,不在主界面显示 \'然后根据统计表生成目录树 Dim trv As WinForm.TreeView = e.Form.Controls("TreeView1") trv.BuildTree(dt, "车辆状态|车型|车牌") trv.StopRedraw For Each nd As WinForm.TreeNode In trv.AllNodes Dim clzt As String = nd.DataRow("车辆状态") Dim cx As String = nd.DataRow("车型") Dim cp As String = nd.DataRow("车牌") Select Case nd.Level Case 0 nd.Text = nd.text & "(" & dt.Compute("Count(订单数)","车辆状态") & "条)"
Case 1 nd.Text = nd.text &"(" & dt.Compute("Count(订单数)","车型") & "条)" Case 2 nd.Text = nd.text & "(" & dt.Compute("Count(车牌)" ) & "条)" \' Case 3 \' nd.Text = nd.text & "(" & nd.DataRow("订单数") & "条)" End Select Next trv.Nodes.Insert("所有车辆","所有车辆(" & dt.Compute("Sum(订单数)") & "条)",0) trv.ResumeRedraw \'Dim trv As WinForm.TreeView = e.Form.Controls("TreeView1") \'trv.BuildTree("车辆信息", "车辆状态|车型|车牌") \'trv.Nodes.Insert("所有车辆",0)
弄来弄去 还是一头雾水 说车辆状态不是布尔值类型
|
-- 作者:大红袍
-- 发布时间:2016/1/5 11:23:00
--
比如,其余类似
nd.Text = nd.text & "(" & dt.Compute("Count(订单数)","车辆状态 = \'" & clzt & "\'") & "条)"
|
-- 作者:sf020cf
-- 发布时间:2016/1/5 13:23:00
--
Dim b As New GroupTableBuilder("统计表1",DataTables("车辆信息")) b.Groups.AddDef("车辆状态") b.Groups.AddDef("车型") b.Groups.AddDef("车牌") b.Totals.AddDef("车辆状态",AggregateEnum.Count,"订单数") \'根据客户列来统计记录数,也就是订单数 dt = b.Build(False) \'参数设置为False,生成一个临时表,不在主界面显示 \'然后根据统计表生成目录树 Dim trv As WinForm.TreeView = e.Form.Controls("TreeView1") trv.BuildTree(dt, "车辆状态|车型|车牌") trv.StopRedraw For Each nd As WinForm.TreeNode In trv.AllNodes Dim clzt As String = nd.DataRow("车辆状态") Dim cx As String = nd.DataRow("车型") Dim cp As String = nd.DataRow("车牌") Select Case nd.Level Case 0 nd.Text = nd.text & "(" & dt.Compute("Count(订单数)","车辆状态 = \'" & clzt & "\'") & "条)"
Case 1 nd.Text = nd.text &"(" & dt.Compute("Count(订单数)","车辆状态 = \'" & clzt & "\'"and "车型 = \'" & cx & "\'") & "条)" Case 2 nd.Text = nd.text & "(" & dt.Compute("Count(车牌数)" ) & "条)" \' Case 3 \' nd.Text = nd.text & "(" & nd.DataRow("订单数") & "条)" End Select Next trv.Nodes.Insert("所有车辆","所有车辆(" & dt.Compute("Sum(订单数)") & "条)",0) trv.ResumeRedraw
.NET Framework 版本:2.0.50727.5485 Foxtable 版本:2015.12.22.1 错误所在事件:窗口,车辆信息,AfterLoad 详细错误信息: 从字符串“车辆状态 = \'车辆闲置中\'”到类型“Long”的转换无效。 输入字符串的格式不正确。
|
-- 作者:大红袍
-- 发布时间:2016/1/5 14:24:00
--
nd.Text = nd.text &"(" & dt.Compute("Count(订单数)","车辆状态 = \'" & clzt & "\' and 车型 = \'" & cx & "\'") & "条)"
|
-- 作者:sf020cf
-- 发布时间:2016/1/5 15:00:00
--
此主题相关图片如下:2016-01-05_150309.jpg
|
-- 作者:sf020cf
-- 发布时间:2016/1/5 15:02:00
--
是临时表没统计到车型吗? 但是false之下可以找到对应的车牌
|