📄 rates.pas
字号:
unit Rates;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, ComCtrls, ToolWin, dxExEdtr, DB, dxCntner, dxTL, dxDBCtrl,
dxDBTL, ExtCtrls, jpeg, StdCtrls, dxEditor, dxEdLib, dxDBGrid,DBGrids,
dxDBTLCl, dxGrClms, Mask;
type
TfrmRates = class(TForm)
CoolBar1: TCoolBar;
ToolBar1: TToolBar;
ToolButton2: TToolButton;
ToolButton3: TToolButton;
ToolButton4: TToolButton;
ToolButton5: TToolButton;
ToolButton7: TToolButton;
ToolButton8: TToolButton;
ToolButton9: TToolButton;
ToolButton12: TToolButton;
ToolButton10: TToolButton;
ToolButton13: TToolButton;
ToolButton11: TToolButton;
ToolButton1: TToolButton;
dsRates: TDataSource;
Image1: TImage;
Label3: TLabel;
edtModelID: TdxEdit;
Label1: TLabel;
edtColor: TdxEdit;
Label2: TLabel;
edtShoeSize: TdxEdit;
Label4: TLabel;
Label5: TLabel;
Label6: TLabel;
Label7: TLabel;
Label8: TLabel;
Label9: TLabel;
grdRatesList: TdxDBGrid;
Label10: TLabel;
Panel1: TPanel;
grdRatesListModelID: TdxDBGridMaskColumn;
grdRatesListColor: TdxDBGridMaskColumn;
grdRatesListShoeSize: TdxDBGridMaskColumn;
grdRatesListRateA: TdxDBGridCurrencyColumn;
grdRatesListRateB: TdxDBGridCurrencyColumn;
grdRatesListRateC: TdxDBGridCurrencyColumn;
grdRatesListPicecARate: TdxDBGridCurrencyColumn;
grdRatesListPicecBRate: TdxDBGridCurrencyColumn;
grdRatesListcheckRate: TdxDBGridCurrencyColumn;
edtRateA: TdxCurrencyEdit;
edtRateB: TdxCurrencyEdit;
edtRateC: TdxCurrencyEdit;
edtPicecARate: TdxCurrencyEdit;
edtPicecBRate: TdxCurrencyEdit;
edtCheckRate: TdxCurrencyEdit;
edtNotes: TdxEdit;
SaveDialog: TSaveDialog;
ToolButton6: TToolButton;
procedure ToolButton11Click(Sender: TObject);
procedure FormKeyPress(Sender: TObject; var Key: Char);
procedure TextSaveToRates();
procedure RateFromToText();
procedure FormShow(Sender: TObject);
procedure ToolButton2Click(Sender: TObject);
procedure ToolButton3Click(Sender: TObject);
procedure ToolButton4Click(Sender: TObject);
procedure ToolButton5Click(Sender: TObject);
procedure ToolButton8Click(Sender: TObject);
procedure ToolButton9Click(Sender: TObject);
procedure ToolButton1Click(Sender: TObject);
procedure ToolButton10Click(Sender: TObject);
procedure grdRatesListClick(Sender: TObject);
procedure ToolButton12Click(Sender: TObject);
procedure ToolButton6Click(Sender: TObject);
procedure edtRateAExit(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
frmRates: TfrmRates;
implementation
{$R *.dfm}
uses
DataCenter,frmSearchRate;
procedure TfrmRates.ToolButton11Click(Sender: TObject);
begin
close;
end;
procedure TfrmRates.FormKeyPress(Sender: TObject; var Key: Char);
begin
if key=#13 then { 判断是按执行键}
if not (ActiveControl is TDbgrid) Then
Begin { 不是在TDbgrid控件内}
key:=#0;
perform(WM_NEXTDLGCTL,0,0);{移动到下一个控件}
end;
end;
procedure TfrmRates.TextSaveToRates();
begin
with dmData do
begin
aquRates.FieldByName('ModelID').AsString:=edtModelID.Text;
aquRates.FieldByName('Color').AsString:=edtColor.Text;
aquRates.FieldByName('ShoeSize').AsString:=edtShoeSize.Text;
aquRates.FieldByName('RateA').AsCurrency:=edtRateA.Value;
aquRates.FieldByName('RateB').AsCurrency:=edtRateB.Value;
aquRates.FieldByName('RateC').AsCurrency:=edtRateC.Value;
aquRates.FieldByName('PicecARate').AsCurrency:=edtPicecARate.Value;
aquRates.FieldByName('PicecBRate').AsCurrency:=edtPicecBRate.Value;
aquRates.FieldByName('CheckRate').AsCurrency:=edtCheckRate.Value;
aquRates.FieldByName('Notes').AsString:=edtNotes.Text;
end;
end;
procedure TfrmRates.RateFromToText();
begin
with dmData do
begin
edtModelID.Text:=aquRates.FieldByName('ModelID').AsString;
edtColor.Text:=aquRates.FieldByName('Color').AsString;
edtShoeSize.Text:=aquRates.FieldByName('ShoeSize').AsString;
edtRateA.Text:=aquRates.FieldByName('RateA').AsString;
edtRateB.Text:=aquRates.FieldByName('RateB').AsString;
edtRateC.Text:=aquRates.FieldByName('RateC').AsString;
edtPicecARate.Text:=aquRates.FieldByName('PicecARate').AsString;
edtPicecBRate.Text:=aquRates.FieldByName('PicecBRate').AsString;
edtCheckRate.Text:=aquRates.FieldByName('CheckRate').AsString;
edtNotes.Text:=aquRates.FieldByName('Notes').AsString;
end;
end;
procedure TfrmRates.FormShow(Sender: TObject);
begin
dmData.aquRates.Close;
dmData.aquRates.SQL.Clear;
dmData.aquRates.SQL.Add('select * from Rates order by ModelId,Color,ShoeSize');
dmData.aquRates.Open;
RateFromToText();
end;
procedure TfrmRates.ToolButton2Click(Sender: TObject);
begin
dmData.aquRates.First;
RateFromToText();
end;
procedure TfrmRates.ToolButton3Click(Sender: TObject);
begin
dmData.aquRates.Prior;
RateFromToText();
end;
procedure TfrmRates.ToolButton4Click(Sender: TObject);
begin
dmData.aquRates.Next;
RateFromToText();
end;
procedure TfrmRates.ToolButton5Click(Sender: TObject);
begin
dmData.aquRates.Last;
RateFromToText();
end;
procedure TfrmRates.ToolButton8Click(Sender: TObject);
begin
if grdRatesList.IsActive then edtModelID.SetFocus;
dmData.aquRates.Append;
RateFromToText();
edtModelId.SetFocus;
end;
procedure TfrmRates.ToolButton9Click(Sender: TObject);
begin
if grdRatesList.IsActive then edtModelID.SetFocus;
if not (dmData.aquRates.State in [dsInsert,dsEdit]) then dmData.aquRates.Edit;
TextSaveToRates();
dmData.aquRates.UpdateBatch();
MessageDlg('数据保存成功!',mtInformation,[mbOk],0);
end;
procedure TfrmRates.ToolButton1Click(Sender: TObject);
begin
dmData.aquRates.CancelBatch();
end;
procedure TfrmRates.ToolButton10Click(Sender: TObject);
begin
if MessageDlg('确定删除此工价资料吗?',mtConfirmation,[mbOk,mbCancel],0)=mrOk then
dmData.aquRates.Delete;
dmData.aquRates.UpdateBatch;
RateFromToText();
end;
procedure TfrmRates.grdRatesListClick(Sender: TObject);
begin
RateFromToText();
end;
procedure TfrmRates.ToolButton12Click(Sender: TObject);
begin
if SaveDialog.Execute then
begin
if FileExists(SaveDialog.FileName) then
if MessageDlg(Format('文件"'+SaveDialog.FileName+'"已经存在,是否替换原有文件?', [SaveDialog.FileName]),mtConfirmation, mbYesNoCancel, 0) <> idYes then Exit;
grdRatesList.SaveToXLS(SaveDialog.FileName,true);
end;
end;
procedure TfrmRates.ToolButton6Click(Sender: TObject);
var
lcSearchStr1,lcSearchStr2,lcSearchStr3:String;
begin
application.CreateForm(TSearchRateForm,SearchRateForm);
grdRatesList.DataSource:=nil;
if SearchRateForm.ShowModal=mrOk then
begin
grdRatesList.DataSource:=dsRates;
with dmData.aquRates do
begin
lcSearchStr1:=SearchRateForm.dsRates.DataSet.FieldValues['ModelID'];
lcSearchStr2:=SearchRateForm.dsRates.DataSet.FieldValues['Color'];
lcSearchStr3:=SearchRateForm.dsRates.DataSet.FieldValues['Shoesize'];
sql.Clear;
sql.Text:='select * from Rates';
open;
locate('ModelID;Color;Shoesize',VarArrayOf([lcSearchStr1,lcSearchStr2,lcSearchStr3]),[loPartialKey]);
end;
end;
SearchRateForm.Free;
end;
procedure TfrmRates.edtRateAExit(Sender: TObject);
begin
edtRateB.Value:=edtRateA.Value*0.8;
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -