📄 intraweb开发指南.htm
字号:
lang=EN-US>emInsert</SPAN><SPAN
style="FONT-FAMILY: 宋体">。下面是代码实现:</SPAN></P>
<P><SPAN lang=EN-US>//</SPAN><SPAN
style="FONT-FAMILY: 宋体">修改公司信息</SPAN></P>
<P><SPAN lang=EN-US>procedure TformCorpList.iwnCorpEdit(Sender:
TObject);</SPAN></P>
<P><SPAN lang=EN-US>begin</SPAN></P>
<P><SPAN lang=EN-US> //inherited;//</SPAN><SPAN
style="FONT-FAMILY: 宋体">注意这里不要调用</SPAN><SPAN
lang=EN-US>TIWDBNavigator</SPAN><SPAN
style="FONT-FAMILY: 宋体">默认的方法</SPAN></P>
<P><SPAN lang=EN-US> FEditForm.EditMode:=emEdit;</SPAN></P>
<P><SPAN lang=EN-US>
FEditForm.CorpId:=dmhr.badoCorp.FieldByName('CorpId').AsInteger;//</SPAN><SPAN
style="FONT-FAMILY: 宋体">传递键值进去</SPAN></P>
<P><SPAN lang=EN-US> // </SPAN><SPAN
style="FONT-FAMILY: 宋体">显示编辑窗体</SPAN></P>
<P><SPAN lang=EN-US> FEditForm.Show;</SPAN></P>
<P><SPAN lang=EN-US>end;</SPAN></P>
<P><SPAN lang=EN-US>//</SPAN><SPAN
style="FONT-FAMILY: 宋体">添加公司信息</SPAN></P>
<P><SPAN lang=EN-US>procedure TformCorpList.iwnCorpInsert(Sender:
TObject);</SPAN></P>
<P><SPAN lang=EN-US>begin</SPAN></P>
<P><SPAN lang=EN-US> //inherited;</SPAN></P>
<P><SPAN lang=EN-US> FEditForm.EditMode:=emInsert;</SPAN></P>
<P><SPAN lang=EN-US> // </SPAN><SPAN
style="FONT-FAMILY: 宋体">显示编辑窗体</SPAN></P>
<P><SPAN lang=EN-US> FEditForm.Show;</SPAN></P>
<P><SPAN lang=EN-US>end;</SPAN></P>
<P><SPAN
style="FONT-FAMILY: 宋体">对于删除的实现需要一些特殊处理,这里我们不能使用</SPAN><SPAN
lang=EN-US>TIWDBNavigator</SPAN><SPAN
style="FONT-FAMILY: 宋体">默认的</SPAN><SPAN
lang=EN-US>Delete</SPAN><SPAN
style="FONT-FAMILY: 宋体">按钮来实现,因为</SPAN><SPAN
lang=EN-US>Intraweb</SPAN><SPAN
style="FONT-FAMILY: 宋体">默认是先执行删除操作,然后才调用</SPAN><SPAN
lang=EN-US>OnClick</SPAN><SPAN
style="FONT-FAMILY: 宋体">事件,也就是说我们无法在删除前判断是否允许删除,因为公司下面可能会有很多的员工信息,当公司下员工数目不为零时,我们应该禁止删除公司,所以这里要用</SPAN><SPAN
lang=EN-US>Button</SPAN><SPAN
style="FONT-FAMILY: 宋体">来实现(注意:在</SPAN><SPAN lang=EN-US>intraweb
5.0.35</SPAN><SPAN
style="FONT-FAMILY: 宋体">版本中有这个问题,新的版本是否解决了我就不清楚了)。下面是删除的实现代码:</SPAN></P>
<P><SPAN lang=EN-US>procedure TformCorpList.iwbDeleteClick(Sender:
TObject);</SPAN></P>
<P><SPAN lang=EN-US>begin</SPAN></P>
<P><SPAN lang=EN-US> inherited;</SPAN></P>
<P><SPAN lang=EN-US> //</SPAN><SPAN
style="FONT-FAMILY: 宋体">因为</SPAN><SPAN
lang=EN-US>IWDBNavigator</SPAN><SPAN
style="FONT-FAMILY: 宋体">默认情况下是先删除,然后才调用我们的事件,因此需要修改这一</SPAN></P>
<P><SPAN lang=EN-US>//</SPAN><SPAN
style="FONT-FAMILY: 宋体">处理过程,所以只好是用</SPAN><SPAN
lang=EN-US>Button</SPAN><SPAN style="FONT-FAMILY: 宋体">来实现</SPAN></P>
<P><SPAN lang=EN-US> with dmHR do</SPAN></P>
<P><SPAN lang=EN-US> begin</SPAN></P>
<P><SPAN lang=EN-US>
badoQuery.Active:=False;</SPAN></P>
<P><SPAN lang=EN-US>
badoQuery.CommandText:=format('Select count(*) as HumanCount from
tblhuman where CorpID=%s',
[badoCorp.FieldByName('CorpID').AsString]);</SPAN></P>
<P><SPAN lang=EN-US>
badoQuery.Active:=True;</SPAN></P>
<P><SPAN lang=EN-US> if
badoQuery.FieldByName('HumanCount').AsInteger>0 then</SPAN></P>
<P><SPAN lang=EN-US> begin</SPAN></P>
<P><SPAN lang=EN-US>
WebApplication.ShowMessage('</SPAN><SPAN
style="FONT-FAMILY: 宋体">先删除该公司下所有的人员信息后才能删除该公司</SPAN><SPAN
lang=EN-US>');</SPAN></P>
<P><SPAN lang=EN-US> Exit;</SPAN></P>
<P><SPAN lang=EN-US> end;</SPAN></P>
<P><SPAN lang=EN-US> badoCorp.Delete;</SPAN></P>
<P><SPAN lang=EN-US> end;</SPAN></P>
<P><SPAN lang=EN-US>end;</SPAN></P>
<P><SPAN
style="FONT-FAMILY: 宋体">最后就是公司信息编辑界面的实现了,下面是编辑界面的示意图:</SPAN></P>
<P><SPAN lang=EN-US><IMG height=314
src="IntraWeb开发指南.files/image020.jpg" width=348
v:shapes="_x0000_i1034"> </SPAN></P>
<P><SPAN
style="FONT-FAMILY: 宋体">如果当前编辑操作是添加的话,需要设定界面上的信息为空,如果为编辑则要获得公司信息,填充界面编辑框,下面是实现代码:</SPAN></P>
<P><SPAN lang=EN-US>const</SPAN></P>
<P><SPAN lang=EN-US> sCorpIdNotFound = '</SPAN><SPAN
style="FONT-FAMILY: 宋体">无法找到相应的公司信息</SPAN><SPAN
lang=EN-US>!';</SPAN></P>
<P><SPAN lang=EN-US>procedure TformEditCorp.SetCorpId(const Value:
Integer);</SPAN></P>
<P><SPAN lang=EN-US>begin</SPAN></P>
<P><SPAN lang=EN-US> FCorpId := Value;</SPAN></P>
<P><SPAN lang=EN-US> //</SPAN><SPAN
style="FONT-FAMILY: 宋体">更新界面上的编辑框</SPAN></P>
<P><SPAN lang=EN-US> if not dmHR.badoCorp.Locate('CorpId',
Value, []) then</SPAN></P>
<P><SPAN lang=EN-US> raise
Exception.Create(sCorpIdNotFound);</SPAN></P>
<P><SPAN lang=EN-US> with dmHR.badoCorp do</SPAN></P>
<P><SPAN lang=EN-US> begin</SPAN></P>
<P><SPAN lang=EN-US> iweChnName.Text :=
FieldByName('ChnName').AsString;</SPAN></P>
<P><SPAN lang=EN-US> iweEngName.Text :=
FieldByName('EngName').AsString;</SPAN></P>
<P><SPAN lang=EN-US> iwePhone.Text :=
FieldByName('Phone').AsString;</SPAN></P>
<P><SPAN lang=EN-US> iweFax.Text :=
FieldByName('Fax').AsString;</SPAN></P>
<P><SPAN lang=EN-US> iwmChnInfo.Lines.Text :=
FieldByName('ChnInfo').AsString;</SPAN></P>
<P><SPAN lang=EN-US> iwmEngInfo.Lines.Text :=
FieldByName('EngInfo').AsString;</SPAN></P>
<P><SPAN lang=EN-US> iwmComments.Lines.Text :=
FieldByName('Comments').AsString;</SPAN></P>
<P><SPAN lang=EN-US> end;</SPAN></P>
<P><SPAN lang=EN-US>end;</SPAN></P>
<P><SPAN lang=EN-US>procedure TformEditCorp.SetEditMode(const Value:
TEditMode);</SPAN></P>
<P><SPAN lang=EN-US>begin</SPAN></P>
<P><SPAN lang=EN-US> FEditMode := Value;</SPAN></P>
<P><SPAN lang=EN-US> case FEditMode of</SPAN></P>
<P><SPAN lang=EN-US> emEdit: iwlTitle.Caption :=
'</SPAN><SPAN style="FONT-FAMILY: 宋体">编辑公司信息</SPAN><SPAN
lang=EN-US>';</SPAN></P>
<P><SPAN lang=EN-US> emInsert:</SPAN></P>
<P><SPAN lang=EN-US> begin</SPAN></P>
<P><SPAN lang=EN-US>
iwbEdit.Caption := '</SPAN><SPAN
style="FONT-FAMILY: 宋体">增加公司</SPAN><SPAN lang=EN-US>';</SPAN></P>
<P><SPAN lang=EN-US>
iweChnName.Text := '';</SPAN></P>
<P><SPAN lang=EN-US>
iweEngName.Text := '';</SPAN></P>
<P><SPAN lang=EN-US>
iwePhone.Text := '';</SPAN></P>
<P><SPAN lang=EN-US>
iweFax.Text := '';</SPAN></P>
<P><SPAN lang=EN-US>
iwmChnInfo.Lines.Text := '';</SPAN></P>
<P><SPAN lang=EN-US>
iwmEngInfo.Lines.Text := '';</SPAN></P>
<P><SPAN lang=EN-US>
iwmComments.Lines.Text := '';</SPAN></P>
<P><SPAN lang=EN-US> end;</SPAN></P>
<P><SPAN lang=EN-US> end;</SPAN></P>
<P><SPAN lang=EN-US>end;</SPAN></P>
<P><SPAN lang=EN-US>procedure TformEditCorp.iwbEditClick(Sender:
TObject);</SPAN></P>
<P><SPAN lang=EN-US>var</SPAN></P>
<P><SPAN lang=EN-US> S:String;</SPAN></P>
<P><SPAN lang=EN-US>begin</SPAN></P>
<P><SPAN lang=EN-US> case EditMode of</SPAN></P>
<P><SPAN lang=EN-US> emEdit:</SPAN></P>
<P><SPAN lang=EN-US> with dmHR
do</SPAN></P>
<P><SPAN lang=EN-US> begin</SPAN></P>
<P><SPAN lang=EN-US>
adocHR.BeginTrans;</SPAN></P>
<P><SPAN lang=EN-US>
try</SPAN></P>
<P><SPAN
lang=EN-US>
//</SPAN><SPAN style="FONT-FAMILY: 宋体">这里直接用</SPAN><SPAN
lang=EN-US>Sql</SPAN><SPAN style="FONT-FAMILY: 宋体">来实现的</SPAN></P>
<P><SPAN
lang=EN-US>
adocEdit.CommandText :=</SPAN></P>
<P><SPAN lang=EN-US>format('Update TblCorp Set ChnName=''%s'',
EngName=''%s'', Fax=''%s'', </SPAN></P>
<P><SPAN lang=EN-US>Phone=''%s'', ChnInfo=''%s'', EngInfo=''%s'',
Comments=''%s'' Where </SPAN></P>
<P><SPAN lang=EN-US>CorpID=%d', [iweChnName.text, iweEngName.text,
iweFax.Text, iwePhone.Text,</SPAN></P>
<P><SPAN lang=EN-US>iwmChninfo.Lines.Text, iwmEngInfo.Lines.Text,
iwmComments.Lines.Text, </SPAN></P>
<P><SPAN lang=EN-US>CorpId]);</SPAN></P>
<P><SPAN
lang=EN-US>
adocEdit.Execute;</SPAN></P>
<P><SPAN
lang=EN-US>
adocHR.CommitTrans;</SPAN></P>
<P><SPAN
lang=EN-US>
badoCorp.Refresh;</SPAN></P>
<P><SPAN lang=EN-US>
except</SPAN></P>
<P><SPAN
lang=EN-US>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -