以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  窗口表事件,请教  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=147412)

--  作者:zhy400137
--  发布时间:2020/3/16 13:05:00
--  窗口表事件,请教
\'生成排班临时表\'
Dim dtb As New DataTableBuilder("排班表")
dtb.AddDef("员工编码", Gettype(String))
dtb.AddDef("员工姓名", Gettype(String))
Dim c As Integer
For c = 1 To d
    dtb.AddDef(Format(c,"00"), Gettype(String))
Next
\'---------生成临时表并绑定到窗口表
Tables("员工任务分配_Table2").DataSource= dtb.Build()
Tables("排班表").Visible = False
\'开始增加日期和预分配方案到临时表里
With Tables("员工任务分配_Table2")
    .DataTable.DataRows.Clear
    \'先设置默认列宽
    .DefaultColWidth = 45
    Dim dr As Row
    Dim PerDr As DataRow \'查找员工姓名用的行
    For Index As Integer = 0 To PerList.Length - 1
        dr = .AddNew
        dr("员工编码")=PerList(Index)
        PerDr = dt.Find("员工编码=\'" & dr("员工编码") & "\'")
        If PerDr IsNot Nothing Then
            dr("员工姓名") = PerDr("员工姓名")
        End If
        For Each dc As Col In .Cols
            If dc.Name<> "员工编码" AndAlso dc.Name<>"员工姓名" Then
                dr(dc.Name) = "通班"
                dc.ComboList =  DataTables("排班类型系数").SQLGetComboListString("排班类型")
            Else
                \'将员工编码和员工姓名的列宽设大点
                dc.Width = 70
            End If
        Next
    Next
End With

老师请教,用以上代码生成了一个排班表,现在有个问题,生成表是可以用代码更改背景色和文字颜色,但
窗口表没有事件,使用者在更改排班类型后,单元格颜色如何动态改变呢?谢谢
另外,发现用dtb.Build()单元格才能有下拉,用dtb.BuildDataSource就没有
[此贴子已经被作者于2020/3/16 13:09:25编辑过]

--  作者:zhy400137
--  发布时间:2020/3/16 13:09:00
--  
用的表是副本表
--  作者:有点蓝
--  发布时间:2020/3/16 13:43:00
--  
窗口表Table2设置为sqltable,到窗口表事件处理即可

dtb.Build()会有问题的,dtb.BuildDataSource肯定也可以设置下拉:http://www.foxtable.com/webhelp/topics/0578.htm