U_kcpd.pas
上传用户:psxgmh
上传日期:2013-04-08
资源大小:15112k
文件大小:12k
源码类别:

Delphi/CppBuilder

开发平台:

Delphi

  1. unit U_kcpd;
  2. interface
  3. uses
  4.   Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
  5.   StdCtrls, ExtCtrls, Mask, ComCtrls, Db, DBClient, Grids, DBGrids, Buttons,
  6.   DBCtrls, QuickRpt, Qrctrls, Menus;
  7. type
  8.   TForm5 = class(TForm)
  9.     Panel1: TPanel;
  10.     Label1: TLabel;
  11.     Label2: TLabel;
  12.     Panel2: TPanel;
  13.     StatusBar1: TStatusBar;
  14.     DBGrid1: TDBGrid;
  15.     Panel3: TPanel;
  16.     SpeedButton1: TSpeedButton;
  17.     SpeedButton2: TSpeedButton;
  18.     SpeedButton4: TSpeedButton;
  19.     SpeedButton7: TSpeedButton;
  20.     Label3: TLabel;
  21.     ClientDataSet3: TClientDataSet;
  22.     SpeedButton8: TSpeedButton;
  23.     ClientDataSet2: TClientDataSet;
  24.     DataSource2: TDataSource;
  25.     Label4: TLabel;
  26.     DBEdit1: TDBEdit;
  27.     Label5: TLabel;
  28.     DBEdit2: TDBEdit;
  29.     DBComboBox1: TDBComboBox;
  30.     DBEdit3: TDBEdit;
  31.     DBEdit4: TDBEdit;
  32.     SpeedButton5: TSpeedButton;
  33.     SpeedButton6: TSpeedButton;
  34.     ClientDataSet_index: TClientDataSet;
  35.     SpeedButton3: TSpeedButton;
  36.     QuickRep1: TQuickRep;
  37.     PageHeaderBand1: TQRBand;
  38.     QRLabel1: TQRLabel;
  39.     QRLabel2: TQRLabel;
  40.     QRSysData1: TQRSysData;
  41.     PageFooterBand1: TQRBand;
  42.     QRLabel8: TQRLabel;
  43.     QRLabel9: TQRLabel;
  44.     QRSysData2: TQRSysData;
  45.     ColumnHeaderBand1: TQRBand;
  46.     QRLabel3: TQRLabel;
  47.     QRLabel4: TQRLabel;
  48.     QRLabel5: TQRLabel;
  49.     QRLabel6: TQRLabel;
  50.     QRLabel7: TQRLabel;
  51.     QRLabel15: TQRLabel;
  52.     TitleBand1: TQRBand;
  53.     QRLabel10: TQRLabel;
  54.     QRLabel11: TQRLabel;
  55.     QRLabel12: TQRLabel;
  56.     QRLabel13: TQRLabel;
  57.     QRLabel14: TQRLabel;
  58.     QRDBText6: TQRDBText;
  59.     QRDBText7: TQRDBText;
  60.     QRDBText8: TQRDBText;
  61.     QRDBText9: TQRDBText;
  62.     QRDBText10: TQRDBText;
  63.     QRShape1: TQRShape;
  64.     QRShape2: TQRShape;
  65.     QRSubDetail1: TQRSubDetail;
  66.     QRDBText1: TQRDBText;
  67.     QRDBText2: TQRDBText;
  68.     QRDBText3: TQRDBText;
  69.     QRDBText4: TQRDBText;
  70.     QRDBText5: TQRDBText;
  71.     QRDBText11: TQRDBText;
  72.     BitBtn3: TBitBtn;
  73.     PopupMenu1: TPopupMenu;
  74.     N1: TMenuItem;
  75.     procedure FormClose(Sender: TObject; var Action: TCloseAction);
  76.     procedure SpeedButton1Click(Sender: TObject);
  77.     procedure SpeedButton2Click(Sender: TObject);
  78.     procedure DBGrid1KeyDown(Sender: TObject; var Key: Word;
  79.       Shift: TShiftState);
  80.     procedure SpeedButton8Click(Sender: TObject);
  81.     procedure SpeedButton4Click(Sender: TObject);
  82.     procedure SpeedButton7Click(Sender: TObject);
  83.     procedure SpeedButton5Click(Sender: TObject);
  84.     procedure SpeedButton6Click(Sender: TObject);
  85.     procedure SpeedButton3Click(Sender: TObject);
  86.     procedure FormCreate(Sender: TObject);
  87.     procedure FormActivate(Sender: TObject);
  88.     procedure BitBtn3Click(Sender: TObject);
  89.     procedure N1Click(Sender: TObject);
  90.   private
  91.     { Private declarations }
  92.   public
  93.     { Public declarations }
  94.   end;
  95. var
  96.   Form5: TForm5;
  97. implementation
  98. uses U_mainform, U_clkcqk, U_fzlr_clbm, U_kcpd_child, U_fzlr_zgxm;
  99. {$R *.DFM}
  100. procedure TForm5.FormClose(Sender: TObject; var Action: TCloseAction);
  101. begin
  102.   action := cafree;
  103.   form65.clientdataset1.Cancel;
  104.   form65.clientdataset1.CancelUpdates;
  105. end;
  106. procedure TForm5.SpeedButton1Click(Sender: TObject);
  107. begin
  108.   speedbutton1.enabled := not speedbutton1.Enabled;
  109.   speedbutton2.enabled := not speedbutton2.enabled;
  110.   speedbutton3.enabled := not speedbutton3.enabled;
  111.   speedbutton4.enabled := not speedbutton4.enabled;
  112.   speedbutton5.enabled := not speedbutton5.enabled;
  113.   speedbutton6.enabled := not speedbutton6.enabled;
  114.   speedbutton7.enabled := not speedbutton7.enabled;
  115.   speedbutton8.enabled := not speedbutton8.enabled;
  116.   dbedit4.enabled := true;
  117.   bitbtn3.visible := not bitbtn3.visible;
  118.   dbgrid1.columns[3].readonly := not dbgrid1.columns[3].readonly;
  119.   panel1.enabled := not panel1.enabled;
  120.   form65.clientdataset1.Insert;
  121.   dbgrid1.PopupMenu := popupMenu1;
  122. end;
  123. procedure TForm5.SpeedButton2Click(Sender: TObject);
  124. var
  125.   i: integer;
  126.   d_date: Tdatetime;
  127.   vs_pdbh: string;
  128. begin
  129.   if dbcombobox1.text = '' then
  130.   begin
  131.     application.MessageBox('请先选择仓库', '材料与计划管理系统', mb_iconinformation + mb_defbutton1);
  132.     dbcombobox1.setfocus;
  133.     exit;
  134.   end;
  135. {  try
  136.     d_date := strtodate(dbedit3.text);
  137.   except
  138.     application.MessageBox('盘点日期输入是否正确', '材料与计划管理系统', mb_iconinformation + mb_defbutton1);
  139.     dbedit3.setfocus;
  140.     exit;
  141.   end; }
  142.   if length(trim(dbedit4.text)) <> 9 then
  143.   begin
  144.     application.MessageBox('当前盘店号应为九位', '材料与计划管理系统', mb_iconinformation + mb_defbutton1);
  145.     dbedit4.setfocus;
  146.     exit;
  147.   end;
  148.   vs_pdbh := dbedit4.Text;
  149.   clientdataset_index.IndexFieldNames := '盘点编号';
  150.   clientdataset_index.Refresh;
  151.   if form65.clientdataset1.state = dsinsert then
  152.   begin
  153.     if clientdataset_index.FindKey([vs_pdbh]) then
  154.     begin
  155.       application.MessageBox('盘点编号已重复', '物资管理系统', mb_iconinformation + mb_defbutton1);
  156.       dbedit4.SetFocus;
  157.       exit;
  158.     end;
  159.   end;
  160.   application.createform(tform64, form64);
  161.   try
  162.     form64.showmodal;
  163.   finally
  164.     form64.free;
  165.     for i := 0 to gi_count1 - 1 do
  166.     begin
  167.       clientdataset2.insert;
  168.       clientdataset2.fieldbyname('材料编码').value := gs_clbm1[i];
  169.       clientdataset2.fieldbyname('材料名称').value := gs_clmc1[i];
  170.       clientdataset2.fieldbyname('规格型号').value := gs_ggxh1[i];
  171.       clientdataset2.fieldbyname('计量单位').value := gs_jldw1[i];
  172.       clientdataset2.fieldbyname('计划单价').value := gs_jhdj1[i];
  173.       clientdataset2.fieldbyname('单价单位').value := gs_djdw1[i];
  174.       clientdataset2.fieldbyname('实存数量').value := gs_xykcl1[i];
  175.       clientdataset2.fieldbyname('盘点数量').value := 0.00;
  176.       clientdataset2.post;
  177.     end;
  178.   end;
  179. end;
  180. procedure TForm5.DBGrid1KeyDown(Sender: TObject; var Key: Word;
  181.   Shift: TShiftState);
  182. begin
  183.   if key = 46 then //当按下Delete键
  184.   begin
  185.     form65.clientdataset1.delete;
  186.   end;
  187. end;
  188. procedure TForm5.SpeedButton8Click(Sender: TObject);
  189. var
  190.   i: integer;
  191.   d_date: Tdate;
  192.   vs_pdbh: string;
  193. begin
  194.   if dbcombobox1.text = '' then
  195.   begin
  196.     application.MessageBox('请先选择仓库', '材料与计划管理系统', mb_iconinformation + mb_defbutton1);
  197.     dbcombobox1.setfocus;
  198.     exit;
  199.   end;
  200.  { try
  201.     d_date := strtodate(dbedit3.text);
  202.   except
  203.     application.MessageBox('盘点日期输入是否正确', '材料与计划管理系统', mb_iconinformation + mb_defbutton1);
  204.     dbedit3.setfocus;
  205.     exit;
  206.   end;   }
  207.   if length(trim(dbedit4.text)) <> 9 then
  208.   begin
  209.     application.MessageBox('当前盘店号应为九位', '材料与计划管理系统', mb_iconinformation + mb_defbutton1);
  210.     dbedit4.setfocus;
  211.     exit;
  212.   end;
  213.   vs_pdbh := dbedit4.Text;
  214.   clientdataset_index.IndexFieldNames := '盘点编号';
  215.   clientdataset_index.Refresh;
  216.   if form65.clientdataset1.state = dsinsert then
  217.   begin
  218.     if clientdataset_index.FindKey([vs_pdbh]) then
  219.     begin
  220.       application.MessageBox('盘点编号已重复', '物资管理系统', mb_iconinformation + mb_defbutton1);
  221.       dbedit4.SetFocus;
  222.       exit;
  223.     end;
  224.   end;
  225.   application.createform(tform27, form27);
  226.   try
  227.     form27.showmodal;
  228.   finally
  229.     form27.free;
  230.     for i := 0 to gi_count - 1 do
  231.     begin
  232. {      clientdataset2.IndexFieldNames := '材料编码';
  233.       if clientdataset2.FindKey([gs_clbm[i]]) then
  234.       begin
  235.         application.MessageBox('已有此物资', '物资管理系统', mb_iconinformation + mb_defbutton1);
  236.         continue;
  237.       end; }
  238.       clientdataset2.insert;
  239.       clientdataset2.fieldbyname('材料编码').value := gs_clbm[i];
  240.       clientdataset2.fieldbyname('材料名称').value := gs_clmc[i];
  241.       clientdataset2.fieldbyname('规格型号').value := gs_ggxh[i];
  242.       clientdataset2.fieldbyname('计量单位').value := gs_jldw[i];
  243.       clientdataset2.fieldbyname('计划单价').value := gs_jhdj[i];
  244.       clientdataset2.fieldbyname('单价单位').value := gs_djdw[i];
  245.       clientdataset2.fieldbyname('实存数量').value := 0.0;
  246.       clientdataset2.fieldbyname('盘点数量').value := 0.0;
  247.       clientdataset2.post;
  248.     end;
  249.   end;
  250. end;
  251. procedure TForm5.SpeedButton4Click(Sender: TObject);
  252. var
  253.   i: integer;
  254.   vi_count: integer;
  255. begin
  256.   vi_count := clientdataset2.recordcount;
  257.   clientdataset2.DisableControls;
  258.   clientdataset2.First;
  259.   for i := 0 to vi_count - 1 do
  260.   begin
  261.     if clientdataset2.fieldbyname('实存数量').asfloat = clientdataset2.fieldbyname('盘点数量').asfloat then
  262.       clientdataset2.Delete;
  263.   end;
  264.   clientdataset2.EnableControls;
  265.   dbgrid1.Refresh;
  266. end;
  267. procedure TForm5.SpeedButton7Click(Sender: TObject);
  268. var
  269.   i: integer;
  270.   vi_count: integer;
  271. begin
  272.   vi_count := clientdataset2.recordcount;
  273.   clientdataset2.DisableControls;
  274.   clientdataset2.First;
  275.   if clientdataset2.recordcount = 0 then
  276.   begin
  277.     application.messagebox('请添加物资', '物资管理系统', mb_iconinformation + mb_defbutton1);
  278.     exit;
  279.   end;
  280.   for i := 0 to vi_count - 1 do
  281.   begin
  282.     if clientdataset2.fieldbyname('实存数量').asfloat = clientdataset2.fieldbyname('盘点数量').asfloat then
  283.     begin
  284.       application.messagebox('有实存数量同盘店数量一致', '物资管理系统', mb_iconinformation + mb_defbutton1);
  285.       clientdataset2.enablecontrols;
  286.       exit;
  287.     end;
  288.   end;
  289.   clientdataset2.EnableControls;
  290.   form65.clientdataset1.Post;
  291.   form65.clientdataset1.ApplyUpdates(0);
  292.   speedbutton1.enabled := not speedbutton1.Enabled;
  293.   speedbutton2.enabled := not speedbutton2.enabled;
  294.   speedbutton3.enabled := not speedbutton3.enabled;
  295.   speedbutton4.enabled := not speedbutton4.enabled;
  296.   speedbutton5.enabled := not speedbutton5.enabled;
  297.   speedbutton6.enabled := not speedbutton6.enabled;
  298.   speedbutton7.enabled := not speedbutton7.enabled;
  299.   speedbutton8.enabled := not speedbutton8.enabled;
  300.   bitbtn3.visible := not bitbtn3.visible;
  301.   panel1.enabled := not panel1.enabled;
  302.   dbgrid1.columns[3].readonly := not dbgrid1.columns[3].readonly;
  303.   dbgrid1.PopupMenu := nil;
  304. end;
  305. procedure TForm5.SpeedButton5Click(Sender: TObject);
  306. begin
  307.   form65.clientdataset1.CancelUpdates;
  308.   speedbutton1.enabled := not speedbutton1.Enabled;
  309.   speedbutton2.enabled := not speedbutton2.enabled;
  310.   speedbutton3.enabled := not speedbutton3.enabled;
  311.   speedbutton4.enabled := not speedbutton4.enabled;
  312.   speedbutton5.enabled := not speedbutton5.enabled;
  313.   speedbutton6.enabled := not speedbutton6.enabled;
  314.   speedbutton7.enabled := not speedbutton7.enabled;
  315.   speedbutton8.enabled := not speedbutton8.enabled;
  316.   bitbtn3.visible := not bitbtn3.visible;
  317.   panel1.enabled := not panel1.enabled;
  318.   dbgrid1.columns[3].readonly := not dbgrid1.columns[3].readonly;
  319.   dbgrid1.PopupMenu := nil;
  320. end;
  321. procedure TForm5.SpeedButton6Click(Sender: TObject);
  322. begin
  323.   speedbutton1.enabled := not speedbutton1.Enabled;
  324.   speedbutton2.enabled := not speedbutton2.enabled;
  325.   speedbutton3.enabled := not speedbutton3.enabled;
  326.   speedbutton4.enabled := not speedbutton4.enabled;
  327.   speedbutton5.enabled := not speedbutton5.enabled;
  328.   speedbutton6.enabled := not speedbutton6.enabled;
  329.   speedbutton7.enabled := not speedbutton7.enabled;
  330.   speedbutton8.enabled := not speedbutton8.enabled;
  331.   dbedit4.Enabled := false;
  332.   bitbtn3.visible := not bitbtn3.visible;
  333.   dbgrid1.columns[3].readonly := not dbgrid1.columns[3].readonly;
  334.   panel1.enabled := not panel1.enabled;
  335.   form65.clientdataset1.edit;
  336.   dbgrid1.PopupMenu := popupmenu1;
  337. end;
  338. procedure TForm5.SpeedButton3Click(Sender: TObject);
  339. begin
  340.   quickrep1.Preview;
  341. end;
  342. procedure TForm5.FormCreate(Sender: TObject);
  343. begin
  344.   clientdataset3.first;
  345.   while not clientdataset3.Eof do
  346.   begin
  347.     dbcombobox1.Items.add(clientdataset3.fieldbyname('仓库名称').asstring);
  348.     clientdataset3.Next;
  349.   end;
  350. end;
  351. procedure TForm5.FormActivate(Sender: TObject);
  352. begin
  353. //  dbcombobox1.SetFocus;
  354. end;
  355. procedure TForm5.BitBtn3Click(Sender: TObject);
  356. begin
  357.   application.createform(Tform31, form31);
  358.   try
  359.     form31.showmodal;
  360.   finally
  361.     form65.clientdataset1.FieldByName('盘点人').value := gs_zgxm;
  362.     form31.free;
  363.   end;
  364. end;
  365. procedure TForm5.N1Click(Sender: TObject);
  366. begin
  367.   if clientdataset2.recordcount <> 0 then
  368.     clientdataset2.Delete;
  369. end;
  370. end.