以文本方式查看主题 - Foxtable(狐表) (http://foxtable.net/bbs/index.asp) -- 专家坐堂 (http://foxtable.net/bbs/list.asp?boardid=2) ---- SQLTable表 (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=128868) |
-- 作者:lfz123 -- 发布时间:2018/12/17 10:54:00 -- SQLTable表 请教老师:我在窗口新建了一个表,有一个步骤没有出来结果,不知道设计思路是否正确? 窗口表事件 第二步
收款通知单_Table1_DataColChanged 这一步未实现
If e.DataCol.name
= "工程发票消账码" Then Dim dr1 As DataRow = DataTables("销项发票").Find("工程发票消帐码
= \'"& e.datarow("工程发票消帐码") & "\'") e.DataRow("公司名称") = dr1("发票抬头") e.DataRow("工程名称") = dr1("工程名称") e.DataRow("领用人") = dr1("领用人") e.DataRow("发票日期") = dr1("发票日期") e.DataRow("发票金额") =
DataTables("销项发票").compute("sum(价税合计)","工程发票消帐码 =
\'"& e.datarow("工程发票消帐码") & "\'") 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("发票日期",
Gettype(Date)) dtb.AddDef("发票金额",
Gettype(Double)) dtb.AddDef("收款日期",
Gettype(Date)) dtb.AddDef("收款金额",
Gettype(Double)) dtb.AddDef("未收款",
Gettype(Double)) dtb.AddDef("工程发票消帐码",
Gettype(String), 50) Tables("收款通知单_table1").DataSource
= dtb.BuildDataSource Dim str As String =
CurrentTable.current("工程发票消账码") Dim r As Row = Tables("收款通知单_table1").addnew r("工程发票消帐码") = str |
-- 作者:有点甜 -- 发布时间: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 -- 发布时间:2018/12/17 11:36:00 -- 回复:(有点甜)当使用 Tables("收款通知单_table1")... Tables("收款通知单_table1").DataTable 的 name 是什么啊,我这个只是生成的一个临时表,并没有绑定到任何表啊?因为在全局表事件中写代码要判断表名 由于全局表事件对所有表有效,而不同的表可能有不同的处理逻辑,需要不同的事件代码,所以通常需要在全局表事件中判断表名: Select Case e.DataTable.Name |
-- 作者:有点甜 -- 发布时间:2018/12/17 12:10:00 -- 1、你msgbox弹出看一下不就直达了?
2、一般叫做【收款通知单_table1】或者【表B】。 |
-- 作者:lfz123 -- 发布时间:2018/12/17 14:10:00 -- 回复:(有点甜)1、你msgbox弹出看一下不就直达了?... 我按照老师的要求做了,结果没出来,麻烦老师在帮我看下,我自己加了一个打开表的判断,不然老是有一个报错提示 此主题相关图片如下:表设计4.png 此主题相关图片如下:表设计3.png |
-- 作者:有点甜 -- 发布时间:2018/12/17 15:25:00 -- 1、加入msgbox(e.datatable.name)弹出表名
2、开启事件,写在这里
Tables("收款通知单_table1").DataSource = dtb.BuildDataSource |