唉,每次还是自己研究答案出来,虽然花了好大心思,不过自己能研究出来比什么都好,还是贴上来供大家分享了
从网上查到这么一段话,受其开导,改造成自己所需要实现的功能
*****************************
有一方法可以实现你的要求:
在你的dataset的AfterScroll中写
if trim(dataset.FieldByName('mobile2').AsString)=''
then
QRDBText1.Top:=30
else
QRDBText1.Top:=16;
当然,30和16只是我给的例子.你可按你的要求调正
*****************************
改造如下
procedure TfrmRepSalOrderMD2.qrMainAfterScroll(DataSet: TDataSet);
begin
//qrdbtext中数据进行截位垂直居中 begin
if Length(trim(qrMain.FieldByName('cust_address').AsString))>50 then
begin
QRDBText1.Top:=33;
QRDBText1.Height:=40;
end;
if Length(trim(qrMain.FieldByName('cust_phone').AsString))>20 then
begin
QRDBText2.Top:=78;
QRDBText2.Height:=28;
end;
if Length(trim(qrMain.FieldByName('recv_address').AsString))>50 then
else
begin
QRDBText7.Top:=140;
QRDBText7.Height:=30;
end;
if Length(trim(qrMain.FieldByName('cust_recv_phone').AsString))>20 then
begin
QRDBText15.Top:=171;
QRDBText15.Height:=29;
end;
end;