Foxtable(狐表)用户栏目专家坐堂 → 报表自动汇总问题


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

主题:报表自动汇总问题

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


加好友 发短信
等级:超级版主 帖子:106067 积分:539428 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2018/11/10 13:43:00 [只看该作者]

您这代码实在看不懂,么见过这种用法

if checkbox1=true then 
状态1 = confirmation number

该换行的才换,不该换行的不要乱换行。

另外请把完整代码贴出来,并说明放在哪个事件的

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


加好友 发短信
等级:幼狐 帖子:68 积分:457 威望:0 精华:0 注册:2018/6/3 23:00:00
  发帖心情 Post By:2018/11/10 13:43:00 [只看该作者]

在开发项目的过程中,

遇到如下具体问题,想请教版主代码;

在表“Agent_1”中,窗口“RoomBlockStatus_1”中,
想达到预期效果;
add a "a"= white green

add a "b"= white red 

add a "c"= red white

if checkbox1=true

then 状态1 = confirmation number

酒店地区1 ,酒店1 ,状态1 = a

if  checkbox1= false

then 状态1 = optional date 

酒店地区1 ,酒店1 ,状态1 =b

if the optional date<= 今天-3 天

then 酒店地区1 ,酒店1, 状态1 =c

hide check box 1, check box 2 ,checkbox 3 chenckbox 4

end if

end
由于编程小白,希望版主指点一下代码
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:操团系统.table


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

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


加好友 发短信
等级:超级版主 帖子:106067 积分:539428 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2018/11/10 14:04:00 [只看该作者]

您这段是伪代码?!那也太“伪”了图片点击可在新窗口打开查看

check box 1, check box 2 ,checkbox 3 chenckbox 4是控件?窗口“RoomBlockStatus_1”没看到有这些控件??

表“Agent_1”也没有看到有状态1列,只有控房状态1,但是是逻辑列啊,没有办法赋值日期啊??

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


加好友 发短信
等级:幼狐 帖子:68 积分:457 威望:0 精华:0 注册:2018/6/3 23:00:00
  发帖心情 Post By:2018/11/10 14:08:00 [只看该作者]

不懂写代码,让斑竹见笑了。

就是在在表“Agent_1”中,窗口“RoomBlockStatus_1”

想实现的效果

添加3个自定义的单元格样式 a, b,c

a 为白底 绿字

b 为白底 红字

c为红底白字

 

如果控房状态1 的check box = true

酒店地区1 ,酒店1 ,状态1 ,就是以 “a” 白底绿字显示

数据为来自原表中的"酒店地区1" "酒店1" 和 "confirmation number"

 

如果控房状态1 的check box=false

酒店地区1 ,酒店1 ,状态1 ,就是以“b”白底红字表示

数据为来自原表中的“酒店地区1”"酒店1 "和“optional date”

如果其中“optional date”离今天当天小于等于3 天,则

酒店地区1 ,酒店1 ,状态1 ,中以“c” 红底白字表示

 

最后隐藏显示左右逻辑 check box 栏。

 

因为编程小白,学习了一段时间foxtable, 所以写的四不像,希望帮助帮忙一下啊。 


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


加好友 发短信
等级:超级版主 帖子:106067 积分:539428 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2018/11/10 14:26:00 [只看该作者]

1、去掉窗口“RoomBlockStatus_1”afterload代码

2、窗口表sql语句改为:Select * From {Agent_1}

3、drawcell代码如:

If e.Col.name = "酒店地区1" orelse e.Col.name = "酒店1" Then
    If e.Row("控房状态1") = True Then
        e.Table.DataTable.AddUserStyle("a", Color.white, Color.green)
        e.style = "a"
    Else
        If e.Row.IsNull("OptionDate1") = False AndAlso e.Row("OptionDate1") <= Date.Today.AddDays(-3) Then
            e.Table.DataTable.AddUserStyle("c", Color.white, Color.red)
            e.style = "c"
        Else
            e.Table.DataTable.AddUserStyle("b", Color.red, Color.white)
            e.style = "b"
        End If
    End If
