📄 pieceworkfrm.pas
字号:
unit PieceWorkFrm;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
ChildGridFrm, Menus, StdCtrls, Buttons, Grids, DBGrids, ExtCtrls,
DBGridEh, PrnDbgeh, Db, DBTables;
resourcestring
sDelete='这是一个空表,不能用删除命令!';
sCorpName='利利时装厂计件工资录入表';
type
TPieceWorkForm = class(TChildGridform)
bbtnEdit: TBitBtn;
pmedit: TPopupMenu;
pmiAdd: TMenuItem;
pmiEdit: TMenuItem;
pmiDelete: TMenuItem;
N1: TMenuItem;
pmiPrint: TMenuItem;
cbFilter: TCheckBox;
DBGridEh1: TDBGridEh;
PrintDBGridEh1: TPrintDBGridEh;
bbtnReport: TBitBtn;
bbtnFilter: TBitBtn;
procedure bbtnEditClick(Sender: TObject);
procedure pmiAddClick(Sender: TObject);
procedure pmiEditClick(Sender: TObject);
procedure pmiDeleteClick(Sender: TObject);
procedure FormCreate(Sender: TObject);
procedure cbFilterClick(Sender: TObject);
procedure bbtnReportClick(Sender: TObject);
procedure FormDestroy(Sender: TObject);
procedure bbtnFilterClick(Sender: TObject);
procedure FormResize(Sender: TObject);
procedure FormActivate(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
type
Myarray=array [0..20] of integer;
var
ParentClientHeight:integer;
ParentClientWidth:integer;
LxButton1Left:integer;
LxButton1Top:integer;
LxButton2Left:integer;
LxButton2Top:integer;
LxButton3Left:integer;
LxButton3Top:integer;
LxcbFilterLeft:integer;
LxcbFilterTop:integer;
LxDBGridEh1Height:integer;
LxDBGridEh1Width:integer;
OldColumnWidth:Myarray;
NewColumn1Width:Myarray;
PieceWorkForm: TPieceWorkForm;
implementation
uses unDM2, PieceWorkEditFrm, Dialog, Globals, PWFilterFrm;
{$R *.DFM}
procedure TPieceWorkForm.bbtnEditClick(Sender: TObject);
begin
inherited;
pmEdit.Popup((left+bbtnEdit.Left+6),(top+bbtnEdit.top+88+CoolBar2Height));
end;
procedure TPieceWorkForm.pmiAddClick(Sender: TObject);
begin
inherited;
PieceWorkEditForm:=TPieceWorkEditForm.Create(Self);
PieceWorkEditForm.showModalPopup(0);
end;
procedure TPieceWorkForm.pmiEditClick(Sender: TObject);
begin
inherited;
PieceWorkEditForm:=TPieceWorkEditForm.Create(Self);
PieceWorkEditForm.showModalPopup(1);
end;
procedure TPieceWorkForm.pmiDeleteClick(Sender: TObject);
begin
inherited;
if DM2.qryPieceWork.IsEmpty then
Dialog.messagedlg(Pchar(sDelete),mtinformation,[mbOK],0)
else
DM2.qryPieceWork.delete;
end;
procedure TPieceWorkForm.FormCreate(Sender: TObject);
var
Year,Month,Day:Word;
i:integer;
begin
inherited;
DecodeDate(Now,Year,Month,Day);
DM2.qryPieceWork.Close;
DM2.qryPieceWork.SQL.Clear;
DM2.qryPieceWork.SQL.Add('Select Distinct PieceWork.Department, Department.Name as DepartmentID,');
DM2.qryPieceWork.SQL.Add('PieceWork.EmpID, employ.Name as Name, PieceWork.workDate, PieceWork.MakeID, MakeNo.code as code,');
DM2.qryPieceWork.SQL.Add('PieceWork.GoodsID, PieceWork.Number1, PieceWork.Items, WorkProItems.Items as ItemItems,');
DM2.qryPieceWork.SQL.Add('WorkProItems.Name as ItemsName, WorkProItems.Gprice as Gprice,');
DM2.qryPieceWork.SQL.Add('WorkProItems.Price as YPrice, PieceWork.PriceType, PieceWork.Price, PieceWork.CallBackPay, PieceWork.No1');
DM2.qryPieceWork.SQL.Add(' From PieceWork, Department, employ, MakeNo, WorkProItems');
DM2.qryPieceWork.SQL.Add('Where PieceWork.Department=Department.DepartmentID And PieceWork.EmpID=Employ.EmpID');
DM2.qryPieceWork.SQL.Add(' And PieceWork.MakeID=MakeNo.MakeID And PieceWork.Items=WorkProItems.No1');
DM2.qryPieceWork.SQL.Add('And WorkDate Between :StartDate and :EndDate');
DM2.qryPieceWork.SQL.Add(' order by PieceWork.EmpID,PieceWork.No1');
DM2.qryPieceWork.Params[0].Value:=EncodeDate(Year,Month,1);
if Month<>12 then
DM2.qryPieceWork.Params[1].Value:=EncodeDate(Year,Month+1,1)-1
else
DM2.qryPieceWork.Params[1].Value:=EncodeDate(Year,Month,31);
DM2.qryPieceWork.Open;
ParentClientHeight:=ClientHeight;
ParentClientWidth:=ClientWidth;
LxButton1Left:=bbtnEdit.Left;
LxButton1Top:=bbtnEdit.Top;
LxButton2Left:=bbtnReport.Left;
LxButton2Top:=bbtnReport.top;
LxButton3Left:=bbtnFilter.Left;
LxButton3Top:=bbtnFilter.top;
LxcbFilterLeft:=cbFilter.Left;
LxcbFilterTop:=cbFilter.Top;
LxDBGridEh1Height:=DBGridEh1.Height;
LxDBGridEh1Width:=DBGridEh1.Width;
for i:=0 to DBGridEh1.FieldCount-1 do begin
OldColumnWidth[i]:=DBGridEh1.columns[i].Width;
NewColumn1Width[i]:=DBGridEh1.columns[i].Width;
end;
// cbFilter.OnClick(cbFilter);
end;
procedure TPieceWorkForm.cbFilterClick(Sender: TObject);
Var
Year,Month,Day:Word;
begin
inherited;
DecodeDate(Now,Year,Month,Day);
if cbFilter.Checked then begin
DM2.qryPieceWork.Close;
DM2.qryPieceWork.SQL.Clear;
DM2.qryPieceWork.SQL.Add('Select Distinct PieceWork.Department, Department.Name as DepartmentID,');
DM2.qryPieceWork.SQL.Add('PieceWork.EmpID, employ.Name as Name, PieceWork.workDate, PieceWork.MakeID, MakeNo.code as code,');
DM2.qryPieceWork.SQL.Add('PieceWork.GoodsID, PieceWork.Number1, PieceWork.Items, WorkProItems.Items as ItemItems,');
DM2.qryPieceWork.SQL.Add('WorkProItems.Name as ItemsName, WorkProItems.Gprice as Gprice,');
DM2.qryPieceWork.SQL.Add('WorkProItems.Price as YPrice, PieceWork.PriceType, PieceWork.Price, PieceWork.CallBackPay, PieceWork.No1');
DM2.qryPieceWork.SQL.Add(' From PieceWork, Department, employ, MakeNo, WorkProItems');
DM2.qryPieceWork.SQL.Add('Where PieceWork.Department=Department.DepartmentID And PieceWork.EmpID=Employ.EmpID');
DM2.qryPieceWork.SQL.Add(' And PieceWork.MakeID=MakeNo.MakeID And PieceWork.Items=WorkProItems.No1');
DM2.qryPieceWork.SQL.Add('And WorkDate Between :StartDate and :EndDate');
DM2.qryPieceWork.SQL.Add(' order by PieceWork.EmpID, PieceWork.No1');
DM2.qryPieceWork.Params[0].Value:=EncodeDate(Year,Month,1);
if Month<>12 then
DM2.qryPieceWork.Params[1].Value:=EncodeDate(Year,Month+1,1)-1
else
DM2.qryPieceWork.Params[1].Value:=EncodeDate(Year,Month,31);
// DecodeDate(EncodeDate(Year,Month+1,1)-1,Year,Month,Day);
DM2.qryPieceWork.Open;
end else begin
DM2.qryPieceWork.Close;
DM2.qryPieceWork.SQL.Clear;
DM2.qryPieceWork.SQL.Add('Select Distinct PieceWork.Department, Department.Name as DepartmentID,');
DM2.qryPieceWork.SQL.Add('PieceWork.EmpID, employ.Name as Name, PieceWork.workDate, PieceWork.MakeID, MakeNo.code as code,');
DM2.qryPieceWork.SQL.Add('PieceWork.GoodsID, PieceWork.Number1, PieceWork.Items, WorkProItems.Items as ItemItems,');
DM2.qryPieceWork.SQL.Add('WorkProItems.Name as ItemsName, WorkProItems.Gprice as Gprice,');
DM2.qryPieceWork.SQL.Add('WorkProItems.Price as YPrice, PieceWork.PriceType, PieceWork.Price, PieceWork.CallBackPay, PieceWork.No1');
DM2.qryPieceWork.SQL.Add(' From PieceWork, Department, employ, MakeNo, WorkProItems');
DM2.qryPieceWork.SQL.Add('Where PieceWork.Department=Department.DepartmentID And PieceWork.EmpID=Employ.EmpID');
DM2.qryPieceWork.SQL.Add(' And PieceWork.MakeID=MakeNo.MakeID And PieceWork.Items=WorkProItems.No1');
DM2.qryPieceWork.SQL.Add(' order by PieceWork.EmpID, PieceWork.No1');
DM2.qryPieceWork.Open;
end;
end;
procedure TPieceWorkForm.bbtnReportClick(Sender: TObject);
begin
inherited;
PrintDBGridEh1.DBGridEh := DBGridEh1;
PrintDBGridEh1.PageHeader.CenterText.Clear;
PrintDBGridEh1.PageHeader.CenterText.Add(Pchar(sCorpName));
PrintDBGridEh1.SetSubstitutes(['%[Today]',DateToStr(Now)]);
PrintDBGridEh1.Preview;
end;
procedure TPieceWorkForm.FormDestroy(Sender: TObject);
begin
inherited;
PieceWorkForm:=Nil;
end;
procedure TPieceWorkForm.bbtnFilterClick(Sender: TObject);
var
Year,Month,Day:Word;
Filter:string;
begin
inherited;
PWFilterForm:=TPWFilterForm.Create(Self);
if PWFilterForm.ShowModal=mrOK then begin
Filter:=PWFilterForm.Filter;
DecodeDate(Now,Year,Month,Day);
DM2.qryPieceWork.Close;
DM2.qryPieceWork.SQL.Clear;
DM2.qryPieceWork.SQL.Add('Select Distinct PieceWork.Department, Department.Name as DepartmentID,');
DM2.qryPieceWork.SQL.Add('PieceWork.EmpID, employ.Name as Name, PieceWork.workDate, PieceWork.MakeID, MakeNo.code as code,');
DM2.qryPieceWork.SQL.Add('PieceWork.GoodsID, PieceWork.Number1, PieceWork.Items, WorkProItems.Items as ItemItems,');
DM2.qryPieceWork.SQL.Add('WorkProItems.Name as ItemsName, WorkProItems.Gprice as Gprice,');
DM2.qryPieceWork.SQL.Add('WorkProItems.Price as YPrice, PieceWork.PriceType, PieceWork.Price, PieceWork.CallBackPay, PieceWork.No1');
DM2.qryPieceWork.SQL.Add(' From PieceWork, Department, employ, MakeNo, WorkProItems');
DM2.qryPieceWork.SQL.Add('Where PieceWork.Department=Department.DepartmentID And PieceWork.EmpID=Employ.EmpID');
DM2.qryPieceWork.SQL.Add(' And PieceWork.MakeID=MakeNo.MakeID And PieceWork.Items=WorkProItems.No1');
if cbFilter.Checked then begin
if filter='' then begin
DM2.qryPieceWork.SQL.Add('And WorkDate Between :StartDate and :EndDate');
DM2.qryPieceWork.SQL.Add(' order by PieceWork.EmpID, PieceWork.No1');
DM2.qryPieceWork.Params[0].Value:=EncodeDate(Year,Month,1);
if Month<>12 then
DM2.qryPieceWork.Params[1].Value:=EncodeDate(Year,Month+1,1)-1
else
DM2.qryPieceWork.Params[1].Value:=EncodeDate(Year,Month,31);
end else begin
DM2.qryPieceWork.SQL.Add('And WorkDate Between :StartDate and :EndDate and');
DM2.qryPieceWork.SQL.Add(Filter);
DM2.qryPieceWork.SQL.Add(' order by PieceWork.EmpID, PieceWork.No1');
DM2.qryPieceWork.Params[0].Value:=EncodeDate(Year,Month,1);
if Month<>12 then
DM2.qryPieceWork.Params[1].Value:=EncodeDate(Year,Month+1,1)-1
else
DM2.qryPieceWork.Params[1].Value:=EncodeDate(Year,Month,31);
end;
end else begin
if filter='' then begin
// DM2.qryPieceWork.SQL.Add('And');
// DM2.qryPieceWork.SQL.Add(Filter);
end else begin
DM2.qryPieceWork.SQL.Add('And');
DM2.qryPieceWork.SQL.Add(Filter);
end;
end;
DM2.qryPieceWork.Open;
end;
end;
procedure TPieceWorkForm.FormResize(Sender: TObject);
var
i:integer;
begin
inherited;
bbtnEdit.left:=LxButton1Left;
bbtnEdit.top:=ClientHeight-30;
bbtnReport.Left:=LxButton2Left;
bbtnReport.top:=ClientHeight-30;
bbtnFilter.Left:=LxButton3Left;
bbtnFilter.top:=ClientHeight-30;
cbFilter.Left:=LxcbFilterLeft;
cbFilter.Top:=ClientHeight-28;
DBGridEh1.Width:=ClientWidth;
DBGridEh1.Height:=ClientHeight-40;
for i:=0 to DBGridEh1.FieldCount-1 do begin
DBGridEh1.columns[i].Width:=round((ClientWidth-34)/ParentClientWidth
*(OldColumnWidth[i]+34/DBGridEh1.Columns.count));
end;
end;
procedure TPieceWorkForm.FormActivate(Sender: TObject);
begin
inherited;
DM2.qryPieceWork.Close;
DM2.qryPieceWork.Open;
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -