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

📄 unit_dinginput.~pas

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

interface

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

type
  TForm_dinginput = class(TForm)
    Table1: TTable;
    DataSource1: TDataSource;
    Panel1: TPanel;
    Panel2: TPanel;
    DBGrid1: TDBGrid;
    DBEdit1: TDBEdit;
    DBEdit4: TDBEdit;
    DBEdit5: TDBEdit;
    DBEdit6: TDBEdit;
    DBEdit7: TDBEdit;
    DBEdit8: TDBEdit;
    Panel3: TPanel;
    Panel4: TPanel;
    Panel5: TPanel;
    Panel6: TPanel;
    Panel7: TPanel;
    Panel8: TPanel;
    Panel9: TPanel;
    Panel10: TPanel;
    DateTimePicker1: TDateTimePicker;
    DateTimePicker2: TDateTimePicker;
    Panel11: TPanel;
    Button1: TButton;
    Button2: TButton;
    Button3: TButton;
    Button4: TButton;
    Panel12: TPanel;
    Panel13: TPanel;
    Panel14: TPanel;
    DBEdit9: TDBEdit;
    DBEdit10: TDBEdit;
    DBEdit11: TDBEdit;
    Table1Kehumi: TStringField;
    Table1Chpimi: TStringField;
    Table1Tuhao: TStringField;
    Table1Diqi: TDateField;
    Table1Jiaohuriqi: TDateField;
    Table1Jihufash: TStringField;
    Table1Lixiren: TStringField;
    Table1Dijin: TFloatField;
    Table1Touru: TFloatField;
    Table1Note: TStringField;
    Panel15: TPanel;
    Panel16: TPanel;
    Button7: TButton;
    Panel17: TPanel;
    Label1: TLabel;
    Label2: TLabel;
    Label3: TLabel;
    DateTimePicker3: TDateTimePicker;
    DateTimePicker4: TDateTimePicker;
    Button8: TButton;
    DBEdit12: TDBEdit;
    DBEdit13: TDBEdit;
    Table1Xuhao: TStringField;
    Table1Shuli: TIntegerField;
    Table1Dajia: TFloatField;
    DBEdit14: TDBEdit;
    Table1ProdID: TStringField;
    DBEdit3: TDBEdit;
    DBEdit2: TDBEdit;
    Query1: TQuery;
    DBEdit15: TDBEdit;
    DBEdit16: TDBEdit;
    Table1Tanhuang: TIntegerField;
    Table1Gujia: TIntegerField;
    Table1Flag: TStringField;
    procedure Button1Click(Sender: TObject);
    procedure Button3Click(Sender: TObject);
    procedure FormShow(Sender: TObject);
    procedure Button7Click(Sender: TObject);
    procedure DBEdit3Enter(Sender: TObject);
    procedure DBEdit2Enter(Sender: TObject);
    procedure DBEdit3Exit(Sender: TObject);
    procedure DBEdit2Exit(Sender: TObject);
    procedure DBEdit1Click(Sender: TObject);
    procedure DBEdit2Click(Sender: TObject);
    procedure FormKeyPress(Sender: TObject; var Key: Char);
    procedure Button4Click(Sender: TObject);
    procedure DBGrid1CellClick(Column: TColumn);
    procedure Button2Click(Sender: TObject);
    procedure DBEdit5Enter(Sender: TObject);
    procedure DBEdit5Exit(Sender: TObject);
    procedure DBEdit11Exit(Sender: TObject);
    procedure Button8Click(Sender: TObject);
    procedure DBGrid1DblClick(Sender: TObject);
    procedure Table1FilterRecord(DataSet: TDataSet; var Accept: Boolean);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form_dinginput: TForm_dinginput;
  a,v:integer;
  p:string;
implementation

uses UnitDictionary, UnitQueryID, UnitDM, Unit_jihua;

{$R *.DFM}

procedure TForm_dinginput.Button1Click(Sender: TObject);
 var
  sID:string;
