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

📄 u_kcpd.pas

📁 《delphi深度编程及其项目开发》
💻 PAS
字号:
unit U_kcpd;

interface

uses
  Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
  StdCtrls, ExtCtrls, Mask, ComCtrls, Db, DBClient, Grids, DBGrids, Buttons,
  DBCtrls, QuickRpt, Qrctrls, Menus;

type
  TForm5 = class(TForm)
    Panel1: TPanel;
    Label1: TLabel;
    Label2: TLabel;
    Panel2: TPanel;
    StatusBar1: TStatusBar;
    DBGrid1: TDBGrid;
    Panel3: TPanel;
    SpeedButton1: TSpeedButton;
    SpeedButton2: TSpeedButton;
    SpeedButton4: TSpeedButton;
    SpeedButton7: TSpeedButton;
    Label3: TLabel;
    ClientDataSet3: TClientDataSet;
    SpeedButton8: TSpeedButton;
    ClientDataSet2: TClientDataSet;
    DataSource2: TDataSource;
    Label4: TLabel;
    DBEdit1: TDBEdit;
    Label5: TLabel;
    DBEdit2: TDBEdit;
    DBComboBox1: TDBComboBox;
    DBEdit3: TDBEdit;
    DBEdit4: TDBEdit;
    SpeedButton5: TSpeedButton;
    SpeedButton6: TSpeedButton;
    ClientDataSet_index: TClientDataSet;
    SpeedButton3: TSpeedButton;
    QuickRep1: TQuickRep;
    PageHeaderBand1: TQRBand;
    QRLabel1: TQRLabel;
    QRLabel2: TQRLabel;
    QRSysData1: TQRSysData;
    PageFooterBand1: TQRBand;
    QRLabel8: TQRLabel;
    QRLabel9: TQRLabel;
    QRSysData2: TQRSysData;
    ColumnHeaderBand1: TQRBand;
    QRLabel3: TQRLabel;
    QRLabel4: TQRLabel;
    QRLabel5: TQRLabel;
    QRLabel6: TQRLabel;
    QRLabel7: TQRLabel;
    QRLabel15: TQRLabel;
    TitleBand1: TQRBand;
    QRLabel10: TQRLabel;
    QRLabel11: TQRLabel;
    QRLabel12: TQRLabel;
    QRLabel13: TQRLabel;
    QRLabel14: TQRLabel;
    QRDBText6: TQRDBText;
    QRDBText7: TQRDBText;
    QRDBText8: TQRDBText;
    QRDBText9: TQRDBText;
    QRDBText10: TQRDBText;
    QRShape1: TQRShape;
    QRShape2: TQRShape;
    QRSubDetail1: TQRSubDetail;
    QRDBText1: TQRDBText;
    QRDBText2: TQRDBText;
    QRDBText3: TQRDBText;
    QRDBText4: TQRDBText;
    QRDBText5: TQRDBText;
    QRDBText11: TQRDBText;
    BitBtn3: TBitBtn;
    PopupMenu1: TPopupMenu;
    N1: TMenuItem;
    procedure FormClose(Sender: TObject; var Action: TCloseAction);
    procedure SpeedButton1Click(Sender: TObject);
    procedure SpeedButton2Click(Sender: TObject);
    procedure DBGrid1KeyDown(Sender: TObject; var Key: Word;
      Shift: TShiftState);
    procedure SpeedButton8Click(Sender: TObject);
    procedure SpeedButton4Click(Sender: TObject);
    procedure SpeedButton7Click(Sender: TObject);
    procedure SpeedButton5Click(Sender: TObject);
    procedure SpeedButton6Click(Sender: TObject);
    procedure SpeedButton3Click(Sender: TObject);
    procedure FormCreate(Sender: TObject);
    procedure FormActivate(Sender: TObject);
    procedure BitBtn3Click(Sender: TObject);
    procedure N1Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form5: TForm5;

implementation

uses U_mainform, U_clkcqk, U_fzlr_clbm, U_kcpd_child, U_fzlr_zgxm;

{$R *.DFM}

procedure TForm5.FormClose(Sender: TObject; var Action: TCloseAction);
begin
  action := cafree;
  form65.clientdataset1.Cancel;
  form65.clientdataset1.CancelUpdates;
end;

procedure TForm5.SpeedButton1Click(Sender: TObject);
begin
  speedbutton1.enabled := not speedbutton1.Enabled;
  speedbutton2.enabled := not speedbutton2.enabled;
  speedbutton3.enabled := not speedbutton3.enabled;
  speedbutton4.enabled := not speedbutton4.enabled;
  speedbutton5.enabled := not speedbutton5.enabled;
  speedbutton6.enabled := not speedbutton6.enabled;
  speedbutton7.enabled := not speedbutton7.enabled;
  speedbutton8.enabled := not speedbutton8.enabled;
  dbedit4.enabled := true;
  bitbtn3.visible := not bitbtn3.visible;
  dbgrid1.columns[3].readonly := not dbgrid1.columns[3].readonly;
  panel1.enabled := not panel1.enabled;
  form65.clientdataset1.Insert;
  dbgrid1.PopupMenu := popupMenu1;
