以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  [求助]跨表下拉录入  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=126438)

--  作者:湛江智
--  发布时间:2018/10/21 23:09:00
--  [求助]跨表下拉录入

表A项目共由 流程1 接着到 流程2  再到 流程3  来完成

 想实现在窗口中录入 流程1_负责人 从表B的流程部门列中值对于  部门1 的负责人中下来选择。如果部门1的负责人已经有未完成的流程1项目,下拉就不显示他的名字,求助


具体描述:

小王,因为已完成,可以安排任务,所以下来显示

小李,小张,因为未完成任务,暂不安排任务,所以下拉不显示

小赵,因为从未安排任务,可以安排任务,所以下来显示


在窗口中,流程1_负责人,下拉,只显示 小王  和 小赵,求助


 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:任务分配.foxdb

[此贴子已经被作者于2018/10/21 23:27:34编辑过]

--  作者:有点甜
--  发布时间:2018/10/21 23:28:00
--  

Enter事件,写代码

 

Dim str = DataTables("表A").GetComboListString("流程1_负责人", "流程1_完成情况 = \'未完成\'")
str = str.replace(",", "|").replace("|", "\',\'")
e.sender.ComboList = DataTables("表B").GetComboListString("负责人", "流程部门=\'部门1\' and 负责人 not in (\'" & str & "\')")


--  作者:湛江智
--  发布时间:2018/10/22 9:08:00
--  回复:(有点甜)Enter事件,写代码 Dim str...
大师, 如果要统计表A 流程1 各负责人,未完成项目的数量,并按降序输出,下面代码怎么修改呢?

Dim str = DataTables("表A").GetComboListString("流程1_负责人", "流程1_完成情况 = \'未完成\'")
str = str.replace(",", "|").replace("|", "\',\'")
Dim s As String
s = DataTables("表B").GetComboListString("负责人", "流程部门=\'部门1\' and 负责人 not in (\'" & str & "\')")
Output.Show(s)

--  作者:有点甜
--  发布时间:2018/10/22 9:22:00
--  

Dim xms = DataTables("表B").GetValues("负责人", "流程部门=\'部门1\'")
Dim ary1 = xms.Toarray
Dim ary2(ary1.length-1) As String
For i As Integer = 0 To xms.count-1
    Dim xm = xms(i)
    Dim count = DataTables("表A").Compute("count(流程1_完成情况)", "流程1_完成情况 = \'未完成\' and 流程1_负责人 like \'%" & xm & "%\'")
    ary2(i) = format(count, "00")
Next
array.sort(ary2, ary1)
array.Reverse(ary1)
array.Reverse(ary2)
output.show(String.join("|", ary1))
output.show(String.join("|", ary2))


--  作者:湛江智
--  发布时间:2018/10/22 10:06:00
--  回复:(有点甜)Dim xms = DataTables("表B").GetVal...
 大师,查询结果要录入 临时表,下面代码怎么修改呢?

Dim xms = DataTables("表B").GetValues("负责人", "流程部门=\'部门1\'")
Dim ary1 = xms.Toarray
Dim ary2(ary1.length-1) As String
For i As Integer = 0 To xms.count-1
    Dim xm = xms(i)
    Dim count = DataTables("表A").Compute("count(流程1_完成情况)", "流程1_完成情况 = \'未完成\' and 流程1_负责人 like \'%" & xm & "%\'")
    ary2(i) = format(count, "00")
Next
array.sort(ary2, ary1)
array.Reverse(ary1)
array.Reverse(ary2)
\'output.show(String.join("|", ary1))
\'output.show(String.join("|", ary2))

Dim dtb As New DataTableBuilder("统计")
dtb.AddDef("流程1_负责人", Gettype(String), 132)
dtb.AddDef("流程1_未完成数量", Gettype(String), 132)
dtb.Build()


    Dim dr1 As DataRow = DataTables("统计").AddNew()
    dr1("流程1_负责人") = ary1
    dr1("流程1_未完成数量") = ary2

MainTable= Tables("统计")

--  作者:有点甜
--  发布时间:2018/10/22 10:27:00
--  

