CalemEAM 添加新模块列表

1.新建数据表
数据表必须字段
  • id   ( varchar 36) 主键
  • modified_time   (datetime)  修改时间
  • modified_id   (varchar 36)
  • created_time  (datetime)  创建时间
  • created_id  (varchar 36)
2.添加表配置

打开 eam\client\launchpad\resource\Metadata.js.gz(默认gz,修改调试后为min)

添加Metadata表json
CalemMetadata[表名]=[
	"table_name":表名,
	"module":模块名/modCalemXXX ,
	"cache_type": 缓存类型(database/dropdown/memory),
	"primary_key": 表主键,
	"lookup_mapping": {
		"field": 主键名,
		"primary": 外键名,
	},
	"order_by": {
		"field": 字段名,
		"order": ("DESC"/"ASC")
	},
	"fields": {
		表字段名:{
			"type":字段类型(主键外键为guid)
			"length":长度,可省略
			"lookup":关联外键表名
		}
	}
]

打开 eam\server\metadata\table 目录 , 新建一个 数据库名(列表名).php 文件

  • order_by根据定义的字段进行排序
<?php
if (!defined('_CALEM_DIR_')) die("Access denied at ".__FILE__);

$_CALEM_table=array(
	'table_name'=>'pro_line',
	'module'=>'modCalemProLine',
	'cache_type'=>'database',
	'order_by'=>array('field'=>'modified_time', 'order'=>'DESC'),
	'primary_key'=>array('id'),
	'fields'=>array(
		'id'=>array(
			'type'=>'guid'
		),
		....此处编辑其他字段名
		'字段名'=>array(
			'type'=>'varchar',
			'length'=>76
		),
		....
		'modified_time'=>array(
			'type'=>'datetime'
		),
		'modified_id'=>array(
			'type'=>'guid',
			'lookup'=>'users'
		),
		'created_time'=>array(
			'type'=>'datetime'
		),
		'created_id'=>array(
			'type'=>'guid',
			'lookup'=>'users'
		)
	) //End of fields list
)
?>
3.打开两个文件

文件一  eam\custom\group\CALEM_OOB.view.js.min

文件二  eam\client\launchpad\resource\Calem.js.gz(默认gz,修改调试后为min)

4.创建左侧菜单

CALEM_OOB.view.js.min 中找到 CalemConf[“registry_module”] ,加入新模块

CalemConf["registry_module"]={
	   loader: 'loadModules',
	   names: [...,'modCalem模块名'] };

在Calem.js.gz中加入

  • defaultMenu 默认显示列表
//主页面模块
CalemModuleDef["modCalem模块"]= {
	CalemModuleInfo: {
      id:"modCalem模块",
      icon:"icon名称",
      defaultMenu: 'Calem模块名FormList',
      toolBar: {
        CalemToolBarInfo: {
        	  type: 'CalemToolBar',
        	  layout: ['Calem模块名FormList'],
        	  list: [
	            {CalemMenuItemInfo: {id: 'Calem模块名FormList'}},
	            ]
	          }
	    }
	}
};
5.编写模块
List / 列表页面模块

CALEM_OOB.view.js.min 中添加

  • tbLayout  头部工具栏 CalemTbNew新建… sep间隔符号
  • viewLayout  页面栏目 lb_caption标题 、toolbar工具栏 、grid 列表栏
  • gridLayout  列表栏
  • 编辑好,在线压缩后添加
CalemViewCustomDef['模块名ViewList_CALEM_OOB'] = {
	CalemViewCustomInfo: {
		id: '模块名ViewList',
		acl: {CalemViewAclInfo: {tbAcl: {},viewAcl: {}}},
		layout: {
			CalemViewLayoutInfo: {
				tbLayout: ['CalemTbNew', 'CalemTbOpen', 'CalemTbDelete', 'sep', 'CalemTbDataRefresh', 'sep2', 'CalemTbSearch', 'CalemTbSearchClear', 'sep3', 'CalemTbCustomize'],
				viewLayout: [{
					CalemTrInfo: {
						height: -2,
						cols: ['lb_caption']
					}
				}, {
					CalemTrInfo: {
						height: -2,
						cols: ['toolbar']
					}
				}, {
					CalemTrInfo: {
						height: -2,
						cols: ['grid']
					}
				}],
				gridLayout: {
					CalemListInfo: {
						noMaximize: true,
						colList: [{
							CalemCol: {
								id: 字段名,
								width: 100
							}
							...此处省略多个CalemCol(删除)
						}]
					}
				}
			}
		}
	}
};

Calem.js.gz添加 New模块

  • title关联CalemMsg.js.gz的文本转义
  • 把中文替换成对应名称
  • 先统一模块名/列表名
