以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.com/bbs/index.asp)
--  专家坐堂  (http://foxtable.com/bbs/list.asp?boardid=2)
----  窗口事件命令问题  (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=71773)

--  作者:bestorange
--  发布时间:2015/7/17 18:07:00
--  窗口事件命令问题


图片点击可在新窗口打开查看此主题相关图片如下:qq图片20150717180235.png
图片点击可在新窗口打开查看
上图为一格模式窗口,如果想选择好报名课程和选定课时数 课程学费的文本框中知道现实学费金额。

 

是要在窗口的事件命令编辑吗?还是在某一控件?表达式的代入格式是怎样的??


--  作者:bestorange
--  发布时间:2015/7/17 18:10:00
--  

窗口绑定的表中  如果是原有数据 我直接就增加表达式列 就是了

如果是先增加学员数据,也一样吗?还是要在窗口中编辑?


--  作者:大红袍
--  发布时间:2015/7/17 18:15:00
--  

 

http://www.foxtable.com/help/topics/1451.htm

 


--  作者:bestorange
--  发布时间:2015/7/17 18:22:00
--  

编辑窗口事件就可以了吗?还是要在绑定表编辑?


--  作者:bestorange
--  发布时间:2015/7/17 19:05:00
--  


图片点击可在新窗口打开查看此主题相关图片如下:51.png
图片点击可在新窗口打开查看
是不是直接可以编辑表的全局事件

如果课时数发生变化  学费金额= 课程内容的单价X课时数 ?


--  作者:狐狸爸爸
--  发布时间:2015/7/18 10:37:00
--  

 既然是绑定到列了,那么这种计算和窗口无关,直接编写表事件即可。

这种查找符合条件的行,提取改行某列数据,进行计算或者赋值,我都帮你写过多次了。

花两个周末学一下置顶视频教程的三章:《编程基础》《基本类型》《事件编程》,,会让你的编程水平大大提高,效率提升百倍。

否则始终在同样的问题中转圈圈。


--  作者:bestorange
--  发布时间:2015/7/18 11:10:00
--  

If e.DataCol.Name = "课程" Then
    If e.NewValue Is Nothing Then
        e.DataRow("课时费") = Nothing
    Else
        Dim dr  As  DataRow
        dr =  DataTables("课类分类表").Find("科目 = \'" & ("课程") & "\'")
        If dr IsNot Nothing Then  \'
            e.DataRow("课时费") = dr("课时费")
        End  If
        dr("学费余额") = dr("课程") * dr("剩余课时")
    End  If
      
End If

 

这样吗?

[此贴子已经被作者于2015/7/18 11:12:24编辑过]

--  作者:狐狸爸爸
--  发布时间:2015/7/18 11:25:00
--  

呵呵, 你的业务逻辑只有你清楚的哦,我们只能从代码角度分析。

 

下面的代码有一些问题:

 

 dr =  DataTables("课类分类表").Find("科目 = \'" & ("课程") & "\'")

 

应该:

 

 dr =  DataTables("课类分类表").Find("科目 = \'" & e.DataRow("课程") & "\'")


--  作者:bestorange
--  发布时间:2015/7/18 11:49:00
--  

前面根据课程自动代入课时费OK了,后满根据课时费 X 课时数  代入学费余额这个 是我命令写错了吧?

If e.DataCol.Name = "课程" Then
    If e.NewValue Is Nothing Then
        e.DataRow("课时费") = Nothing
    Else
        Dim dr  As  DataRow
         dr =  DataTables("课类分类表").Find("科目 = \'" & e.DataRow("课程") & "\'")
        If dr IsNot Nothing Then
            e.DataRow("课时费") = dr("课时费")
        End  If
     
  If e.DataCol.Name = "剩余课时" Then
            e.DataRow("学费余额") = ("课时费") * ("剩余课时")
        End If
    End  If
   
End If

 


--  作者:jialihaha
--  发布时间:2015/7/18 11:54:00
--  
不会举一反三?
If e.DataCol.Name = "剩余课时" Then
            e.DataRow("学费余额") = dr("课时费") * dr("剩余课时")
End If
[此贴子已经被作者于2015/7/18 11:57:29编辑过]