delphi DBgridEh多行单元格如何实现~急!!
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了delphi DBgridEh多行单元格如何实现~急!!相关的知识,希望对你有一定的参考价值。
有需求需要实现类似金蝶凭证的表格效果(如红框显示):
我现在用的grid控件是dbgridEh,有什么办法可以实现上面的效果,尽量不使用其他的第三方控件的前提下?
分暂时这么多,如果有哪位大大能够帮忙想出可行办法再另外加分,谢谢.
procedure TForm1.DBGrid1DrawColumnCell(Sender: TObject; const Rect: TRect;
DataCol: Integer; Column: TColumn; State: TGridDrawState);
begin
if (Column.Index=1) then
begin
DBGrid1.DefaultDrawColumnCell(Rect,DataCol,Column,State);
with (Sender as TDBGrid).Canvas do //画 cell 的边框
begin
Pen.Color := clwhite; //定义画笔颜色(白色)
MoveTo(Rect.Left, Rect.Bottom);//画笔定位
LineTo(Rect.Right, Rect.Bottom);//画白色的横线,合并行的效果
//MoveTo(Rect.Right, Rect.Top);//画笔定位
//LineTo(Rect.Right, Rect.Bottom);//画白色的竖线,合并列的效果
end;
end;
end;
你加上对Rows的判断就可以按区域拆分网格线了,当然这不是真正意义的单元格合并,最好结合StringGrid控件做,StringGrid在前台,DBGrid在后台,填写数据时你还必须加上判断,哪行添,哪行不添,确实不省事,但也是不得已的办法,不可能找到第二条路的,只能这么做。
如果想实现上图的效果你还必须用代码灵活设置Grid单元格的高度或宽度。
愿你成功。 参考技术A dbgridEh不是第三方控件吗?想要实现还是借助第三方控件比较好实现,我目前使用的是TMS套件的advStringGrid,有点类似于delphi自带的stringgrid,通过这个可以轻松实现你要的效果!
advStringGrid1.MergeCells(0,0,2,1);//一句代码实现合并单元格追问
问题是原先基于dbgridEh写的功能太多,换控件代价太大呀,大大!
追答用DBGridEh是不能合并单元格的,你自己重写这个控件估计也很难实现的,要不就找个折中的方案,你还用DBGridEh做数据处理,然后显示的时候用AdvstringGrid来显示!就是操作DBgrid数据后,把DBGrid的数据读取下来,然后再更新到AdvStringGrid。
参考技术B Eh做不了这个的,有专门的凭证表格的 参考技术C 依稀记得是 币别||单位这样来实现的追问
我不是问多表头哦.是多行单元格.
如何将多行单元格数据转变成一行?这个Excel技巧你一定不知道!
在Excel表格中,怎样快速的将多行数据转变成一行?其实有三种非常简单的方法,下面我来给大家分享一下,希望能够帮助大家!
如何将多行单元格数据转变成一行?这个Excel技巧你一定不知道!
方法一:利用函数公式
首先输入辅助列"、",然后在单元格中输入函数"=PHONETIC",选中单元格数据即可。
具体操作如下:
如何将多行单元格数据转变成一行?这个Excel技巧你一定不知道!
方法二:利用F9运算符
在单元格中输入"=",选中单元格数据,在编辑状态下按"F9"键,删除数据的头尾的符号。按快捷键"Ctrl+H"弹出查找和替换框,符号替换为"、"即可。
具体操作如下:
如何将多行单元格数据转变成一行?这个Excel技巧你一定不知道!
方法三:利用剪切板
选中单元格数据进行复制,打开剪切板,将数据粘贴到另一个单元格中,按快捷键"Ctrl+H"弹出查找替换框,按"Ctrl+J"将查找内容更换为"换行符"即可。
具体操作如下:
如何将多行单元格数据转变成一行?这个Excel技巧你一定不知道!
以上就是今天分享的Excel技巧了。怎么样大家有没有学会呢?
以上是关于delphi DBgridEh多行单元格如何实现~急!!的主要内容,如果未能解决你的问题,请参考以下文章
delphi中如何设置DBGridEH第一列为下拉列,并使其控制表格筛选
你好,请教个问题,就是delphi中DBGridEh的统计行数据如何实现的
在delphi中如何实现cxGrid控件一个单元格显示多个操作按钮
DbGridEh 一个单元格的值改变时另一单元格的值随之改变