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

📄 unit_mater_main.pas

📁 此代码为企业原料管理代码
💻 PAS
📖 第 1 页 / 共 2 页
字号:
  if Qry_Main.fieldbyname('日期').asdatetime <=dm.zdyGetmaterCheckDate then //d_LimDate then
  begin
    showmessage('不允许修改结账日期之前的记录!'+#13+#13+'上次结帐日期是:'+datetostr(dm.zdyGetmaterCheckDate));
    perform(WM_NEXTDLGCTL,0,0);
    exit;
  end;

  n_id:=qry_Main.fieldbyname('标识号').asinteger;

  if not qry_main.FieldByName('出入标识').asboolean then // 是入库
  begin
    with Form_Mater_InMod.Tab_InCard do
    begin
      open;
      setkey;
      findkey([n_id]);
    end; //with
    Form_Mater_InMod.Tab_InCard.edit;
    Form_Mater_InMod.showmodal;
  end
  else
  begin
    with Form_Mater_OutMod.Tab_OutCard do
    begin
      open;
      setkey;
      findkey([n_id]);
    end; //with
    Form_Mater_OutMod.Tab_OutCard.edit;
    Form_mater_OutMod.showmodal;
  end;


end;

procedure TForm_Mater_Main.Edit_materChange(Sender: TObject);
var
   s_date:string;
begin
//为ComboBox_Indate填写数据
  with Qry_exe do
  begin
    close;
    sql.Clear;
    sql.Add('select 领料单号 from 原材料台帐  ');
    sql.Add('where 材料名称 = :v_mater and 最后领料标识 = :v_LastOutCardFlag  and 库存 > 0 ');
    sql.Add('group by 领料单号 ');
    parambyname('v_mater').asstring:=edit_mater.text;
    parambyname('v_LastOutCardFlag').asboolean:=true;
    open;
    if recordcount = 0 then exit;

    ComboBox_Indate.Items.clear;
    while not eof do
    begin
      s_date:=fieldbyname('领料单号').asstring+'kk';
      s_date[8]:=s_date[6];
      s_date[7]:=s_date[5];
      s_date[5]:=s_date[4];
      s_date[4]:=s_date[3];
      s_date[3]:='-';
      s_date[6]:='-';
      ComboBox_InDate.Items.append(s_date);
      next;
    end; //while
  end;   //with

  ComboBox_Indate.ItemIndex:=0;

//为ComboBox_Per 填写数据

  with Qry_exe do
  begin
    close;
    sql.Clear;
    sql.Add('select 单价 from 原材料台帐  ');
    sql.Add('where 材料名称 = :v_mater and 最后领料标识 = :v_LastOutCardFlag  and 库存 > 0 ');
    sql.Add('and 领料单号 = :v_OutCardNum ');
    sql.Add('group by 单价 ');
    parambyname('v_mater').asstring:=edit_mater.text;
    parambyname('v_LastOutCardFlag').asboolean:=true;
    parambyname('v_OutCardNum').asstring:=formatdatetime('yymmdd',(strtodate(ComboBox_Indate.text)));
    open;
    if recordcount = 0 then exit;
    
    ComboBox_Per.Items.clear;
    while not eof do
    begin
      ComboBox_Per.Items.append(floattostr(fieldbyname('单价').asfloat));
      next;
    end; //while
  end;//with
  ComboBox_Per.ItemIndex:=0;

end;

procedure TForm_Mater_Main.N_QryIOClick(Sender: TObject);
begin
  Form_Mater_Qry.ShowModal;
end;

procedure TForm_Mater_Main.N_StockViewClick(Sender: TObject);
begin
  Form_Mater_StockView.showmodal;

end;

procedure TForm_Mater_Main.N_DicMaterClick(Sender: TObject);
begin
  Form_Mater_Dic.Tab_Dic.open;
  Form_Mater_Dic.showmodal;
end;

procedure TForm_Mater_Main.N_SumClick(Sender: TObject);

begin
  Form_mater_summima.ShowModal;

end;

procedure TForm_Mater_Main.N16Click(Sender: TObject);
begin
  if not Qry_Main.Active then
  begin
    showmessage('请先调出某个原材料的台帐');
    exit;
  end; //if

  Form_Mater_PrtIO.QRLabel_Date.Caption:=datetostr(date);
  Form_Mater_PrtIO.QuickRep1.Preview;
end;

procedure TForm_Mater_Main.N8Click(Sender: TObject);
begin
  if not Qry_Main.Active then
  begin
    showmessage('请先调出某个原材料的台帐');
    exit;
  end; //if

  if messagedlg('打印当前所显示原材料的台帐.'+#13+#13+'要继续吗?',mtinformation, [mbyes,mbno],0) = mryes then
  begin
    Form_Mater_PrtIO.QRLabel_Date.Caption:=datetostr(date);
    Form_Mater_PrtIO.QuickRep1.Print;
  end; //if
end;

procedure TForm_Mater_Main.Qry_MainAfterScroll(DataSet: TDataSet);
begin
  StatusBar1.Panels[1].Text:=format('共找到 %d 张入库单和出库单, 您现在选中的是第 %d 张。',[Qry_Main.recordcount, Qry_Main.recno]);

end;

procedure TForm_Mater_Main.N13Click(Sender: TObject);
begin
  Form_Mater_AboutBox.showmodal;
end;

procedure TForm_Mater_Main.ComboBox_IndateChange(Sender: TObject);
begin
//为ComboBox_Per 填写数据
  with Qry_exe do
  begin
    close;
    sql.Clear;
    sql.Add('select 单价 from 原材料台帐  ');
    sql.Add('where 材料名称 = :v_mater and 最后领料标识 = :v_LastOutCardFlag  and 库存 > 0 ');
    sql.Add('and 领料单号 = :v_OutCardNum ');
    sql.Add('group by 单价 ');
    parambyname('v_mater').asstring:=edit_mater.text;
    parambyname('v_LastOutCardFlag').asboolean:=true;
    parambyname('v_OutCardNum').asstring:=formatdatetime('yymmdd',(strtodate(ComboBox_Indate.text)));
    open;
    ComboBox_Per.Items.clear;
    while not eof do
    begin
      ComboBox_Per.Items.append(floattostr(fieldbyname('单价').asfloat));
      next;
    end; //while
  end;//with
  ComboBox_Per.ItemIndex:=0;

end;

procedure TForm_Mater_Main.N19Click(Sender: TObject);
var
  s_Pass:string;
  b_Check:boolean;
begin
  b_check:=false;
  s_Pass:=inputbox('密码','请输入会计密码:','');

  with Qry_exe do
  begin
    close;
    sql.Clear;
    sql.Add('select * from 人员登陆表 where 职务 = "会计" ');
    open;
    while not eof do
    begin
      if s_pass = fieldbyname('密码').asstring then
        b_check := true;
      next;
    end;//while
  end; //with

  if not b_check then
  begin
    messagedlg('您所输入的会计密码不正确 或者没有注册!', mterror, [mbok], 0 );
    exit;
  end; //if

  Form_Mater_SumCancel.Panel_Rep.Caption:=' 您上次结帐的日期为  ' +datetostr(d_LimDate);
  Form_Mater_SumCancel.showmodal;
end;

procedure TForm_Mater_Main.N_InitClick(Sender: TObject);
begin

 // Form_Mater_SysPass.showmodal;
end;

procedure TForm_Mater_Main.N2Click(Sender: TObject);
 var
  n_id ,lingliao_id :string;
  abc_id, danjia_id :real;
begin
  Form_Mater_tishi.Visible:=True;
       Form_Mater_tishi.show;
       with Qry_lastture do
        begin
         close;
         sql.clear;
         sql.Add('select 材料名称,领料单号,单价,min( 库存)as abc from 原材料台帐  ');
         sql.Add('group by 材料名称,领料单号,单价');
         open;
         end; //with
        with Qry_lastture do
        begin
         open;
         while not eof do

        begin
         n_id:= Qry_lastture.fieldbyname('材料名称').asstring;
         lingliao_id:= Qry_lastture.fieldbyname('领料单号').asstring;
         danjia_id:= Qry_lastture.fieldbyname('单价').asfloat;
         abc_id:= Qry_lastture.fieldbyname('abc').asfloat;
         Qry_gailastflag. close;
         Qry_gailastflag. sql.Clear;
         Qry_gailastflag. sql.Add('select *  from 原材料台帐   ');
         Qry_gailastflag. sql.Add('where 材料名称  = :v_id and 领料单号=:danhao and 单价=:danjia and 库存=:bc');
         Qry_gailastflag. parambyname('v_id').asstring:=n_id;
         Qry_gailastflag. parambyname('danhao').asstring:=lingliao_id;
         Qry_gailastflag. parambyname('danjia').asfloat:=danjia_id;
         Qry_gailastflag. parambyname('bc').asfloat:=abc_id;
         Qry_gailastflag. open;
        if Qry_gailastflag . fieldbyname('最后领料标识').asboolean =true then
         begin
          next;
         continue;
         end;

       Qry_gailastflag.  close;
       Qry_gailastflag. sql.Clear;
       Qry_gailastflag. sql.Add('update 原材料台帐 set 最后领料标识 = :v_LastOutCardFlag ');
       Qry_gailastflag.  sql.Add('where 材料名称  = :v_id and 领料单号=:danhao and 单价=:danjia and 库存=:bc');
       Qry_gailastflag.  parambyname('v_LastOutCardFlag').asboolean:=true;
       Qry_gailastflag. parambyname('v_id').asstring:=n_id;
       Qry_gailastflag. parambyname('danhao').asstring:=lingliao_id;
       Qry_gailastflag. parambyname('danjia').asfloat:=danjia_id;
       Qry_gailastflag. parambyname('bc').asfloat:=abc_id;
       Qry_gailastflag. execsql;

          next;
       end;//while
       end; //with
       Form_Mater_tishi.close;
        exit;
end;

procedure TForm_Mater_Main.FormKeyPress(Sender: TObject; var Key: Char);
begin
  if key = #13 then
  begin
    key:=#0;
    perform(WM_NEXTDLGCTL,0,0);
  end; //if
end;

procedure TForm_Mater_Main.Edit_indexEnter(Sender: TObject);
begin
  TEdit(Sender).color:=claqua;
end;

procedure TForm_Mater_Main.Edit_indexExit(Sender: TObject);
begin
  TEdit(Sender).color:=clwindow;
end;

procedure TForm_Mater_Main.Edit_indexChange(Sender: TObject);
begin
  with Qry_Exe  do
  begin
    close;
    sql.clear;
    sql.add('select * from 原材料字典 where 简称 = :v_index ');
    parambyname('v_index').asstring:=Edit_Index.text;
    open;
    if recordcount = 0 then exit;
    Edit_mater.text:= fieldbyname('材料名称').asstring;
  end;//with
end;

procedure TForm_Mater_Main.N_AutoClick(Sender: TObject);
var
  s:string;
begin
  if not Form_Rubb_QryProcCard.Qry_QryProcCard.Active then
  begin
    messagedlg('请先打开胶料部分的工艺卡!',mtwarning,[mbok],0);
    exit;
  end; //if

//  showmessage(inttostr(Form_Rubb_QryProcCard.Qry_QryProcCard.fieldbyname('配方编号').asinteger));

  if Form_Rubb_Main.dbePrice.text <> '' then
  begin
    showmessage('这张工艺卡已经领过料了!');
    exit;
  end; //if
    s:= Form_Rubb_QryProcCard.Qry_QryProcCard.fieldbyname('配方编号').asstring;
  if s='' then
   begin
   showmessage('库内没有保存配方单,请输入配方单!');
   exit;
   end;
  Form_Rubb_AutoCard.Edit_MixCardNum.text:=inttostr(Form_Rubb_QryProcCard.Qry_QryProcCard.fieldbyname('配方编号').asinteger);
  Form_Rubb_AutoCard.showmodal;
end;

procedure TForm_Mater_Main.N18Click(Sender: TObject);
begin
{
  if messagedlg('本操作会清除库存量为零的入库记录,要继续吗?',mtwarning,[mbyes,mbno],0) = mryes then
  begin
    with qry_exe do
    begin
      close;
      sql.clear;
      sql.add('delete from 原材料台帐 where 剩余库存 = 0 and 最后领料标识 = :bT ');
      parambyname('bT').asboolean:=false;
      execsql;
    end; //with
    showmessage('已经完成了清除工作!');
  end //if
  else
    showmessage('您取消了操作!');
 }   
end;

procedure TForm_Mater_Main.N21Click(Sender: TObject);
begin
  frmMsumlist.showmodal;
end;

end.

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -