起步软件技术论坛-X3

 找回密码
 立即注册
搜索
查看: 144|回复: 7

【结帖】请教**

[复制链接]
发表于 2008-7-3 16:41:22 | 显示全部楼层 |阅读模式
我想在功能里的触发事件更新业务信息里的数据集。我在业务信息里的代码里定义了一个更新数据集的方法。这个方法就是通过主从数据集写另外两个数据集。请问:
1 这个方法需要的参数该如何定义?
比如说声明的时候,Procedure UpdateTzxxb(XXXX);
这个括号里该写什么样的内容
2另外是否还要在功能的窗体中在定义几个datasetbroker,通过功能把参数传进定义在信息的方法里?
回复

使用道具 举报

发表于 2008-7-3 16:51:57 | 显示全部楼层
不是很明白,楼主
1.想要传那些参数,都是什么类型,这个应该是语法问题了,
2.我觉得应该不需要了
回复 支持 反对

使用道具 举报

 楼主| 发表于 2008-7-3 16:55:10 | 显示全部楼层
就是我在业务功能里调用业务信息的这个方法,需要传哪些参数进去
回复 支持 反对

使用道具 举报

发表于 2008-7-3 17:13:02 | 显示全部楼层
可以先不定义,等你需要时再加。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2008-7-3 17:25:38 | 显示全部楼层
我把代码 贴出来把,这段代码是写在业务信息里的
Procedure TYWXX_NBLL.UpdateTzxxb(DataSet:TDataSet);
var
  length:Integer;
  wzbm:string;
  wzbms:string;
  wzbms2:string;
  gsbm:string;
  flag3:Boolean;
begin
  gsbm:=DataSetNBLLDJB.FieldByName('gsbm').AsString;
  DataSetTZ.Open;
  try
    DataSetNBLLDXB.DisableControls;
    DataSetNBLLDXB.First;
    while not DataSetNBLLDXB.Eof do
    begin
       wzbm:=DataSetNBLLDXB.FieldByName('wzbm').AsString;
       DataSetNBLLDXB.Next;
       wzbms:=''+wzbm+''+','+wzbms;
    end;
    wzbms:='('+wzbms+')';
    length:=wzbms.Length;
    wzbms2:=wzbms.Substring(0,length-2)+wzbms.Substring(length-1,1);
    DataSetWZKC.SQL.Text:='select * from zbmroler.wzkcxxb where wzbm in '+wzbms2+' and gsbm='''+gsbm+'''';
    DataSetWZKC.Open;
    while not DataSetNBLLDXB.Eof do
    begin
      wzbm:=DataSetNBLLDXB.FieldByName('wzbm').AsString;
      DataSetTZ.Append;
      DataSetTZ.FieldByName('pzbm').AsString:=DataSetNBLLDJB.FieldByName('nblldbm').AsString;
      DataSetTZ.FieldByName('wzbm').AsString:=DataSetNBLLDXB.FieldByName('wzbm').AsString;
      DataSetTZ.FieldByName('sfbz').AsString:='1';
      DataSetTZ.FieldByName('srsl').AsString:='0';
      DataSetTZ.FieldByName('fcsl').AsString:=DataSetNBLLDXB.FieldByName('slsl').AsString;
      DataSetTZ.FieldByName('gsbm').AsString:=gsbm;
      DataSetTZ.FieldByName('pzgldmbbm').AsString:='005';
      DataSetTZ.FieldByName('pzmcbm').AsString:='001';
      DataSetTZ.FieldByName('cbdj').AsFloat:=DataSetNBLLDXB.FieldByName('sjdj').AsFloat;
      DataSetTZ.FieldByName('pjbm').AsString:=DataSetNBLLDJB.FieldByName('pjbm').AsString;
      DataSetTZ.FieldByName('je').AsFloat:=DataSetNBLLDXB.FieldByName('je').AsFloat;
      flag3:=DataSetWZKC.Locate('wzbm',[wzbm],[]);
      if flag3 then
      begin
        DataSetTZ.FieldByName('jcsl').AsFloat:=DataSetWZKC.FieldByName('kcsl').AsFloat-DataSetNBLLDXB.FieldByName('slsl').AsFloat;
        DataSetTZ.FieldByName('jcje').AsFloat:=DataSetWZKC.FieldByName('zje').AsFloat-DataSetNBLLDXB.FieldByName('je').AsFloat;
        DataSetTZ.FieldByName('sjkcsl').AsFloat:=DataSetWZKC.FieldByName('sjkcsl').AsFloat-DataSetNBLLDXB.FieldByName('sjkcsl').AsFloat;
      end;
      DataSetTZ.Post;
      DataSetNBLLDXB.Next;
    end;
    finally
    DataSetNBLLDXB.EnableControls;
  end;
end;
回复 支持 反对

使用道具 举报

 楼主| 发表于 2008-7-3 17:28:12 | 显示全部楼层
其中 DataSetNBLLDJB,DataSetNBLLDXB,DataSetTZ,DataSetWZKC都是业务信息里的数据集。
我现在就是想在业务功能窗体的事件里调用这个方法来更新数据库,请问该怎么样传参数进去,还有怎样定义这个方法
回复 支持 反对

使用道具 举报

发表于 2008-7-3 17:37:37 | 显示全部楼层
调用这个方法? TYWXX_NBLL.UpdateTzxxb(DataSet:TDataSet);
在窗体中放个代理,通过代理去调用这个方法。DataSet参数传入代理引用的DataSet
回复 支持 反对

使用道具 举报

 楼主| 发表于 2008-7-3 17:59:38 | 显示全部楼层
好的 谢谢啦
回复 支持 反对

使用道具 举报

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

本版积分规则

小黑屋|手机版|Justep Inc.

GMT+8, 2025-7-18 20:05 , Processed in 0.041176 second(s), 15 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

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