起步软件技术论坛-X3

 找回密码
 立即注册
搜索
楼主: snowman

【搞定】[请求]复杂需求**

[复制链接]
发表于 2007-6-15 09:37:23 | 显示全部楼层
没有实现 搁浅了
回复 支持 反对

使用道具 举报

发表于 2007-6-15 13:43:51 | 显示全部楼层
哦,不知道 ccjava  的例子做的怎样了
我现在用透视数据集和数据网格来做的
首先,
1、建一个透视数据集,设置,商品名称和商品编码为行维,仓库为列维,数量和金额为项。并选中列小计
2、根据这个透视数据集创建一个数据网格
3、选中数据网格的 ShowBands   和 ShowRowNumber 属性, 并取消 ShowIndicator 属性
4、在数据集的 AfterOpen 事件中,取动态创建bands,设置bands的caption,并控制透视数据集列维转制成字段的显示名称
根据 DataSetBrokerTSSJJ1.DataSet.FieldCount 创建bands,因为bands是字段的一半,
根据 DataSetBrokerTSSJJ1.DataSet.FieldCount 循环设置colunm 属于哪个bands
根据 TSQLDataSet(DataSetBrokerTSSJJ1.DataSet).BizFields.DisplayName 显示名称中是否有'_'这个,修改字段的显示名称
代码参考如下:
var
  i,ii: integer;
  s:String;
begin
  ii:= 0;
  for i:=0 to ((DataSetBrokerTSSJJ1.DataSet.FieldCount div 2)-1) do
  begin
    s:= TSQLDataSet(DataSetBrokerTSSJJ1.DataSet).BizFields[ii].DisplayName;
    if i<>0 then
    DataGrid.Bands.Add;
    if StringUtils.Pos('_',s)=0 then
       DataGrid.Bands.Items.Caption := '商品信息'
    else if StringUtils.Pos('*',s)=0 then
       DataGrid.Bands.Items.Caption := StrUtils.leftStr(TSQLDataSet(DataSetBrokerTSSJJ1.DataSet).BizFields[ii].DisplayName,6)
    else
       DataGrid.Bands.Items.Caption := '合计';
    ii:=ii+2;
  end;
  ii:=0;
  for i:=0 to  DataGrid.ColumnCount-1 do
  begin
    if (Trunc(i/2)<>0) then
       if (i mod 2 =0) then
          ii:=ii+1;
       DataGrid.Columns.BandIndex := ii;

  end;
  for i:=0 to  DataGrid.ColumnCount-1 do
  begin
    s:= TSQLDataSet(DataSetBrokerTSSJJ1.DataSet).BizFields.DisplayName;
    if StringUtils.Pos('_',s)>0 then
       TSQLDataSet(DataSetBrokerTSSJJ1.DataSet).BizFields.DisplayName:= StrUtils.rightStr(s,4)
  end;
end;

效果图,见附件,现在还剩下最后一行的汇总了,

有两种方法,
一是增加这样一条记录出来,然后去掉列头的排序,
二是代码来创建页脚汇总,这样就需要在第三步选中 ShowSummaryFooter 属性
这些请楼主自己研究研究,设置页脚汇总可以参考这个帖子,然后写相应的代码
http://bbs.justep.com/forum.php?mod=viewthread&tid=1229

1.gif

3.5 KB, 下载次数: 300

回复 支持 反对

使用道具 举报

 楼主| 发表于 2007-6-15 14:18:19 | 显示全部楼层
最初由 atiger 发布
[B]哦,不知道 ccjava  的例子做的怎样了
我现在用透视数据集和数据网格来做的
首先,
1、建一个透视数据集,设置,商品名称和商品编码为行维,仓库为列维,数量和金额为项..

以下省略...... [/B]


atiger 好厉害,我去试一下
回复 支持 反对

使用道具 举报

发表于 2007-6-15 14:55:22 | 显示全部楼层
惭愧惭愧,
回复 支持 反对

使用道具 举报

 楼主| 发表于 2007-6-15 17:48:31 | 显示全部楼层
太谦虚了

还在试验中
回复 支持 反对

使用道具 举报

发表于 2007-6-18 10:18:27 | 显示全部楼层
我做的有点问题,帮忙看下,如图:
这个是怎么回事?

有问题.jpg

16.56 KB, 下载次数: 281

回复 支持 反对

使用道具 举报

发表于 2007-6-18 10:45:27 | 显示全部楼层
我要的效果图如下

没问题.jpg

28.96 KB, 下载次数: 277

回复 支持 反对

使用道具 举报

发表于 2007-6-18 11:10:30 | 显示全部楼层
你是说行号不对 吗?
不是从1开始,而是从311开始?
SP007是第一条记录? 如果是,看不出来,把资源上传上来,并告知功能的具体位置,我还原看看
回复 支持 反对

使用道具 举报

发表于 2007-6-18 12:16:10 | 显示全部楼层
把图改成如图的说明就行了:

有问题.jpg

21.76 KB, 下载次数: 272

回复 支持 反对

使用道具 举报

发表于 2007-6-18 12:25:48 | 显示全部楼层
补19楼的图

有问题1.jpg

22.8 KB, 下载次数: 272

回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Justep Inc.

GMT+8, 2025-1-11 23:41 , Processed in 0.042247 second(s), 15 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表