| <?xml version="1.0" encoding="UTF-8"?> | 
| <ViewConfig> | 
|   <Arguments/> | 
|   <Context/> | 
|   <Model> | 
|     <DataType name="dataTypeJob"> | 
|       <Property name="creationType">com.bstek.bdf2.job.model.JobDefinition</Property> | 
|       <Reference name="calendars"> | 
|         <Property name="dataType">[dataTypeCalendar]</Property> | 
|         <Property name="parameter">$${this.id}</Property> | 
|         <Property name="dataProvider">bdf2.jobMaintain#loadCalendars</Property> | 
|       </Reference> | 
|       <Reference name="histories"> | 
|         <Property name="dataProvider">bdf2.jobMaintain#loadJobHistories</Property> | 
|         <Property name="dataType">[$dataTypeJobHistory]</Property> | 
|         <Property name="parameter">$${this.id}</Property> | 
|         <Property name="pageSize">20</Property> | 
|       </Reference> | 
|       <Reference name="parameters"> | 
|         <Property name="dataProvider">bdf2.jobMaintain#loadJobParameters</Property> | 
|         <Property name="parameter">$${this.id}</Property> | 
|         <Property name="dataType">[$dataTypeJobParameter]</Property> | 
|       </Reference> | 
|       <PropertyDef name="id"> | 
|         <Property name="dataType">String</Property> | 
|       </PropertyDef> | 
|       <PropertyDef name="startDate"> | 
|         <Property name="dataType">Date</Property> | 
|         <Property name="label">开始日期</Property> | 
|       </PropertyDef> | 
|       <PropertyDef name="desc"> | 
|         <Property name="dataType">String</Property> | 
|         <Property name="label">描述</Property> | 
|         <Validator type="length"> | 
|           <Property name="maxLength">120</Property> | 
|           <Property name="minLength">2</Property> | 
|           <Property name="resultMessage">值要在2~120之间</Property> | 
|         </Validator> | 
|       </PropertyDef> | 
|       <PropertyDef name="beanId"> | 
|         <Property name="dataType">String</Property> | 
|         <Property name="label">使用的BeanId</Property> | 
|         <Property name="required">true</Property> | 
|         <Validator type="length"> | 
|           <Property name="maxLength">60</Property> | 
|           <Property name="minLength">2</Property> | 
|           <Property name="resultMessage">值要在2~60之间</Property> | 
|         </Validator> | 
|       </PropertyDef> | 
|       <PropertyDef name="name"> | 
|         <Property name="dataType">String</Property> | 
|         <Property name="label">Job名称</Property> | 
|         <Property name="required">true</Property> | 
|         <Validator type="length"> | 
|           <Property name="maxLength">60</Property> | 
|           <Property name="minLength">2</Property> | 
|           <Property name="resultMessage">值要在2~60之间</Property> | 
|         </Validator> | 
|       </PropertyDef> | 
|       <PropertyDef name="endDate"> | 
|         <Property name="dataType">Date</Property> | 
|         <Property name="label">结束日期</Property> | 
|       </PropertyDef> | 
|       <PropertyDef name="companyId"> | 
|         <Property name="dataType">String</Property> | 
|       </PropertyDef> | 
|       <PropertyDef name="cronExpression"> | 
|         <Property name="dataType">String</Property> | 
|         <Property name="label">Cron表达式</Property> | 
|         <Property name="required">true</Property> | 
|         <Validator type="length"> | 
|           <Property name="maxLength">60</Property> | 
|           <Property name="minLength">2</Property> | 
|           <Property name="resultMessage">值要在2~60之间</Property> | 
|         </Validator> | 
|       </PropertyDef> | 
|       <PropertyDef name="state"> | 
|         <Property name="label">当前状态</Property> | 
|       </PropertyDef> | 
|     </DataType> | 
|     <DataType name="dataTypeCalendar"> | 
|       <Property name="creationType">com.bstek.bdf2.job.model.JobCalendar</Property> | 
|       <PropertyDef name="id"> | 
|         <Property name="dataType">String</Property> | 
|       </PropertyDef> | 
|       <PropertyDef name="desc"> | 
|         <Property name="dataType">String</Property> | 
|         <Property name="label">描述</Property> | 
|         <Validator type="length"> | 
|           <Property name="maxLength">120</Property> | 
|           <Property name="minLength">2</Property> | 
|           <Property name="resultMessage">长度需要在2~120之间</Property> | 
|         </Validator> | 
|       </PropertyDef> | 
|       <PropertyDef name="name"> | 
|         <Property name="dataType">String</Property> | 
|         <Property name="label">日期名称</Property> | 
|         <Property name="required">true</Property> | 
|         <Validator type="length"> | 
|           <Property name="maxLength">60</Property> | 
|           <Property name="minLength">2</Property> | 
|           <Property name="resultMessage">长度需要在2~60之间</Property> | 
|         </Validator> | 
|       </PropertyDef> | 
|       <PropertyDef name="companyId"> | 
|         <Property name="dataType">String</Property> | 
|       </PropertyDef> | 
|       <PropertyDef name="type"> | 
|         <Property name="label">类型</Property> | 
|         <Property name="mapping"> | 
|           <Property name="mapValues"> | 
|             <Collection> | 
|               <Entity> | 
|                 <Property name="key">weekly</Property> | 
|                 <Property name="value">星期中的某些天</Property> | 
|               </Entity> | 
|               <Entity> | 
|                 <Property name="key">monthly</Property> | 
|                 <Property name="value">月份中的某些天</Property> | 
|               </Entity> | 
|               <Entity> | 
|                 <Property name="key">holiday</Property> | 
|                 <Property name="value">具体日期</Property> | 
|               </Entity> | 
|               <Entity> | 
|                 <Property name="key">annual</Property> | 
|                 <Property name="value">每年都经历的日期</Property> | 
|               </Entity> | 
|             </Collection> | 
|           </Property> | 
|           <Property name="keyProperty">key</Property> | 
|           <Property name="valueProperty">value</Property> | 
|         </Property> | 
|         <Property name="defaultValue">holiday</Property> | 
|         <Property name="required">true</Property> | 
|       </PropertyDef> | 
|     </DataType> | 
|     <DataType name="dataTypeSecond"> | 
|       <PropertyDef name="type"> | 
|         <Property name="dataType">String</Property> | 
|       </PropertyDef> | 
|       <PropertyDef name="fromPerSecond"> | 
|         <Property name="dataType">int</Property> | 
|       </PropertyDef> | 
|       <PropertyDef name="perSecond"> | 
|         <Property name="dataType">int</Property> | 
|       </PropertyDef> | 
|       <PropertyDef name="fromSecond"> | 
|         <Property name="dataType">int</Property> | 
|       </PropertyDef> | 
|       <PropertyDef name="toSecond"> | 
|         <Property name="dataType">int</Property> | 
|       </PropertyDef> | 
|       <PropertyDef name="specificSecond"> | 
|         <Property name="dataType">String</Property> | 
|         <Property name="defaultValue">0</Property> | 
|       </PropertyDef> | 
|     </DataType> | 
|     <DataType name="dataTypeMinute"> | 
|       <PropertyDef name="type"> | 
|         <Property name="dataType">String</Property> | 
|       </PropertyDef> | 
|       <PropertyDef name="fromPerMinute"> | 
|         <Property name="dataType">int</Property> | 
|       </PropertyDef> | 
|       <PropertyDef name="perMinute"> | 
|         <Property name="dataType">int</Property> | 
|       </PropertyDef> | 
|       <PropertyDef name="fromMinute"> | 
|         <Property name="dataType">int</Property> | 
|       </PropertyDef> | 
|       <PropertyDef name="toMinute"> | 
|         <Property name="dataType">int</Property> | 
|       </PropertyDef> | 
|       <PropertyDef name="specificMinute"> | 
|         <Property name="dataType">String</Property> | 
|         <Property name="defaultValue">0</Property> | 
|       </PropertyDef> | 
|     </DataType> | 
|     <DataType name="dataTypeHour"> | 
|       <PropertyDef name="type"> | 
|         <Property name="dataType">String</Property> | 
|       </PropertyDef> | 
|       <PropertyDef name="fromPerHour"> | 
|         <Property name="dataType">int</Property> | 
|       </PropertyDef> | 
|       <PropertyDef name="perHour"> | 
|         <Property name="dataType">int</Property> | 
|       </PropertyDef> | 
|       <PropertyDef name="fromHour"> | 
|         <Property name="dataType">int</Property> | 
|       </PropertyDef> | 
|       <PropertyDef name="toHour"> | 
|         <Property name="dataType">int</Property> | 
|       </PropertyDef> | 
|       <PropertyDef name="specificHour"> | 
|         <Property name="dataType">String</Property> | 
|         <Property name="defaultValue">0</Property> | 
|       </PropertyDef> | 
|     </DataType> | 
|     <DataType name="dataTypeDay"> | 
|       <PropertyDef name="type"> | 
|         <Property name="dataType">String</Property> | 
|       </PropertyDef> | 
|       <PropertyDef name="fromPerDay"> | 
|         <Property name="dataType">int</Property> | 
|         <Property name="defaultValue">1</Property> | 
|       </PropertyDef> | 
|       <PropertyDef name="perDay"> | 
|         <Property name="dataType">int</Property> | 
|         <Property name="defaultValue">1</Property> | 
|       </PropertyDef> | 
|       <PropertyDef name="fromDay"> | 
|         <Property name="dataType">int</Property> | 
|         <Property name="defaultValue">1</Property> | 
|       </PropertyDef> | 
|       <PropertyDef name="toDay"> | 
|         <Property name="dataType">int</Property> | 
|         <Property name="defaultValue">1</Property> | 
|       </PropertyDef> | 
|       <PropertyDef name="specificDay"> | 
|         <Property name="dataType">String</Property> | 
|         <Property name="defaultValue">1</Property> | 
|       </PropertyDef> | 
|     </DataType> | 
|     <DataType name="dataTypeMonth"> | 
|       <PropertyDef name="type"> | 
|         <Property name="dataType">String</Property> | 
|       </PropertyDef> | 
|       <PropertyDef name="fromPerMonth"> | 
|         <Property name="dataType">int</Property> | 
|         <Property name="defaultValue">1</Property> | 
|       </PropertyDef> | 
|       <PropertyDef name="perMonth"> | 
|         <Property name="dataType">int</Property> | 
|         <Property name="defaultValue">1</Property> | 
|       </PropertyDef> | 
|       <PropertyDef name="fromMonth"> | 
|         <Property name="dataType">int</Property> | 
|         <Property name="defaultValue">1</Property> | 
|       </PropertyDef> | 
|       <PropertyDef name="toMonth"> | 
|         <Property name="dataType">int</Property> | 
|         <Property name="defaultValue">1</Property> | 
|       </PropertyDef> | 
|       <PropertyDef name="specificMonth"> | 
|         <Property name="dataType">String</Property> | 
|         <Property name="defaultValue">1</Property> | 
|       </PropertyDef> | 
|     </DataType> | 
|     <DataType name="dataTypeWeek"> | 
|       <PropertyDef name="type"> | 
|         <Property name="dataType">String</Property> | 
|       </PropertyDef> | 
|       <PropertyDef name="fromPerWeek"> | 
|         <Property name="dataType">String</Property> | 
|         <Property name="defaultValue">SUN</Property> | 
|       </PropertyDef> | 
|       <PropertyDef name="perWeek"> | 
|         <Property name="dataType">String</Property> | 
|         <Property name="defaultValue">SUN</Property> | 
|       </PropertyDef> | 
|       <PropertyDef name="fromWeek"> | 
|         <Property name="dataType">String</Property> | 
|         <Property name="defaultValue">SUN</Property> | 
|       </PropertyDef> | 
|       <PropertyDef name="toWeek"> | 
|         <Property name="dataType">String</Property> | 
|         <Property name="defaultValue">SUN</Property> | 
|       </PropertyDef> | 
|       <PropertyDef name="specificWeek"> | 
|         <Property name="dataType">String</Property> | 
|         <Property name="defaultValue">SUN</Property> | 
|       </PropertyDef> | 
|       <PropertyDef name="last"> | 
|         <Property name="dataType">String</Property> | 
|         <Property name="defaultValue">SUN</Property> | 
|       </PropertyDef> | 
|     </DataType> | 
|     <DataType name="dataTypeCronDate"> | 
|       <Property name="creationType">com.bstek.bdf2.job.view.job.CronDate</Property> | 
|       <PropertyDef name="date"> | 
|         <Property name="dataType">DateTime</Property> | 
|         <Property name="label">执行日期</Property> | 
|       </PropertyDef> | 
|     </DataType> | 
|     <DataType name="dataTypeJobInfo"> | 
|       <Property name="creationType">com.bstek.bdf2.job.view.job.JobInfo</Property> | 
|       <PropertyDef name="beanId"> | 
|         <Property name="dataType">String</Property> | 
|         <Property name="label">可用的Job的BeanId</Property> | 
|       </PropertyDef> | 
|     </DataType> | 
|     <DataType name="$dataTypeJobCalendar"> | 
|       <Property name="creationType">com.bstek.bdf2.job.model.JobCalendar</Property> | 
|       <PropertyDef name="id"> | 
|         <Property name="dataType">String</Property> | 
|       </PropertyDef> | 
|       <PropertyDef name="desc"> | 
|         <Property name="dataType">String</Property> | 
|         <Property name="label">描述</Property> | 
|         <Validator type="length"> | 
|           <Property name="maxLength">120</Property> | 
|           <Property name="minLength">2</Property> | 
|           <Property name="resultMessage">长度需要在2~120之间</Property> | 
|         </Validator> | 
|       </PropertyDef> | 
|       <PropertyDef name="name"> | 
|         <Property name="dataType">String</Property> | 
|         <Property name="label">日期名称</Property> | 
|         <Property name="required">true</Property> | 
|         <Validator type="length"> | 
|           <Property name="maxLength">60</Property> | 
|           <Property name="minLength">2</Property> | 
|           <Property name="resultMessage">长度需要在2~60之间</Property> | 
|         </Validator> | 
|       </PropertyDef> | 
|       <PropertyDef name="companyId"> | 
|         <Property name="dataType">String</Property> | 
|       </PropertyDef> | 
|       <PropertyDef name="type"> | 
|         <Property name="label">类型</Property> | 
|         <Property name="mapping"> | 
|           <Property name="mapValues"> | 
|             <Collection> | 
|               <Entity> | 
|                 <Property name="key">weekly</Property> | 
|                 <Property name="value">星期中的某些天</Property> | 
|               </Entity> | 
|               <Entity> | 
|                 <Property name="key">monthly</Property> | 
|                 <Property name="value">月份中的某些天</Property> | 
|               </Entity> | 
|               <Entity> | 
|                 <Property name="key">holiday</Property> | 
|                 <Property name="value">具体日期</Property> | 
|               </Entity> | 
|               <Entity> | 
|                 <Property name="key">annual</Property> | 
|                 <Property name="value">每年都经历的日期</Property> | 
|               </Entity> | 
|             </Collection> | 
|           </Property> | 
|           <Property name="keyProperty">key</Property> | 
|           <Property name="valueProperty">value</Property> | 
|         </Property> | 
|         <Property name="defaultValue">holiday</Property> | 
|         <Property name="required">true</Property> | 
|       </PropertyDef> | 
|     </DataType> | 
|     <DataType name="$dataTypeJobHistory"> | 
|       <Property name="creationType">com.bstek.bdf2.job.model.JobHistory</Property> | 
|       <PropertyDef name="exceptionMessage"> | 
|         <Property name="dataType">String</Property> | 
|         <Property name="label">异常消息</Property> | 
|       </PropertyDef> | 
|       <PropertyDef name="id"> | 
|         <Property name="dataType">String</Property> | 
|       </PropertyDef> | 
|       <PropertyDef name="startDate"> | 
|         <Property name="dataType">Date</Property> | 
|         <Property name="label">执行开始时间</Property> | 
|         <Property name="displayFormat">Y-m-d H:i:s</Property> | 
|       </PropertyDef> | 
|       <PropertyDef name="jobId"> | 
|         <Property name="dataType">String</Property> | 
|       </PropertyDef> | 
|       <PropertyDef name="endDate"> | 
|         <Property name="dataType">Date</Property> | 
|         <Property name="label">执行结束时间</Property> | 
|         <Property name="displayFormat">Y-m-d H:i:s</Property> | 
|       </PropertyDef> | 
|       <PropertyDef name="successful"> | 
|         <Property name="dataType">boolean</Property> | 
|         <Property name="label">是否成功</Property> | 
|       </PropertyDef> | 
|     </DataType> | 
|     <DataType name="$dataTypeJobParameter"> | 
|       <Property name="matchType">com.bstek.bdf2.job.model.JobParameter</Property> | 
|       <Property name="creationType">com.bstek.bdf2.job.model.JobParameter</Property> | 
|       <PropertyDef name="id"> | 
|         <Property name="dataType">String</Property> | 
|       </PropertyDef> | 
|       <PropertyDef name="jobId"> | 
|         <Property name="dataType">String</Property> | 
|       </PropertyDef> | 
|       <PropertyDef name="name"> | 
|         <Property name="dataType">String</Property> | 
|         <Property name="label">属性名</Property> | 
|         <Property name="required">true</Property> | 
|         <Validator type="length"> | 
|           <Property name="minLength">1</Property> | 
|           <Property name="maxLength">60</Property> | 
|           <Property name="resultMessage">长度需要在1~60之间</Property> | 
|         </Validator> | 
|       </PropertyDef> | 
|       <PropertyDef name="value"> | 
|         <Property name="dataType">String</Property> | 
|         <Property name="label">属性值</Property> | 
|         <Property name="required">true</Property> | 
|         <Validator type="length"> | 
|           <Property name="minLength">1</Property> | 
|           <Property name="maxLength">120</Property> | 
|           <Property name="resultMessage">长度需要在1~120之间</Property> | 
|         </Validator> | 
|       </PropertyDef> | 
|     </DataType> | 
|   </Model> | 
|   <View> | 
|     <DataSet id="dataSetSecond"> | 
|       <ClientEvent name="onReady">self.insert({type:"all"});</ClientEvent> | 
|       <Property name="dataType">dataTypeSecond</Property> | 
|     </DataSet> | 
|     <DataSet id="dataSetCalendar"> | 
|       <Property name="dataType">[$dataTypeJobCalendar]</Property> | 
|       <Property name="dataProvider">bdf2.jobMaintain#loadAllCalendars</Property> | 
|     </DataSet> | 
|     <DataSet id="dataSetMinute"> | 
|       <ClientEvent name="onReady">self.insert({type:"all"});</ClientEvent> | 
|       <Property name="dataType">dataTypeMinute</Property> | 
|     </DataSet> | 
|     <DataSet id="dataSetHour"> | 
|       <ClientEvent name="onReady">self.insert({type:"all"});</ClientEvent> | 
|       <Property name="dataType">dataTypeHour</Property> | 
|     </DataSet> | 
|     <DataSet id="dataSetDay"> | 
|       <ClientEvent name="onReady">self.insert({type:"all"});</ClientEvent> | 
|       <Property name="dataType">dataTypeDay</Property> | 
|     </DataSet> | 
|     <DataSet id="dataSetMonth"> | 
|       <ClientEvent name="onReady">self.insert({type:"all"});</ClientEvent> | 
|       <Property name="dataType">dataTypeMonth</Property> | 
|     </DataSet> | 
|     <DataSet id="dataSetWeek"> | 
|       <ClientEvent name="onReady">self.insert({type:"all"});</ClientEvent> | 
|       <Property name="dataType">dataTypeWeek</Property> | 
|     </DataSet> | 
|     <DataSet id="dataSetJob"> | 
|       <Property name="dataType">[dataTypeJob]</Property> | 
|       <Property name="pageSize">20</Property> | 
|       <Property name="dataProvider">bdf2.jobMaintain#loadJobs</Property> | 
|     </DataSet> | 
|     <DataSet id="dataSetJobInfo"> | 
|       <Property name="dataType">[dataTypeJobInfo]</Property> | 
|       <Property name="dataProvider">bdf2.jobMaintain#loadJobInfos</Property> | 
|     </DataSet> | 
|     <SplitPanel> | 
|       <Property name="position">900</Property> | 
|       <MainControl> | 
|         <TabControl> | 
|           <ControlTab> | 
|             <Property name="caption">Job执行排除假期</Property> | 
|             <Container> | 
|               <ToolBar> | 
|                 <ToolBarLabel> | 
|                   <Property name="text">菜单:</Property> | 
|                 </ToolBarLabel> | 
|                 <DataPilot> | 
|                   <ClientEvent name="onSubControlAction">var ds=view.id("dataSetJob");
 | 
