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

📄 unit_rubb_incard.~pas

📁 此代码为企业原料管理代码
💻 ~PAS
字号:
unit Unit_Rubb_InCard;

interface

uses
  Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
  StdCtrls, Mask, DBCtrls, ExtCtrls, Grids, DBGrids, Db, DBTables, Buttons;

type
  TForm_Rubb_InCard = class(TForm)
    Tab_InCard: TTable;
    DBGrid1: TDBGrid;
    Qry_exe: TQuery;
    DS_InCard: TDataSource;
    DS_Show: TDataSource;
    Qry_OutCard: TQuery;
    BitBtn_Show: TBitBtn;
    BitBtn2: TBitBtn;
    BitBtn_Ins: TBitBtn;
    Panel12: TPanel;
    Panel2: TPanel;
    Panel3: TPanel;
    BitBtn_Post: TBitBtn;
    Panel1: TPanel;
    BitBtn_Cancel: TBitBtn;
    BitBtn_Del: TBitBtn;
    ComboBox1: TComboBox;
    Query1: TQuery;
    procedure FormClose(Sender: TObject; var Action: TCloseAction);
    procedure FormKeyPress(Sender: TObject; var Key: Char);
    procedure DBGrid1KeyPress(Sender: TObject; var Key: Char);
    procedure DBGrid1ColEnter(Sender: TObject);
    procedure DBGrid1ColExit(Sender: TObject);
    procedure BitBtn_ShowClick(Sender: TObject);
    procedure FormCreate(Sender: TObject);
    procedure Edit_RubbChange(Sender: TObject);
    procedure BitBtn_InsClick(Sender: TObject);
    procedure BitBtn_PostClick(Sender: TObject);
    procedure FormShow(Sender: TObject);
    procedure BitBtn_CancelClick(Sender: TObject);
    procedure BitBtn_DelClick(Sender: TObject);
    procedure BitBtn1Click(Sender: TObject);
    procedure BitBtn3Click(Sender: TObject);
    procedure BitBtn2Click(Sender: TObject);
    procedure Tab_InCardAfterPost(DataSet: TDataSet);
    procedure FormKeyDown(Sender: TObject; var Key: Word;
      Shift: TShiftState);
  private
    { Private declarations }
    f_In,f_1,f_2,f_3,f_stock,f_yk:real;
    s_Rubb:string;
  public
    { Public declarations }
  procedure zdyshowRubbName();
  end;

var
  Form_Rubb_InCard: TForm_Rubb_InCard;

implementation

uses UnitDM, UnitQueryID;

{$R *.DFM}

procedure TForm_Rubb_InCard.zdyshowRubbName();
begin
  with Query1  do
  begin
    close;
    sql.Clear;
    sql.add('delete from 炼胶台帐 where 胶料名称 is null ');
    execsql;
  end; //with


  ComboBox1.Clear;
  with qry_exe do
  begin
    close;
    sql.Clear;
    sql.add('select 胶料名称 from 炼胶台帐 group by 胶料名称 ');
    open;
    while not eof do
    begin
      ComboBox1.Items.Add(fieldbyname('胶料名称').asstring);
      next;
    end; //while
  end; //with

  ComboBox1.ItemIndex:=0;

end;

procedure TForm_Rubb_InCard.FormClose(Sender: TObject;
  var Action: TCloseAction);
begin
  BitBtn_Show.Enabled:=true;
  BitBtn_Ins.Enabled:=true;

  Tab_Incard.Cancel;
end;

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

procedure TForm_Rubb_InCard.DBGrid1KeyPress(Sender: TObject;
  var Key: Char);
begin
  if key = #13 then
  begin
    with DbGrid1 do
    begin
      selectedindex:=selectedindex + 1;
    end; //with
  end;//if
end;

procedure TForm_Rubb_InCard.DBGrid1ColEnter(Sender: TObject);
begin
  if DBGrid1.SelectedField.FieldName = '胶料名称' then
  begin
    DBGrid1.SelectedField.Asstring:= s_Rubb ;
  end;//if

  if DBGrid1.SelectedField.FieldName = '日期' then
    DBGrid1.SelectedField.asdatetime:= date ;

  if DBGrid1.SelectedField.FieldName = '合计' then
  begin
    f_in:=Tab_InCard.fieldbyname('入库数量').asfloat;
    f_1:=Tab_InCard.fieldbyname('甲班领料').asfloat;
    f_2:=Tab_InCard.fieldbyname('乙班领料').asfloat;
    f_3:=Tab_InCard.fieldbyname('丙班领料').asfloat;
    f_yk:=Tab_InCard.fieldbyname('盈亏').asfloat;
    DBGrid1.SelectedField.AsFloat:= f_1+ f_2+ f_3 ;
  end; //if

  if DBGrid1.SelectedField.FieldName = '领胶人' then
  begin
    FrmcommqueryID.PageControl1.ActivePageIndex:=0;
    FrmcommqueryID.ActiveControl:=FrmcommqueryID.estaffID;
    if  FrmcommqueryID.showmodal=mrok then
    DBGrid1.SelectedField.Asstring:=FrmcommqueryID.query3.fieldbyname('staffname').asstring;
  end;

   if DBGrid1.SelectedField.FieldName = '送胶人' then
  begin
    FrmcommqueryID.PageControl1.ActivePageIndex:=0;
    FrmcommqueryID.ActiveControl:=FrmcommqueryID.estaffID;
    if  FrmcommqueryID.showmodal=mrok then
    DBGrid1.SelectedField.Asstring:=FrmcommqueryID.query3.fieldbyname('staffname').asstring;
  end;

  if DBGrid1.SelectedField.FieldName = '结存' then
  begin

    f_in:=Tab_InCard.fieldbyname('入库数量').asfloat;
    f_1:=Tab_InCard.fieldbyname('甲班领料').asfloat;
    f_2:=Tab_InCard.fieldbyname('乙班领料').asfloat;
    f_3:=Tab_InCard.fieldbyname('丙班领料').asfloat;
    f_yk:=Tab_InCard.fieldbyname('盈亏').asfloat;

    DBGrid1.SelectedField.AsFloat:=f_stock+ f_In- f_1- f_2- f_3+ f_yk ;
    BitBtn_Post.Enabled:=true;
  end; //if
