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

📄 cwa500_01.pas.svn-base

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

interface

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

type
  TCwa500_01Form = class(TBas100_01Form)
    CoolBar1: TCoolBar;
    ToolBar2: TToolBar;
    tlbFirst: TToolButton;
    tlbPrior: TToolButton;
    tlbNext: TToolButton;
    tlbLast: TToolButton;
    ToolButton1: TToolButton;
    tlbInsert: TToolButton;
    tlbUpdate: TToolButton;
    tlbDelete: TToolButton;
    ToolButton2: TToolButton;
    tlbSave: TToolButton;
    tlbCancel: TToolButton;
    ToolButton3: TToolButton;
    tlbLocate: TToolButton;
    tlbPrint: TToolButton;
    tlbCheck: TToolButton;
    ToolButton4: TToolButton;
    tlbExit: TToolButton;
    Panel1: TPanel;
    Image1: TImage;
    PopupMenu1: TPopupMenu;
    mmiPrint: TMenuItem;
    mmiExport: TMenuItem;
    dsCwa500: TDataSource;
    lblYear: TLabel;
    lblMonth: TLabel;
    lblTypeName: TLabel;
    cbYear: TComboBox;
    cbMonth: TComboBox;
    cbType: TComboBox;
    tlbBatch: TToolButton;
    ToolButton5: TToolButton;
    PageControl1: TPageControl;
    TabSheet1: TTabSheet;
    TabSheet2: TTabSheet;
    sbOk: TSpeedButton;
    tlbQuick: TToolButton;
    ActionList1: TActionList;
    ActFirst: TAction;
    ActPrior: TAction;
    ActNext: TAction;
    ActLast: TAction;
    ActInsert: TAction;
    ActUpdate: TAction;
    ActDelete: TAction;
    ActSave: TAction;
    ActCancel: TAction;
    ActRefresh: TAction;
    ActLocate: TAction;
    ActSearch: TAction;
    ActPrint: TAction;
    ActExport: TAction;
    ActExit: TAction;
    SaveDialog1: TSaveDialog;
    qryCwa500: TADOQuery;
    ScrollBox1: TScrollBox;
    lblType: TLabel;
    lblEmpID: TLabel;
    lblDesc: TLabel;
    lblDate: TLabel;
    lblValue: TLabel;
    lblUnit: TLabel;
    lblReason: TLabel;
    SpeedButton1: TSpeedButton;
    SpeedButton2: TSpeedButton;
    SpeedButton3: TSpeedButton;
    lblTime: TLabel;
    edtDest: TDBEdit;
    edtValue: TDBEdit;
    edtUnit: TDBEdit;
    edtTypeID: TEdit;
    edtTypeName: TDBEdit;
    edtEmpID: TEdit;
    edtEmpName: TDBEdit;
    dtpDate: TwwDBDateTimePicker;
    edtReasonID: TEdit;
    edtReasonName: TDBEdit;
    tlbSearch: TToolButton;
    ActCheck: TAction;
    ActBatch: TAction;
    ActQuick: TAction;
    qryHrm150: TADOQuery;
    qryHrm150H150_001: TAutoIncField;
    qryHrm150H150_002: TStringField;
    qryHrm150H150_003: TStringField;
    qryCwa160: TADOQuery;
    qryCwa160C160_001: TAutoIncField;
    qryCwa160C160_002: TStringField;
    qryCwa160C160_003: TStringField;
    qryCwa150: TADOQuery;
    tlbRefresh: TToolButton;
    ScrollBox2: TScrollBox;
    dxDBGrid1: TdxDBGrid;
    pmGrid: TPopupMenu;
    qryCwa150C150_001: TAutoIncField;
    qryCwa150C150_002: TStringField;
    qryCwa150C150_003: TStringField;
    qryCwa150C150_004: TSmallintField;
    qryCwa150C150_005: TSmallintField;
    edtStartTime: TdxTimeEdit;
    edtEndTime: TdxTimeEdit;
    qryCwa500C500_001: TIntegerField;
    qryCwa500C500_002: TIntegerField;
    qryCwa500C500_003: TStringField;
    qryCwa500C500_004: TIntegerField;
    qryCwa500C500_005: TDateTimeField;
    qryCwa500C500_006: TStringField;
    qryCwa500C500_007: TStringField;
    qryCwa500C500_008: TFloatField;
    qryCwa500C500_009: TSmallintField;
    qryCwa500C500_010: TBooleanField;
    qryCwa500C150_002: TStringField;
    qryCwa500C150_003: TStringField;
    qryCwa500C160_002: TStringField;
    qryCwa500C160_003: TStringField;
    qryCwa500H150_002: TStringField;
    qryCwa500H150_003: TStringField;
    dxDBGrid1C150_002: TdxDBGridLookupColumn;
    dxDBGrid1C150_003: TdxDBGridLookupColumn;
    dxDBGrid1C160_002: TdxDBGridLookupColumn;
    dxDBGrid1C160_003: TdxDBGridLookupColumn;
    dxDBGrid1C500_003: TdxDBGridMaskColumn;
    dxDBGrid1H150_002: TdxDBGridLookupColumn;
    dxDBGrid1H150_003: TdxDBGridLookupColumn;
    dxDBGrid1C500_005: TdxDBGridDateColumn;
    dxDBGrid1C500_006: TdxDBGridMaskColumn;
    dxDBGrid1C500_007: TdxDBGridMaskColumn;
    dxDBGrid1C500_008: TdxDBGridMaskColumn;
    dxDBGrid1C500_009: TdxDBGridMaskColumn;
    dxDBGrid1C500_010: TdxDBGridCheckColumn;
    procedure FormCreate(Sender: TObject);
    procedure FormClose(Sender: TObject; var Action: TCloseAction);
    procedure cbYearChange(Sender: TObject);
    procedure ReportGetValue(const ParName: String;
      var ParValue: Variant);
    procedure SpeedButton1Click(Sender: TObject);
    procedure SpeedButton2Click(Sender: TObject);
    procedure SpeedButton3Click(Sender: TObject);
    procedure PageControl1Changing(Sender: TObject;
      var AllowChange: Boolean);
    procedure edtTypeIDExit(Sender: TObject);
    procedure edtEmpIDExit(Sender: TObject);
    procedure edtReasonIDExit(Sender: TObject);
    procedure edtTypeIDKeyDown(Sender: TObject; var Key: Word;
      Shift: TShiftState);
    procedure edtEmpIDKeyDown(Sender: TObject; var Key: Word;
      Shift: TShiftState);
    procedure edtReasonIDKeyDown(Sender: TObject; var Key: Word;
      Shift: TShiftState);
    procedure sbOkClick(Sender: TObject);
    procedure cbMonthChange(Sender: TObject);
    procedure cbTypeChange(Sender: TObject);
    procedure ActFirstExecute(Sender: TObject);
    procedure ActPriorExecute(Sender: TObject);
    procedure ActNextExecute(Sender: TObject);
    procedure ActLastExecute(Sender: TObject);
    procedure ActInsertExecute(Sender: TObject);
    procedure ActUpdateExecute(Sender: TObject);
    procedure ActDeleteExecute(Sender: TObject);
    procedure ActSaveExecute(Sender: TObject);
    procedure ActCancelExecute(Sender: TObject);
    procedure ActRefreshExecute(Sender: TObject);
    procedure ActLocateExecute(Sender: TObject);
    procedure ActSearchExecute(Sender: TObject);
    procedure ActPrintExecute(Sender: TObject);
    procedure ActExportExecute(Sender: TObject);
    procedure ActCheckExecute(Sender: TObject);
    procedure ActBatchExecute(Sender: TObject);
    procedure ActQuickExecute(Sender: TObject);
    procedure ActExitExecute(Sender: TObject);
    procedure qryCwa500AfterScroll(DataSet: TDataSet);
    procedure dxDBGrid1BackgroundDrawEvent(Sender: TObject;
      ACanvas: TCanvas; ARect: TRect);
    procedure qryCwa500C500_009GetText(Sender: TField; var Text: String;
      DisplayText: Boolean);
  private
    ATypeNo:Integer;
    AStartDate,AEndDate:TDateTime;
    APeriod:Integer;
    AUnit:array[0..5] of string;
    procedure SetButtonState(AInsUpd:Boolean);
    procedure SetInterface;
    procedure MenuItemClick(Sender: TObject);
    procedure CreatePopmeun(AGrid:TdxDBGrid);
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Cwa500_01Form: TCwa500_01Form;