//定义List新Form层
CalemMenuDef['Calem模块名FormList'] = {
	id: 'Calem模块名FormList',
	title: '列表名',
	icon: '',
	disIcon: null,
	tooltip: null,
	enabled: true,
	onSelect: {CalemMenuSelect: {listener: 'OpenFormListener'}}
};

function Calem模块名FormList(parent, formId, data) {
	if (arguments.length==0) return;
	CalemFormList.call(this, parent, formId, data);
}

Calem模块名FormList.prototype = new CalemFormList;
Calem模块名FormList.prototype.constructor = Calem模块名FormList;

Calem模块名FormList.prototype.toString = function() { return "Calem模块名FormList";}

/**
 * Business APIs
 */
Calem模块名FormList.prototype._getFormNewId =
function(evt) {
    return 'Calem模块名FormNew';
}

Calem模块名FormList.prototype._getFormReadId =
function(evt) {
	return 'Calem模块名FormRead';
}

新模块List的form层

//新模块List的form层
CalemItemDef['Calem模块名FormList']={
	CalemFormInfo: {
		id: 'Calem模块名FormList',
		title: '列表名',
		icon: 'CalemSched',
		controller: 'Calem模块名FormList',
		model: '列表名',
		view: {CalemViewRefInfo: {id: 'Calem模块名ViewList'}},
		replaceType: CalemItemDef.REPLACE_BY_ID,
		searchFormId: 'Calem模块名FormSearch'
	}
}

新模块List的view层

//新模块List的view层
CalemViewDef['Calem模块名ViewList']={
	CalemViewInfo: {
		id: 'Calem模块名ViewList',
		type: 'CalemView',
		layout: {
			CalemLayoutInfo: {
			tableLayout: {CalemTableLayoutInfo: {width: '100%'}},
			colLayout: {CalemColLayoutInfo: {colCount: 1}}, //Potentially col width definition.
			rows: [
			      {CalemTrInfo: {cols: ['lb_caption']}},
					{CalemTrInfo: {height: -2,   cols: ['toolbar']}},
					{CalemTrInfo: {height: -1,   cols: ['grid']}}
				   ]
			}
		},
		itemMap : {
			CalemItemMap: {
			'lb_caption': {
				CalemLabelInfo: {id: '列表名', className: 'CalemEditCaption'}
			},
			toolbar: {
				CalemToolBarInfo: {
					layout: ['CalemTbNew', 'CalemTbOpen', 'CalemTbDelete', 'sep', 'CalemTbDataRefresh', 'sep2', 'CalemTbCustomize'],
					list: [
				   //New
					{ CalemButtonInfo: {id: 'CalemTbNew'}},

					{ CalemButtonInfo: {
						 id: 'CalemTbOpen',
						 customInfo: {
						  	   CalemMenuCustomInfo: {
						  	   	enabled: false,
						  	   	events: [
						  	   		{CalemEventInfo: {id: CalemEvent.SINGLE_SELECTION, func: '_enableIt'}},
						  	   		{CalemEventInfo: {id: CalemEvent.MULTI_SELECTION, func: '_disableIt'}},
						  	   		{CalemEventInfo: {id: CalemEvent.NO_SELECTION, func: '_disableIt'}},
						  	   		{CalemEventInfo: {id: CalemEvent.DBL_CLICK_SELECTION, func: '_clickIt'}}
						  	   	]
						  	   }
						  }
					  }
					},

					{ CalemButtonInfo: {
						id: 'CalemTbDelete',
						customInfo: {
						  	   CalemMenuCustomInfo: {
						  	   	enabled: false,
						  	   	events: [
						  	   		{CalemEventInfo: {id: CalemEvent.SINGLE_SELECTION, func: '_enableIt'}},
						  	   		{CalemEventInfo: {id: CalemEvent.MULTI_SELECTION, func: '_enableIt'}},
						  	   		{CalemEventInfo: {id: CalemEvent.NO_SELECTION, func: '_disableIt'}}
						  	   	]
						  	   }
						  }
					  }
					},
					{CalemSeparator: {id: 'sep', className: 'CalemToolBarSeparator'}},

					{CalemButtonInfo: { id: 'CalemTbDataRefresh'}},

					{CalemSeparator: {id: 'sep2', className: 'CalemToolBarSeparator'}},

					{ CalemButtonInfo: { id: 'CalemTbSearch' }},

					{ CalemButtonInfo: {
						id: 'CalemTbSearchClear',
						customInfo: {
						  	   CalemMenuCustomInfo: {
						  	   	enabled: false,
						  	   	events: [
						  	   		{CalemEventInfo: {id: CalemEvent.SEARCH_APPLIED, func: '_enableIt'}},
						  	   		{CalemEventInfo: {id: CalemEvent.SEARCH_REMOVED, func: '_disableIt'}}
						  	   	]
						  	   }
						  }
					  }
					},

					{CalemSeparator: {id: 'sep3', className: 'CalemToolBarSeparator'}},

					{CalemButtonInfo: { id: 'CalemTbCustomize'}}
				]
			} },
			grid: {CalemDataGridInfo: {listInfo: {}}}
	}
 } //ItemMap
}
};
New / 新建页面模块

