PeopleSoft-页面报表多条件搜索功能
第一种
1 | Local Rowset &rs = GetRowset(Scroll.C_SAL_QRY_VW); |
第二种
1 |
|
注意
在使用Rowset的Fill方法时,需要注意,不要为Rowset定义别名,否则会查不出数据的;
![](/2020/12/22/PeopleSoft-%E9%A1%B5%E9%9D%A2%E6%8A%A5%E8%A1%A8%E5%A4%9A%E6%9D%A1%E4%BB%B6%E6%90%9C%E7%B4%A2%E5%8A%9F%E8%83%BD/20210115224726.png)
捕获错误
原表中有datetime类型,使用视图SQL时;原表中的datetime可以正常在视图中使用;
但是,如果该视图在页面中被作为Rowset使用,那么使用Rowset的select /fill/scrollselect 等(即第一种方式);
搜索时,会默认转换为char(string类型),而页面中如果直接用视图中的datetime字段,会导致页面报错 sql error;
如下:
1 | PSAPPSRV.9263 (2123) [2021-02-08T18:00:34.030 SIE_ZL@192.168.0.252 (CHROME 88.0.4324.150; WIN10) ICPanel] XJFyb8kCIOQsQA 767851693135939585 SIE_ZL (3) File: /vob/peopletools/src/psppr/ramget.cppSQL error. Stmt #: 709 Error Position: 0 Return: 1841 - ORA-01841: (full) year must be between -4713 and +9999, and not be 0 |
解决方式:在视图中,用string类型字段替换datetime类型字段;或者,页面中datetime类型字段用string类型字段替换;