以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  [求助]DrawCell“篡改”数据如何也能反映到窗口上呢?  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=64680)

--  作者:新福星
--  发布时间:2015/2/27 6:49:00
--  [求助]DrawCell“篡改”数据如何也能反映到窗口上呢?

利用DrawCell“篡改”功能

If e.Col.Name = "密码" Then \'如果正在绘制的是密码列
e.Text =
"****" \'那么用*代替原来的内容
End
IF

把该表中这一列显示的内容篡显成****。但是在设计一个窗口时,这一列的内容就显出真面目来了。怎么也让窗口中也同样显示****呢?

谢谢!


--  作者:Bin
--  发布时间:2015/2/27 8:36:00
--  
窗口控件同样可以这么做.DataFOrmat事件 设置e.value="******"
--  作者:新福星
--  发布时间:2015/2/28 9:36:00
--  

指定窗口控件隐藏是随机的,所以用2楼方法做不了。

如何将已经和表列捆绑在一起的文本控件等,让使用者看不到内容呢?

比如有一个窗口有商品名称文本框这一列,和表A商品名称捆绑在一起。如何通过指令令使用者看不到这一列的内容且不能影响到表中原有内容?

我用了 cb = e.Form.Controls(x)       cb.ForeColor=cb.BackColor 初看是可以的,看不到了。可是用鼠标一扫又能看到了。

还用了cb.Visible=False 方法,在整个窗口中是看不到这个控件了,但是整个窗口就象贴着膏药,不好看!

 

有什么更好的办法呢?谢谢


--  作者:Bin
--  发布时间:2015/2/28 9:38:00
--  
随机不随机和这个有什么关系.同样是这么做的. 搞不定就上例子.
--  作者:lsy
--  发布时间:2015/2/28 11:29:00
--  
Dim tbx As WinForm.TextBox = e.Form.Controls("TextBox1")
If tbx.PasswordChar = " " Then
    tbx.PasswordChar = ""
Else
    tbx.PasswordChar = " "
End If

--  作者:liufucan
--  发布时间:2017/6/16 18:07:00
--  
请问各位大侠,DrawCell“篡改”数据如何反映到由Table自动生成的网页中呢?

我用全局表事件已经实现了对交叉统计的DrawCell,但是自动生成到网页的时候本来的面目就露出来了

--  作者:liufucan
--  发布时间:2017/6/16 18:20:00
--  
又或者官方能否在交叉统计中实现非数值类型的引用呢?
--  作者:有点蓝
--  发布时间:2017/6/16 20:06:00
--  
手工生成表格即可:http://www.foxtable.com/mobilehelp/scr/0072.htm
--  作者:liufucan
--  发布时间:2017/6/17 11:19:00
--  
老师,我试了一下不行啊,那个好像是针对数据表的,而我这个是生成的统计表。提示列“A1_1_01 ”不属于表“ A1销控”,我是交叉统计生成的带三层表头的统计表。
Dim e As RequestEventArgs = args(0)
Dim g As New CrossTableBuilder("A1销控", DataTables("总表"))
g.HGroups.AddDef("楼层")
g.VGroups.AddDef("楼号")
g.VGroups.AddDef("单元")
g.VGroups.AddDef("位置")
g.Totals.AddDef("房间状态", AggregateEnum.Max, "房间状态")
g.Filter = "[楼号]=\'A1\'"
g.Build()
MainTable = Tables("A1销控")
DataTables("A1销控").GlobalHandler.DrawCell = True
Dim wb As New WeUI
With wb.AddTable("","Table1")
    \'下面这个数组,用实际的列名.
    Dim nms() As String = {"楼层","A1_1_01","A1_1_02","A1_1_03","A1_1_04","A1_2_01","A1_2_02","A1_2_03","A1_2_04","A1_3_01","A1_3_02","A1_3_03","A1_3_04","A1_3_05","A1_3_06"}
    .Head.AddRow("楼层","A1","A1","A1","A1","A1","A1","A1","A1","A1","A1","A1","A1","A1","A1") \'第一层标题
    .Head.AddRow("楼层","1","1","1","1","2","2","2","2","3","3","3","3","3","3") \'第二层标题
    .Head.AddRow("楼层","01","02","03","04","01","02","03","04","01","02","03","04","05","06") \'第二层标题
    For Each r As Row In Tables("A1销控").Rows
        With .Body.AddRow()
            For Each nm As String In nms
                .AddCell(r(nm))
            Next
        End With
    Next
End With
e.WriteString(wb.Build)

--  作者:有点蓝
--  发布时间:2017/6/17 11:26:00
--  
网页和DrawCell没有任何关系的。

你要在生成网页表格的时候,按照DrawCell的逻辑,重新使用代码设置指定网页单元格的样式,例如

With .body.AddRow()
    .AddCell("技术部") \'逐个单元格增加
    .AddCell("李四","style=\'color:blue;\'") \'第二个参数用于设置单元格的Attribute属性
    .AddCells("38","110") \'用AddCells可以一次添加多个单元格
    .AddCell("中国上海")
End With