起步软件技术论坛-X3

 找回密码
 立即注册
搜索
查看: 453|回复: 13

【搞定】关于公共参数组的代码[问题]**

[复制链接]
发表于 2007-5-15 10:15:12 | 显示全部楼层 |阅读模式
unit BFDNUMBERPARAMS;

interface

uses
  Business.System, Business.Model, CommonUtils;

type
  TBFDNUMBERPARAMS = class(TBizParamGroup)
    ParamBPCustomerNO: TBizParam;
    ParamBPCustomerPrjNO: TBizParam;
    ParamBPAffairNO: TBizParam;
    ParamBPTaskNO: TBizParam;
    ParamProductNo: TBizParam;
    ParamCode: TBizParam;
    BizParam1: TBizParam;
    procedure ParamBPCustomerNOGetValue(Sender: TObject; var Value: Variant);
    procedure ParamBPCustomerPrjNOGetValue(Sender: TObject; var Value: Variant);
    procedure ParamBPTaskNOGetValue(Sender: TObject; var Value: Variant);
    procedure ParamBPAffairNOGetValue(Sender: TObject; var Value: Variant);
    procedure ParamProductNoGetValue(Sender: TObject; var Value: Variant);
    procedure ParamCodeGetValue(Sender: TObject; var Value: Variant);
    procedure BizParam1GetValue(Sender: TObject; var Value: Variant);
  private
    {private declarations}
  public
    {public declarations}
  end;

implementation


procedure TBFDNUMBERPARAMS.ParamBPCustomerNOGetValue(Sender: TObject; var Value: Variant);
begin
  Value := TCommonUtils.GetAutoIncreaseID(Self.Context,
    TBizParam(Sender).ID, TBizParam(Sender).DisplayName);
  { 可根据需要定制Value的格式 }
  Value := TCommonUtils.StrToRightLenStr(Variants.VarToStr(Value), '0', 10);
end;

procedure TBFDNUMBERPARAMS.ParamBPCustomerPrjNOGetValue(Sender: TObject; var Value: Variant);
var
  lTempStr: string;
begin
  Value := TCommonUtils.GetAutoIncreaseID(Self.Context,
    TBizParam(Sender).ID, TBizParam(Sender).DisplayName);
  { 可根据需要定制Value的格式 }
  lTempStr := TCommonUtils.StrToRightLenStr(Variants.VarToStr(Value), '0', 9);
  Value := 'P' + lTempStr;
end;

procedure TBFDNUMBERPARAMS.ParamBPTaskNOGetValue(Sender: TObject; var Value: Variant);
begin
  Value := TCommonUtils.GetAutoIncreaseID(Self.Context,
    TBizParam(Sender).ID, TBizParam(Sender).DisplayName);
  { 可根据需要定制Value的格式 }
  Value := TCommonUtils.StrToRightLenStr(Variants.VarToStr(Value), '0', 10);

end;

procedure TBFDNUMBERPARAMS.ParamBPAffairNOGetValue(Sender: TObject; var Value: Variant);
begin
  Value := TCommonUtils.GetAutoIncreaseID(Self.Context,
    TBizParam(Sender).ID, TBizParam(Sender).DisplayName);
  { 可根据需要定制Value的格式 }
  Value := TCommonUtils.StrToRightLenStr(Variants.VarToStr(Value), '0', 10);

end;

procedure TBFDNUMBERPARAMS.ParamProductNoGetValue(Sender: TObject; var Value: Variant);
begin
  Value := TCommonUtils.GetAutoIncreaseID(Self.Context,
    TBizParam(Sender).ID, TBizParam(Sender).DisplayName);
  { 可根据需要定制Value的格式 }
  Value := TCommonUtils.StrToRightLenStr(Variants.VarToStr(Value), '0', 10);

end;