CALEM_OOB.view.js.min 中添加

  • viewAcl 写入系统会自动生成的字段,默认这几个
CalemViewCustomDef['Calem模块名ViewNew_CALEM_OOB'] = {
	CalemViewCustomInfo: {
		id: 'Calem模块名ViewNew',
		acl: {
			CalemViewAclInfo: {
				tbAcl: {},
				viewAcl: {
					flb_id: 1,
					id: 1,
					flb_modified_time: 1,
					modified_time: 1,
					flb_modified_id: 1,
					modified_id: 1,
					flb_created_time: 1,
					created_time: 1,
					flb_created_id: 1,
					created_id: 1
				}
			}
		},
		layout: {
			CalemViewLayoutInfo: {
				tbLayout: ['CalemTbSave', 'CalemTbCancel', 'sep', 'CalemTbCustomize'],
				viewLayout: [{
					CalemTrInfo: {
						height: -2,
						cols: ['lb_caption', 'CalemColDesign', 'CalemColDesign', 'CalemColDesign']
					}
				}, {
					CalemTrInfo: {
						height: -2,
						cols: ['toolbar']
					}
				}, {
					CalemTrInfo: {
						height: -2,
						cols: ['err']
					}
				}, 
				...以下开始写表字段(删除)
				{
					CalemTrInfo: {
						height: -2,
						cols: ['flb_字段名', '字段名']
					}
				}
				]
			}
		}
	}
};

Calem.js.gz 中添加

/**
 * FormNew
 */
function Calem模块名FormNew(parent, formId, data) {
	if (arguments.length==0) return;
	CalemFormNew.call(this, parent, formId, data);
}

Calem模块名FormNew.prototype = new CalemFormNew;
Calem模块名FormNew.prototype.constructor = Calem模块名FormNew;

Calem模块名FormNew.prototype.toString = function() { return "Calem模块名FormNew";}

新模块New的Form层

CalemItemDef['Calem模块名FormNew']={
	CalemFormInfo: {
		id: 'Calem模块名FormNew',
		title: '列表名',
		icon: 'CalemSched',
		controller: 'Calem模块名FormNew',
		model: '列表名',
		view: {CalemViewRefInfo: {id: 'Calem模块名ViewNew'}},
		replaceType: CalemItemDef.REPLACE_BY_ID
	}
}

新模块New的View层

CalemViewDef['Calem模块名ViewNew']={
	CalemViewInfo: {
		id: 'Calem模块名ViewNew',
		type: 'CalemView',
		layout: {
		 CalemLayoutInfo: {
			tableLayout: {CalemTableLayoutInfo: {}},
			colLayout: {CalemColLayoutInfo: {colCount: 4}}, //Potentially col width definition.
			rows: [
					{CalemTrInfo: {cols: ['lb_caption']}},
					{CalemTrInfo: {cols: ['toolbar']}},
               {CalemTrInfo: {cols: ['err']}}
				   ]
			}
		},
		itemMap : {
			CalemItemMap: {
			toolbar: {
				CalemToolBarInfo: {
					type: 'CalemToolBar',
					layout: ['CalemTbSave', 'CalemTbCancel', 'sep', 'CalemTbCustomize'],
					list: [
					{ CalemButtonInfo: {
						 id: 'CalemTbSave',
						 customInfo: {
						  	   CalemMenuCustomInfo: {
						  	   	enabled: false,
						  	   	events: [
						  	   		{CalemEventInfo: {id: CalemEvent.DATA_VALID, func: '_enableIt'}},
						  	   		{CalemEventInfo: {id: CalemEvent.DATA_INVALID, func: '_disableIt'}}
						  	   	]
						  	   }
						  }
					  }
					},

					{ CalemButtonInfo: {id: 'CalemTbCancel'}},

					//Add a separator
					{CalemSeparator: {id: 'sep', className: 'CalemToolBarSeparator'}},

					{ CalemButtonInfo: {id: 'CalemTbCustomize'}}
				]
			} },
			'lb_caption': {
				CalemLabelInfo: {id: '列表名', className: 'CalemEditCaption'}
			},
			'err': {
				CalemFormErrorInfo: {id: 'form_error'}
			}
	}
 } //ItemMap
}
};
Read/详情页面模块

