征求交叉统计打印方案!!(200分)

  • 主题发起人 主题发起人 zaochao
  • 开始时间 开始时间
Z

zaochao

Unregistered / Unconfirmed
GUEST, unregistred user!
我有一PORDOX7的数据库,结构如下:
论文编号 论文题目 论文等级 科室名称 作者名称。。。
现用DECISION CUDE控件做交叉分析,结果如下:
论文等级
国家级 省级 市级 中华级 SUM
科室名称
眼科 4 5 5 2 16
口腔科 3 4 2 0 9
外科 8 9 5 3 25
内科 7 8 6 4 25

SUM 。。。
现在想打印出来请问有何方案??各位高手请帮我搞定!!
 
bakubaku的EasyGrid不行么?
 
fastreport一试就行
 
我希望可以不用别的控件,用DELPHI自己的控件来完成这些功能!!有可能吗?
 
算你走运,我去年刚做过这个
先做个临时表,字段和你刚才列的那些一样
然后每次要打印时,先把表清空,然后逐行逐列把DECISION GRID中的数据写到
临时表中,用临时表做报表的数据源。
DECISION GRID中要注意CELLS,COLCOUNT,ROWCOUNT,FIXEDCOLS,FIXROWS 这几个
FIXEDCOLS,FIXEDROWS是表头,要把它们除外
 
yherxl:
能给我发个例子吗?谢谢了!!
 
很简单呀,用一个循环把DecisionGrid的内容复制到一个StringGrid,再用打印控件
把StringGrid的内容打印出来。我做了一个打印StringGrid、DBGrid等的控件,有原
码你可以拿去用用。
 
给你参考一下:
with decisiongrid1do
begin
for i:=-1 to colcount-fixedcols-1do
for j:=-1 to rowcount-fixedrows-1do
begin
pa[i,j]:=cells[i,j];
if (j=-1) and (pa[i,j]='Sum') then
pa[i,j]:='合计(件)';
if (j=-1) and (pa[i,j]='Color') then
pa[i,j]:=dmform.curOrdercpattern.asstring;
//combobox1.Text;
end;
end;


//get data from decisiongrid to tbltemp
tbltemp.Close;
//tbltemp.EmptyTable;
tbltemp.Active:=true;
while not tbltemp.eofdo
tbltemp.delete;
for j:=-1 to decisiongrid1.RowCount-decisiongrid1.fixedrows-2do
begin
k:=0;
tbltemp.append;
for i:=-1 to decisiongrid1.colCount-decisiongrid1.fixedcols-1do
begin
tbltemp.Fields[k].asstring:=pa[i,j];
k:=k+1;
end;
tbltemp.post;
tbltemp.Next;
end;
 
感谢各位了,特别是yherxl,下次还请多多关照!!
 
后退
顶部