以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.com/bbs/index.asp)
--  专家坐堂  (http://foxtable.com/bbs/list.asp?boardid=2)
----  如何让窗口SQL表可编辑?  (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=58808)

--  作者:石四
--  发布时间:2014/10/24 11:22:00
--  如何让窗口SQL表可编辑?

数据表默认是可以编辑和保存的。
查询表默认不能编辑,通过将其AllowEdit属性设置为True,可以编辑查询结果,但不能保存编辑结果。

示例一

DataTables("表A").Fill("Select * From {订单}", False)

执行上述代码后,表A将显示订单表的数据,尽管其名称还是表A。

如果将IsQuery参数设置为True,将生成查询表:

DataTables("表A").Fill("Select * From {订单}", True)

 

 

Dim Filter As String

With e.Form.Controls("bm")

    Filter = "部门 = \'" & .Value & "\'"

End With

Tables("部门考勤_Table1").Fill("Select [_Identify],[部门],[员工编号],[姓名] From {员工信息} Where " & Filter,"sl", False)

 

With DataTables("部门考勤_Table1").DataCols   

    .Add("考勤日期",Gettype(Date),"","考勤日期")

    .Add("工作日",Gettype(String),"","工作日")

    .Add("出勤",Gettype(Double),"","出勤")

    .Add("请假",Gettype(Double),"","请假")

    .Add("考勤人",Gettype(String),"","考勤人")

    .Add("备注",Gettype(String),"","备注")

End With

 

Dim Lb1 As WinForm.DateTimePicker

Lb1 = e.Form.Controls("日期")

Dim cmb1 As WinForm.TextBox

cmb1 = e.form.Controls("星期")

cmb1.Value = WeekDayName(Lb1.Value.DayOfWeek)

 

For Each r As Row In Tables("部门考勤_Table1").Rows

    r("考勤日期") = lb1.Value

    r("工作日") = cmb1.Value

Next

 

编辑不了呀,怎么办?   详见附件窗口 部门考勤

 下载信息  [文件大小:   下载次数: ]
点击浏览该文件:事例.zip


--  作者:有点甜
--  发布时间:2014/10/24 11:26:00
--  
Tables("部门考勤_Table1").AllowEdit = True
--  作者:Bin
--  发布时间:2014/10/24 11:29:00
--  
输入代码  Tables("部门考勤_Table1").AllowEdit=True
--  作者:石四
--  发布时间:2014/10/24 11:37:00
--  
OK!
--  作者:石四
--  发布时间:2014/10/24 11:44:00
--  
部门控件是多选组合框,现在单选有效,多选可办得到吗?是不是很复杂?
--  作者:有点甜
--  发布时间:2014/10/24 11:49:00
--  

 多选就这样改

 

Dim Filter As String

With e.Form.Controls("bm")

    Filter = "部门 in (\'" & .Value.replace(",", "\',\'") & "\')"

End With

 


--  作者:石四
--  发布时间:2014/10/24 11:58:00
--  
以下是引用有点甜在2014-10-24 11:49:00的发言:

 多选就这样改

 

Dim Filter As String

With e.Form.Controls("bm")

    Filter = "部门 in (\'" & .Value.replace(",", "\',\'") & "\')"

End With

 

OK!这下可方便多了.


--  作者:石四
--  发布时间:2014/10/28 9:38:00
--  

Dim a As Table = Tables("部门考勤_Table1")
Dim b As Table = Tables("部门考勤")
For r As Integer = 0 To a.Rows.Count - 1
    b.AddNew
       b.Current("部门") = a.Rows(r)("部门")
    b.Current("员工编号") = a.Rows(r)("员工编号")
    b.Current("姓名") = a.Rows(r)("姓名")
    b.Current("考勤日期") = a.Rows(r)("考勤日期")
    b.Current("工作日") = a.Rows(r)("工作日")
 b.Current("出勤") = a.Rows(r)("出勤")
    b.Current("请假") = a.Rows(r)("请假")
    b.Current("备注") = a.Rows(r)("备注")
    b.Current("考勤人") = user.name
Next
For r As Integer = a.rows.Count - 1 To 0 Step -1
   Next

 

保存后需复原窗口表,怎么写代码?翻了帮助文件,没找到.


--  作者:有点甜
--  发布时间:2014/10/28 9:39:00
--  

 你说的复原是什么意思?

 

 想原表得到最新的数据?你只需要重新load一次原表


--  作者:石四
--  发布时间:2014/10/28 9:42:00
--  

就是让窗口表回到初始状态,啥都没有,包括表头