PS中OriginalValue的使用(转)

Originalvalue的使用注意:

Peoplecode是这么解释Originalvalue的使用方法的:

Originalvalue返回一个Field的值,这个值是从数据库中取得的,不管用户是否改变了这个值,它始终都是来至数据库。(需要注意的是:由于它是来至数据库的,所以对于那些Derived/work record来说是不会起作用的,应为这些record根本就不是存储数据的,根本从数据库中取不到数据)

案例分析:

今天遇到一种情况,在一个非Derived/work record的field的fieldchanged事件中确取不到Originalvalue的值。

WinMessage(GHAC_FOR_PRINT.EMPLID.OriginalValue);

但是WinMessage(GHAC_FOR_PRINT.EMPLID.Value);却是可以的。

后来使用&rs =GetLevel0()(1).GetRowset(Scroll.GHAC_FOR_PRINT);来获取到一行的数据再使用winmessage弹出其Originalvalue结果还是空值。百思不得其解,难道是fieldchanged中不能使用Originalvalue?但是好像没有这个限制。然后就看一些用到Originalvalue的代码,发现没有这个限制。然后就又尝试如下代码:

   &rs =CreateRowset(Record.GHAC_FOR_PRINT);

   &i = &rs.Fill("where EMPLID=:1", &emplid);

  &rs.GetRow(1).GHAC_FOR_PRINT.EMPLID.Value = "234455";

  WinMessage(&rs.GetRow(1).GHAC_FOR_PRINT.EMPLID.OriginalValue |"%%%%%%" | &rs.GetRow(1).GHAC_FOR_PRINT.EMPLID.Value);

我自己从数据库中筛选出来一些值,然后试试Originalvalue有没有值,结果一试有值。

这证明使用Originalvalue它的record是有一定限制的,必须是从数据库直接取到的。我就去查自己的代码,发现原来使用&rs =GetLevel0()(1).GetRowset(Scroll.GHAC_FOR_PRINT)的集合数据都是后来才插进这个rowset的,并不是直接从数据库中取到的,这更加印证了这一点。

&getInfo =GetSQL(SQL.GHAC_GETINFO_APPLY, &emplId, &startDT, &endDT,&status, &resOprid);

&rs.Flush();

&isFirstFetch = True;

While&getInfo.Fetch(&emplIdInfo, &dateApplied, &dateRange,&incomeType, &formatReq, &nationalId, &income,&income_prom, &printStatus, &applyOpr, &applyDate,&PrintOpr, &printDate)

   If &isFirstFetch = True Then

      &isFirstFetch = False;

      &i = 1;

   Else

      &rs.InsertRow(&i);

      &i = &i + 1;

   End-If;

   &rs(&i).GHAC_FOR_PRINT.EMPLID.Value= &emplIdInfo;

  &rs(&i).GHAC_FOR_PRINT.DATE_APPLIED.Value = &dateApplied;

  &rs(&i).GHAC_FOR_PRINT.GHAC_DATE_RANGE.Value = &dateRange;

  &rs(&i).GHAC_FOR_PRINT.GHAC_INCOME_TYPE.Value = &incomeType;

   &rs(&i).GHAC_FOR_PRINT.GHAC_FORMAT_REQ.Value= &formatReq;

  &rs(&i).GHAC_FOR_PRINT.NATIONAL_ID.Value = &nationalId;

  &rs(&i).GHAC_FOR_PRINT.GHAC_INCOME.Value = &income;

  &rs(&i).GHAC_FOR_PRINT.GHAC_INCOME_PROMPT.Value =&income_prom;

   &rs(&i).GHAC_FOR_PRINT.GHAC_PRINT_STATUS.Value= &printStatus;

  &rs(&i).GHAC_FOR_PRINT.LAST_UPDT_OPRID.Value = &applyOpr;

  &rs(&i).GHAC_FOR_PRINT.GHAC_APPLY_DT.Value = &applyDate;

   &rs(&i).GHAC_FOR_PRINT.OPRID2.Value= &PrintOpr;

   &rs(&i).GHAC_FOR_PRINT.DATETIME_PRINTED.Value= &printDate;

End-While;

&getInfo.Close();

转载于:https://www.cnblogs.com/dereklau2012/archive/2013/05/21/3090753.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
经导师精心指导并认可、获 98 分的毕业设计项目!【项目资源】:微信小程序。【项目说明】:聚焦计算机相关专业毕设及实战操练,可作课程设计与期末大作业,含全部源码,能直用于毕设,经严格调试,运行有保障!【项目服务】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。 经导师精心指导并认可、获 98 分的毕业设计项目!【项目资源】:微信小程序。【项目说明】:聚焦计算机相关专业毕设及实战操练,可作课程设计与期末大作业,含全部源码,能直用于毕设,经严格调试,运行有保障!【项目服务】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。 经导师精心指导并认可、获 98 分的毕业设计项目!【项目资源】:微信小程序。【项目说明】:聚焦计算机相关专业毕设及实战操练,可作课程设计与期末大作业,含全部源码,能直用于毕设,经严格调试,运行有保障!【项目服务】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。 经导师精心指导并认可、获 98 分的毕业设计项目!【项目资源】:微信小程序。【项目说明】:聚焦计算机相关专业毕设及实战操练,可作课程设计与期末大作业,含全部源码,能直用于毕设,经严格调试,运行有保障!【项目服务】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值