以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  等红袍大师指点迷津  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=73989)

--  作者:bestorange
--  发布时间:2015/8/31 6:20:00
--  等红袍大师指点迷津


图片点击可在新窗口打开查看此主题相关图片如下:qq图片20150831062050.png
图片点击可在新窗口打开查看

图片点击可在新窗口打开查看此主题相关图片如下:qq图片20150831060511.png
图片点击可在新窗口打开查看


图片点击可在新窗口打开查看此主题相关图片如下:qq图片20150831061847.png
图片点击可在新窗口打开查看
之前在大师的指点下,完成了(图一)的窗口设计,可以通过(图一)的窗口一次录入多行内容新建课程(图三)

现在如果我想再增加一个窗口(图二)进行修改课程。

我该在窗口事件中如何编写代码,才能跟图一窗口相反,根据“课类分类表中:相同"培训科目"列下“开设课程”列的行数来判断("Combobox1").Text,来判断("Textbox" & i)和("Label" & i)显示的个数,并在("Textbox" & i).text总代入对应课时呢??

 

 



[此贴子已经被作者于2015/8/31 6:21:24编辑过]

--  作者:大红袍
--  发布时间:2015/8/31 9:19:00
--  

1、取得当前行的培训科目 Tables("表A").Current("培训科目")

 

2、取得所有记录 Dim drs As List(Of datarow) = DataTables("表A").Select("培训科目 = \'" & Tables("表A").Current("培训科目") & "\'")

 

3、循环drs,给控件赋值。


--  作者:bestorange
--  发布时间:2015/8/31 10:23:00
--  
以下是引用大红袍在2015/8/31 9:19:00的发言:

1、取得当前行的培训科目 Tables("表A").Current("培训科目")

 

2、取得所有记录 Dim drs As List(Of datarow) = DataTables("表A").Select("培训科目 = \'" & Tables("表A").Current("培训科目") & "\'")

 

3、循环drs,给控件赋值。

全部都是在窗口的事件命令里编写吗??

例如古筝下分"开设课程"分为六级,我怎样根据这6级判断Combobox1的值为6来显示("Textbox" & i)和("Label" & i)

然后("Textbox" & i).text自动代入 这6级的课时费?


--  作者:大红袍
--  发布时间:2015/8/31 10:24:00
--  

For i As Integer = 0 to drs.Count - 1

    e.Form.Controls("TextBox" & i+1).Text = drs(i)("课时费")

Next


--  作者:bestorange
--  发布时间:2015/8/31 10:52:00
--  
以下是引用大红袍在2015/8/31 10:24:00的发言:

For i As Integer = 0 to drs.Count - 1

    e.Form.Controls("TextBox" & i+1).Text = drs(i)("课时费")

Next

我现在afterload事件:

Tables("课类分类表").Filter = "培训科目 = \'" & Tables("课类分类表").Current("培训科目") & "\'"
Dim drs As List(Of DataRow) = DataTables("课类分类表").Select("培训科目 = \'" & Tables("课类分类表").Current("培训科目") & "\'")
For i As Integer = 0 To drs.Count - 1
e.Form.Controls("Combobox1").Text = i + 1
e.Form.Controls("TextBox" & i+1).Text = drs(i)("课时费")

Next

 

保存修改按钮的click事件如果用:

Dim dt As DataTable = DataTables("课类分类表")
Dim fl As String = e.Form.Controls("TextBox01").text
Dim km As String = e.Form.Controls("Textbox12").text
 
For i As Integer = 1 To e.Form.Controls("Combobox1").Text
    Dim nr As DataRow = dt.find("分类 = \'" & fl & "\' and 培训科目 = \'" & km & "\' and 科目 = \'" & CLNum(i) & "级" & "\'")
    If nr Is Nothing
       nr = dt.AddNew

        nr("分类") = fl
        nr("培训科目") = km
        nr("科目") = km & CLNum(i) & "级"
    End If
    nr("课时费") = e.Form.Controls("Textbox" & i).text
    nr.save
Next

e.Form.close

会重新多填充一遍,我是不是还要加多一个判断??

如果("Combobox1").Text不变,只保存("Textbox" & i).text的修改

如果("Combobox1").Text,则对应调整("Textbox" & i)和("Label" & i)之后,在保存("Textbox" & i).text的修改

 

这段代码该怎么写??


--  作者:大红袍
--  发布时间:2015/8/31 10:56:00
--  
Dim nr As DataRow = dt.find("分类 = \'" & fl & "\' and 培训科目 = \'" & km & "\' and 科目 = \'" & km & CLNum(i) & "级" & "\'")
--  作者:bestorange
--  发布时间:2015/8/31 11:03:00
--  


图片点击可在新窗口打开查看此主题相关图片如下:qq图片20150831110019.png
图片点击可在新窗口打开查看
还有啊。我现在窗口如上图

双击"培训科目"下的内容,打开修改课程的窗口,

课时双击后,原来表就会直接变成筛选状态,该怎么解决?

在保存修改后 加写取消筛选的代码吗???Tables("课类分类表").Filter = ""

[此贴子已经被作者于2015/8/31 11:08:16编辑过]

--  作者:大红袍
--  发布时间:2015/8/31 11:08:00
--  
不要设置tables()的filter属性。
--  作者:bestorange
--  发布时间:2015/8/31 11:12:00
--  
以下是引用大红袍在2015/8/31 11:08:00的发言:
不要设置tables()的filter属性。

是我窗口afterload命令

Tables("课类分类表").Filter = "培训科目 = \'" & Tables("课类分类表").Current("培训科目") & "\'"
Dim drs As List(Of DataRow) = DataTables("课类分类表").Select("培训科目 = \'" & Tables("课类分类表").Current("培训科目") & "\'")
For i As Integer = 0 To drs.Count - 1
e.Form.Controls("Combobox1").Text = i + 1
e.Form.Controls("TextBox" & i+1).Text = drs(i)("课时费")

Next

 

 

课时不写第一段,在表中双击单元格 打开的内容会是我想要修改的吗?


--  作者:大红袍
--  发布时间:2015/8/31 11:12:00
--  

删除

 

Tables("课类分类表").Filter = "培训科目 = \'" & Tables("课类分类表").Current("培训科目") & "\'"