<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    隨筆-19  評(píng)論-128  文章-1  trackbacks-0

    obpm一鍵生成視圖功能原理

    在obpm系統(tǒng)后臺(tái)表單右上角有一個(gè)“一鍵生成視圖”功能。實(shí)現(xiàn)它的真正目的是為了后臺(tái)管理人員方便從實(shí)現(xiàn)好的表單中快速生成所有帶值的列的視圖。這樣管理人員就不需要手工新建視圖,然后再添加視圖中的帶值的列。

    實(shí)現(xiàn)原理圖:

    在實(shí)現(xiàn)原理圖中,我們發(fā)現(xiàn)沒(méi)有視圖中并沒(méi)有不帶值Field4相應(yīng)的Column4在視圖中,這是因?yàn)樵谝晥D中是要根據(jù)不同Column顯示不同的值的。如果Column是不帶值的話,那么視圖中就不應(yīng)該要這個(gè)Column,即使是要了,在視圖中沒(méi)有意義了。

    實(shí)現(xiàn)原理代碼:

    其中代碼路徑是:src-java-cn-myapps-core-dynaform-form-ejb-FormProcessBean.java

    /**

         * 根據(jù)表單編號(hào)來(lái)生成視圖

         * @param formid 表單編號(hào)

         * @throws Exception

         */

        public Form oneKeyCreateView(String formid) throws Exception {

               FormProcess formPross = (FormProcess) ProcessFactory.createProcess(FormProcess.class);

               ViewProcess viewPross = (ViewProcess) ProcessFactory.createProcess(ViewProcess.class);

              

               Form form = (Form) formPross.doView(formid);//獲得form

               Collection formfield=form.getValueStoreFields();//獲得form存儲(chǔ)值的field

              

               //新建視圖

               View view = new View();

               if (view.getId() == null || view.getId().trim().length() <= 0) {

                  view.setId(Sequence.getSequence());//設(shè)置視圖的ID

                  view.setSortId(Sequence.getTimeSequence());//設(shè)置視圖的排序ID     }

                view.setName(form.getName());//把表單的名字賦給視圖

                view.setOpenType(view.OPEN_TYPE_NORMAL); //設(shè)置視圖打開(kāi)類型-普通類型

                view.setLastmodifytime(new Date());//最后修改日期

                view.setApplicationid(form.getApplicationid());//把表單應(yīng)用程序Id賦給視圖的應(yīng)用程序Id

                view.setModule(form.getModule());//把表單模塊Id賦給視圖的模塊ID

                view.setPagelines("10");//設(shè)置視圖的分頁(yè)每頁(yè)顯示10條數(shù)據(jù)

                view.setShowTotalRow(true); //是否顯示總共條數(shù)數(shù)據(jù)

                view.setPagination(true); //是否分頁(yè)顯示

                view.setRelatedForm(form.getId());//把表單ID賦給視圖的映射表單,從而映射了該表單

              

               

                //將表單中對(duì)應(yīng)有值的列轉(zhuǎn)換為視圖的列

                int i=0;

               for(Iterator iterator=formfield.iterator();iterator.hasNext();){

                  FormField field=(FormField)iterator.next();

                 

                  Column column = new Column();

                  if (column.getId() == null || column.getId().trim().length() <= 0) {

                  column.setId(Sequence.getSequence());

                  column.setOrderno(i);

                  }

                  if(field.getDiscript()!=null && !field.getDiscript().equals("")){//如果該表單中帶值Field有描述的話,就作為視圖Column,否則的用Field名稱

                  column.setName(field.getDiscript());

                      }else{

                  column.setName(field.getName());

                      }

                  column.setFormid(form.getId());//把表單中的ID賦給Column的表單ID

                  column.setApplicationid(form.getApplicationid());//把表單中應(yīng)用程序的ID賦給Column的表單應(yīng)用程序ID

     

                  column.setFieldName(field.getName());  //把表單中的名稱賦給Column的表單名稱

     

                  column.setParentView(view.getId());//將視圖ID賦給Column的父視圖

     

                 

                  view.getColumns().add(column); //將視圖和Column關(guān)聯(lián)

                  i++;

               }

              

              

               //分別創(chuàng)建兩個(gè)按鈕  新建,刪除

               Activity activityCreate = new Activity();

               if (activityCreate.getId() == null || activityCreate.getId().trim().length() <= 0) {

                  activityCreate.setId(Sequence.getSequence());

                  activityCreate.setOrderno(0);

               }

               activityCreate.setApplicationid(form.getApplicationid());

               activityCreate.setName("新建");

               activityCreate.setParentView(view.getId());

               activityCreate.setType(ActivityType.DOCUMENT_CREATE);

               activityCreate.setOnActionForm(form.getId());

              

               view.getActivitys().add(activityCreate); //將視圖和新建按鈕關(guān)聯(lián)

              

              

               Activity activityDelete = new Activity();

               if (activityDelete.getId() == null || activityDelete.getId().trim().length() <= 0) {

                  activityDelete.setId(Sequence.getSequence());

                  activityDelete.setOrderno(1);

               }

               activityDelete.setApplicationid(form.getApplicationid());

               activityDelete.setName("刪除");

               activityDelete.setParentView(view.getId());

               activityDelete.setType(ActivityType.DOCUMENT_DELETE);

              

               view.getActivitys().add(activityDelete); //將視圖和刪除按鈕關(guān)聯(lián)

              

              

               viewPross.doCreate(view); //創(chuàng)建視圖

                return form;

        }

     

    后臺(tái)效果圖:

    表單:

    視圖:

    視圖列:

    視圖按鈕:

    前臺(tái)效果:

    視圖:

     

    表單:

     

     

    原創(chuàng)人員:Denny


    文章來(lái)源:http://www.cnblogs.com/obpm/archive/2010/07/12/1775453.html
    posted on 2010-07-12 02:08 obpm 閱讀(416) 評(píng)論(0)  編輯  收藏 所屬分類: 表單視圖

    只有注冊(cè)用戶登錄后才能發(fā)表評(píng)論。


    網(wǎng)站導(dǎo)航:
     
    主站蜘蛛池模板: 亚洲午夜精品一区二区公牛电影院| 思思久久99热免费精品6| 97无码免费人妻超级碰碰碰碰| 亚洲日韩国产欧美一区二区三区| 国产免费人成在线视频| 男女午夜24式免费视频 | 亚洲日产2021三区| 性感美女视频在线观看免费精品| 一级毛片无遮挡免费全部| 亚洲第一中文字幕| 国产精品二区三区免费播放心| 成人无码a级毛片免费| 麻豆狠色伊人亚洲综合网站| 国产国拍亚洲精品福利| 欧美男同gv免费网站观看| 九九热久久免费视频| 亚洲中文字幕一二三四区| 亚洲国产精品无码久久一区二区 | 亚洲国产成人久久笫一页| 91精品免费观看| 一个人看的www免费高清| 国产精品亚洲片夜色在线| 亚洲一区精品无码| 午夜毛片不卡高清免费| 99ee6热久久免费精品6| eeuss影院ss奇兵免费com| 亚洲丁香婷婷综合久久| 18gay台湾男同亚洲男同| 久久影视综合亚洲| 国产在线观看免费完整版中文版 | 国产精品视频免费观看| 国产精品自拍亚洲| 亚洲成AV人片久久| 亚洲精品无码MV在线观看 | 亚洲人成电影青青在线播放| 国产亚洲精品免费视频播放| 免费无码又爽又刺激高潮| 91九色视频无限观看免费| 在线观看片免费人成视频播放| 另类专区另类专区亚洲| 亚洲一区电影在线观看|