| var jobData=ds.getData("#");
 | 
| switch(arg.code){
 | 
|     case "+":
 | 
|         if(!jobData){
 | 
|             dorado.MessageBox.alert("请先选中一Job");
 | 
|         }else{
 | 
|             var state=jobData.get("state");
 | 
|             if(state!="stop" && state!="ready"){
 | 
|                 dorado.MessageBox.alert("Job必须处于停止或待命时才能进行此操作");
 | 
|             }else{
 | 
|                 view.id("dialogCalendarSelect").show();
 | 
|             }
 | 
|         }
 | 
|         break;
 | 
|     case "-":
 | 
|         var state=jobData.get("state");
 | 
|         if(state!="stop" && state!="ready"){
 | 
|             dorado.MessageBox.alert("Job必须处于停止或待命时才能进行此操作");
 | 
|         }else{
 | 
|             dorado.MessageBox.confirm("真的要删除当前日期",function(){
 | 
|                 var calendarId=ds.getData("#.#calendars.id");
 | 
|                 var action=view.id("ajaxActionSaveCalendar");
 | 
|                 action.set("parameter",{calendarId:calendarId,jobId:jobData.get("id"),operation:"del"});
 | 
|                 action.execute(function(){
 | 
|                     jobData.reset("calendars");
 | 
|                 });        
 | 
|             });
 | 
|         }
 | 
|         break;
 | 
| }
 | 
| arg.processDefault=false;</ClientEvent> | 
|                   <Property name="dataSet">dataSetJob</Property> | 
|                   <Property name="dataPath">#.calendars</Property> | 
|                   <Property name="itemCodes">+,-</Property> | 
|                 </DataPilot> | 
|               </ToolBar> | 
|               <DataGrid> | 
|                 <Property name="dataSet">dataSetJob</Property> | 
|                 <Property name="dataPath">#.calendars</Property> | 
|                 <Property name="readOnly">true</Property> | 
|                 <DataColumn name="name"> | 
|                   <Property name="property">name</Property> | 
|                 </DataColumn> | 
|                 <DataColumn name="desc"> | 
|                   <Property name="property">desc</Property> | 
|                 </DataColumn> | 
|               </DataGrid> | 
|               <Dialog id="dialogCalendarSelect"> | 
|                 <Property name="width">500</Property> | 
|                 <Property name="height">500</Property> | 
|                 <Property name="center">true</Property> | 
|                 <Property name="modal">true</Property> | 
|                 <Buttons> | 
|                   <Button> | 
|                     <ClientEvent name="onClick">var data=view.id("dataSetCalendar").getData("#");
 | 
| if(data){
 | 
|     var calendarId=data.get("id");
 | 
|     var jobData=view.id("dataSetJob");
 | 
|     var calendars=jobData.getData("#.calendars");
 | 
|     var error=false;
 | 
|     if(calendars){
 | 
|         calendars.each(function(c){
 | 
|             if(calendarId==c.get("id")){
 | 
|                 error=true;
 | 
|                 return false;
 | 
|             }
 | 
|         });
 | 
|     }
 | 
|     if(error){
 | 
|         dorado.MessageBox.alert("日期已存在");
 | 
|         return;
 | 
|     }
 | 
|     var jobId=jobData.getData("#.id");
 | 
|     var action=view.id("ajaxActionSaveCalendar");
 | 
|     action.set("parameter",{calendarId:calendarId,jobId:jobId,operation:"add"});
 | 
|     action.execute(function(){
 | 
|         jobData.getData("#").reset("calendars");
 | 
|         view.id("dialogCalendarSelect").hide();
 | 
|     });
 | 
| }else{
 | 
|     dorado.MessageBox.alert("请先选中一个日期");
 | 
| }</ClientEvent> | 
|                     <Property name="caption">确认</Property> | 
|                     <Property name="icon">url(skin>common/icons.gif) -140px -20px</Property> | 
|                   </Button> | 
|                   <Button> | 
|                     <ClientEvent name="onClick">view.id("dialogCalendarSelect").hide();</ClientEvent> | 
|                     <Property name="caption">取消</Property> | 
|                     <Property name="icon">url(skin>common/icons.gif) -40px 0px</Property> | 
|                   </Button> | 
|                 </Buttons> | 
|                 <Children> | 
|                   <DataGrid> | 
|                     <Property name="dataSet">dataSetCalendar</Property> | 
|                     <Property name="readOnly">true</Property> | 
|                     <DataColumn name="name"> | 
|                       <Property name="property">name</Property> | 
|                     </DataColumn> | 
|                     <DataColumn name="desc"> | 
|                       <Property name="property">desc</Property> | 
|                     </DataColumn> | 
|                   </DataGrid> | 
|                   <AjaxAction id="ajaxActionSaveCalendar"> | 
|                     <Property name="service">bdf2.jobMaintain#saveJobCalendars</Property> | 
|                     <Property name="successMessage">操作成功</Property> | 
|                   </AjaxAction> | 
|                 </Children> | 
|                 <Tools/> | 
|               </Dialog> | 
|             </Container> | 
|           </ControlTab> | 
|           <ControlTab> | 
|             <Property name="caption">Job运行历史</Property> | 
|             <Container> | 
|               <ToolBar> | 
|                 <ToolBarLabel> | 
|                   <Property name="text">菜单:</Property> | 
|                 </ToolBarLabel> | 
|                 <ToolBarButton> | 
|                   <ClientEvent name="onClick">var data=view.id("dataSetJob").getData("#");
 | 
| var selection=view.id("dataGridHistory").get("selection");
 | 
| if(selection.length<1){
 | 
|     dorado.MessageBox.alert("请先选中要删除的历史");
 | 
|     return;
 | 
| }
 | 
| var jobHistoryIds=[];
 | 
| selection.each(function(entity){
 | 
|     var id=entity.get("id");
 | 
|     jobHistoryIds.push(id);
 | 
| });
 | 
| dorado.MessageBox.confirm("真的要删除这些选中的历史",function(){
 | 
|     var action=view.id("ajaxActionDeleteHistory");
 | 
|     action.set("parameter",{jobHistoryIds:jobHistoryIds});
 | 
|     action.execute(function(){
 | 
|         data.reset("histories");
 | 
|     });
 | 
| });</ClientEvent> | 
|                   <Property name="caption">删除</Property> | 
|                   <Property name="icon">url(skin>common/icons.gif) -40px 0px</Property> | 
|                   <Property name="tip">删除勾选数据</Property> | 
|                   <Property name="width">80</Property> | 
|                 </ToolBarButton> | 
|               </ToolBar> | 
|               <DataGrid id="dataGridHistory"> | 
|                 <ClientEvent name="onDoubleClick">if(view.id("dataSetJob").getData("#.#histories")){
 | 
|     view.id("dialogExceptionInfo").show();
 | 
| }else{
 | 
|     dorado.MessageBox.alert("当前没有选中记录,没有异常消息可供查看");
 | 
| }</ClientEvent> | 
|                 <Property name="dataPath">#.histories</Property> | 
|                 <Property name="dataSet">dataSetJob</Property> | 
|                 <Property name="readOnly">true</Property> | 
|                 <Property name="selectionMode">multiRows</Property> | 
|                 <Property name="tip">双击以查看异常消息</Property> | 
|                 <RowSelectorColumn/> | 
|                 <DataColumn name="startDate"> | 
|                   <Property name="property">startDate</Property> | 
|                 </DataColumn> | 
|                 <DataColumn name="endDate"> | 
|                   <Property name="property">endDate</Property> | 
|                 </DataColumn> | 
|                 <DataColumn name="successful"> | 
|                   <ClientEvent name="onRenderCell">var successful=arg.data.get("successful");
 | 
