📄 unitmatebasic.pas
字号:
close;
sql.clear;
sql.add('select * from MateClass order by MClass_No');
open;
end;
setlength(listLb,dm.qry_MateClass.recordcount);
setlength(listLbmc,dm.qry_MateClass.recordcount);
cbbLb.Items.clear;
for i:=0 to dm.qry_MateClass.recordcount - 1 do
begin
listLb[i]:=trim(dm.qry_MateClass.fieldbyname('MClass_No').asstring);
listLbmc[i]:=trim(dm.qry_MateClass.fieldbyname('MClass_Name').asstring);
cbbLb.items.Add(listLb[i]+' '+listLbmc[i]);
dm.qry_MateClass.next;
end;
//添加部门代码
with dm.qry_Dept do
begin
close;
sql.clear;
sql.add('select * from Department order by Dept_id');
open;
end;
setlength(listDept,dm.qry_Dept.recordcount);
setlength(listDeptName,dm.qry_Dept.recordcount);
cbbDept.Items.clear;
for i:=0 to dm.qry_Dept.recordcount - 1 do
begin
listDept[i]:=trim(dm.qry_Dept.fieldbyname('Dept_id').asstring);
listDeptName[i]:=trim(dm.qry_Dept.fieldbyname('Dept_name').asstring);
cbbDept.items.Add(listDept[i]+' '+listDeptName[i]);
dm.qry_Dept.next;
end;
//添加计量单位代码
with dm.qry_JLUnit do
begin
close;
sql.Clear;
sql.add('select * from JLunit order by UnitNo');
open;
end;
setlength(listUnit,dm.qry_JLUnit.recordcount);
setlength(listUnitName,dm.qry_JLUnit.recordcount);
cbbUnit.Items.clear;
for i:=0 to dm.qry_JLUnit.recordcount - 1 do
begin
listUnit[i]:=trim(dm.qry_JLUnit.fieldbyname('UnitNo').asstring);
listUnitName[i]:=trim(dm.qry_JLUnit.fieldbyname('UnitName').asstring);
cbbUnit.items.Add(listUnit[i]+' '+listUnitName[i]);
dm.qry_JLUnit.next;
end;
//添加品质代码
with dm.qry_Quality do
begin
close;
sql.clear;
sql.add('select * from MateQuality');
open;
end;
setlength(listQuality,dm.qry_Quality.recordcount);
setlength(listQualityName,dm.qry_Quality.recordcount);
cbbQuality.Items.clear;
for i:=0 to dm.qry_Quality.recordcount - 1 do
begin
listQuality[i]:=trim(dm.qry_Quality.fieldbyname('QualityNo').asstring);
listQualityName[i]:=trim(dm.qry_Quality.fieldbyname('Quality').asstring);
cbbQuality.items.Add(listQuality[i]+' '+listQualityName[i]);
dm.qry_Quality.next;
end;
//添加库房代码
{ with dm.qry_Kf do
begin
close;
sql.add('select * from StoreRoom order by Storeroom_zip');
open;
end;
setlength(listKf,dm.qry_Kf.recordcount);
setlength(listKfmc,dm.qry_Kf.recordcount);
cbbKf.Items.clear;
for i:=0 to dm.qry_Kf.recordcount - 1 do
begin
listKf[i]:=dm.qry_Kf.fieldbyname('Storeroom_zip').asstring;
listKfmc[i]:=dm.qry_Kf.fieldbyname('Storeroom_name').asstring;
cbbKf.items.Add(listKf[i]+' '+listKfmc[i]);
//cbbKf.items.Add(listKfmc[i]);
dm.qry_Kf.next;
end;
//添加库位代码
with dm.qry_Kw do
begin
close;
sql.add('select * from Storeposition order by Storeroom_zip,Storeplace_zip');
open;
end;
setlength(listKw,dm.qry_Kw.recordcount);
setlength(listKwmc,dm.qry_Kw.recordcount);
cbbKw.Items.clear;
for i:=0 to dm.qry_Kw.recordcount - 1 do
begin
listKw[i]:=dm.qry_Kw.fieldbyname('Storeplace_zip').asstring;
listKwmc[i]:=dm.qry_Kw.fieldbyname('Storeplace_name').asstring;
cbbKw.items.Add(listKw[i]+' '+listKwmc[i]);
dm.qry_Kw.next;
end; }
//打开表
// str:='select * from mate_basic order by mate_code';
{ str:=' select distinct a.Mate_Code,a.Mate_Name,a.Mate_Type,a.Mate_Class, '+
' a.Mate_Unit,f.UnitName, '+
' a.Stoc_Amount,a.Mate_Price,a.Mate_TotalPrice, '+
' a.ABC_Class,a.Mate_Quality,c.Quality, '+
' a.KfNo,d.Storeroom_name, '+
' a.KwNo,e.Storeplace_name, '+
' a.DeptNo,b.Dept_Name,a.Oper_id,a.Mate_memo '+
' from mate_basic a '+
' left outer join Department b on a.DeptNo=b.Dept_id '+
' left outer join MateQuality c on a.Mate_Quality=c.QualityNo '+
' left outer join StoreRoom d on a.KfNo=d.Storeroom_zip '+
' left outer join Storeposition e on a.KwNo=e.Storeplace_zip '+
' left outer join JlUnit f on a.Mate_Unit=f.UnitNo '; }
// with dm.qry_MateBasic do
// begin
// close;
// sql.add(str);
// open;
// end;
// dm.qry_MateBasic.Close;
// dm.qry_MateBasic.Open;
end;
procedure TfrmMateBasic.edtMateCodeExit(Sender: TObject);
begin
if dm.qry_MateBasic.Locate('Mate_Code',edtMateCode.text ,[loCaseInsensitive]) then
begin
application.MessageBox('注意:'+#13+' 物料编码重复,请重新输入!','警告',mb_ok+mb_iconwarning);
edtMateCode.text:='';
clear(frmMateBasic);
edtMateCode.SetFocus;
exit;
end;
// edtMateClass.text:=copy(edtMateCode.text,1,3); //获取物料类别代码的前三位
end;
procedure TfrmMateBasic.dsMateBasicDataChange(Sender: TObject;
Field: TField);
var
i:integer;
str:string;
begin
edtMateCode.Text:=trim(DM.qry_MateBasic.fieldbyname('Mate_Code').asstring);
edtMateName.text:=trim(DM.qry_MateBasic.fieldbyname('Mate_Name').asstring);
edtType.text:=trim(DM.qry_MateBasic.fieldbyname('Mate_Type').asstring);
edtABC.text:=DM.qry_MateBasic.fieldbyname('ABC_Class').asstring; //这里的赋值要修改,以便数据源改变时也随着改变
edtNum.text:=trim(DM.qry_MateBasic.fieldbyname('Stoc_Amount').asstring);
edtPrice.text:=trim(DM.qry_MateBasic.fieldbyname('Mate_Price').asstring);
edtBz.text:=trim(DM.qry_MateBasic.fieldbyname('Mate_Memo').asstring);
//---------部门-----------------------
cbbDept.itemindex:=-1;
str:=DM.qry_MateBasic.FieldByName('DeptNo').asstring;
if high(listDept)>=0 then
begin
for i:=0 to high(listDept) do
begin
if listDept[i]=str then
begin
cbbDept.itemindex:=i;
break;
end;
end;
end;
//---------物料类别-----------------------
cbbLb.itemindex:=-1;
str:=trim(DM.qry_MateBasic.FieldByName('Mate_Class').asstring);
if high(listLb)>=0 then
begin
for i:=0 to high(listLb) do
begin
if listLb[i]=str then
begin
cbbLb.itemindex:=i;
break;
end;
end;
end;
//---------库房-----------------------
{ cbbKf.itemindex:=-1;
str:=DM.qry_MateBasic.FieldByName('KfNo').asstring;
if high(listKf)>=0 then
begin
for i:=0 to high(listKf) do
begin
if listKf[i]=str then
begin
cbbKf.itemindex:=i;
break;
end;
end;
end;
//---------库位-----------------------
cbbKw.itemindex:=-1;
str:=DM.qry_MateBasic.FieldByName('KwNo').asstring;
if high(listKw)>=0 then
begin
for i:=0 to high(listKw) do
begin
if listKw[i]=str then
begin
cbbKw.itemindex:=i;
break;
end;
end;
end; }
//计量单位代码
cbbUnit.itemindex:=-1;
str:=trim(DM.qry_MateBasic.FieldByName('Mate_Unit').asstring);
if high(listUnit)>=0 then
begin
for i:=0 to high(listUnit) do
begin
if listUnit[i]=str then
begin
cbbUnit.itemindex:=i;
break;
end;
end;
end;
// cbbUnit.Text:=DM.qry_MateBasic.FieldByName('Mate_Unit').asstring; //注意防止重名
//---------品质-----------------------
cbbQuality.itemindex:=-1;
str:=DM.qry_MateBasic.FieldByName('Mate_Quality').asstring;
if high(listQuality)>=0 then
begin
for i:=0 to high(listQuality) do
begin
if listQuality[i]=str then
begin
cbbQuality.itemindex:=i;
break;
end;
end;
end;
end;
procedure TfrmMateBasic.edtMateCodeKeyPress(Sender: TObject;
var Key: Char);
begin
if key=#13 then
begin
key:=#0;
perform(cm_dialogkey,vk_tab,0);
end;
end;
procedure TfrmMateBasic.edtBzKeyPress(Sender: TObject; var Key: Char);
begin
if key=#13 then
begin
key:=#0;
btnSave.SetFocus;
end;
end;
procedure TfrmMateBasic.cbbKwEnter(Sender: TObject);
var
i:integer;
begin
{ if cbbKf.text='' then
begin
application.MessageBox('请输入库房值!','提示',MB_OK+MB_DEFBUTTON1);
cbbKf.SetFocus ;
exit;
end;
with dm.qry_kw do
begin
close;
sql.clear;
sql.add('select * from Storeposition where Storeroom_zip=:kf');
Parameters.ParamByName('kf').value:=listKf[cbbKf.ItemIndex];
open;
end;
cbbKw.items.clear;
SetLength(Listkw,dm.qry_kw.RecordCount);
setlength(listKwmc,dm.qry_Kw.recordcount);
for i:=0 to dm.qry_Kw.recordcount - 1 do
begin
listKw[i]:=dm.qry_Kw.fieldbyname('Storeplace_zip').asstring;
listKwmc[i]:=dm.qry_Kw.fieldbyname('Storeplace_name').asstring;
cbbKw.items.Add(listKw[i]+' '+listKwmc[i]);
dm.qry_Kw.next;
end; }
end;
procedure TfrmMateBasic.cbbKfExit(Sender: TObject);
var
s_kf:string;
begin
{ if btnCancel.Focused then
begin
btnCancel.onclick(sender);
exit;
end;
if btnExit.focused then
begin
btnExit.OnClick(Sender);
exit;
end;
with dm.qry_Kf do
begin
close;
sql.clear;
sql.add('select * from StoreRoom where Storeroom_zip='''+copy(cbbkf.text,1,2)+'''');
open;
end;
if dm.qry_Kf.RecordCount>0 then
begin
//s_Kf:=copy(cbbKf.text,1,2)+' '+copy();
s_Kf:=cbbKf.text;
cbbKf.ItemIndex:=-1;
cbbKf.ItemIndex:=cbbKf.Items.IndexOf(s_Kf);
end else
begin
with dm.qry_Kf do
begin
close;
sql.clear;
sql.add('select * from StoreRoom where Storeroom_zip='''+copy(cbbkf.text,1,2)+'''');
open;
end;
if dm.qry_Kf.RecordCount>0 then
begin
s_kf:=dm.qry_Kf.fieldbyname('Storeroom_name').asstring;
cbbkf.ItemIndex:=-1;
cbbkf.ItemIndex:=cbbkf.Items.IndexOf(s_kf);
end else
begin
application.MessageBox('库房输入出错','提示',MB_OK+MB_DEFBUTTON1);
cbbkf.text:='';
cbbkf.SetFocus;
exit;
end;
end;
cbbkw.ItemIndex:=-1;
cbbkw.text:=''; }
end;
procedure TfrmMateBasic.FormShow(Sender: TObject);
var
str:string;
begin
str:='select * from mate_basic order by mate_code';
with dm.qry_MateBasic do
begin
close;
sql.add(str);
open;
end;
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -