Files
lazarus-ccr/components/systools/source/db/stdb2dbc.pas
2018-01-16 23:57:15 +00:00

359 lines
9.9 KiB
ObjectPascal

(* ***** BEGIN LICENSE BLOCK *****
* Version: MPL 1.1
*
* The contents of this file are subject to the Mozilla Public License Version
* 1.1 (the "License"); you may not use this file except in compliance with
* the License. You may obtain a copy of the License at
* http://www.mozilla.org/MPL/
*
* Software distributed under the License is distributed on an "AS IS" basis,
* WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
* for the specific language governing rights and limitations under the
* License.
*
* The Original Code is TurboPower SysTools
*
* The Initial Developer of the Original Code is
* TurboPower Software
*
* Portions created by the Initial Developer are Copyright (C) 1996-2002
* the Initial Developer. All Rights Reserved.
*
* Contributor(s):
*
* ***** END LICENSE BLOCK ***** *)
{*********************************************************}
{* SysTools: StDb2DBC.pas 4.04 *}
{*********************************************************}
{* SysTools: Data-aware Two-Dimensional Barcodes *}
{*********************************************************}
{$IFDEF FPC}
{$mode DELPHI}
{$ENDIF}
//{$I StDefine.inc}
unit StDb2DBC;
interface
uses
{$IFDEF FPC}
LCLIntf, LCLType, LMessages,
{$ELSE}
Windows, Messages,
{$ENDIF}
SysUtils,
Classes,
St2DBarC,
Db,
DbCtrls;
type
TStDbPDF417Barcode = class(TStPDF417Barcode)
protected {private}
{.Z+}
FCaptionDataLink : TFieldDataLink;
FCodeDataLink : TFieldDataLink;
procedure CaptionDataChange(Sender : TObject);
procedure CodeDataChange(Sender : TObject);
function GetCaptionDataField : string;
function GetCodeDataField : string;
function GetDataSource : TDataSource;
procedure SetCaptionDataField(const Value : string);
procedure SetCodeDataField(const Value : string);
procedure SetDataSource(Value : TDataSource);
public
constructor Create(AOwner : TComponent); override;
destructor Destroy;
override;
{.Z+}
published
property Code stored False;
property Caption stored False;
property CaptionDataField : string
read GetCaptionDataField write SetCaptionDataField;
property CodeDataField : string
read GetCodeDataField write SetCodeDataField;
property DataSource : TDataSource read GetDataSource write SetDataSource;
end;
TStDbMaxiCodeBarcode = class(TStMaxiCodeBarcode)
protected {private}
{.Z+}
FCaptionDataLink : TFieldDataLink;
FCodeDataLink : TFieldDataLink;
FCountryCodeDataLink : TFieldDataLink;
FPostalCodeDataLink : TFieldDataLink;
FServiceClassDataLink : TFieldDataLink;
procedure CaptionDataChange (Sender : TObject);
procedure CodeDataChange (Sender : TObject);
procedure CountryCodeChange (Sender : TObject);
function GetCaptionDataField : string;
function GetCodeDataField : string;
function GetCountryCodeDataField : string;
function GetDataSource : TDataSource;
function GetPostalCodeDataField : string;
function GetServiceClassDataField : string;
procedure PostalCodeChange (Sender : TObject);
procedure ServiceClassChange (Sender : TObject);
procedure SetCaptionDataField (const Value : string);
procedure SetCodeDataField (const Value : string);
procedure SetCountryCodeDataField (const Value : string);
procedure SetDataSource (Value : TDataSource);
procedure SetPostalCodeDataField (const Value : string);
procedure SetServiceClassDataField (const Value : string);
public
constructor Create(AOwner : TComponent); override;
destructor Destroy;
override;
{.Z+}
published
property Code stored False;
property Caption stored False;
property CaptionDataField : string
read GetCaptionDataField write SetCaptionDataField;
property CarrierCountryCodeDataField : string
read GetCountryCodeDataField write SetCountryCodeDataField;
property CarrierPostalCodeDataField : string
read GetPostalCodeDataField write SetPostalCodeDataField;
property CarrierServiceClassDataField : string
read GetServiceClassDataField write SetServiceClassDataField;
property CodeDataField : string
read GetCodeDataField write SetCodeDataField;
property DataSource : TDataSource read GetDataSource write SetDataSource;
end;
implementation
{ TStDbPDF417Barcode }
constructor TStDbPDF417Barcode.Create(AOwner : TComponent);
begin
inherited Create(AOwner);
FCaptionDataLink := TFieldDataLink.Create;
FCaptionDataLink.OnDataChange := CaptionDataChange;
FCodeDataLink := TFieldDataLink.Create;
FCodeDataLink.OnDataChange := CodeDataChange;
end;
destructor TStDbPDF417Barcode.Destroy;
begin
FCaptionDataLink.OnDataChange := nil;
FCaptionDataLink.Free;
FCaptionDataLink := nil;
FCodeDataLink.OnDataChange := nil;
FCodeDataLink.Free;
FCodeDataLink := nil;
inherited Destroy;
end;
procedure TStDbPDF417Barcode.CaptionDataChange(Sender : TObject);
begin
if FCaptionDataLink.Field = nil then
Caption := '12345678922'
else
Caption := FCaptionDataLink.Field.DisplayText;
end;
procedure TStDbPDF417Barcode.CodeDataChange(Sender : TObject);
begin
if FCodeDataLink.Field = nil then
Code := '12345678922'
else
Code := FCodeDataLink.Field.DisplayText;
end;
function TStDbPDF417Barcode.GetCaptionDataField : string;
begin
Result := FCaptionDataLink.FieldName;
end;
function TStDbPDF417Barcode.GetCodeDataField : string;
begin
Result := FCodeDataLink.FieldName;
end;
function TStDbPDF417Barcode.GetDataSource : TDataSource;
begin
Result := FCaptionDataLink.DataSource
end;
procedure TStDbPDF417Barcode.SetCaptionDataField(const Value : string);
begin
FCaptionDataLink.FieldName := Value;
end;
procedure TStDbPDF417Barcode.SetCodeDataField(const Value : string);
begin
FCodeDataLink.FieldName := Value;
end;
procedure TStDbPDF417Barcode.SetDataSource(Value : TDataSource);
begin
FCaptionDataLink.DataSource := Value;
FCodeDataLink.DataSource := Value;
end;
{ TStDbMaxiCodeBarcode }
constructor TStDbMaxiCodeBarcode.Create(AOwner : TComponent);
begin
inherited Create(AOwner);
FCaptionDataLink := TFieldDataLink.Create;
FCaptionDataLink.OnDataChange := CaptionDataChange;
FCodeDataLink := TFieldDataLink.Create;
FCodeDataLink.OnDataChange := CodeDataChange;
FCountryCodeDataLink := TFieldDataLink.Create;
FCountryCodeDataLink.OnDataChange := CountryCodeChange;
FPostalCodeDataLink := TFieldDataLink.Create;
FPostalCodeDataLink.OnDataChange := PostalCodeChange;
FServiceClassDataLink := TFieldDataLink.Create;
FServiceClassDataLink.OnDataChange := ServiceClassChange;
end;
destructor TStDbMaxiCodeBarcode.Destroy;
begin
FCaptionDataLink.OnDataChange := nil;
FCaptionDataLink.Free;
FCaptionDataLink := nil;
FCodeDataLink.OnDataChange := nil;
FCodeDataLink.Free;
FCodeDataLink := nil;
FCountryCodeDataLink.OnDataChange := nil;
FCountryCodeDataLink.Free;
FCountryCodeDataLink := nil;
FPostalCodeDataLink.OnDataChange := nil;
FPostalCodeDataLink.Free;
FPostalCodeDataLink := nil;
FServiceClassDataLink.OnDataChange := nil;
FServiceClassDataLink.Free;
FServiceClassDataLink := nil;
inherited Destroy;
end;
procedure TStDbMaxiCodeBarcode.CaptionDataChange(Sender : TObject);
begin
if FCaptionDataLink.Field = nil then
Caption := '12345678922'
else
Caption := FCaptionDataLink.Field.DisplayText;
end;
procedure TStDbMaxiCodeBarcode.CodeDataChange(Sender : TObject);
begin
if FCodeDataLink.Field = nil then
Code := '12345678922'
else
Code := FCodeDataLink.Field.DisplayText;
end;
procedure TStDbMaxiCodeBarcode.CountryCodeChange (Sender : TObject);
begin
if FCountryCodeDataLink.Field = nil then
CarrierCountryCode := 0
else
CarrierCountryCode := FCountryCodeDataLink.Field.AsInteger;
end;
function TStDbMaxiCodeBarcode.GetCaptionDataField : string;
begin
Result := FCaptionDataLink.FieldName;
end;
function TStDbMaxiCodeBarcode.GetCodeDataField : string;
begin
Result := FCodeDataLink.FieldName;
end;
function TStDbMaxiCodeBarcode.GetCountryCodeDataField : string;
begin
Result := FCountryCodeDataLink.FieldName;
end;
function TStDbMaxiCodeBarcode.GetDataSource : TDataSource;
begin
Result := FCaptionDataLink.DataSource
end;
function TStDbMaxiCodeBarcode.GetPostalCodeDataField : string;
begin
Result := FPostalCodeDataLink.FieldName;
end;
function TStDbMaxiCodeBarcode.GetServiceClassDataField : string;
begin
Result := FServiceClassDataLink.FieldName;
end;
procedure TStDbMaxiCodeBarcode.PostalCodeChange (Sender : TObject);
begin
if FPostalCodeDataLink.Field = nil then
CarrierPostalCode := '000'
else
CarrierPostalCode := FPostalCodeDataLink.Field.DisplayText;
end;
procedure TStDbMaxiCodeBarcode.ServiceClassChange (Sender : TObject);
begin
if FServiceClassDataLink.Field = nil then
CarrierServiceClass := 0
else
CarrierServiceClass := FServiceClassDataLink.Field.AsInteger;
end;
procedure TStDbMaxiCodeBarcode.SetCaptionDataField(const Value : string);
begin
FCaptionDataLink.FieldName := Value;
end;
procedure TStDbMaxiCodeBarcode.SetCodeDataField(const Value : string);
begin
FCodeDataLink.FieldName := Value;
end;
procedure TStDbMaxiCodeBarcode.SetCountryCodeDataField (const Value : string);
begin
FCountryCodeDataLink.FieldName := Value;
end;
procedure TStDbMaxiCodeBarcode.SetDataSource(Value : TDataSource);
begin
FCaptionDataLink.DataSource := Value;
FCodeDataLink.DataSource := Value;
FCountryCodeDataLink.DataSource := Value;
FPostalCodeDataLink.DataSource := Value;
FServiceClassDataLink.DataSource := Value;
end;
procedure TStDbMaxiCodeBarcode.SetPostalCodeDataField (const Value : string);
begin
FPostalCodeDataLink.FieldName := Value;
end;
procedure TStDbMaxiCodeBarcode.SetServiceClassDataField (const Value : string);
begin
FServiceClassDataLink.FieldName := Value;
end;
end.