CALEM_OOB.js.gz 添加Read模块

CalemViewCustomDef['Calem模块名ViewRead_CALEM_OOB'] = {
	CalemViewCustomInfo: {
		id: 'Calem模块名ViewRead',
		acl: {
			CalemViewAclInfo: {
				tbAcl: {},
				viewAcl: {
					flb_id: 1,
					id: 1
				}
			}
		},
		layout: {
			CalemViewLayoutInfo: {
				tbLayout: ['CalemTbEdit', 'CalemTbDelete', 'CalemTbPrev', 'CalemTbNext', 'sep', 'CalemTbCancel', 'sep2', 'CalemTbCustomize'],
				viewLayout: [{
					CalemTrInfo: {
						height: -2,
						cols: ['lb_caption', 'CalemColDesign', 'CalemColDesign', 'CalemColDesign']
					}
				}, {
					CalemTrInfo: {
						height: -2,
						cols: ['toolbar']
					}
				}, {
					CalemTrInfo: {
						height: -2,
						cols: ['err']
					}
				}, {
					//编辑表字段
					CalemTrInfo: {
						height: -2,
						cols: ['flb_note', 'note', ]
					}
				}]
			}
		}
	}
};

Calem.js.gz 添加 Read模块

/**
 * Calem模块名FormRead
 */
function Calem模块名FormRead(parent, formId, data) {
	if (arguments.length==0) return;
	CalemFormRead.call(this, parent, formId, data);
}

Calem模块名FormRead.prototype = new CalemFormRead;
Calem模块名FormRead.prototype.constructor = Calem模块名FormRead;

Calem模块名FormRead.prototype.toString = function() { return "Calem模块名FormRead";}

/**
 * Business APIs
 */
Calem模块名FormRead.prototype._getFormNewId =
function() {
	return 'Calem模块名FormNew';
}

Calem模块名FormRead.prototype._getFormEditId =
function() {
	return 'Calem模块名FormEdit';
}

新模块Read的form层

CalemItemDef['Calem模块名FormRead']={
	CalemFormInfo: {
		id: 'Calem模块名FormRead',
		title: '列表名',
		icon: 'CalemSched',
		controller: 'Calem模块名FormRead',
		model: '列表名',
		view: {CalemViewRefInfo: {id: 'Calem模块名ViewRead'}},
		replaceType: CalemItemDef.REPLACE_BY_ID
	}
}

新模块Read的View层

