📄 querywz.pas
字号:
unit queryWz;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, DBTables, DB, Grids, DBGrids, StdCtrls;
type
TfrmQueryWz = class(TForm)
GroupBox1: TGroupBox;
Label1: TLabel;
wzId: TEdit;
Label2: TLabel;
wzName: TComboBox;
Label4: TLabel;
sp: TEdit;
Button1: TButton;
GroupBox2: TGroupBox;
Label3: TLabel;
num1: TEdit;
Label5: TLabel;
num2: TEdit;
DBGrid1: TDBGrid;
Label6: TLabel;
Button2: TButton;
Query1: TQuery;
DataSource1: TDataSource;
Table1: TTable;
procedure FormCreate(Sender: TObject);
procedure wzNameSelect(Sender: TObject);
procedure num1Exit(Sender: TObject);
procedure num2Exit(Sender: TObject);
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
frmQueryWz: TfrmQueryWz;
implementation
{$R *.dfm}
uses comFunc;
procedure TfrmQueryWz.FormCreate(Sender: TObject);
begin
{初始化物资名称和物资编号以及单位}
wzName.Items.Add('');
with table1 do
begin
open;
while not eof do
begin
wzName.Items.Add(fieldByName('物资名称').AsString);
next;
end;
wzName.ItemIndex:=0;
wzId.Text:='';
close;
end;//end of with
{初始化其他}
num1.Text:='';
num2.Text:='';
sp.Text:='';
end;
procedure TfrmQueryWz.wzNameSelect(Sender: TObject);
begin
if wzName.ItemIndex=0 then
begin
wzId.Text:='';
exit;
end;
with table1 do
begin
open;
while not eof do
begin
if fieldByName('物资名称').AsString=wzName.Items[wzName.ItemIndex] then
begin
wzId.Text:=fieldByName('物资编号').AsString;
break;
end;
next;
end;
close;
end;
end;
procedure TfrmQueryWz.num1Exit(Sender: TObject);
begin
if (isInteger(num1.Text)=false) and
(num1.Text<>'') then
begin
showMessage('输入的数量有错误!');
activeControl:=num1;
end;
end;
procedure TfrmQueryWz.num2Exit(Sender: TObject);
begin
if (isInteger(num2.Text)=false) and
(num2.Text<>'') then
begin
showMessage('输入的数量有错误!');
activeControl:=num2;
end;
end;
procedure TfrmQueryWz.Button1Click(Sender: TObject);
var
s:string;
i:integer;
begin
{生成sql语句}
i:=0;
s:='select 物资编号,物资名称,库存数量,单位,单价,供应商,物资描述';
s:=s+' from wzinfo ';
if wzId.Text<>'' then
begin
if i<>0 then
s:=s+' and '
else
s:=s+' where ';
i:=i+1;
s:=s+'物资编号='''+wzId.Text+''' ';
end;
if num1.Text<>'' then
begin
if i<>0 then
s:=s+' and '
else
s:=s+' where ';
i:=i+1;
s:=s+'库存数量>='+num1.Text;
end;
if num2.Text<>'' then
begin
if i<>0 then
s:=s+' and '
else
s:=s+' where ';
i:=i+1;
s:=s+'库存数量<='+num2.Text;
end;
if sp.Text<>'' then
begin
if i<>0 then
s:=s+' and '
else
s:=s+' where ';
s:=s+'供应商=' +sp.Text;
end;
{进行查询操作}
with query1 do
begin
sql.Clear;
sql.Add(s);
open;
end;
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -