⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 unitmatebasic.pas

📁 仓储系统
💻 PAS
📖 第 1 页 / 共 2 页
字号:
    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 + -