楼主,有一个方法,你还按上面的方式,但是要做一个代码,自己去解析用户输入的日期为符合规则的日期格式。
比如我下面的测试过程,数据表中有两列,一列(RQ)是日期格式,显示格式为yyyy'年'mm'月'dd'日',一列(RQZF)是字符,然后在RQZF这列输入形如20090304,然后RQ列就可以自动显示为你需要的格式。(这个方法仅供参考。)
procedure TRQTXBD.DataSetBrokerBZSJJ1DataChange(Sender: TObject; Field: TDataField);
var
s,st : String;
begin
if (Field <> nil) and (Field.FieldName = 'RQZF') then
begin
s := DataSetBrokerBZSJJ1.DataSet.FieldByName('RQZF').AsString;
st := StringUtils.Copy(s,1,4) + '-';
s := StringUtils.Copy(s,5,Length(s));
st := st + StringUtils.Copy(s,1,2) + '-';
s := StringUtils.Copy(s,3,Length(s));
st := st + s;
//DataSetBrokerBZSJJ1.DataSet.Edit;
DataSetBrokerBZSJJ1.DataSet.FieldByName('RQ').AsString := st;
//DataSetBrokerBZSJJ1.DataSet.Post;
end;
end;
注意,对于用户输入的日期格式要有一定得规则,也就是说上面的处理过程依赖于一定的规则(这里的逻辑需要楼主自己去完善,我只是提供一个方法) |