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

Delphi/CppBuilder

开发平台:

Delphi

  1. unit U_bmlldgl;
  2. interface
  3. uses
  4.   Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
  5.   StdCtrls, DBCtrls, Buttons, Mask, Grids, DBGrids, ExtCtrls, Db, DBClient,
  6.   ComCtrls, Menus, ImgList, Qrctrls, QuickRpt;
  7. type
  8.   TfrmBmlld = class(TForm)
  9.     ScrollBox3: TScrollBox;
  10.     Panel2: TPanel;
  11.     Panel8: TPanel;
  12.     btn_insert: TSpeedButton;
  13.     btn_find: TSpeedButton;
  14.     btn_print: TSpeedButton;
  15.     btn_post: TSpeedButton;
  16.     btn_cancel: TSpeedButton;
  17.     btn_refresh: TSpeedButton;
  18.     btn_delete: TSpeedButton;
  19.     btn_edit: TSpeedButton;
  20.     DBNavigator2: TDBNavigator;
  21.     Panel1: TPanel;
  22.     Label28: TLabel;
  23.     Label29: TLabel;
  24.     Label30: TLabel;
  25.     Label31: TLabel;
  26.     Label32: TLabel;
  27.     Label37: TLabel;
  28.     Label38: TLabel;
  29.     Label40: TLabel;
  30.     DBEdit30: TDBEdit;
  31.     DBEdit31: TDBEdit;
  32.     DBEdit32: TDBEdit;
  33.     DBEdit33: TDBEdit;
  34.     DBEdit34: TDBEdit;
  35.     DBEdit39: TDBEdit;
  36.     DBCheckBox3: TDBCheckBox;
  37.     DBComboBox2: TDBComboBox;
  38.     Panel3: TPanel;
  39.     Label33: TLabel;
  40.     Label34: TLabel;
  41.     Label35: TLabel;
  42.     Label36: TLabel;
  43.     DBEdit35: TDBEdit;
  44.     DBEdit36: TDBEdit;
  45.     DBEdit37: TDBEdit;
  46.     DBEdit38: TDBEdit;
  47.     DataSource5: TDataSource;
  48.     DataSource4: TDataSource;
  49.     BitBtn1: TBitBtn;
  50.     BitBtn2: TBitBtn;
  51.     BitBtn3: TBitBtn;
  52.     BitBtn4: TBitBtn;
  53.     BitBtn5: TBitBtn;
  54.     StatusBar1: TStatusBar;
  55.     Timer1: TTimer;
  56.     DBGrid1: TDBGrid;
  57.     ImageList1: TImageList;
  58.     PopupMenu1: TPopupMenu;
  59.     N1: TMenuItem;
  60.     N2: TMenuItem;
  61.     Label1: TLabel;
  62.     DBEdit1: TDBEdit;
  63.     BitBtn6: TBitBtn;
  64.     QuickRep1: TQuickRep;
  65.     PageHeaderBand1: TQRBand;
  66.     QRLabel1: TQRLabel;
  67.     QRLabel2: TQRLabel;
  68.     QRSysData1: TQRSysData;
  69.     QRSubDetail1: TQRSubDetail;
  70.     QRDBText10: TQRDBText;
  71.     QRDBText11: TQRDBText;
  72.     QRDBText12: TQRDBText;
  73.     QRDBText13: TQRDBText;
  74.     QRDBText14: TQRDBText;
  75.     QRDBText15: TQRDBText;
  76.     TitleBand1: TQRBand;
  77.     QRLabel3: TQRLabel;
  78.     QRLabel4: TQRLabel;
  79.     QRLabel5: TQRLabel;
  80.     QRLabel6: TQRLabel;
  81.     QRLabel7: TQRLabel;
  82.     QRLabel8: TQRLabel;
  83.     QRLabel9: TQRLabel;
  84.     QRLabel10: TQRLabel;
  85.     QRLabel11: TQRLabel;
  86.     QRDBText1: TQRDBText;
  87.     QRDBText2: TQRDBText;
  88.     QRDBText3: TQRDBText;
  89.     QRDBText4: TQRDBText;
  90.     QRDBText5: TQRDBText;
  91.     QRDBText6: TQRDBText;
  92.     QRDBText7: TQRDBText;
  93.     QRDBText8: TQRDBText;
  94.     QRDBText9: TQRDBText;
  95.     QRShape1: TQRShape;
  96.     QRShape2: TQRShape;
  97.     SummaryBand1: TQRBand;
  98.     QRLabel18: TQRLabel;
  99.     QRLabel19: TQRLabel;
  100.     QRLabel20: TQRLabel;
  101.     QRLabel21: TQRLabel;
  102.     QRDBText16: TQRDBText;
  103.     QRDBText17: TQRDBText;
  104.     QRDBText18: TQRDBText;
  105.     QRDBText19: TQRDBText;
  106.     PageFooterBand1: TQRBand;
  107.     QRLabel22: TQRLabel;
  108.     QRLabel23: TQRLabel;
  109.     QRSysData2: TQRSysData;
  110.     ColumnHeaderBand1: TQRBand;
  111.     QRLabel17: TQRLabel;
  112.     QRLabel39: TQRLabel;
  113.     QRLabel40: TQRLabel;
  114.     QRLabel41: TQRLabel;
  115.     QRLabel42: TQRLabel;
  116.     QRLabel43: TQRLabel;
  117.     procedure FormClose(Sender: TObject; var Action: TCloseAction);
  118.     procedure btn_insertClick(Sender: TObject);
  119.     procedure btn_editClick(Sender: TObject);
  120.     procedure btn_cancelClick(Sender: TObject);
  121.     procedure btn_postClick(Sender: TObject);
  122.     procedure BitBtn2Click(Sender: TObject);
  123.     procedure BitBtn3Click(Sender: TObject);
  124.     procedure BitBtn4Click(Sender: TObject);
  125.     procedure BitBtn5Click(Sender: TObject);
  126.     procedure btn_refreshClick(Sender: TObject);
  127.     procedure BitBtn1Click(Sender: TObject);
  128.     procedure btn_findClick(Sender: TObject);
  129.     procedure Timer1Timer(Sender: TObject);
  130.     procedure btn_deleteClick(Sender: TObject);
  131.     procedure N1Click(Sender: TObject);
  132.     procedure DBGrid1DblClick(Sender: TObject);
  133.     procedure N2Click(Sender: TObject);
  134.     procedure BitBtn6Click(Sender: TObject);
  135.     procedure btn_printClick(Sender: TObject);
  136.     procedure FormCreate(Sender: TObject);
  137.   private
  138.     procedure btn_valid;
  139.     { Private declarations }
  140.   public
  141.     { Public declarations }
  142.   end;
  143. var
  144.   frmBmlld: TfrmBmlld;
  145. implementation
  146. uses U_mainform, U_fzlr_zgxm, WzglDB, u_public, U_fzlr_clbm;
  147. {$R *.DFM}
  148. procedure TfrmBmlld.FormClose(Sender: TObject; var Action: TCloseAction);
  149. begin
  150.   action := cafree;
  151.   frmBmlld := nil;
  152. end;
  153. procedure TfrmBmlld.btn_insertClick(Sender: TObject);
  154. begin
  155.   DM.CDS_BMLLD.filter := '';
  156.   DM.CDS_BMLLD.filtered := true;
  157.   DM.CDS_BMLLD.Insert;
  158.   dbedit30.enabled := true;
  159.   btn_valid;
  160.   dbedit31.SetFocus;
  161. end;
  162. procedure TfrmBmlld.btn_valid;
  163. begin
  164.   DBNavigator2.enabled := not dbnavigator2.enabled;
  165.   btn_insert.enabled := not btn_insert.enabled;
  166.   btn_delete.enabled := not btn_delete.enabled;
  167.   btn_edit.enabled := not btn_edit.enabled;
  168.   btn_cancel.enabled := not btn_cancel.enabled;
  169.   btn_post.enabled := not btn_post.enabled;
  170.   btn_find.enabled := not btn_find.enabled;
  171.   btn_refresh.enabled := not btn_refresh.enabled;
  172.   btn_print.enabled := not btn_print.enabled;
  173.   panel3.enabled := not panel3.enabled;
  174.   panel1.enabled := not panel1.enabled;
  175.   dbgrid1.columns[2].readonly := not dbgrid1.columns[2].readonly;
  176.   dbgrid1.columns[3].readonly := not dbgrid1.columns[3].readonly;
  177.   bitbtn1.visible := not bitbtn1.visible;
  178.   bitbtn2.visible := not bitbtn2.visible;
  179.   bitbtn3.visible := not bitbtn3.visible;
  180.   bitbtn4.visible := not bitbtn4.visible;
  181.   bitbtn5.visible := not bitbtn5.visible;
  182.   bitbtn6.visible := not bitbtn6.visible;
  183. end;
  184. procedure TfrmBmlld.btn_editClick(Sender: TObject);
  185. begin
  186.   if DM.CDS_BMLLD.recordcount = 0 then
  187.   begin
  188.     application.MessageBox('没有记录不能编辑', '物资管理系统', mb_iconinformation + mb_defbutton1);
  189.     exit;
  190.   end;
  191.   if DM.CDS_BMLLD.FieldByName('是否审核').value = true then
  192.   begin
  193.     application.messagebox('此单据已审核,不能编辑', '', mb_iconinformation + mb_defbutton1);
  194.     exit;
  195.   end;
  196.   DM.CDS_BMLLD.edit;
  197.   dbedit30.enabled := false;
  198.   btn_valid;
  199.   dbedit31.setfocus;
  200. end;
  201. procedure TfrmBmlld.btn_cancelClick(Sender: TObject);
  202. begin
  203.   DM.CDS_BMLLD.CancelUpdates;
  204.   btn_valid;
  205. end;
  206. procedure TfrmBmlld.btn_postClick(Sender: TObject);
  207. var
  208.   v_date: Tdate;
  209.   s_llzh: string;
  210. begin
  211.   if trim(dbedit31.text) = '' then
  212.   begin
  213.     application.MessageBox('领料单位不能为空', '物资管理系统', mb_iconinformation + mb_defbutton1);
  214.     dbedit31.SetFocus;
  215.     exit;
  216.   end;
  217.   if length(trim(dbedit30.text)) <> 9 then
  218.   begin
  219.     application.MessageBox('领料字号应为九位', '物资管理系统', mb_iconinformation + mb_defbutton1);
  220.     dbedit30.SetFocus;
  221.     exit;
  222.   end;
  223.   if dbcombobox2.text = '' then
  224.   begin
  225.     application.MessageBox('仓库名称不能为空', '物资管理系统', mb_iconinformation + mb_defbutton1);
  226.     dbcombobox2.SetFocus;
  227.     abort;
  228.   end;
  229.   s_llzh := dbedit30.Text;
  230.   DM.CDS_BMLLD_INDEX.IndexFieldNames := '领料字号';
  231.   DM.CDS_BMLLD_INDEX.Refresh;
  232.   if DM.CDS_BMLLD.state = dsinsert then
  233.   begin
  234.     if DM.CDS_BMLLD_INDEX.FindKey([s_llzh]) then
  235.     begin
  236.       application.MessageBox('领料字号已重复', '物资管理系统', mb_iconinformation + mb_defbutton1);
  237.       dbedit30.SetFocus;
  238.       exit;
  239.     end;
  240.   end;
  241.   DM.CDS_BMLLD_DETAIL.First;
  242.   DM.CDS_BMLLD.Post;
  243.   DM.CDS_BMLLD.ApplyUpdates(0);
  244.   btn_valid;
  245. end;
  246. procedure TfrmBmlld.BitBtn2Click(Sender: TObject);
  247. begin
  248.   DM.CDS_BMLLD.FieldByName('材料主管').value := GetEmployeeName;
  249. end;
  250. procedure TfrmBmlld.BitBtn3Click(Sender: TObject);
  251. begin
  252.   DM.CDS_BMLLD.FieldByName('发料人').value := GetEmployeeName;
  253. end;
  254. procedure TfrmBmlld.BitBtn4Click(Sender: TObject);
  255. begin
  256.   DM.CDS_BMLLD.FieldByName('领料主管').value := GetEmployeeName;
  257. end;
  258. procedure TfrmBmlld.BitBtn5Click(Sender: TObject);
  259. begin
  260.   DM.CDS_BMLLD.FieldByName('领料人').value := GetEmployeeName;
  261. end;
  262. procedure TfrmBmlld.btn_refreshClick(Sender: TObject);
  263. begin
  264.   DM.CDS_BMLLD.disablecontrols;
  265.   DM.CDS_BMLLD.close;
  266.   DM.CDS_BMLLD.CommandText := 'select * from cl_bmlld_main order by 领料字号';
  267.   DM.CDS_BMLLD.open;
  268.   DM.CDS_BMLLD.enablecontrols;
  269.   DM.CDS_BMLLD.first;
  270. end;
  271. procedure TfrmBmlld.BitBtn1Click(Sender: TObject);
  272. begin
  273.   DM.CDS_BMLLD.FieldByName('领料单位').value := GetDeptName;
  274. end;
  275. procedure TfrmBmlld.btn_findClick(Sender: TObject);
  276. begin
  277. {  application.createform(Tform77, form77);
  278.   form77.combobox1.items.add('领料字号');
  279.   form77.combobox1.items.add('领料单位');
  280.   form77.combobox1.items.add('领料用途');
  281.   form77.combobox1.items.add('材料主管');
  282.   form77.combobox1.items.add('发料人');
  283.   form77.combobox1.items.add('领料主管');
  284.   form77.combobox1.items.add('领料人');
  285.   v_table := 'CL_BMLLD_MAIN';
  286.   try
  287.     form77.showmodal;
  288.   finally
  289.     form77.free;
  290.     if sf_qr = 'yes' then
  291.     begin
  292.       DM.CDS_BMLLD.filter := xx401;
  293.       DM.CDS_BMLLD.filtered := true;
  294.     end;
  295.   end;
  296. }
  297. end;
  298. procedure TfrmBmlld.Timer1Timer(Sender: TObject);
  299. begin
  300. {  statusbar1.panels[2].text := '共有: ' + inttostr(DM.CDS_BMLLD.recordcount) + ' 条记录';
  301.   if DM.CDS_BMLLD.fieldbyname('是否审核').value = true then
  302.   begin
  303.     statusbar1.panels[1].text := '此单据已审核';
  304.   end;
  305.   if (DM.CDS_BMLLD.fieldbyname('是否审核').value = null) or (DM.CDS_BMLLD.fieldbyname('是否审核').value = false) then
  306.   begin
  307.     statusbar1.panels[1].text := '此单据未审核';
  308.   end;
  309.   statusbar1.refresh;}
  310. end;
  311. procedure TfrmBmlld.btn_deleteClick(Sender: TObject);
  312. begin
  313.   if DM.CDS_BMLLD.recordcount = 0 then
  314.   begin
  315.     application.MessageBox('没有记录可删除', '物资管理系统', mb_iconinformation + mb_defbutton1);
  316.     exit;
  317.   end;
  318.   if application.messagebox('请确认是否要删除', '物资管理系统', mb_iconinformation + mb_yesno) = idyes then
  319.   begin
  320.     DM.CDS_BMLLD.delete;
  321.     DM.CDS_BMLLD.applyupdates(0);
  322.   end;
  323. end;
  324. procedure TfrmBmlld.N1Click(Sender: TObject);
  325. var
  326.   i: integer;
  327.   s_hint : string;
  328. begin
  329.   if dbgrid1.columns[2].readonly = true then
  330.   begin
  331.     application.MessageBox('请在添加或编辑状态下添加物资', '物资管理系统', mb_iconinformation + mb_defbutton1);
  332.     exit;
  333.   end;
  334.   application.createform(TfrmClbm_Fzlr, frmClbm_Fzlr);
  335.   try
  336.     frmClbm_Fzlr.showmodal;
  337.   finally
  338.     frmClbm_Fzlr.free;
  339.     for i := Low(ClbmRec) to High(clbmRec) do
  340.     begin
  341.       DM.CDS_BMLLD_DETAIL_INDEX.refresh;
  342.       DM.CDS_BMLLD_DETAIL_INDEX.Filter := '领料字号=' + '''' + DM.CDS_BMLLD.fieldbyname('领料字号').asstring + '''';
  343.       DM.CDS_BMLLD_DETAIL_INDEX.filtered := true;
  344.       DM.CDS_BMLLD_DETAIL_INDEX.IndexFieldNames := '材料编码';
  345.       if DM.CDS_BMLLD_DETAIL_INDEX.FindKey([clbmRec[i].clbm]) then
  346.       begin
  347.         s_hint := '已有材料编号为' + clbmRec[i].clbm + '的物资';
  348.         application.MessageBox(pchar(s_hint), '物资管理系统', mb_iconinformation + mb_defbutton1);
  349.         continue;
  350.       end;
  351.       DM.CDS_BMLLD_DETAIL.insert;
  352.       DM.CDS_BMLLD_DETAIL.fieldbyname('材料编码').value := clbmRec[i].clbm;
  353.       DM.CDS_BMLLD_DETAIL.fieldbyname('材料名称').value := clbmRec[i].clmc;
  354.       DM.CDS_BMLLD_DETAIL.fieldbyname('规格型号').value := clbmRec[i].ggxh;
  355.       DM.CDS_BMLLD_DETAIL.fieldbyname('计量单位').value := clbmRec[i].jldw;
  356.       DM.CDS_BMLLD_DETAIL.fieldbyname('计划单价').value := clbmRec[i].jhdj;
  357.       DM.CDS_BMLLD_DETAIL.fieldbyname('单价单位').value := clbmRec[i].djdw;
  358.       DM.CDS_BMLLD_DETAIL.fieldbyname('请领数量').value := 0.0;
  359.       DM.CDS_BMLLD_DETAIL.fieldbyname('实发数量').value := 0.0;
  360.       DM.CDS_BMLLD_DETAIL.post;
  361.     end;
  362.   end;
  363. end;
  364. procedure TfrmBmlld.DBGrid1DblClick(Sender: TObject);
  365. begin
  366.   n1.click;
  367. end;
  368. procedure TfrmBmlld.N2Click(Sender: TObject);
  369. begin
  370.   if DM.CDS_BMLLD_DETAIL.recordcount = 0 then
  371.   begin
  372.     application.MessageBox('没有记录可删除', '物资管理系统', mb_iconinformation + mb_defbutton1);
  373.     exit;
  374.   end;
  375.   if dbgrid1.columns[2].readonly = true then
  376.   begin
  377.     application.MessageBox('请在添加或编辑状态下删除物资', '物资管理系统', mb_iconinformation + mb_defbutton1);
  378.     exit;
  379.   end;
  380.   if application.messagebox('请确认是否要删除', '物资管理系统', mb_iconinformation + mb_yesno) = idyes then
  381.   begin
  382.     DM.CDS_BMLLD_DETAIL.delete;
  383.   end;
  384. end;
  385. procedure TfrmBmlld.BitBtn6Click(Sender: TObject);
  386. begin
  387.   DM.CDS_BMLLD.FieldByName('工程项目').value := GetProjectName;
  388. end;
  389. procedure TfrmBmlld.btn_printClick(Sender: TObject);
  390. begin
  391.   quickrep1.Preview;
  392. end;
  393. procedure TfrmBmlld.FormCreate(Sender: TObject);
  394. var
  395.   s_value: string;
  396. begin
  397.   with DM do
  398.   begin
  399.     CDS_CKXX_INDEX.Active := True;
  400.     CDS_BMLLD.Active := True;
  401.     CDS_BMLLD_DETAIL.Active := True;
  402.     CDS_BMLLD_INDEX.Active := True;
  403.     CDS_BMLLD_DETAIL_INDEX.Active := True;
  404.   end;
  405.   DM.CDS_CKXX_INDEX.First;
  406.   while not DM.CDS_CKXX_INDEX.eof do
  407.   begin
  408.     s_value := DM.CDS_CKXX_INDEX.fieldbyname('仓库名称').asstring;
  409.     dbcombobox2.Items.Add(s_value);
  410.     DM.CDS_CKXX_INDEX.next;
  411.   end;
  412. end;
  413. end.