Foxtable(狐表)用户栏目专家坐堂 → 创建了一个副本,提示副本不存在


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

主题:创建了一个副本,提示副本不存在

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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2018/9/17 9:37:00 [显示全部帖子]

以下是引用cyrollin在2018/9/17 9:31:00的发言:
好的,谢谢。 这个副本会自动关闭吗?
如果不能,要这样关闭吗?

tb2.table.datatable.unload()
[此贴子已经被作者于2018/9/17 9:31:44编辑过]

 

窗口关闭之后,会自动移除的,不需要卸载。

 

如果在窗口运行的过程想卸载,可以这样写代码

 

e.form.RemoveControl("Table1")

DataTables.Unload(e.form.name & "_Table1")


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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2018/9/17 14:37:00 [显示全部帖子]

改成

 

Dim cp As Integer = DataTables(e.form.name & "_table1").compute("count(姓名)"

 

或者

 

Dim cp As Integer = e.form.controls("Table1").Table.compute("count(姓名)"


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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2018/9/17 15:18:00 [显示全部帖子]

以下是引用cyrollin在2018/9/17 14:55:00的发言:
谢谢,搞定。。

不过这个按钮只能按一次, 如果再次按,会出现“。。。名为"XXx表_table1的datatable已属于此dataset。。。”
是不是统计出来了,要关掉这个副本?

e.form.RemoveControl("Table1")

DataTables.Unload(e.form.name & "_Table1")

 

不需要关掉这个表格。当你需要重新生成的时候,你可以用fill

 

If e.form.controls.contains("Table1") Then '已经存在表控件了

    e.form.controls("table1").table.fill("sql语句", "数据源", true或false)

Else

    原来的代码,如 e.Form.CreateSQLTable

End If


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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2018/9/17 16:05:00 [显示全部帖子]

1、你要重新生成,那就用8楼的代码;当然,你用4楼的代码移除也可以;

 

2、隐藏table,参考

 

e.form.controls("Table1").visible = false


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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2018/9/17 16:59:00 [显示全部帖子]

我这样测试可以,把红色代码删除

 

If e.form.controls.contains("Table1") Then '已经存在表控件了
    e.form.RemoveControl("Table1")
    'DataTables.Unload(e.form.name & "_Table1")
End If

Dim tb2 = e.Form.CreateSQLTable("Table1", "Select * From {test}", "test")
e.Form.AddControl(tb2)
'e.form.controls("Table1").visible = False


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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2018/9/17 17:20:00 [显示全部帖子]

If e.form.controls.contains("Table1") Then '已经存在表控件了
    e.form.RemoveControl("Table1")
    DataTables.Unload(e.form.name & "_Table1")
   
End If
Dim y As Integer = Date.Today.Year
Dim dt1 As New Date(y, 1, 1)
Dim dt2 As New Date(y, 12, 31)
Dim tb2 As WinForm.Table


tb2 = e.Form.CreateSQLTable("Table1", "Select * Flom {表XXX} where 日期 >=  #" & dt1 & "#  And 日期 <= #" & dt2 & "#" ,"acc_表XXX")'
e.Form.AddControl(tb2)
e.form.controls("Table1").visible = False


DataTables("表222").dataCols("列表名").RaiseDataColChanged()


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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2018/9/17 17:33:00 [显示全部帖子]

以下是引用cyrollin在2018/9/17 17:29:00的发言:
不要 else 了?

如果不要else,就提示table1不存在了。 如果加了else判断语句,就什么都没有,错误提示和表222的统计数据也都没有。

 

不可能,我12楼的代码测试没问题。请认真测试。


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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2018/9/17 18:07:00 [显示全部帖子]

代码不可能有问题。做个实例发上来测试。

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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2018/9/19 10:35:00 [显示全部帖子]

datacolchanged事件

 

If e.DataCol.Name = "品名" Then
    Dim cns() As String = {"一月","二月","三月","四月"}
    Dim cns1 () As String = {  "一月_订单量","二月_订单量","三月_订单量","四月_订单量"}
    Dim cns3 () As String = {  "一月_订购数量","二月_订购数量","三月_订购数量","四月_订购数量" }
    ''   Dim cns2 () As String = {  "一月_业绩","二月_业绩","三月_业绩","四月_业绩","五月_业绩","六月_业绩","七月_业绩","八月_业绩", "九月_业绩", "十月_业绩","十一月_业绩","十二月_业绩" }
    If e.NewValue = Nothing Then
        For Each cn As String In cns1
            e.DataRow(cn) = Nothing
        Next
       
    Else
        Dim frm As WinForm.Form = Forms("窗口1")
        If frm.Opened Then
            Dim filter As String = "(品名= '"  & e.DataRow("品名") & "' or 品名 like '%," & e.DataRow("品名") & "' or 品名 like '%," & e.DataRow("品名") & ",%' or 品名 like '" & e.DataRow("品名") & ",%')"
            For i As Integer = 0 To cns1.Length - 1
                Dim d As Date = new Date(Date.Today.Year, i+1, 1)
                Dim cp As Integer = frm.controls("Table1").Table.compute("count(品名)", filter & " and 日期 >= #" & d & "# and 日期 < #" & d.AddMonths(1) & "#")
                e.DataRow(cns1(i)) = IIF(cp=0,Nothing,cp)
                ''   Dim c As Double = tb2.Table.DataTable.compute("sum(人均价)", filter & " and 日期 >= #" & d & "# and 日期 < #" & d.AddMonths(1) & "#")
                ''     e.DataRow(cns2(i)) = IIF(c=0,Nothing,c)
                Dim mj As Double = frm.controls("Table1").Table.compute("sum(数量)", filter & " and 日期 >= #" & d & "# and 日期 < #" & d.AddMonths(1) & "#")
                e.DataRow(cns3(i)) = IIF(mj=0,Nothing,mj)
            Next
        End If
    End If
End If


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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2018/9/19 11:30:00 [显示全部帖子]

以下是引用cyrollin在2018/9/19 11:03:00的发言:

图片点击可在新窗口打开查看此主题相关图片如下:微信图片_20180919110201.png


好的,现在没有错误提示了,但是点击按钮后,下面的表B不显示了,消失了。

 

把你的Table1控件,修改其属性【名称】,改成Table2即可。


 回到顶部
总数 11 1 2 下一页