| if(successful){
 | 
|     arg.dom.innerHTML="<font color='green'>成功</font>";
 | 
| }else{
 | 
|     arg.dom.innerHTML="<font color='red'>失败</font>";
 | 
| }</ClientEvent> | 
|                   <Property name="property">successful</Property> | 
|                 </DataColumn> | 
|               </DataGrid> | 
|               <Dialog id="dialogExceptionInfo"> | 
|                 <Property name="width">500</Property> | 
|                 <Property name="height">400</Property> | 
|                 <Property name="center">true</Property> | 
|                 <Property name="caption">Job执行异常消息</Property> | 
|                 <Property name="maximizeable">true</Property> | 
|                 <Buttons/> | 
|                 <Children> | 
|                   <TextArea> | 
|                     <Property name="dataPath">#.#histories</Property> | 
|                     <Property name="dataSet">dataSetJob</Property> | 
|                     <Property name="property">exceptionMessage</Property> | 
|                   </TextArea> | 
|                 </Children> | 
|                 <Tools/> | 
|               </Dialog> | 
|               <AjaxAction id="ajaxActionDeleteHistory"> | 
|                 <Property name="service">bdf2.jobMaintain#deleteJobHistory</Property> | 
|                 <Property name="successMessage">操作成功</Property> | 
|               </AjaxAction> | 
|               <ToolBar layoutConstraint="bottom"> | 
|                 <Fill/> | 
|                 <DataPilot> | 
|                   <Property name="dataSet">dataSetJob</Property> | 
|                   <Property name="dataPath">#.histories</Property> | 
|                   <Property name="itemCodes">pages</Property> | 
|                 </DataPilot> | 
|               </ToolBar> | 
|             </Container> | 
|           </ControlTab> | 
|           <ControlTab> | 
|             <Property name="caption">Job运行参数</Property> | 
|             <Property name="visible">false</Property> | 
|             <Container> | 
|               <ToolBar> | 
|                 <DataPilot> | 
|                   <ClientEvent name="onSubControlAction">var ds=view.id("dataSetJob");
 | 
| var state=ds.getData("#.state");
 | 
| switch(arg.code){
 | 
|     case "+":
 | 
|         if(state!="stop" && state!="ready"){
 | 
|             dorado.MessageBox.alert("Job必须处于停止或待命时才能进行此操作");
 | 
|         }else{
 | 
|             var jobId=ds.getData("#.id");
 | 
|             var data=ds.getData("#.parameters");
 | 
|             data.insert({jobId:jobId});
 | 
|         }
 | 
|         break;
 | 
|     case "-":
 | 
|         if(state!="stop" && state!="ready"){
 | 
|             dorado.MessageBox.alert("Job必须处于停止或待命时才能进行此操作");
 | 
|         }else{
 | 
|             var data=ds.getData("#.#parameters");
 | 
|             data.remove();
 | 
|         }
 | 
|         break;
 | 
| }
 | 
| arg.processDefault=false;</ClientEvent> | 
|                   <Property name="itemCodes">+,-</Property> | 
|                   <Property name="dataSet">dataSetJob</Property> | 
|                   <Property name="dataPath">#.parameters</Property> | 
|                 </DataPilot> | 
|                 <ToolBarButton> | 
|                   <Property name="caption">保存</Property> | 
|                   <Property name="action">updateActionSaveParameters</Property> | 
|                   <Property name="icon">url(skin>common/icons.gif) -140px -20px</Property> | 
|                 </ToolBarButton> | 
|               </ToolBar> | 
|               <DataGrid> | 
|                 <Property name="dataPath">#.parameters</Property> | 
|                 <Property name="dataSet">dataSetJob</Property> | 
|                 <DataColumn> | 
|                   <Property name="property">name</Property> | 
|                   <Property name="name">name</Property> | 
|                   <Editor/> | 
|                 </DataColumn> | 
|                 <DataColumn> | 
|                   <Property name="property">value</Property> | 
|                   <Property name="name">value</Property> | 
|                   <Editor/> | 
|                 </DataColumn> | 
|               </DataGrid> | 
|               <UpdateAction id="updateActionSaveParameters"> | 
|                 <Property name="dataResolver">bdf2.jobMaintain#saveJobParameters</Property> | 
|                 <Property name="successMessage">操作成功</Property> | 
|                 <UpdateItem> | 
|                   <Property name="dataSet">dataSetJob</Property> | 
|                   <Property name="dataPath">#.parameters[#dirty]</Property> | 
|                 </UpdateItem> | 
|               </UpdateAction> | 
|             </Container> | 
|           </ControlTab> | 
|         </TabControl> | 
|       </MainControl> | 
|       <SideControl> | 
|         <Container> | 
|           <ToolBar> | 
|             <DataPilot> | 
|               <ClientEvent name="onSubControlAction">switch(arg.code){
 | 
|     case "+":
 | 
|         view.id("dataSetJob").insert();
 | 
|         view.id("dialogJob").show();
 | 
|         break;
 | 
|     case "-":
 | 
|         var data=view.id("dataSetJob").getData("#");
 | 
|         if(data.get("state")!=="stop" && data.get("state")!=="ready"){
 | 
|             dorado.MessageBox.alert("要删除的Job必须为停止或待命状态,否则不能删除");
 | 
|         }else{
 | 
|             dorado.MessageBox.confirm("真的要删除当前Job",function(){
 | 
|                 data.remove();
 | 
|                 view.id("updateActionSaveJob").execute();
 | 
|             });
 | 
|         }
 | 
|         break;
 | 
| }
 | 
| arg.processDefault=false;</ClientEvent> | 
|               <Property name="dataSet">dataSetJob</Property> | 
|               <Property name="itemCodes">pages,+,-</Property> | 
|             </DataPilot> | 
|             <ToolBarButton> | 
|               <ClientEvent name="onClick">var data=view.id("dataSetJob").getData("#");
 | 
| if(data){
 | 
|     var state=data.get("state");
 | 
|     if(state=="running" || state=="run"){
 | 
|         dorado.MessageBox.alert("只有当Job状态为待命及停止时才可进行编辑操作");
 | 
|         return;
 | 
|     }
 | 
|     view.id("dialogJob").show();
 | 
| }else{
 | 
|     dorado.MessageBox.alert("当前没有数据可供修改");
 | 
| }</ClientEvent> | 
|               <Property name="caption">修改</Property> | 
|               <Property name="icon">url(skin>common/icons.gif) -200px 0px</Property> | 
|             </ToolBarButton> | 
|             <ToolBarButton> | 
|               <ClientEvent name="onClick">var data=view.id("dataSetJob").getData("#");
 | 
| if(data){
 | 
|     var state=data.get("state");
 | 
|     if(state=="running"){
 | 
|         dorado.MessageBox.alert("当前Job正处于启动中状态,不能再次执行启动动作");
 | 
|         return;
 | 
|     }
 | 
|     if(state=="run"){
 | 
|         dorado.MessageBox.alert("当前Job正处于启动状态,不能再次执行启动动作");
 | 
|         return;
 | 
|     }
 | 
|     dorado.MessageBox.confirm("真的要启动当前任务?",function(){
 | 
|         var action=view.id("ajaxActionRunJob");
 | 
|         action.set("parameter",{jobDefinitionId:data.get("id")});
 | 
|         action.execute(function(){
 | 
|             data.set("state","running");
 | 
|             data.setState(dorado.Entity.STATE_NONE);
 | 
|         });    
 | 
|     });
 | 
| }else{
 | 
|     dorado.MessageBox.alert("当前没有数据可供操作");
 | 
| }
 | 
| 
 | 
| </ClientEvent> | 
|               <Property name="caption">启动任务</Property> | 
|               <Property name="icon">url(skin>common/icons.gif) -180px -220px</Property> | 
|             </ToolBarButton> | 
|             <ToolBarButton> | 
|               <ClientEvent name="onClick">var data=view.id("dataSetJob").getData("#");
 | 
| if(data){
 | 
|     var state=data.get("state");
 | 
|     if(state=="stopping"){
 | 
|         dorado.MessageBox.alert("当前Job正处于停止中状态,不能再次执行停止动作");
 | 
|         return;
 | 
|     }
 | 
|     if(state=="stop"){
 | 
|         dorado.MessageBox.alert("当前Job正处于停止状态,不能再次执行停止动作");
 | 
|         return;
 | 
|     }
 | 
|     dorado.MessageBox.confirm("真的要停止当前任务?",function(){
 | 
|         var action=view.id("ajaxActionStopJob");
 | 
|         action.set("parameter",{jobDefinitionId:data.get("id")});
 | 
|         action.execute(function(){
 | 
|             data.set("state","stopping");
 | 
|             data.setState(dorado.Entity.STATE_NONE);
 | 
|         });    
 | 
|     });
 | 
| }else{
 | 
|     dorado.MessageBox.alert("当前没有数据可供操作");
 | 
| }
 | 
| 
 | 
| </ClientEvent> | 
|               <Property name="caption">停止任务</Property> | 
|               <Property name="icon">url(skin>common/icons.gif) -240px -220px</Property> | 
|             </ToolBarButton> | 
|             <Separator/> | 
|             <ToolBarButton> | 
|               <ClientEvent name="onClick">var select = view.get("#dataGridJob.selection");
 | 
| if(select){
 | 
|     view.get("#dialogException").show();
 | 
| }else{
 | 
|     $alert("请先选择需要执行的JOB");
 | 
| }</ClientEvent> | 
|               <Property name="icon">url(>skin>common/icons.gif) -80px -0px</Property> | 
|               <Property name="caption">宕机处理</Property> | 
|             </ToolBarButton> | 
|           </ToolBar> | 
|           <DataGrid id="dataGridJob"> | 
|             <ClientEvent name="onDataRowDoubleClick">var data=view.id("dataSetJob").getData("#");
 | 
| if(data){
 | 
|     var state=data.get("state");
 | 
|     if(state=="running" || state=="run"){
 | 
|         dorado.MessageBox.alert("只有当Job状态为待命及停止时才可进行编辑操作");
 | 
|         return;
 | 
|     }
 | 
|     view.id("dialogJob").show();
 | 
| }else{
 | 
|     dorado.MessageBox.alert("当前没有数据可供修改");
 | 
| }</ClientEvent> | 
|             <Property name="dataSet">dataSetJob</Property> | 
|             <Property name="readOnly">true</Property> | 
|             <Property name="filterMode">serverSide</Property> | 
|             <Property name="showFilterBar">true</Property> | 
|             <Property name="selectionMode">singleRow</Property> | 
|             <RowSelectorColumn/> | 
|             <DataColumn name="name"> | 
|               <Property name="property">name</Property> | 
|               <Property name="width">120</Property> | 
|             </DataColumn> | 
|             <DataColumn name="beanId"> | 
|               <Property name="property">beanId</Property> | 
|               <Property name="width">230</Property> | 
|             </DataColumn> | 
|             <DataColumn> | 
|               <ClientEvent name="onRenderCell">var state=arg.data.get("state");
 | 
| if(state=="ready"){
 | 
|     arg.dom.innerHTML="<strong><font color='blue'>待命</font></strong>";
 | 
| }
 | 
| if(state=="running"){
 | 
|     arg.dom.innerHTML="<font color='blue'>启动中</font>";
 | 
| }
 | 
| if(state=="run"){
 | 
|     arg.dom.innerHTML="<strong><font color='green'>运行中</font></strong>";
 | 
| }
 | 
| if(state=="pausing"){
 | 
|     arg.dom.innerHTML="<font color='yellow'>暂停中</font>";
 | 
| }
 | 
| if(state=="pause"){
 | 
|     arg.dom.innerHTML="<strong><font color='yellow'>暂停</font></strong>";
 | 
| }
 | 
| if(state=="stopping"){
 | 
|     arg.dom.innerHTML="<font color='red'>停止中</font>";
 | 
| }
 | 
| if(state=="stop"){
 | 
|     arg.dom.innerHTML="<strong><font color='red'>停止</font></strong>";
 | 
| }
 | 
| </ClientEvent> | 
|               <Property name="property">state</Property> | 
|               <Property name="name">state</Property> | 
|               <Property name="width">100</Property> | 
|               <Property name="filterable">false</Property> | 
|               <Editor/> | 
|             </DataColumn> | 
|             <DataColumn name="cronExpression"> | 
|               <Property name="property">cronExpression</Property> | 
|               <Property name="width">160</Property> | 
|               <Property name="filterable">false</Property> | 
|             </DataColumn> | 
|             <DataColumn name="desc"> | 
|               <Property name="property">desc</Property> | 
|               <Property name="filterable">false</Property> | 
|             </DataColumn> | 
|           </DataGrid> | 
|           <Dialog id="dialogCron"> | 
|             <Property name="center">true</Property> | 
|             <Property name="width">550</Property> | 
|             <Property name="height">300</Property> | 
|             <Property name="maximizeable">true</Property> | 
|             <Property name="modal">true</Property> | 
|             <Property name="closeable">false</Property> | 
|             <Property name="caption">Job信息编辑</Property> | 
|             <Buttons> | 
|               <Button> | 
|                 <ClientEvent name="onClick">var cron=view.id("autoFormCronExp").get("entity").cron;
 | 
| view.id("dataSetJob").getData("#").set("cronExpression",cron);
 | 
| view.id("dialogCron").hide();</ClientEvent> | 
|                 <Property name="caption">确认</Property> | 
|                 <Property name="icon">url(skin>common/icons.gif) -140px -20px</Property> | 
|               </Button> | 
|               <Button> | 
|                 <ClientEvent name="onClick">view.id("dialogCron").hide();</ClientEvent> | 
|                 <Property name="caption">取消</Property> | 
|                 <Property name="icon">url(skin>common/icons.gif) -40px 0px</Property> | 
|               </Button> | 
|             </Buttons> | 
|             <Children> | 
|               <TabControl> | 
|                 <Property name="height">130</Property> | 
|                 <ControlTab> | 
|                   <Property name="caption">秒</Property> | 
|                   <Container> | 
|                     <AutoForm> | 
|                       <Property name="cols">*</Property> | 
|                       <Property name="labelAlign">right</Property> | 
|                       <AutoFormElement> | 
|                         <Property name="label">类型</Property> | 
|                         <Property name="name">type</Property> | 
|                         <Editor> | 
|                           <RadioGroup> | 
|                             <ClientEvent name="onValueChange">view.id("autoFormPerSecond").set("visible",false);
 | 
| view.id("autoFormRegionSecond").set("visible",false);
 | 
| view.id("autoFormSpecificSecond").set("visible",false);
 | 
| var value=self.get("value");
 | 
| if(value=="per"){
 | 
|     view.id("autoFormPerSecond").set("visible",true);
 | 
| }
 | 
| if(value=="region"){
 | 
|     view.id("autoFormRegionSecond").set("visible",true);
 | 
| }
 | 