CalemViewDef['Calem模块名ViewRead']={
	CalemViewInfo: {
		id: 'Calem模块名ViewRead',
		type: 'CalemView',
		layout: {
		 CalemLayoutInfo: {
			tableLayout: {CalemTableLayoutInfo: {}},
			colLayout: {CalemColLayoutInfo: {colCount: 4}}, //Potentially col width definition.
			rows: [
					{CalemTrInfo: {cols: ['lb_caption']}},
					{CalemTrInfo: {cols: ['toolbar']}},
               {CalemTrInfo: {cols: ['err']}}
				   ]
			}
		},
		itemMap : {
			CalemItemMap: {
			toolbar: {
				CalemToolBarInfo: {
					type: 'CalemToolBar',
					layout: ['CalemTbNew', 'CalemTbEdit', 'CalemTbDelete', 'CalemTbPrev', 'CalemTbNext', 'sep', 'CalemTbCancel', 'sep2', 'CalemTbCustomize'],
					list: [

					{ CalemButtonInfo: { id: 'CalemTbNew' } },
					{CalemButtonInfo: { id: 'CalemTbDataRefresh'}},

					{ CalemButtonInfo: {
						  id: 'CalemTbEdit',
						  customInfo: {
						  	  CalemMenuCustomInfo: {
						  	  	 events: [
						  	   		{CalemEventInfo: {id: CalemEvent.RECORD_POS_VALID, func: '_enableIt'}},
						  	   		{CalemEventInfo: {id: CalemEvent.RECORD_POS_INVALID, func: '_disableIt'}}
						  	   	]
						  	  }
						  }
					  }
					},
					{ CalemButtonInfo: {
						  id: 'CalemTbDelete',
						  customInfo: {
						  	  CalemMenuCustomInfo: {
						  	  	 enabled: false,
						  	  	 events: [
						  	   		{CalemEventInfo: {id: CalemEvent.RECORD_POS_VALID, func: '_enableIt'}},
						  	   		{CalemEventInfo: {id: CalemEvent.RECORD_POS_INVALID, func: '_disableIt'}}
						  	   	]
						  	  }
						  }
					  }
					},

					{CalemSeparator: {id: 'sep', className: 'CalemToolBarSeparator'}},

					{ CalemButtonInfo: {
						  id: 'CalemTbPrev',
						  customInfo: {
						  	  CalemMenuCustomInfo: {
						  	  	 events: [
						  	   		{CalemEventInfo: {id: CalemEvent.RECORD_POS_LAST, func: '_enableIt'}},
						  	   		{CalemEventInfo: {id: CalemEvent.RECORD_POS_MID, func: '_enableIt'}},
						  	   		{CalemEventInfo: {id: CalemEvent.RECORD_POS_FIRST_LAST, func: '_disableIt'}},
						  	   		{CalemEventInfo: {id: CalemEvent.RECORD_POS_FIRST, func: '_disableIt'}},
						  	   		{CalemEventInfo: {id: CalemEvent.RECORD_POS_INVALID, func: '_disableIt'}}
						  	   	]
						  	  }
						  }
					  }
					},
					{ CalemButtonInfo: {
						  id: 'CalemTbNext',
						  customInfo: {
						  	  CalemMenuCustomInfo: {
						  	  	 events: [
						  	  	 		{CalemEventInfo: {id: CalemEvent.RECORD_POS_FIRST, func: '_enableIt'}},
						  	  	 		{CalemEventInfo: {id: CalemEvent.RECORD_POS_MID, func: '_enableIt'}},
						  	   		{CalemEventInfo: {id: CalemEvent.RECORD_POS_LAST, func: '_disableIt'}},
						  	   		{CalemEventInfo: {id: CalemEvent.RECORD_POS_FIRST_LAST, func: '_disableIt'}},
						  	   		{CalemEventInfo: {id: CalemEvent.RECORD_POS_INVALID, func: '_disableIt'}}
						  	   	]
						  	  }
						  }
					  }
					},

					{CalemSeparator: {id: 'sep2', className: 'CalemToolBarSeparator'}},

					{ CalemButtonInfo: {
						  id: 'CalemTbCancel'
					  }
					},

					{ CalemButtonInfo: {id: 'CalemTbCustomize'}}
				]
			} },
			'lb_caption': {
				CalemLabelInfo: {id: '列表名', className: 'CalemEditCaption'}
			},
			'err': {
				CalemFormErrorInfo: {id: 'form_error'}
			}
	}
 } //ItemMap
}
};
Edit / 编辑页面模块

CALEM_OOB 中添加 Edit模块

CalemViewCustomDef['Cale模块名ViewEdit_CALEM_OOB'] = {
	CalemViewCustomInfo: {
		id: 'Calem模块名ViewEdit',
		acl: {
			CalemViewAclInfo: {
				tbAcl: {},
				viewAcl: {
					flb_id: 1,
					id: 1,
					flb_modified_time: 1,
					modified_time: 1,
					flb_modified_id: 1,
					modified_id: 1,
					flb_created_time: 1,
					created_time: 1,
					flb_created_id: 1,
					created_id: 1
				}
			}
		},
		layout: {
			CalemViewLayoutInfo: {
				tbLayout: ['CalemTbSave', 'CalemTbCancel', 'sep', 'CalemTbCustomize'],
				viewLayout: [{
					CalemTrInfo: {
						height: -2,
						cols: ['lb_caption', 'CalemColDesign', 'CalemColDesign', 'CalemColDesign']
					}
				}, {
					CalemTrInfo: {
						height: -2,
						cols: ['toolbar']
					}
				}, {
					CalemTrInfo: {
						height: -2,
						cols: ['err']
					}
				}, {
					CalemTrInfo: {
						height: -2,
						cols: ['flb_note', 'note']
					}
				}]
			}
		}
	}
};

Calem中添加Edit模块

/**
 * Calem模块名FormEdit
 */
function Calem模块名FormEdit(parent, formId, data) {
	if (arguments.length==0) return;
	CalemFormEdit.call(this, parent, formId, data);
}

Calem模块名FormEdit.prototype = new CalemFormEdit;
Calem模块名FormEdit.prototype.constructor = Calem模块名FormEdit;

Calem模块名FormEdit.prototype.toString = function() { return "Calem模块名FormEdit";}

Edit的Form层


CalemItemDef['Calem模块名FormEdit']={
	CalemFormInfo: {
		id: 'Calem模块名FormEdit',
		title: 'sched_user',
		icon: 'CalemSched',
		controller: 'Calem模块名FormEdit',
		model: 'sched_user',
   		view: {CalemViewRefInfo: {id: 'Calem模块名ViewEdit'}},
		replaceType: CalemItemDef.REPLACE_BY_ID
	}
}

Edit的view层