procedure TBFDNUMBERPARAMS.ParamCodeGetValue(Sender: TObject; var Value: Variant);
begin
  Value := TCommonUtils.GetAutoIncreaseID(Self.Context,
    TBizParam(Sender).ID, TBizParam(Sender).DisplayName);
  { 可根据需要定制Value的格式 }
  Value := TCommonUtils.StrToRightLenStr(Variants.VarToStr(Value), '0', 10);

end;

procedure TBFDNUMBERPARAMS.BizParam1GetValue(Sender: TObject; var Value: Variant);
begin
  Value := TCommonUtils.GetAutoIncreaseID(Self.Context,
    TBizParam(Sender).ID, TBizParam(Sender).DisplayName);
  { 可根据需要定制Value的格式 }
  Value := TCommonUtils.StrToRightLenStr(Variants.VarToStr(Value), '0', 10);
end;

end.
这是打开任务编码参数的代码,原来这个参数在自动填充中套用后显示为000000000X 的形式,现在我想修改为000X的形式,但是由于代码没有注释,所以我不知道应该在哪修改代码才能控制参数只显示四位数.
回复

使用道具 举报

发表于 2007-5-15 11:44:42 | 显示全部楼层
看来你没有好好看代码,例如
Value := TCommonUtils.StrToRightLenStr(Variants.VarToStr(Value), '0', 10);
修改为
Value := TCommonUtils.StrToRightLenStr(Variants.VarToStr(Value), '0', 4);
回复 支持 反对

使用道具 举报

 楼主| 发表于 2007-5-15 11:45:21 | 显示全部楼层
?沉了顶下
回复 支持 反对

使用道具 举报

发表于 2007-5-15 11:47:26 | 显示全部楼层
看2楼,
回复 支持 反对

使用道具 举报

 楼主| 发表于 2007-5-15 12:00:20 | 显示全部楼层
其实是原来我在你说的那行该代码参数为(Variants.VarToStr(Value), '0', 5),修改后就什么都不显示了.我不知道是因为我改代码的原因还是有其他原因,所以问下,还有每一段代码的参数一样为什么会显示为000000000X的形式,还有这段.StrToRightLenStr是什么意思?
回复 支持 反对

使用道具 举报

 楼主| 发表于 2007-5-15 12:10:55 | 显示全部楼层
请看图

or.jpg

14.18 KB, 下载次数: 155

回复 支持 反对

使用道具 举报

 楼主| 发表于 2007-5-15 12:11:48 | 显示全部楼层
修改后显示方式仍然没有改变

or2.jpg

2.45 KB, 下载次数: 156

回复 支持 反对

使用道具 举报

 楼主| 发表于 2007-5-15 12:15:54 | 显示全部楼层
我先是修该其中一个但没起作用然后将全部参数都设置为'0',4结果仍然如上图,因为其他几个参数组在修改后已经不显示任何内容,所以现在我使用的是任务编号参数组
我先说名下我的编号格式为'DD'+&[任务编号]所以前面显示DD开头,后面是参数生成的共十位没有任何的改变
回复 支持 反对

使用道具 举报

 楼主| 发表于 2007-5-15 12:59:55 | 显示全部楼层
unit BFDNUMBERPARAMS;

interface

uses
  Business.System, Business.Model, CommonUtils;

type
  TBFDNUMBERPARAMS = class(TBizParamGroup)
    ParamBPCustomerNO: TBizParam;
    ParamBPCustomerPrjNO: TBizParam;
    ParamBPAffairNO: TBizParam;
    ParamBPTaskNO: TBizParam;
    ParamProductNo: TBizParam;
    ParamCode: TBizParam;
    BizParam1: TBizParam;
    procedure ParamBPCustomerNOGetValue(Sender: TObject; var Value: Variant);
    procedure ParamBPCustomerPrjNOGetValue(Sender: TObject; var Value: Variant);
    procedure ParamBPTaskNOGetValue(Sender: TObject; var Value: Variant);
    procedure ParamBPAffairNOGetValue(Sender: TObject; var Value: Variant);
    procedure ParamProductNoGetValue(Sender: TObject; var Value: Variant);
    procedure ParamCodeGetValue(Sender: TObject; var Value: Variant);
    procedure BizParam1GetValue(Sender: TObject; var Value: Variant);
  private
    {private declarations}
  public
    {public declarations}
  end;

