导航
  • 主页
  • API 调用
  • 基础类
  • 控件与界面
  • 数据库相关
  • DataWindow
  • 项目管理
  • Web 应用
  • 脚本语言

如何实现这个窗口?急呀!

roor 2003-01-07 12:37:43
我想实现的DW显示风格如下表:
共两个字段用字段B进行分组,同一组的字段A以N-Up分栏显示。
显示效果如下:

字段B:1
----------------------------------
字段A_1 字段A_2 字段A_3 字段A_4
21 43 53 12
32 56 42 67
----------------------------------
字段B:2
----------------------------------
字段A_1 字段A_2 字段A_3 字段A_4
23 34 76 97
3533 353 533 6534
----------------------------------

说明:我试了几个方法都不太理想,每组显示字段A的那块第二行总是空的,但数据是不少的,只是空了一行就只每组字段A的第二行,后面如还有数据不会空行,显示正常。
...全文
4 点赞 收藏 25
写回复
25 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
ropriest 2003-01-09
to: ropriest
能具体说说么?谢谢!

用freeform的格式可以你要求的格式,对于多个不同的字段可以,但是不能让A字段分栏显示。
用N-UP格式的,我试了一下,能显示,但是数据好像不对!
回复
roor 2003-01-09
TO:flamefiredelphi(flamefire)
你试试用只有A,B两个字段的表。
用B字段分组,A字段分栏显示试试。
也就是用N-Up格式,把显示的列数选为大于1,然后再分组试试!
回复
msfmegry 2003-01-09
建议用存存储过程.
回复
banalman 2003-01-09
// Declare cursor emp_curs for employee table retrieval.

DECLARE emp_curs CURSOR FOR
SELECT emp_id, emp_name FROM EMPLOYEE
WHERE emp_state = :sle_1.text;

// Declare local variables for retrieval.

string emp_id_var
string emp_name_var

// Execute the SELECT statement with

// the current value of sle_1.text.
OPEN emp_curs;

// At this point, if there are no errors,

// the cursor is available for further
// processing.

Fetching rows

In the singleton SELECT, you specify variables to hold the values for the columns within the selected row. The FETCH statement syntax is similar to the syntax of the singleton SELECT. Values are returned INTO a specified list of variables.
回复
roor 2003-01-09
问题还没有解决......
啊扑!
不管怎样,我星期天结贴,包括上面提到的另外两个贴子。
回复
lzbyy 2003-01-08
不会,也看不懂!!

—————————————————————————————————
┏━★━━◆━━★━┓
♂欢|◢CSDN◣|使♂        ▲自由保存帖子,浏览,关注检测
┃迎|◥论坛助手◤|用┃        ▲完善的CSDN客户端工具
┗━☆━━◇━━━☆┛       ▲自动添加签名......

让你更快,更爽,更方便地上CSDN...
http://www.csdn.net/expert/topic/573/573604.xml
http://www.chinaok.net/csdn/csdn.zip
回复
roor 2003-01-08
我顶!
高手快来呀
回复
flamefiredelphi 2003-01-08
不知道你们是怎么做的,我做的完全和你的目的一样阿!
我刚才建了一个表字段为a1,a2,a3,a4,a5,b
然后用n_up格式,我把显示的列数选为1,然后就用creat group,用b
分组!然后再画两条线,和你的一摸一样!
回复
roor 2003-01-08
TO:Hanson_bati_zhu(欺世盗名之徒)
非常感谢!
你这个方法我试过的,我用FREE风格用GROUP风格用N-Up风格等生成的数窗的源文件按你说的方法改都不行,第一组分栏的第二行是空行,后面组也有但不一定。刚刚又用Tabular风格试了一下,还是同样的现象。
不知你做的数据窗是什么不正常?

我觉得ice2water(大冰)的方法可能行,但具体我不会做,你能详细说说么?
用存储过程,先建一临时表:
#tmp(id_b, id_a_1, id_a_2, id_a_3, id_a_4)
然后用游标将数据根据要求加入,再用group做分组。
如果每个字段B都需要标题,那只能硬做:
也是用存储过程,建一临时表:
#tmp(tmp char(100))
用游标将数据转换成字符串加入
回复
888888888888 2003-01-08
group
回复
Hanson_bati_zhu 2003-01-08
另外
如果你每个组的记录数都是分列数的整数倍
比如分4列,每组的记录数都是4的整数倍,如4、8、12、16...

