硕正润乾报表怎么添加图片判断值再添加行的颜色

BCG报表选中行字体颜色设置 - C++当前位置:& &&&BCG报表选中行字体颜色设置BCG报表选中行字体颜色设置&&网友分享于:&&浏览:0次BCG表格选中行字体颜色设置有哪位大牛知道CBCGPGridCtrl中选中行怎么设置字体颜色显示,是当前选中显示的字体颜色,正常的选中为蓝色背景,白色字体;其中的白色字体可以不以换成红色?------解决思路----------------------CBCGPGridCtrl是BCGControlBar中的组件,这套组件很复杂。建议去C++Builder版咨询。
http://bbs.csdn.net/forums/BCB------解决思路----------------------引用:CBCGPGridCtrl是BCGControlBar中的组件,这套组件很复杂。建议去VC版咨询。
Spy4Win的作者你好,烦请看看我给你的留言。
12345678910
12345678910
12345678910 上一篇:下一篇:文章评论相关解决方案 1234567891011 Copyright & &&版权所有上次介绍过CRM里开始报表的一些注意事项:,本文继续介绍报表里的一些动态效果:动态显示参数,参数是从数据库里查询出来的;参数可以多选或全选;动态地显示列,列不是固定的;根据某一字段的值来动态地显示整行字体的颜色。
下面介绍详细的方法:
一、动态参数、参数多选全选
动态参数:
首先定义一个Dataset:
SELECT DISTINCT new_countryId, new_codename AS name FROM new_country WHERE new_codename IS not null
然后指定参数的数据来源:
注意,这里参数Value 字段一定要用主健,也就是说如果value也用name,将查询不到结果。
多选、全选:
效果图如下:
传入的参数在主Dataset里通过in来查询:
ct.new_countryid IN ( @country )
二、 动态列
最近有个需求,要把全年所有的星期相关的数据查询出来,每个月的最后一周后面显示本月的合计。月是固定的,好处理,但每个月有几周却不是固定的,这时候就没办法固定的查询出数据,然后直接拖到报表里了。解决思路如下:
1. 列名和列各定义一个Dataset, 先看下列名的定义:
先定义一个临时表,每月最多5周,所以每月前面都定义5周。
--创建临时表,用来存储活动的周名称
CREATE TABLE #weekColumn
Start VARCHAR(10) ,
W1 VARCHAR(100) ,
W1Remark VARCHAR(100) ,
W2 VARCHAR(100) ,
W2Remark VARCHAR(100) ,
W3 VARCHAR(100) ,
W3Remark VARCHAR(100) ,
W4 VARCHAR(100) ,
W4Remark VARCHAR(100) ,
W5 VARCHAR(100) ,
W5Remark VARCHAR(100) ,
Month1 VARCHAR(100) ,
W6 VARCHAR(100) ,
W6Remark VARCHAR(100) ,
W7 VARCHAR(100) ,
W7Remark VARCHAR(100) ,
W8 VARCHAR(100) ,
W8Remark VARCHAR(100) ,
W9 VARCHAR(100) ,
W9Remark VARCHAR(100) ,
W10 VARCHAR(100) ,
W10Remark VARCHAR(100) ,
Month2 VARCHAR(100) ,
然后遍历所有月,根据规定的格式,定义周、月的列名:
DECLARE month_cursor CURSOR
new_monthid ,
new_name ,
filterednew_month
new_year = YEAR(GETDATE())
ORDER BY new_name
OPEN month_cursor
FETCH NEXT FROM month_cursor INTO @monthid, @monthName, @monthNo
WHILE @@FETCH_STATUS = 0
SET @index = ( @monthNo - 1 ) * 5 + 1
-- 3. get all weeks
DECLARE week_cursor CURSOR
new_name ,
new_week_no
filterednew_week
new_monthid = @monthid
OPEN week_cursor
FETCH NEXT FROM week_cursor INTO @weekName, @weekNo
WHILE @@FETCH_STATUS = 0
SET @sql = 'W' + CAST(@index AS VARCHAR(100));
SET @sqlName = 'W' + CAST(@index AS VARCHAR(100)) + 'Remark';
SET @sql = ' update #weekColumn set ' + @sql + '='''
+ @weekName + '''' + ',' + @sqlName + '=''Remark'''
EXEC(@sql);
SET @index += 1
FETCH NEXT FROM week_cursor
INTO @weekName, @weekNo
CLOSE week_cursor
DEALLOCATE week_cursor
SET @sql = 'Month' + CAST(@monthNo AS VARCHAR(100));
SET @sql = ' update #weekColumn set ' + @sql + '=''' + @monthName
EXEC(@sql);
SET @index += 1
FETCH NEXT FROM month_cursor INTO @monthid, @monthName, @monthNo
CLOSE month_
DEALLOCATE month_
最后查询这个临时表就可以得到所有的列名:
SELECT& * FROM&&& #weekC
2. 列值的Dataset定义:
首先也是定义包含所有周、月的临时表,也是每月前定义5周,跟列名对应起来。
接着,遍历所有月,确定当前数据是本月的哪一周:
--查找是本月的第几周
PRINT @monthNo
@whichWeek = rn
ROW_NUMBER() OVER ( ORDER BY w.new_week_no ) RN ,
w.new_week_no
filterednew_week w
JOIN filterednew_month m ON w.new_monthid = m.new_monthId
m.new_month = @monthNo
mw.new_week_no = @weekNo
再确定数据插入的位置:
-- 确定插入位置
SET @index = ( @monthNo - 1 ) * 5 + @whichWeek
PRINT @index
PRINT @monthNo
PRINT @whichWeek
SET @sqlOrderQty = 'W' + CAST(@index AS VARCHAR(100))
+ 'OrderQty';
SET @sqlQty = 'W' + CAST(@index AS VARCHAR(100)) + 'Qty';
SET @sqlRemark = 'W' + CAST(@index AS VARCHAR(100)) + 'Remark';
SET @sql = ' update #weekColumn set ' + @sqlOrderQty + '='
+ CAST(ISNULL(@orderQty, '0') AS VARCHAR(100)) + ','
+ @sqlQty + '=' + CAST(ISNULL(@qty, 0) AS VARCHAR(100))
+ ',' + @sqlRemark + '=''' + ISNULL(@remark, '') + ''''
ReportIndex = '
+ CAST(@ReportIndex AS VARCHAR(100));
PRINT @sql
EXEC(@sql);
3. 报表上处理
列名要用简单处理下,要用列名的Dataset,如下显示的第一周的列名:
=First(Fields!W1.Value, "columns_DataSet")
另外,每个月的前一周有可能是要hide的,因为有可能没有第5周,右健整个列,选择 Column Visibility:
如果没有值就hide起来:
=iif(isnothing(First(Fields!W5.Value, "columns_DataSet")),true,false)
到此,动态显示列完成。
三、 动态显示行字体颜色
首先选中整个行:
然后在行的Font-& Color里定义颜色:
=IIF(Fields!versions.Value = "Demand Plan", "Black", "Green")
注意 Black, Green都要带引号。
阅读(...) 评论()击浪北部湾 捕鱼者新说:造船记
击浪北部湾 捕鱼者新说:造船记

我要回帖

更多关于 如何添加报表页眉 的文章

 

随机推荐