Dim xms = DataTables("表B").GetValues("负责人", "流程部门=\'部门1\'")
Dim ary1 = xms.Toarray
Dim ary2(ary1.length-1) As Integer
For i As Integer = 0 To xms.count-1
    Dim xm = xms(i)
    Dim count = DataTables("表A").Compute("count(流程1_完成情况)", "流程1_完成情况 = \'未完成\' and 流程1_负责人 like \'%" & xm & "%\'")
    ary2(i) = count
Next
array.sort(ary2, ary1)

Dim dtb As New DataTableBuilder("统计")
dtb.AddDef("流程1_负责人", Gettype(String), 132)
dtb.AddDef("流程1_未完成数量", Gettype(Integer))
dtb.Build()

For i As Integer = ary1.length-1 To 0 Step -1
    Dim dr1 As DataRow = DataTables("统计").AddNew()
    dr1("流程1_负责人") = ary1(i)
    dr1("流程1_未完成数量") = ary2(i)
Next
MainTable= Tables("统计")


--  作者:湛江智
--  发布时间:2018/10/22 17:09:00
--  回复:(有点甜)Dim xms = DataTables("表B").GetVal...

大师,如果窗口文本框显示 可以安排任务的人员,下面代码怎么修改? 谢谢

 

\'可以安排任务的人员
Dim str2 = DataTables("室内设计项目").GetComboListString("深化设计完成时间节点_负责人", "深化设计完成时间节点_全套施工图完成时间_完成否 = \'未完成\'")
str2 = str2.replace(",", " ").replace("|", "\' \'")
e.Form.Controls("Label3").Text = DataTables("员工资料").GetValues("姓名", "分配任务组别=\'部门1\' and 姓名 not in  (\'" & str2 & "\')")

 

 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:文字显示不重复值结果.foxdb

[此贴子已经被作者于2018/10/22 17:47:30编辑过]

--  作者:有点甜
--  发布时间:2018/10/22 17:36:00
--  
\'空闲人员统计
Dim str2 = DataTables("室内设计项目").GetComboListString("深化设计完成时间节点_负责人", "深化设计完成时间节点_全套施工图完成时间_完成否 = \'未完成\'")
str2 = str2.replace(",", "|").replace("|", "\',\'")
e.Form.Controls("Label3").Text = DataTables("员工资料").GetComboListString("姓名", "分配任务组别=\'部门1\' and 姓名 in (\'" & str2 & "\')")

--  作者:湛江智
--  发布时间:2018/10/23 16:53:00
--  回复:(有点甜)Dim xms = DataTables("表B").GetVal...
 大师,6楼代码,如果 流程1_完成情况 为空,就不统计数量,下面这个地方怎么修改呢?  谢谢哈

Dim xms = DataTables("表B").GetValues("负责人", "流程部门=\'部门1\'")
Dim ary1 = xms.Toarray
Dim ary2(ary1.length-1) As Integer
For i As Integer = 0 To xms.count-1
    Dim xm = xms(i)
    \'Dim count = DataTables("表A").Compute("count(流程1_完成情况)", "流程1_完成情况 = \'未完成\' and 流程1_负责人 like \'%" & xm & "%\'")
    Dim count = DataTables("表A").Compute("count(流程1_完成情况)", "(流程1_完成情况 = \'未完成\' or 流程1_完成情况 Is null) and 流程1_负责人 like \'%" & xm & "%\'")
    ary2(i) = count
Next
array.sort(ary2, ary1)

Dim dtb As New DataTableBuilder("统计")
dtb.AddDef("流程1_负责人", Gettype(String), 132)
dtb.AddDef("流程1_未完成数量", Gettype(Integer))
dtb.Build()

For i As Integer = ary1.length-1 To 0 Step -1
    Dim dr1 As DataRow = DataTables("统计").AddNew()
    dr1("流程1_负责人") = ary1(i)
    dr1("流程1_未完成数量") = ary2(i)
Next
MainTable= Tables("统计")

--  作者:有点甜
--  发布时间:2018/10/23 16:56:00
--  

    Dim count = DataTables("表A").Compute("count(流程1_负责人)", "(流程1_完成情况 = \'未完成\' or 流程1_完成情况 Is null) and 流程1_负责人 like \'%" & xm & "%\'")