| if(value=="specific"){
 | 
|     view.id("autoFormSpecificSecond").set("visible",true);
 | 
| }</ClientEvent> | 
|                             <Property name="value">all</Property> | 
|                             <Property name="dataSet">dataSetSecond</Property> | 
|                             <Property name="property">type</Property> | 
|                             <RadioButton> | 
|                               <Property name="value">all</Property> | 
|                               <Property name="text">所有秒</Property> | 
|                             </RadioButton> | 
|                             <RadioButton> | 
|                               <Property name="text">每隔多少秒</Property> | 
|                               <Property name="value">per</Property> | 
|                             </RadioButton> | 
|                             <RadioButton> | 
|                               <Property name="text">秒区段</Property> | 
|                               <Property name="value">region</Property> | 
|                             </RadioButton> | 
|                             <RadioButton> | 
|                               <Property name="text">特定秒</Property> | 
|                               <Property name="value">specific</Property> | 
|                             </RadioButton> | 
|                           </RadioGroup> | 
|                         </Editor> | 
|                       </AutoFormElement> | 
|                     </AutoForm> | 
|                     <Container> | 
|                       <AutoForm id="autoFormPerSecond"> | 
|                         <Property name="labelAlign">right</Property> | 
|                         <Property name="cols">*</Property> | 
|                         <Property name="visible">false</Property> | 
|                         <Property name="hideMode">display</Property> | 
|                         <AutoFormElement> | 
|                           <Property name="name">per</Property> | 
|                           <Property name="label">从第</Property> | 
|                           <Property name="labelSeparator"> </Property> | 
|                           <Editor> | 
|                             <Container layout="hbox"> | 
|                               <TextEditor> | 
|                                 <Property name="dataSet">dataSetSecond</Property> | 
|                                 <Property name="property">fromPerSecond</Property> | 
|                                 <Property name="trigger">listDropDownSelectSecond</Property> | 
|                                 <Property name="editable">false</Property> | 
|                                 <Property name="width">90</Property> | 
|                               </TextEditor> | 
|                               <Label> | 
|                                 <Property name="text">秒开始,每隔</Property> | 
|                               </Label> | 
|                               <TextEditor> | 
|                                 <Property name="dataSet">dataSetSecond</Property> | 
|                                 <Property name="property">perSecond</Property> | 
|                                 <Property name="trigger">listDropDownSelectSecond</Property> | 
|                                 <Property name="editable">false</Property> | 
|                                 <Property name="width">90</Property> | 
|                               </TextEditor> | 
|                               <Label> | 
|                                 <Property name="text">秒执行一次</Property> | 
|                               </Label> | 
|                             </Container> | 
|                           </Editor> | 
|                         </AutoFormElement> | 
|                       </AutoForm> | 
|                       <AutoForm id="autoFormRegionSecond"> | 
|                         <Property name="cols">*</Property> | 
|                         <Property name="labelAlign">right</Property> | 
|                         <Property name="visible">false</Property> | 
|                         <Property name="hideMode">display</Property> | 
|                         <AutoFormElement> | 
|                           <Property name="label">在第</Property> | 
|                           <Property name="name">region</Property> | 
|                           <Property name="labelSeparator"> </Property> | 
|                           <Editor> | 
|                             <Container layout="hbox"> | 
|                               <TextEditor> | 
|                                 <Property name="dataSet">dataSetSecond</Property> | 
|                                 <Property name="property">fromSecond</Property> | 
|                                 <Property name="trigger">listDropDownSelectSecond</Property> | 
|                                 <Property name="editable">false</Property> | 
|                                 <Property name="width">90</Property> | 
|                               </TextEditor> | 
|                               <Label> | 
|                                 <Property name="text">秒到</Property> | 
|                               </Label> | 
|                               <TextEditor> | 
|                                 <Property name="dataType">int</Property> | 
|                                 <Property name="dataSet">dataSetSecond</Property> | 
|                                 <Property name="property">toSecond</Property> | 
|                                 <Property name="trigger">listDropDownSelectSecond</Property> | 
|                                 <Property name="editable">false</Property> | 
|                                 <Property name="width">90</Property> | 
|                               </TextEditor> | 
|                               <Label> | 
|                                 <Property name="text">秒区间执行</Property> | 
|                               </Label> | 
|                             </Container> | 
|                           </Editor> | 
|                         </AutoFormElement> | 
|                       </AutoForm> | 
|                       <AutoForm id="autoFormSpecificSecond"> | 
|                         <Property name="cols">*</Property> | 
|                         <Property name="hideMode">display</Property> | 
|                         <Property name="visible">false</Property> | 
|                         <Property name="labelAlign">right</Property> | 
|                         <AutoFormElement> | 
|                           <Property name="label">选择秒</Property> | 
|                           <Property name="name">specific</Property> | 
|                           <Editor> | 
|                             <TagEditor> | 
|                               <Property name="trigger">listDropDownSecond</Property> | 
|                               <Property name="editable">false</Property> | 
|                               <Property name="dataSet">dataSetSecond</Property> | 
|                               <Property name="property">specificSecond</Property> | 
|                             </TagEditor> | 
|                           </Editor> | 
|                         </AutoFormElement> | 
|                       </AutoForm> | 
|                       <ListDropDown id="listDropDownSecond"> | 
|                         <ClientEvent name="onReady">var seconds=[];
 | 
| for(var i=0;i<60;i++){
 | 
|     seconds.push(i);
 | 
| }
 | 
| self.set("items",seconds);</ClientEvent> | 
|                         <ClientEvent name="onValueSelect">var selectedValue=arg.selectedValue;
 | 
| var data=view.id("dataSetSecond").getData();
 | 
| var orgValue=data.get("specificSecond");
 | 
| var ok=true;
 | 
| if(orgValue){
 | 
|     var value=orgValue.split(",");
 | 
|     for(var i=0;i<value.length;i++){
 | 
|         if(value[i]==selectedValue){
 | 
|             ok=false;
 | 
|             break;
 | 
|         }
 | 
|     }
 | 
|     orgValue+=","+selectedValue;
 | 
| }else{
 | 
|     orgValue=selectedValue;
 | 
| }
 | 
| if(ok){
 | 
|     data.set("specificSecond",orgValue);
 | 
| }else{
 | 
|     dorado.MessageBox.alert("当前值已选择");
 | 
| }
 | 
| arg.processDefault=false;</ClientEvent> | 
|                         <Property name="items"></Property> | 
|                       </ListDropDown> | 
|                       <ListDropDown id="listDropDownSelectSecond"> | 
|                         <ClientEvent name="onReady">var seconds=[];
 | 
| for(var i=0;i<60;i++){
 | 
|     seconds.push(i);
 | 
| }
 | 
| self.set("items",seconds);</ClientEvent> | 
|                         <Property name="items"></Property> | 
|                       </ListDropDown> | 
|                     </Container> | 
|                   </Container> | 
|                 </ControlTab> | 
|                 <ControlTab> | 
|                   <Property name="caption">分钟</Property> | 
|                   <Container> | 
|                     <AutoForm> | 
|                       <Property name="cols">*</Property> | 
|                       <Property name="labelAlign">right</Property> | 
|                       <AutoFormElement> | 
|                         <Property name="label">类型</Property> | 
|                         <Property name="name">type</Property> | 
|                         <Editor> | 
|                           <RadioGroup> | 
|                             <ClientEvent name="onValueChange">view.id("autoFormPerMinute").set("visible",false);
 | 
| view.id("autoFormRegionMinute").set("visible",false);
 | 
| view.id("autoFormSpecificMinute").set("visible",false);
 | 
| var value=self.get("value");
 | 
| if(value=="per"){
 | 
|     view.id("autoFormPerMinute").set("visible",true);
 | 
| }
 | 
| if(value=="region"){
 | 
|     view.id("autoFormRegionMinute").set("visible",true);
 | 
| }
 | 
| if(value=="specific"){
 | 
|     view.id("autoFormSpecificMinute").set("visible",true);
 | 
| }</ClientEvent> | 
|                             <Property name="value">all</Property> | 
|                             <Property name="dataSet">dataSetMinute</Property> | 
|                             <Property name="property">type</Property> | 
|                             <RadioButton> | 
|                               <Property name="value">all</Property> | 
|                               <Property name="text">所有分钟</Property> | 
|                             </RadioButton> | 
|                             <RadioButton> | 
|                               <Property name="text">每隔多少分钟</Property> | 
|                               <Property name="value">per</Property> | 
|                             </RadioButton> | 
|                             <RadioButton> | 
|                               <Property name="text">分钟区段</Property> | 
|                               <Property name="value">region</Property> | 
|                             </RadioButton> | 
|                             <RadioButton> | 
|                               <Property name="text">特定分钟</Property> | 
|                               <Property name="value">specific</Property> | 
|                             </RadioButton> | 
|                           </RadioGroup> | 
|                         </Editor> | 
|                       </AutoFormElement> | 
|                     </AutoForm> | 
|                     <Container> | 
|                       <AutoForm id="autoFormPerMinute"> | 
|                         <Property name="labelAlign">right</Property> | 
|                         <Property name="cols">*</Property> | 
|                         <Property name="visible">false</Property> | 
|                         <Property name="hideMode">display</Property> | 
|                         <AutoFormElement> | 
|                           <Property name="name">per</Property> | 
|                           <Property name="label">从第</Property> | 
|                           <Property name="labelSeparator"> </Property> | 
|                           <Editor> | 
|                             <Container layout="hbox"> | 
|                               <TextEditor> | 
|                                 <Property name="dataSet">dataSetMinute</Property> | 
|                                 <Property name="property">fromPerMinute</Property> | 
|                                 <Property name="trigger">listDropDownSelectMinute</Property> | 
|                                 <Property name="editable">false</Property> | 
|                                 <Property name="width">90</Property> | 
|                               </TextEditor> | 
|                               <Label> | 
|                                 <Property name="text">分钟开始,每隔</Property> | 
|                               </Label> | 
|                               <TextEditor> | 
|                                 <Property name="dataSet">dataSetMinute</Property> | 
|                                 <Property name="property">perMinute</Property> | 
|                                 <Property name="trigger">listDropDownSelectMinute</Property> | 
|                                 <Property name="editable">false</Property> | 
|                                 <Property name="width">90</Property> | 
|                               </TextEditor> | 
|                               <Label> | 
|                                 <Property name="text">分钟执行一次</Property> | 
|                               </Label> | 
|                             </Container> | 
|                           </Editor> | 
|                         </AutoFormElement> | 
|                       </AutoForm> | 
|                       <AutoForm id="autoFormRegionMinute"> | 
|                         <Property name="cols">*</Property> | 
|                         <Property name="labelAlign">right</Property> | 
|                         <Property name="visible">false</Property> | 
|                         <Property name="hideMode">display</Property> | 
|                         <AutoFormElement> | 
|                           <Property name="label">在第</Property> | 
|                           <Property name="name">region</Property> | 
|                           <Property name="labelSeparator"> </Property> | 
|                           <Editor> | 
|                             <Container layout="hbox"> | 
|                               <TextEditor> | 
|                                 <Property name="dataSet">dataSetMinute</Property> | 
|                                 <Property name="property">fromMinute</Property> | 
|                                 <Property name="trigger">listDropDownSelectMinute</Property> | 
|                                 <Property name="editable">false</Property> | 
|                                 <Property name="width">90</Property> | 
|                               </TextEditor> | 
|                               <Label> | 
|                                 <Property name="text">分钟到</Property> | 
|                               </Label> | 
|                               <TextEditor> | 
|                                 <Property name="dataSet">dataSetMinute</Property> | 
|                                 <Property name="property">toMinute</Property> | 
|                                 <Property name="trigger">listDropDownSelectMinute</Property> | 
|                                 <Property name="editable">false</Property> | 
|                                 <Property name="width">90</Property> | 
|                               </TextEditor> | 
|                               <Label> | 
|                                 <Property name="text">分钟区间执行</Property> | 
|                               </Label> | 
|                             </Container> | 
|                           </Editor> | 
|                         </AutoFormElement> | 
|                       </AutoForm> | 
|                       <AutoForm id="autoFormSpecificMinute"> | 
|                         <Property name="cols">*</Property> | 
|                         <Property name="hideMode">display</Property> | 
|                         <Property name="visible">false</Property> | 
|                         <Property name="labelAlign">right</Property> | 
|                         <AutoFormElement> | 
|                           <Property name="label">选择秒</Property> | 
|                           <Property name="name">specific</Property> | 
|                           <Editor> | 
|                             <TagEditor> | 
|                               <Property name="trigger">listDropDownMinute</Property> | 
|                               <Property name="editable">false</Property> | 
|                               <Property name="dataSet">dataSetMinute</Property> | 
|                               <Property name="property">specificMinute</Property> | 
|                             </TagEditor> | 
|                           </Editor> | 
|                         </AutoFormElement> | 
|                       </AutoForm> | 
|                       <ListDropDown id="listDropDownMinute"> | 
|                         <ClientEvent name="onReady">var seconds=[];
 | 
| for(var i=0;i<60;i++){
 | 
|     seconds.push(i);
 | 
| }
 | 
| self.set("items",seconds);</ClientEvent> | 
|                         <ClientEvent name="onValueSelect">var selectedValue=arg.selectedValue;
 | 
| var data=view.id("dataSetMinute").getData();
 | 
| var orgValue=data.get("specificMinute");
 | 
| var ok=true;
 | 
| if(orgValue){
 | 
|     var value=orgValue.split(",");
 | 
|     for(var i=0;i<value.length;i++){
 | 
|         if(value[i]==selectedValue){
 | 
|             ok=false;
 | 
|             break;
 | 
|         }
 | 
|     }
 | 
|     orgValue+=","+selectedValue;
 | 
| }else{
 | 
|     orgValue=selectedValue;
 | 
| }
 | 
| if(ok){
 | 
|     data.set("specificMinute",orgValue);
 | 
| }else{
 | 
|     dorado.MessageBox.alert("当前值已选择");
 | 
| }
 | 
| arg.processDefault=false;</ClientEvent> | 
|                         <Property name="items"></Property> | 
|                       </ListDropDown> | 
|                       <ListDropDown id="listDropDownSelectMinute"> | 
|                         <ClientEvent name="onReady">var seconds=[];
 | 
| for(var i=0;i<60;i++){
 | 
|     seconds.push(i);
 | 
| }
 | 
| self.set("items",seconds);</ClientEvent> | 
|                         <Property name="items"></Property> | 
|                       </ListDropDown> | 
|                     </Container> | 
|                   </Container> | 
|                 </ControlTab> | 
|                 <ControlTab> | 
|                   <Property name="caption">小时</Property> | 
|                   <Container> | 
|                     <AutoForm> | 
|                       <Property name="cols">*</Property> | 
|                       <Property name="labelAlign">right</Property> | 
|                       <AutoFormElement> | 
|                         <Property name="label">类型</Property> | 
|                         <Property name="name">type</Property> | 
|                         <Editor> | 
|                           <RadioGroup> | 
|                             <ClientEvent name="onValueChange">view.id("autoFormPerHour").set("visible",false);
 | 
| view.id("autoFormRegionHour").set("visible",false);
 | 
| view.id("autoFormSpecificHour").set("visible",false);
 | 
