You've already forked lazarus-ccr
RxFPC:continue work on RxDBGrid PDF export
git-svn-id: https://svn.code.sf.net/p/lazarus-ccr/svn@5079 8e941d3f-bd1b-0410-a28a-d453659cc2b4
This commit is contained in:
@ -18,6 +18,7 @@ type
|
|||||||
TRxCustomDateRangeEdit = class(TCustomControl)
|
TRxCustomDateRangeEdit = class(TCustomControl)
|
||||||
private
|
private
|
||||||
FFlat: Boolean;
|
FFlat: Boolean;
|
||||||
|
FLockCount:integer;
|
||||||
FOnEditChange: TNotifyEvent;
|
FOnEditChange: TNotifyEvent;
|
||||||
FOnEditClick: TNotifyEvent;
|
FOnEditClick: TNotifyEvent;
|
||||||
FOnEditEnter: TNotifyEvent;
|
FOnEditEnter: TNotifyEvent;
|
||||||
@ -50,6 +51,8 @@ type
|
|||||||
procedure InternalOnEditClick(Sender: TObject);
|
procedure InternalOnEditClick(Sender: TObject);
|
||||||
procedure InternalOnEditEnter(Sender: TObject);
|
procedure InternalOnEditEnter(Sender: TObject);
|
||||||
procedure InternalOnEditExit(Sender: TObject);
|
procedure InternalOnEditExit(Sender: TObject);
|
||||||
|
procedure Lock;
|
||||||
|
procedure UnLock;
|
||||||
protected
|
protected
|
||||||
class function GetControlClassDefaultSize: TSize; override;
|
class function GetControlClassDefaultSize: TSize; override;
|
||||||
procedure FillMonthNames;
|
procedure FillMonthNames;
|
||||||
@ -158,6 +161,7 @@ begin
|
|||||||
end
|
end
|
||||||
else
|
else
|
||||||
FEditMonth.ItemIndex := 0;
|
FEditMonth.ItemIndex := 0;
|
||||||
|
InternalOnEditChange(Self);
|
||||||
end;
|
end;
|
||||||
|
|
||||||
procedure TRxCustomDateRangeEdit.DoIncYear(Sender: TObject);
|
procedure TRxCustomDateRangeEdit.DoIncYear(Sender: TObject);
|
||||||
@ -206,6 +210,7 @@ begin
|
|||||||
end
|
end
|
||||||
else
|
else
|
||||||
FEditMonth.ItemIndex := 0;
|
FEditMonth.ItemIndex := 0;
|
||||||
|
InternalOnEditChange(Self);
|
||||||
end;
|
end;
|
||||||
|
|
||||||
procedure TRxCustomDateRangeEdit.DoDecYear(Sender: TObject);
|
procedure TRxCustomDateRangeEdit.DoDecYear(Sender: TObject);
|
||||||
@ -316,7 +321,8 @@ end;
|
|||||||
|
|
||||||
procedure TRxCustomDateRangeEdit.InternalOnEditChange(Sender: TObject);
|
procedure TRxCustomDateRangeEdit.InternalOnEditChange(Sender: TObject);
|
||||||
begin
|
begin
|
||||||
EditChange;
|
if FLockCount = 0 then
|
||||||
|
EditChange;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
procedure TRxCustomDateRangeEdit.InternalOnEditClick(Sender: TObject);
|
procedure TRxCustomDateRangeEdit.InternalOnEditClick(Sender: TObject);
|
||||||
@ -334,6 +340,19 @@ begin
|
|||||||
EditExit;
|
EditExit;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
|
procedure TRxCustomDateRangeEdit.Lock;
|
||||||
|
begin
|
||||||
|
Inc(FLockCount);
|
||||||
|
end;
|
||||||
|
|
||||||
|
procedure TRxCustomDateRangeEdit.UnLock;
|
||||||
|
begin
|
||||||
|
if FLockCount > 0 then
|
||||||
|
Dec(FLockCount)
|
||||||
|
else
|
||||||
|
InternalOnEditChange(Self);
|
||||||
|
end;
|
||||||
|
|
||||||
class function TRxCustomDateRangeEdit.GetControlClassDefaultSize: TSize;
|
class function TRxCustomDateRangeEdit.GetControlClassDefaultSize: TSize;
|
||||||
begin
|
begin
|
||||||
Result.CX := 80 + 70 + 23 * 4;
|
Result.CX := 80 + 70 + 23 * 4;
|
||||||
@ -410,6 +429,7 @@ end;
|
|||||||
constructor TRxCustomDateRangeEdit.Create(AOwner: TComponent);
|
constructor TRxCustomDateRangeEdit.Create(AOwner: TComponent);
|
||||||
begin
|
begin
|
||||||
inherited Create(AOwner);
|
inherited Create(AOwner);
|
||||||
|
FLockCount:=0;
|
||||||
FOptions:=[reoMonth];
|
FOptions:=[reoMonth];
|
||||||
|
|
||||||
FEditYear:=TSpinEdit.Create(Self);
|
FEditYear:=TSpinEdit.Create(Self);
|
||||||
|
@ -159,19 +159,36 @@ procedure TRxDBGridExportPDF.DoExportTitle;
|
|||||||
var
|
var
|
||||||
P: TPDFPage;
|
P: TPDFPage;
|
||||||
Pt: TPDFCoord;
|
Pt: TPDFCoord;
|
||||||
i: Integer;
|
i, X: Integer;
|
||||||
C: TRxColumn;
|
C: TRxColumn;
|
||||||
|
S: String;
|
||||||
begin
|
begin
|
||||||
|
X:=20;
|
||||||
|
|
||||||
for i:=0 to FRxDBGrid.Columns.Count - 1 do
|
for i:=0 to FRxDBGrid.Columns.Count - 1 do
|
||||||
begin
|
begin
|
||||||
P:=TPDFPage(FWorkPages[0]);
|
P:=TPDFPage(FWorkPages[0]);
|
||||||
C:=FRxDBGrid.Columns[i];
|
C:=FRxDBGrid.Columns[i];
|
||||||
Pt.X := 20 + i * 40;
|
Pt.X := X;
|
||||||
Pt.Y := FPosY;
|
Pt.Y := FPosY;
|
||||||
P.SetColor(C.Color);
|
P.SetColor(C.Color);
|
||||||
P.DrawRect(Pt.X, Pt.Y, 40, FRxDBGrid.DefaultRowHeight, 1, true, true);
|
P.DrawRect(Pt.X, Pt.Y, C.Width, FRxDBGrid.DefaultRowHeight, 1, false, true);
|
||||||
|
|
||||||
|
|
||||||
|
P.SetFont(FHeaderFont, 10);
|
||||||
|
//P.SetColor(clBlue, false);
|
||||||
|
P.WriteText(Pt.X+2, Pt.Y-10, C.Title.Caption);
|
||||||
|
|
||||||
|
|
||||||
|
Inc(X, C.Width);
|
||||||
end;
|
end;
|
||||||
Inc(FPosY, FRxDBGrid.DefaultRowHeight)
|
|
||||||
|
Inc(FPosY, FRxDBGrid.DefaultRowHeight);
|
||||||
|
{
|
||||||
|
S:='Russian: Привет мир!';
|
||||||
|
|
||||||
|
P.SetFont(FBodyFont, 11);
|
||||||
|
P.WriteText(40, 160, S);}
|
||||||
end;
|
end;
|
||||||
|
|
||||||
procedure TRxDBGridExportPDF.DoExportBody;
|
procedure TRxDBGridExportPDF.DoExportBody;
|
||||||
@ -181,11 +198,22 @@ end;
|
|||||||
|
|
||||||
procedure TRxDBGridExportPDF.DoSetupFonts;
|
procedure TRxDBGridExportPDF.DoSetupFonts;
|
||||||
begin
|
begin
|
||||||
FHeaderFont := FPDFDocument.AddFont('Helvetica');
|
//FPDFDocument.FontDirectory := '/usr/share/fonts/liberation';
|
||||||
|
FPDFDocument.FontDirectory := '/usr/share/fonts/liberation';
|
||||||
|
FHeaderFont := FPDFDocument.AddFont('LiberationSans-Regular.ttf', 'LiberationSans', clGreen);
|
||||||
|
|
||||||
|
FPDFDocument.FontDirectory := 'fonts';
|
||||||
|
FBodyFont := FPDFDocument.AddFont('FreeSans.ttf', 'FreeSans', clGreen); // TODO: this color value means nothing - not used at all
|
||||||
|
// FHeaderFont := FPDFDocument.AddFont('Helvetica');
|
||||||
// FBodyFont := D.AddFont('Helvetica');
|
// FBodyFont := D.AddFont('Helvetica');
|
||||||
// FFooterFont := D.AddFont('Helvetica');
|
// FFooterFont := D.AddFont('Helvetica');
|
||||||
FBodyFont := FHeaderFont;
|
// FBodyFont := FHeaderFont;
|
||||||
FFooterFont := FHeaderFont;
|
FFooterFont := FHeaderFont;
|
||||||
|
|
||||||
|
{FtTitle := D.AddFont('Helvetica', clRed);
|
||||||
|
FtText1 := D.AddFont('FreeSans.ttf', 'FreeSans', clGreen); // TODO: this color value means nothing - not used at all
|
||||||
|
FtText2 := D.AddFont('Times-BoldItalic', clBlack);}
|
||||||
|
|
||||||
end;
|
end;
|
||||||
|
|
||||||
procedure TRxDBGridExportPDF.DoExportFooter;
|
procedure TRxDBGridExportPDF.DoExportFooter;
|
||||||
@ -248,7 +276,7 @@ begin
|
|||||||
FWorkPages.Add(P);
|
FWorkPages.Add(P);
|
||||||
end;
|
end;
|
||||||
|
|
||||||
FPosY:=20;
|
FPosY:=40;
|
||||||
|
|
||||||
if repExportTitle in FOptions then
|
if repExportTitle in FOptions then
|
||||||
DoExportTitle;
|
DoExportTitle;
|
||||||
|
Reference in New Issue
Block a user