⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 cformcorplist.pas

📁 人力资源的信息。其他人不需帐号就可自由下载此源码
💻 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 + -