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

📄 projectfrm.pas

📁 考勤管理是企业内部管理的重要环节和基础
💻 PAS
字号:
unit ProjectFrm;

interface

uses
  Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
  Childfrm, Buttons, Grids, DBGrids, ComCtrls, StdCtrls, ExtCtrls, DBCtrls, DB;

resourcestring
  sDefine='公式定义';
  sBasePay='底薪';
  sPiecePay='计件工资';

type
  TProjectForm = class(TChildform)
    BitBtn1: TBitBtn;
    PageControl1: TPageControl;
    TabSheet1: TTabSheet;
    TabSheet2: TTabSheet;
    DBGrid2: TDBGrid;
    SpeedButton1: TSpeedButton;
    SpeedButton2: TSpeedButton;
    btDelete: TBitBtn;
    btEdit: TBitBtn;
    btAdd: TBitBtn;
    GroupBox1: TGroupBox;
    Button1: TButton;
    Button2: TButton;
    DBGrid1: TDBGrid;
    GroupBox2: TGroupBox;
    GroupBox3: TGroupBox;
    GroupBox4: TGroupBox;
    cbProjectName: TListBox;
    btInc: TButton;
    btDec: TButton;
    btMod: TButton;
    btDiv: TButton;
    btLeft: TButton;
    btRight: TButton;
    Button3: TButton;
    DBMemo1: TDBMemo;
    procedure Scroll(Sender:TDataSet);
    procedure btDeleteClick(Sender: TObject);
    procedure btAddClick(Sender: TObject);
    procedure btEditClick(Sender: TObject);
    procedure SpeedButton1Click(Sender: TObject);
    procedure Button1Click(Sender: TObject);
    procedure Button2Click(Sender: TObject);
    procedure PageControl1Change(Sender: TObject);
    procedure cbProjectNameDblClick(Sender: TObject);
    procedure btIncClick(Sender: TObject);
    procedure btDecClick(Sender: TObject);
    procedure btModClick(Sender: TObject);
    procedure btDivClick(Sender: TObject);
    procedure btLeftClick(Sender: TObject);
    procedure btRightClick(Sender: TObject);
    procedure FormCreate(Sender: TObject);
    procedure Button3Click(Sender: TObject);
    procedure SpeedButton2Click(Sender: TObject);
    procedure FormCloseQuery(Sender: TObject; var CanClose: Boolean);
  private
    A1, A2, B1, B2 : integer;
    A3, A6, B3, B6 : String;
    A4, A5, A7, B4, B5, B7 : Boolean;
    { Private declarations }
  public
    { Public declarations }
  end;

var
  ProjectForm: TProjectForm;

implementation

uses unDM2, ProjectEditFrm, FormualFrm, Dialog;

{$R *.DFM}

procedure TProjectForm.Scroll(Sender:TDataSet);
begin
  GroupBox2.Caption:=DM2.tblFormulaName.Value+Pchar(sDefine);
end;

procedure TProjectForm.btDeleteClick(Sender: TObject);
begin
  inherited;
  DM2.tblProject.Delete;
end;

procedure TProjectForm.btAddClick(Sender: TObject);
begin
  inherited;
  ProjectEditForm:=TProjectEditForm.Create(Self);
  DM2.tblProject.append;
  ProjectEditForm.showModalPopup(0);
end;

procedure TProjectForm.btEditClick(Sender: TObject);
begin
  inherited;
  ProjectEditForm:=TProjectEditForm.Create(Self);
  if DM2.tblProjectProjectNo.Value='CQ' then begin
    ProjectEditForm.DBEdit1.ReadOnly:=True;
    ProjectEditForm.dbrgDirection.ReadOnly:=True;
  end;
  ProjectEditForm.showModalPopup(1);
end;

