📄 cformcorplist.pas
字号:
{-----------------------------------------------------------------------------
Unit Name: CFormCorpList
Author: hubdog(陈省)
Purpose: 单位列表
BeginDate: 2002-6-28
History:
对于IWDbGrid来说:
要想标出当前记录所在行,要设定Options的dgIndicator为True
RowLimite限制当前Grid显示的数据条数,为0表示无限制,这时如果
数据太多,会自动出现一个滚动条。
翻页的实现是通过数据集MoveBy方法来实现的,但是同时必须将Grid.FromStart属性设定为False
Column.Text和Header属性不知道是干什么的?
LinkField可以将绑定的字段的值传给OnClick事件,可以用来定位数据集的游标
Note:注意Table有序号,但是Query就无法取得RecNo
-----------------------------------------------------------------------------}
unit CFormCorpList;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, CFormBase, CFrameMenu, IWControl, IWCompLabel, IWExtCtrls, jpeg,
IWGrids, IWDBGrids, IWDBStdCtrls, DB, ADODB, IWCompMemo, IWCompButton,
BetterADODataSet, CFormEditCorp;
type
TformCorpList = class(TformBase)
iwgCorp: TIWDBGrid;
iwnCorp: TIWDBNavigator;
iwdmChnInfo: TIWDBMemo;
iwdmEngInfo: TIWDBMemo;
iwbIWLabel1: TIWLabel;
iwbIWLabel2: TIWLabel;
iwbLastPage: TIWButton;
iwbNextPage: TIWButton;
iwbDelete: TIWButton;
procedure iwbLastPageClick(Sender: TObject);
procedure iwbNextPageClick(Sender: TObject);
procedure adotCorpNoGetText(Sender: TField; var Text: String;
DisplayText: Boolean);
procedure iwgCorpColumns1Click(ASender: TObject; const AValue: String);
procedure iwnCorpEdit(Sender: TObject);
procedure IWAppFormCreate(Sender: TObject);
procedure iwnCorpInsert(Sender: TObject);
procedure iwbDeleteClick(Sender: TObject);
private
{ Private declarations }
FEditForm:TformEditCorp;
public
{ Public declarations }
end;
var
formCorpList: TformCorpList;
implementation
uses DatamoduleUnit, IWAppForm, IWInit, IWTypes;
{$R *.dfm}
procedure TformCorpList.iwbLastPageClick(Sender: TObject);
begin
inherited;
//adoqCorp.MoveBy(-iwgCorp.RowLimit);
dmHR.badoCorp.MoveBy(-iwgCorp.RowLimit);
end;
procedure TformCorpList.iwbNextPageClick(Sender: TObject);
begin
inherited;
//adoqCorp.MoveBy(iwgCorp.RowLimit);
dmHR.badoCorp.MoveBy(iwgCorp.RowLimit);
end;
procedure TformCorpList.adotCorpNoGetText(Sender: TField; var Text: String;
DisplayText: Boolean);
begin
inherited;
Text:=IntToStr(Sender.DataSet.RecNo);
end;
procedure TformCorpList.iwgCorpColumns1Click(ASender: TObject;
const AValue: String);
var
Id:Integer;
begin
inherited;
//
Id:=StrToInt(AValue);
dmHR.badoCorp.Locate('CorpId',Id,[]);
end;
procedure TformCorpList.iwnCorpEdit(Sender: TObject);
begin
//inherited;
// 显示编辑窗体
FEditForm.EditMode:=emEdit;
FEditForm.CorpId:=dmhr.badoCorp.FieldByName('CorpId').AsInteger;
FEditForm.Show;
end;
procedure TformCorpList.IWAppFormCreate(Sender: TObject);
begin
inherited;
FEditForm:=TformEditCorp.Create(RWebApplication);
try
//adoqCorp.Active := True;
dmHR.badoCorp.Active:=True;
except
//Todo:增加错误反馈信息
end;
end;
procedure TformCorpList.iwnCorpInsert(Sender: TObject);
begin
//inherited;
// 显示编辑窗体
FEditForm.EditMode:=emInsert;
//FEditForm.CorpId:=dmhr.badoCorp.FieldByName('CorpId').AsInteger;
FEditForm.Show;
end;
procedure TformCorpList.iwbDeleteClick(Sender: TObject);
begin
inherited;
//因为IWDBNavigator默认情况下是先删除,然后才调用我们的事件,因此需要修改这一处理过程
//所以只好是用Button来实现
with dmHR do
begin
badoQuery.Active:=False;
badoQuery.CommandText:=format('Select count(*) as HumanCount from tblhuman where CorpID=%s', [badoCorp.FieldByName('CorpID').AsString]);
badoQuery.Active:=True;
if badoQuery.FieldByName('HumanCount').AsInteger>0 then
begin
WebApplication.ShowMessage('先删除该公司下所有的人员信息后才能删除该公司');
Exit;
end;
//Todo:加事务处理?
badoCorp.Delete;
end;
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -