AX: grid中添加checkbox, edit 方法

主要借用临时表 TmpFrmVirtual

public class FormRun extends ObjectRun
{
TmpFrmVirtual tmpFrmVirtual;
}

// grid 上添加一个checkbox 控件,DataMethod设为IsSelected方法
edit NoYes IsSelected(boolean set, ABCPickListBatch _pickTable, NoYes value)
{
NoYes ret;
;

select tmpFrmVirtual
where tmpFrmVirtual.TableNum == _pickTable.TableId &&
tmpFrmVirtual.RecordNo == _pickTable.RecId;

if (tmpFrmVirtual.RecId)
ret = NoYes::Yes;
if (set)
{
if (value)
{
tmpFrmVirtual.TableNum = _pickTable.TableId;
tmpFrmVirtual.RecordNo = _pickTable.RecId;

tmpFrmVirtual.write();

ret = NoYes::Yes;
}
else
{
tmpFrmVirtual.delete();
ret = NoYes::No;
}
}

return ret;
}

// 获取是否选择一条或多条记录
boolean IsBatchSelected()
{
;

select firstonly tmpFrmVirtual;
if (!tmpFrmVirtual.RecId)
{
info("@ABC2012");
return false;
}
return true;
}

//-----------------------------------------------------------

// 更新选择行
void UpdateSelectedRecord()
{
ABCPickListBatch pickList;
;

super();

if(!element.IsBatchSelected())
return;

ttsbegin;
while select tmpFrmVirtual
{

select forupdate pickList
where tmpFrmVirtual.RecordNo == pickList.RecId &&
tmpFrmVirtual.TableNum == pickList.TableId;
pickList.UserId = formRun.curEmplId();
pickList.update();

}

ttscommit;
ABCPickListBatch_ds.executeQuery();
delete_from tmpFrmVirtual; // 删除临时表记录,表示deselected
}



// 单击按钮,弹出Form选择EmployeeId, 将所选择行的UserId 更新为所选择的EmployeeId
void clicked()
{
Args args;
Object formRun;
ABCPickListBatch pickList;
;

super();

if(!element.IsBatchSelected())
return;

args = new Args();
args.name(formstr(ABCEmpSelect));

formRun = classfactory.formRunClass(args);
formRun.init();
formRun.run();
formRun.wait();

if (formRun.closedOK())
{
ttsbegin;
while select tmpFrmVirtual
{

select forupdate pickList
where tmpFrmVirtual.RecordNo == pickList.RecId &&
tmpFrmVirtual.TableNum == pickList.TableId;
pickList.UserId = formRun.curEmplId();
pickList.update();

}

ttscommit;
ABCPickListBatch_ds.executeQuery();
delete_from tmpFrmVirtual;
}
}


posted @ 2010-11-27 14:18  AOT  阅读(504)  评论(0编辑  收藏  举报