今天遇到一个需求:在做页面输入验证的时候,如果用户没有输入某个项,那么这个项显示为红色,一直没头绪,也找peoplebook,发现field有一个style的方法,后来又在谷歌上找,终于找到了方法:  Just to check, did you include custom stylesheet in PSSTYLEDEF? That is a key step in order to use any custom style sheet in PeopleCode or anywhere in app designer. This is what I did (a similar requirement) 

1) Define custom stylesheet, background #94CFC9 
2) Include the custom stylesheet in PSSTYLEDEF (our default style for Portal) 
3) Loop in peoplecode to find difference(as you did) and that's it.

代码贴图(row的saveedit级别):

/*判断补签的时间段是否符合补签规则*/
Local datetime &PUNCH_DTTM_1;
Local datetime &PUNCH_DTTM_2;
Local datetime &PUNCH_DTTM_3;
Local datetime &PUNCH_DTTM_4;
 
Local string &KL_RPCH_FST_ST_WRK;
Local string &KL_RPCH_FST_OF_WRK;
Local string &KL_RPCH_SND_ST_WRK;
Local string &KL_RPCH_SND_OF_WRK;
Component string &SHOW_ERROR_FLAG;
 
&KL_RPCH_FST_ST_WRK_FLD = GetRow().GetRecord(Record.KL_RPNH_CRD_TBL).GetField(Field.KL_RPCH_FST_ST_WRK);
&KL_RPCH_FST_OF_WRK_FLD = GetRow().GetRecord(Record.KL_RPNH_CRD_TBL).GetField(Field.KL_RPCH_FST_OF_WRK);
&KL_RPCH_SND_ST_WRK_FLD = GetRow().GetRecord(Record.KL_RPNH_CRD_TBL).GetField(Field.KL_RPCH_SND_ST_WRK);
&KL_RPCH_SND_OF_WRK_FLD = GetRow().GetRecord(Record.KL_RPNH_CRD_TBL).GetField(Field.KL_RPCH_SND_OF_WRK);
 
&EMPLID = GetRow().KL_RPNH_CRD_TBL.EMPLID.Value;
&EFFDT = GetRow().KL_RPNH_CRD_TBL.KL_ATTENDANCE_DT.Value;
&KL_RPCH_FST_ST_WRK = GetRow().KL_RPNH_CRD_TBL.KL_RPCH_FST_ST_WRK.Value;
&KL_RPCH_FST_OF_WRK = GetRow().KL_RPNH_CRD_TBL.KL_RPCH_FST_OF_WRK.Value;
&KL_RPCH_SND_ST_WRK = GetRow().KL_RPNH_CRD_TBL.KL_RPCH_SND_ST_WRK.Value;
&KL_RPCH_SND_OF_WRK = GetRow().KL_RPNH_CRD_TBL.KL_RPCH_SND_OF_WRK.Value;
SQLExec("SELECT A.PUNCH_DTTM_1,A.PUNCH_DTTM_2,A.PUNCH_DTTM_3,A.PUNCH_DTTM_4 FROM PS_KL_ORGL_PNH_TBL A WHERE A.EMPLID = :1 AND A.KL_ATTENDANCE_DT = :2", &EMPLID, &EFFDT, &PUNCH_DTTM_1, &PUNCH_DTTM_2, &PUNCH_DTTM_3, &PUNCH_DTTM_4);
 
&KL_RPCH_FST_ST_WRK_FLD.Style = "PSEDITBOX";
&KL_RPCH_FST_OF_WRK_FLD.Style = "PSEDITBOX";
&KL_RPCH_SND_ST_WRK_FLD.Style = "PSEDITBOX";
&KL_RPCH_SND_OF_WRK_FLD.Style = "PSEDITBOX";
 
 
/*对比取补签时间段*/
If &KL_RPCH_FST_ST_WRK = "Y" And
      All(&PUNCH_DTTM_1) Then
   
   &KL_RPCH_FST_ST_WRK_FLD.Style = "PSERROR"; /*对错误的,显示红色*/
   &SHOW_ERROR_FLAG = "Y"
End-If;
 
If &KL_RPCH_FST_OF_WRK = "Y" And
      All(&PUNCH_DTTM_2) Then
   
   &KL_RPCH_FST_OF_WRK_FLD.Style = "PSERROR";
   &SHOW_ERROR_FLAG = "Y"
End-If;
 
If &KL_RPCH_SND_ST_WRK = "Y" And
      All(&PUNCH_DTTM_3) Then
   
   &KL_RPCH_SND_ST_WRK_FLD.Style = "PSERROR";
   &SHOW_ERROR_FLAG = "Y"
End-If;
 
If &KL_RPCH_SND_OF_WRK = "Y" And
      All(&PUNCH_DTTM_4) Then
   
   &KL_RPCH_SND_OF_WRK_FLD.Style = "PSERROR";
   &SHOW_ERROR_FLAG = "Y"
End-If;

