起步软件技术论坛-X3

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

【结贴】关于自动填充参数的问题**

[复制链接]
发表于 2008-3-28 08:37:42 | 显示全部楼层 |阅读模式
做了一个序列号参数 在字段自动时引用此参数 每次只要一打开功能就自动填充一个参数 不做任何操作也填充 产生很多废号 我想让这个参数在点击保存按钮后再填充 可以实现吗 怎么实现?
参数代码 如下
procedure TAIMMANAGEPARAMGROUP.ParamWorkPressTaskIDGetValue(Sender: TObject; var Value: Variant);
begin
Value := ProjectUtils.TProjectUtils.GetAutoIncreaseID(Self.Context,
    TBizParam(Sender).ID, TBizParam(Sender).DisplayName);
  Value := COMMONUTILS.TCOMMONUTILS.StrToRightLenStr(Variants.VarToStr(Value), '0', 6);
回复

使用道具 举报

发表于 2008-3-28 08:42:21 | 显示全部楼层
产生废号?如果不保存他不会存到数据库上,怎么会产生废号呢?
回复 支持 反对

使用道具 举报

 楼主| 发表于 2008-3-28 09:07:02 | 显示全部楼层
每次一打开功能窗口 不做任何操作 就会生产一个序列号  是不保存 但是下次打开的时候 接着这个序列号累加生产一个新的序列号  和保存不保存没有关系
回复 支持 反对

使用道具 举报

发表于 2008-3-28 09:39:13 | 显示全部楼层
楼主用参数的方式填充是会产生断号的。

另外,你说一打开功能就会产生新号,估计是在窗体打开时执行了数据集的append或Insert之类的方法,或者使用了信息策略触发自动填充,楼主把这个取消也可以在一定程度上避免这个问题
回复 支持 反对

使用道具 举报

 楼主| 发表于 2008-3-28 09:45:56 | 显示全部楼层
主数据集是自动打开的 在窗体的ONshow 和ongreate 里都写有代码 自动填充设置是在依赖字段改变时填充 只当字段为空时填充 填充只读字段
回复 支持 反对

使用道具 举报

发表于 2008-3-28 10:03:39 | 显示全部楼层
需要把
OnShow和OnCreate里DataSet.append, dataset.insert这样的代码注释掉
回复 支持 反对

使用道具 举报

 楼主| 发表于 2008-3-28 10:10:57 | 显示全部楼层
注释掉功能还能实现吗
var
  lDataSet : TSqlDataSet;
begin
  if not Flowbroker.FlowControl.FlowStartuped then
  begin
    dsbMaster.DataSet.Append;
    lDataSet := dsbBill.DataSet as TSqlDataSet;
    FlowCommonUtils.TFlowUtils.LoadFlowTempletData('TRYAPPLYFLOW',lDataSet);
  end;
  (InfoBroker.Info as TRYAPPLYINFO.TTRYAPPLYINFO).ModifyFlowData('bsWrite','8');
end;

procedure TMainForm.BizFormCreate(Sender: TObject);
begin
   jsDialogs.ShowMsg('请填写试验措施、步骤内容!','提示');
  (InfoBroker.Info as TRYAPPLYINFO.TTRYAPPLYINFO).IsStart := True;
end;
这是代码
怎么改呢
回复 支持 反对

使用道具 举报

发表于 2008-3-28 14:03:18 | 显示全部楼层
不确定,你的代码还调用了其他的方法。

楼主最好把这段处理逻辑弄清楚后再修改
回复 支持 反对

使用道具 举报

发表于 2008-3-28 14:26:30 | 显示全部楼层
保存时,取自增号(往数据集添加数据-- append,  insert),
回复 支持 反对

使用道具 举报

发表于 2008-3-28 14:30:46 | 显示全部楼层
我们先说说你看到的现象为啥,你这样的设置看到的现象是正常的,原因
1、你在show上执行了dsbMaster.DataSet.Append;,而你在1说“每次只要一打开功能就自动填充一个参数 不做任何操作也填充”,这就不对,你明明append记录,怎么叫没有进行任何操作呢?
2、dsbMaster 这个数据集的某个字段设置自动填充,且填充的时机,选中了“新增记录”等,结合一起,数据集只要新增记录,那么就会填充

要解决问题,需要根据你的业务需求来做修改了。
看7楼的代码,你是要实现如果打开功能,没有启动流程实例,需要增加一条业务数据,如果此时不需要填充那个参数的值,那么应该取消该字段的自动填充属性,在数据导航条的BeforeAction判断点击的是否是保存按钮,如果是,代码取该参数的值,然后赋值,这样就可以了
回复 支持 反对

使用道具 举报

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

本版积分规则

小黑屋|手机版|Justep Inc.

GMT+8, 2025-7-13 03:40 , Processed in 0.040575 second(s), 15 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

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