| var value=self.get("value");
 | 
| if(value=="per"){
 | 
|     view.id("autoFormPerHour").set("visible",true);
 | 
| }
 | 
| if(value=="region"){
 | 
|     view.id("autoFormRegionHour").set("visible",true);
 | 
| }
 | 
| if(value=="specific"){
 | 
|     view.id("autoFormSpecificHour").set("visible",true);
 | 
| }</ClientEvent> | 
|                             <Property name="value">all</Property> | 
|                             <Property name="dataSet">dataSetHour</Property> | 
|                             <Property name="property">type</Property> | 
|                             <RadioButton> | 
|                               <Property name="value">all</Property> | 
|                               <Property name="text">所有小时</Property> | 
|                             </RadioButton> | 
|                             <RadioButton> | 
|                               <Property name="text">每隔多少小时</Property> | 
|                               <Property name="value">per</Property> | 
|                             </RadioButton> | 
|                             <RadioButton> | 
|                               <Property name="text">小时区段</Property> | 
|                               <Property name="value">region</Property> | 
|                             </RadioButton> | 
|                             <RadioButton> | 
|                               <Property name="text">特定小时</Property> | 
|                               <Property name="value">specific</Property> | 
|                             </RadioButton> | 
|                           </RadioGroup> | 
|                         </Editor> | 
|                       </AutoFormElement> | 
|                     </AutoForm> | 
|                     <Container> | 
|                       <AutoForm id="autoFormPerHour"> | 
|                         <Property name="labelAlign">right</Property> | 
|                         <Property name="cols">*</Property> | 
|                         <Property name="visible">false</Property> | 
|                         <Property name="hideMode">display</Property> | 
|                         <AutoFormElement> | 
|                           <Property name="name">per</Property> | 
|                           <Property name="label">从第</Property> | 
|                           <Property name="labelSeparator"> </Property> | 
|                           <Editor> | 
|                             <Container layout="hbox"> | 
|                               <TextEditor> | 
|                                 <Property name="dataSet">dataSetHour</Property> | 
|                                 <Property name="property">fromPerHour</Property> | 
|                                 <Property name="trigger">listDropDownSelectHour</Property> | 
|                                 <Property name="editable">false</Property> | 
|                                 <Property name="width">90</Property> | 
|                               </TextEditor> | 
|                               <Label> | 
|                                 <Property name="text">小时开始,每隔</Property> | 
|                               </Label> | 
|                               <TextEditor> | 
|                                 <Property name="dataSet">dataSetHour</Property> | 
|                                 <Property name="property">perHour</Property> | 
|                                 <Property name="trigger">listDropDownSelectHour</Property> | 
|                                 <Property name="editable">false</Property> | 
|                                 <Property name="width">90</Property> | 
|                               </TextEditor> | 
|                               <Label> | 
|                                 <Property name="text">小时执行一次</Property> | 
|                               </Label> | 
|                             </Container> | 
|                           </Editor> | 
|                         </AutoFormElement> | 
|                       </AutoForm> | 
|                       <AutoForm id="autoFormRegionHour"> | 
|                         <Property name="cols">*</Property> | 
|                         <Property name="labelAlign">right</Property> | 
|                         <Property name="visible">false</Property> | 
|                         <Property name="hideMode">display</Property> | 
|                         <AutoFormElement> | 
|                           <Property name="label">在第</Property> | 
|                           <Property name="name">region</Property> | 
|                           <Property name="labelSeparator"> </Property> | 
|                           <Editor> | 
|                             <Container layout="hbox"> | 
|                               <TextEditor> | 
|                                 <Property name="dataSet">dataSetHour</Property> | 
|                                 <Property name="property">fromHour</Property> | 
|                                 <Property name="trigger">listDropDownSelectHour</Property> | 
|                                 <Property name="editable">false</Property> | 
|                                 <Property name="width">90</Property> | 
|                               </TextEditor> | 
|                               <Label> | 
|                                 <Property name="text">小时到</Property> | 
|                               </Label> | 
|                               <TextEditor> | 
|                                 <Property name="dataSet">dataSetHour</Property> | 
|                                 <Property name="property">toHour</Property> | 
|                                 <Property name="trigger">listDropDownSelectHour</Property> | 
|                                 <Property name="editable">false</Property> | 
|                                 <Property name="width">90</Property> | 
|                               </TextEditor> | 
|                               <Label> | 
|                                 <Property name="text">小时区间执行</Property> | 
|                               </Label> | 
|                             </Container> | 
|                           </Editor> | 
|                         </AutoFormElement> | 
|                       </AutoForm> | 
|                       <AutoForm id="autoFormSpecificHour"> | 
|                         <Property name="cols">*</Property> | 
|                         <Property name="hideMode">display</Property> | 
|                         <Property name="visible">false</Property> | 
|                         <Property name="labelAlign">right</Property> | 
|                         <AutoFormElement> | 
|                           <Property name="label">选择小时</Property> | 
|                           <Property name="name">specific</Property> | 
|                           <Editor> | 
|                             <TagEditor> | 
|                               <Property name="trigger">listDropDownHour</Property> | 
|                               <Property name="editable">false</Property> | 
|                               <Property name="dataSet">dataSetHour</Property> | 
|                               <Property name="property">specificHour</Property> | 
|                             </TagEditor> | 
|                           </Editor> | 
|                         </AutoFormElement> | 
|                       </AutoForm> | 
|                       <ListDropDown id="listDropDownHour"> | 
|                         <ClientEvent name="onReady">var seconds=[];
 | 
| for(var i=0;i<24;i++){
 | 
|     seconds.push(i);
 | 
| }
 | 
| self.set("items",seconds);</ClientEvent> | 
|                         <ClientEvent name="onValueSelect">var selectedValue=arg.selectedValue;
 | 
| var data=view.id("dataSetHour").getData();
 | 
| var orgValue=data.get("specificHour");
 | 
| var ok=true;
 | 
| if(orgValue){
 | 
|     var value=orgValue.split(",");
 | 
|     for(var i=0;i<value.length;i++){
 | 
|         if(value[i]==selectedValue){
 | 
|             ok=false;
 | 
|             break;
 | 
|         }
 | 
|     }
 | 
|     orgValue+=","+selectedValue;
 | 
| }else{
 | 
|     orgValue=selectedValue;
 | 
| }
 | 
| if(ok){
 | 
|     data.set("specificHour",orgValue);
 | 
| }else{
 | 
|     dorado.MessageBox.alert("当前值已选择");
 | 
| }
 | 
| arg.processDefault=false;</ClientEvent> | 
|                         <Property name="items"></Property> | 
|                       </ListDropDown> | 
|                       <ListDropDown id="listDropDownSelectHour"> | 
|                         <ClientEvent name="onReady">var seconds=[];
 | 
| for(var i=0;i<24;i++){
 | 
|     seconds.push(i);
 | 
| }
 | 
| self.set("items",seconds);</ClientEvent> | 
|                         <Property name="items"></Property> | 
|                       </ListDropDown> | 
|                     </Container> | 
|                   </Container> | 
|                 </ControlTab> | 
|                 <ControlTab> | 
|                   <Property name="caption">日期</Property> | 
|                   <Container> | 
|                     <AutoForm> | 
|                       <Property name="cols">*</Property> | 
|                       <Property name="labelAlign">right</Property> | 
|                       <AutoFormElement> | 
|                         <Property name="label">类型</Property> | 
|                         <Property name="name">type</Property> | 
|                         <Editor> | 
|                           <RadioGroup> | 
|                             <ClientEvent name="onValueChange">view.id("autoFormPerDay").set("visible",false);
 | 
| view.id("autoFormRegionDay").set("visible",false);
 | 
| view.id("autoFormSpecificDay").set("visible",false);
 | 
| var value=self.get("value");
 | 
| if(value=="per"){
 | 
|     view.id("autoFormPerDay").set("visible",true);
 | 
| }
 | 
| if(value=="region"){
 | 
|     view.id("autoFormRegionDay").set("visible",true);
 | 
| }
 | 
| if(value=="specific"){
 | 
|     view.id("autoFormSpecificDay").set("visible",true);
 | 
| }</ClientEvent> | 
|                             <Property name="value">all</Property> | 
|                             <Property name="dataSet">dataSetDay</Property> | 
|                             <Property name="property">type</Property> | 
|                             <RadioButton> | 
|                               <Property name="value">all</Property> | 
|                               <Property name="text">所有日</Property> | 
|                             </RadioButton> | 
|                             <RadioButton> | 
|                               <Property name="text">每隔多少日</Property> | 
|                               <Property name="value">per</Property> | 
|                             </RadioButton> | 
|                             <RadioButton> | 
|                               <Property name="text">日区段</Property> | 
|                               <Property name="value">region</Property> | 
|                             </RadioButton> | 
|                             <RadioButton> | 
|                               <Property name="text">特定日</Property> | 
|                               <Property name="value">specific</Property> | 
|                             </RadioButton> | 
|                             <RadioButton> | 
|                               <Property name="text">每月最后一天</Property> | 
|                               <Property name="value">last</Property> | 
|                             </RadioButton> | 
|                           </RadioGroup> | 
|                         </Editor> | 
|                       </AutoFormElement> | 
|                     </AutoForm> | 
|                     <Container> | 
|                       <AutoForm id="autoFormPerDay"> | 
|                         <Property name="labelAlign">right</Property> | 
|                         <Property name="cols">*</Property> | 
|                         <Property name="visible">false</Property> | 
|                         <Property name="hideMode">display</Property> | 
|                         <AutoFormElement> | 
|                           <Property name="name">per</Property> | 
|                           <Property name="label">从第</Property> | 
|                           <Property name="labelSeparator"> </Property> | 
|                           <Editor> | 
|                             <Container layout="hbox"> | 
|                               <TextEditor> | 
|                                 <Property name="dataSet">dataSetDay</Property> | 
|                                 <Property name="property">fromPerDay</Property> | 
|                                 <Property name="trigger">listDropDownSelectDay</Property> | 
|                                 <Property name="editable">false</Property> | 
|                                 <Property name="width">90</Property> | 
|                               </TextEditor> | 
|                               <Label> | 
|                                 <Property name="text">日开始,每隔</Property> | 
|                               </Label> | 
|                               <TextEditor> | 
|                                 <Property name="dataSet">dataSetDay</Property> | 
|                                 <Property name="property">perDay</Property> | 
|                                 <Property name="trigger">listDropDownSelectDay</Property> | 
|                                 <Property name="editable">false</Property> | 
|                                 <Property name="width">90</Property> | 
|                               </TextEditor> | 
|                               <Label> | 
|                                 <Property name="text">日执行一次</Property> | 
|                               </Label> | 
|                             </Container> | 
|                           </Editor> | 
|                         </AutoFormElement> | 
|                       </AutoForm> | 
|                       <AutoForm id="autoFormRegionDay"> | 
|                         <Property name="cols">*</Property> | 
|                         <Property name="labelAlign">right</Property> | 
|                         <Property name="visible">false</Property> | 
|                         <Property name="hideMode">display</Property> | 
|                         <AutoFormElement> | 
|                           <Property name="label">在第</Property> | 
|                           <Property name="name">region</Property> | 
|                           <Property name="labelSeparator"> </Property> | 
|                           <Editor> | 
|                             <Container layout="hbox"> | 
|                               <TextEditor> | 
|                                 <Property name="dataSet">dataSetDay</Property> | 
|                                 <Property name="property">fromDay</Property> | 
|                                 <Property name="trigger">listDropDownSelectDay</Property> | 
|                                 <Property name="editable">false</Property> | 
|                                 <Property name="width">90</Property> | 
|                               </TextEditor> | 
|                               <Label> | 
|                                 <Property name="text">日到</Property> | 
|                               </Label> | 
|                               <TextEditor> | 
|                                 <Property name="dataSet">dataSetDay</Property> | 
|                                 <Property name="property">toDay</Property> | 
|                                 <Property name="trigger">listDropDownSelectDay</Property> | 
|                                 <Property name="editable">false</Property> | 
|                                 <Property name="width">90</Property> | 
|                               </TextEditor> | 
|                               <Label> | 
|                                 <Property name="text">日区间执行</Property> | 
|                               </Label> | 
|                             </Container> | 
|                           </Editor> | 
|                         </AutoFormElement> | 
|                       </AutoForm> | 
|                       <AutoForm id="autoFormSpecificDay"> | 
|                         <Property name="cols">*</Property> | 
|                         <Property name="hideMode">display</Property> | 
|                         <Property name="visible">false</Property> | 
|                         <Property name="labelAlign">right</Property> | 
|                         <AutoFormElement> | 
|                           <Property name="label">选择日期</Property> | 
|                           <Property name="name">specific</Property> | 
|                           <Editor> | 
|                             <TagEditor> | 
|                               <Property name="trigger">listDropDownDay</Property> | 
|                               <Property name="editable">false</Property> | 
|                               <Property name="dataSet">dataSetDay</Property> | 
|                               <Property name="property">specificDay</Property> | 
|                             </TagEditor> | 
|                           </Editor> | 
|                         </AutoFormElement> | 
|                       </AutoForm> | 
|                       <ListDropDown id="listDropDownDay"> | 
|                         <ClientEvent name="onReady">var seconds=[];
 | 
| for(var i=1;i<32;i++){
 | 
|     seconds.push(i);
 | 
| }
 | 
| self.set("items",seconds);</ClientEvent> | 
|                         <ClientEvent name="onValueSelect">var selectedValue=arg.selectedValue;
 | 
| var data=view.id("dataSetDay").getData();
 | 
| var orgValue=data.get("specificDay");
 | 
| var ok=true;
 | 
| if(orgValue){
 | 
|     var value=orgValue.split(",");
 | 
|     for(var i=0;i<value.length;i++){
 | 
|         if(value[i]==selectedValue){
 | 
|             ok=false;
 | 
|             break;
 | 
|         }
 | 
|     }
 | 
|     orgValue+=","+selectedValue;
 | 
| }else{
 | 
|     orgValue=selectedValue;
 | 
| }
 | 
| if(ok){
 | 
|     data.set("specificDay",orgValue);
 | 
| }else{
 | 
|     dorado.MessageBox.alert("当前值已选择");
 | 
| }
 | 
| arg.processDefault=false;</ClientEvent> | 
|                         <Property name="items"></Property> | 
|                       </ListDropDown> | 
|                       <ListDropDown id="listDropDownSelectDay"> | 
|                         <ClientEvent name="onReady">var seconds=[];
 | 
| for(var i=1;i<32;i++){
 | 
|     seconds.push(i);
 | 
| }
 | 