CalemViewDef['Calem模块名ViewEdit']={
	CalemViewInfo: {
		id: 'Calem模块名ViewEdit',
		type: 'CalemView',
		layout: {
		 CalemLayoutInfo: {
			tableLayout: {CalemTableLayoutInfo: {}},
			colLayout: {CalemColLayoutInfo: {colCount: 4}}, //Potentially col width definition.
			rows: [
					{CalemTrInfo: {cols: ['lb_caption']}},
					{CalemTrInfo: {cols: ['toolbar']}},
               {CalemTrInfo: {cols: ['err']}}
				   ]
			}
		},
		itemMap : {
			CalemItemMap: {
			toolbar: {
				CalemToolBarInfo: {
					type: 'CalemToolBar',
					layout: ['CalemTbSave', 'CalemTbCancel', 'sep', 'CalemTbCustomize'],
					list: [
					  { CalemButtonInfo: {
							 id: 'CalemTbSave',
							 customInfo: {
							  	   CalemMenuCustomInfo: {
							  	   	enabled: false,
							  	   	events: [
							  	   		{CalemEventInfo: {id: CalemEvent.EDIT_CHANGED, func: '_enableIt'}},
							  	   		{CalemEventInfo: {id: CalemEvent.EDIT_NO_CHANGE, func: '_disableIt'}}
							  	   	]
							  	   }
							  }
						  }
						},

					{ CalemButtonInfo: { id: 'CalemTbCancel'}},

					{CalemSeparator: {id: 'sep', className: 'CalemToolBarSeparator'}},

					{ CalemButtonInfo: { id: 'CalemTbCustomize'}}
				]
			} },
			'lb_caption': {
				CalemLabelInfo: {id: '列表名', className: 'CalemEditCaption'}
			},
			'err': {
				CalemFormErrorInfo: {id: 'form_error'}
			}
	}
 } //ItemMap
}
};
Search / 搜索页面模块

CALEM_OOB.view.js 添加 Search模块

CalemViewCustomDef['Calem模块名ViewSearch_CALEM_OOB'] = {
	CalemViewCustomInfo: {
		id: 'Calem模块名ViewSearch',
		acl: {
			CalemViewAclInfo: {
				tbAcl: {},
				viewAcl: {
					flb_id: 1,
					id: 1
				}
			}
		},
		layout: {
			CalemViewLayoutInfo: {
				tbLayout: ['CalemTbApplySave', 'sep2', 'CalemTbApply', 'CalemTbSave', 'CalemTbCancel', 'sep', 'CalemTbCustomize'],
				viewLayout: [{
					CalemTrInfo: {
						height: -2,
						cols: ['lb_caption', 'CalemColDesign', 'CalemColDesign', 'CalemColDesign']
					}
				}, {
					CalemTrInfo: {
						height: -2,
						cols: ['toolbar']
					}
				}, {
					CalemTrInfo: {
						height: -2,
						cols: ['err']
					}
				}, {
					CalemTrInfo: {
						height: -2,
						cols: ['lb_save_search', '_save_search']
					}
				}, {
					CalemTrInfo: {
						height: -2,
						cols: ['flb_note', 'note']
					}
				}]
			}
		}
	}
};

Calem中添加 Search模块 - 直接Form层

CalemItemDef['Calem模块名FormSearch']={
	CalemFormInfo: {
		id: 'Calem模块名FormSearch',
		title: 'sched_user',
		icon: 'CalemSched',
		controller: 'CalemFormSearchEdit',
		model: 'sched_user',
		view: {CalemViewRefInfo: {id: 'Calem模块名ViewSearch'}},
		replaceType: CalemItemDef.REPLACE_BY_ID
	}
}

Search的View层

