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

📄 cwa500_04.pas.svn-base

📁 这是一个功能齐全的,代码完整的ERP企业信息管理系统,现在上传和大家分享
💻 SVN-BASE
📖 第 1 页 / 共 2 页
字号:
unit Cwa500_04;

interface

uses
  Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
  Bas100_01, ComCtrls, ToolWin, StdCtrls, Buttons, ExtCtrls, Grids,
  Db, dxExEdtr, dxCntner, dxTL, dxDBCtrl,
  dxDBGrid, ActnList, Menus, ADODB, FR_DSet, FR_DBSet, FR_Class,
  wwdbdatetimepicker;

type
  TCwa500_04Form = class(TBas100_01Form)
    Panel1: TPanel;
    Image1: TImage;
    lblYear: TLabel;
    lblMonth: TLabel;
    cbYear: TComboBox;
    cbMonth: TComboBox;
    CoolBar1: TCoolBar;
    ToolBar2: TToolBar;
    tlbFirst: TToolButton;
    tlbPrior: TToolButton;
    tlbNext: TToolButton;
    tlbLast: TToolButton;
    ToolButton1: TToolButton;
    tlbSave: TToolButton;
    tlbCancel: TToolButton;
    ToolButton3: TToolButton;
    tlbLocate: TToolButton;
    ToolButton5: TToolButton;
    tlbExit: TToolButton;
    dsCwa500: TDataSource;
    lblDept: TLabel;
    cbDepart: TComboBox;
    ActionList1: TActionList;
    ActFirst: TAction;
    ActPrior: TAction;
    ActNext: TAction;
    ActLast: TAction;
    ActSave: TAction;
    ActCancel: TAction;
    ActLocate: TAction;
    ActSearch: TAction;
    ActPrint: TAction;
    ActExport: TAction;
    ActExit: TAction;
    tlbSearch: TToolButton;
    tlbPrint: TToolButton;
    PopupMenu1: TPopupMenu;
    mmiPrint: TMenuItem;
    mmiExport: TMenuItem;
    SaveDialog1: TSaveDialog;
    qryCwa500: TADODataSet;
    qryCwa150: TADOQuery;
    ScrollBox1: TScrollBox;
    dxDBGrid1: TdxDBGrid;
    lblType: TLabel;
    cbType: TComboBox;
    lblEmp: TLabel;
    lblDate: TLabel;
    dtDate: TwwDBDateTimePicker;
    edtEmp: TEdit;
    sbEmp: TSpeedButton;
    qryHrm150: TADOQuery;
    qryHrm150H150_001: TAutoIncField;
    qryHrm150H150_002: TStringField;
    qryHrm150H150_003: TStringField;
    procedure FormCreate(Sender: TObject);
    procedure FormClose(Sender: TObject; var Action: TCloseAction);
    procedure cbYearChange(Sender: TObject);
    procedure cbMonthChange(Sender: TObject);
    procedure cbDepartChange(Sender: TObject);
    procedure ActFirstExecute(Sender: TObject);
    procedure ActPriorExecute(Sender: TObject);
    procedure ActNextExecute(Sender: TObject);
    procedure ActLastExecute(Sender: TObject);
    procedure ActSaveExecute(Sender: TObject);
    procedure ActCancelExecute(Sender: TObject);
    procedure ActLocateExecute(Sender: TObject);
    procedure ActSearchExecute(Sender: TObject);
    procedure ActPrintExecute(Sender: TObject);
    procedure ActExportExecute(Sender: TObject);
    procedure ActExitExecute(Sender: TObject);
    procedure dsCwa500StateChange(Sender: TObject);
    procedure qryCwa500FilterRecord(DataSet: TDataSet;
      var Accept: Boolean);
    procedure cbTypeChange(Sender: TObject);
    procedure sbEmpClick(Sender: TObject);
    procedure edtEmpExit(Sender: TObject);
    procedure edtEmpKeyDown(Sender: TObject; var Key: Word;
      Shift: TShiftState);
  private
    ADeptNo:Integer;
    AStartDate,AEndDate:TDateTime;
    APeriod:Integer;
    procedure SetInterface;
    procedure SaveByDate;
    procedure SaveByEmp;
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Cwa500_04Form: TCwa500_04Form;

implementation

uses CommFun, SYSDATA, HwSelData, HwPrint, Wait;

{$R *.DFM}