end;

procedure TForm5.SpeedButton2Click(Sender: TObject);
var
  i: integer;
  d_date: Tdatetime;
  vs_pdbh: string;
begin
  if dbcombobox1.text = '' then
  begin
    application.MessageBox('请先选择仓库', '材料与计划管理系统', mb_iconinformation + mb_defbutton1);
    dbcombobox1.setfocus;
    exit;
  end;
{  try
    d_date := strtodate(dbedit3.text);
  except
    application.MessageBox('盘点日期输入是否正确', '材料与计划管理系统', mb_iconinformation + mb_defbutton1);
    dbedit3.setfocus;
    exit;
  end; }
  if length(trim(dbedit4.text)) <> 9 then
  begin
    application.MessageBox('当前盘店号应为九位', '材料与计划管理系统', mb_iconinformation + mb_defbutton1);
    dbedit4.setfocus;
    exit;
  end;
  vs_pdbh := dbedit4.Text;
  clientdataset_index.IndexFieldNames := '盘点编号';
  clientdataset_index.Refresh;
  if form65.clientdataset1.state = dsinsert then
  begin
    if clientdataset_index.FindKey([vs_pdbh]) then
    begin
      application.MessageBox('盘点编号已重复', '物资管理系统', mb_iconinformation + mb_defbutton1);
      dbedit4.SetFocus;
      exit;
    end;
  end;
  application.createform(tform64, form64);
  try
    form64.showmodal;
  finally
    form64.free;
    for i := 0 to gi_count1 - 1 do
    begin
      clientdataset2.insert;
      clientdataset2.fieldbyname('材料编码').value := gs_clbm1[i];
      clientdataset2.fieldbyname('材料名称').value := gs_clmc1[i];
      clientdataset2.fieldbyname('规格型号').value := gs_ggxh1[i];
      clientdataset2.fieldbyname('计量单位').value := gs_jldw1[i];
      clientdataset2.fieldbyname('计划单价').value := gs_jhdj1[i];
      clientdataset2.fieldbyname('单价单位').value := gs_djdw1[i];
      clientdataset2.fieldbyname('实存数量').value := gs_xykcl1[i];
      clientdataset2.fieldbyname('盘点数量').value := 0.00;
      clientdataset2.post;
    end;
  end;
end;

procedure TForm5.DBGrid1KeyDown(Sender: TObject; var Key: Word;
  Shift: TShiftState);
begin
  if key = 46 then //当按下Delete键
  begin
    form65.clientdataset1.delete;
  end;
end;

procedure TForm5.SpeedButton8Click(Sender: TObject);
var
  i: integer;
  d_date: Tdate;
  vs_pdbh: string;
begin
  if dbcombobox1.text = '' then
  begin
    application.MessageBox('请先选择仓库', '材料与计划管理系统', mb_iconinformation + mb_defbutton1);
    dbcombobox1.setfocus;
    exit;
  end;
 { try
    d_date := strtodate(dbedit3.text);
  except
    application.MessageBox('盘点日期输入是否正确', '材料与计划管理系统', mb_iconinformation + mb_defbutton1);
    dbedit3.setfocus;
    exit;
  end;   }
  if length(trim(dbedit4.text)) <> 9 then
  begin
    application.MessageBox('当前盘店号应为九位', '材料与计划管理系统', mb_iconinformation + mb_defbutton1);
    dbedit4.setfocus;
    exit;
  end;
  vs_pdbh := dbedit4.Text;
  clientdataset_index.IndexFieldNames := '盘点编号';
  clientdataset_index.Refresh;
  if form65.clientdataset1.state = dsinsert then
  begin
    if clientdataset_index.FindKey([vs_pdbh]) then
    begin
      application.MessageBox('盘点编号已重复', '物资管理系统', mb_iconinformation + mb_defbutton1);
      dbedit4.SetFocus;
      exit;
    end;
  end;

  application.createform(tform27, form27);
  try
    form27.showmodal;
  finally
    form27.free;
    for i := 0 to gi_count - 1 do
    begin
{      clientdataset2.IndexFieldNames := '材料编码';
      if clientdataset2.FindKey([gs_clbm[i]]) then
      begin
        application.MessageBox('已有此物资', '物资管理系统', mb_iconinformation + mb_defbutton1);
        continue;
      end; }
      clientdataset2.insert;
      clientdataset2.fieldbyname('材料编码').value := gs_clbm[i];
      clientdataset2.fieldbyname('材料名称').value := gs_clmc[i];
      clientdataset2.fieldbyname('规格型号').value := gs_ggxh[i];
      clientdataset2.fieldbyname('计量单位').value := gs_jldw[i];
      clientdataset2.fieldbyname('计划单价').value := gs_jhdj[i];
      clientdataset2.fieldbyname('单价单位').value := gs_djdw[i];
      clientdataset2.fieldbyname('实存数量').value := 0.0;
      clientdataset2.fieldbyname('盘点数量').value := 0.0;
      clientdataset2.post;
    end;
  end;
