📄 ubuydevice.pas
字号:
unit uBuyDevice;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, Buttons, ComCtrls, ExtCtrls, DBCtrls, Mask, Grids, DB,
DBGrids, DBTables, ADODB, XPBarMenu, XPMenu;
type
TfrmBuyDevice = class(TForm)
Panel1: TPanel;
DBNavigator1: TDBNavigator;
Label1: TLabel;
Label2: TLabel;
Label3: TLabel;
Label4: TLabel;
Label5: TLabel;
Label6: TLabel;
Label7: TLabel;
Label8: TLabel;
DBMemo1: TDBMemo;
Panel2: TPanel;
DBGrid1: TDBGrid;
DBComboBox1: TDBComboBox;
DBComboBox2: TDBComboBox;
DBComboBox3: TDBComboBox;
DBEdit1: TDBEdit;
DBEdit2: TDBEdit;
DBEdit3: TDBEdit;
DBEdit4: TDBEdit;
Panel3: TPanel;
Label9: TLabel;
RadioButton1: TRadioButton;
RadioButton2: TRadioButton;
Label10: TLabel;
Label11: TLabel;
Label12: TLabel;
Label13: TLabel;
DateTimePicker2: TDateTimePicker;
DateTimePicker3: TDateTimePicker;
ComboBox1: TComboBox;
ComboBox2: TComboBox;
DataSource1: TDataSource;
BuyTable: TADOTable;
ADOConnection1: TADOConnection;
DBComboBox4: TDBComboBox;
DateTimePicker1: TDateTimePicker;
BitBtn1: TBitBtn;
XPMenu1: TXPMenu;
procedure RadioButton1Click(Sender: TObject);
procedure FormCreate(Sender: TObject);
procedure RadioButton2Click(Sender: TObject);
procedure ComboBox1Change(Sender: TObject);
procedure Panel3Exit(Sender: TObject);
procedure DBComboBox1Change(Sender: TObject);
procedure BuyTableBeforeDelete(DataSet: TDataSet);
procedure DBComboBox4DropDown(Sender: TObject);
procedure DateTimePicker1CloseUp(Sender: TObject);
procedure DBEdit3KeyPress(Sender: TObject; var Key: Char);
procedure BitBtn1Click(Sender: TObject);
procedure BuyTableAfterInsert(DataSet: TDataSet);
procedure BuyTableAfterPost(DataSet: TDataSet);
private
procedure ComboBoxAddData(Sender: TObject);
{ Private declarations }
public
{ Public declarations }
end;
var
frmBuyDevice: TfrmBuyDevice;
Count: Integer;
implementation
uses StdConvs, uComputerSale;
{$R *.dfm}
procedure TfrmBuyDevice.RadioButton1Click(Sender: TObject);
begin
ComboBox1.Enabled := True; //怎样去除DateTimePicker的数据
ComboBox2.Enabled := True;
DateTimePicker2.Enabled := False;
DateTimePicker3.Enabled := False;
Count := 0;
end;
procedure TfrmBuyDevice.FormCreate(Sender: TObject);
begin
RadioButton1.Checked := True;
RadioButton2.Checked := False;
DateTimePicker2.Enabled := False;
DateTimePicker3.Enabled := False;
ComboBox1.Enabled := True;
ComboBox2.Enabled := True;
Count := 0;
end;
procedure TfrmBuyDevice.RadioButton2Click(Sender: TObject);
begin
ComboBox1.Enabled := False;
ComboBox2.Enabled := False;
DateTimePicker2.Enabled := True;
DateTimePicker3.Enabled := True;
ComboBox1.Text := '';
ComboBox2.Text := '';
end;
procedure TfrmBuyDevice.ComboBox1Change(Sender: TObject);
begin
ComboBoxAddData(Sender);
end;
procedure TfrmBuyDevice.Panel3Exit(Sender: TObject);
begin
ComboBox1.Text := '';
ComboBox2.Text := '';
end;
procedure TfrmBuyDevice.DBComboBox1Change(Sender: TObject);
begin
ComboBoxAddData(Sender);
end;
procedure TfrmBuyDevice.BuyTableBeforeDelete(DataSet: TDataSet);
begin
if Application.MessageBox('您确定要删除此记录吗?','确认', MB_OkCancel
+ MB_DEFBUTTON1 + MB_IconQuestion + MB_SystemModal) = IDcancel then
Abort;
end;
procedure TfrmBuyDevice.DBComboBox4DropDown(Sender: TObject);
begin
DBComboBox4.Visible := False;
DateTimePicker1.Visible := True;
end;
procedure TfrmBuyDevice.DateTimePicker1CloseUp(Sender: TObject);
begin
DBComboBox4.Text := DateToStr(DateTimePicker1.Date);
DateTimePicker1.Visible := False;
end;
procedure TfrmBuyDevice.DBEdit3KeyPress(Sender: TObject; var Key: Char);
begin
{只允许输入数字 .和退格键}
if not (Key in ['0'..'9','.',#8]) then Key:=#0;
if Key = '.' then //解决例如 20.23.23这种情况
Count := Count + 1;
if Count > 1 then
begin
ShowMessage('您输入的进价数据有多余的小数点,请重新输入');//解决例如 20.23.23这种情况
DBEdit3.Clear;//最好的方法是利用字符串算法检验'.'的数量,来判断异常情况
Count := 0;
DBEdit3.SelectAll;
DBEdit3.Clear;
end;
end;
procedure TfrmBuyDevice.BitBtn1Click(Sender: TObject);
begin
if RadioButton1.Checked = True then
begin
if (ComboBox1.Text = '') and (ComboBox2.Text = '') then
begin
BuyTable.Close;
BuyTable.Open;
BuyTable.Filtered := False;
BuyTable.Filter := '';
BuyTable.Filtered := True;
BuyTable.Refresh;
end;
if (ComboBox1.Text <> '') and (ComboBox2.Text = '') then
begin
BuyTable.Close;
BuyTable.Open;
BuyTable.Filtered := False;
BuyTable.Filter := 'Type=''' + ComboBox1.Text + '''';
BuyTable.Filtered := True;
BuyTable.Refresh;
end;
if (ComboBox1.Text <> '') and (ComboBox2.Text <> '') then
begin
BuyTable.Close;
BuyTable.Open;
BuyTable.Filtered := False;
BuyTable.Filter := 'GoodsName=''' + ComboBox2.Text + '''';
BuyTable.Filtered := True;
BuyTable.Refresh;
end;
end;
if RadioButton2.Checked=True then
begin
BuyTable.Close;
BuyTable.Open;
BuyTable.Filtered := False;
BuyTable.Filter := 'BuyDate>=' + DateToStr(DateTimePicker2.Date)
+ ' and BuyDate<=' + DateToStr(DateTimePicker3.Date);
BuyTable.Filtered := True;
BuyTable.Refresh;
end;
end;
procedure TfrmBuyDevice.BuyTableAfterInsert(DataSet: TDataSet);
begin
//DBComboBox4.Text := DateToStr(Date);
//DateTimePicker1.Date := Date;
end;
procedure TfrmBuyDevice.BuyTableAfterPost(DataSet: TDataSet);
begin
with frmComputerSale.LeaveTable do
begin
Close;
Open;
Filtered := False;
Filter := 'Type=''' + DBComboBox1.Text + '''and GoodsName='''
+ DBComboBox2.Text + '''and ZhiBao='''
+ DBComboBox3.Text + '''and Producer='''
+ DBEdit1.EditText + '''and GoodsType='''
+ DBEdit2.EditText + '''';
Filtered := True;
Refresh;
if (DBComboBox1.Text = FieldByName('Type').AsString)
and (DBComboBox1.Text = FieldByName('GoodsName').AsString)
and (DBComboBox1.Text = FieldByName('ZhiBao').AsString)
and (DBEdit1.EditText = FieldByName('Producer').AsString)
and (DBEdit2.EditText = FieldByName('GoodsType').AsString)
then
begin
try
ShowMessage('进入=');
Edit;
FieldByName('LeaveNumber').AsInteger := StrToInt(frmBuyDevice.DBEdit4.EditText)
+ FieldByName('LeaveNumber').AsInteger;
FieldByName('BuyValue').AsFloat := (StrToFloat(frmBuyDevice.DBEdit3.EditText)
+ FieldByName('BuyValue').AsFloat)/2;
Post;
Refresh;
Close;
Open;
Refresh;
except
Cancel;
ShowMessage('数据保存发生错误,请检查数据是否正确!');
end;
end;
if (DBComboBox1.Text <> FieldByName('Type').AsString)
and (DBComboBox1.Text <> FieldByName('GoodsName').AsString)
and (DBComboBox1.Text <> FieldByName('ZhiBao').AsString)
and (DBEdit1.EditText <> FieldByName('Producer').AsString)
and (DBEdit2.EditText <> FieldByName('GoodsType').AsString)
then
begin
try
begin
ShowMessage('进入<>');
Append;
FieldByName('Type').AsString := DBComboBox1.Text;
FieldByName('GoodsName').AsString := DBComboBox2.Text;
FieldByName('ZhiBao').AsString := DBComboBox3.Text;
FieldByName('Producer').AsString := DBEdit1.EditText;
FieldByName('GoodsType').AsString := DBEdit2.EditText;
FieldByName('BuyValue').AsFloat := StrToFloat(DBEdit3.EditText);
FieldByName('BuyDate').AsDateTime := DateTimePicker1.Date;
FieldByName('LeaveNumber').AsFloat := StrToFloat(DBEdit4.EditText);
FieldByName('Note').AsString := DBMemo1.Text;
Post;
Refresh;
Close;
Open;
end;
except
Cancel;
ShowMessage('数据保存发生错误,请检查数据是否正确');
end;
end;
end;
end;
procedure TfrmBuyDevice.ComboBoxAddData(Sender: TObject);
begin
if DBComboBox1.Text = '整机类' then
begin
DBComboBox2.Text := '';
DBComboBox2.Items.Clear;
DBComboBox2.Items.Insert(0, '组装机');
DBComboBox2.Items.Insert(1, '品牌机');
DBComboBox2.Items.Insert(2, '笔记本');
end;
if DBComboBox1.Text = '配件类' then
begin
DBComboBox2.Text := '';
DBComboBox2.Items.Clear;
DBComboBox2.Items.Insert(0, 'CPU');
DBComboBox2.Items.Insert(1, '内存');
DBComboBox2.Items.Insert(2, '硬盘');
DBComboBox2.Items.Insert(3, '主板');
DBComboBox2.Items.Insert(4, '显卡');
DBComboBox2.Items.Insert(5, '声卡');
DBComboBox2.Items.Insert(6, 'CD-ROM');
DBComboBox2.Items.Insert(7, 'DVD-ROM');
DBComboBox2.Items.Insert(8, '刻录机');
DBComboBox2.Items.Insert(9, '键盘');
DBComboBox2.Items.Insert(10, '鼠标');
DBComboBox2.Items.Insert(11, '音箱');
DBComboBox2.Items.Insert(12, '机箱');
end;
if DBComboBox1.Text = '外设类' then
begin
DBComboBox2.Text := '';
DBComboBox2.Items.Clear;
DBComboBox2.Items.Insert(0, 'LCD显示器');
DBComboBox2.Items.Insert(1, 'CRT显示器');
DBComboBox2.Items.Insert(2, '视频产品');
DBComboBox2.Items.Insert(3, '打印机');
DBComboBox2.Items.Insert(4, '扫描仪');
end;
if DBComboBox1.Text = '网络类' then
begin
DBComboBox2.Text := '';
DBComboBox2.Items.Clear;
DBComboBox2.Items.Insert(0, '网卡');
DBComboBox2.Items.Insert(1, '集线器');
end;
if DBComboBox1.Text = '数码类' then
begin
DBComboBox2.Text := '';
DBComboBox2.Items.Clear;
DBComboBox2.Items.Insert(0, '移动存储');
DBComboBox2.Items.Insert(1, '数码相机');
DBComboBox2.Items.Insert(2, '数码摄象机');
DBComboBox2.Items.Insert(3, '摄象头');
DBComboBox2.Items.Insert(4, 'MP3');
end;
if DBComboBox1.Text = '耗材类' then
begin
DBComboBox2.Text := '';
DBComboBox2.Items.Clear;
DBComboBox2.Items.Insert(0, '针式打印机');
DBComboBox2.Items.Insert(1, '喷墨打印机');
DBComboBox2.Items.Insert(2, '激光打印机');
end;
if DBComboBox1.Text = '软件类' then
begin
DBComboBox2.Text := '';
DBComboBox2.Items.Clear;
DBComboBox2.Items.Insert(0, '杀毒软件');
end;
if DBComboBox1.Text = '其它' then
begin
DBComboBox2.Text := '';
DBComboBox2.Items.Clear;
end;
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -