📄 workprofrm.pas
字号:
unit WorkProFrm;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
Childfrm, StdCtrls, DBCtrls, ExtCtrls, Buttons, Grids, DBGrids, Mask, Db,
Menus, Quickrpt, DBTables, ExtDlgs;
type
TWorkProForm = class(TChildform)
Panel1: TPanel;
Panel2: TPanel;
dbgWorkProItems: TDBGrid;
bbtnClose: TBitBtn;
ActiveSource: TDataSource;
Panel3: TPanel;
dbnMove: TDBNavigator;
DBNavigator2: TDBNavigator;
sbFind: TSpeedButton;
sbPreview: TSpeedButton;
sbPrint: TSpeedButton;
bbtnCancel: TBitBtn;
PopupMenu1: TPopupMenu;
Close1: TMenuItem;
bbtnSaveAs: TBitBtn;
bbtnSave: TBitBtn;
Label2: TLabel;
Label4: TLabel;
Label1: TLabel;
DBEdit1: TDBEdit;
DBEdit2: TDBEdit;
DBEdit3: TDBEdit;
DBEdit4: TDBEdit;
DBEdit5: TDBEdit;
BatchMove1: TBatchMove;
DBImage1: TDBImage;
SpeedButton1: TSpeedButton;
SpeedButton2: TSpeedButton;
DBEdit6: TDBEdit;
DBEdit7: TDBEdit;
DBEdit8: TDBEdit;
DBEdit9: TDBEdit;
DBEdit10: TDBEdit;
Edit1: TEdit;
Edit2: TEdit;
Edit3: TEdit;
Edit4: TEdit;
Edit5: TEdit;
Edit6: TEdit;
Edit7: TEdit;
Edit8: TEdit;
Edit9: TEdit;
DBEdit11: TDBEdit;
DBEdit12: TDBEdit;
DBEdit13: TDBEdit;
DBEdit14: TDBEdit;
DBEdit15: TDBEdit;
DBEdit16: TDBEdit;
Label3: TLabel;
DBEdit17: TDBEdit;
DBEdit18: TDBEdit;
Edit10: TEdit;
tblTemporary: TTable;
procedure WorkProSourceStateChange(Sender: TObject);
procedure FormCreate(Sender: TObject);
procedure dbgWorkProItemsEnter(Sender: TObject);
procedure dbgWorkProItemsExit(Sender: TObject);
procedure bbtnSaveClick(Sender: TObject);
procedure FormCloseQuery(Sender: TObject; var CanClose: Boolean);
procedure bbtnCancelClick(Sender: TObject);
procedure Close1Click(Sender: TObject);
procedure dbnMoveClick(Sender: TObject; Button: TNavigateBtn);
procedure sbFindClick(Sender: TObject);
procedure bbtnSaveAsClick(Sender: TObject);
procedure FormKeyPress(Sender: TObject; var Key: Char);
procedure sbPreviewClick(Sender: TObject);
procedure sbPrintClick(Sender: TObject);
procedure SpeedButton2Click(Sender: TObject);
procedure SpeedButton1Click(Sender: TObject);
private
{ Private declarations }
FReport : TQuickRep;
procedure SetReport(Value : TQuickRep);
public
{ Public declarations }
property Report : TQuickRep read FReport write SetReport;
end;
var
WorkProForm: TWorkProForm;
implementation
uses unDM2, SaveAsFrm, SrchDlg, ReportWPFrm, OpenPictureFrm;
{$R *.DFM}
procedure TWorkProForm.SetReport(Value : TQuickRep);
begin
FReport:=Value;
end;
procedure TWorkProForm.WorkProSourceStateChange(Sender: TObject);
begin
bbtnSave.Enabled := DM2.tblWorkPro.State in dsEditModes;
bbtnSaveAs.Enabled := DM2.tblWorkPro.State in dsEditModes;
bbtnCancel.Enabled := bbtnSave.Enabled;
bbtnClose.Enabled := DM2.tblWorkPro.State = dsBrowse;
end;
procedure TWorkProForm.FormCreate(Sender: TObject);
var
i:integer;
begin
inherited;
top:=15;
left:=55;
for i:=0 to dbgWorkProItems.FieldCount-1 do begin
dbgWorkProItems.columns[i].Title.Alignment:=taCenter;
dbgWorkProItems.columns[i].Title.Color:=clTeal;
dbgWorkProItems.columns[i].Title.Font.Color:=clWhite;
end;
DM2.dsWorkPro.OnStateChange := WorkProSourceStateChange;
DM2.tblWorkPro.Open;
DM2.tblWorkPro.Insert;
end;
procedure TWorkProForm.dbgWorkProItemsEnter(Sender: TObject);
begin
inherited;
ActiveSource.Dataset := DM2.tblWorkProItems;
sbFind.Enabled:=False;
end;
procedure TWorkProForm.dbgWorkProItemsExit(Sender: TObject);
begin
inherited;
with DM2.tblWorkProItems do
if ((State in dsEditModes) or UpdatesPending) then
Edit;
ActiveSource.Dataset := DM2.tblWorkPro;
sbFind.Enabled:=True;
end;
procedure TWorkProForm.bbtnSaveClick(Sender: TObject);
begin
inherited;
DM2.tblWorkPro.Post;
end;
procedure TWorkProForm.FormCloseQuery(Sender: TObject;
var CanClose: Boolean);
begin
inherited;
CanClose := DM2.DataSetApplyUpdates(DM2.tblWorkPro, ModalResult = mrOK);
DM2.dsWorkPro.OnStateChange :=nil;
DM2.tblWorkPro.Close;
end;
procedure TWorkProForm.bbtnCancelClick(Sender: TObject);
begin
inherited;
DM2.tblWorkProAfterCancel(DM2.tblWorkPro);
end;
procedure TWorkProForm.Close1Click(Sender: TObject);
begin
inherited;
Close;
end;
procedure TWorkProForm.dbnMoveClick(Sender: TObject;
Button: TNavigateBtn);
begin
inherited;
if ActiveSource.DataSet=DM2.tblWorkPro then
begin
// dbeCost.Visible:=True;
// dbeCost1.Visible:=False;
end;
end;
procedure TWorkProForm.sbFindClick(Sender: TObject);
begin
inherited;
DM2.qryWorkPro.Open;
if ActiveSource.DataSet = DM2.tblWorkPro then
begin
SearchDlg:=TSearchDlg.Create(self);
if Trim(DM2.tblWorkProGoodsID.Value) <> '' then begin
SearchDlg.DataSource.DataSet:=DM2.qryWorkPro;
SearchDlg.WareID := DM2.tblWorkProGoodsID.Value;
end;
if SearchDlg.ShowModalParts(DM2.qryWorkPro) = mrOk then
begin
DM2.tblWorkPro.Locate('GoodsID',SearchDlg.WareID,[]);
end;
end;
DM2.qryWorkPro.Close;
end;
procedure TWorkProForm.bbtnSaveAsClick(Sender: TObject);
var
Fno:integer;
begin
inherited;
DM2.qryWorkProItems.Close;
DM2.qryWorkProItems.SQL.Clear;
DM2.qryWorkProItems.SQL.Add('select max(No1) from WorkProItems');
DM2.qryWorkProItems.Open;
with DM2.qryWorkProItems.Fields[0] do
if IsNull then FNo := 1
else FNo := AsInteger + 1;
DM2.tblWorkProItems.Prior;
SaveAsForm:=TSaveAsForm.Create(self);
if SaveAsForm.ShowModal = mrOk then begin
tblTemporary.Close;
BatchMove1.Destination:=tblTemporary;
BatchMove1.Mode:=batCopy;
BatchMove1.Source:=DM2.tblWorkProItems;
BatchMove1.Execute;
tblTemporary.Open;
tblTemporary.First;
while not tblTemporary.Eof do begin
tblTemporary.Edit;
tblTemporary.FieldByName('GoodsID').Value:=Trim(SaveAsForm.edtGoodsID.Text);
tblTemporary.FieldByName('No1').Value:=Fno;
tblTemporary.Post;
tblTemporary.Next;
fno:=fno+1;
end;
DM2.tblWorkProAfterCancel(DM2.tblWorkPro);
DM2.tblWorkPro.Append;
DM2.tblWorkProGoodsID.Value:=Trim(SaveAsForm.edtGoodsID.Text);
DM2.tblWorkProName.Value:=Trim(SaveAsForm.edtName.Text);
DM2.tblWorkProWareName.Value:=Trim(SaveAsForm.edtWareName.Text);
tblTemporary.Open;
tblTemporary.First;
DM2.tblWorkProItems.DisableControls;
while not tblTemporary.Eof do begin
DM2.tblWorkProItems.Append;
DM2.tblWorkProItemsGoodsID.Value:=tblTemporary.FieldByName('GoodsID').Value;
if tblTemporary.FieldByName('Kind').isNull then
DM2.tblWorkProItemsKind.Value:=' '
else DM2.tblWorkProItemsKind.Value:=tblTemporary.FieldByName('Kind').Value;
DM2.tblWorkProItemsItems.Value:=tblTemporary.FieldByName('Items').Value;
if tblTemporary.FieldByName('Name').isNull then
DM2.tblWorkProItemsName.Value:=' '
else DM2.tblWorkProItemsName.Value:=tblTemporary.FieldByName('Name').Value;
DM2.tblWorkProItemsBPrice.Value:=tblTemporary.FieldByName('BPrice').AsFloat;
DM2.tblWorkProItemsGPrice.Value:=tblTemporary.FieldByName('GPrice').AsFloat;
DM2.tblWorkProItemsPrice.Value:=tblTemporary.FieldByName('Price').AsFloat;
DM2.tblWorkProItemsNo1.Value:=tblTemporary.FieldByName('No1').Value;
tblTemporary.Next;
end;
DM2.tblWorkProItems.EnableControls;
DM2.tblWorkPro.Post;
end;
end;
procedure TWorkProForm.FormKeyPress(Sender: TObject; var Key: Char);
begin
inherited;
if key=#13 then begin
if not (ActiveControl is TDBGrid) then begin
key:=#0;
perform(WM_NEXTDLGCTL,0,0);
end else if (ActiveControl is TDBGrid) then begin
with TDBGrid(ActiveControl) do
if SelectedIndex<(FieldCount-1) then
selectedIndex:=SelectedIndex+1
else selectedIndex:=0;
end;
end;
end;
procedure TWorkProForm.sbPreviewClick(Sender: TObject);
begin
inherited;
ReportWPForm:=TReportWPForm.Create(self);
Report:=ReportWPForm.QuickRep;
Report.Preview;
end;
procedure TWorkProForm.sbPrintClick(Sender: TObject);
begin
inherited;
ReportWPForm:=TReportWPForm.Create(self);
Report:=ReportWPForm.QuickRep;
Report.Print;
end;
procedure TWorkProForm.SpeedButton2Click(Sender: TObject);
begin
inherited;
DM2.tblWorkPro.Edit;
OpenPictureForm:=TOpenPictureForm.Create(Self);
if OpenPictureForm.ShowModal=mrOK then
DM2.tblWorkProBMP.LoadFromFile(OpenPictureForm.Edit1.Text);
end;
procedure TWorkProForm.SpeedButton1Click(Sender: TObject);
begin
inherited;
DM2.tblWorkPro.Edit;
DM2.tblWorkProBMP.Clear;
DM2.tblWorkPro.Post;
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -