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

📄 prodratesearch.pas

📁 一个鞋塑企业的计件工资系统.开发目录为:D:PieceRate
💻 PAS
字号:
unit ProdRateSearch;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, dxCntner, dxEditor, dxEdLib, dxExEdtr, DB, dxTL,StrUtils,
  dxDBCtrl, dxDBGrid, dxDBTLCl, dxGrClms, ExtCtrls, ComCtrls, Buttons,DateUtils;

type
  TfrmProdRateSearch = class(TForm)
    Label1: TLabel;
    edtOrderNO: TdxEdit;
    dsProdRate: TDataSource;
    Label2: TLabel;
    Label3: TLabel;
    dtEndDate: TDateTimePicker;
    Label4: TLabel;
    Label5: TLabel;
    Label6: TLabel;
    edtFirstTime: TdxMaskEdit;
    edtEndTime: TdxMaskEdit;
    edtRateID: TdxButtonEdit;
    Label7: TLabel;
    edtPicecId: TdxButtonEdit;
    Label8: TLabel;
    edtCheckId: TdxButtonEdit;
    BitBtn1: TBitBtn;
    BitBtn2: TBitBtn;
    BitBtn3: TBitBtn;
    BitBtn4: TBitBtn;
    Panel1: TPanel;
    grdOrder: TdxDBGrid;
    grdOrderOrderNo: TdxDBGridMaskColumn;
    grdOrderOrderDate: TdxDBGridDateColumn;
    grdOrderFirstTime: TdxDBGridMaskColumn;
    grdOrderEndTime: TdxDBGridMaskColumn;
    grdOrderRateID: TdxDBGridMaskColumn;
    grdOrderRateName: TdxDBGridMaskColumn;
    grdOrderPicecID1: TdxDBGridMaskColumn;
    grdOrderPicecName1: TdxDBGridMaskColumn;
    grdOrderPicecID2: TdxDBGridMaskColumn;
    grdOrderPicecName2: TdxDBGridMaskColumn;
    grdOrderPicecID3: TdxDBGridMaskColumn;
    grdOrderPicecName3: TdxDBGridMaskColumn;
    grdOrderPicecID4: TdxDBGridMaskColumn;
    grdOrderPicecName4: TdxDBGridMaskColumn;
    grdOrderCheckID1: TdxDBGridMaskColumn;
    grdOrderCheckName1: TdxDBGridMaskColumn;
    grdOrderCheckID2: TdxDBGridMaskColumn;
    grdOrderCheckName2: TdxDBGridMaskColumn;
    grdOrderCheckID3: TdxDBGridMaskColumn;
    grdOrderCheckName3: TdxDBGridMaskColumn;
    grdOrderCheckID4: TdxDBGridMaskColumn;
    grdOrderCheckName4: TdxDBGridMaskColumn;
    dtFirstDate: TDateTimePicker;
    procedure FormCreate(Sender: TObject);
    procedure BitBtn1Click(Sender: TObject);
    procedure edtRateIDButtonClick(Sender: TObject;
      AbsoluteIndex: Integer);
    procedure FormKeyPress(Sender: TObject; var Key: Char);
    procedure edtRateIDChange(Sender: TObject);
    procedure edtRateIDExit(Sender: TObject);
    procedure edtPicecIdButtonClick(Sender: TObject;
      AbsoluteIndex: Integer);
    procedure edtPicecIdChange(Sender: TObject);
    procedure edtPicecIdExit(Sender: TObject);
    procedure edtCheckIdButtonClick(Sender: TObject;
      AbsoluteIndex: Integer);
    procedure edtCheckIdChange(Sender: TObject);
    procedure edtCheckIdExit(Sender: TObject);
    procedure BitBtn2Click(Sender: TObject);
    procedure FormShow(Sender: TObject);
    procedure grdOrderDblClick(Sender: TObject);
    procedure edtOrderNOExit(Sender: TObject);
    procedure grdOrderClick(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  frmProdRateSearch: TfrmProdRateSearch;

implementation

{$R *.dfm}
uses
  DataCenter, ChoicePerson, ProdRate;

Var
  ValueIsChange:Boolean;  


procedure TfrmProdRateSearch.FormCreate(Sender: TObject);
begin
  ValueIsChange:=false;
end;

procedure TfrmProdRateSearch.BitBtn1Click(Sender: TObject);
begin
  with dmData do
  begin
    AdoQuery1.SQL.Clear;
    AdoQuery1.SQL.Add('select * from RateForms where OrderDate Between '+''''+DateToStr(dtFirstDate.Date)+''''+' and '+''''+DateToStr(dtEndDate.date)+'''');
    if (trim(edtFirstTime.Text)<>':') and (trim(edtEndTime.Text)<>':') then
      AdoQuery1.SQL.Add('and FirstTime>='+''''+edtFirstTime.Text+''''+' and EndTime<='+''''+edtEndTime.Text+'''');
    if edtRateID.text<>'' then
      AdoQuery1.SQL.Add('and RateID like '''+edtRateId.Text+'%'+'''');
    if edtPicecID.text<>'' then
      AdoQuery1.SQL.Add('and (PicecID1 like '''+edtPicecId.Text+'%'+''''+' OR PicecId2 like '''+edtPicecId.Text+'%'+''''+' Or PicecId3 like '''+edtPicecId.Text+'%'+''''+' Or PicecId4 like '''+edtPicecId.Text+'%'+''''+')');
    if edtCheckID.text<>'' then
      AdoQuery1.SQL.Add('and (CheckID1 like '''+edtCheckID.Text+'%'+''''+' OR CheckID2 like '''+edtCheckID.Text+'%'+''''+' Or CheckID3 like '''+edtCheckID.Text+'%'+''''+' Or CheckID4 like '''+edtCheckID.Text+'%'+''''+')');
    AdoQuery1.Open;  
  end;

end;

procedure TfrmProdRateSearch.edtRateIDButtonClick(Sender: TObject;
  AbsoluteIndex: Integer);
begin
  if Application.FindComponent('frmChoicePerson')=nil then
      Application.CreateForm(TfrmChoicePerson,frmChoicePerson);
  frmProdRate.Tag:=edtRateID.Tag;
  dmData.aquPersonel.SQL.Text:='select * from Personel';
  dmData.aquPersonel.Open;
  case frmChoicePerson.ShowModal of  {返回的值}
    mrCancel:
    begin
      edtRateID.SetFocus;
      ValueIsChange:=true;
    end;
    mrOk:
    begin
      edtRateID.Text:=dmData.aquPersonelPersonID.Value;
      edtPicecID.SetFocus;
    end;
  end;

end;

procedure TfrmProdRateSearch.FormKeyPress(Sender: TObject; var Key: Char);
begin
if key=#13 then { 判断是按执行键}
  if not (ActiveControl is TdxDbGrid) Then
  Begin { 不是在TDbgrid控件内}
    key:=#0;
    perform(WM_NEXTDLGCTL,0,0);{移动到下一个控件}
  end;

end;

procedure TfrmProdRateSearch.edtRateIDChange(Sender: TObject);
begin
  ValueIsChange:=true;

end;

procedure TfrmProdRateSearch.edtRateIDExit(Sender: TObject);
begin
  if ValueIsChange then
  begin
    ValueIsChange:=false;
    if edtRateID.text<>'' then
    begin
      with dmData do
      begin
        aquPersonel.SQL.Clear;
        aquPersonel.SQL.add('select * from Personel where PersonId Like :lcPersonId');
        aquPersonel.Parameters[0].Value:=trim(edtRateId.Text)+'%';
        aquPersonel.Open;
        case aquPersonel.RecordCount of
          0:edtRateIDButtonClick(frmProdRate,0);  {没有记录时}
          1:  {有一条记录时}
            edtRateID.Text:=aquPersonelPersonId.Value;
          else    {多条记录时}
          begin
            if Application.FindComponent('frmChoicePerson')=nil then Application.CreateForm(TfrmChoicePerson,frmChoicePerson);
            case frmChoicePerson.ShowModal of  {返回的值}
              mrCancel:
              begin
                edtRateID.SetFocus;
                ValueIsChange:=true;
              end;
              mrOk:
              begin
                edtRateID.Text:=dmData.aquPersonelPersonID.Value;
                edtPicecID.SetFocus;
              end;
            end;
          end;
        end;
      end;
    end else
      edtRateID.Text:='';
  end;
end;

procedure TfrmProdRateSearch.edtPicecIdButtonClick(Sender: TObject;
  AbsoluteIndex: Integer);
begin
  if Application.FindComponent('frmChoicePerson')=nil then
      Application.CreateForm(TfrmChoicePerson,frmChoicePerson);
  frmProdRate.Tag:=edtPicecID.Tag;
  dmData.aquPersonel.SQL.Text:='select * from Personel';
  dmData.aquPersonel.Open;
  case frmChoicePerson.ShowModal of  {返回的值}
    mrCancel:
    begin
      edtPicecID.SetFocus;
      ValueIsChange:=true;
    end;
    mrOk:
    begin
      edtPicecID.Text:=dmData.aquPersonelPersonID.Value;
      edtCheckID.SetFocus;
    end;
  end;

end;

procedure TfrmProdRateSearch.edtPicecIdChange(Sender: TObject);
begin
  ValueIsChange:=true;

end;

procedure TfrmProdRateSearch.edtPicecIdExit(Sender: TObject);
begin
  if ValueIsChange then
  begin
    ValueIsChange:=false;
    if edtPicecID.text<>'' then
    begin
      with dmData do
      begin
        aquPersonel.SQL.Clear;
        aquPersonel.SQL.add('select * from Personel where PersonId Like :lcPersonId');
        aquPersonel.Parameters[0].Value:=trim(edtPicecID.Text)+'%';
        aquPersonel.Open;
        case aquPersonel.RecordCount of
          0:edtPicecIDButtonClick(frmProdRate,0);  {没有记录时}
          1:  {有一条记录时}
            edtPicecID.Text:=aquPersonelPersonId.Value;
          else    {多条记录时}
          begin
            if Application.FindComponent('frmChoicePerson')=nil then Application.CreateForm(TfrmChoicePerson,frmChoicePerson);
            case frmChoicePerson.ShowModal of  {返回的值}
              mrCancel:
              begin
                edtPicecID.SetFocus;
                ValueIsChange:=true;
              end;
              mrOk:
              begin
                edtPicecID.Text:=dmData.aquPersonelPersonID.Value;
                edtCheckID.SetFocus;
              end;
            end;
          end;
        end;
      end;
    end else
      edtPicecID.Text:='';
  end;
end;

procedure TfrmProdRateSearch.edtCheckIdButtonClick(Sender: TObject;
  AbsoluteIndex: Integer);
begin
  if Application.FindComponent('frmChoicePerson')=nil then
      Application.CreateForm(TfrmChoicePerson,frmChoicePerson);
  frmProdRate.Tag:=edtCheckID.Tag;
  dmData.aquPersonel.SQL.Text:='select * from Personel';
  dmData.aquPersonel.Open;
  case frmChoicePerson.ShowModal of  {返回的值}
    mrCancel:
    begin
      edtCheckID.SetFocus;
      ValueIsChange:=true;
    end;
    mrOk:
    begin
      edtCheckID.Text:=dmData.aquPersonelPersonID.Value;
    end;
  end;
end;

procedure TfrmProdRateSearch.edtCheckIdChange(Sender: TObject);
begin
  ValueIsChange:=true;

end;

procedure TfrmProdRateSearch.edtCheckIdExit(Sender: TObject);
begin
  if ValueIsChange then
  begin
    ValueIsChange:=false;
    if edtCheckID.text<>'' then
    begin
      with dmData do
      begin
        aquPersonel.SQL.Clear;
        aquPersonel.SQL.add('select * from Personel where PersonId Like :lcPersonId');
        aquPersonel.Parameters[0].Value:=trim(edtCheckID.Text)+'%';
        aquPersonel.Open;
        case aquPersonel.RecordCount of
          0:edtCheckIDButtonClick(frmProdRate,0);  {没有记录时}
          1:  {有一条记录时}
            edtCheckID.Text:=aquPersonelPersonId.Value;
          else    {多条记录时}
          begin
            if Application.FindComponent('frmChoicePerson')=nil then Application.CreateForm(TfrmChoicePerson,frmChoicePerson);
            case frmChoicePerson.ShowModal of  {返回的值}
              mrCancel:
              begin
                edtCheckID.SetFocus;
                ValueIsChange:=true;
              end;
              mrOk:
              begin
                edtCheckID.Text:=dmData.aquPersonelPersonID.Value;
              end;
            end;
          end;
        end;
      end;
    end else
      edtCheckID.Text:='';
  end;
end;

procedure TfrmProdRateSearch.BitBtn2Click(Sender: TObject);
begin
  dtFirstDate.Date:=StrToDate(LeftStr(DateToStr(date),8)+'01');
  dtEndDate.Date:=Date;
  with DmData do
  begin
    AdoQuery1.SQL.Clear;
    AdoQuery1.SQL.Add('select * from RateForms where OrderDate Between '+''''+DateToStr(dtFirstDate.Date)+''''+' and '+''''+DateToStr(dtEndDate.date)+'''');
    AdoQuery1.Open;
  end;
  edtFirstTime.Text:='';
  edtEndTime.Text:='';
  edtRateId.Text:='';
  edtPicecId.Text:='';
  edtCheckId.Text:='';
end;

procedure TfrmProdRateSearch.FormShow(Sender: TObject);
begin
  BitBtn2Click(sender);
end;

procedure TfrmProdRateSearch.grdOrderDblClick(Sender: TObject);
begin
  ModalResult:=mrOk;

end;

procedure TfrmProdRateSearch.edtOrderNOExit(Sender: TObject);
var
  i:word;
begin
  for i:=1 to 10-Strlen(Pchar(edtOrderNo.Text)) do
    edtOrderNo.Text:='0'+edtOrderNo.Text;
end;

procedure TfrmProdRateSearch.grdOrderClick(Sender: TObject);
begin
  edtOrderNo.Text:=dmData.ADOQuery1.Fields[0].Value;

end;

end.

⌨️ 快捷键说明

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