以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  数值显示控制  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=117746)

--  作者:zxjsd
--  发布时间:2018/4/18 15:36:00
--  数值显示控制
技服人员,你好。
我在窗体上有一个控件(Table1),类型:SQLQuery,如何设定数字显示格式(比如:数字字段就显示2位小数)?

Dim Cur_table As WinForm.Table = e.Form.Controls("Table1")
For Each dt As DataCol In DataTables(Cur_table.Table).DataCols
    If dt.IsNumeric Then
        DataTables(Cur_table.Table.Name).dt.SetFormat("0.00")
    End If
Next


错误在哪里?

[此贴子已经被作者于2018/4/18 16:11:02编辑过]

--  作者:有点甜
--  发布时间:2018/4/18 15:48:00
--  

参考

 

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

 


--  作者:zxjsd
--  发布时间:2018/4/18 16:19:00
--  
请回复。
--  作者:有点甜
--  发布时间:2018/4/18 16:25:00
--  
Dim Cur_table As WinForm.Table = e.Form.Controls("Table1")
For Each dt As DataCol In Cur_table.Table.DataTable.DataCols
    If dt.IsNumeric Then
        dt.SetFormat("0.00")
    End If
Next

--  作者:zxjsd
--  发布时间:2018/4/19 12:32:00
--  
如何改成全局代码呢?方便修改只要改动一处代码。还有价格参数调用,比如,2就设置为“0.00”,3就设置为“0.000”.请指导
--  作者:有点甜
--  发布时间:2018/4/19 13:10:00
--  

比如,你可以改成这样

 

Dim Cur_table As WinForm.Table = e.Form.Controls("Table1")
For Each dt As DataCol In Cur_table.Table.DataTable.DataCols
    If dt.IsNumeric Then
        dt.SetFormat(vars("格式"))
    End If
Next

然后,你动态设置 vars("格式") = "0.00"


--  作者:zxjsd
--  发布时间:2018/4/19 16:04:00
--  
窗口有10几个,如果在每个窗口的Table1的AfterLoad的事件中输入代码,以后修改怕忘了某个窗口,我想改成全局代码,这样修改规则只要修改全局代码就行,减少出错。
另外,不同的窗口模式,窗口的Table1的AfterLoad的事件,有的执行(独立),有的不执行(模式),怎么回事?

--  作者:有点甜
--  发布时间:2018/4/19 17:26:00
--  

必须写在每个窗口,才行。

 

如果确实需要全局去做,可以写到CurrentTableChanged事件,或者做一个定时器,定时执行代码。