| self.set("items",seconds);</ClientEvent> | 
|                         <Property name="items"></Property> | 
|                       </ListDropDown> | 
|                     </Container> | 
|                   </Container> | 
|                 </ControlTab> | 
|                 <ControlTab> | 
|                   <Property name="caption">月份</Property> | 
|                   <Container> | 
|                     <AutoForm> | 
|                       <Property name="cols">*</Property> | 
|                       <Property name="labelAlign">right</Property> | 
|                       <AutoFormElement> | 
|                         <Property name="label">类型</Property> | 
|                         <Property name="name">type</Property> | 
|                         <Editor> | 
|                           <RadioGroup> | 
|                             <ClientEvent name="onValueChange">view.id("autoFormPerMonth").set("visible",false);
 | 
| view.id("autoFormRegionMonth").set("visible",false);
 | 
| view.id("autoFormSpecificMonth").set("visible",false);
 | 
| var value=self.get("value");
 | 
| if(value=="per"){
 | 
|     view.id("autoFormPerMonth").set("visible",true);
 | 
| }
 | 
| if(value=="region"){
 | 
|     view.id("autoFormRegionMonth").set("visible",true);
 | 
| }
 | 
| if(value=="specific"){
 | 
|     view.id("autoFormSpecificMonth").set("visible",true);
 | 
| }</ClientEvent> | 
|                             <Property name="value">all</Property> | 
|                             <Property name="dataSet">dataSetMonth</Property> | 
|                             <Property name="property">type</Property> | 
|                             <RadioButton> | 
|                               <Property name="value">all</Property> | 
|                               <Property name="text">所有月份</Property> | 
|                             </RadioButton> | 
|                             <RadioButton> | 
|                               <Property name="text">每隔多少月</Property> | 
|                               <Property name="value">per</Property> | 
|                             </RadioButton> | 
|                             <RadioButton> | 
|                               <Property name="text">月份区段</Property> | 
|                               <Property name="value">region</Property> | 
|                             </RadioButton> | 
|                             <RadioButton> | 
|                               <Property name="text">特定月份</Property> | 
|                               <Property name="value">specific</Property> | 
|                             </RadioButton> | 
|                           </RadioGroup> | 
|                         </Editor> | 
|                       </AutoFormElement> | 
|                     </AutoForm> | 
|                     <Container> | 
|                       <AutoForm id="autoFormPerMonth"> | 
|                         <Property name="labelAlign">right</Property> | 
|                         <Property name="cols">*</Property> | 
|                         <Property name="visible">false</Property> | 
|                         <Property name="hideMode">display</Property> | 
|                         <AutoFormElement> | 
|                           <Property name="name">per</Property> | 
|                           <Property name="label">从第</Property> | 
|                           <Property name="labelSeparator"> </Property> | 
|                           <Editor> | 
|                             <Container layout="hbox"> | 
|                               <TextEditor> | 
|                                 <Property name="dataSet">dataSetMonth</Property> | 
|                                 <Property name="property">fromPerMonth</Property> | 
|                                 <Property name="trigger">listDropDownSelectMonth</Property> | 
|                                 <Property name="editable">false</Property> | 
|                                 <Property name="width">90</Property> | 
|                               </TextEditor> | 
|                               <Label> | 
|                                 <Property name="text">月开始,每隔</Property> | 
|                               </Label> | 
|                               <TextEditor> | 
|                                 <Property name="dataSet">dataSetMonth</Property> | 
|                                 <Property name="property">perMonth</Property> | 
|                                 <Property name="trigger">listDropDownSelectMonth</Property> | 
|                                 <Property name="editable">false</Property> | 
|                                 <Property name="width">90</Property> | 
|                               </TextEditor> | 
|                               <Label> | 
|                                 <Property name="text">月执行一次</Property> | 
|                               </Label> | 
|                             </Container> | 
|                           </Editor> | 
|                         </AutoFormElement> | 
|                       </AutoForm> | 
|                       <AutoForm id="autoFormRegionMonth"> | 
|                         <Property name="cols">*</Property> | 
|                         <Property name="labelAlign">right</Property> | 
|                         <Property name="visible">false</Property> | 
|                         <Property name="hideMode">display</Property> | 
|                         <AutoFormElement> | 
|                           <Property name="label">在第</Property> | 
|                           <Property name="name">region</Property> | 
|                           <Property name="labelSeparator"> </Property> | 
|                           <Editor> | 
|                             <Container layout="hbox"> | 
|                               <TextEditor> | 
|                                 <Property name="dataSet">dataSetMonth</Property> | 
|                                 <Property name="property">fromMonth</Property> | 
|                                 <Property name="trigger">listDropDownSelectMonth</Property> | 
|                                 <Property name="editable">false</Property> | 
|                                 <Property name="width">90</Property> | 
|                               </TextEditor> | 
|                               <Label> | 
|                                 <Property name="text">月到</Property> | 
|                               </Label> | 
|                               <TextEditor> | 
|                                 <Property name="dataSet">dataSetMonth</Property> | 
|                                 <Property name="property">toMonth</Property> | 
|                                 <Property name="trigger">listDropDownSelectMonth</Property> | 
|                                 <Property name="editable">false</Property> | 
|                                 <Property name="width">90</Property> | 
|                               </TextEditor> | 
|                               <Label> | 
|                                 <Property name="text">月区间执行</Property> | 
|                               </Label> | 
|                             </Container> | 
|                           </Editor> | 
|                         </AutoFormElement> | 
|                       </AutoForm> | 
|                       <AutoForm id="autoFormSpecificMonth"> | 
|                         <Property name="cols">*</Property> | 
|                         <Property name="hideMode">display</Property> | 
|                         <Property name="visible">false</Property> | 
|                         <Property name="labelAlign">right</Property> | 
|                         <AutoFormElement> | 
|                           <Property name="label">选择小时</Property> | 
|                           <Property name="name">specific</Property> | 
|                           <Editor> | 
|                             <TagEditor> | 
|                               <Property name="trigger">listDropDownMonth</Property> | 
|                               <Property name="editable">false</Property> | 
|                               <Property name="dataSet">dataSetMonth</Property> | 
|                               <Property name="property">specificMonth</Property> | 
|                             </TagEditor> | 
|                           </Editor> | 
|                         </AutoFormElement> | 
|                       </AutoForm> | 
|                       <ListDropDown id="listDropDownMonth"> | 
|                         <ClientEvent name="onReady">var seconds=[];
 | 
| for(var i=1;i<13;i++){
 | 
|     seconds.push(i);
 | 
| }
 | 
| self.set("items",seconds);</ClientEvent> | 
|                         <ClientEvent name="onValueSelect">var selectedValue=arg.selectedValue;
 | 
| var data=view.id("dataSetMonth").getData();
 | 
| var orgValue=data.get("specificMonth");
 | 
| var ok=true;
 | 
| if(orgValue){
 | 
|     var value=orgValue.split(",");
 | 
|     for(var i=0;i<value.length;i++){
 | 
|         if(value[i]==selectedValue){
 | 
|             ok=false;
 | 
|             break;
 | 
|         }
 | 
|     }
 | 
|     orgValue+=","+selectedValue;
 | 
| }else{
 | 
|     orgValue=selectedValue;
 | 
| }
 | 
| if(ok){
 | 
|     data.set("specificMonth",orgValue);
 | 
| }else{
 | 
|     dorado.MessageBox.alert("当前值已选择");
 | 
| }
 | 
| arg.processDefault=false;</ClientEvent> | 
|                         <Property name="items"></Property> | 
|                       </ListDropDown> | 
|                       <ListDropDown id="listDropDownSelectMonth"> | 
|                         <ClientEvent name="onReady">var seconds=[];
 | 
| for(var i=1;i<13;i++){
 | 
|     seconds.push(i);
 | 
| }
 | 
| self.set("items",seconds);</ClientEvent> | 
|                         <Property name="items"></Property> | 
|                       </ListDropDown> | 
|                     </Container> | 
|                   </Container> | 
|                 </ControlTab> | 
|                 <ControlTab> | 
|                   <Property name="caption">星期</Property> | 
|                   <Container> | 
|                     <AutoForm> | 
|                       <Property name="cols">*</Property> | 
|                       <Property name="labelAlign">right</Property> | 
|                       <AutoFormElement> | 
|                         <Property name="label">类型</Property> | 
|                         <Property name="name">type</Property> | 
|                         <Editor> | 
|                           <RadioGroup> | 
|                             <ClientEvent name="onValueChange">view.id("autoFormPerWeek").set("visible",false);
 | 
| view.id("autoFormRegionWeek").set("visible",false);
 | 
| view.id("autoFormSpecificWeek").set("visible",false);
 | 
| view.id("autoFormLastWeek").set("visible",false);
 | 
| var value=self.get("value");
 | 
| if(value=="per"){
 | 
|     view.id("autoFormPerWeek").set("visible",true);
 | 
| }
 | 
| if(value=="region"){
 | 
|     view.id("autoFormRegionWeek").set("visible",true);
 | 
| }
 | 
| if(value=="specific"){
 | 
|     view.id("autoFormSpecificWeek").set("visible",true);
 | 
| }
 | 
| if(value=="last"){
 | 
|     view.id("autoFormLastWeek").set("visible",true);
 | 
| }</ClientEvent> | 
|                             <Property name="value">all</Property> | 
|                             <Property name="dataSet">dataSetWeek</Property> | 
|                             <Property name="property">type</Property> | 
|                             <RadioButton> | 
|                               <Property name="value">all</Property> | 
|                               <Property name="text">所有星期</Property> | 
|                             </RadioButton> | 
|                             <RadioButton> | 
|                               <Property name="text">每隔多少星期天数</Property> | 
|                               <Property name="value">per</Property> | 
|                             </RadioButton> | 
|                             <RadioButton> | 
|                               <Property name="text">星期区段</Property> | 
|                               <Property name="value">region</Property> | 
|                             </RadioButton> | 
|                             <RadioButton> | 
|                               <Property name="text">特定星期</Property> | 
|                               <Property name="value">specific</Property> | 
|                             </RadioButton> | 
|                             <RadioButton> | 
|                               <Property name="text">每月最后一个星期</Property> | 
|                               <Property name="value">last</Property> | 
|                             </RadioButton> | 
|                           </RadioGroup> | 
|                         </Editor> | 
|                       </AutoFormElement> | 
|                     </AutoForm> | 
|                     <Container> | 
|                       <AutoForm id="autoFormPerWeek"> | 
|                         <Property name="labelAlign">right</Property> | 
|                         <Property name="cols">*</Property> | 
|                         <Property name="visible">false</Property> | 
|                         <Property name="hideMode">display</Property> | 
|                         <AutoFormElement> | 
|                           <Property name="name">per</Property> | 
|                           <Property name="label">从星期</Property> | 
|                           <Property name="labelSeparator"> </Property> | 
|                           <Editor> | 
|                             <Container layout="hbox"> | 
|                               <TextEditor> | 
|                                 <Property name="dataSet">dataSetWeek</Property> | 
|                                 <Property name="property">fromPerWeek</Property> | 
|                                 <Property name="trigger">listDropDownSelectWeek</Property> | 
|                                 <Property name="editable">false</Property> | 
|                                 <Property name="width">90</Property> | 
|                               </TextEditor> | 
|                               <Label> | 
|                                 <Property name="text">开始,每隔</Property> | 
|                               </Label> | 
|                               <TextEditor> | 
|                                 <Property name="dataSet">dataSetWeek</Property> | 
|                                 <Property name="property">perWeek</Property> | 
|                                 <Property name="trigger">listDropDownSelectWeek</Property> | 
|                                 <Property name="editable">false</Property> | 
|                                 <Property name="width">90</Property> | 
|                               </TextEditor> | 
|                               <Label> | 
|                                 <Property name="text">日执行一次</Property> | 
|                               </Label> | 
|                             </Container> | 
|                           </Editor> | 
|                         </AutoFormElement> | 
|                       </AutoForm> | 
|                       <AutoForm id="autoFormRegionWeek"> | 
|                         <Property name="cols">*</Property> | 
|                         <Property name="labelAlign">right</Property> | 
|                         <Property name="visible">false</Property> | 
|                         <Property name="hideMode">display</Property> | 
|                         <AutoFormElement> | 
|                           <Property name="label">在星期</Property> | 
|                           <Property name="name">region</Property> | 
|                           <Property name="labelSeparator"> </Property> | 
|                           <Editor> | 
|                             <Container layout="hbox"> | 
|                               <TextEditor> | 
|                                 <Property name="dataSet">dataSetWeek</Property> | 
|                                 <Property name="property">fromWeek</Property> | 
|                                 <Property name="trigger">listDropDownSelectWeek</Property> | 
|                                 <Property name="editable">false</Property> | 
|                                 <Property name="width">90</Property> | 
|                               </TextEditor> | 
|                               <Label> | 
|                                 <Property name="text">到星期</Property> | 
|                               </Label> | 
|                               <TextEditor> | 
|                                 <Property name="dataSet">dataSetWeek</Property> | 
|                                 <Property name="property">toWeek</Property> | 
|                                 <Property name="trigger">listDropDownSelectWeek</Property> | 
|                                 <Property name="editable">false</Property> | 
|                                 <Property name="width">90</Property> | 
|                               </TextEditor> | 
|                               <Label> | 
|                                 <Property name="text">区间执行</Property> | 
|                               </Label> | 
|                             </Container> | 
|                           </Editor> | 
|                         </AutoFormElement> | 
|                       </AutoForm> | 
|                       <AutoForm id="autoFormSpecificWeek"> | 
|                         <Property name="cols">*</Property> | 
|                         <Property name="hideMode">display</Property> | 
|                         <Property name="visible">false</Property> | 
|                         <Property name="labelAlign">right</Property> | 
|                         <AutoFormElement> | 
|                           <Property name="label">选择星期</Property> | 
|                           <Property name="name">specific</Property> | 
|                           <Editor> | 
|                             <TagEditor> | 
|                               <Property name="trigger">listDropDownWeek</Property> | 
|                               <Property name="editable">false</Property> | 
|                               <Property name="dataSet">dataSetWeek</Property> | 
|                               <Property name="property">specificWeek</Property> | 
|                             </TagEditor> | 
|                           </Editor> | 
|                         </AutoFormElement> | 
|                       </AutoForm> | 
|                       <AutoForm id="autoFormLastWeek"> | 
|                         <Property name="cols">*</Property> | 
|                         <Property name="labelAlign">right</Property> | 
|                         <Property name="visible">false</Property> | 
|                         <Property name="hideMode">display</Property> | 
|                         <Property name="labelWidth">150</Property> | 
|                         <AutoFormElement> | 
|                           <Property name="label">每月最后一个星期的星期</Property> | 
|                           <Property name="name">last</Property> | 
|                           <Property name="labelSeparator"> </Property> | 
|                           <Editor> | 
|                             <Container layout="hbox"> | 
|                               <TextEditor> | 
|                                 <Property name="dataSet">dataSetWeek</Property> | 
|                                 <Property name="property">last</Property> | 
|                                 <Property name="trigger">listDropDownSelectWeek</Property> | 
|                                 <Property name="editable">false</Property> | 
|                                 <Property name="width">90</Property> | 
|                               </TextEditor> | 
|                               <Label> | 
|                                 <Property name="text">执行</Property> | 
|                               </Label> | 
|                             </Container> | 
|                           </Editor> | 
|                         </AutoFormElement> | 
|                       </AutoForm> | 
|                       <ListDropDown id="listDropDownWeek"> | 
|                         <ClientEvent name="onReady">var seconds=[];
 | 
