起步软件技术论坛-X3

 找回密码
 立即注册
搜索
查看: 161|回复: 8

请教:不同功能间参数传递?**

[复制链接]
发表于 2008-9-24 10:02:48 | 显示全部楼层 |阅读模式
描述:两功能调用(A,B),如何将功能A中多选的记录,插入到另一功能中。目前,我在新打开的功能B中,只能获取一条记录?即多选中最后一条记录。
if XXDAXX.TKHDAWG(dvCUSTOMER.Doc).DataGrid.SelectedCount > 0 then
  begin
    with XXDAXX.TKHDAWG(dvCUSTOMER.Doc).DataGrid.DataSource.DataSet do
    begin
      for I := 0 to XXDAXX.TKHDAWG(dvCUSTOMER.Doc).DataGrid.SelectedCount - 1 do
      begin
        Bookmark := XXDAXX.TKHDAWG(dvCUSTOMER.Doc).DataGrid.SelectedRows;
        lUSERID := 'Biz:\XXYWZHGLXT\DICT\YXZHCSZ.ParamGroup\USERID.Param';
        TGGHS.SetParamValue(self.context,lUSERID,dsbCUSTOMER.DataSet.FieldByName('USERID').AsString);
        lDEPT := 'Biz:\XXYWZHGLXT\DICT\YXZHCSZ.ParamGroup\DEPT.Param';
        TGGHS.SetParamValue(self.context,lDEPT,dsbCUSTOMER.DataSet.FieldByName('DEPT').AsString);
        //Dialogs.ShowMessage('1');
      end;
    end;
  end;

  SystemCore.TSystemCore.FuncManager.RunFunc(Context, '', 'Biz:\XXYWZHGLXT\DZYXZHSQGN.Func', '', nil, False);
回复

使用道具 举报

发表于 2008-9-24 10:49:00 | 显示全部楼层
if XXDAXX.TKHDAWG(dvCUSTOMER.Doc).DataGrid.SelectedCount > 0 then
  begin
    with XXDAXX.TKHDAWG(dvCUSTOMER.Doc).DataGrid.DataSource.DataSet do
    begin
      for I := 0 to XXDAXX.TKHDAWG(dvCUSTOMER.Doc).DataGrid.SelectedCount - 1 do
      begin
        Bookmark := XXDAXX.TKHDAWG(dvCUSTOMER.Doc).DataGrid.SelectedRows;
        lUSERID := 'Biz:\XXYWZHGLXT\DICT\YXZHCSZ.ParamGroup\USERID.Param';
        TGGHS.SetParamValue(self.context,lUSERID,dsbCUSTOMER.DataSet.FieldByName('USERID').AsString);
        lDEPT := 'Biz:\XXYWZHGLXT\DICT\YXZHCSZ.ParamGroup\DEPT.Param';
        TGGHS.SetParamValue(self.context,lDEPT,dsbCUSTOMER.DataSet.FieldByName('DEPT').AsString);
        //Dialogs.ShowMessage('1');
      end;
    end;
  end;
上面为A功能代码,A功能选的多条记录,如何传到B功能
调用B功能的方式采用下面语句
SystemCore.TSystemCore.FuncManager.RunFunc(Context, '', 'Biz:\XXYWZHGLXT\DZYXZHSQGN.Func', '', nil, False);
回复 支持 反对

使用道具 举报

发表于 2008-9-24 10:54:28 | 显示全部楼层
可以在A功能中,打开B功能的数据集,完成数据复制。
然后再打开B功能
回复 支持 反对

使用道具 举报

发表于 2008-9-24 10:56:07 | 显示全部楼层
在A中 ,把这端代码放到某个按钮上,执行的是啥结果?多条还是一条?
如果是多条,那么在 Bookmark := XXDAXX.TKHDAWG(dvCUSTOMER.Doc).DataGrid.SelectedRows;
执行 for j := 0 to FieldCount - 1 do
        begin
          if (j > 0) then s := s + ', ';
          s := s + Fields[j].AsString;
        end;

看看S的值是一条还是多条?
回复 支持 反对

使用道具 举报

 楼主| 发表于 2008-9-24 11:21:48 | 显示全部楼层

回4楼

回4楼:
  在多选情况下,S的值是多条!
回3楼:
  在A功能中如何打开B功能的数据集,并完成复制!
回复 支持 反对

使用道具 举报

发表于 2008-9-24 11:32:17 | 显示全部楼层
为什么不做成2个窗体?功能传递不方便。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2008-9-25 10:30:22 | 显示全部楼层

??

用户需求是:A功能中选中多条需操作的记录,点击界面上的按钮直接在另一个功能(B功能)上操作(发起流程)。
回复 支持 反对

使用道具 举报

发表于 2008-9-25 10:36:55 | 显示全部楼层
做一块不行吗?平台的功能独立性比较强,不适合这样操作。改改用户的需求就很容易实现了。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2008-9-25 10:46:44 | 显示全部楼层

好的,和用户沟通一下

好的,和用户沟通一下。
回复 支持 反对

使用道具 举报

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

本版积分规则

小黑屋|手机版|Justep Inc.

GMT+8, 2025-7-22 15:40 , Processed in 0.038580 second(s), 15 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

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