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

📄 workprofrm.pas

📁 考勤管理是企业内部管理的重要环节和基础
💻 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 + -