implementation

uses HwSelData, CommFun, SYSDATA, Cwa500_02, Cwa500_03, Cwa500_04, Wait;

{$R *.DFM}

//自动计算时间
function GetTimes(AEmpNo:Integer;AStartDate,AEndDate:TDateTime;StartTime,EndTime:string):Double;
var
  ATime:array[1..6] of string;
  ATimeValue:array[1..6] of Integer;
  APerod1,APerod2:Integer;	//起始时间到A1时间段的数值   //结束时间到A1时间段的数值
begin
  //取员工班别的时间
  SYSDM.qryQuery.Close;
  SYSDM.qryQuery.SQL.Clear;
  SYSDM.qryQuery.SQL.Add('select C120_004,C120_005,C120_006,C120_007,C120_008,C120_009 from CWA120');
  SYSDM.qryQuery.SQL.Add('  where C120_001='+IntToStr(AEmpNo)+' and C120_003='+GetDateString(AStartDate));
  SYSDM.qryQuery.Open;
  ATime[1]:=SYSDM.qryQuery.FieldByName('C120_004').Value;
  ATime[2]:=SYSDM.qryQuery.FieldByName('C120_005').Value;
  ATime[3]:=SYSDM.qryQuery.FieldByName('C120_006').Value;
  ATime[4]:=SYSDM.qryQuery.FieldByName('C120_007').Value;
  ATime[5]:=SYSDM.qryQuery.FieldByName('C120_008').Value;
  ATime[6]:=SYSDM.qryQuery.FieldByName('C120_009').Value;

  ATimeValue[1]:=StrToInt(copy(ATime[1],1,2))*60+StrToInt(copy(ATime[1],4,2));
  ATimeValue[2]:=StrToInt(copy(ATime[2],1,2))*60+StrToInt(copy(ATime[2],4,2));
  ATimeValue[3]:=StrToInt(copy(ATime[3],1,2))*60+StrToInt(copy(ATime[3],4,2));
  ATimeValue[4]:=StrToInt(copy(ATime[4],1,2))*60+StrToInt(copy(ATime[4],4,2));
  ATimeValue[5]:=StrToInt(copy(ATime[5],1,2))*60+StrToInt(copy(ATime[5],4,2));
  ATimeValue[6]:=StrToInt(copy(ATime[6],1,2))*60+StrToInt(copy(ATime[6],4,2));
  
  if StartTime='' then
  begin
    if ATimeValue[1]<>0 then StartTime:=ATime[1]
    else if ATimeValue[3]<>0 then StartTime:=ATime[3]
    else if ATimeValue[5]<>0 then StartTime:=ATime[5];
  end;

  if EndTime='' then
  begin
    if ATimeValue[6]<>0 then EndTime:=ATime[6]
    else if ATimeValue[4]<>0 then EndTime:=ATime[4]
    else if ATimeValue[2]<>0 then EndTime:=ATime[2];
  end;

  //起始时间
  if StartTime<=ATime[1] then
  begin
    StartTime:=ATime[1];
    APerod1:=0;
  end else
  if StartTime<=ATime[2] then
  begin
    StartTime:=StartTime;
    APerod1:=StrToInt(copy(StartTime,1,2))*60+StrToInt(copy(StartTime,4,2))-ATimeValue[1];
  end else
  if StartTime<=ATime[3] then
  begin
    StartTime:=ATime[3];
    APerod1:=ATimeValue[2]-ATimeValue[1];
  end else
  if StartTime<=ATime[4] then
  begin
    StartTime:=StartTime;
    APerod1:=StrToInt(copy(StartTime,1,2))*60+StrToInt(copy(StartTime,4,2))-ATimeValue[3]+ATimeValue[2]-ATimeValue[1]
  end else
  if StartTime<=ATime[5] then
  begin
    StartTime:=ATime[5];
    APerod1:=ATimeValue[4]-ATimeValue[3]+ATimeValue[2]-ATimeValue[1];
  end else
  if StartTime<=ATime[6] then
  begin
    StartTime:=StartTime;
    APerod1:=StrToInt(copy(StartTime,1,2))*60+StrToInt(copy(StartTime,4,2))-ATimeValue[5]+ATimeValue[4]-ATimeValue[3]+ATimeValue[2]-ATimeValue[1]
  end else
  begin
    if ATimeValue[6]<>0 then StartTime:=ATime[6]
    else if ATimeValue[4]<>0 then StartTime:=ATime[4]
    else if ATimeValue[2]<>0 then StartTime:=ATime[2];
    APerod1:=ATimeValue[2]-ATimeValue[1]+ATimeValue[4]-ATimeValue[3]+ATimeValue[6]-ATimeValue[5];
  end;

  //结束时间
  if EndTime<=ATime[1] then
  begin
    EndTime:=ATime[1];
    APerod2:=0;
  end else
  if EndTime<=ATime[2] then
  begin
    EndTime:=EndTime;
    APerod2:=StrToInt(copy(EndTime,1,2))*60+StrToInt(copy(EndTime,4,2))-ATimeValue[1];
  end else
  if EndTime<=ATime[3] then
  begin
    EndTime:=ATime[3];
    APerod2:=ATimeValue[2]-ATimeValue[1];
  end else
  if EndTime<=ATime[4] then
  begin
    EndTime:=EndTime;
    APerod2:=StrToInt(copy(EndTime,1,2))*60+StrToInt(copy(EndTime,4,2))-ATimeValue[3]+ATimeValue[2]-ATimeValue[1];
  end else
  if EndTime<=ATime[5] then
  begin
    EndTime:=ATime[5];
    APerod2:=ATimeValue[4]-ATimeValue[3]+ATimeValue[2]-ATimeValue[1];
  end else
  if EndTime<=ATime[6] then
  begin
    EndTime:=EndTime;
    APerod2:=StrToInt(copy(EndTime,1,2))*60+StrToInt(copy(EndTime,4,2))-ATimeValue[5]+ATimeValue[4]-ATimeValue[3]+ATimeValue[2]-ATimeValue[1];
  end else
  begin
    if ATimeValue[6]<>0 then EndTime:=ATime[6]
    else if ATimeValue[4]<>0 then EndTime:=ATime[4]
    else if ATimeValue[2]<>0 then EndTime:=ATime[2];
    APerod2:=ATimeValue[2]-ATimeValue[1]+ATimeValue[4]-ATimeValue[3]+ATimeValue[6]-ATimeValue[5];
  end;
  Result:=APerod2-APerod1;