| seconds.push("SUN");
 | 
| seconds.push("MON");
 | 
| seconds.push("TUE");
 | 
| seconds.push("WED");
 | 
| seconds.push("THU");
 | 
| seconds.push("FRI");
 | 
| seconds.push("SAT");
 | 
| self.set("items",seconds);</ClientEvent> | 
|                         <ClientEvent name="onValueSelect">var selectedValue=arg.selectedValue;
 | 
| var data=view.id("dataSetWeek").getData();
 | 
| var orgValue=data.get("specificWeek");
 | 
| var ok=true;
 | 
| if(orgValue){
 | 
|     var value=orgValue.split(",");
 | 
|     for(var i=0;i<value.length;i++){
 | 
|         if(value[i]==selectedValue){
 | 
|             ok=false;
 | 
|             break;
 | 
|         }
 | 
|     }
 | 
|     orgValue+=","+selectedValue;
 | 
| }else{
 | 
|     orgValue=selectedValue;
 | 
| }
 | 
| if(ok){
 | 
|     data.set("specificWeek",orgValue);
 | 
| }else{
 | 
|     dorado.MessageBox.alert("当前值已选择");
 | 
| }
 | 
| arg.processDefault=false;</ClientEvent> | 
|                         <Property name="items"></Property> | 
|                       </ListDropDown> | 
|                       <ListDropDown id="listDropDownSelectWeek"> | 
|                         <ClientEvent name="onReady">var weeks=[];
 | 
| weeks.push("SUN");
 | 
| weeks.push("MON");
 | 
| weeks.push("TUE");
 | 
| weeks.push("WED");
 | 
| weeks.push("THU");
 | 
| weeks.push("FRI");
 | 
| weeks.push("SAT");
 | 
| self.set("items",weeks);</ClientEvent> | 
|                         <Property name="items"></Property> | 
|                       </ListDropDown> | 
|                     </Container> | 
|                   </Container> | 
|                 </ControlTab> | 
|               </TabControl> | 
|               <AutoForm id="autoFormCronExp"> | 
|                 <Property name="cols">330,*,*</Property> | 
|                 <Property name="labelSpacing">1</Property> | 
|                 <Property name="rowPadding">1</Property> | 
|                 <Property name="colPadding">1</Property> | 
|                 <Property name="padding">10</Property> | 
|                 <AutoFormElement> | 
|                   <Property name="label">Cron表达式</Property> | 
|                   <Property name="name">cron</Property> | 
|                   <Property name="hintWidth">2</Property> | 
|                   <Property name="hintSpacing">2</Property> | 
|                   <Editor/> | 
|                 </AutoFormElement> | 
|                 <Button layoutConstraint="align:left"> | 
|                   <ClientEvent name="onClick">var secondData=view.id("dataSetSecond").getData();
 | 
| var secondExpression="";
 | 
| var error=false;
 | 
| switch(secondData.get("type")){
 | 
|     case "all":
 | 
|         secondExpression="*"
 | 
|         break;
 | 
|     case "per":
 | 
|         secondExpression=secondData.get("fromPerSecond")+"/"+secondData.get("perSecond")
 | 
|         break;
 | 
|     case "region":
 | 
|         var from=secondData.get("fromSecond");
 | 
|         var to=secondData.get("toSecond");
 | 
|         if(from>=to){
 | 
|             error=true;
 | 
|             dorado.MessageBox.alert("秒采用区间定义时,开始时间应该小于结束时间!");
 | 
|             break;
 | 
|         }
 | 
|         secondExpression=from+"-"+to;
 | 
|         break;
 | 
|     case "specific":
 | 
|         secondExpression=secondData.get("specificSecond");
 | 
|         if(!secondExpression){
 | 
|             error=true;
 | 
|             dorado.MessageBox.alert("秒采用特定值时,必须要填充至少一个特定值!");
 | 
|         }
 | 
|         break;
 | 
| }
 | 
| if(error){
 | 
|     return;
 | 
| }
 | 
| var minuteExpression="";
 | 
| var minuteData=view.id("dataSetMinute").getData();
 | 
| switch(minuteData.get("type")){
 | 
|     case "all":
 | 
|         minuteExpression="*"
 | 
|         break;
 | 
|     case "per":
 | 
|         minuteExpression=minuteData.get("fromPerMinute")+"/"+minuteData.get("perMinute")
 | 
|         break;
 | 
|     case "region":
 | 
|         var from=minuteData.get("fromMinute");
 | 
|         var to=minuteData.get("toMinute");
 | 
|         if(from>=to){
 | 
|             error=true;
 | 
|             dorado.MessageBox.alert("分钟采用区间定义时,开始时间应该小于结束时间!");
 | 
|             break;
 | 
|         }
 | 
|         minuteExpression=from+"-"+to;
 | 
|         break;
 | 
|     case "specific":
 | 
|         minuteExpression=minuteData.get("specificMinute");
 | 
|         if(!minuteExpression){
 | 
|             error=true;
 | 
|             dorado.MessageBox.alert("分钟采用特定值时,必须要填充至少一个特定值!");
 | 
|         }
 | 
|         break;
 | 
| }
 | 
| if(error){
 | 
|     return;
 | 
| }
 | 
| 
 | 
| var hourExpression="";
 | 
| var hourData=view.id("dataSetHour").getData();
 | 
| switch(hourData.get("type")){
 | 
|     case "all":
 | 
|         hourExpression="*"
 | 
|         break;
 | 
|     case "per":
 | 
|         hourExpression=hourData.get("fromPerHour")+"/"+hourData.get("perHour")
 | 
|         break;
 | 
|     case "region":
 | 
|         var from=hourData.get("fromHour");
 | 
|         var to=hourData.get("toHour");
 | 
|         if(from>=to){
 | 
|             error=true;
 | 
|             dorado.MessageBox.alert("小时采用区间定义时,开始时间应该小于结束时间!");
 | 
|             break;
 | 
|         }
 | 
|         hourExpression=from+"-"+to;
 | 
|         break;
 | 
|     case "specific":
 | 
|         hourExpression=hourData.get("specificHour");
 | 
|         if(!hourExpression){
 | 
|             error=true;
 | 
|             dorado.MessageBox.alert("小时采用特定值时,必须要填充至少一个特定值!");
 | 
|         }
 | 
|         break;
 | 
| }
 | 
| if(error){
 | 
|     return;
 | 
| }
 | 
| 
 | 
| var dayExpression="";
 | 
| var dayData=view.id("dataSetDay").getData();
 | 
| switch(dayData.get("type")){
 | 
|     case "all":
 | 
|         dayExpression="*"
 | 
|         break;
 | 
|     case "per":
 | 
|         dayExpression=dayData.get("fromPerDay")+"/"+dayData.get("perDay")
 | 
|         break;
 | 
|     case "region":
 | 
|         var from=dayData.get("fromDay");
 | 
|         var to=dayData.get("toDay");
 | 
|         if(from>=to){
 | 
|             error=true;
 | 
|             dorado.MessageBox.alert("日期采用区间定义时,开始时间应该小于结束时间!");
 | 
|             break;
 | 
|         }
 | 
|         dayExpression=from+"-"+to;
 | 
|         break;
 | 
|     case "specific":
 | 
|         dayExpression=dayData.get("specificDay");
 | 
|         if(!dayExpression){
 | 
|             error=true;
 | 
|             dorado.MessageBox.alert("日期采用特定值时,必须要填充至少一个特定值!");
 | 
|         }        
 | 
|         break;
 | 
|     case "last":
 | 
|         dayExpression="L";
 | 
|         break;
 | 
| }
 | 
| if(error){
 | 
|     return;
 | 
| }
 | 
| 
 | 
| var monthExpression="";
 | 
| var monthData=view.id("dataSetMonth").getData();
 | 
| switch(monthData.get("type")){
 | 
|     case "all":
 | 
|         monthExpression="*"
 | 
|         break;
 | 
|     case "per":
 | 
|         monthExpression=monthData.get("fromPerMonth")+"/"+monthData.get("perMonth")
 | 
|         break;
 | 
|     case "region":
 | 
|         var from=monthData.get("fromMonth");
 | 
|         var to=monthData.get("toMonth");
 | 
|         if(from>=to){
 | 
|             error=true;
 | 
|             dorado.MessageBox.alert("小时采用区间定义时,开始时间应该小于结束时间!");
 | 
|             break;
 | 
|         }
 | 
|         monthExpression=from+"-"+to;
 | 
|         break;
 | 
|     case "specific":
 | 
|         monthExpression=monthData.get("specificMonth");
 | 
|         if(!monthExpression){
 | 
|             error=true;
 | 
|             dorado.MessageBox.alert("月份采用特定值时,必须要填充至少一个特定值!");
 | 
|         }            
 | 
|         break;
 | 
| }
 | 
| if(error){
 | 
|     return;
 | 
| }
 | 
| 
 | 
| var weekExpression="";
 | 
| var weekData=view.id("dataSetWeek").getData();
 | 
| switch(weekData.get("type")){
 | 
|     case "all":
 | 
|         weekExpression="*"
 | 
|         break;
 | 
|     case "per":
 | 
|         weekExpression=weekData.get("fromPerWeek")+"/"+weekData.get("perWeek")
 | 
|         break;
 | 
|     case "region":
 | 
|         var from=weekData.get("fromWeek");
 | 
|         var to=weekData.get("toWeek");
 | 
|         weekExpression=from+"-"+to;
 | 
|         break;
 | 
|     case "specific":
 | 
|         weekExpression=weekData.get("specificWeek");
 | 
|         if(!weekExpression){
 | 
|             error=true;
 | 
|             dorado.MessageBox.alert("星期采用特定值时,必须要填充至少一个特定值!");
 | 
|         }
 | 
|         break;
 | 
|     case "last":
 | 
|         weekExpression=weekData.get("last")+"L";
 | 
|         break;
 | 
| }
 | 
| if(error){
 | 
|     return;
 | 
| }
 | 
| if(dayExpression!="*" && weekExpression!="*"){
 | 
|     dorado.MessageBox.alert("日期与星期的值至少有一个需要设置成所有,当前日期与星期的值皆不为所有!");
 | 
|     return;
 | 
| }
 | 
| if(dayExpression=="*"){
 | 
|     dayExpression="?";
 | 
| }else{
 | 
|     weekExpression="?";
 | 
| }
 | 
| var expression=secondExpression+" "+minuteExpression+" "+hourExpression+" "+dayExpression+" "+monthExpression+" "+weekExpression;
 | 
| view.id("autoFormCronExp").set("entity",{cron:expression});
 | 
| </ClientEvent> | 
|                   <Property name="caption">生成Cron表达式</Property> | 
|                 </Button> | 
|                 <Button> | 
|                   <ClientEvent name="onClick">var cron=view.id("autoFormCronExp").get("entity").cron;
 | 
| if(cron){
 | 
|     var ds=view.id("dataSetCronDate");
 | 
|     ds.set("parameter",{cron:cron});
 | 
|     ds.flushAsync(function(){
 | 
|         view.id("dialogParseCron").show();
 | 
|     });
 | 
| }else{
 | 
|     dorado.MessageBox.alert("请先生成Cron表达式");
 | 
| }
 | 
| </ClientEvent> | 
|                   <Property name="caption">解析表达式</Property> | 
|                 </Button> | 
|               </AutoForm> | 
|               <Dialog id="dialogParseCron"> | 
|                 <Property name="center">true</Property> | 
|                 <Property name="modal">true</Property> | 
|                 <Property name="width">220</Property> | 
|                 <Property name="height">500</Property> | 
|                 <Buttons/> | 
|                 <Children> | 
|                   <DataGrid> | 
|                     <Property name="dataSet">dataSetCronDate</Property> | 
|                     <Property name="readOnly">true</Property> | 
|                     <DataColumn name="date"> | 
|                       <Property name="property">date</Property> | 
|                     </DataColumn> | 
|                   </DataGrid> | 
|                   <DataSet id="dataSetCronDate"> | 
|                     <Property name="dataType">[dataTypeCronDate]</Property> | 
|                     <Property name="loadMode">manual</Property> | 
|                     <Property name="dataProvider">bdf2.jobMaintain#parseCronExpression</Property> | 
|                   </DataSet> | 
|                 </Children> | 
|                 <Tools/> | 
|               </Dialog> | 
|             </Children> | 
|             <Tools/> | 
|           </Dialog> | 
|           <Dialog id="dialogJob"> | 
|             <Property name="center">true</Property> | 
|             <Property name="modal">true</Property> | 
|             <Property name="width">500</Property> | 
|             <Property name="height">270</Property> | 
|             <Property name="closeable">false</Property> | 
|             <Buttons> | 
|               <Button> | 
|                 <ClientEvent name="onClick">view.id("updateActionSaveJob").execute(function(){
 | 
|     view.id("dialogJob").hide();
 | 
| });</ClientEvent> | 
|                 <Property name="caption">确认</Property> | 
|                 <Property name="icon">url(skin>common/icons.gif) -140px -20px</Property> | 
|               </Button> | 
|               <Button> | 
|                 <ClientEvent name="onClick">view.id("dataSetJob").getData().cancel();
 | 