begin
    DataSource1.DataSet:=table1;
    a:=1;
    Button3.Enabled:=true;
    Button2.Enabled:=false;
    Button4.Enabled:=false;
    Button8.Enabled:=false;
  with Table1 do
  begin
    if not active then
    open;
    last;
    sID:=fieldbyname('xuhao').asstring;
     if sID='' then
    sID:='0';
    sID:=frmCommDictionary.zdyStrAddOne(sID);
    append;

  end; //with
    DBEdit1.SetFocus;
    DBEdit1.text:=sID;
    DBEdit2.SetFocus;
end;

procedure TForm_dinginput.Button3Click(Sender: TObject);
begin
  // 必须填写某些栏目
  if (DBEdit3.text = '') or (DBEdit5.text = '')  then
  begin
    showmessage('必须填写“产品名称”和“订购数量”!');
    exit;
  end;//if
  if a=1 then
   begin
    table1.fieldbyname('flag').asstring:='f';
    DBEdit12.Text:=datetostr(DateTimePicker1.date);
    DBEdit13.Text:=datetostr(DateTimePicker2.date);
    table1.post;
    table1.Filtered:=false;
     table1.Refresh;
    Button3.Enabled:=false;
    Button1.Enabled:=true;
    Button2.Enabled:=true;
    Button4.Enabled:=true;
    Button8.Enabled:=true;
   end;
   if a=0 then
    showmessage('请先按“添加”或“修改”按键!');
    a:=0;
end;

procedure TForm_dinginput.FormShow(Sender: TObject);
begin
 a:=0;
 p:='';
 v:=0;
 table1.open;
 Button3.Enabled:=false;
 DateTimePicker1.date:=date;
 DateTimePicker2.date:=date+20;
 DateTimePicker3.date:=date-30;
 DateTimePicker4.date:=date;
end;

procedure TForm_dinginput.Button7Click(Sender: TObject);
begin
    Button1.Enabled:=true;
    Button3.Enabled:=false;
    Button2.Enabled:=true;
    Button4.Enabled:=true;
    Button8.Enabled:=true;
    table1.Close;
    close;
end;

procedure TForm_dinginput.DBEdit3Enter(Sender: TObject);
begin
  if a<>1 then
  begin
   showmessage('请先按“添加新订单”按钮或“修改”按钮!');
   Button1.SetFocus;
   exit;
  end;
  frmCommQueryID.top:=200;//Form_dinginput.Height+Form_dinginput.top;
  frmCommQueryID.left:=200;//Form_dinginput.left;

  TDBEdit(sender).color:=claqua;

  if (table1.State = dsinsert) or (table1.State = dsedit) then
  begin
    case (sender as TDBEdit).tag of
    1:  // if the TDBEdit is dbeProdName
    begin
        frmCommQueryID.PageControl1.ActivePageIndex:=1;

       // frmCommQueryID.table2.open;
        frmCommQueryID.ActiveControl:=frmCommQueryID.dbgProdDictionary;
      // showmessage('通过');

        if frmCommQueryID.showmodal = mrok then
        begin
          DBEdit14.SetFocus;
          DBEdit14.text:=frmCommQueryID.query1.fieldbyname('ProdID').asstring;

          DBEdit3.text:=frmCommQueryID.query1.fieldbyname('prodname').asstring;
          DBEdit4.text:=frmCommQueryID.query1.fieldbyname('figid').asstring;
          DBEdit15.Text:=inttostr(frmCommQueryID.query1.fieldbyname('gujia').asinteger);
          DBEdit16.Text:=inttostr(frmCommQueryID.query1.fieldbyname('tanhuang').asinteger);
        end; //if
        DBEdit5.setfocus;
      end; // case 1


      2: // if the TDBEdit is dbeChecker
      begin
        frmCommQueryID.eStaffID.text:='';
        frmCommQueryID.PageControl1.ActivePageIndex:=0;

       // frmCommQueryID.table1.open;
        frmCommQueryID.ActiveControl:=frmCommQueryID.eStaffID;

        if frmCommQueryID.showmodal = mrok then
        begin
          DBEdit9.SetFocus;
          DBEdit9.text:=frmCommQueryID.query3.fieldbyname('StaffID').asstring;
        end; //if

       // dbenote.setfocus;
      end; //case 2
    end; // then Case statement is over

    //恢复过滤Table属性
    //tabProdDictionary tabStaff  tabManufacturer tabWorkShop
    {dm.tabProdDictionary.filtered:=false;
    dm.tabProdDictionary.filter:='';

    dm.tabStaff.filtered:=false;
    dm.tabStaff.filter:='';

    dm.tabManufacturer.filtered:=false;
    dm.tabManufacturer.filter:=''; }
  end; //
