以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.com/bbs/index.asp)
--  专家坐堂  (http://foxtable.com/bbs/list.asp?boardid=2)
----  请问 'e' 需要怎样声明?  (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=15414)

--  作者:gzdw
--  发布时间:2011/12/24 14:09:00
--  请问 'e' 需要怎样声明?

我在练习帮助说明中关于“DataRowAdding”的操作时,在命令窗口运行

If e. DataTable .DataRows.Count = 0 Then \'如果是一个空表
   
Return \'那么返回
End
If

 

时出错了,提示为:编译错误:Name \'e\' is not declared。

这个\'e\'不是直接能引用吗?还要怎样声明啊?


--  作者:blackzhu
--  发布时间:2011/12/24 14:14:00
--  

e参数不能用于命令窗口,代表本表,本窗口的意思


--  作者:czy
--  发布时间:2011/12/24 14:29:00
--  

命令窗口只能这样

 

If CurrentTable.Rows.Count = 0 Then \'如果是一个空表
    Return \'那么返回
End If


--  作者:gzdw
--  发布时间:2011/12/24 14:33:00
--  

我把“DataRowAdding”的例子四,拷贝到窗口的一个按钮代码,想通过按钮来执行,还是出错了。

以下是代码

 

If e.DataTable.DataRows.Count = 0 Then \'如果是一个空表
    Return \'那么返回
End If
Dim ColNames As String() = {"日期","客户","雇员"} \'定义一个数组,保存复制列的名称
Dim dr As DataRow = e.DataTable.DataRows(e.DataTable.DataRows.Count - 1) \'获得最后一行
For Each ColName As String in ColNames
    e.DataRow(ColName) = dr(ColName) \'将最后一行的内容复制到新增行中.
Next

保存时,出现:

编译错误:\'DataTable\' is  not a member of \'ControlEventArgs\'

[此贴子已经被作者于2011-12-24 14:34:45编辑过]

--  作者:狐狸爸爸
--  发布时间:2011/12/25 9:57:00
--  

不同的事件,有不同的e参数,你应该好好看看事件编程这一章。

 

例如DataColChanged的E参数有:

 

DataTable:返回发生数据更改的数据表。
DataRow: 返回发生数据更改的数据行。
DataCol: 返回发生数据更改的数据列。
NewValue: Object类型,表示新的值。
OldValue: Object类型,表示旧的值

 

窗口按钮的Clil事件e参数有:

 

Sender:返回触发事件的控件
Form: 返回控件所在的窗口

 

窗口按钮没有e.DataTable这样的用法,因为他们有DataTable这个e参数,你想一下,按钮和没有任何关系的,e.DaTable表示什么表?

 

[此贴子已经被作者于2011-12-25 9:57:18编辑过]

--  作者:gzdw
--  发布时间:2011/12/25 19:39:00
--  

 后来用 Tables("客户").  代替e. 调试通过了

对foxtable有更多的理解,我觉得下面一句效率很高。

For Each ColName As String In ColNames
Next

 

修改后代码为:

Dim ColNames As String () = { "日期" , "客户" , "雇员" } \' 定义一个数组,保存复制列的名称
Dim r As Row = Tables("客户").Rows (Tables("客户").Rows.Count - 1) \'获得最后一行
Tables("客户").AddNew()
For Each ColName As String In ColNames
  Tables("客户").Rows(Tables("客户").Rows.Count - 1)(ColName) = r(ColName) \'将最后一行的内容复制到新增行中.
Next

 
[此贴子已经被作者于2011-12-25 19:52:35编辑过]