procedure TCwa500_04Form.SetInterface;
begin
  Image1.Picture.Bitmap.LoadFromResourceName(AImgHandle,'TOPTITL');
  ActFirst.Caption:=GetDBString('COM00005001');  //最前
  ActPrior.Caption:=GetDBString('COM00005002');  //上移
  ActNext.Caption:=GetDBString('COM00005003');  //下移
  ActLast.Caption:=GetDBString('COM00005004');  //最后
  ActSave.Caption:=GetDBString('COM00005008');  //保存
  ActCancel.Caption:=GetDBString('COM00005009');  //取消
  ActLocate.Caption:=GetDBString('COM00005011');  //查找
  ActSearch.Caption:=GetDBString('COM00005012');  //查询
  ActPrint.Caption:=GetDBString('COM00005013');  //打印
  ActExport.Caption:=GetDBString('COM00005014');  //导出数据
  ActExit.Caption:=GetDBString('COM00005015');  //退出

  ActFirst.Hint:=GetDBString('COM00005001',2);  //移到第一条记录
  ActPrior.Hint:=GetDBString('COM00005002',2);  //移到上一条记录
  ActNext.Hint:=GetDBString('COM00005003',2);  //移到下一条记录
  ActLast.Hint:=GetDBString('COM00005004',2);  //移到最后一条记录
  ActSave.Hint:=GetDBString('COM00005008',2);  //保存编辑的记录
  ActCancel.Hint:=GetDBString('COM00005009',2);  //取消编辑的记录
  ActLocate.Hint:=GetDBString('COM00005011',2);  //快速定位记录
  ActSearch.Hint:=GetDBString('COM00005012',2);  //按条件查询数据
  ActPrint.Hint:=GetDBString('COM00005013',2);  //将数据打印出来
  ActExport.Hint:=GetDBString('COM00005014',2);  //导出数据到文件中
  ActExit.Hint:=GetDBString('COM00005015',2);  //关闭当前窗口

  Caption:=GetDBString('CWA50004001');  //快速录入
  lblType.Caption:=GetDBString('CWA50004002');  //类型
  lblYear.Caption:=GetDBString('CWA50004003');  //年份
  lblMonth.Caption:=GetDBString('CWA50004004');  //月份
  lblEmp.Caption:=GetDBString('CWA50004005');  //员工
  lblDate.Caption:=GetDBString('CWA50004006');  //日期
  lblDept.Caption:=GetDBString('CWA50004007');  //部门
end;

procedure TCwa500_04Form.FormCreate(Sender: TObject);
var
  ADate:TDateTime;
begin
  qryCwa150.Open;
  inherited;
  GetYears(cbYear);
  GetMonths(StrToInt(cbYear.Text),cbMonth);
  GetLocaleInfo(LOCALE_SYSTEM_DEFAULT, LOCALE_SSHORTDATE, ASystemDate, SizeOf(ASystemDate));
  ADate:=StrToDate(FormatDateTime(ASystemDate,GetServerDate));
  dtDate.Date:=ADate;
  qryHrm150.Open;
  edtEmp.Text:=qryHrm150H150_002.AsString;

  cbType.Clear;
  cbType.Items.Add(GetDBString('CWA50004009'));  //按日期
  cbType.Items.Add(GetDBString('CWA50004010'));  //按员工
  cbType.ItemIndex:=0;
  cbTypeChange(cbType);

  cbDepart.Items.Clear;
  cbDepart.Items.Add(GetDBString('COM00004007'));  //所有部门
  SYSDM.qryQuery.Close;
  SYSDM.qryQuery.SQL.Clear;
  SYSDM.qryQuery.SQL.Add('select H100_002 from HRM100 where H100_004='+GetBoolean(True));
  SYSDM.qryQuery.Open;
  while not SYSDM.qryQuery.Eof do
  begin
    cbDepart.Items.Add(SYSDM.qryQuery.Fields[0].AsString);
    SYSDM.qryQuery.Next;
  end;
  cbDepart.ItemIndex:=0;

  //设置界面信息
  SetInterface;
end;

procedure TCwa500_04Form.FormClose(Sender: TObject;
  var Action: TCloseAction);
begin
  inherited;
  if ActSave.Enabled then
  begin
    if ShowDialog('UMS10000007')=IDNO then  //数据尚未保存,现在保存吗?
      ActCancel.Execute
    else
      ActSave.Execute;
    Action:=cafree;
  end;
  qryCwa150.Close;
  qryCwa500.Close;
  Action:=cafree;
end;

procedure TCwa500_04Form.cbYearChange(Sender: TObject);
begin
  inherited;
  GetMonths(StrToInt(cbYear.Text),cbMonth);
  cbMonthChange(cbMonth);
end;

procedure TCwa500_04Form.cbMonthChange(Sender: TObject);
begin
  inherited;
  //取得期段的起始结束日期
  GetPeriodDate(cbYear.Text,cbMonth.Text,AStartDate,AEndDate,APeriod);
  if not qryCwa500.Active then Exit;
  while not qryCwa500.IsEmpty do qryCwa500.Delete;
  while AStartDate<=AEndDate do
  begin
    qryCwa500.Append;
    qryCwa500.Fields[0].Value:=AStartDate;
    qryCwa500.Post;
    AStartDate:=AStartDate+1;
  end;
  qryCwa500.First;
