Componentes.Terceros.RemObj.../internal/5.0.23.613/1/RemObjects SDK for Delphi/Samples/Arrays/ArraysClientMain.pas
david 2824855ea7 - Modificación del paquete RemObjects_Core_D10 para que sea un paquete de runtime/designtime (antes era designtime sólo)
- Recompilación en Delphi10 de todos los paquetes de RO para generar las DCU's en Lib\D10
- Recompilación en Delphi10 de todos los paquetes de DA para generar las DCU's en Lib\D10

git-svn-id: https://192.168.0.254/svn/Componentes.Terceros.RemObjects@9 b6239004-a887-0f4b-9937-50029ccdca16
2007-09-10 14:06:19 +00:00

189 lines
5.3 KiB
ObjectPascal

unit ArraysClientMain;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls,
uROClient, uROClientIntf, uRORemoteService, uROWinInetHttpChannel,
uROBinMessage, Grids, DBGrids, ComCtrls, ArraysLibrary_Intf, ExtCtrls;
type
TArraysClientMainForm = class(TForm)
ROMessage: TROBinMessage;
ROChannel: TROWinInetHTTPChannel;
RORemoteService: TRORemoteService;
CustomersGrid: TStringGrid;
OrdersGrid: TStringGrid;
Splitter1: TSplitter;
OpenButton: TButton;
Panel1: TPanel;
procedure OpenButtonClick(Sender: TObject);
procedure FormCreate(Sender: TObject);
procedure FormDestroy(Sender: TObject);
procedure CustomersGridSelectCell(Sender: TObject; ACol, ARow: Integer;
var CanSelect: Boolean);
private
{ Private declarations }
CustCol: CustomersCollection;
OrdCol: OrdersCollection;
FCustID: string;
procedure SetupGrid;
procedure SetupCustomers;
procedure SetupOrders(CustID: string);
procedure ClearGrid(Grid: TStringGrid);
public
{ Public declarations }
end;
var
ArraysClientMainForm: TArraysClientMainForm;
implementation
{$R *.dfm}
procedure TArraysClientMainForm.OpenButtonClick(Sender: TObject);
var
tbl: Tables;
begin
tbl := (RORemoteService as IArraysService).GetTables;
try
CustCol.LoadFromArray(tbl.aCustomers);
OrdCol.LoadFromArray(tbl.aOrders);
finally
tbl.Free;
end;
SetupCustomers;
SetupOrders(CustomersGrid.Cells[0, 1]);
end;
procedure TArraysClientMainForm.FormCreate(Sender: TObject);
begin
CustCol := CustomersCollection.Create;
OrdCol := OrdersCollection.Create;
SetupGrid;
end;
procedure TArraysClientMainForm.FormDestroy(Sender: TObject);
begin
CustCol.Free;
OrdCol.Free;
end;
procedure TArraysClientMainForm.SetupGrid;
begin
with CustomersGrid do begin
if RowCount < 2 then RowCount := 2;
ColCount:=11;
FixedRows := 1;
Cells[0, 0] := 'CustomerID';
Cells[1, 0] := 'CompanyName';
Cells[2, 0] := 'ContactName';
Cells[3, 0] := 'ContactTitle';
Cells[4, 0] := 'Address';
Cells[5, 0] := 'City';
Cells[6, 0] := 'Region';
Cells[7, 0] := 'Postalcode';
Cells[8, 0] := 'Country';
Cells[9, 0] := 'Phone';
Cells[10, 0] := 'Fax';
end;
with OrdersGrid do begin
if RowCount < 2 then RowCount := 2;
ColCount:= 14;
FixedRows := 1;
Cells[0, 0] := 'OrderID';
Cells[1, 0] := 'CustomerID';
Cells[2, 0] := 'EmployeeID';
Cells[3, 0] := 'OrderDate';
Cells[4, 0] := 'RequiredDate';
Cells[5, 0] := 'ShippedDate';
Cells[6, 0] := 'ShipVia';
Cells[7, 0] := 'Freight';
Cells[8, 0] := 'ShipName';
Cells[9, 0] := 'ShipAddress';
Cells[10, 0] := 'ShipCity';
Cells[11, 0] := 'ShipRegion';
Cells[12, 0] := 'ShipPostalCode';
Cells[13, 0] := 'ShipCountry';
end;
end;
procedure TArraysClientMainForm.SetupCustomers;
var
i: integer;
CustItem: Customers;
begin
ClearGrid(CustomersGrid);
with CustomersGrid do begin
RowCount := 1 + CustCol.Count;
for i := 0 to CustCol.Count - 1 do begin
CustItem := CustCol[i];
Cells[0, i + 1] := CustItem.CustomerID;
Cells[1, i + 1] := CustItem.CompanyName;
Cells[2, i + 1] := CustItem.ContactName;
Cells[3, i + 1] := CustItem.ContactTitle;
Cells[4, i + 1] := CustItem.Address;
Cells[5, i + 1] := CustItem.City;
Cells[6, i + 1] := CustItem.Region;
Cells[7, i + 1] := CustItem.Postalcode;
Cells[8, i + 1] := CustItem.Country;
Cells[9, i + 1] := CustItem.Phone;
Cells[10, i + 1] := CustItem.Fax;
end;
end;
end;
procedure TArraysClientMainForm.SetupOrders(CustID: string);
var
i: integer;
k: integer;
OrdersItem: Orders;
begin
if FCustID = CustID then Exit;
ClearGrid(OrdersGrid);
with OrdersGrid do begin
FCustID := CustID;
RowCount := 1 + OrdCol.Count;
k := 0;
for i := 0 to OrdCol.Count - 1 do begin
OrdersItem := OrdCol[i];
if OrdersItem.CustomerID = CustID then begin
inc(k);
Cells[0, k] := IntToStr(OrdersItem.OrderID);
Cells[1, k] := OrdersItem.CustomerID;
Cells[2, k] := IntToStr(OrdersItem.EmployeeID);
Cells[3, k] := DateTimeToStr(OrdersItem.OrderDate);
Cells[4, k] := DateTimeToStr(OrdersItem.RequiredDate);
Cells[5, k] := DateTimeToStr(OrdersItem.ShippedDate);
Cells[6, k] := IntToStr(OrdersItem.ShipVia);
Cells[7, k] := CurrToStr(OrdersItem.Freight);
Cells[8, k] := OrdersItem.ShipName;
Cells[9, k] := OrdersItem.ShipAddress;
Cells[10, k] := OrdersItem.ShipCity;
Cells[11, k] := OrdersItem.ShipRegion;
Cells[12, k] := OrdersItem.ShipPostalCode;
Cells[13, k] := OrdersItem.ShipCountry;
end;
end;
if k > 0 then RowCount := k + 1 else ClearGrid(OrdersGrid);
end;
end;
procedure TArraysClientMainForm.ClearGrid(Grid: TStringGrid);
begin
Grid.RowCount := 1;
Grid.RowCount := 2;
Grid.Rows[1].Clear;
Grid.FixedRows := 1;
end;
procedure TArraysClientMainForm.CustomersGridSelectCell(Sender: TObject; ACol,
ARow: Integer; var CanSelect: Boolean);
begin
if ARow > 0 then SetupOrders(CustomersGrid.Cells[0, aRow]);
end;
end.