procedure TProjectForm.SpeedButton1Click(Sender: TObject);
begin
  inherited;
  B1 := DM2.tblProjectLabNo.Value;
  A2 := DM2.tblProjectProjectID.Value;
  A3 := DM2.tblProjectProjectName.Value;
  A4 := DM2.tblProjectDirection.Value;
  A5 := DM2.tblProjectDeleteFlag.Value;
  A6 := DM2.tblProjectProjectNo.Value;
  A7 := DM2.tblProjectUsed.Value;
  DM2.tblProject.Prior;
  if DM2.tblProjectProjectNo.Value='' then begin
    DM2.tblProject.Next;
    abort;
  end else begin
    A1 := DM2.tblProjectLabNo.Value;
    B2 := DM2.tblProjectProjectID.Value;
    B3 := DM2.tblProjectProjectName.Value;
    B4 := DM2.tblProjectDirection.Value;
    B5 := DM2.tblProjectDeleteFlag.Value;
    B6 := DM2.tblProjectProjectNo.Value;
    B7 := DM2.tblProjectUsed.Value;
    DM2.tblProject.BeforeDelete:=nil;
    DM2.tblProject.BeforeInsert:=nil;
    DM2.tblProject.AfterInsert:=nil;
    DM2.tblProject.BeforePost:=nil;
   DM2.tblProject.Delete;
    DM2.tblProject.Delete;
    DM2.tblProject.InsertRecord([A1,A2,A3,A4,A5,A6,A7]);
    DM2.tblProject.InsertRecord([B1,B2,B3,B4,B5,B6,B7]);
    DM2.tblProject.Prior;
    DM2.tblProject.BeforeDelete :=DM2.tblProjectBeforeDelete;
    DM2.tblProject.BeforeInsert:=DM2.tblProjectBeforeInsert;
    DM2.tblProject.AfterInsert:=DM2.tblProjectAfterInsert;
    DM2.tblProject.BeforePost:=DM2.tblProjectBeforePost;
  end;
end;

procedure TProjectForm.Button1Click(Sender: TObject);
var
  i:integer;