end;

procedure TCwa500_04Form.cbDepartChange(Sender: TObject);
begin
  inherited;
  SYSDM.qryQuery.Close;
  SYSDM.qryQuery.SQL.Clear;
  SYSDM.qryQuery.SQL.Add('select H100_001 from HRM100 where H100_002='+''''+cbDepart.Text+'''');
  SYSDM.qryQuery.Open;
  if SYSDM.qryQuery.IsEmpty then
    ADeptNo:=0
  else
    ADeptNo:=SYSDM.qryQuery.Fields[0].Value;
end;

procedure TCwa500_04Form.ActFirstExecute(Sender: TObject);
begin
  inherited;
//最前
  if qryCwa500.IsEmpty then Exit;
  qryCwa500.First;
  ActFirst.Enabled:=False;
  ActPrior.Enabled:=False;
  ActNext.Enabled:=True;
  ActLast.Enabled:=True;
end;

procedure TCwa500_04Form.ActPriorExecute(Sender: TObject);
begin
  inherited;
//上移
  if qryCwa500.IsEmpty then Exit;
  qryCwa500.Prior;
  ActNext.Enabled:=not qryCwa500.Eof;
  ActLast.Enabled:=not qryCwa500.Eof;
  ActFirst.Enabled:=not qryCwa500.Bof;
  ActPrior.Enabled:=not qryCwa500.Bof;
end;

procedure TCwa500_04Form.ActNextExecute(Sender: TObject);
begin
  inherited;
//下移
  if qryCwa500.IsEmpty then Exit;
  qryCwa500.Next;
  ActNext.Enabled:=not qryCwa500.Eof;
  ActLast.Enabled:=not qryCwa500.Eof;
  ActFirst.Enabled:=not qryCwa500.Bof;
  ActPrior.Enabled:=not qryCwa500.Bof;
end;

procedure TCwa500_04Form.ActLastExecute(Sender: TObject);
begin
  inherited;
//最后
  if qryCwa500.IsEmpty then Exit;
  qryCwa500.Last;
  ActNext.Enabled:=False;
  ActLast.Enabled:=False;
  ActFirst.Enabled:=True;
  ActPrior.Enabled:=True;
end;

procedure TCwa500_04Form.SaveByDate;
var
  ATypeNo,AUnitNo,AEmpNo:Integer;
  AFieldName,ATypeName:String;
  ADate:TDateTime;
  AFromTime,AToTime:String;
  ATime:Double;
  I:Integer;
begin
  AEmpNo:=GetValue('select H150_001 from HRM150 where H150_002='+''''+trim(edtEmp.Text)+'''');
  AFromTime:='00:00';
  AToTime:='00:00';
  qryCwa500.First;
  while not qryCwa500.Eof do
  begin
    ADate:=qryCwa500.Fields[0].Value;
    for I:=1 to qryCwa500.FieldCount-1 do
    begin
      if qryCwa500.Fields[I].IsNull then Exit;
      ATime:=qryCwa500.Fields[I].Value;
      if ATime<>0 then
      begin
        AFieldName:=qryCwa500.Fields[I].FieldName;
        ATypeNo:=GetValue('select C150_001 from CWA150 where C150_002='+''''+AFieldName+'''');
        ATypeName:=GetValue('select C150_003 from CWA150 where C150_002='+''''+AFieldName+'''');
        AUnitNo:=GetValue('select C150_005 from CWA150 where C150_002='+''''+AFieldName+'''');;
        SYSDM.qryQuery.Close;
        SYSDM.qryQuery.SQL.Clear;
        SYSDM.qryQuery.SQL.Add('delete from CWA500 where C500_001='+IntToStr(ATypeNo)+' and C500_004='+IntToStr(AEmpNo)+' and C500_005='+GetDateString(ADate)+' and C500_006='+''''+AFromTime+''''+' and C500_007='+''''+AToTime+'''');
        SYSDM.qryQuery.ExecSQL;
        SYSDM.qryQuery.Close;
        SYSDM.qryQuery.SQL.Clear;
        SYSDM.qryQuery.SQL.Add('insert into CWA500(C500_001,C500_002,C500_003,C500_004,C500_005,C500_006,C500_007,C500_008,C500_009,C500_010)');
        SYSDM.qryQuery.SQL.Add('select '+IntToStr(ATypeNo)+',null,'+''''+ATypeName+''''+','+IntToStr(AEmpNo)+','+GetDateString(ADate)+','+''''+AFromTime+''''+','+''''+AToTime+''''+','+FloatToStr(ATime)+','+IntToStr(AUnitNo)+',0');
        SYSDM.qryQuery.ExecSQL;
      end;
    end;
    qryCwa500.Next;
  end;
end;

procedure TCwa500_04Form.SaveByEmp;

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -