以文本方式查看主题 - Foxtable(狐表) (http://foxtable.net/bbs/index.asp) -- 专家坐堂 (http://foxtable.net/bbs/list.asp?boardid=2) ---- 表格中,选择第一列,自动确定第二列的值的可选范围,并且第三列选择完后,自动确定第四列的值,该怎么写? (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=80972) |
-- 作者:ycwk -- 发布时间:2016/2/15 12:02:00 -- 表格中,选择第一列,自动确定第二列的值的可选范围,并且第三列选择完后,自动确定第四列的值,该怎么写? 下面是写在表格中的prepareEdit事件中, 但是不知道自动确定第四列的值(第四列非下拉框,第三列选择完毕后,第四列的值是唯一的)该怎么写,写在哪个事件中,请指教。 另外: 有没有更简单的办法根据第一列确定第二列的值? If e.IsFocusCell Then \'如果是焦点单元格 If e.Col.Name = "一级分类" Then \'如果正在编辑的是一级分类 e.Col.Combolist = DataTables("问题类型表").SQLGetComboListString("一级分类" ) End If End If \'列出二级分类 If e.IsFocusCell Then \'如果是焦点单元格 If e.Col.Name = "二级分类" Then \'如果正在编辑的是二级分类 e.Col.Combolist = DataTables("问题类型表").SQLGetComboListString("二级分类", "[一级分类] = \'" & e.Row("一级分类") & "\'") End If End If \'列出三级分类 If e.IsFocusCell Then \'如果是焦点单元格 If e.Col.Name = "三级分类" Then \'如果正在编辑的是三级分类 e.Col.Combolist = DataTables("问题类型表").SQLGetComboListString("三级分类", "[一级分类] = \'" & e.Row("一级分类") & "\' And [二级分类]=\'" &e.Row("二级分类")&"\'" ) End If End If
|
-- 作者:大红袍 -- 发布时间:2016/2/15 12:05:00 -- datacolchanged事件
Select Case e.DataCol.Name case "一级分类", "二级分类", "三级分类" \'用sqlFind查找对应的值 End Select
参考
http://www.foxtable.com/help/topics/2916.htm
|
-- 作者:ycwk -- 发布时间:2016/2/15 14:50:00 -- 我刚开始也想过用sqlfind ,但是貌似sqlfind的结果只能查找一整行,不能查找某行中的某个字段吧? 再就是我的第四列希望在选择完前三列后自动填入,而不是用sqlgetcomboliststring得到一个下拉框,请问该怎么做? [此贴子已经被作者于2016/2/15 14:52:13编辑过]
|
-- 作者:大红袍 -- 发布时间:2016/2/15 14:52:00 -- 查到某行,取哪一个值都可以。看2楼例子
e.DataRow("第四列") = 某行("列名") |
-- 作者:ycwk -- 发布时间:2016/2/15 15:36:00 -- 我知道可以用e.DataRow("第四列") = 某行("列名") ,但是即使放在表的datacolchanged事件中,第四列的值仍然需要点一下才能出来。这个能不能改进下? \'\'\'\'\'\'\'\'\'\'\'当选择完三级分类后,自动判断 责任人 If e.DataCol.Name = "三级分类" Then \'如果正在编辑的是三级分类 Dim dr As DataRow dr=DataTables("问题类型表").SQLFind("[一级分类] = \'" & e.DataRow("一级分类") & "\' And [二级分类]=\'" &e.DataRow("二级分类")&"\' And [三级分类]=\'"& e.DataRow("三级分类") &"\'" ) e.DataRow("计算机中心责任人") =dr("责任人") End If |
-- 作者:大红袍 -- 发布时间:2016/2/15 15:38:00 -- 那就去写ChangeEdit事件
If e.Col.Name = "三级分类" Then \'如果正在编辑的是三级分类 |