unit Ueditdb;
interface
uses
SysUtils, Classes, HTTPApp, WebModu, HTTPProd, WebAdapt, WebComp,
DBAdapt, CompProd, PagItems, SiteProd, MidItems, WebForm;
type
Teditdb = class(TWebPageModule)
DataSetAdapter1: TDataSetAdapter;
AdapterPageProducer1: TAdapterPageProducer;
AdapterForm1: TAdapterForm;
AdapterFieldGroup1: TAdapterFieldGroup;
AdapterCommandGroup1: TAdapterCommandGroup;
CmdApply: TAdapterActionButton;
DataSetValuesList1: TDataSetValuesList;
FldCustNo: TAdapterDisplayField;
FldCompany: TAdapterDisplayField;
FldAddr1: TAdapterDisplayField;
FldAddr2: TAdapterDisplayField;
FldCity: TAdapterDisplayField;
FldState: TAdapterDisplayField;
FldZip: TAdapterDisplayField;
FldCountry: TAdapterDisplayField;
FldPhone: TAdapterDisplayField;
FldFAX: TAdapterDisplayField;
FldTaxRate: TAdapterDisplayField;
FldContact: TAdapterDisplayField;
FldLastInvoiceDate: TAdapterDisplayField;
AdaptCustNo: TDataSetAdapterField;
AdaptCompany: TDataSetAdapterField;
AdaptAddr1: TDataSetAdapterField;
AdaptAddr2: TDataSetAdapterField;
AdaptCity: TDataSetAdapterField;
AdaptState: TDataSetAdapterField;
AdaptZip: TDataSetAdapterField;
AdaptCountry: TDataSetAdapterField;
AdaptPhone: TDataSetAdapterField;
AdaptFAX: TDataSetAdapterField;
AdaptTaxRate: TDataSetAdapterField;
AdaptContact: TDataSetAdapterField;
AdaptLastInvoiceDate: TDataSetAdapterField;
Adapter1: TAdapter;
Aquery: TAdapterAction;
VqeryCustno: TAdapterField;
AdapterFieldGroup2: TAdapterFieldGroup;
AdapterCommandGroup2: TAdapterCommandGroup;
CmdAquery: TAdapterActionButton;
AdapterErrorList1: TAdapterErrorList;
FldVqeryCustno: TAdapterDisplayField;
procedure AqueryExecute(Sender: TObject; Params: TStrings);
private
{ Private declarations }
public
{ Public declarations }
end;
function editdb: Teditdb;
implementation
{$R *.dfm} {*.html}
uses WebReq, WebCntxt, WebFact, Variants, Udatabase;
function editdb: Teditdb;
begin
Result := Teditdb(WebContext.FindModuleClass(Teditdb));
end;
procedure Teditdb.AqueryExecute(Sender: TObject; Params: TStrings);
var
LocateParams:TLocateParams;
begin
//use dataset
//wdmData.Table1.Open;
//wdmData.Table1.Locate('CustNo',AdaptEnterCustNo.ActionValue.Values[0],[]);
//use dataset Adapter
LocateParams:=DataSetAdapter1.LocateParamsList.Add;
LocateParams.AddParam('CustNo',VqeryCustno.ActionValue.Values[0]);
LocateParams.AdapterName:=DataSetAdapter1.Name;
If not DataSetAdapter1.Locate then
Adapter1.Errors.AddError('该用户编号不存在 '+VqeryCustno.ActionValue.Values[0]);
end;
initialization
if WebRequestHandler <> nil then
WebRequestHandler.AddWebModuleFactory(TWebPageModuleFactory.Create(Teditdb, TWebPageInfo.Create([wpPublished , wpLoginRequired], '.html', '', '修改数据'), crOnDemand, caCache)
);
end.
//////
unit Ujisuan;
interface
uses
SysUtils, Classes, HTTPApp, WebModu, HTTPProd, WebComp, WebAdapt;
type
Tjisuan = class(TWebPageModule)
PageProducer: TPageProducer;
Adapter1: TAdapter;
Fresult: TAdapterField;
Fjisuan: TAdapterField;
Aadd: TAdapterAction;
AdapterImageField1: TAdapterImageField;
procedure AaddExecute(Sender: TObject; Params: TStrings);
procedure AaddGetParams(Sender: TObject; Params: TStrings);
procedure FjisuanGetValue(Sender: TObject; var Value: Variant);
procedure FresultGetValue(Sender: TObject; var Value: Variant);
procedure WebPageModuleActivate(Sender: TObject);
private
{ Private declarations }
Vcount : integer;
public
{ Public declarations }
end;
function jisuan: Tjisuan;
implementation
{$R *.dfm} {*.html}
uses WebReq, WebCntxt, WebFact, Variants;
function jisuan: Tjisuan;
begin
Result := Tjisuan(WebContext.FindModuleClass(Tjisuan));
end;
procedure Tjisuan.AaddExecute(Sender: TObject; Params: TStrings);
begin
VCount := StrToInt(Params.Values['Count']);
try
VCount := VCount + Fjisuan.ActionValue.Values[0];
except
on E: Exception do
Adapter1.Errors.AddError(E);
end;
end;
procedure Tjisuan.AaddGetParams(Sender: TObject; Params: TStrings);
begin
Params.Add(Format('Count=%d', [VCount]));
end;
procedure Tjisuan.FjisuanGetValue(Sender: TObject; var Value: Variant);
begin
if Fjisuan.ActionValue <> nil then
Value := Fjisuan.ActionValue.Values[0]
end;
procedure Tjisuan.FresultGetValue(Sender: TObject; var Value: Variant);
begin
Value:= VCount ;
end;
procedure Tjisuan.WebPageModuleActivate(Sender: TObject);
begin
VCount := 0;
end;
initialization
if WebRequestHandler <> nil then
WebRequestHandler.AddWebModuleFactory(TWebPageModuleFactory.Create(Tjisuan, TWebPageInfo.Create([wpPublished {, wpLoginRequired}], '.html', '', '加减计数'), crOnDemand, caCache)
);
end.
///////
//Ujisuan.html
<html>
<head>
<title>
<%= Page.Title %>
</title>
</head>
<body>
<h1><%= Application.Title %></h1>
<% if (EndUser.Logout != null) { %>
<% if (EndUser.DisplayName != '') { %>
<h1>Welcome <%=EndUser.DisplayName %></h1>
<% } %>
<% if (EndUser.Logout.Enabled) { %>
<a href="<%=EndUser.Logout.AsHREF%>">Logout</a>
<% } %>
<% if (EndUser.LoginForm.Enabled) { %>
<a href=<%=EndUser.LoginForm.AsHREF%>>Login</a>
<% } %>
<% } %>
<h2><%= Page.Title %></h2>
<table cellspacing="0" cellpadding="0">
<td>
<% e = new Enumerator(Pages)
s = ''
c = 0
for (; !e.atEnd(); e.moveNext())
{
if (e.item().Published)
{
if (c>0) s += ' | '
if (Page.Name != e.item().Name)
s += '<a href="' + e.item().HREF + '">' + e.item().Title + '</a>'
else
s += e.item().Title
c++
}
}
if (c>1) Response.Write(s)
%>
</td>
</table>
<FORM NAME="F" METHOD=POST>
<INPUT TYPE=HIDDEN NAME="__action">
<INPUT TYPE=INPUT VALUE= "<%=Adapter1.Fjisuan.EditText%>" NAME="<%=Adapter1.Fjisuan.InputName%>">
<BR>
<INPUT TYPE=SUBMIT VALUE="<%=Adapter1.Aadd.DisplayLabel%>"
onclick="F.__action.value='<%=Adapter1.Aadd.AsFieldValue%>'">
<H2>结果: <%=Adapter1.Fresult.DisplayText %></H2>
</FORM>
</body>
</html>
应用WebSnap常用组件
最新推荐文章于 2025-10-10 12:43:58 发布
本文介绍了一个用于网页的数据编辑模块,该模块使用了多种组件和技术,如TWebPageModule、TDataSetAdapter等,实现数据的展示、编辑及错误处理等功能。
170

被折叠的 条评论
为什么被折叠?



