胡刚的菜园

我和我的菜园,一起草长,一起莺飞
Focus on PeopleSoft & The Releated Technical skills……

  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

Gird在PeopleSoft中的用法是比较普遍的,通常可以用来维护一个列表,PeopleSoft自身的机制是可以对单表进行添加和修改,但在实际运用中会遇到一些特殊的情况,这时可以借助PeopleCode来达到我们的需求。

如何在显示前过滤数据,使得Grid只列出符合逻辑要求的数据?
在默认情况下,Grid会显示数据库表里面所有的数据,但有时我们希望只显示某一部分数据,这时我们可以在Record.Field.RowInit数据加载时过滤数据。假设Page设计为2个Level.
 
 

Local Rowset &HDR_ROWSET, &LINE_ROWSET, &LINE_ROWSET2;
Local Record &LINE_REC, &LINE_REC2, &LINE_REC3, &LINE_REC4;

&HDR_ROWSET = GetLevel0();

&LINE_ROWSET = &HDR_ROWSET(1).GetRowset(1);如果一个component里面有多个page,则根据page所处的位置依次叠加。

&LINE_REC = &LINE_ROWSET(1).DBS_SECAUDT_VW4; 说明:DBS_SECAUDT_VW4是Grid里面要加载的view
&Condition = "where AUTHORIZED_OPRID=:1 or DBS_SEC_AUTHOPR=:2";说明:设置过滤条件,只加载AUTHORIZED_OPRID或者DBS_SEC_AUTHOPR等于某一个人的数据。

ScrollFlush(Record.DBS_SECAUDT_VW4);说明:将Grid里面的数据清空。
ScrollSelect(1, Record.DBS_SECAUDT_VW4, Record.DBS_SECAUDT_VW4, &Condition, %OperatorId, %OperatorId);说明:将符合条件的数据填充到Grid中。
至此,页面加载的时候就只会列出符合条件的数据了

posted on 2010-10-11 21:01  胡刚的菜园  阅读(759)  评论(1编辑  收藏  举报