📄 projectfrm.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 + -