end;

//设置按钮状态
procedure TCwa500_01Form.SetButtonState(AInsUpd:Boolean);
begin
  ActFirst.Enabled:=not AInsUpd;
  ActPrior.Enabled:=not AInsUpd;
  ActNext.Enabled:=not AInsUpd;
  ActLast.Enabled:=not AInsUpd;
  ActInsert.Enabled:=(ARights[2]='Y') and (not AInsUpd);
  ActUpdate.Enabled:=(ARights[3]='Y') and (not AInsUpd);
  ActDelete.Enabled:=(ARights[4]='Y') and (not AInsUpd);
  ActSave.Enabled:=AInsUpd;
  ActCancel.Enabled:=AInsUpd;
  ActRefresh.Enabled:=not AInsUpd;
  ActLocate.Enabled:=not AInsUpd;
  ActSearch.Enabled:=not AInsUpd;
  ActPrint.Enabled:=(ARights[5]='Y') and (not AInsUpd);
  ActExport.Enabled:=(ARights[5]='Y') and (not AInsUpd);
  ActCheck.Enabled:=(ARights[7]='Y') and (not AInsUpd);
  ActBatch.Enabled:=(ARights[2]='Y') and (not AInsUpd);
  ActQuick.Enabled:=(ARights[2]='Y') and (not AInsUpd);
  ActExit.Enabled:=True;

  ScrollBox1.Enabled:=AInsUpd;
  Panel1.Enabled:=not AInsUpd;
  if AInsUpd then PageControl1.ActivePageIndex:=1;
end;

procedure TCwa500_01Form.SetInterface;
begin
  Image1.Picture.Bitmap.LoadFromResourceName(AImgHandle,'TOPTITL');
  ActFirst.Caption:=GetDBString('COM00005001');  //最前
  ActPrior.Caption:=GetDBString('COM00005002');  //上移
  ActNext.Caption:=GetDBString('COM00005003');  //下移
  ActLast.Caption:=GetDBString('COM00005004');  //最后
  ActInsert.Caption:=GetDBString('COM00005005');  //新增
  ActUpdate.Caption:=GetDBString('COM00005006');  //修改
  ActDelete.Caption:=GetDBString('COM00005007');  //删除
  ActSave.Caption:=GetDBString('COM00005008');  //保存
  ActCancel.Caption:=GetDBString('COM00005009');  //取消

⌨️ 快捷键说明

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