理解:首先这里定义的 &KL_RPCH_SND_OF_WRK_FLD.Style = "PSERROR",它是根据page的stylesheet来的,一般来说,我们建好page之后,page的style是默认的,那个这个默认的stylesheet名称叫:PSSTYLEDEF,在ADD打开它之后,发现里面有很多样式定义,其中就有“PSERROR ”,“PSEDITBOX”的样式定义。 peoplebook:http://docs.oracle.com/cd/E13292_01/pt849pbr0/eng/psbooks/tapd/chapter.htm?File=tapd/htm/tapd17.htm

设置field的背景颜色以及对stylesheet的理解的更多相关文章

  1. iOS 设置状态栏的背景颜色

    设置状态栏的背景颜色 - (void)setStatusBarBackgroundColor:(UIColor *)color { UIView *statusBar = [[[UIApplicati ...

  2. 设置 tableview 的背景 颜色 和清空

    表示图中Cell默认是不透明的,那么在设置表示图的背景颜色和图片时通常是看不到的 1.给tableView设置背景view UIImageView *backImageView=[[UIImageVi ...

  3. linux BASH shell设置字体与背景颜色

    linux BASH shell下设置字体及背景颜色的方法. BASH shell下设置字体及背景颜色  echo -e "\e[31mtest\e[41m"  \e[30m 将字 ...

  4. VC编程中如何设置对话框的背景颜色和静态文本颜色

    晚上编一个小程序,涉及到如何设置对话框的背景颜色和静态文本颜色.这在VC6.0中本来是一句话就搞定的事.在应用程序类中的InitInstance()函数添加: //设置对话框背景和文本颜色 SetDi ...

  5. linux BASH shell下设置字体及背景颜色

    BASH shell下设置字体及背景颜色 echo -e "\e[31mtest\e[41m" \e[30m 将字符的显示颜色改为黑色 \e[31m 将字符的显示颜色改为红色 \e ...

  6. 设置 tableview 的背景颜色,总是不生效

    1.只设置了背景图片,却忘记了取消掉 cell 的背景颜色(可以通过层次结构来观察) UIImageView *bgView = [[UIImageView alloc]initWithFrame:s ...

  7. Chrome&FF&Opera&下DIV不设置高度显示背景颜色和边框的办法

    今天在排版的时候,外层的div不写高度的话背景颜色和边框没法办法显示,但是在IE下面就可以,这个有三个解决办法. 第一: 直接给最外层的div设置高度(不推荐). 第二: 在内部每个div后添加一个清 ...

  8. div没有设置高度时背景颜色不显示(浮动)

    在使用div+css进行网页布局时,如果外部div有背景颜色或者边框,而不设置其高度,在IE浏览器下显示正常.但是使用Firefox/opera浏览时却出现最外层Div的背景颜色和边框不起作用的问题. ...

  9. 学习windows编程 day3 之 设置当前的背景颜色

    LRESULT CALLBACK WndProc(HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam) { HDC hdc; PAINTSTRU ...

随机推荐

  1. 如何将MVC Areas中的某一个页设为起始页

    area的默认页: routes.MapRoute( name: "MyArea", url: "{controller}/{action}/{id}", de ...

  2. div的contenteditable和placeholder蹦出的火花

    今天在做手机端发布描述内容时,需要实现换行,还需要有plachholder. 在文本框中换行自然想到了textarea. 问题似乎已经解决了,但是当内容发布后,在html中显示换行都丢失了. 这个时候 ...

  3. easyui tabs内容panel自适应窗体宽度方法

    废话不说,直接上代码: $('#Teacherwin_details').window({ title: '查看教职工信息', width: 800, height: 520, top: ($(win ...

  4. (medium)LeetCode 210.Course Schedule II

    There are a total of n courses you have to take, labeled from 0 to n - 1. Some courses may have prer ...

  5. [ACDream 1430]SETI 后缀数组

    题目链接:http://acdream.info/problem?pid=1430 题目大意:给你一个长度不超过10000的字符串,问你出现过两次或两次以上的不重叠的子串有多少个. 后缀数组计算出he ...

  6. 【原】基于64位Centos6.2的mcrouter使用简介

    此文转载必须注明原文地址,请尊重作者的劳动成果!  http://www.cnblogs.com/lyongerr/p/5040071.html 目录 文档控制... 2 1 mcrouter简介.. ...

  7. (转)由Uploadify插件想到的Flash无法传递Session和Cookie的问题解决

    在ASP.NET MVC3中使用Uploadify上传文件时发现,在后台需要验证登录状态的时候,Uploadify根本无法完成验证,因此,在后台只能使用非验证状态进行文件上传 —— 众所周知,这无异于 ...

  8. Android——Dialog

    public class DialogActivity extends Activity { //进度对话框    ProgressDialog progressDialog; @Override   ...

  9. onmousemove和onmouseout事件的调用,和js使用双引号、单引号的时候应该注意的问题

    使用js的时候,统一使用双引号,然后通过反斜杠进行转义 ①如果同时使用单引号.和双引号的情况下容易出现问题,导致标签中表示的事件不能调用, ②导致由于标签没有封口而出现样式布局错误 <!DOCT ...

  10. [转]iOS技巧之获取本机通讯录中的内容,解析通讯录源代码

    一.在工程中添加AddressBook.framework和AddressBookUI.framework 二.获取通讯录 1.在infterface中定义数组并在init方法中初始化 ? 1 2 3 ...