CalemViewDef['Calem模块名ViewSearch']={
	CalemViewInfo: {
		id: 'Calem模块名ViewSearch',
		type: 'CalemView',
		layout: {
		 CalemLayoutInfo: {
			tableLayout: {CalemTableLayoutInfo: {}},
			colLayout: {CalemColLayoutInfo: {colCount: 4}}, //Potentially col width definition.
			rows: [
					{CalemTrInfo: {cols: ['lb_caption']}},
					{CalemTrInfo: {cols: ['toolbar']}},
               {CalemTrInfo: {cols: ['err']}},
               {CalemTrInfo: {cols: ['lb_save_search', '_save_search']}},
				   ]
			}
		},
		itemMap : {
			CalemItemMap: {
			toolbar: {
				CalemToolBarInfo: {
					type: 'CalemToolBar',
					layout: ['CalemTbApplySave', 'sep2', 'CalemTbApply', 'CalemTbSave',  'CalemTbCancel', 'sep', 'CalemTbCustomize'],
					list: [
					   { CalemButtonInfo: {
							 id: 'CalemTbApplySave',
							 customInfo: {
							  	   CalemMenuCustomInfo: {
							  	   	enabled: false,
							  	   	events: [
							  	   		{CalemEventInfo: {id: CalemEvent.SEARCH_VALID_ALL, func: '_enableIt'}},
							  	   		{CalemEventInfo: {id: CalemEvent.SEARCH_NOT_VALID, func: '_disableIt'}},
							  	   		{CalemEventInfo: {id: CalemEvent.SEARCH_NAME_NOT_VALID, func: '_disableIt'}}
							  	   	]
							  	   }
							  }
						  }
						},

						{ CalemButtonInfo: {
							id: 'CalemTbApply',
							customInfo: {
							  	   CalemMenuCustomInfo: {
							         enabled: false,
							         events: [
							  	   		{CalemEventInfo: {id: CalemEvent.SEARCH_VALID, func: '_enableIt'}},
							  	   		{CalemEventInfo: {id: CalemEvent.SEARCH_NOT_VALID, func: '_disableIt'}}
							  	   	]
							  	   }
							  }
						  }
						},

						{ CalemButtonInfo: {
							 id: 'CalemTbSave',
							 customInfo: {
							  	   CalemMenuCustomInfo: {
							  	   	enabled: false,
							  	   	events: [
							  	   		{CalemEventInfo: {id: CalemEvent.SEARCH_VALID_ALL, func: '_enableIt'}},
							  	   		{CalemEventInfo: {id: CalemEvent.SEARCH_NOT_VALID, func: '_disableIt'}},
							  	   		{CalemEventInfo: {id: CalemEvent.SEARCH_NAME_NOT_VALID, func: '_disableIt'}}
							  	   	]
							  	   }
							  }
						  }
						},



					{CalemSeparator: {id: 'sep', className: 'CalemToolBarSeparator'}},

					{ CalemButtonInfo: { id: 'CalemTbCancel'}},

					{CalemSeparator: {id: 'sep2', className: 'CalemToolBarSeparator'}},

					{ CalemButtonInfo: { id: 'CalemTbCustomize'}}
				]
			} },
			'lb_caption': {
				CalemLabelInfo: {id: '列表名', className: 'CalemEditCaption'}
			},
			'err': {
				CalemFormErrorInfo: {id: 'form_error'}
			},

			'lb_save_search': {
				CalemLabelInfo: {id: 'save_search', className: 'CalemEditSection'}
			},
			'_save_search': {
				CalemSearchSaveInfo: {size: 30}
			}
	}
 } //ItemMap
}
};
lookup / 其他列表关联选择页面

CALEM_OOB中添加 lookup模块

CalemViewCustomDef['Calem模块名ViewLookup_CALEM_OOB'] = {
	CalemViewCustomInfo: {
		id: 'Calem模块名ViewLookup',
		acl: {
			CalemViewAclInfo: {
				tbAcl: {
					CalemTbNew: 1,
					CalemTbOpen: 1,
					CalemTbPrint: 1
				},
				viewAcl: {}
			}
		},
		layout: {
			CalemViewLayoutInfo: {
				tbLayout: ['CalemTbSelect', 'CalemTbCancel', 'CalemTbDataRefresh', 'sep', 'CalemTbSearch', 'CalemTbSearchClear', 'sep3', 'CalemTbCustomize'],
				viewLayout: [{
					CalemTrInfo: {
						height: -2,
						cols: ['lb_caption']
					}
				}, {
					CalemTrInfo: {
						height: -2,
						cols: ['toolbar']
					}
				}, {
					CalemTrInfo: {
						height: -2,
						cols: ['grid']
					}
				}],
				gridLayout: {
					CalemListInfo: {
						noMaximize: true,
						colList: [{
							CalemCol: {
								id: 'note',
								width: 453
							}
						}]
					}
				}
			}
		}
	}
};

Calem中添加LookUp模块

//定义被关联名
CalemFormDef['列表名'] = {
	lookup: 'Calem模块名FormLookup'
}
/**
 * Calem模块名FormLookup
 */
function Calem模块名FormLookup(parent, formId, data) {
	if (arguments.length==0) return;
	CalemFormLookup.call(this, parent, formId, data);
}

Calem模块名FormLookup.prototype = new CalemFormLookup;
Calem模块名FormLookup.prototype.constructor = Calem模块名FormLookup;

Calem模块名FormLookup.prototype.toString = function() { return "Calem模块名FormLookup";}

/**
 * Business APIs
 */
Calem模块名FormLookup.prototype._getFormNewId =
function() {
   return 'Calem模块名FormNew';
}

/**
 * Open a master detailed view with recordlist and current record position.
 */
Calem模块名FormLookup.prototype._getFormReadId =
function(evt) {
	return 'Calem模块名FormRead';
}