end;

procedure TForm_dinginput.DBEdit2Enter(Sender: TObject);
begin
       if a<>1 then
  begin
   showmessage('请先按“添加新订单”按钮或“修改”按钮!');
   Button1.SetFocus;
   exit;
  end;
  frmCommQueryID.top:=200;//DBEdit2.Height+DBEdit2.top;
  frmCommQueryID.left:=200;//DBEdit2.left;

       DBEdit2.color:=claqua;
        frmCommQueryID.PageControl1.ActivePageIndex:=2;
        frmCommQueryID.ActiveControl:=frmCommQueryID.dbgManufacturer;
        if frmCommQueryID.showmodal = mrok then
        begin
          //Edit3.SetFocus;
           DBEdit2.text:=frmCommQueryID.Query4.fieldbyname('Manufacturer').asstring;
          end; //with
           DBEdit3.setfocus;
       //case 3
end;

procedure TForm_dinginput.DBEdit3Exit(Sender: TObject);
begin
 TdbEdit(Sender).color:=clwindow;
end;

procedure TForm_dinginput.DBEdit2Exit(Sender: TObject);
begin
 TdbEdit(Sender).color:=clwhite;
end;

procedure TForm_dinginput.DBEdit1Click(Sender: TObject);
begin
 if a=0 then
 begin
 showmessage('请先按“添加新订单”或“修改”按钮!');
 exit;
 end;
end;

procedure TForm_dinginput.DBEdit2Click(Sender: TObject);
begin
 if a=0 then
 begin
 showmessage('请先按“添加新订单”或“修改”按钮!');
 exit;
 end;
end;

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

procedure TForm_dinginput.Button4Click(Sender: TObject);
 var
 r:string;
begin
   DataSource1.DataSet:=table1;
   if v<>1 then
   begin
    showmessage('请选择要删除的记录!');
    exit;
    end;
  if messagedlg('会删除所选记录 要继续吗?',mtWarning,[mbYes,mbNo],0) = mrNo then
    begin
    v:=0;
    exit;
    end;
  with Query1 do
  begin
    close;
    sql.Clear;
    sql.Add('select flag from dinghuodan.db ');
    sql.Add('where  xuhao =:xu');
    parambyname('xu').asstring:=p;//table1.fieldbyname('xuhao').asstring;
    open;
    if fieldbyname('flag').asstring='f' then
     begin
      showmessage('此订单未编制计划,没有供货,最好不要删除!');
      if messagedlg('确要删除吗?',mtWarning,[mbYes,mbNo],0) = mrNo then
        begin
        v:=0;
        exit;
        end;
      end;
     end;//with

   // begin
    table1.open;
     if table1.recordcount=0 then
     begin
     showmessage('无记录可删除!');
     exit;
     end;
       with Query1 do
      begin
       close;
      sql.Clear;
      sql.Add('select * from jihuadan where 主表标识号 = :xu ');
      parambyname('xu').asstring:=p;//table1.fieldbyname('xuhao').asstring;
      open;
      if recordcount<>0 then //无计划单
      begin
      close;
      sql.Clear;
      sql.Add('delete from jihuadan where 主表标识号 = :xu ');
      parambyname('xu').asstring:=p;//table1.fieldbyname('xuhao').asstring;
      execsql;
      end;//if
       end;//with

         with Query1 do
      begin
       close;
      sql.Clear;
      sql.Add('delete from dinghuodan where  xuhao= :xu ');
      parambyname('xu').asstring:=p;//table1.fieldbyname('xuhao').asstring;
      execsql;
      end;
    //table1.delete;

     with table1 do
    begin
   // open;
    first;
    while not eof do
    begin
    r:=fieldbyname('xuhao').asstring;
    if strtoint(r)>strtoint(p) then
    begin
    edit;
    //r:=strtoint(fieldbyname('StaffID').asstring)-1;
    fieldbyname('xuhao').asstring :=frmCommDictionary.zdyStrdecOne(r);
    post;
    p:=inttostr(strtoint(p)+1);
    end;
    next;
    end;
    table1.Refresh;
    end;
    p:='';
    v:=0;
