OAF 清空指定控件或区域的值

CO

if (pageContext.getParameter("ClearBtn") != null) {
            clearRegion(pageContext, webBean, "SearchPanelRN");
            String[] webBeanStr = new String[]{ "ProjectSetIdSch",  "ProjectIdSch",  "VendorIdSch" };
            clearWebBeanValue(pageContext, webBean, webBeanStr);
}

公共类

    public static void clearRegion(OAPageContext pageContext, BaseMutableUINode baseNode) {
        UINodeList nodeList = baseNode.getIndexedNodeList();
        OARenderingContext rc = pageContext.getRenderingContext();

        for (int i = 0; i < nodeList.size(rc); i++) {
            UINode node = nodeList.getUINode(rc, i);
            if (node instanceof OAWebBeanDataAttribute) {
                OAWebBeanDataAttribute nodeToClear = (OAWebBeanDataAttribute)node;
                nodeToClear.setValue(pageContext, null);
            }

            clearRegion(pageContext, (BaseMutableUINode)node);
        }
    }

    /**
     * 将一个Region下的所有的子节点清空,通常用于清空查询条件。
     */
    public static void clearRegion(OAPageContext pageContext, OAWebBean webBean, String regionId) {
        String pageLayoutId = pageContext.getPageLayoutBean().getID();

        if (pageLayoutId.equals(regionId)) {
            BaseMutableUINode baseNode = (BaseMutableUINode)webBean;
            clearRegion(pageContext, baseNode);
        } else {
            BaseMutableUINode baseNode = (BaseMutableUINode)webBean.findChildRecursive(regionId);
            clearRegion(pageContext, baseNode);
        }
    }

    /**
     * 清空指定组件的值
     * @param pageContext
     * @param webBean
     * @param strWebBeanNames   需要被清空的组件ID
     */
    public static void clearWebBeanValue(OAPageContext pageContext, OAWebBean webBean,
                                  String[] strWebBeanNames){
         {
           if (strWebBeanNames != null)
           {

             OAWebBean itemWebBean = null;
             //Search for Bean
             if (strWebBeanNames != null)
             {
               for (int i = 0; i < strWebBeanNames.length; i++)
               {
                //用这个替换大量的类型匹配instance
                 itemWebBean = webBean.findChildRecursive(strWebBeanNames[i]);
                   if (itemWebBean instanceof OAWebBeanDataAttribute) {
                       OAWebBeanDataAttribute nodeToClear = (OAWebBeanDataAttribute)itemWebBean;
                       nodeToClear.setValue(pageContext, null);
                   }

               }
             }
           }
         }
     }
时间: 2024-10-26 07:25:39

OAF 清空指定控件或区域的值的相关文章

1、CRM2011编程实战——清空指定页签下面的所有选项,并对页签下面的指定控件进行操作

需求:当页面加载时,"呼叫编号"保持不变,"任务号"自动更新,"接报时间"和"发生日期"自动设置为当天日期和时间,其它选项全部恢复为初始状态. 字段说明: 控件名称 值 控件名称 值 控件名称 值 反馈单登录 tab_4 任务号 hxcs_ftaskcode 接报时间 hxcs_fdatetimeofcasehappended 发生日期 hxcs_fdatetimeofcasehappended 呼叫编号 hxcs_fcall

WinForm 清空界面控件值的小技巧

原文:WinForm 清空界面控件值的小技巧 在WinForm里面有时候需要清空自己输入内容或是选择的选项,以便重新操作流程,那么一般你是怎么清空界面各个控件值的呢?如果窗体里面控件,尤其是TextBox控件比较多的时候,代码里面是不是要设置每个控件的Text属性值为空呢?下面我用这个例子,来探讨下清空界面控件值的小技巧.而且还能复用.不必每个窗体都做这些枯燥.无聊的工作. 一般的做法是在清除控件的事件里面添加下面这样的代码: 代码 private void btnClear_Click(obj

Qt控件窗体区域区分

控件窗体区域区分几何参数: 指的是窗口的大小和位置,一个窗口有两套几何参数,一套是窗口外边框所占的矩形区域,另一套是窗口客户区所占的矩形区域,所谓窗口客户区就是窗口中除去边框和标题栏用来显示内容的区域对于一个窗口部件来说,它的两套几何参数是一致的const QRect &geometry() const;                    //获取客户区几何参数void setGeometry(int x, int y, int w, int h);     //设置客户区几何参数void

4、CRM2011编程实战——将窗体中指定控件的值做处理后更新到另一个字段中

需求:将接报时间加上到期提醒时间后得到的值,更新到字段"到期截止时间" Js调用: //设置到期截止时间 function setDeadLine(){ var recordId = Xrm.Page.data.entity.getId(); var entityName = Xrm.Page.data.entity.getEntityName(); var reportedTime = Xrm.Page.getControl("hxcs_fdatetimeofrequest

WPF: 实现 ScrollViewer 滚动到指定控件处

原文:WPF: 实现 ScrollViewer 滚动到指定控件处 在前端 UI 开发中,有时,我们会遇到这样的需求:在一个 ScrollViewer 中有很多内容,而我们需要实现在执行某个操作后能够定位到其中指定的控件处:这很像在 HTML 页面中点击一个链接后定位到当前网页上的某个 anchor. 要实现它,首先我们需要看 ScrollViewer 为我们提供的 API,其中并没有类似于 ScrollToControl 这样的方法:在它的几个以 ScrollTo 开头的方法中,最合适的就是 S

DDX和DDV——控件与变量之间值的传递

DoDataExchange由框架调用,作用是交互并且验证对话框数据,主要由(DDX) 和 (DDV)宏实现. 永远不要直接调用这个函数,而是通过UpdateData(TRUE/FALSE)实现控件与变量之间值的传递. 当然你也可以不使用DoDataExchange而完成控件与变量之间值的传递,如: 通过GetWindowText和SetWindowText等等函数完成String变量与Edit控件之间的数据交互. DDX/DDV    通过使用ClassWizard向对话类添加成员变量,你可以

事件委托应用:在父控件中创建子控件,并接收值

传值过程使用委托方法 定义一个打开按扭,一个文本框 1 /// <summary> 2 /// 增加父控件 3 /// </summary> 4 public void AddParent(BaseControl ctl) 5 { 6 foreach (Control ct2 in this.Parent.Controls) 7 { 8 if (ct2.Name == ctl.Name) { 9 ct2.Focus(); 10 return; 11 } 12 } 13 ctl.Wi

winform 指定控件区域截图(比如截取窗体中的某个Panel区域)

/// <summary> /// 辅助类 定义Gdi32 API函数 /// </summary> public class GDI32 { public const int SRCCOPY = 0x00CC0020; [DllImport("gdi32.dll")] public static extern bool BitBlt(IntPtr hObject, int nXDest, int nYDest, int nWidth, int nHeight,

在指定控件位置弹出popup window

先看效果图 黄色的就是弹出的popup window 首先自定义一个view用来显示,文件名为layout_my_view.xml <?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="wrap_content