那我的这个试验应该说是可以凑合用的

呵呵

或者

如果你能想办法
在检索出的记录中动态加入一些空值,以使每组的记录数能够达到列数的整数倍,并让这些空记录排列在组内记录的后面
这样也可以解决问题

试试看

回复
Hanson_bati_zhu 2003-01-08
我作了个试验
发现列表的格式与你的要求相似
但结果却是错的
看来PB的DW不支持在N-UP中分组

如果你有兴趣可以试试看

----------------------------------------------
比如表结构和数据如下
表AA

字段 TYPE VARCHAR(2)
字段 ID VARCHAR(2)

数据如下
TYPE ID
------ ------
01 01
01 02
01 03
01 04
02 01
02 02
02 03
02 04
02 05
03 01
03 02
03 03
03 04
03 05


先试验
SELECT TYPE,ID FROM AA
建立一个Tabular型的DW
设置排序为按照TYPE和ID排序
然后以TYPE字段为分组条件增加一个分组
并将TYPE字段移动到分组HEADER区中

然后将这个新建的DW导出为SRD文件
再用PB中的文件编辑器打开这个SRD文件

在第三行(即datawindow.....那行)的最后的括号前添加:
rows_per_detail = 4
这里的4是指你要分多少列
注意,添加部分前应该与原有代码间保留一个空格

然后在SRD文件的后面找到column(band=detail id=2 .....这行

将这行复制后,删除原来这条语句,再CTRL+V来粘贴四次
将这四条语句中的name=id分别改为:
row_in_detail=1 name=keyid_1
row_in_detail=2 name=keyid_2
row_in_detail=3 name=keyid_3
row_in_detail=4 name=keyid_4

修改后,保存当前SRD文件
在库画笔中将这个SRD文件导入
现在再进入DW画笔修改这个DW
将DETAIL区中的四个叠加在一起的列对象排列一下顺序
然后,检索一下试试


回复
roor 2003-01-07
我还开了另两个贴子:(同一个问题,因为很急所以才...请版主见凉。)
http://expert.csdn.net/Expert/topic/1330/1330382.xml?temp=.2390863
http://expert.csdn.net/Expert/topic/1334/1334725.xml?temp=.8328058
如果问题解决这两贴的分一并送上。
回复
roor 2003-01-07
to: leepoy
N-Up风格能分组么?菜单上的分组选项是灰的!我是直接对源代码加分组命令实现的分组的,但分栏部份不正常,会出现空行。

to: ropriest
能具体说说么?谢谢!

to: ice2water
游标我不会用,你能给段类似的代码看看么?

to: Hanson_bati_zhu
我用的是ASA,是不是很土呀! ;)

先谢谢大家了,这个窗口对我很重要,我要用它来打印很多编码的(类似条形码)要是不分组很难对不同类别的编码进行管理,如果不分栏又不利于查看也浪费纸张。
我对PB不是很精通,所以最好能有代码或具体的操作方法。
搞定后一定再送分! ;)
回复
th820901 2003-01-07
这么多高手在,顶罢!
回复
Hanson_bati_zhu 2003-01-07
你用的是什么数据库啊?
如果是ORA就爽了
回复
ice2water 2003-01-07
对不起,先没有看清题目的意思。可以这样做:
用存储过程,先建一临时表:
#tmp(id_b, id_a_1, id_a_2, id_a_3, id_a_4)
然后用游标将数据根据要求加入,再用group做分组。
如果每个字段B都需要标题,那只能硬做:
也是用存储过程,建一临时表:
#tmp(tmp char(100))
用游标将数据转换成字符串加入
回复
ropriest 2003-01-07
分组,可以实现这个功能!
回复
bomber2001 2003-01-07
up
回复
leepoy 2003-01-07
数据窗口用n_up类型
创建两个分组,group 1 :字段B
GROUP 2:字段A
回复
发动态
发帖子
PowerBuilder
创建于2007-09-28

816

社区成员

PowerBuilder 相关问题讨论
申请成为版主
社区公告
暂无公告