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

📄 unitprodquerycard.pas

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

interface

uses
  Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
  ComCtrls, Buttons, ExtCtrls, StdCtrls, Grids, DBGrids;

type
  TfrmProdQueryCard = class(TForm)
    PCInOut: TPageControl;
    TabSheet1: TTabSheet;
    DBGrid1: TDBGrid;
    TabSheet2: TTabSheet;
    DBGrid2: TDBGrid;
    Label1: TLabel;
    lDate: TLabel;
    Label3: TLabel;
    lInOut: TLabel;
    Bevel1: TBevel;
    Label2: TLabel;
    sbYesterday: TSpeedButton;
    sbTomrrow: TSpeedButton;
    dtpDate: TDateTimePicker;
    bbCard: TBitBtn;
    bbCardView: TBitBtn;
    bbDelete: TBitBtn;
    bbCancel: TBitBtn;
    bbViewStock: TBitBtn;
    Button1: TButton;
    procedure PCInOutChange(Sender: TObject);
    procedure bbCardClick(Sender: TObject);
    procedure FormCreate(Sender: TObject);
    procedure sbTomrrowClick(Sender: TObject);
    procedure sbYesterdayClick(Sender: TObject);
    procedure bbDeleteClick(Sender: TObject);
    procedure bbCardViewClick(Sender: TObject);
    procedure bbViewStockClick(Sender: TObject);
    procedure Button1Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
    bInOut:boolean;
    procedure zdyShowfilterCard(dfilterDate:TDate); //  过滤当前日期

  end;

var
  frmProdQueryCard: TfrmProdQueryCard;

implementation

uses UnitDM, UnitProdInCard, UnitProdOutCard, UnitProdStock;

{$R *.DFM}

//=========================================================
// 实现过程     过滤当前日期记录
//=========================================================
procedure TfrmProdQueryCard.zdyShowfilterCard(dfilterDate:TDate);
var
  sCardID:string;
begin
  dtpDate.date:=dfilterDate;
  sCardID:=formatdatetime('yymmdd',dtpDate.date);
  lDate.Caption:=formatdatetime('yyyy"年"mm"月"dd"日"',dtpDate.date);

//========================================================
// 判断当前状态是入还是出库 改变界面上的某些颜色,字体设置
//=========================================================
  if bInOut then //是入库
  begin
    pcInOut.ActivePageIndex:=0;
    bbCard.caption:='填写入库单'+#13+'(Enter)';
    lInOut.Font.Color:=clblue;
    lInOut.caption:='入库单';
  end
  else  //是出库
  begin
    pcInOut.ActivePageIndex:=1;
    bbCard.caption:='填写出库单'+#13+'(Enter)';
    lInOut.Font.Color:=clred;
    lInOut.caption:='出库单';
  end; //if

//===================
//table开始过滤
//===================
  with dm.tabProdInCard do
  begin
    Open;
    filter:=format('CardID = ''%S''',[sCardID+'*']); //默认过滤条件是今天
    if not filtered then //开始过滤
      filtered:= true;
  end;//with
  with dm.tabProdOutCard do
  begin
    Open;
    filter:=format('CardID = ''%S''',[sCardID+'*']); //默认过滤条件是今天
    if not filtered then //开始过滤
      filtered:= true;
  end;//with

end;


procedure TfrmProdQueryCard.PCInOutChange(Sender: TObject);
begin
  case pcInOut.ActivePageIndex of
  0:    bInOut:=true ;
  1:    bInOut:=false;
  end; //case

  zdyShowfilterCard(dtpDate.date);

end;

procedure TfrmProdQueryCard.bbCardClick(Sender: TObject);
var
  sCardID:string;
begin

