Foxtable(狐表)用户栏目专家坐堂 → [求助]关于DataTable与Table数具写入的疑问


  共有20750人关注过本帖树形打印复制链接

主题:[求助]关于DataTable与Table数具写入的疑问

帅哥哟,离线,有人找我吗?
狐哥
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:三尾狐 帖子:719 积分:5181 威望:0 精华:1 注册:2008/9/24 10:41:00
[求助]关于DataTable与Table数具写入的疑问  发帖心情 Post By:2009/2/3 13:55:00 [只看该作者]



各位老师,帮我看看表中:业务与供应商的子窗口中的;DATALIST1的DoubleclickR  的公式

Dim dst As WinForm.DataList = e.Form.Controls("DataList1")

if dst.count>0 then
Dim dr as DataRow = dst.Current '获得选定行
Maintable = Tables("业务录入")
Dim r As Row = Tables("业务录入").Rows.AddNew() '增加一行
r("日期") = date.today
r("ID")=Tables("业务录入").Compute("max(ID)","[日期] = #" & r("日期") & "#")+1
r("工作号")="TTSE" & FORMAT(r("日期"),"yyMMdd") & format(r("id"),"00")
r("客户") = dr("客户简称")
e.form.close()
Dim frm As WinForm.Form
frm = Forms("单证")
frm.Open()
frm.Controls("TabControl1").SelectedIndex = 1
frm.Controls("TabControl2").SelectedIndex = 0
end if

如上代码能正常操作,也能新增单号。再请看如下代码:
 

Dim dst As WinForm.DataList = e.Form.Controls("DataList1")

if dst.count>0 then
Dim dr as DataRow = dst.Current '
获得选定行

If Tables("业务录入").Focus Then '将输入焦点移到业务录入表

Tables("业务录入").StartEditing '如果成功,则开始编辑.
Dim r As Row = Tables("
业务录入").Rows.AddNew() '增加一行
r("
日期") = date.today
r("ID")=Tables("
业务录入").Compute("max(ID)","[日期] = #" & r("日期") & "#")+1
r("
工作号")="TTSE" & FORMAT(r("日期"),"yyMMdd") & format(r("id"),"00")
r("
客户") = dr("客户简称")
e.form.close()
Dim frm As WinForm.Form
frm = Forms("
单证")
frm.Open()
frm.Controls("TabControl1").SelectedIndex = 1
frm.Controls("TabControl2").SelectedIndex = 0
end if

END IF




疑问:
1、第二个代码却不能运行,我焦点已在“业务录入”表中了呀。
2、我如用第一个代码,是在TABLE中编辑的,因编号是唯一的,如在局域网中多人操作,在table中的操作是不能及时保存到DATATABLE中的,DataTables("业务录入").Load()不知加在哪一段代码后。----一生成编号,则将编号写入DATATABLE中。
3、第一个代码虽能运行,但我不知是否严谨。望老师能更正。

 下载信息  [文件大小:   下载次数: ]
点击浏览该文件:cargo.table

[此贴子已经被作者于2009-2-3 14:00:51编辑过]

 回到顶部
帅哥哟,离线,有人找我吗?
狐狸爸爸
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:管理员 帖子:47497 积分:251403 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By:2009/2/3 15:24:00 [只看该作者]

1、下面的代码有问题,此时焦点在窗口Forms("客户与供应商"),并不是Tables("业务收入")

If
Tables("业务录入").Focus Then '将输入焦点移到业务录入表

Tables("业务录入").StartEditing '如果成功,则开始编辑.

2、在Table中增加行,和在DataTable中增加行是一回事,不会有不同的,Table的AddNew实际上就是调用DataTable的AddNew,只是Table的AddNew加上了自动定位到新增行的功能。

3、不管怎么操作,你始终无法保证编码的唯一性,只有_identify,才真正唯一。


 回到顶部