end;
 //end;
procedure TForm_dinginput.DBGrid1CellClick(Column: TColumn);
begin
   if DataSource1.DataSet=query1 then
     begin
      v:=1;
      p:=query1.fieldbyname('xuhao').asstring;
      DateTimePicker1.date:=query1.fieldbyname('diqi').asdatetime;
      DateTimePicker2.date:=query1.fieldbyname('jiaohuriqi').asdatetime;
      exit;
     end;
    v:=1;
    p:=table1.fieldbyname('xuhao').asstring;
    DateTimePicker1.date:=table1.fieldbyname('diqi').asdatetime;
    DateTimePicker2.date:=table1.fieldbyname('jiaohuriqi').asdatetime;
end;

procedure TForm_dinginput.Button2Click(Sender: TObject);
begin
    if p='' then
    begin
     showmessage('请选择要修改的记录!');
     exit;
    end;
    DataSource1.DataSet:=table1;
    table1.Filtered:=true;
    a:=1;
    Button3.Enabled:=true;
    Button1.Enabled:=false;
    Button4.Enabled:=false;
    Button8.Enabled:=false;
    table1.open;
    table1.edit;
end;

procedure TForm_dinginput.DBEdit5Enter(Sender: TObject);
begin
  if a<>1 then
  begin
   showmessage('请先按“添加新订单”按钮或“修改”按钮!');
   Button1.SetFocus;
   exit;
  end;
  (sender as TDBEdit).color := claqua;
end;

procedure TForm_dinginput.DBEdit5Exit(Sender: TObject);
begin
 (sender as TDBEdit).color := clwindow;
end;

procedure TForm_dinginput.DBEdit11Exit(Sender: TObject);
begin
  Button3.SetFocus;
end;

procedure TForm_dinginput.Button8Click(Sender: TObject);
begin
  DataSource1.DataSet:=query1;
  with Query1 do
  begin
    close;
    sql.Clear;
    sql.Add('select * from dinghuodan.db ');
    sql.Add('where diqi between :v_from and :v_to order by xuhao ');
    parambyname('v_from').asdatetime:=DateTimePicker3.Date;
    parambyname('v_to').asdatetime:=DateTimePicker4.date;
    open;
    if recordcount = 0 then
     begin
      showmessage('此期间无订单!');
      exit;
     end;
  end; //with

  
end;

procedure TForm_dinginput.DBGrid1DblClick(Sender: TObject);
begin
   if table1.fieldbyname('flag').asstring <>'f' then
   begin
    if messagedlg('此订单已编制了生产计划单,还要编制吗?',mtWarning,[mbYes,mbNo],0) = mrNo then
    exit;
    end;
   Form_jihua.Edit_dinghao.text:=table1.FieldByName('xuhao').asstring;
   Form_jihua.Edit2.text:='11';
   Form_jihua.Edit_dep.Text:=table1.FieldByName('kehumi').asstring;
   Form_jihua.edit_p.Text:=table1.FieldByName('chpimi').asstring;
   Form_jihua.Edit_tuhao.Text:=table1.FieldByName('tuhao').asstring;
   Form_jihua.Edit1_riqi.Text:=datetostr(table1.FieldByName('diqi').asdatetime);
   Form_jihua.Edit2_shuli.Text:=inttostr(table1.FieldByName('shuli').asinteger);
   Form_jihua.show;
   Form_dinginput.Visible:=false;
end;

procedure TForm_dinginput.Table1FilterRecord(DataSet: TDataSet;
  var Accept: Boolean);
begin
    if (table1.FieldByName('xuhao').asstring =p) then
 Accept:=true
 else
 Accept:=false;
end;

end.

⌨️ 快捷键说明

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