End If

4、隐藏列直接在“显示列”功能不勾选需要隐藏的列即可

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


加好友 发短信
等级:幼狐 帖子:68 积分:457 威望:0 精华:0 注册:2018/6/3 23:00:00
  发帖心情 Post By:2018/11/10 15:14:00 [只看该作者]

测试了,不对啊,显示在table中,显示的列应该为

 


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

 

在这个table 中,列名为,

 

日期,团号,用房量,酒店地区1,酒店1 ,状态1,酒店地区2 ,酒店2,状态1,酒店地区3 ,酒店3 ,状态1。

 

其中”状态1“表中的数据

 

如果原表格中的”控房状态1“=true

 

则 ”状态1 “中显示的数据为 原表中的”confirmed number“

 

and

 

酒店地区1 ,酒店1 ,状态1 ,中的数据全部以白底绿字显示

 

如果原表格中的”控房状态1“=false

 

则”状态1“中显示的数据为原表中的”optional date“

 

and

 

酒店地区1 ,酒店1 ,状态1,中的数据全部以白底红字显示

 

而且如果”状态1 “中的”optional date“离今天<=3天

 

酒店地区1 ,酒店1 ,状态1 ,中的数据全部以 红底白字显示。

 

您看一下,这是需要的效果,不是直接引用数据。


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


加好友 发短信
等级:超级版主 帖子:106067 积分:539428 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2018/11/10 15:27:00 [只看该作者]

没看懂,也没有看到那个表有”状态1 “这个列。

请使用您上传的实例截图说明

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


加好友 发短信
等级:幼狐 帖子:68 积分:457 威望:0 精华:0 注册:2018/6/3 23:00:00
  发帖心情 Post By:2018/11/10 15:47:00 [只看该作者]

嗯,谢谢版主的耐心。

其中”RoomBlock Status_1“ 的table中,

 

想新建: 日期,团号,用房量,酒店地区1,酒店1 ,状态1,酒店地区2 ,酒店2,状态1,酒店地区3 ,酒店3 ,状态1。

 

其中,除 ”状态1“”状态2“"状态3"之外,其他列的数据,都直接引用原表中 同名列 的数据。

 

 至于”状态1“中的数据填充,

 

如果原表格中的”控房状态1“=true

 

则 ”状态1 “中显示的数据为 原表中的”confirmed number“

 

and

 

酒店地区1 ,酒店1 ,状态1 ,中的数据全部以白底绿字显示

 

如果原表格中的”控房状态1“=false

 

则”状态1“中显示的数据为原表中的”optional date“

 

and

 

酒店地区1 ,酒店1 ,状态1,中的数据全部以白底红字显示

 

而且如果”状态1 “中的”optional date“离今天<=3天

 

酒店地区1 ,酒店1 ,状态1 ,中的数据全部以 红底白字显示。

 

 


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


加好友 发短信
等级:超级版主 帖子:106067 积分:539428 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2018/11/10 16:01:00 [只看该作者]

1、添加临时列参考:http://www.foxtable.com/webhelp/scr/1428.htm

2、赋值到窗口表的datacolchanged事件处理,如

If e.DataCol.Name = "控房状态1" Then
    If e.NewValue  = True Then
        e.DataRow("状态1") = e.DataRow("ConfirmationNumber1")
    Else
        e.DataRow("状态1") = e.DataRow("OptionDate1")
    End If
End If

3、颜色还是看75楼

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


加好友 发短信
等级:幼狐 帖子:68 积分:457 威望:0 精华:0 注册:2018/6/3 23:00:00
  发帖心情 Post By:2018/11/10 16:15:00 [只看该作者]

我按例子输入进去,但是没有效果,请版主指导。
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:操团系统.table


 回到顶部