以文本方式查看主题
- 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("培训科目") & "\'"
|