Subject RE: [IBO] BUG - IBO 3.6cf stops Masks in QuickReport fields
Author Michael L. Horne
Jason,

Do you still need a Demo with Quick Reports, if you don't use it
and don't have the QR components installed you will not be able
to do anything but look at it.

By the way, I am using QR Pro 3.08. I am quite willing to work
with you on testing any solutions you my come up with.


> I am NOT using persistent fields,
> the IB field is defined as Numeric(9,2)
> I am running Dialect 1.
> Delphi 5
> IB WI-V6.0.0.627
> IBO 3.6cf
> Quick Reports Pro 3.08

The spot in Quick Reports that seems to be affected is
in the QRCTRLS.PAS file Procedure TQRDBText.Print Line 1324
where is checks for field type. See <1> below where it checks
to see if it is a TBCDField, this if statement is not catching
whatever it was you where trying to setup.

Let me know if you still need to demo, it will take me an hour
or two to put it together.

Thanks
Michael L. Horne
guardian@...


procedure TQRDBText.Print(OfsX, OfsY : integer);
begin
if IsEnabled then
begin
if FieldOK then
begin
if FDataSet.DefaultFields then
Field := FDataSet.Fields[FieldNo];
end
else
Field := nil;
if assigned(Field) then
begin
try
if (Field is TMemoField) or
(Field is TBlobField) then
begin
Lines.Text := TMemoField(Field).AsString;
end else
if (Mask = '') or (Field is TStringField) then
if not (Field is TBlobField) then
FPrintCaption := Field.DisplayText
else
FPrintCaption := Field.AsString
else
begin
if (Field is TIntegerField) or
(Field is TSmallIntField) or
(Field is TWordField) then
FPrintCaption := FormatFloat(Mask, TIntegerField(Field).Value
* 1.0)
else
if (Field is TFloatField) or
(Field is TCurrencyField) or
<1> (Field is TBCDField) then
FPrintCaption := FormatFloat(Mask,TFloatField(Field).Value)
else
if (Field is TDateTimeField) or
(Field is TDateField) or
(Field is TTimeField) then
FPrintCaption :=
FormatDateTime(Mask,TDateTimeField(Field).Value);
end;
except
FPrintCaption := '';
end;
end else
FPrintCaption := '';
DoneFormat := false;
inherited Print(OfsX,OfsY);
end;
end;