Foxtable(狐表)用户栏目专家坐堂 → 用户样式在QueryBuilder临时表中设定无效


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

主题:用户样式在QueryBuilder临时表中设定无效

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


加好友 发短信
等级:一尾狐 帖子:480 积分:4115 威望:0 精华:0 注册:2016/10/14 13:40:00
用户样式在QueryBuilder临时表中设定无效  发帖心情 Post By:2017/10/23 1:06:00 [显示全部帖子]

老师,你好。
我想用在窗口表中自定义样式。除了建立临时表的方式不一样,其它代码都一样,一种能显示用户样式,一种不能。具体情况如下:
1. 不能显示的窗口用的是querybuilder建的临时表

test_无颜色_Table1_DrawCell 

If e.Col.Name = "moplanQty" Then

    If e.Row("moplanQty") >= 10000 Then

        e.Style = "b"

    End If

End If

'用代码建立查询表

 Dim q As new QueryBuilder

    q.C

    q.TableName = "v_mo"

    q.SelectString = "sele ct * f rom v_mo"

    q.Build



2. 能显示的窗口用的是cmd.ExecuteReader()建的临时表

test_有颜色_Table1_DrawCell 

If e.Col.Name = "moplanQty" Then

    If e.Row("moplanQty") >= 10000 Then

        e.Style = "b"

    End If

End If

'用代码建立查询表

Dim dt1 As DataTable

cmd.C

cmd.CommandText = frmsqlstr

dt1=cmd.ExecuteReader()


具体见附件。麻烦指点一下。


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


加好友 发短信
等级:一尾狐 帖子:480 积分:4115 威望:0 精华:0 注册:2016/10/14 13:40:00
  发帖心情 Post By:2017/10/23 1:07:00 [显示全部帖子]

刚才附件上传不了,补发一下

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


加好友 发短信
等级:一尾狐 帖子:480 积分:4115 威望:0 精华:0 注册:2016/10/14 13:40:00
  发帖心情 Post By:2017/10/23 1:14:00 [显示全部帖子]

图片点击可在新窗口打开查看传不上附件,上传二个图片

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


加好友 发短信
等级:一尾狐 帖子:480 积分:4115 威望:0 精华:0 注册:2016/10/14 13:40:00
  发帖心情 Post By:2017/10/23 1:15:00 [显示全部帖子]

搞不懂,看不到附件

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


加好友 发短信
等级:一尾狐 帖子:480 积分:4115 威望:0 精华:0 注册:2016/10/14 13:40:00
  发帖心情 Post By:2017/10/23 9:36:00 [显示全部帖子]

谢谢及时回复。没有用Fill方式是因为帮助里说:

重要提示

其实Fill并不常用,只有需要从不同的表中加载数据时,才使用Fill语句,从同一个表中动态加载数据,应该使用LoadFilter和Load来实现。


现在项目里已经用querybuilder写了,全局表事件怎么写?
项目的要求是:
1. 项目中有多个窗口,每个窗口都有用querybuilder动态分页加载的表
2. 有些表需要按客户要求对某些字段,将符合条件的单元格标识相应的样式。如订单数量>10000的用红底白字,1000-9999的用黄色,<1000的用绿色。但不同的窗口表加载的业务数据不一样,应用样式的条件了也不一样。

谢谢!


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


加好友 发短信
等级:一尾狐 帖子:480 积分:4115 威望:0 精华:0 注册:2016/10/14 13:40:00
  发帖心情 Post By:2017/10/23 10:23:00 [显示全部帖子]

在全局表drawcell事件中写了下面的代码:
If e.Table.Name = "v_mo" Then
    If e.Col.Name = "moPlanQty"  Then   e.Style = "a"
ElseIf e.Table.name = "test_无颜色_Table1" Then
    e.Table.AddUserStyle("a", Color.Red, Color.White)
    If e.Col.Name = "moPlanQty"  Then  e.Style = "a"
End If

但会有下面的报错
---------------------------
错误
---------------------------
编译错误:“AddUserStyle”不是“Table”的成员。

错误代码:e.Table.AddUserStyle("a", Color.Red, Color.White)
---------------------------
确定  
---------------------------

把代码改成下面,则无报错, 但依然没有显示颜色
If e.Table.Name = "v_mo" Then
    If e.Col.Name = "moPlanQty"  Then   e.Style = "a"
ElseIf e.Table.name = "test_无颜色_Table1" Then
    e.Table.DataTable.AddUserStyle("a", Color.Red, Color.White)
    If e.Col.Name = "moPlanQty"  Then  e.Style = "a"
End If


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


加好友 发短信
等级:一尾狐 帖子:480 积分:4115 威望:0 精华:0 注册:2016/10/14 13:40:00
  发帖心情 Post By:2017/10/23 19:23:00 [显示全部帖子]

好了,谢谢!

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


加好友 发短信
等级:一尾狐 帖子:480 积分:4115 威望:0 精华:0 注册:2016/10/14 13:40:00
  发帖心情 Post By:2017/10/23 20:40:00 [显示全部帖子]

再问一个问题,我想导出带格式的Excel表格,用下面的代码。如果用cmd.executeReader()生成的窗口表,导出Excel带颜色的,但querybuilder的窗口表却没有用。不知道什么原因?

'窗口显示出来之后,currentTable就是窗口表
Dim strSheet As String = e.Form.Controls("lblTableName").text
Tables(e.Form.Name & "_Table1").Focus
Dim flg As New SaveExcelFlags
flg.RowNumber = True
flg.CellStyle = True

Dim dlg As New SaveFileDialog '定义一个新的SaveFileDialog
dlg.Filter= "Excel文件|*.xls; *.xlsx" '设置筛选器
If dlg.ShowDialog = DialogResult.Ok Then '如果用户单击了确定按钮
     Tables(e.Form.Name & "_Table1").SaveExcel(dlg.FileName, strSheet, flg)  '保存文件
End If
Dim Proc As new Process
proc.File=dlg.FileName
proc.Verb = "open"
proc.Start()

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


加好友 发短信
等级:一尾狐 帖子:480 积分:4115 威望:0 精华:0 注册:2016/10/14 13:40:00
  发帖心情 Post By:2017/10/25 10:43:00 [显示全部帖子]

谢谢!

 回到顶部