Foxtable(狐表)用户栏目专家坐堂 → SQLTable表


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

主题:SQLTable表

美女呀,离线,留言给我吧!
lfz123
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:二尾狐 帖子:530 积分:4613 威望:0 精华:0 注册:2018/3/24 18:04:00
SQLTable表  发帖心情 Post By:2018/12/17 10:54:00 [只看该作者]

请教老师:我在窗口新建了一个表,有一个步骤没有出来结果,不知道设计思路是否正确?

此主题相关图片如下:表设计1.png
按此在新窗口浏览图片

窗口表事件 第二步

 

收款通知单_Table1_DataColChanged  这一步未实现

 

If e.DataCol.name = "工程fa piao消账码" Then

    Dim dr1 As DataRow = DataTables("销项fa piao").Find("工程fa piao消帐码 = '"& e.datarow("工程fa piao消帐码") & "'")

    e.DataRow("公司名称") = dr1("fa piao抬头")

    e.DataRow("工程名称") = dr1("工程名称")

    e.DataRow("领用人") = dr1("领用人")

    e.DataRow("fa piao日期") = dr1("fa piao日期")

    e.DataRow("fa piao金额") = DataTables("销项fa piao").compute("sum(价税合计)","工程fa piao消帐码 = '"& e.datarow("工程fa piao消帐码") & "'")

End If

 

窗口与控件事件  第一步

 

收款通知单_AfterLoad  这一步已经实现了

 

Dim dtb As New DataTableBuilder("B")

dtb.AddDef("公司名称", Gettype(String), 50)

dtb.AddDef("工程名称", Gettype(String), 50)

dtb.AddDef("领用人", Gettype(String), 50)

dtb.AddDef("fa piao日期", Gettype(Date))

dtb.AddDef("fa piao金额", Gettype(Double))

dtb.AddDef("收款日期", Gettype(Date))

dtb.AddDef("收款金额", Gettype(Double))

dtb.AddDef("未收款", Gettype(Double))

dtb.AddDef("工程fa piao消帐码", Gettype(String), 50)

Tables("收款通知单_table1").DataSource = dtb.BuildDataSource

Dim str As String = CurrentTable.current("工程fa piao消账码")

Dim r As Row = Tables("收款通知单_table1").addnew

r("工程fa piao消帐码") = str



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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2018/12/17 11:04:00 [只看该作者]

当使用 Tables("收款通知单_table1").DataSource  绑定表的时候,这个表是副本表,而不是sqltable表。

 

所以你的代码,需要写到【全局表事件】http://www.foxtable.com/webhelp/scr/0671.htm

 

而且需要开启全局表事件,如 Tables("收款通知单_table1").DataTable.GlobalHandler.DataColChanged = True


 回到顶部
美女呀,离线,留言给我吧!
lfz123
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:二尾狐 帖子:530 积分:4613 威望:0 精华:0 注册:2018/3/24 18:04:00
回复:(有点甜)当使用 Tables("收款通知单_table1")...  发帖心情 Post By:2018/12/17 11:36:00 [只看该作者]

Tables("收款通知单_table1").DataTable 的 name 是什么啊,我这个只是生成的一个临时表,并没有绑定到任何表啊?因为在全局表事件中写代码要判断表名

由于全局表事件对所有表有效,而不同的表可能有不同的处理逻辑,需要不同的事件代码,所以通常需要在全局表事件中判断表名:

Select Case e.DataTable.Name 
    Case 
"表A"
        
'针对表A的代码
    Case 
"表B"
        
'针对表B的代码
    Case 
"表C"
        
'针对表C的代码
End Select


 回到顶部
帅哥哟,离线,有人找我吗?
有点甜
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2018/12/17 12:10:00 [只看该作者]

1、你msgbox弹出看一下不就直达了?

 

2、一般叫做【收款通知单_table1】或者【表B】。


 回到顶部
美女呀,离线,留言给我吧!
lfz123
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:二尾狐 帖子:530 积分:4613 威望:0 精华:0 注册:2018/3/24 18:04:00
回复:(有点甜)1、你msgbox弹出看一下不就直达了?...  发帖心情 Post By:2018/12/17 14:10:00 [只看该作者]

我按照老师的要求做了,结果没出来,麻烦老师在帮我看下,我自己加了一个打开表的判断,不然老是有一个报错提示

图片点击可在新窗口打开查看此主题相关图片如下:表设计4.png
图片点击可在新窗口打开查看

图片点击可在新窗口打开查看此主题相关图片如下:表设计3.png
图片点击可在新窗口打开查看

图片点击可在新窗口打开查看此主题相关图片如下:表设计2.png
图片点击可在新窗口打开查看



 回到顶部
帅哥哟,离线,有人找我吗?
有点甜
  6楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2018/12/17 15:25:00 [只看该作者]

1、加入msgbox(e.datatable.name)弹出表名

 

2、开启事件,写在这里

 

Tables("收款通知单_table1").DataSource = dtb.BuildDataSource
Tables("收款通知单_table1").DataTable.GlobalHandler.DataColChanged = True


 回到顶部