CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
可用分押宝游戏火热进行中... 专题改版:Java Web 专题
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  PowerBuilder >  DataWindow

在DW Painter中获得某字段的值

楼主PHizingHelen(PHizing)2004-12-03 14:46:29 在 PowerBuilder / DataWindow 提问

我有个DW,得到的值如下所示:  
    sio           ID               value  
    B               107               300  
    B               103               500  
    S               109               200  
    S               106               400  
   
  如果我在painter中,通过表达式max(   if(   sio   =   'B',   value,   0   )   for   all   )可以得到最大的value值是500,现在,我想通过500找到它对应的ID值103,怎么办?不能在代码中写,必须在DW   Painter中用DW   Painter的函数。  
   
  还有一个问题:用上面的DW例子.我写max(   if(   sio   =   'B',   value,   0   )   for   all   )可以得到最大值500,但是,如果我写min(   if(   sio   =   'B',   value,   0   )   for   all   )却得到0,有什么办法得到300?  
   
  谢谢先!  
  问题点数:0、回复次数:10Top

1 楼PHizingHelen(PHizing)回复于 2004-12-03 16:26:18 得分 0

我自己顶一下Top

2 楼lzp_lrp(lzp)回复于 2004-12-03 18:58:59 得分 0

第一个问题,max(   if   (value   =   500,   id,   0)   for   all)即可  
  第二个问题,min(   if   (sio   =   'B',   value,   999999)   for   all)即可Top

3 楼progrose(编程小子)回复于 2004-12-03 20:38:26 得分 0

算不出最小值是因为min(   if(   sio   =   'B',   value,   0   )   for   all   )的0  
   
  Top

4 楼progrose(编程小子)回复于 2004-12-03 20:48:57 得分 0

取行数,   在pb前台用Find函数Top

5 楼renwanly(★★★★)回复于 2004-12-06 14:04:02 得分 0

第一个问题,max(if(value=max(if(sio='B',value,0)   for   all)   ,id,0)for   all)  
  第二个问题,min(   if   (sio   =   'B',   value,   99999999)   for   all)Top

6 楼renwanly(★★★★)回复于 2004-12-06 14:10:24 得分 0

不好意思,应该是这个样子  
  第一个问题,计算列   c1表达式为   max(if(sio='B',value,0)   for   all)  
  计算列c2表达式为if(value=c1,id,0)  
  第二个问题,min(   if   (sio   =   'B',   value,   99999999)   for   all)Top

7 楼PHizingHelen(PHizing)回复于 2004-12-06 17:11:16 得分 0

谢谢各位!  
  第二个问题已经搞定了,但是第一个还是不行。Top

8 楼PHizingHelen(PHizing)回复于 2004-12-09 17:54:44 得分 0

各位,我一直没解决啊Top

9 楼luotitan(泰坦)回复于 2004-12-09 18:58:36 得分 0

if(value=max(   if(   sio   =   'B',   value,   0   )   for   all   ),id,0)Top

10 楼balloonman2002()回复于 2004-12-23 16:50:57 得分 0

第一个问题直接写画板函数比较困难,我有两个建议:  
  方法一:在DETAIL区域建一个计算域叫做co_1,表达式为:  
   
  if(value   =   max(   if(   sio   =   'B',   value,   0   )   for   all   )   and   sio   =   'B',id,0)  
   
  然后在SUMMARY区域建一个计算域叫co_2,表达式为:max(co_1)即可  
   
  方法二:虽然直接写画板函数比较困难,但是写在函数里比较方便,可以建一个全局函数称:gf_xxx()里面去获取最大值所在行,然后计算域中表达式写:gf_xxx()即可  
  Top

相关问题

  • 怎样获得group dw的计算字段的值?
  • 如何自动获得DW的字段名
  • 如何获得数据库表中各字段的字段名?
  • 关于dw字段的显示!
  • 如何获得表的字段
  • 请问怎样获得字段宽度?
  • 如何获得form中字段的值?
  • 如何在dw中从一个字段跳回其上个字段
  • [请教]如何获得ACCESS表中字段的有效性规则,字段类型,字段长度等信息?
  • 如何获得数据库一个表中的字段数和字段名称?

关键词

  • 函数
  • sio
  • 表达式
  • painter
  • dw
  • 计算
  • max
  • 问题
  • 得到
  • 即可

得分解答快速导航

  • 帖主:PHizingHelen

相关链接

  • PowerBuilder类图书
  • PowerBuilder类源码下载

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
世纪乐知(北京)网络技术有限公司 版权所有, 京 ICP 证 020026 号
北京创新乐知广告有限公司 提供技术支持
Copyright © 2000-2007, CSDN.NET, All Rights Reserved
GongshangLogo