起步软件技术论坛-X3

 找回密码
 立即注册
搜索
查看: 283|回复: 11

【结贴】从其他系统查询到任务列表直接单点登陆业务审批系统**

[复制链接]
发表于 2009-3-27 18:09:54 | 显示全部楼层 |阅读模式
要求单点登陆后发送完一个流程后能够直接关闭业务系统。
回复

使用道具 举报

发表于 2009-3-28 10:02:00 | 显示全部楼层
在什么系统查的,怎么发的流程? 是启动平台了?还是只启动了单独窗体?
回复 支持 反对

使用道具 举报

发表于 2009-3-30 09:29:14 | 显示全部楼层
可以设置一个全局参数或者变量来标记是单点登陆进来的还是正常登陆进来的,
在功能窗体关闭的时候或者截获流程事件根据这个标记来发消息调用标准风格主窗体的close方法。
关于消息的使用方法楼主可以在论坛中搜索一下。
关于流转事件的截获可以参考一下下面的帖子:
http://bbs.justep.com/forum.php? ... F%ED%2A%CF%FB%CF%A2
回复 支持 反对

使用道具 举报

 楼主| 发表于 2009-3-30 12:53:57 | 显示全部楼层
//流程流转后操作(发送者)
procedure TYWCLJM_FORM.FlowBrokerAfterFlowOut(Sender: TObject; Command: TFlowOutCommand);
paramclose:=variants.VarToStr(TBaseFuncLib.GetBizParamValue(context,'Biz:GZSSZYLJYWSPXTQJCSZ.PARAMGROUP','GDZCTCS'));
  DataSet_Main.DataSet.ApplyUpdates;
  if(paramclose='1')then
   begin
     RefreshMessage:=TRefreshMessage.Create('CloseMainForm');
     RefreshMessage.SendParam:='CloseMainForm';
     BizSys.GlobalContext.SendMessage(RefreshMessage);
     end;
标准风格主窗体(接受者)
procedure TSTANDARDSTYLEMAINFORM.BizFormCreate(Sender: TObject);  
  RefreshMsgHandler:=TRefreshMsgHandler.Create; //创建消息处理者
    BizSys.GlobalContext.AddMessageHandler('CloseMainForm', RefreshMsgHandler);
    RefreshMsgHandler.RefreshMsgNotify:=HandleReFreshMessage;


标准风格主窗体
procedure TSTANDARDSTYLEMAINFORM.HandleReFreshMessage(AMessage: TBizMessage; var Handled: Boolean); //消息处理机制
var
  SendParam:String;
  Sender: TObject;
  Action: TCloseAction;
begin
  SendParam:=TRefreshMessage(AMessage).SendParam;  //检查传过来的变量
  if SendParam='CloseMainForm' then //流程扭转
    BizFormClose(Sender,Action);
  //ReFreshData;
  Handled:=True;
end;


流程扭转后,弹出下列框,窗体没有关闭

1.jpg

15.97 KB, 下载次数: 129

回复 支持 反对

使用道具 举报

 楼主| 发表于 2009-3-30 13:41:22 | 显示全部楼层
又报如下错误

2.jpg

27.79 KB, 下载次数: 126

回复 支持 反对

使用道具 举报

 楼主| 发表于 2009-4-1 10:33:18 | 显示全部楼层
还是报错

3.jpg

17.47 KB, 下载次数: 134

回复 支持 反对

使用道具 举报

发表于 2009-4-1 13:57:23 | 显示全部楼层
我这里调试运行不出错,正式环境运行出错。
然后在标准风格主窗体中这段代码中sleep一会就没有问题了,楼主试试
procedure TSTANDARDSTYLEMAINFORM.BizFormDestroy(Sender: TObject);
begin
  FAutoRunFuncs.Free;
  FOrignActionList.Free;
  FPosStringList.Free;
  SysUtils.Sleep(100);
end;
回复 支持 反对

使用道具 举报

 楼主| 发表于 2009-4-1 14:25:23 | 显示全部楼层
正式环境下还是报错:

4.jpg

41.6 KB, 下载次数: 117

回复 支持 反对

使用道具 举报

 楼主| 发表于 2009-4-1 14:35:18 | 显示全部楼层
<script ID="BusinessCloseEventHandler" language="javascript" FOR="X3X" EVENT="OnTerminate">
  WebBrowser.ExecWB(45,1); // close window
浏览器javascript跟踪,上面这句报错
回复 支持 反对

使用道具 举报

发表于 2009-4-1 15:19:16 | 显示全部楼层
把系统库传给我看看吧
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Justep Inc.

GMT+8, 2025-7-23 03:03 , Processed in 0.050288 second(s), 18 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表