公共操作列表函数
维护表单的操作
新增
普通新增
New(formKey, target)
formKey 表单的标识,需要为实体类型的表单,否则新建的表单无意义;如果表单不存在,抛出指
定的表单不存在异常。
target 打开的目标,取值为"self"(覆盖自身)、“newtab”(新tab页中打开)、“modal”(显示为模
态)。可选参数,默认值为"newtab"。如果取值为self时,将当前界面置为新增状态,并不创建新
的表单,此时formKey的取值无效。
// 新建一个表单,并在新tab页中显示
New("StockIn")
// 新建一个表单,并显示为模态窗口
New("StockIn", "modal")
// 将当前界面置为新增状态
New("StockIn", "self")
带判断的新增
ClearSelection() 清除DictView的选中行。
NewDict(“Mtl”) // 打开一个Mtl字典
GetFormKey() 取得当前表单的表单标识。
Close() 关闭表单界面。
ClearSelection(GetFormKey());
NewDict(GetFormKey());
Close();
修改(编辑)
Edit();
保存
SaveData();UpdateView();
取消
取消表单的新增和编辑状态。将表单转入默认状态。
Cancel();
启动
原型:SetValue(key, value, fireEvent)
功能:给表单中的组件设置值,在需要触发值改变事件的情况下,执行值改变事件。
参数:
• key 组件的标识
• value 新的值
• fireEvent 是否触发事件标志,可选参数,默认值为false。
SetValue('数据列标识',新值);
GetOperator() 取得当前登录用户标识。
ServerDate() 返回中间层的服务器时间。
SetValue('Enable',1);
SetValue('EnablePerson',GetOperator());
SetValue('EnableTime',ServerDate());
SaveData();UpdateView();
停用
SetValue('Enable',0);
SetValue('DisablePerson',GetOperator());
SetValue('DisableTime',ServerDate());
SaveData();UpdateView();
作废
SetValue('Enable',-1);
SaveData();UpdateView();
列表视图的操作
新增
NewDict('SC_SalesArea'); //新增一个SC_SalesArea表单
修改
var i=0;
while(i<GetRowCount('Grid1')){ //取得ListView和Grid组件的行数。
var sv=GetCellValue('Grid1',i,'select'); //取得表格中指定单元格的值。
var OID=GetCellValue('Grid1',i,'OID'); //("表单标识",行号,"单元格的标识")
if(sv==1){ //被选中
PushPara('edit',true);
OpenDict('SC_SalesArea', OID); // 通过字典的标识和数据对象OID打开一个字典。
}
i = i + 1;
}
启用
IIF(GetPara('enable')==false,false,true);
在项目中使用
在实际项目过程中,我们可能会使用数据对象作为链式字典,使用实体或普通来绑定字典,使用视图来查询字典数据,
数据对象
在yigo中只有使用缓存,必须使用字典,只有字典中可以设置使用缓存
新建数据对象,设置为实体数据对象、链式字典、来源于数据、头表和明细表、需要关联的数据设置需要缓存
普通或实体表单
实体或普通表单的数据来源于刚刚新建的数据对象
单据状态设置为来源于参数组,设置组标识。参数组在CommonDef.xml中设置——参数表>新增
设置状态默认值为启用状态
每一个实体表单都要有系统信息
函数
保存
SaveData(); UpdateView();
新增
New('表单标识', 'self');
删除
DeleteData();UpdateView();Close();
编辑
Edit();
启用
EnabledDict(GetDataObjectKey(),GetOID());LoadData();UpdateView();
停用
EnabledDict(GetDataObjectKey(),GetOID(),0);LoadData();UpdateView();
作废
EnabledDict(GetDataObjectKey(),GetOID(),-1);LoadData();UpdateView();
取消
Cancel();
列表视图
数据来源于新增数据对象
表来源类型设置为来源于查询,设置查询语句,查询数据源中的头表
列表数据源中新增字段,要和被查询的数据表的字段相同
在头表中设置查询条件,无数据表,无字段
查询条件控件需要设置——》字段查询属性
为数据展示列表设置行双击事件,用来双击打开实体明细表单
Open('TM_SalesArea', OID)
查询按钮的点击事件
DealCondition();LoadData();ShowData();
重置按钮的点击事件
ResetCondition();
函数
首先需要在查询集合中设置数据库操作语句,作为启用,停用,作废DBNamedUpdate函数的查询语句来源
//启用
UPDATE tm_salesarea_h set Enable=1,EnablePerson=?,EnableTime=? WHERE oid=?
//停用
UPDATE tm_salesarea_h set Enable=0,disableperson=?,disabletime=? WHERE oid=?
//作废
UPDATE tm_salesarea_h set Enable=-1 WHERE oid=?
新增
NewDict('TM_SalesArea');
修改
var i = 0;
while(i<GetRowCount('list')){
var sv = GetCellValue('list',i,'select');
var OID = GetCellValue('list',i,'OID');
if(sv==1){ //被选中
PushPara('edit',true);
OpenDict('TM_SalesArea', OID);//打开字典?
}
i = i + 1;
}
启用
var i=0;
while(i<GetRowCount('list')){
var sv = GetCellValue('list',i,'select'); //复选框
var eb = GetCellValue('list',i,'Enable'); //状态标识
if(sv==1&&(eb==-1||eb==0)){
EnabledDict("TM_SalesArea",GetCellValue("list",i,"OID"),1); //设置字典单据状态
DBNamedUpdate('queryKey1',GetOperator(),ServerDate(),GetCellValue('list',i,'OID')); //引用查询集合中的查询语句
SetCellValue('list',i,'Enable',1); //状态变成启用
SetCellValue('list',i,'select',0); //复选框变成不选
}
i = i + 1;
}
停用
var i=0;
while(i<GetRowCount('list')){
var sv = GetCellValue('list',i,'select');
var eb = GetCellValue('list',i,'Enable');
if(sv==1&&eb==1){
EnabledDict("TM_SalesArea",GetCellValue("list",i,"OID"),0);
DBNamedUpdate('queryKey2',GetOperator(),ServerDate(),GetCellValue('list',i,'OID'));
SetCellValue('list',i,'Enable',0);
SetCellValue('list',i,'select',0);
}
i = i + 1;
}
作废
var i=0;
while(i<GetRowCount('list')){
var sv=GetCellValue('list',i,'select');
var eb = GetCellValue('list',i,'Enable');
if(sv==1&&eb==0){
EnabledDict("TM_SalesArea",GetCellValue("list",i,"OID"),-1);
DBNamedUpdate('queryKey3',GetOperator(),ServerDate(),GetCellValue('list',i,'OID'));
SetCellValue('list',i,'Enable',-1);
SetCellValue('list',i,'select',0);
}
i = i + 1;
}
导入
ImportExcel(true,false,"");
导出
ExportExcelWithTemplate("", true);
模板下载
var path = DBNamedQueryValue('');//模板名称
if(path!=""){
DownloadAttachment(-1,"",path);//导入模板
}else{
Confirm("请上传模板后再下载");
}