end;

procedure TForm_Rubb_InCard.DBGrid1ColExit(Sender: TObject);
begin
    //   f_stock:=100;

  if DBGrid1.SelectedField.FieldName = '入库数量' then
    f_In:=DBGrid1.SelectedField.asfloat;
  if DBGrid1.SelectedField.FieldName = '甲班领料' then
    f_1:=DBGrid1.SelectedField.asfloat;
  if DBGrid1.SelectedField.FieldName = '乙班领料' then
    f_2:=DBGrid1.SelectedField.asfloat;
  if DBGrid1.SelectedField.FieldName = '丙班领料' then
    f_3:=DBGrid1.SelectedField.asfloat;
  if DBGrid1.SelectedField.FieldName = '盈亏' then
    f_yk:=DBGrid1.SelectedField.asfloat;

end;

procedure TForm_Rubb_InCard.BitBtn_ShowClick(Sender: TObject);
begin
  if ComboBox1.text = '' then
  begin
    showmessage('请填写胶料名称!');
    exit;
  end; //if

  with Tab_InCard do
  begin
    Tab_InCard.Cancel;
    Tab_InCard.Filtered:=true;
    Tab_InCard.Filter:=format('胶料名称  = ''%s''',[ComboBox1.text]);
    Tab_InCard.open;
    Tab_InCard.last;
    f_Stock:=fieldbyname('结存').asfloat;
    s_Rubb:=ComboBox1.text;
  end;// with

  BitBtn_Ins.Enabled:=true;
  BitBtn_Del.Enabled:=true;

end;

procedure TForm_Rubb_InCard.FormCreate(Sender: TObject);
begin
  f_Stock:=0;
end;

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

procedure TForm_Rubb_InCard.BitBtn_InsClick(Sender: TObject);
begin
  BitBtn_Show.Enabled:=false;
  BitBtn_Del.Enabled:=false;
  BitBtn_Ins.Enabled:=false;
  DBGrid1.Enabled:=true;
  DBGrid1.SetFocus;

  Tab_InCard.last;
  f_Stock:=Tab_InCard.fieldbyname('结存').asfloat;
  s_Rubb:=ComboBox1.text;

  Tab_InCard.append;
  DBGrid1.SelectedIndex:=1;

  BitBtn_Show.Enabled:=false;

end;

procedure TForm_Rubb_InCard.BitBtn_PostClick(Sender: TObject);
begin
   if (dm.zdyGetjiaoCheckDate >= Tab_InCard.fieldbyname('日期').asdatetime) then
    begin
      showmessage('您选择的结帐日期早于上次结帐日期!'+#13+#13+'上次结帐日期是:'+datetostr(dm.zdyGetjiaoCheckDate));
      // showmodal;
       //frmProdMain.Visible:=true;
      exit;
    end; // if
  BitBtn_Post.Enabled:=false;
  BitBtn_Show.Enabled:=true;
  BitBtn_Del.Enabled:=true;
  DBGrid1.Enabled:=false;
  BitBtn_Ins.Enabled:=true;
  Tab_InCard.post;

  zdyshowRubbName;
end;

procedure TForm_Rubb_InCard.FormShow(Sender: TObject);
begin
  BitBtn_Post.Enabled:=false;
  BitBtn_Ins.Enabled:=false;
  DBGrid1.Enabled:=false;
  BitBtn_Del.Enabled:=false;
  BitBtn_Ins.Enabled:=false;
end;

procedure TForm_Rubb_InCard.BitBtn_CancelClick(Sender: TObject);
begin
  BitBtn_Post.Enabled:=false;
  BitBtn_Show.Enabled:=true;
  BitBtn_Del.Enabled:=true;
  DBGrid1.Enabled:=false;
  Tab_InCard.Cancel;
  BitBtn_Ins.Enabled:=true;
end;

procedure TForm_Rubb_InCard.BitBtn_DelClick(Sender: TObject);
begin
  if messagedlg('将删除最后一笔帐,要继续吗?',mtwarning,[mbyes,mbno],0) = mryes then
  begin
    Tab_InCard.Last;
    Tab_InCard.Delete;
  end; //if
end;

procedure TForm_Rubb_InCard.BitBtn1Click(Sender: TObject);
begin
  Tab_InCard.Append;
end;

procedure TForm_Rubb_InCard.BitBtn3Click(Sender: TObject);
begin
  Tab_InCard.post;
end;

procedure TForm_Rubb_InCard.BitBtn2Click(Sender: TObject);
begin
  close;
end;

procedure TForm_Rubb_InCard.Tab_InCardAfterPost(DataSet: TDataSet);
begin
  if Tab_InCard.FieldByName('胶料名称').asstring = '' then
  begin
    Tab_InCard.cancel;
    showmessage('放弃提交');
  end; //
end;

procedure TForm_Rubb_InCard.FormKeyDown(Sender: TObject; var Key: Word;
  Shift: TShiftState);
begin
  try
   if ((Key>57) and (Key<48)) or ((Key<96) and (Key>110)) then
  //exit;
 // if Key=190 then
  exit;
  except
  end;
 end;
end.

⌨️ 快捷键说明

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