dbgrid多层次表头显示不全的有关问题
dbgrid多层次表头显示不全的问题
如图:

我使用的直接由SQL生成表头,SQL语句如:
SQL执行的结果如下图:

按理说字段用“|”隔开了,应该可以自动折行的呀,为什么会截断了呢?
各位大大,帮帮忙,谢谢!
------解决思路----------------------
差点被弄糊涂了,怎么DBGrid也支持多表了。
1、上述SQL语句,设计多表头,DBGrid是不支持多表头的,"
------解决思路----------------------
"无效。
2、上述SQL语句,设计多表头,可以在DBGridEh中使用,"
------解决思路----------------------
"有效。
效果图如下:

(1)上一个表是DBGridEh,字段用“
------解决思路----------------------
”隔开,可以显示多表头。
(2)下一个表是DBGrid,字段用“
------解决思路----------------------
”隔开,也是无效物。
(3)未能完全验证你的SQL语句正确与否,验证时,仅使用了类似的语句。
------解决思路----------------------
在使用DBGridEh时,不提供使用SQL语句,设置多表头。直接设置DBGridEh的标题。
代码如下:
如图:
我使用的直接由SQL生成表头,SQL语句如:
SELECT a.dwbh, b.danwbh,
LTRIM(RTRIM(dbo.YB_GetDWJGMC(b.danwbh, 2))) AS '客户级别',
LTRIM(RTRIM(dbo.YB_GetDWJGMC(b.danwbh, 3))) AS '客户级别1', b.dwmch,
a.ksmch,
CONVERT(DECIMAL(14, 2), SUM(CASE WHEN a.hztname = '一次性静脉营养输液袋|总计|未开'
THEN a.wkfp
ELSE 0.00
END)) AS '一次性静脉营养输液袋|总计|未开',
CONVERT(DECIMAL(14, 2), SUM(CASE WHEN a.hztname = '一次性静脉营养输液袋|一次性静脉营养输液袋|未开'
THEN a.wkfp
ELSE 0.00
END)) AS '一次性静脉营养输液袋|一次性静脉营养输液袋|未开'
FROM YT_XSHZBB_1_WDJ AS a ,
mchk AS b ( NOLOCK )
WHERE a.dwbh = b.dwbh AND ( a.je <> 0 OR a.ykfp <> 0 OR a.wkfp <> 0 ) AND a.dwbh = 'DWI00000071'
GROUP BY a.dwbh, a.ksmch, b.danwbh, b.dwmch
ORDER BY b.danwbh, a.ksmch ASC
SQL执行的结果如下图:
按理说字段用“|”隔开了,应该可以自动折行的呀,为什么会截断了呢?
各位大大,帮帮忙,谢谢!
------解决思路----------------------
差点被弄糊涂了,怎么DBGrid也支持多表了。
1、上述SQL语句,设计多表头,DBGrid是不支持多表头的,"
------解决思路----------------------
"无效。
2、上述SQL语句,设计多表头,可以在DBGridEh中使用,"
------解决思路----------------------
"有效。
效果图如下:
(1)上一个表是DBGridEh,字段用“
------解决思路----------------------
”隔开,可以显示多表头。
(2)下一个表是DBGrid,字段用“
------解决思路----------------------
”隔开,也是无效物。
(3)未能完全验证你的SQL语句正确与否,验证时,仅使用了类似的语句。
------解决思路----------------------
在使用DBGridEh时,不提供使用SQL语句,设置多表头。直接设置DBGridEh的标题。
代码如下:
// 设置 多层字段栏
DBGridEh1.UseMultiTitle:=True;
DBGridEh1.Titlelines:=2;
DBGridEh1.Columns[0].Title.Caption := '开票信息
------解决思路----------------------
结算年月';
SetFieldWidth(DBGridEh1.Columns[0],7,10); // 这是自定义的设置列宽方法
DBGridEh1.Columns[1].Title.Caption := '开票信息
------解决思路----------------------
开票日期';
SetFieldWidth(DBGridEh1.Columns[1],7,10);
DBGridEh1.Columns[2].Title.Caption := '开票信息
------解决思路----------------------
交款日期';
SetFieldWidth(DBGridEh1.Columns[2],7,10);
DBGridEh1.Columns[3].Title.Caption := '开票信息
------解决思路----------------------
受票名称';
SetFieldWidth(DBGridEh1.Columns[3],7,12);
DBGridEh1.Columns[4].Title.Caption := '开票信息
------解决思路----------------------
开票金额';
SetFieldWidth(DBGridEh1.Columns[4],7,10);
......