//==========================================
// 设置入,出库单上的eDate, dbeCardID的值
//==========================================
  sCardID:=dm.zdyProdCardID(dtpDate.date);

  if bInOut then  //入库
  begin
    with frmProdInCard do
    begin
      with dm.tabProdIncard do
      begin
        if not active then open;
        append;
      end;//with
      eDate.text:=datetostr(dtpDate.date);
      dbeCardID.text:=sCardID;
      showmodal;
    end;//with
  end
  else     //领料
  begin
    with frmProdOutCard do
    begin
      with dm.tabProdOutcard do
      begin
        if not active then open;
        append;
      end;//with
      eDate.text:=datetostr(dtpDate.date);
      dbeCardID.text:=sCardID;
      showmodal;
    end;//with
  end; //if

end;

procedure TfrmProdQueryCard.FormCreate(Sender: TObject);
begin
  bInOut:=true;
end;

procedure TfrmProdQueryCard.sbTomrrowClick(Sender: TObject);
begin
  dtpdate.date:=dtpdate.date+1;
  zdyShowfilterCard(dtpdate.date);

end;

procedure TfrmProdQueryCard.sbYesterdayClick(Sender: TObject);
begin
  dtpdate.date:=dtpdate.date - 1;
  zdyShowfilterCard(dtpdate.date);

end;

procedure TfrmProdQueryCard.bbDeleteClick(Sender: TObject);
begin
//==============================
// 检查表格是否为空
//==============================
  if dm.zdyProdIFBlank(bInOut) then
  begin
    showmessage('没有记录');
    exit;
  end; //if

  if MessageDlg('真的要删除该记录吗?',mtwarning,[mbyes,mbno],0) = mryes then
  begin
    if bInOut then
      dm.tabProdIncard.delete
    else
      dm.tabProdOutCard.delete;
  end; //if

end;

procedure TfrmProdQueryCard.bbCardViewClick(Sender: TObject);
begin
//==============================
// 检查表格是否为空
//==============================
  if dm.zdyProdIFBlank(bInOut) then
  begin
    showmessage('没有记录');
    exit;
  end; //if

//===================================
// 设置table 控件 为编辑状态 dsEdit
//===================================
  if bInOut and (dm.tabProdIncard.active) then
  begin
    with frmProdInCard do
    begin
      dm.tabProdIncard.edit;
      showmodal;
    end; //with
  end
  else if (not bInOut) and (dm.tabProdOutCard.active) then
  begin
    with frmProdOutCard do
    begin
      dm.tabProdOutCard.edit;
      showmodal;
    end; //with
  end
  else
    showmessage('没有记录!');

end;

procedure TfrmProdQueryCard.bbViewStockClick(Sender: TObject);
var
  sProdID:string;
  dDate:TDate;
begin
//==============================
// 检查表格是否为空
//==============================
  if dm.zdyProdIFBlank(bInOut) then
  begin
    showmessage('没有记录');
    exit;
  end; //if

//==============================
// 查看该物品的库存
//==============================

  frmProdStock.zdyCurStock(dm.zdyGetProdCheckDate,date);

  if bInOut then
    sProdID:=dm.tabProdIncard.fieldbyname('ProdID').asstring
  else
    sProdID:=dm.tabProdOutcard.fieldbyname('ProdID').asstring;

  with dm.tabProdStock do
  begin
    open;
    setkey;
    if not findkey([sProdID]) then
    begin
      showmessage('not findkey!');
      exit;
    end; //if
  end; //with

  frmProdStock.showmodal;

end;

procedure TfrmProdQueryCard.Button1Click(Sender: TObject);
begin
 with dm.qryExe do
 begin
   close;
   sql.clear;
   sql.add('delete from ProdInCard ');
   execsql;

   close;
   sql.clear;
   sql.add('delete from ProdOutCard ');
   execsql;

   close;
   sql.clear;
   sql.add('delete from ProdStock ');
   execsql;

   close;
   sql.clear;
   sql.add('delete from ProdCheckDiary ');
   execsql;

   close;
   sql.clear;
   sql.add('delete from ProdIDHistory ');
   execsql;


   close;
   sql.clear;
   sql.add('delete from ProdMonthCheck ');
   execsql;

   close;
   sql.clear;
   sql.add('delete from ProdSettleAccount ');
   execsql;
  end; //with



end;

end.

⌨️ 快捷键说明

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