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

📄 ubuydevice.pas

📁 Delphi+SQL SEVER开发的电脑销售管理系统
💻 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 + -