要完成一个部门注册功能,在流程结束事件中编写代码
引用流程字段作为数据过滤信息,来从数据库获得新建机构的ID和NAME
但赋值时失败,提示000000000内存错误,请问如何在流程中获取流程字段
==================>> 分割线<<==================
我现在的做法是:
procedure TDWGSZCSQ.ProcAfterFlowFinish(Sender: TObject; Command: TFlowFinishCommand);
var
lBizURL: TBizURL;
CntStr,CmdTxt,sRegID,sID,sNAME : string;
QryTmp:TQuery;
begin
sRegID := SysUtils.IntToStr(FlowField); //为定位用ID赋值为流程字段,但是在此处报错
QryTmp := TQuery.Create(nil); //声明一个对象
CntStr := 'DATABASEURL=Biz:\EMSIMULATION\SCFZSJK.Database'; //通过在其他窗体拖入TQUERY控件来获得URL值
CmdTxt := 'select T_COM_GD_INFO.NAME,T_COM_GD_INFO.ID from T_COM_GD_INFO,T_REGS_N_I_INFO where T_COM_GD_INFO.ID=T_REGS_N_I_INFO.GDID and T_REGS_N_I_INFO.ID='+sRegID; //根据ID获得NAME
QryTmp.ConnectionString := CntStr ;
QryTmp.CommandText := CmdTxt;
if not QryTmp.Active then //判断TQuery状态,使命令生效
QryTmp.Open
else QryTmp.Execute;
sID := QryTmp.Fields.FieldByName('ID').AsString;
sNAME := QryTmp.Fields.FieldByName('NAME').AsString; //获取NAME
lBizURL := TBizURL.Create; //创建部门
try
lBizURL.URL := 'Org:\ROOT\EMRI.ogn';
Org.OrgSys.OrgSystem.CreateDept(lBizURL, sID, sNAME);
//ShowTreeNode(sID);
finally
lBizURL.Free; //释放过程中创建的对象
end;
QryTmp.Free;
end; |