end;

procedure TForm5.SpeedButton4Click(Sender: TObject);
var
  i: integer;
  vi_count: integer;
begin
  vi_count := clientdataset2.recordcount;
  clientdataset2.DisableControls;
  clientdataset2.First;
  for i := 0 to vi_count - 1 do
  begin
    if clientdataset2.fieldbyname('实存数量').asfloat = clientdataset2.fieldbyname('盘点数量').asfloat then
      clientdataset2.Delete;
  end;
  clientdataset2.EnableControls;
  dbgrid1.Refresh;
end;

procedure TForm5.SpeedButton7Click(Sender: TObject);
var
  i: integer;
  vi_count: integer;
begin
  vi_count := clientdataset2.recordcount;
  clientdataset2.DisableControls;
  clientdataset2.First;
  if clientdataset2.recordcount = 0 then
  begin
    application.messagebox('请添加物资', '物资管理系统', mb_iconinformation + mb_defbutton1);
    exit;
  end;
  for i := 0 to vi_count - 1 do
  begin
    if clientdataset2.fieldbyname('实存数量').asfloat = clientdataset2.fieldbyname('盘点数量').asfloat then
    begin
      application.messagebox('有实存数量同盘店数量一致', '物资管理系统', mb_iconinformation + mb_defbutton1);
      clientdataset2.enablecontrols;
      exit;
    end;
  end;
  clientdataset2.EnableControls;
  form65.clientdataset1.Post;
  form65.clientdataset1.ApplyUpdates(0);
  speedbutton1.enabled := not speedbutton1.Enabled;
  speedbutton2.enabled := not speedbutton2.enabled;
  speedbutton3.enabled := not speedbutton3.enabled;
  speedbutton4.enabled := not speedbutton4.enabled;
  speedbutton5.enabled := not speedbutton5.enabled;
  speedbutton6.enabled := not speedbutton6.enabled;
  speedbutton7.enabled := not speedbutton7.enabled;
  speedbutton8.enabled := not speedbutton8.enabled;
  bitbtn3.visible := not bitbtn3.visible;
  panel1.enabled := not panel1.enabled;
  dbgrid1.columns[3].readonly := not dbgrid1.columns[3].readonly;
  dbgrid1.PopupMenu := nil;
end;

procedure TForm5.SpeedButton5Click(Sender: TObject);
begin
  form65.clientdataset1.CancelUpdates;
  speedbutton1.enabled := not speedbutton1.Enabled;
  speedbutton2.enabled := not speedbutton2.enabled;
  speedbutton3.enabled := not speedbutton3.enabled;
  speedbutton4.enabled := not speedbutton4.enabled;
  speedbutton5.enabled := not speedbutton5.enabled;
  speedbutton6.enabled := not speedbutton6.enabled;
  speedbutton7.enabled := not speedbutton7.enabled;
  speedbutton8.enabled := not speedbutton8.enabled;
  bitbtn3.visible := not bitbtn3.visible;
  panel1.enabled := not panel1.enabled;
  dbgrid1.columns[3].readonly := not dbgrid1.columns[3].readonly;
  dbgrid1.PopupMenu := nil;
end;

procedure TForm5.SpeedButton6Click(Sender: TObject);
begin
  speedbutton1.enabled := not speedbutton1.Enabled;
  speedbutton2.enabled := not speedbutton2.enabled;
  speedbutton3.enabled := not speedbutton3.enabled;
  speedbutton4.enabled := not speedbutton4.enabled;
  speedbutton5.enabled := not speedbutton5.enabled;
  speedbutton6.enabled := not speedbutton6.enabled;
  speedbutton7.enabled := not speedbutton7.enabled;
  speedbutton8.enabled := not speedbutton8.enabled;
  dbedit4.Enabled := false;
  bitbtn3.visible := not bitbtn3.visible;
  dbgrid1.columns[3].readonly := not dbgrid1.columns[3].readonly;
  panel1.enabled := not panel1.enabled;
  form65.clientdataset1.edit;
  dbgrid1.PopupMenu := popupmenu1;
end;

procedure TForm5.SpeedButton3Click(Sender: TObject);
begin
  quickrep1.Preview;
end;

procedure TForm5.FormCreate(Sender: TObject);
begin
  clientdataset3.first;
  while not clientdataset3.Eof do
  begin
    dbcombobox1.Items.add(clientdataset3.fieldbyname('仓库名称').asstring);
    clientdataset3.Next;
  end;
end;

procedure TForm5.FormActivate(Sender: TObject);
begin
//  dbcombobox1.SetFocus;
end;

procedure TForm5.BitBtn3Click(Sender: TObject);
begin
  application.createform(Tform31, form31);
  try
    form31.showmodal;
  finally
    form65.clientdataset1.FieldByName('盘点人').value := gs_zgxm;
    form31.free;
  end;


end;

procedure TForm5.N1Click(Sender: TObject);
begin
  if clientdataset2.recordcount <> 0 then
    clientdataset2.Delete;
end;

end.

⌨️ 快捷键说明

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