Lookup的Form层

CalemItemDef['Calem模块名FormLookup']={
	CalemFormInfo: {
		id: 'Calem模块名FormLookup',
		title: '列表名',
		icon: 'CalemSched',
		controller: 'Calem模块名FormLookup',
		model: '列表名',
		view: {CalemViewRefInfo: {id: 'Calem模块名ViewLookup'}},
		replaceType: CalemItemDef.REPLACE_BY_ID,
		searchFormId: 'Calem模块名FormSearch'
	}
}

Lookup的view层

CalemViewDef['Calem模块名ViewLookup']={
	CalemViewInfo: {
		id: 'Calem模块名ViewLookup',
		type: 'CalemView',
		layout: {
			CalemLayoutInfo: {
			tableLayout: {CalemTableLayoutInfo: {width: '100%'}},
			colLayout: {CalemColLayoutInfo: {colCount: 1}}, //Potentially col width definition.
			rows: [
			      {CalemTrInfo: {cols: ['lb_caption']}},
					{CalemTrInfo: {height: -2,   cols: ['toolbar']}},
					{CalemTrInfo: {height: -1,   cols: ['grid']}}
				   ]
			}
		},
		itemMap : {
			CalemItemMap: {
			'lb_caption': {
				CalemLabelInfo: {id: '列表名', className: 'CalemEditCaption'}
			},
			toolbar: {
				CalemToolBarInfo: {
					layout: ['CalemTbSelect', 'CalemTbCancel', 'sep', 'CalemTbSearch', 'CalemTbSearchClear', 'sep3', 'CalemTbCustomize'],
					list: [
				   //New
					{ CalemButtonInfo: {id: 'CalemTbNew'}},

					{ CalemButtonInfo: {
						 id: 'CalemTbOpen',
						 customInfo: {
						  	   CalemMenuCustomInfo: {
						  	   	enabled: false,
						  	   	events: [
						  	   		{CalemEventInfo: {id: CalemEvent.SINGLE_SELECTION, func: '_enableIt'}},
						  	   		{CalemEventInfo: {id: CalemEvent.MULTI_SELECTION, func: '_disableIt'}},
						  	   		{CalemEventInfo: {id: CalemEvent.NO_SELECTION, func: '_disableIt'}},
						  	   		{CalemEventInfo: {id: CalemEvent.DBL_CLICK_SELECTION, func: '_clickIt'}}
						  	   	]
						  	   }
						  }
					  }
					},

					{CalemSeparator: {id: 'sep', className: 'CalemToolBarSeparator'}},

					{CalemButtonInfo: { id: 'CalemTbDataRefresh'}},

					{CalemSeparator: {id: 'sep2', className: 'CalemToolBarSeparator'}},

					{ CalemButtonInfo: { id: 'CalemTbSearch' }},

					{ CalemButtonInfo: {
						id: 'CalemTbSearchClear',
						customInfo: {
						  	   CalemMenuCustomInfo: {
						  	   	enabled: false,
						  	   	events: [
						  	   		{CalemEventInfo: {id: CalemEvent.SEARCH_APPLIED, func: '_enableIt'}},
						  	   		{CalemEventInfo: {id: CalemEvent.SEARCH_REMOVED, func: '_disableIt'}}
						  	   	]
						  	   }
						  }
					  }
					},

					{CalemSeparator: {id: 'sep3', className: 'CalemToolBarSeparator'}},

					{CalemButtonInfo: { id: 'CalemTbCustomize'}},

					{ CalemButtonInfo: {
						 id: 'CalemTbSelect',
						 customInfo: {
						  	   CalemMenuCustomInfo: {
						  	   	enabled: false,
						  	   	events: [
						  	   		{CalemEventInfo: {id: CalemEvent.SINGLE_SELECTION, func: '_enableIt'}},
						  	   		{CalemEventInfo: {id: CalemEvent.MULTI_SELECTION, func: '_disableIt'}},
						  	   		{CalemEventInfo: {id: CalemEvent.NO_SELECTION, func: '_disableIt'}},
						  	   		{CalemEventInfo: {id: CalemEvent.DBL_CLICK_SELECTION, func: '_clickIt'}}
						  	   	]
						  	   }
						  }
					  }
					},

					{ CalemButtonInfo: { id: 'CalemTbCancel'}}
				]
			} },
			grid: {
			  CalemDataGridInfo: {
				listInfo: {
			  	   CalemListInfo: {
			  			noMaximize: true,
			  			colList: [
			  			   {CalemCol: {id: 'user_id', width: 130}}
			  			]
			  		}
		      }
			}
		}
	}
 } //ItemMap
}
};
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值