起步软件技术论坛-X3

 找回密码
 立即注册
搜索
12
返回列表 发新帖
楼主: hero419

【结】插请教插入复制和新增复制的区别和扩展。**

[复制链接]
发表于 2008-8-4 10:46:26 | 显示全部楼层
还有,例子中是先插入从表,再插入主表,我是先插入主表,再插入从表,应该没问题吧。
可以,我不是定义的主从,是自己写的服务端的过滤,
回复 支持 反对

使用道具 举报

 楼主| 发表于 2008-8-4 10:52:30 | 显示全部楼层
我用的是系统的,但不晓得在哪里~~
业务模型\业务系统\公共\公共参数组\流水号参数组\编号
这个函数怎么写成类似于Business.System.JSCommon.CreateGUIDStr的样子呢?
回复 支持 反对

使用道具 举报

发表于 2008-8-4 10:57:40 | 显示全部楼层
这个是系统自带的,你写不了这个单元。
除非自己做第三方组件导入进来
回复 支持 反对

使用道具 举报

发表于 2008-8-4 10:58:36 | 显示全部楼层
楼主直接调用编号参数使用的函数就可以了。
看看这个参数OnGetValue事件的代码。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2008-8-4 16:45:41 | 显示全部楼层
OK,现在已经差不多了。

procedure TMainForm.Button1Click(Sender: TObject);
var
  lStr,lID,lLB: String;
  Query1: TQuery;
begin
  lStr := '0000005463';
  lLB := '#1锅炉主要阀门内漏情况统计表';
  lID := CommonUtils.TCommonUtils.GetAutoIncreaseID(Self.Context, 'Code', '');
  lID := CommonUtils.TCommonUtils.StrToRightLenStr(Variants.VarToStr(lID), '0', 10);
  DataSetBroker1.DataSet.Append;
  DataSetBroker1.DataSet.FieldByName('ID').AsString :=  lID;
  DataSetBroker1.DataSet.FieldByName('LB').AsString :=  lLB;
  Query1:= TQuery.Create(self);
  Query1.ConnectionString := 'DATABASEURL=Biz:\MASTERMIND\mastermind.Database';
  Query1.Close;
  Query1.CommandText := 'Select * from YXTJXM Where TJID='''+lStr+'''';
  Query1.open;
  while not Query1.eof do
  begin
    DataSetBroker2.DataSet.Append;
    DataSetBroker2.DataSet.FieldByName('MC').AsString := Query1.FieldByName('MC').AsString;
    DataSetBroker2.DataSet.FieldByName('KKS').AsString := Query1.FieldByName('KKS').AsString;
    DataSetBroker2.DataSet.FieldByName('TJID').AsString :=  lID;
    DataSetBroker2.DataSet.post;
    Query1.Next;
  end;
  PageControl1.ActivePage := TabSheet2;
  DataSetBroker1.DataSet.ApplyUpdates;
  DataSetBroker2.DataSet.ApplyUpdates;
end;

目前一共有好几种台帐,我们考虑用不同的功能做,使用同一组主从数据集,只是在功能里通过主数据集的“类别”字段来过滤。
  lStr := '0000005463';
    lLB := '#1锅炉主要阀门内漏情况统计表';
lStr是模板台帐记录的主表ID
lLB是台帐的类别
我希望上面的代码写在基类功能的button中,然后在各个子功能中指定各自的  lStr 、lLB,这个应该怎么实现啊。
只是知道能实现,但没搞过,请具体点,谢谢了。
回复 支持 反对

使用道具 举报

发表于 2008-8-4 16:49:08 | 显示全部楼层
不推荐继承写。时间长了,代码可读性很差,而且修改起来很麻烦,不如多拷贝几遍。
回复 支持 反对

使用道具 举报

发表于 2008-8-4 16:56:43 | 显示全部楼层
如果写,就是公布  【lStr 、lLB】2个属性,在各个子功能的窗体创建的时候赋值。

downloads.rar

9.44 KB, 下载次数: 26

回复 支持 反对

使用道具 举报

 楼主| 发表于 2008-8-5 15:40:48 | 显示全部楼层
谢谢,看明白了。
将lStr 、lLB的声明写在public里,
然后在子窗体的oncreate事件里给lStr 、lLB赋值。

一切都已搞定,谢谢李工、贾工和曹姐,结贴吧~~
回复 支持 反对

使用道具 举报

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

本版积分规则

小黑屋|手机版|Justep Inc.

GMT+8, 2025-7-20 08:18 , Processed in 0.043654 second(s), 16 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

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