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

📄 unitprodincard.~pas

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

interface

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

type
  TfrmProdInCard = class(TForm)
    Label2: TLabel;
    Label3: TLabel;
    Panel1: TPanel;
    Panel7: TPanel;
    Panel9: TPanel;
    Panel10: TPanel;
    Panel17: TPanel;
    dbeNote: TDBEdit;
    dbeNum: TDBEdit;
    dbeCheckerID: TDBEdit;
    dbeProdID: TDBEdit;
    dbeProdName: TDBEdit;
    dbeChecker: TDBEdit;
    bbPrior: TBitBtn;
    bbNext: TBitBtn;
    bbPost: TBitBtn;
    bbClose: TBitBtn;
    dbeCardID: TDBEdit;
    Panel3: TPanel;
    dbeFigID: TDBEdit;
    Panel4: TPanel;
    dbeProcID: TDBEdit;
    dbeDate: TDBEdit;
    bbLocal: TBitBtn;
    Panel2: TPanel;
    procedure bbPostClick(Sender: TObject);
    procedure dbeProdNameEnter(Sender: TObject);
    procedure dbeProdNameExit(Sender: TObject);
    procedure FormKeyPress(Sender: TObject; var Key: Char);
    procedure FormClose(Sender: TObject; var Action: TCloseAction);
    procedure bbLocalClick(Sender: TObject);
    procedure FormCreate(Sender: TObject);
    procedure bbPriorClick(Sender: TObject);
    procedure bbNextClick(Sender: TObject);
    procedure dbeDateEnter(Sender: TObject);
    procedure dbeCardIDEnter(Sender: TObject);
    procedure FormKeyDown(Sender: TObject; var Key: Word;
      Shift: TShiftState);
  private
    { Private declarations }
  public
    { Public declarations }
    sInDate,sInID:string;
  end;

var
  frmProdInCard: TfrmProdInCard;

implementation

uses UnitDM, UnitQueryID, UnitProdVoucher, UnitProdStock;



{$R *.DFM}

procedure TfrmProdInCard.bbPostClick(Sender: TObject);
var
  sCardID,sProdID:string;
begin
 if (dm.zdyGetProdCheckDate >= strtodatetime(dbeDate.text)) then
    begin
      showmessage('您选择的结帐日期早于上次结帐日期!'+#13+#13+'上次结帐日期是:'+datetostr(dm.zdyGetprodCheckDate));
      // showmodal;
       //frmProdMain.Visible:=true;
      exit;
    end; // if
//=================
// 检查栏目填写情况
//=================
  if (dbeProdName.text = '') or (dbeNum.text = '') or (dbeProcID.text='')then
  begin
    showmessage('请填写产品名称、数量栏目和生产批号!');
    exit;
  end; //if

//=======
// 提交
//=======
  sProdID:= dm.tabProdInCard.fieldbyname('ProdID').asstring;

  if dm.tabProdInCard.State = dsinsert then  //是添加记录 提交
  begin
    dm.tabProdIncard.Post;
    //为下一次添加做准备
    sCardID:=dm.zdyProdCardID(frmProdVoucher.dtpDate.date);
    dm.tabProdIncard.append;
    dbeDate.text:=datetostr(frmProdVoucher.dtpDate.date);
    dbeCardID.text:=sCardID;
    sInDate:=dbeDate.text;
    sInID:=dbeCardID.text;
   // dbeProdName.SetFocus;
  end
  else if dm.tabProdInCard.State = dsedit then  //是修改记录 提交
  begin
    dm.tabProdIncard.Post;
    frmProdInCard.close;
  end
  else
    exit;

//===========================
//向历史记录里面添加该物品
//===========================
  dm.zdyProdInsertHistory(sProdID);

//===================
// 更新仓库记录
//===================
  frmProdStock.zdyCurStock(dm.zdyGetProdCheckDate);
   frmProdInCard.hide;
  showmessage('记帐完毕,还需入库,请按“填写入库单”按钮!');
   frmProdInCard.close;
end;

procedure TfrmProdInCard.dbeProdNameEnter(Sender: TObject);
begin
  frmCommQueryID.top:=frmProdInCard.Height+frmProdInCard.top;
  frmCommQueryID.left:=frmProdInCard.left;

  TDBEdit(sender).color:=claqua;

  if dm.tabProdInCard.State = dsinsert 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;


        if frmCommQueryID.showmodal = mrok then
        begin
          dbeProdID.SetFocus;
          dbeProdID.text:=frmCommQueryID.table2.fieldbyname('ProdID').asstring;
//          dbeFigID.text:=dm.tabProdDictionary.fieldbyname('FigID').asstring;
        end; //if
        dbeNum.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
          dbeCheckerID.SetFocus;
          dbeCheckerID.text:=frmCommQueryID.table1.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; //if

end;

procedure TfrmProdInCard.dbeProdNameExit(Sender: TObject);
begin
  TDBEdit(sender).color:=clwindow;

  if dm.tabProdInCard.state = dsinsert then
  begin
    case (sender as TDBEdit).tag of
    1..2:  // if the TDBEdit is dbeProdName
      frmCommQueryID.close;
    end; //case of statement
  end; //if

end;

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

end;

procedure TfrmProdInCard.FormClose(Sender: TObject;
  var Action: TCloseAction);
begin
  dm.tabProdInCard.cancel;
end;

procedure TfrmProdInCard.bbLocalClick(Sender: TObject);
begin
  dbeProdName.setfocus;

end;

procedure TfrmProdInCard.FormCreate(Sender: TObject);
begin
  bbLocal.Height:=0;
  bbLocal.Width:=0;

end;

procedure TfrmProdInCard.bbPriorClick(Sender: TObject);
begin
  if dm.tabProdInCard.bof then
  begin
    messagedlg('已经到第一条记录!',mtinformation,[mbok],0);
    exit;
  end; //if

  dm.tabProdInCard.Prior;
  
end;

procedure TfrmProdInCard.bbNextClick(Sender: TObject);
begin
  if dm.tabProdInCard.eof then
  begin
    messagedlg('已经到最后一条记录!',mtinformation,[mbok],0);
    exit;
  end; //if

  dm.tabProdInCard.next;

end;

procedure TfrmProdInCard.dbeDateEnter(Sender: TObject);
begin
  dbeDate.text:=sInDate;
end;

procedure TfrmProdInCard.dbeCardIDEnter(Sender: TObject);
begin
  dbeCardID.text:=sInID;

end;


procedure TfrmProdInCard.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 + -