| view.id("dialogJob").hide();</ClientEvent> | 
|                 <Property name="caption">取消</Property> | 
|                 <Property name="icon">url(skin>common/icons.gif) -40px 0px</Property> | 
|               </Button> | 
|             </Buttons> | 
|             <Children> | 
|               <AutoForm> | 
|                 <Property name="dataSet">dataSetJob</Property> | 
|                 <Property name="cols">*</Property> | 
|                 <Property name="labelAlign">right</Property> | 
|                 <Property name="labelWidth">100</Property> | 
|                 <AutoFormElement> | 
|                   <Property name="name">name</Property> | 
|                   <Property name="property">name</Property> | 
|                   <Editor/> | 
|                 </AutoFormElement> | 
|                 <AutoFormElement> | 
|                   <Property name="name">beanId</Property> | 
|                   <Property name="property">beanId</Property> | 
|                   <Property name="trigger">triggerBean</Property> | 
|                   <Editor/> | 
|                 </AutoFormElement> | 
|                 <AutoFormElement> | 
|                   <Property name="name">cronExpression</Property> | 
|                   <Property name="property">cronExpression</Property> | 
|                   <Property name="trigger">triggerCron</Property> | 
|                   <Editor/> | 
|                 </AutoFormElement> | 
|                 <AutoFormElement layoutConstraint="colSpan:2"> | 
|                   <Property name="name">desc</Property> | 
|                   <Property name="property">desc</Property> | 
|                   <Property name="editorType">TextArea</Property> | 
|                   <Editor/> | 
|                 </AutoFormElement> | 
|               </AutoForm> | 
|               <Trigger id="triggerCron"> | 
|                 <ClientEvent name="onExecute">var dialog=view.id("dialogCron").show();
 | 
| var cronExpr=view.id("dataSetJob").getData("#.cronExpression");
 | 
| if(!cronExpr){
 | 
|     return;
 | 
| }
 | 
| var cron=cronExpr.split(" ");
 | 
| if(cron.length<5){
 | 
|     dorado.MessageBox.alert("无法解析当前Cron表达式["+cronExpr+"]");
 | 
|     return;
 | 
| }
 | 
| view.id("autoFormPerSecond").set("visible",false);
 | 
| view.id("autoFormRegionSecond").set("visible",false);
 | 
| view.id("autoFormSpecificSecond").set("visible",false);
 | 
| view.id("autoFormPerMinute").set("visible",false);
 | 
| view.id("autoFormRegionMinute").set("visible",false);
 | 
| view.id("autoFormSpecificMinute").set("visible",false);
 | 
| view.id("autoFormPerHour").set("visible",false);
 | 
| view.id("autoFormRegionHour").set("visible",false);
 | 
| view.id("autoFormSpecificHour").set("visible",false);
 | 
| view.id("autoFormPerDay").set("visible",false);
 | 
| view.id("autoFormRegionDay").set("visible",false);
 | 
| view.id("autoFormSpecificDay").set("visible",false);
 | 
| view.id("autoFormPerMonth").set("visible",false);
 | 
| view.id("autoFormRegionMonth").set("visible",false);
 | 
| view.id("autoFormSpecificMonth").set("visible",false);
 | 
| view.id("autoFormPerWeek").set("visible",false);
 | 
| view.id("autoFormRegionWeek").set("visible",false);
 | 
| view.id("autoFormSpecificWeek").set("visible",false);
 | 
| view.id("autoFormLastWeek").set("visible",false);
 | 
| var second=cron[0];
 | 
| if(second=="*"){
 | 
|     view.id("dataSetSecond").getData().set("type","all");
 | 
| }else{
 | 
|     var data=view.id("dataSetSecond").getData();
 | 
|     var region=second.split("-");
 | 
|     var per=second.split("/");
 | 
|     if(region.length>1){
 | 
|         data.set("type","region");
 | 
|         data.set("fromSecond",region[0]);
 | 
|         data.set("toSecond",region[1]);
 | 
|         view.id("autoFormRegionSecond").set("visible",true);
 | 
|     }else if(per.length>1){
 | 
|         data.set("type","per");
 | 
|         data.set("fromPerSecond",per[0]);
 | 
|         data.set("perSecond",per[1]);
 | 
|         view.id("autoFormPerSecond").set("visible",true);
 | 
|     }else{
 | 
|         data.set("type","specific");
 | 
|         data.set("specificSecond",second);
 | 
|         view.id("autoFormSpecificSecond").set("visible",true);
 | 
|     }
 | 
| }
 | 
| //-------------------------
 | 
| var minute=cron[1];
 | 
| if(minute=="*"){
 | 
|     view.id("dataSetMinute").getData().set("type","all");
 | 
| }else{
 | 
|     var data=view.id("dataSetMinute").getData();
 | 
|     var region=minute.split("-");
 | 
|     var per=minute.split("/");
 | 
|     if(region.length>1){
 | 
|         data.set("type","region");
 | 
|         data.set("fromMinute",region[0]);
 | 
|         data.set("toMinute",region[1]);
 | 
|         view.id("autoFormRegionMinute").set("visible",true);
 | 
|     }else if(per.length>1){
 | 
|         data.set("type","per");
 | 
|         data.set("fromPerMinute",per[0]);
 | 
|         data.set("perMinute",per[1]);
 | 
|         view.id("autoFormPerMinute").set("visible",true);
 | 
|     }else{
 | 
|         data.set("type","specific");
 | 
|         data.set("specificMinute",minute);
 | 
|         view.id("autoFormSpecificMinute").set("visible",true);
 | 
|     }
 | 
| }
 | 
| //-------------------------
 | 
| var hour=cron[2];
 | 
| if(hour=="*"){
 | 
|     view.id("dataSetHour").getData().set("type","all");
 | 
| }else{
 | 
|     var data=view.id("dataSetHour").getData();
 | 
|     var region=hour.split("-");
 | 
|     var per=hour.split("/");
 | 
|     if(region.length>1){
 | 
|         data.set("type","region");
 | 
|         data.set("fromHour",region[0]);
 | 
|         data.set("toHour",region[1]);
 | 
|         view.id("autoFormRegionHour").set("visible",true);
 | 
|     }else if(per.length>1){
 | 
|         data.set("type","per");
 | 
|         data.set("fromPerHour",per[0]);
 | 
|         data.set("perHour",per[1]);
 | 
|         view.id("autoFormPerHour").set("visible",true);
 | 
|     }else{
 | 
|         data.set("type","specific");
 | 
|         data.set("specificHour",hour);
 | 
|         view.id("autoFormSpecificHour").set("visible",true);
 | 
|     }
 | 
| }
 | 
| //-------------------------
 | 
| var day=cron[3];
 | 
| if(day=="*" || day=="?"){
 | 
|     view.id("dataSetDay").getData().set("type","all");
 | 
| }else if(day=="L"){
 | 
|     view.id("dataSetDay").getData().set("type","last");
 | 
| }else{
 | 
|     var data=view.id("dataSetDay").getData();
 | 
|     var region=day.split("-");
 | 
|     var per=day.split("/");
 | 
|     if(region.length>1){
 | 
|         data.set("type","region");
 | 
|         data.set("fromDay",region[0]);
 | 
|         data.set("toDay",region[1]);
 | 
|         view.id("autoFormRegionDay").set("visible",true);
 | 
|     }else if(per.length>1){
 | 
|         data.set("type","per");
 | 
|         data.set("fromPerDay",per[0]);
 | 
|         data.set("perDay",per[1]);
 | 
|         view.id("autoFormPerDay").set("visible",true);
 | 
|     }else{
 | 
|         data.set("type","specific");
 | 
|         data.set("specificDay",day);
 | 
|         view.id("autoFormSpecificDay").set("visible",true);
 | 
|     }
 | 
| }
 | 
| //-------------------------
 | 
| var month=cron[4];
 | 
| if(month=="*"){
 | 
|     view.id("dataSetMonth").getData().set("type","all");
 | 
| }else{
 | 
|     var data=view.id("dataSetMonth").getData();
 | 
|     var region=month.split("-");
 | 
|     var per=month.split("/");
 | 
|     if(region.length>1){
 | 
|         data.set("type","region");
 | 
|         data.set("fromMonth",region[0]);
 | 
|         data.set("toMonth",region[1]);
 | 
|         view.id("autoFormRegionMonth").set("visible",true);
 | 
|     }else if(per.length>1){
 | 
|         data.set("type","per");
 | 
|         data.set("fromPerMonth",per[0]);
 | 
|         data.set("perMonth",per[1]);
 | 
|         view.id("autoFormPerMonth").set("visible",true);
 | 
|     }else{
 | 
|         data.set("type","specific");
 | 
|         data.set("specificMonth",month);
 | 
|         view.id("autoFormSpecificMonth").set("visible",true);
 | 
|     }
 | 
| }
 | 
| //-------------------------
 | 
| var week=cron[5];
 | 
| if(week=="*" || week=="?"){
 | 
|     view.id("dataSetWeek").getData().set("type","all");
 | 
| }else if(week.indexOf("L")>0){
 | 
|     var data=view.id("dataSetWeek").getData();
 | 
|     data.set("type","last");
 | 
|     var d=week.substring(0,1);
 | 
|     if(d){
 | 
|         data.set("last",d);
 | 
|     }
 | 
|     view.id("autoFormLastWeek").set("visible",true);
 | 
| }else{
 | 
|     var data=view.id("dataSetWeek").getData();
 | 
|     var region=week.split("-");
 | 
|     var per=week.split("/");
 | 
|     if(region.length>1){
 | 
|         data.set("type","region");
 | 
|         data.set("fromWeek",region[0]);
 | 
|         data.set("toWeek",region[1]);
 | 
|         view.id("autoFormRegionWeek").set("visible",true);
 | 
|     }else if(per.length>1){
 | 
|         data.set("type","per");
 | 
|         data.set("fromPerWeek",per[0]);
 | 
|         data.set("perWeek",per[1]);
 | 
|         view.id("autoFormPerWeek").set("visible",true);
 | 
|     }else{
 | 
|         data.set("type","specific");
 | 
|         data.set("specificWeek",week);
 | 
|         view.id("autoFormSpecificWeek").set("visible",true);
 | 
|     }
 | 
| }
 | 
| view.id("autoFormCronExp").set("entity",{cron:cronExpr});
 | 
| </ClientEvent> | 
|               </Trigger> | 
|               <Trigger id="triggerBean"> | 
|                 <ClientEvent name="onExecute">view.id("dialogJobBeans").show();</ClientEvent> | 
|               </Trigger> | 
|             </Children> | 
|             <Tools/> | 
|           </Dialog> | 
|           <Dialog id="dialogJobBeans"> | 
|             <Property name="center">true</Property> | 
|             <Property name="modal">true</Property> | 
|             <Property name="width">500</Property> | 
|             <Property name="height">500</Property> | 
|             <Buttons> | 
|               <Button> | 
|                 <ClientEvent name="onClick">var data=view.id("dataSetJobInfo").getData("#");
 | 
| if(data){
 | 
|     var beanId=data.get("beanId");
 | 
|     view.id("dataSetJob").getData("#").set("beanId",beanId);
 | 
|     view.id("dialogJobBeans").hide();
 | 
| }else{
 | 
|     dorado.MessageBox.alert("请先选中一个Bean");
 | 
| }</ClientEvent> | 
|                 <Property name="caption">确认</Property> | 
|                 <Property name="icon">url(skin>common/icons.gif) -140px -20px</Property> | 
|               </Button> | 
|               <Button> | 
|                 <ClientEvent name="onClick">view.id("dialogJobBeans").hide();</ClientEvent> | 
|                 <Property name="caption">取消</Property> | 
|                 <Property name="icon">url(skin>common/icons.gif) -40px 0px</Property> | 
|               </Button> | 
|             </Buttons> | 
|             <Children> | 
|               <DataGrid> | 
|                 <Property name="dataSet">dataSetJobInfo</Property> | 
|                 <Property name="readOnly">true</Property> | 
|                 <DataColumn name="beanId"> | 
|                   <Property name="property">beanId</Property> | 
|                 </DataColumn> | 
|               </DataGrid> | 
|             </Children> | 
|             <Tools/> | 
|           </Dialog> | 
|           <UpdateAction id="updateActionSaveJob"> | 
|             <Property name="dataResolver">bdf2.jobMaintain#saveJobs</Property> | 
|             <Property name="successMessage">操作成功</Property> | 
|             <UpdateItem> | 
|               <Property name="dataSet">dataSetJob</Property> | 
|             </UpdateItem> | 
|           </UpdateAction> | 
|           <AjaxAction id="ajaxActionStopJob"> | 
|             <Property name="service">bdf2.jobMaintain#stopJob</Property> | 
|             <Property name="successMessage">操作成功</Property> | 
|           </AjaxAction> | 
|           <AjaxAction id="ajaxActionRunJob"> | 
|             <Property name="service">bdf2.jobMaintain#runJob</Property> | 
|             <Property name="successMessage">操作成功</Property> | 
|           </AjaxAction> | 
|         </Container> | 
|       </SideControl> | 
|     </SplitPanel> | 
|     <Dialog id="dialogException"> | 
|       <Property name="width">400</Property> | 
|       <Property name="height">200</Property> | 
|       <Property name="caption">JOB宕机处理</Property> | 
|       <Property name="closeable">false</Property> | 
|       <Buttons> | 
|         <Button> | 
|           <ClientEvent name="onClick">var time = view.get("#jobTime.value");
 | 
| if(!time){
 | 
|     $alert("请选择执行时间!");
 | 
| }
 | 
| 
 | 
| var curJob = view.get("#dataGridJob").get("currentEntity");
 | 
| 
 | 
| view.get("#ajaxTodoJob").set("parameter",{
 | 
|     beanId:curJob.get("beanId"),
 | 
|     time:time
 | 
| }).execute(function(result){
 | 
|     $alert(result);
 | 
|     view.get("#dialogException").hide();
 | 
| });</ClientEvent> | 
|           <Property name="caption">确认</Property> | 
|         </Button> | 
|         <Button> | 
|           <ClientEvent name="onClick">view.get("#dialogException").hide();</ClientEvent> | 
|           <Property name="caption">取消</Property> | 
|         </Button> | 
|       </Buttons> | 
|       <Children> | 
|         <TextEditor id="jobTime" layoutConstraint="padding:10"> | 
|           <Property name="trigger">dateDropDown1</Property> | 
|           <Property name="dataType">Date</Property> | 
|           <Property name="blankText">-- 选择宕机时间 --</Property> | 
|         </TextEditor> | 
|         <Label layoutConstraint="padding:10"> | 
|           <Property name="text">宕机时间必需是今天以前的某天</Property> | 
|           <Property name="style"> | 
|             <Property name="color">blue</Property> | 
|           </Property> | 
|         </Label> | 
|         <DateDropDown id="dateDropDown1"/> | 
|         <AjaxAction id="ajaxTodoJob"> | 
|           <Property name="service">todoJob#todo</Property> | 
|           <Property name="executingMessage">执行统计中……</Property> | 
|         </AjaxAction> | 
|       </Children> | 
|       <Tools/> | 
|     </Dialog> | 
|   </View> | 
| </ViewConfig> |