以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  不能变更表抬头  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=120924)

--  作者:lur320
--  发布时间:2018/6/26 13:48:00
--  不能变更表抬头
在afteropernproject,最后有这个代码,来根据窗口选择中文还是英文来改变表的caption。
但是不起作用,只有部分表改变了标题。
是不是 使用界面风格会阻止改变标题?
另外在运行过程中,手动运行这个窗口也无法改变表头。

Dim dt As Table
Dim dc As Col
Dim dr As DataRow
For Each dt In Tables
    For Each dc In dt.Cols
        dr=DataTables("masterdata").SQLFind("titleaddress = \'" & dc.Name & "\' and tableaddress = \'" & dt.name & "\'")
        If dr IsNot Nothing AndAlso dr.IsNull("Etitle")=False Then
            dc.Caption=dr("Etitle")

        End If
    Next
Next
e.Form.Close

--  作者:有点甜
--  发布时间:2018/6/26 14:55:00
--  

加上代码

 

dt.DataTable.BuildHeader

 

http://www.foxtable.com/webhelp/scr/1275.htm

 


--  作者:lur320
--  发布时间:2018/6/26 15:30:00
--  
works,
thanks

--  作者:lur320
--  发布时间:2018/6/27 9:57:00
--  
还有一些小问题,
有一个datatable是在afterprojectopen后,通过代码创建的临时表。
然后通过打开窗口来让用户选择语言。
此时我已经历遍datatable,但是不能修改这个表格的抬头。
------------------afterprojectopen--------------------
Dim dtb As New DataTableBuilder("计划")
dtb.AddDef("日期", Gettype(Date))
dtb.AddDef("总数", Gettype(Integer))
dtb.AddDef("数量", Gettype(Integer))
dtb.AddDef("编号", Gettype(String),100)
dtb.AddDef("国家", Gettype(String),100)
dtb.AddDef("产品类型", Gettype(String),100)
dtb.AddDef("描述一", Gettype(String),100)
dtb.AddDef("描述二", Gettype(String),100)
dtb.Build()
Forms("titleCorE").open

---------------Forms(“titleCorE”)中的按钮代码------------
Dim dt As DataTable
Dim dc As DataCol
Dim dr As DataRow
For Each dt In DataTables
    For Each dc In dt.DataCols
        dr=DataTables("masterdata").SQLFind("titleaddress = \'" & dc.Name & "\' and tableaddress = \'" & dt.name & "\'")
        If dr IsNot Nothing AndAlso dr.IsNull("Etitle")=False Then
            dc.Caption=dr("Etitle")
            dt.BuildHeader
        End If
    Next
Next

--  作者:lur320
--  发布时间:2018/6/27 10:00:00
--  
刚测试了下,即使项目完全打开,把下面的代码切到系统界面的命令窗口,依旧不能改变临时表的caption。
Dim dt As DataTable
Dim dc As DataCol
Dim dr As DataRow
For Each dt In DataTables
    For Each dc In dt.DataCols
        dr=DataTables("masterdata").SQLFind("titleaddress = \'" & dc.Name & "\' and tableaddress = \'" & dt.name & "\'")
        If dr IsNot Nothing AndAlso dr.IsNull("Etitle")=False Then
            dc.Caption=dr("Etitle")
            dt.BuildHeader
        End If
    Next
Next
[此贴子已经被作者于2018/6/27 9:59:58编辑过]

--  作者:有点甜
--  发布时间:2018/6/27 10:01:00
--  

弹出一下表名看看,如

 

For Each dt In DataTables

    msgbox(dt.name) \'能否弹出统计表?

[此贴子已经被作者于2018/6/27 10:01:12编辑过]

--  作者:lur320
--  发布时间:2018/6/27 10:50:00
--  
有的。
--  作者:lur320
--  发布时间:2018/6/27 10:54:00
--  
奇怪了,我把SQLfind改为find就OK了。
后台数据是有的,为啥SQLfind就查不出临时表的数据?

Dim dt As DataTable
Dim dc As DataCol
Dim dr As DataRow
For Each dt In DataTables
    If dt.name="已排计划" Then
        For Each dc In dt.DataCols
            dr=DataTables("masterdata").Find("titleaddress = \'" & dc.Name & "\' and tableaddress = \'" & dt.name & "\'")
            
            If dr IsNot Nothing AndAlso dr.IsNull("Etitle")=False Then
                Output.Show(dr("Etitle"))
                dc.Caption=dr("Etitle")
                dt.BuildHeader
            Else
                Output.Show(1)
            End If
        Next
    End If
Next

--  作者:lur320
--  发布时间:2018/6/27 10:58:00
--  
我把命令改为SQLFIND,然后通过执行SQL命令,报错:
Dim dt As DataTable
Dim dc As DataCol
Dim dr As DataRow
For Each dt In DataTables
    If dt.name="已排计划" Then
        For Each dc In dt.DataCols
            dr=DataTables("masterdata").SQLFind("[titleaddress] = \'" & dc.Name & "\' AND [tableaddress] = \'" & dt.name & "\'")
            
            If dr IsNot Nothing AndAlso dr.IsNull("Etitle")=False Then
                Output.Show(dr("Etitle"))
                dc.Caption=dr("Etitle")
                dt.BuildHeader
            Else
                Output.Show(1)
            End If
        Next
    End If
Next


An expression of non-boolean type specified in a context where a condition is expected, near \'Next\'.
An expression of non-boolean type specified in a context where a condition is expected, near \'End\'.
An expression of non-boolean type specified in a context where a condition is expected, near \'IsNot\'.
Incorrect syntax near the keyword \'Then\'.
Incorrect syntax near the keyword \'As\'.

--  作者:有点甜
--  发布时间:2018/6/27 11:03:00
--  

你masterdata表格的数据保存一下,再用SQLFind测试看行不行