unit unit2;

{$mode delphi}

interface

uses
  Classes, SysUtils, dbf, db, 
 {$IFDEF IncludeSQLite}
  sqlite3conn,
 {$ENDIF}
  sqldb, FileUtil, frxDBSet, variants;

type

  { TReportData }

  TReportData = class(TDataModule)
   {$IFDEF IncludeSQLite}
    sqlLite: TSQLite3Connection;
    trLite: TSQLTransaction;
   {$ENDIF}
    Customers: TDbf;
    CustomersDS: TfrxDBDataset;
    CustomerSource: TDataSource;
    Bio: TDbf;
    BioDS: TfrxDBDataset;
    Country: TDbf;
    CountryDS: TfrxDBDataset;
    Cross: TDbf;
    CrossDS: TfrxDBDataset;
    Country1: TDbf;
    Country2: TDbf;
    Country3: TDbf;
    CountryDS1: TfrxDBDataset;
    CountryDS2: TfrxDBDataset;
    CountryDS3: TfrxDBDataset;
    MapOrderDetailSource: TDataSource;
    MapOrdersSource: TDataSource;
    MapOrderDetailsDS: TfrxDBDataset;
    MapOrderDetails: TDbf;
    MapOrdersDS: TfrxDBDataset;
    MapOrders: TDbf;
    LineItemsDISCOUNT: TFloatField;
    LineItemsITEMNO: TFloatField;
    LineItemsLISTprice: TFloatField;
    LineItemsORDERNO: TFloatField;
    LineItemsPARTNO: TFloatField;
    LineItemsQTY: TFloatField;
    Parts: TDbf;
    PartsCOST: TFloatField;
    PartsDESCRIPT: TStringField;
    PartsLISTPRICE: TFloatField;
    PartsONHAND: TFloatField;
    PartsONORDER: TFloatField;
    PartsPARTNO: TFloatField;
    PartsVENDORNO: TFloatField;
    QueryDS: TfrxDBDataset;
    RepQuery: TDbf;
    IemsDS: TfrxDBDataset;
    LineItems: TDbf;
    OrderSource: TDataSource;
    OrdersDS: TfrxDBDataset;
    Orders: TDbf;
    StringField1: TStringField;
    procedure DataModuleCreate(Sender: TObject);
    procedure MapOrderDetailsDSNext(Sender: TObject);
  private

  public

  end;

var
  ReportData: TReportData;

implementation

{$R *.lfm}

{ TReportData }

procedure TReportData.DataModuleCreate(Sender: TObject);
var
  I: Integer;
begin
 {$IFDEF IncludeSQLite}
  sqlLite := TSQLite3Connection.Create(Self);
  sqlLite.Connected := False;
  sqlLite.LoginPrompt := False;
  sqlLite.DatabaseName := 'demo.sqlite3';
  sqlLite.KeepConnection := False;
  sqlLite.Transaction := trLite;
  sqlLite.CharSet := 'utf-8';
  sqlLite.HostName := 'localhost';
  trLite := TSQLTransaction.Create(Self);
  trLite.Active := False;
  trLite.Database := sqlLite;
 {$ENDIF}
  for I := 0 to ComponentCount - 1 do
  begin
    if Components[I] is TDbf then
      TDbf(Components[I]).Close;
  end;
end;

procedure TReportData.MapOrderDetailsDSNext(Sender: TObject);
begin
  MapOrders.Filter := 'OrderId = ' + VarToStr(MapOrderDetailsDS.Value['OrderId']);
  MapOrders.Filtered := True;
end;

end.

