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