implementation


procedure TBFDNUMBERPARAMS.ParamBPCustomerNOGetValue(Sender: TObject; var Value: Variant);
begin
  Value := TCommonUtils.GetAutoIncreaseID(Self.Context,
    TBizParam(Sender).ID, TBizParam(Sender).DisplayName);
  { 可根据需要定制Value的格式 }
  Value := TCommonUtils.StrToRightLenStr(Variants.VarToStr(Value), '0', 4);
end;

procedure TBFDNUMBERPARAMS.ParamBPCustomerPrjNOGetValue(Sender: TObject; var Value: Variant);
var
  lTempStr: string;
begin
  Value := TCommonUtils.GetAutoIncreaseID(Self.Context,
    TBizParam(Sender).ID, TBizParam(Sender).DisplayName);
  { 可根据需要定制Value的格式 }
  lTempStr := TCommonUtils.StrToRightLenStr(Variants.VarToStr(Value), '0', 9);
  Value := 'P' + lTempStr;
end;

procedure TBFDNUMBERPARAMS.ParamBPTaskNOGetValue(Sender: TObject; var Value: Variant);
begin
  Value := TCommonUtils.GetAutoIncreaseID(Self.Context,
    TBizParam(Sender).ID, TBizParam(Sender).DisplayName);
  { 可根据需要定制Value的格式 }
  Value := TCommonUtils.StrToRightLenStr(Variants.VarToStr(Value), '0', 4);

end;

procedure TBFDNUMBERPARAMS.ParamBPAffairNOGetValue(Sender: TObject; var Value: Variant);
begin
  Value := TCommonUtils.GetAutoIncreaseID(Self.Context,
    TBizParam(Sender).ID, TBizParam(Sender).DisplayName);
  { 可根据需要定制Value的格式 }
  Value := TCommonUtils.StrToRightLenStr(Variants.VarToStr(Value), '0', 4);

end;

procedure TBFDNUMBERPARAMS.ParamProductNoGetValue(Sender: TObject; var Value: Variant);
begin
  Value := TCommonUtils.GetAutoIncreaseID(Self.Context,
    TBizParam(Sender).ID, TBizParam(Sender).DisplayName);
  { 可根据需要定制Value的格式 }
  Value := TCommonUtils.StrToRightLenStr(Variants.VarToStr(Value), '0', 4);

end;

procedure TBFDNUMBERPARAMS.ParamCodeGetValue(Sender: TObject; var Value: Variant);
begin
  Value := TCommonUtils.GetAutoIncreaseID(Self.Context,
    TBizParam(Sender).ID, TBizParam(Sender).DisplayName);
  { 可根据需要定制Value的格式 }
  Value := TCommonUtils.StrToRightLenStr(Variants.VarToStr(Value), '0', 4);

end;

procedure TBFDNUMBERPARAMS.BizParam1GetValue(Sender: TObject; var Value: Variant);
begin
  Value := TCommonUtils.GetAutoIncreaseID(Self.Context,
    TBizParam(Sender).ID, TBizParam(Sender).DisplayName);
  { 可根据需要定制Value的格式 }
  Value := TCommonUtils.StrToRightLenStr(Variants.VarToStr(Value), '0', 6);
end;

end.

上面这段是我修改后就不显示了的编号参数组代码
回复 支持 反对

使用道具 举报

 楼主| 发表于 2007-5-15 13:03:42 | 显示全部楼层
之前我想了解每一段代码的功能曾经注释过其中的三段分别是第一段和倒数一二段,之后去掉注释后参数就不能生成号码了,也不显示任何的值.
回复 支持 反对

使用道具 举报

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

本版积分规则

小黑屋|手机版|Justep Inc.

GMT+8, 2025-1-10 20:38 , Processed in 0.040053 second(s), 18 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

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