Chapter 22 - Project WSnapTable |
Project Structure
| WSnapTable.dpr |
program WSnapTable;
uses
Forms,
ComApp,
wsnapform in 'wsnapform.pas' ,
table_dm in 'table_dm.pas' ,
wsnapdata in 'wsnapdata.pas' ,
form_dm in 'form_dm.pas' ;
begin
Application.Initialize;
Application.CreateForm(TForm1, Form1);
Application.Run;
end.
| wsnapform.pas |
unit wsnapform;
interface
uses
SysUtils, Classes, Graphics, Controls, Forms, Dialogs;
type
TForm1 = class(TForm)
private
public
end;
var
Form1: TForm1;
implementation
uses ComApp;
const
CLASS_ComWebApp: TGUID = '{80D1D620-FE41-4FD0-BE34-9CB073C0635F}';
initialization
TWebAppAutoObjectFactory.Create(Class_ComWebApp,
'WSnapTable', 'WSnapTable Object');
end.
| table_dm.pas |
unit table_dm;
interface
uses
Windows, Messages, SysUtils, Classes, HTTPApp, WebModu, HTTPProd, ReqMulti,
WebDisp, WebAdapt, WebComp, CompProd, PagItems, SiteProd, DBXpress,
FMTBcd, MidItems, WebForm, DB, SqlExpr, DBAdapt, Provider, DBClient;
type
Ttable = class(TWebAppPageModule)
AdapterPageProducer: TAdapterPageProducer;
WebAppComponents: TWebAppComponents;
ApplicationAdapter: TApplicationAdapter;
PageDispatcher: TPageDispatcher;
AdapterDispatcher: TAdapterDispatcher;
DataSetAdapter1: TDataSetAdapter;
AdapterForm1: TAdapterForm;
AdapterGrid1: TAdapterGrid;
AdapterCommandGroup1: TAdapterCommandGroup;
CmdPrevPage: TAdapterActionButton;
CmdGotoPage: TAdapterActionButton;
CmdNextPage: TAdapterActionButton;
ColCUST_NO: TAdapterDisplayColumn;
ColCUSTOMER: TAdapterDisplayColumn;
ColADDRESS_LINE1: TAdapterDisplayColumn;
ColCITY: TAdapterDisplayColumn;
ColSTATE_PROVINCE: TAdapterDisplayColumn;
ColCOUNTRY: TAdapterDisplayColumn;
AdapterCommandColumn1: TAdapterCommandColumn;
CmdEditRow: TAdapterActionButton;
CmdDeleteRow: TAdapterActionButton;
AdapterCommandGroup2: TAdapterCommandGroup;
CmdNewRow: TAdapterActionButton;
private
public
end;
function table: Ttable;
implementation
uses WebReq, WebCntxt, WebFact, Variants, wsnapdata;
function table: Ttable;
begin
Result := Ttable(WebContext.FindModuleClass(Ttable));
end;
initialization
if WebRequestHandler <> nil then
WebRequestHandler.AddWebModuleFactory(TWebAppPageModuleFactory.Create(Ttable, TWebPageInfo.Create([wpPublished ], '.html'), caCache));
end.
| wsnapdata.pas |
unit wsnapdata;
interface
uses
Windows, Messages, SysUtils, Classes, HTTPApp, WebModu, DBXpress, FMTBcd,
Provider, SqlExpr, DB, DBClient;
type
TWebDataModule1 = class(TWebDataModule)
ClientDataSet1: TClientDataSet;
SQLConnection1: TSQLConnection;
SQLDataSet1: TSQLDataSet;
DataSetProvider1: TDataSetProvider;
procedure ClientDataSet1AfterPost(DataSet: TDataSet);
procedure ClientDataSet1AfterDelete(DataSet: TDataSet);
private
public
end;
function WebDataModule1: TWebDataModule1;
implementation
uses WebReq, WebCntxt, WebFact, Variants;
function WebDataModule1: TWebDataModule1;
begin
Result := TWebDataModule1(WebContext.FindModuleClass(TWebDataModule1));
end;
procedure TWebDataModule1.ClientDataSet1AfterPost(DataSet: TDataSet);
begin
ClientDataSet1.ApplyUpdates(-1);
end;
procedure TWebDataModule1.ClientDataSet1AfterDelete(DataSet: TDataSet);
begin
ClientDataSet1.ApplyUpdates(-1);
end;
initialization
if WebRequestHandler <> nil then
WebRequestHandler.AddWebModuleFactory(TWebDataModuleFactory.Create(TWebDataModule1, crAlways, caCache));
end.
| form_dm.pas |
unit form_dm;
interface
uses
Windows, Messages, SysUtils, Classes, HTTPApp, WebModu, HTTPProd,
CompProd, PagItems, SiteProd, MidItems, WebForm, WebComp;
type
Tformview = class(TWebPageModule)
AdapterPageProducer: TAdapterPageProducer;
AdapterForm1: TAdapterForm;
AdapterFieldGroup1: TAdapterFieldGroup;
AdapterCommandGroup1: TAdapterCommandGroup;
CmdDeleteRow: TAdapterActionButton;
CmdCancel: TAdapterActionButton;
CmdApply: TAdapterActionButton;
FldCUST_NO: TAdapterDisplayField;
FldCUSTOMER: TAdapterDisplayField;
FldADDRESS_LINE1: TAdapterDisplayField;
FldCITY: TAdapterDisplayField;
FldSTATE_PROVINCE: TAdapterDisplayField;
FldCOUNTRY: TAdapterDisplayField;
AdapterErrorList1: TAdapterErrorList;
private
public
end;
function formview: Tformview;
implementation
uses WebReq, WebCntxt, WebFact, Variants, table_dm;
function formview: Tformview;
begin
Result := Tformview(WebContext.FindModuleClass(Tformview));
end;
initialization
if WebRequestHandler <> nil then
WebRequestHandler.AddWebModuleFactory(TWebPageModuleFactory.Create(Tformview, TWebPageInfo.Create([], '.html'), crOnDemand, caCache));
end.
| wsnapform.dfm |
object Form1: TForm1
Left = 133
Top = 120
Width = 222
Height = 155
Caption = 'WSnapTable'
Color = clBtnFace
Font.Charset = DEFAULT_CHARSET
Font.Color = clWindowText
Font.Height = -11
Font.Name = 'MS Sans Serif'
Font.Style = []
OldCreateOrder = False
PixelsPerInch = 96
TextHeight = 13
end
| table_dm.dfm |
object table: Ttable
OldCreateOrder = False
PageProducer = AdapterPageProducer
AppServices = WebAppComponents
Left = 524
Top = 183
Height = 296
Width = 241
object AdapterPageProducer: TAdapterPageProducer
HTMLDoc.Strings = (
'<html>'
'<head>'
'</head>'
'<body>'
'<#STYLES><#WARNINGS><#SERVERSCRIPT>'
'</body>'
'</html>')
Left = 48
Top = 8
object AdapterForm1: TAdapterForm
object AdapterCommandGroup1: TAdapterCommandGroup
DisplayComponent = AdapterGrid1
object CmdPrevPage: TAdapterActionButton
ActionName = 'PrevPage'
Caption = 'Previous Page'
end
object CmdGotoPage: TAdapterActionButton
ActionName = 'GotoPage'
end
object CmdNextPage: TAdapterActionButton
ActionName = 'NextPage'
Caption = 'Next Page'
end
end
object AdapterGrid1: TAdapterGrid
TableAttributes.CellSpacing = 0
TableAttributes.CellPadding = 3
Adapter = DataSetAdapter1
AdapterMode = 'Browse'
object ColCUST_NO: TAdapterDisplayColumn
FieldName = 'CUST_NO'
end
object ColCUSTOMER: TAdapterDisplayColumn
FieldName = 'CUSTOMER'
end
object ColADDRESS_LINE1: TAdapterDisplayColumn
FieldName = 'ADDRESS_LINE1'
end
object ColCITY: TAdapterDisplayColumn
FieldName = 'CITY'
end
object ColSTATE_PROVINCE: TAdapterDisplayColumn
FieldName = 'STATE_PROVINCE'
end
object ColCOUNTRY: TAdapterDisplayColumn
FieldName = 'COUNTRY'
end
object AdapterCommandColumn1: TAdapterCommandColumn
Caption = 'COMMANDS'
object CmdEditRow: TAdapterActionButton
ActionName = 'EditRow'
Caption = 'Edit'
PageName = 'formview'
DisplayType = ctAnchor
end
object CmdDeleteRow: TAdapterActionButton
ActionName = 'DeleteRow'
Caption = 'Delete'
DisplayType = ctAnchor
end
end
end
object AdapterCommandGroup2: TAdapterCommandGroup
DisplayComponent = AdapterGrid1
object CmdNewRow: TAdapterActionButton
ActionName = 'NewRow'
Caption = 'New'
PageName = 'formview'
end
end
end
end
object WebAppComponents: TWebAppComponents
PageDispatcher = PageDispatcher
AdapterDispatcher = AdapterDispatcher
ApplicationAdapter = ApplicationAdapter
Left = 48
Top = 56
end
object ApplicationAdapter: TApplicationAdapter
ApplicationTitle = 'WSnapTable'
Left = 48
Top = 104
object TAdapterDefaultActions
end
object TAdapterDefaultFields
end
end
object PageDispatcher: TPageDispatcher
Left = 48
Top = 152
end
object AdapterDispatcher: TAdapterDispatcher
Left = 48
Top = 200
end
object DataSetAdapter1: TDataSetAdapter
DataSet = WebDataModule1.ClientDataSet1
PageSize = 6
Left = 144
Top = 16
object TAdapterDefaultActions
end
object TAdapterDefaultFields
end
end
end
| wsnapdata.dfm |
object WebDataModule1: TWebDataModule1
OldCreateOrder = False
Left = 500
Top = 109
Height = 283
Width = 235
object ClientDataSet1: TClientDataSet
Active = True
Aggregates = <>
AggregatesActive = True
Params = <>
ProviderName = 'DataSetProvider1'
AfterPost = ClientDataSet1AfterPost
AfterDelete = ClientDataSet1AfterDelete
Left = 64
Top = 32
end
object SQLConnection1: TSQLConnection
Connected = True
ConnectionName = 'IBLocal'
DriverName = 'Interbase'
GetDriverFunc = 'getSQLDriverINTERBASE'
LibraryName = 'dbexpint.dll'
LoginPrompt = False
Params.Strings = (
'BlobSize=-1'
'CommitRetain=False'
'Database=c:\program files\interbase corp\interbase6\examples\dat' +
'abase\employee.gdb'
'DriverName=Interbase'
'Password=masterkey'
'RoleName=RoleName'
'ServerCharSet=ASCII'
'SQLDialect=1'
'Interbase TransIsolation=ReadCommited'
'User_Name=sysdba'
'WaitOnLocks=True')
VendorLib = 'GDS32.DLL'
Left = 64
Top = 168
end
object SQLDataSet1: TSQLDataSet
SQLConnection = SQLConnection1
CommandText =
'select CUST_NO, CUSTOMER, ADDRESS_LINE1, CITY, STATE_PROVINCE, C' +
'OUNTRY from CUSTOMER'
Params = <>
Left = 64
Top = 120
end
object DataSetProvider1: TDataSetProvider
DataSet = SQLDataSet1
Constraints = True
Left = 64
Top = 80
end
end
| form_dm.dfm |
object formview: Tformview
OldCreateOrder = False
PageProducer = AdapterPageProducer
Left = 297
Top = 213
Height = 150
Width = 215
object AdapterPageProducer: TAdapterPageProducer
HTMLDoc.Strings = (
'<html>'
'<head>'
'</head>'
'<body>'
'<#STYLES><#WARNINGS><#SERVERSCRIPT>'
'</body>'
'</html>')
Left = 48
Top = 8
object AdapterForm1: TAdapterForm
object AdapterErrorList1: TAdapterErrorList
Adapter = table.DataSetAdapter1
end
object AdapterCommandGroup1: TAdapterCommandGroup
DisplayComponent = AdapterFieldGroup1
object CmdApply: TAdapterActionButton
ActionName = 'Apply'
PageName = 'table'
end
object CmdCancel: TAdapterActionButton
ActionName = 'Cancel'
PageName = 'table'
end
object CmdDeleteRow: TAdapterActionButton
ActionName = 'DeleteRow'
Caption = 'Delete'
PageName = 'table'
end
end
object AdapterFieldGroup1: TAdapterFieldGroup
Adapter = table.DataSetAdapter1
AdapterMode = 'Edit'
object FldCUST_NO: TAdapterDisplayField
DisplayWidth = 10
FieldName = 'CUST_NO'
end
object FldCUSTOMER: TAdapterDisplayField
DisplayWidth = 27
FieldName = 'CUSTOMER'
end
object FldADDRESS_LINE1: TAdapterDisplayField
DisplayWidth = 32
FieldName = 'ADDRESS_LINE1'
end
object FldCITY: TAdapterDisplayField
DisplayWidth = 27
FieldName = 'CITY'
end
object FldSTATE_PROVINCE: TAdapterDisplayField
DisplayWidth = 17
FieldName = 'STATE_PROVINCE'
end
object FldCOUNTRY: TAdapterDisplayField
DisplayWidth = 17
FieldName = 'COUNTRY'
end
end
end
end
end
|
|