begin
  inherited;
  FormulaForm := TFormulaForm.Create(Self);
  DM2.qryFormula.Close;
  DM2.qryFormula.SQL.Clear;
  DM2.qryFormula.SQL.Add('Select ProjectName,ProjectNo From Project Where ProjectNo<>');
  DM2.qryFormula.SQL.Add('''');
  DM2.qryFormula.SQL.Add('''');
  DM2.qryFormula.Open;
  i:=0;
  While not DM2.qryFormula.Eof do begin
    FormulaForm.cbName.Items.Add(DM2.qryFormula.Fields[0].AsString);
    DM2.qryFormula.Next;
    FormulaForm.ProjectNo[i]:=DM2.qryFormula.Fields[1].AsString;
    Inc(i);
  end;
  if FormulaForm.ShowModal = mrOK then begin
    DM2.tblFormula.Append;
    DM2.tblFormulaName.Value := FormulaForm.Name;
    DM2.tblFormulaProjectNo.Value := FormulaForm.ProjectNo[FormulaForm.cbName.ItemIndex];
    DM2.tblFormula.Post;
    DBgrid1.Refresh;
  end;
end;

procedure TProjectForm.Button2Click(Sender: TObject);
begin
  inherited;
  DM2.tblFormula.Delete;
end;

procedure TProjectForm.PageControl1Change(Sender: TObject);
begin
  inherited;
  if PageControl1.ActivePage.TabIndex=1 then begin
    DM2.qryFormula.Close;
    DM2.qryFormula.SQL.Clear;
    DM2.qryFormula.SQL.Add('Select ProjectName From Project Where ProjectNo<>');
    DM2.qryFormula.SQL.Add('''');
    DM2.qryFormula.SQL.Add('''');
    DM2.qryFormula.SQL.Add(' and used=True');
    DM2.qryFormula.Open;
    cbProjectName.Items.Clear;
    cbProjectName.Items.Add(Pchar(sBasePay));
    cbProjectName.Items.Add(Pchar(sPiecePay));
    While not DM2.qryFormula.Eof do begin
      cbProjectName.Items.Add(DM2.qryFormula.Fields[0].AsString);
      DM2.qryFormula.Next;
    end;
    DM2.tblFormula.First;
    DBGrid1.SetFocus;
  end;
end;

procedure TProjectForm.cbProjectNameDblClick(Sender: TObject);
var
  Text:string;
begin
  inherited;
  DM2.tblFormula.Edit;
  Text:=Copy(DM2.tblFormulaText.Value,Length(DM2.tblFormulaText.Value),1);
  if length(DM2.tblFormulaText.Value)=0 then
    DM2.tblFormulaText.Value := cbProjectName.Items[cbProjectName.ItemIndex]
  else if (Text='+') or (Text='-') or (Text='*') or (Text='/') or (Text='(') then
    DM2.tblFormulaText.Value := DM2.tblFormulaText.Value+cbProjectName.Items[cbProjectName.ItemIndex];
end;

procedure TProjectForm.btIncClick(Sender: TObject);
var
  Text:string;
begin
  inherited;
  DM2.tblFormula.Edit;
  Text:=Copy(DM2.tblFormulaText.Value,Length(DM2.tblFormulaText.Value),1);
  if (Text='+') or (Text='-') or (Text='*') or (Text='/') or (Text='(') then
    abort;
  DM2.tblFormulaText.Value := DM2.tblFormulaText.Value+'+';
end;

procedure TProjectForm.btDecClick(Sender: TObject);
begin
  inherited;
  DM2.tblFormula.Edit;
  Text:=Copy(DM2.tblFormulaText.Value,Length(DM2.tblFormulaText.Value),1);
  if (Text='+') or (Text='-') or (Text='*') or (Text='/') or (Text='(') then
    abort;
  DM2.tblFormulaText.Value := DM2.tblFormulaText.Value+'-';
end;

procedure TProjectForm.btModClick(Sender: TObject);
begin
  inherited;
  DM2.tblFormula.Edit;
  Text:=Copy(DM2.tblFormulaText.Value,Length(DM2.tblFormulaText.Value),1);
  if (Text='+') or (Text='-') or (Text='*') or (Text='/') or (Text='(') then
    abort;
  DM2.tblFormulaText.Value := DM2.tblFormulaText.Value+'*';
end;

procedure TProjectForm.btDivClick(Sender: TObject);
begin
  inherited;
  DM2.tblFormula.Edit;
  Text:=Copy(DM2.tblFormulaText.Value,Length(DM2.tblFormulaText.Value),1);
  if (Text='+') or (Text='-') or (Text='*') or (Text='/') or (Text='(') then
    abort;
  DM2.tblFormulaText.Value := DM2.tblFormulaText.Value+'/';
end;

procedure TProjectForm.btLeftClick(Sender: TObject);
begin
  inherited;
  DM2.tblFormula.Edit;
  Text:=Copy(DM2.tblFormulaText.Value,Length(DM2.tblFormulaText.Value),1);
  if (Text<>'+') or (Text<>'-') or (Text<>'*') or (Text<>'/') or (Text=')') then
    abort;
  DM2.tblFormulaText.Value := DM2.tblFormulaText.Value+'(';
end;

procedure TProjectForm.btRightClick(Sender: TObject);
begin
  inherited;
  DM2.tblFormula.Edit;
  Text:=Copy(DM2.tblFormulaText.Value,Length(DM2.tblFormulaText.Value),1);
  if (Text='+') or (Text='-') or (Text='*') or (Text='/') or (Text='(') then
    abort;
  DM2.tblFormulaText.Value := DM2.tblFormulaText.Value+')';
end;

procedure TProjectForm.FormCreate(Sender: TObject);
begin
  inherited;
  top:=15;
  DM2.tblFormula.AfterScroll := Scroll;
  DM2.tblProject.Open;
  DM2.tblFormula.Open;
end;

procedure TProjectForm.Button3Click(Sender: TObject);
begin
  inherited;
  DM2.tblFormula.Post;
end;

procedure TProjectForm.SpeedButton2Click(Sender: TObject);
begin
  inherited;
  if DM2.tblProjectProjectNo.Value='' then
    abort
  else begin
    B1 := DM2.tblProjectLabNo.Value;
    A2 := DM2.tblProjectProjectID.Value;
    A3 := DM2.tblProjectProjectName.Value;
    A4 := DM2.tblProjectDirection.Value;
    A5 := DM2.tblProjectDeleteFlag.Value;
    A6 := DM2.tblProjectProjectNo.Value;
    A7 := DM2.tblProjectUsed.Value;
    DM2.tblProject.Next;
    if DM2.tblProject.Eof then
      abort
    else begin
      A1 := DM2.tblProjectLabNo.Value;
      B2 := DM2.tblProjectProjectID.Value;
      B3 := DM2.tblProjectProjectName.Value;
      B4 := DM2.tblProjectDirection.Value;
      B5 := DM2.tblProjectDeleteFlag.Value;
      B6 := DM2.tblProjectProjectNo.Value;
      B7 := DM2.tblProjectUsed.Value;
      DM2.tblProject.BeforeDelete:=nil;
      DM2.tblProject.BeforeInsert:=nil;
      DM2.tblProject.AfterInsert:=nil;
      DM2.tblProject.BeforePost:=nil;
      DM2.tblProject.Prior;
      DM2.tblProject.Delete;
      DM2.tblProject.Delete;
      DM2.tblProject.InsertRecord([A1,A2,A3,A4,A5,A6,A7]);
      DM2.tblProject.InsertRecord([B1,B2,B3,B4,B5,B6,B7]);
      DM2.tblProject.Next;
      DM2.tblProject.BeforeDelete :=DM2.tblProjectBeforeDelete;
      DM2.tblProject.BeforeInsert:=DM2.tblProjectBeforeInsert;
      DM2.tblProject.AfterInsert:=DM2.tblProjectAfterInsert;
      DM2.tblProject.BeforePost:=DM2.tblProjectBeforePost;
    end;
  end;
end;

procedure TProjectForm.FormCloseQuery(Sender: TObject;
  var CanClose: Boolean);
begin
  inherited;
  DM2.tblProject.Close;
  DM2.tblFormula.Close;
end;

end.

⌨️ 快捷键说明

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