1、在“字段”的“表现类型”中设置。例如:人民币的大小写转换;整数型字段表现为:CheckBox 。
2、如果想实现输出时,例如金额为0时不要打印出来,编辑时显示0,可以在“编辑属性|OutputText”中设置表达式就可以。例如,设置:IIf(self=0,null,self) 。
3、字段的事件中还可以实现一些表现和实际存储不一样。 例如:如果字段本身的类型是字符型,而表现为日期时间字符型,参考如下:
3.1、在字段的 OnGetAsTimeStamp 事件中写
Value := Business.Data.SqlTimSt.StrToSQLTimeStamp(Field.AsString);
3.2、在字段的 OnSetAsTimeStamp 事件中写
Field.AsString := Business.Data.SqlTimSt.SQLTimeStampToStr('yyyy-mm-dd',Value);
如果是字符型的字段,那么首先触发的是OnGetAsString 和 OnSetAsString ,这是字段的基础事件。例如:
Procedure TSJB1.FieldZD3GetAsString(Field: TDataField; var Value: String);
begin
Value := SysUtils.Format('%s0101', [Field.AsString]);
end;.
Procedure TSJB1.FieldZD3SetAsString(Field: TDataField;const Value: String);
begin
Field.AsString := StringUtils.Copy(Value, 1, 4);
//那么结果肯定是只替换前面四位,后四位为:0101
end;
3.3、如果整数型字段,那么 OnGetAsInteger 和 OnSetAsInteger 是最基础的。
3.4、如果浮点型字段,那么OnGetAsFloat 和 OnSetAsFloat 是最基础的。
3.5、如果数字型字段,那么OnGetAsBCD 和 OnSetAsBCD 是最基础的。
3.6、如果日期时间型,那么OnGetAsTimeStampe 和 OnSetAsTimeStampe 是最基础的 。 |