【delphi开源代码栏目提醒】:网学会员鉴于大家对delphi开源代码十分关注,论文会员在此为大家搜集整理了“GoodsSelectUnit.pas”一文,供大家参考学习
unit GoodsSelectUnit;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, ComCtrls, Grids, Buttons, ExtCtrls, ToolWin, DB,
DBTables;
type
TGoodsSelectForm = class(TForm)
PanelBkGnd: TPanel;
SG_data: TStringGrid;
StatusBar1: TStatusBar;
Label2: TLabel;
SB_find: TSpeedButton;
E_find: TEdit;
ControlBar1: TControlBar;
ToolBar1: TToolBar;
TB_Select: TToolButton;
TB_EDIT: TToolButton;
TB_DEL: TToolButton;
ToolButton5: TToolButton;
tb_Add: TToolButton;
TB_EXIT: TToolButton;
Panel: TPanel;
Label1: TLabel;
CB_Name: TComboBox;
Bevel1: TBevel;
Query_data: TQuery;
query_basemess: TQuery;
procedure TB_SelectClick(Sender: TObject);
procedure TB_EDITClick(Sender: TObject);
procedure tb_AddClick(Sender: TObject);
procedure CB_NameChange(Sender: TObject);
procedure TB_EXITClick(Sender: TObject);
procedure FormCreate(Sender: TObject);
procedure SG_dataDblClick(Sender: TObject);
procedure User_addlist(S_name: string);
procedure E_findChange(Sender: TObject);
procedure E_findKeyPress(Sender: TObject; var Key: Char);
procedure TB_DELClick(Sender: TObject);
procedure FormClose(Sender: TObject; var Action: TCloseAction);
private
{ Private declarations }
public
{ Public declarations }
end;
var
GoodsSelectForm: TGoodsSelectForm;
implementation
uses GoodsEditUnit, FunctionUnit, MainUnit;
{$R *.dfm}
procedure TGoodsSelectForm.User_addlist(S_name: string);
var
I_lines: integer;
begin
for I_lines := 1 to sg_data.RowCount do
begin
sg_data.Rows[I_lines].Clear;
end;
//增加查找列表
with query_basemess do
begin
close;
if (s_name = '所有商品') or (trim(s_name) = '') then
sql.text := 'select * from goods order by name'
else
sql.text := 'select * from goods where name="' + s_name + '" order by name';
open;
if recordcount > 0 then
sg_data.rowcount := recordcount + 1
else
sg_data.RowCount := 2;
first;
I_lines := 1;
while not eof do
begin
sg_data.Cells[0, I_lines] := inttostr(I_lines);
sg_data.cells[1, I_lines] := fieldbyname('id').asstring;
sg_data.cells[2, I_lines] := fieldbyname('name').asstring;
sg_data.Cells[3, I_lines] := fieldbyname('type').asstring;
sg_data.Cells[4, I_lines] := fieldbyname('price').asstring;
sg_data.Cells[5, I_lines] := fieldbyname('sellprice').asstring;
sg_data.Cells[6, I_lines] := fieldbyname('unit').asstring;
sg_data.Cells[7, I_lines] := fieldbyname('memo').asstring;
I_lines := I_lines + 1;
next;
end;
close;
end;
sg_data.Row := 1;
if sg_data.RowCount > 1 then
sg_data.FixedRows := 1
else
sg_data.FixedRows := 0;
end;
procedure TGoodsSelectForm.TB_SelectClick(Sender: TObject);
begin
ModalResult := mrOK;
end;
procedure TGoodsSelectForm.TB_EDITClick(Sender: TObject);
var
I_temp: integer;
B_find: Boolean;
begin
if SG_data.Cells[1, 1] = '' then exit;
Application.CreateForm(TGoodsEditForm, GoodsEditForm);
GoodsEditForm.Caption := '商品信息(编辑)';
GoodsEditForm.P_state := 1;
with GoodsEditForm do
begin
P_state := 1;
e_id.Text := SG_data.Cells[1, SG_data.Row];
e_name.Text := SG_data.Cells[2, SG_data.Row];
e_type.text := SG_data.Cells[3, SG_data.Row];
e_price.Text := sg_data.cells[4, sg_data.Row];
e_sellprice.Text := sg_data.cells[5, sg_data.Row];
e_unit.Text := SG_data.Cells[6, SG_data.Row];
e_memo.Text := SG_data.Cells[7, SG_data.Row];
end;
GoodsEditForm.showmodal;
with query_data do
begin
close;
sql.Clear;
sql.text := 'select * from goods order by name';
open;
CB_NAME.Items.add('所有商品');
while not eof do
begin
B_find := false;
for I_temp := 0 to CB_NAME.items.Count - 1 do
begin
if CB_NAME.Items[I_temp] = fieldbyname('name').asstring then
B_find := true; //找到相同名称
end;
if not B_find then //没有找到时增加
CB_NAME.Items.add(fieldbyname('name').asstring);
next;
end;
close;
end;
GoodsEditForm.free;
CB_NAMEChange(self);
end;
procedure TGoodsSelectForm.tb_AddClick(Sender: TObject);
var
I_temp: integer;
B_find: Boolean;
begin
Application.CreateForm(TGoodsEditForm, GoodsEditForm);
GoodsEditForm.E_name.Text := SG_data.Cells[2, SG_data.Row];
GoodsEditForm.Caption := '商品信息(增加)';
GoodsEditForm.P_state := 0;
GoodsEditForm.showmodal;
with query_data do
begin
close;
sql.Clear;
sql.text := 'select * from goods order by name';
open;
CB_NAME.Items.add('所有商品');
while not eof do
begin
B_find := false;
for I_temp := 0 to C