📄 material_kc.pas
字号:
unit Material_KC;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, DB, ADODB, StdCtrls, Mask, DBCtrls, Buttons, Grids, DBGrids,
ComCtrls, ExtCtrls;
type
TForm_Material_KC = class(TForm)
ADOQ_KC_Mate: TADOQuery;
DS_KC_Mate_Q: TDataSource;
ADOQ_KC_Matemat_id: TStringField;
ADOQ_KC_Matenum: TFloatField;
PageControl1: TPageControl;
TabSheet1: TTabSheet;
DBGrid1: TDBGrid;
TabSheet2: TTabSheet;
Label20: TLabel;
DBE_mat_id: TDBEdit;
DBE_num: TDBEdit;
Label3: TLabel;
Label6: TLabel;
DBE_mat_name: TDBEdit;
Label8: TLabel;
Label18: TLabel;
DBE_color: TDBEdit;
DBCheckBox_flag: TDBCheckBox;
DBE_price: TDBEdit;
Label_price: TLabel;
ADOQ_KC_Matemat_name: TStringField;
ADOQ_KC_Matematype_name: TStringField;
ADOQ_KC_Mateprice: TFloatField;
ADOQ_KC_Matecolor: TStringField;
ADOQ_KC_Mateunit: TStringField;
DBMemo1: TDBMemo;
Panel1: TPanel;
ExtBtn: TBitBtn;
DetailBtn: TBitBtn;
RefreshBtn: TBitBtn;
LocateBtn: TBitBtn;
Panel2: TPanel;
Label4: TLabel;
Label14: TLabel;
Label1: TLabel;
Label2: TLabel;
Label5: TLabel;
Label7: TLabel;
Label9: TLabel;
Bevel1: TBevel;
Edit_id: TEdit;
Edit_name: TEdit;
Edit_color: TEdit;
OKBtn: TBitBtn;
CancelBtn: TBitBtn;
ComboBox1: TComboBox;
Edit1: TEdit;
ComboBox3: TComboBox;
Edit2: TEdit;
ComboBox2: TComboBox;
Label12: TLabel;
DBEdit1: TDBEdit;
Panel3: TPanel;
Label21: TLabel;
Label29: TLabel;
Label30: TLabel;
Label31: TLabel;
Label32: TLabel;
ADOQ_KC_Matememo: TStringField;
RadioGroup1: TRadioGroup;
DBText1: TDBText;
Lookup_matype: TComboBox;
ADOQ_tmp: TADOQuery;
ADOQ_KC_Mateflag: TBooleanField;
BtnExport: TBitBtn;
procedure LocateBtnClick(Sender: TObject);
procedure CancelBtnClick(Sender: TObject);
procedure Edit_priceKeyPress(Sender: TObject; var Key: Char);
procedure OKBtnClick(Sender: TObject);
procedure FormClose(Sender: TObject; var Action: TCloseAction);
procedure DetailBtnClick(Sender: TObject);
procedure RefreshBtnClick(Sender: TObject);
procedure ComboBox2KeyPress(Sender: TObject; var Key: Char);
procedure DBGrid1DblClick(Sender: TObject);
procedure DBCheckBox_flagClick(Sender: TObject);
procedure BtnExportClick(Sender: TObject);
private
{ Private declarations }
procedure refreshdb;
public
{ Public declarations }
end;
var
Form_Material_KC: TForm_Material_KC;
implementation
uses sharevar, sharefun, data, Main;
{$R *.dfm}
procedure TForm_material_kc.refreshdb;
begin
with ADOQ_KC_Mate do
begin
try
close;
sql.Strings[2]:='';
sql.Strings[3]:='order by c.matype_name,b.flag,a.num desc';
execsql;
open;
except
MsgErr(handle,'刷新数据库失败(Material_KC_Q)!');
end;
end;
end;
procedure TForm_Material_KC.LocateBtnClick(Sender: TObject);
begin
if panel2.Visible then exit;
PageControl1.ActivePageIndex:=0;
Panel2.Enabled:=true;
Panel2.Visible:=true;
with adoq_tmp do
begin
close; sql.Clear;
sql.Add('select matype_name from material_type');
open;
Lookup_matype.Items.Clear;
Lookup_matype.Items.Add(' ');
first;
while not eof do
begin
Lookup_matype.Items.Add(fieldvalues['matype_name']);
next;
end;
end;
DetailBtn.Enabled:=false;
LocateBtn.Enabled:=false;
RefreshBtn.Enabled:=false;
Edit_id.Clear; Edit_name.Clear;
Edit_color.Clear; Lookup_matype.ItemIndex:=0;
edit1.Clear; edit2.Clear;
CancelBtn.Cancel:=true;
ExtBtn.Cancel:=false;
end;
procedure TForm_Material_KC.CancelBtnClick(Sender: TObject);
begin
Panel2.Enabled:=false;
Panel2.Visible:=false;
DetailBtn.Enabled:=true;
LocateBtn.Enabled:=true;
RefreshBtn.Enabled:=true;
CancelBtn.Cancel:=false;
ExtBtn.Cancel:=true;
end;
procedure TForm_Material_KC.Edit_priceKeyPress(Sender: TObject;
var Key: Char);
begin
if not (key in ['0'..'9',#13, #8,#46]) then abort;
end;
procedure TForm_Material_KC.ComboBox2KeyPress(Sender: TObject;
var Key: Char);
begin
abort;
end;
procedure TForm_Material_KC.OKBtnClick(Sender: TObject);
label get_sqltext;
var
tmpnum, tmpid, tmpname, tmpcolor, tmpmatype,
Bool_str, strwhere: string;
begin
case RadioGroup1.ItemIndex of
0:
bool_str:='';
1:
bool_str:='1';
2:
bool_str:='0';
end;
tmpid:=trim(Edit_id.text);
tmpname:=trim(Edit_name.text);
tmpcolor:=trim(Edit_color.Text);
tmpmatype:=trim(Lookup_matype.Text);
tmpnum:=Getquery_char(ComboBox1.Text,trim(Edit1.Text),trim(ComboBox2.Text),ComboBox3.Text,trim(Edit2.Text),'a.num');
strwhere:='';
//得到查询的条件语句
begin
if trim(bool_str)<>'' then bool_str:='(b.flag = '+''''+bool_str+''''+')';
if tmpname<>'' then tmpname:='(mat_name like '+''''+'%'+tmpname+'%'+''''+')';
if tmpcolor<>'' then tmpcolor:='(color like '+''''+'%'+tmpcolor+'%'+''''+')';
if tmpmatype<>'' then tmpmatype:='(matype_id in (select matype_id from material_type where matype_name ='+''''+tmpmatype+''''+')'+')';
if bool_str<>'' then
begin
strwhere:='and '+bool_str;
if tmpname<>'' then strwhere:=strwhere+' and '+tmpname;
if tmpcolor<>'' then strwhere:=strwhere+' and '+tmpcolor;
if tmpmatype<>'' then strwhere:=strwhere+' and '+tmpmatype;
goto Get_sqltext;
end;
if tmpname<>'' then
begin
strwhere:='and '+tmpname;
if tmpcolor<>'' then strwhere:=strwhere+' and '+tmpcolor;
if tmpmatype<>'' then strwhere:=strwhere+' and '+tmpmatype;
goto Get_sqltext;
end;
if tmpcolor<>'' then
begin
strwhere:='and '+tmpcolor;
if tmpmatype<>'' then strwhere:=strwhere+' and '+tmpmatype;
goto Get_sqltext;
end;
if tmpmatype<>'' then
begin
strwhere:='and '+tmpmatype;
goto Get_sqltext;
end;
Get_sqltext:
if (bool_str<>'') or (tmpname<>'') or (tmpcolor<>'') or (tmpmatype<>'')
then strwhere:=(strwhere + tmpnum)
else
begin
if tmpnum<>'' then strwhere:=' and '+copy(tmpnum,5,length(tmpnum));
end;
end;
with ADOQ_KC_Mate do
begin
try
close;
sql.Strings[2]:=strwhere;
sql.Strings[3]:='order by c.matype_name,b.flag,a.num desc';
execsql;
open;
except
MsgErr(handle,'数据库检索失败(Material_KC_Q)!');
refreshdb;
exit;
end;
btnexport.Enabled:=recordcount>0;
end;
Panel2.Enabled:=false;
Panel2.Visible:=false;
DetailBtn.Enabled:=true;
LocateBtn.Enabled:=true;
RefreshBtn.Enabled:=true;
end;
procedure TForm_Material_KC.FormClose(Sender: TObject;
var Action: TCloseAction);
begin
if ADOQ_KC_Mate.Active then ADOQ_KC_Mate.Close;
action:=cafree;
end;
procedure TForm_Material_KC.DetailBtnClick(Sender: TObject);
begin
PageControl1.ActivePageIndex:=1;
end;
procedure TForm_Material_KC.RefreshBtnClick(Sender: TObject);
begin
if not ADOQ_KC_Mate.Active then exit;
refreshdb;
end;
procedure TForm_Material_KC.DBGrid1DblClick(Sender: TObject);
begin
if not ADOQ_KC_Mate.Active then exit;
if adoq_kc_mate.RecordCount=0 then exit;
PageControl1.ActivePageIndex:=1;
end;
procedure TForm_Material_KC.DBCheckBox_flagClick(Sender: TObject);
var flag_bool:boolean;
begin
flag_bool:=DBCheckBox_flag.Checked;
if flag_bool then
begin
Label_price.Visible:=true;
DBE_price.Visible:=true;
Label12.Visible:=true;
end
else
begin
Label_price.Visible:=false;
DBE_price.Visible:=false;
Label12.Visible:=false;
end;
end;
procedure TForm_Material_KC.BtnExportClick(Sender: TObject);
begin
Form_main.WriteIntoExcel(DBGrid1,datetostr(date),'物料库存信息报表');
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -