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

📄 unit_rubb_proccard.pas

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

interface

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

type
  TForm_Rubb_ProcCard = class(TForm)
    Panel1: TPanel;
    Panel2: TPanel;
    Panel3: TPanel;
    Panel4: TPanel;
    Panel5: TPanel;
    Panel6: TPanel;
    Panel7: TPanel;
    Panel8: TPanel;
    Panel9: TPanel;
    Panel10: TPanel;
    Panel11: TPanel;
    Panel12: TPanel;
    Panel13: TPanel;
    Panel14: TPanel;
    Panel15: TPanel;
    Panel16: TPanel;
    Panel17: TPanel;
    Panel18: TPanel;
    Panel19: TPanel;
    DBEdit1: TDBEdit;
    DBEdit2: TDBEdit;
    DBEdit3: TDBEdit;
    DBEdit4: TDBEdit;
    DBEdit_IgdCode: TDBEdit;
    DBEdit6: TDBEdit;
    DBEdit7: TDBEdit;
    DBEdit8: TDBEdit;
    DBEdit9: TDBEdit;
    DBEdit10: TDBEdit;
    DBEdit11: TDBEdit;
    DBEdit12: TDBEdit;
    DBEdit13: TDBEdit;
    DBEdit14: TDBEdit;
    DBEdit15: TDBEdit;
    DBEdit16: TDBEdit;
    DBEdit17: TDBEdit;
    DBEdit18: TDBEdit;
    DBEdit19: TDBEdit;
    DBEdit20: TDBEdit;
    DBEdit21: TDBEdit;
    DBEdit22: TDBEdit;
    DBEdit23: TDBEdit;
    Panel20: TPanel;
    Panel21: TPanel;
    Panel22: TPanel;
    Panel23: TPanel;
    Panel24: TPanel;
    Panel25: TPanel;
    DBEdit24: TDBEdit;
    DBEdit25: TDBEdit;
    DS_ProcCard: TDataSource;
    Tab_ProcCard: TTable;
    BitBtn1: TBitBtn;
    BitBtn2: TBitBtn;
    BitBtn3: TBitBtn;
    Panel26: TPanel;
    Query1: TQuery;
    dbePrice: TDBEdit;
    Panel105: TPanel;
    ComboBox1: TComboBox;
    BitBtn4: TBitBtn;
    procedure FormKeyPress(Sender: TObject; var Key: Char);
    procedure DBEdit_IgdCodeEnter(Sender: TObject);
    procedure DBEdit_IgdCodeExit(Sender: TObject);
    procedure BitBtn3Click(Sender: TObject);
    procedure FormClose(Sender: TObject; var Action: TCloseAction);
    procedure BitBtn2Click(Sender: TObject);
    procedure BitBtn1Click(Sender: TObject);
    procedure DBEdit25Exit(Sender: TObject);
    procedure DBEdit10Enter(Sender: TObject);
    procedure DBEdit25Enter(Sender: TObject);
    procedure FormCreate(Sender: TObject);
    procedure ComboBox1Change(Sender: TObject);
    procedure BitBtn4Click(Sender: TObject);
    procedure FormKeyDown(Sender: TObject; var Key: Word;
      Shift: TShiftState);
    procedure DBEdit13Enter(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
    sRubbDate:string;
    iCode:integer;
    sMixCode,sRubbName:string;
  end;

var
  Form_Rubb_ProcCard: TForm_Rubb_ProcCard;

implementation

uses Unit_Rubb_MaterCard, Unit_Rubb_QryProcCard, Unit_Rubb_RepCardNew,
  Unit_rubb_repcard2, Unit_Mater_Main, Unit_Rubb_Main, UnitQueryID, UnitDM;

{$R *.DFM}

procedure TForm_Rubb_ProcCard.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_ProcCard.DBEdit_IgdCodeEnter(Sender: TObject);
begin
  TEdit(Sender).color:=claqua;

  if TEdit(Sender).tag = 1 then
  begin
    TEdit(Sender).text:=sMixcode;
  end; 

  if TEdit(Sender).tag = 2 then
     TEdit(Sender).text:=sRubbName;
end;

procedure TForm_Rubb_ProcCard.DBEdit_IgdCodeExit(Sender: TObject);
begin
  TEdit(Sender).color:=clwindow;
end;

procedure TForm_Rubb_ProcCard.BitBtn3Click(Sender: TObject);
var
  iID:integer;
  dDate,dFrom,dTo:Tdate;
begin
//必须填写的栏目
  if (DBEdit_IgdCode.text= '') or (DBEdit25.text= '') or(DBEdit10.text= '') then
  begin
    showmessage('必须填写' +#13+#13+'配方编号、编号、混炼日期'+#13+#13+'等栏目!');
    exit;
  end; //if

  //判断日期是否小于等于结账日期
  if strtodate(DBEdit10.text) <=dm.zdyGetmaterCheckDate then //d_LimDate then
  begin
    showmessage('您所填写的日期在结账日期之前!'+#13+#13+'请重新填写!'+#13+#13+'上次结帐日期是:'+datetostr(dm.zdyGetmaterCheckDate));
    perform(WM_NEXTDLGCTL,0,0);
    exit;
  end;

  Tab_ProcCard.post;
  iID:=Tab_ProcCard.fieldbyname('标识号').asinteger;
  dDate:=Tab_ProcCard.fieldbyname('混炼日期').asdatetime;
  dFrom:=strtodate(datetostr(Form_Rubb_QryProcCard.DateTimePicker_From.date));
  dTo:=strtodate(datetostr(Form_Rubb_QryProcCard.DateTimePicker_To.date));
  if dDate < dFrom then
    dFrom := dDate;
  if dDate > dTo then
    dTo:= dDate;

// 刷新工艺卡
  with Form_Rubb_QryProcCard.Qry_QryProcCard do
  begin
    close;
    sql.Clear;
    sql.Add('select * from 炼胶工艺卡 ');
    sql.Add('where 编号=:v_to ');
   // parambyname('v_from').asdatetime:=dFrom;
    parambyname('v_to').asinteger:=strtoint(DBEdit25.text);
    open;
    last;
   // while not eof do
    //begin
     // if fieldbyname('标识号').asinteger = iID then
       // break;
     // next;
   // end; //while
  end; //with


// 出现主窗体栏目
  Form_Rubb_Main.Panel1.Visible:=true;
  Form_Rubb_Main.PageControl1.Visible:=true;
  Form_Rubb_Main.Panel104.Visible:=true;
  Form_Rubb_Main.DBNavigator1.Visible:=true;
  Form_Rubb_Main.BitBtn1.Visible:=true;
  close;

end;

procedure TForm_Rubb_ProcCard.FormClose(Sender: TObject;
  var Action: TCloseAction);
var
  bm:TbookMark;
begin
  Tab_ProcCard.cancel;
  Form_Rubb_ProcCard.BitBtn1.Enabled:=true;
  Form_Rubb_ProcCard.BitBtn2.Enabled:=true;

  with Form_Rubb_QryProcCard.Qry_QryProcCard do
  begin
    bm:=GetBookmark;
    close;
    open;
    GotoBookmark(bm);
  end; //with

end;

procedure TForm_Rubb_ProcCard.BitBtn2Click(Sender: TObject);
begin
{
//必须填写的栏目
  if (DBEdit_IgdCode.text= '') or (DBEdit6.text= '') or(DBEdit1.text= '') or (DBEdit8.text= '') or (DBEdit10.text= '') or (DBEdit17.text= '') or (DBEdit19.text= '') or (DBEdit21.text= '') then
  begin
    showmessage('必须填写' +#13+#13+'配方编号、货源号、生产批号、制成品名称'+#13+#13+'混炼日期、混炼用料量、剪胶日期、剪胶用料量'+#13+#13+'等栏目!');
    exit;
  end; //if
}

  if (DBEdit_IgdCode.text= '') or (DBEdit25.text= '') or(DBEdit10.text= '') then
  begin
    showmessage('必须填写' +#13+#13+'配方编号、编号、混炼日期'+#13+#13+'等栏目!');
    exit;
  end; //if

  Tab_ProcCard.post;
  close;

//初始化用料单
  with Form_Rubb_MaterCard.Qry_MaterCard do
  begin
    close;
    sql.Clear;
    sql.Add('select * from 炼胶用料单 where 主表标识号 = :v_mid  ');
    parambyname('v_mid').asinteger:=Tab_ProcCard.fieldbyname('标识号').asinteger;
    open;
  end;// with

  Form_Rubb_MaterCard.Tab_MaterCard.open;
  Form_Rubb_MaterCard.n_mid:=Tab_ProcCard.fieldbyname('标识号').asinteger;
  Form_Rubb_MaterCard.s_MixCardNum:=Tab_ProcCard.fieldbyname('配方编号').asstring;
  Form_Rubb_MaterCard.d_Rubbdate:=Tab_ProcCard.fieldbyname('混炼日期').asdatetime;
  Form_Rubb_MaterCard.showmodal;


end;

procedure TForm_Rubb_ProcCard.BitBtn1Click(Sender: TObject);
begin
{
//必须填写的栏目
  if (DBEdit_IgdCode.text= '') or (DBEdit6.text= '') or(DBEdit1.text= '') or (DBEdit8.text= '') or (DBEdit10.text= '') or (DBEdit17.text= '') or (DBEdit19.text= '') or (DBEdit21.text= '') then
  begin
    showmessage('必须填写' +#13+#13+'配方编号、生产批号、制成品名称'+#13+#13+'混炼日期、混炼用料量、剪胶日期、剪胶用料量'+#13+#13+'等栏目!');
    exit;
  end; //if
}

  if (DBEdit_IgdCode.text= '') or (DBEdit25.text= '') or(DBEdit10.text= '') then
  begin
    showmessage('必须填写' +#13+#13+'配方编号、编号、混炼日期'+#13+#13+'等栏目!');
    exit;
  end; //if
  Tab_ProcCard.post;
  close;

  if messagedlg('要使用自定义方式吗?',mtinformation,[mbyes,mbno],0) = mryes then
  begin
    Form_Rubb_ProcCard.Hide;
    Form_rubb_repcard2.showmodal;
    exit;
  end;//if

//找到该记录
  Form_Rubb_RepCard.Tab_RepCard.open;
  Form_Rubb_RepCard.Tab_RepCard.SetKey;
  if Form_Rubb_RepCard.Tab_RepCard.FindKey([Tab_ProcCard.fieldbyname('标识号').asinteger]) then
  begin
    Form_Rubb_RepCard.Tab_RepCard.edit;
    Form_Rubb_ProcCard.Hide;
    Form_Rubb_RepCard.showmodal;
    exit;
  end
  else  //没找到

   begin
    Form_Rubb_RepCard.Tab_RepCard.append;
    Form_Rubb_RepCard.DBEdit_ID.text:=inttostr(Tab_ProcCard.fieldbyname('标识号').asinteger);
    Form_Rubb_RepCard.DBEdit33.text:=inttostr(Tab_ProcCard.fieldbyname('配方编号').asinteger);
   // showmessage(Form_Rubb_RepCard.DBEdit33.text);
    Form_Rubb_ProcCard.Hide;
    Form_Rubb_RepCard.showmodal;
   end;
end;

procedure TForm_Rubb_ProcCard.DBEdit25Exit(Sender: TObject);
begin
   TEdit(Sender).color:=clwindow;
end;

procedure TForm_Rubb_ProcCard.DBEdit10Enter(Sender: TObject);
begin
  TEdit(Sender).color:=claqua;

  DBedit10.text := sRubbDate;
end;

procedure TForm_Rubb_ProcCard.DBEdit25Enter(Sender: TObject);
begin
  TEdit(Sender).color:=claqua;

  if Tab_ProcCard.State = dsinsert then
    DBEdit25.text:= inttostr(iCode);


end;

procedure TForm_Rubb_ProcCard.FormCreate(Sender: TObject);
begin
  ComboBox1.Text:='';
end;

procedure TForm_Rubb_ProcCard.ComboBox1Change(Sender: TObject);
var
  sID,sCode:string;
  i:integer;
begin

  i:=1;
  sID:=combobox1.text;
  while sID[i] <> ' ' do
  begin
    sCode:=sCode+sID[i];
    i:=i+1;
  end; //while


  with query1 do
  begin
    close;
    sql.clear;
    sql.Add('select * from 炼胶配方表 where 配方编号 = :code ');
    parambyname('code').asinteger:=strtoint(sCode);
    open;

    DBEdit_IgdCode.text:=inttostr(strtoint(sCode));
    sRubbName:=fieldbyname('制成品名称').asstring;
    DBEdit8.text:= fieldbyname('制成品名称').asstring;
  end; //with

end;

procedure TForm_Rubb_ProcCard.BitBtn4Click(Sender: TObject);
begin
  close;
end;

procedure TForm_Rubb_ProcCard.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;

procedure TForm_Rubb_ProcCard.DBEdit13Enter(Sender: TObject);
begin
  TDBEdit(Sender).color:=claqua;
   // FrmcommqueryID.estaffid.text:='';
    FrmcommqueryID.PageControl1.ActivePageIndex:=0;
    FrmcommqueryID.ActiveControl:=FrmcommqueryID.estaffID;
    if  FrmcommqueryID.showmodal=mrok then
    begin
      TDBEdit(Sender).text:=FrmcommqueryID.query3.fieldbyname('staffname').asstring;
     // eprodn.SetFocus;
   end;
end;

end.

⌨️ 快捷键说明

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