【delphi开源代码栏目提醒】:文章导读:在新的一年中,各位网友都进入紧张的学习或是工作阶段。网学会员整理了delphi开源代码-kcgl.pas的相关内容供大家参考,祝大家在新的一年里工作和学习顺利!
unit kcgl;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, ExtCtrls, StdCtrls, Buttons;
type
TForm1 = class(TForm)
Panel1: TPanel;
Panel2: TPanel;
Label1: TLabel;
Label2: TLabel;
ComboBox1: TComboBox;
Label3: TLabel;
Label4: TLabel;
Edit1: TEdit;
Edit3: TEdit;
BitBtn1: TBitBtn;
BitBtn2: TBitBtn;
BitBtn3: TBitBtn;
ComboBox2: TComboBox;
procedure Edit1KeyPress(Sender: TObject; var Key: Char);
procedure Edit3KeyPress(Sender: TObject; var Key: Char);
procedure BitBtn2Click(Sender: TObject);
procedure FormShow(Sender: TObject);
procedure ComboBox1KeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
procedure ComboBox2KeyPress(Sender: TObject; var Key: Char);
procedure BitBtn1Click(Sender: TObject);
procedure Edit1KeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
procedure ComboBox1Change(Sender: TObject);
procedure BitBtn1MouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
procedure BitBtn1MouseUp(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
procedure ComboBox2Change(Sender: TObject);
procedure Edit1Change(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
uses Data1;
{$R *.dfm}
procedure TForm1.Edit1KeyPress(Sender: TObject; var Key: Char);
var
m: Boolean;
begin
m := (Key<#8)or(Key>#8)and(Key<#48)or(Key>#57);
if m then
Key := #0;
end;
procedure TForm1.Edit3KeyPress(Sender: TObject; var Key: Char);
var
m: Boolean;
begin
m := (Key<#8)or(Key>#8)and(Key<#46)or(Key>#46)and(Key<#48)or(Key>#57);
if m then
Key := #0;
end;
procedure TForm1.BitBtn2Click(Sender: TObject);
begin
ComboBox1.ItemIndex := 0;
ComboBox2.Clear;
Edit1.Clear;
Edit3.Clear;
end;
procedure TForm1.FormShow(Sender: TObject);
begin
ComboBox1.Clear;
with DataModule1.ADOQuery1 do
begin
Close;
SQL.Clear;
SQL.Add('select Distinct 商品名称 from 商品基础信息表');
Open;
end;
if DataModule1.ADOQuery1.RecordCount>0 then
begin
while Not DataModule1.ADOQuery1.Eof do
begin
ComboBox1.Items.Add(DataModule1.ADOQuery1.FieldByName('商品名称').AsString);
DataModule1.ADOQuery1.Next;
end;
end;
ComboBox1.ItemIndex := 0;
end;
procedure TForm1.ComboBox1KeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
begin
if (Key = VK_ReTurn)and(Trim(ComboBox1.Text)<>'')then
begin
with DataModule1.ADOQuery1 do
begin
Close;
SQL.Clear;
SQL.Add('select 商品编号 from 商品基础信息表 where 商品名称 = :a');
Parameters.ParamByName('a').Value := Trim(ComboBox1.Text);
Open;
end;
if DataModule1.ADOQuery1.RecordCount>0 then
begin
ComboBox2.Clear;
while Not DataModule1.ADOQuery1.Eof do
begin
ComboBox2.Items.Add(DataModule1.ADOQuery1.FieldByName('商品编号').AsString);
DataModule1.ADOQuery1.Next;
end;
ComboBox2.ItemIndex := 0;
end;
FindNextControl(Self.ActiveControl,True,False,False).SetFocus;
end;
end;
procedure TForm1.ComboBox2KeyPress(Sender: TObject; var Key: Char);
begin
Key := #0
end;
procedure TForm1.BitBtn1Click(Sender: TObject);
begin
if (Trim(ComboBox1.Text)<>'')and(Trim(ComboBox2.Text)<>'')and
(Trim(Edit1.Text)<>'')and(Trim(Edit3.Text)<>'')then
begin
Try
with DataModule1.ADOQuery1 do
begin
Close;
SQL.Clear;
SQL.Add('select * from 库存表 where 商品编号 = :a');
Parameters.ParamByName('a').Value := Trim(ComboBox2.Text);
Open;
end;
if DataModule1.ADOQuery1.RecordCount>0 then
begin
with DataModule1.ADOQuery1 do
begin
Close;
SQL.Clear;
SQL.Add('update 库存表 set 库存数量 = 库存数量 + :a ,库存金额 = 库存金额 + :b where 商品编号 = :c');
Parameters.ParamByName('a').Value := StrToInt(Edit1.Text);
Parameters.ParamByName('b').Value := StrToFloat(Edit3.Text);
Parameters.ParamByName('c').Value := Trim(ComboBox2.Text);
ExecSQL;
end;
end
else
begin
with DataModule1.ADOQuery1 do
begin
Close;
SQL.Clear;
SQL.Add('Insert 库存表 values (:a,:b,:c,:d,Default)');
Parameters.ParamByName('a').Value := Trim(ComboBox2.Text);
Parameters.ParamByName('b').Value := Trim(ComboBox1.Text);
Parameters.ParamByName('c').Value := StrToInt(Edit1.Text);
Parameters.ParamByName('d').Value := StrToFloat(Edit3.Text);
ExecSQL;
end;
end;
Application.MessageBox('操作成功。','提示',64);
BitBtn2.OnClick(Sen