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

📄 ufrmproduct_info.pas

📁 工廠採購管理系統
💻 PAS
字号:
unit ufrmproduct_info;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, RzButton, ComCtrls, ExtCtrls, RzPanel, RzSplit, Grids, DBGrids,
  DBCtrls, DB, ADODB, StdCtrls, Mask, RzCmboBx, RzDBCmbo, Buttons, FR_DSet,
  FR_DBSet, FR_Class;

type
  Tfrmproduct_info = class(TForm)
    RzSizePanel1: TRzSizePanel;
    Panel1: TPanel;
    Panel2: TPanel;
    Panel3: TPanel;
    TreeView1: TTreeView;
    RzBitBtn1: TRzBitBtn;
    RzBitBtn2: TRzBitBtn;
    RzBitBtn3: TRzBitBtn;
    RzBitBtn4: TRzBitBtn;
    RzBitBtn6: TRzBitBtn;
    RzBitBtn5: TRzBitBtn;
    PageControl1: TPageControl;
    TabSheet1: TTabSheet;
    TabSheet2: TTabSheet;
    DBGrid1: TDBGrid;
    ADOQuery1: TADOQuery;
    ADOQuery2: TADOQuery;
    ADOQuery3: TADOQuery;
    DataSource1: TDataSource;
    DBNavigator1: TDBNavigator;
    GroupBox1: TGroupBox;
    Label1: TLabel;
    Label2: TLabel;
    Label3: TLabel;
    Label4: TLabel;
    Label6: TLabel;
    Label9: TLabel;
    Label10: TLabel;
    Label11: TLabel;
    Label12: TLabel;
    DBEdit1: TDBEdit;
    DBEdit3: TDBEdit;
    DBEdit5: TDBEdit;
    DBEdit11: TDBEdit;
    Label13: TLabel;
    DBEdit12: TDBEdit;
    DBEdit13: TDBEdit;
    Label14: TLabel;
    DBMemo1: TDBMemo;
    RzDBLookupComboBox1: TRzDBLookupComboBox;
    RzDBComboBox1: TRzDBComboBox;
    RzDBLookupComboBox3: TRzDBLookupComboBox;
    Label15: TLabel;
    Label16: TLabel;
    DBEdit2: TDBEdit;
    DBEdit4: TDBEdit;
    RzBitBtn7: TRzBitBtn;
    RzBitBtn8: TRzBitBtn;
    CheckBox1: TCheckBox;
    Label5: TLabel;
    DBEdit6: TDBEdit;
    Label8: TLabel;
    DBEdit10: TDBEdit;
    DBEdit7: TDBEdit;
    ADOQuery1DSDesigner: TStringField;
    ADOQuery1DSDesigner2: TStringField;
    ADOQuery1DSDesigner3: TStringField;
    ADOQuery1DSDesigner4: TStringField;
    ADOQuery1DSDesigner5: TStringField;
    ADOQuery1DSDesigner6: TStringField;
    ADOQuery1DSDesigner7: TStringField;
    ADOQuery1DSDesigner8: TBCDField;
    ADOQuery1DSDesigner9: TBCDField;
    ADOQuery1DSDesigner10: TFloatField;
    ADOQuery1DSDesigner11: TBCDField;
    ADOQuery1DSDesigner12: TStringField;
    ADOQuery1DSDesigner13: TStringField;
    ADOQuery1DSDesigner14: TStringField;
    ADOQuery1DSDesigner15: TDateTimeField;
    ADOQuery1DSDesigner16: TMemoField;
    RzMenuToolbarButton1: TRzMenuToolbarButton;
    ADOStoredProc1: TADOStoredProc;
    procedure FormClose(Sender: TObject; var Action: TCloseAction);
    procedure FormCreate(Sender: TObject);
    procedure RzBitBtn1Click(Sender: TObject);
    procedure RzBitBtn2Click(Sender: TObject);
    procedure RzBitBtn7Click(Sender: TObject);
    procedure PageControl1Change(Sender: TObject);
    procedure RzBitBtn5Click(Sender: TObject);
    procedure RzBitBtn8Click(Sender: TObject);
    procedure TreeView1Change(Sender: TObject; Node: TTreeNode);
    procedure RzBitBtn6Click(Sender: TObject);
    procedure RzBitBtn4Click(Sender: TObject);
    procedure DBGrid1DrawColumnCell(Sender: TObject; const Rect: TRect;
      DataCol: Integer; Column: TColumn; State: TGridDrawState);
    procedure CheckBox1Click(Sender: TObject);
    procedure RzMenuToolbarButton1Click(Sender: TObject);
    procedure DBEdit7Enter(Sender: TObject);
    procedure DBEdit7Exit(Sender: TObject);
    procedure RzBitBtn3Click(Sender: TObject);
    procedure DBEdit6DblClick(Sender: TObject);
    procedure DBEdit3DblClick(Sender: TObject);
    procedure DBEdit13DblClick(Sender: TObject);
    procedure DBEdit7DblClick(Sender: TObject);
    procedure DBMemo1DblClick(Sender: TObject);
    procedure DBGrid1TitleClick(Column: TColumn);
  private
    { Private declarations }
    strsql:string;
    isedit:boolean;
    addedit:boolean;
    id:string;
    lbmc:string;
    cpmc:string;
    siyin:string;
    baoz:string;
    smallclass:string;
    bigclass:string;
    bz:string;
  public
    { Public declarations }
  end;

var
  frmproduct_info: Tfrmproduct_info;

implementation
uses uconst,udm1,Unit_treepublic,ufunction,ucx,ucpsmallclass,unit3;
{$R *.dfm}

procedure Tfrmproduct_info.FormClose(Sender: TObject;
  var Action: TCloseAction);
begin
action:=cafree;
end;

procedure Tfrmproduct_info.FormCreate(Sender: TObject);
begin
addedit:=false;
adoquery2.Connection:=dm1.ADOConnection1;
ADOStoredProc1.Connection:=dm1.ADOConnection1;
maketree(adoquery2,'cplb',treeview1,'产品类别列表');
strsql:='select cpdm as 产品代码,bigclass as 大类,smallclass as 小类,cpmc as 名称,'+
        'dw as 单位,baoz as 包装,siyin as 丝印,sjkc as 实际库存,kykc as 可用库存,baoj as 单价,'+
        'aqkc as 安全库存,kykc as 剩余库存,chang as 厂别,bandan as 办单,djr as 操作,srrq as 日期,'+
        'node as 备注 from cpdmk ';
adoexect(adoquery1,strsql);
RzDBComboBox1.Items.Add('力盈');
RzDBComboBox1.Items.Add('佳盈');
if qxjc(userid,'qxsz') then
   begin
        dbedit5.Enabled:=true;
        dbedit11.Enabled:=true;
   end;
end;

procedure Tfrmproduct_info.RzBitBtn1Click(Sender: TObject);
var
id:string;
begin
if not qxjc(userid,'jbzl_add') then exit;
addedit:=true;
isedit:=false;
RzBitBtn1.Enabled:=false;
RzBitBtn2.Enabled:=false;
RzBitBtn6.Enabled:=false;
RzBitBtn7.Enabled:=true;
PageControl1.ActivePageIndex:=1;
adoquery1.Append;
dbedit2.Text:=userid;
dbedit4.text:=datetostr(date);
dbedit5.Text:='0';
dbedit11.Text:='0';
dbedit12.Text:='0';
DBNavigator1.Enabled:=false;
treeview1.Enabled:=false;
dbedit1.SetFocus;
end;

procedure Tfrmproduct_info.RzBitBtn2Click(Sender: TObject);
begin
if not qxjc(userid,'jbzl_edit')and (username<>trim(dbedit2.Text)) then exit;
if (adoquery1.Recordset.EOF) and (adoquery1.Recordset.BOF) then begin
messagebox(handle,'没有选择要修改的记录!','警告',mb_ok+mb_iconwarning);
exit;
end;
id:=trim(dbedit1.Text);
addedit:=true;
isedit:=true;
RzBitBtn1.Enabled:=false;
RzBitBtn2.Enabled:=false;
RzBitBtn6.Enabled:=false;
RzBitBtn7.Enabled:=true;
adoquery1.Edit;
dbedit2.Text:=userid;
dbedit4.Text:=datetostr(date);
PageControl1.ActivePageIndex:=1;
DBNavigator1.Enabled:=false;
treeview1.Enabled:=false;
end;

procedure Tfrmproduct_info.RzBitBtn7Click(Sender: TObject);
begin
if savedata(adoquery1,'cpdmk',trim(dbedit1.Text),id,'cpdm') then begin
   if adoquery1.State in[dsedit] then
      begin
           strsql:='exec p_update_cpdm '+''''+id+''''+','+''''+trim(dbedit1.Text)+'''';
           adodel(adoquery3,strsql);
           adoquery3.Close;
      end;
   adoquery1.Post;
   cpmc:=trim(dbedit3.Text);
   smallclass:=trim(dbedit7.Text);
   bigclass:=trim(RzDBLookupComboBox1.Text);
   bz:=trim(dbmemo1.Text);
   siyin:=trim(dbedit13.Text);
   baoz:=trim(dbedit6.Text);
   messagebox(handle,'操作成功!','信息',mb_ok+mb_iconinformation);
   RzBitBtn1.Enabled:=true;
   RzBitBtn2.Enabled:=true;
   RzBitBtn6.Enabled:=true;
   RzBitBtn7.Enabled:=false;
   if not isedit then exit;
   PageControl1.ActivePageIndex:=0;
   DBNavigator1.Enabled:=true;
   treeview1.Enabled:=true;
end;
end;

procedure Tfrmproduct_info.PageControl1Change(Sender: TObject);
begin
if addedit then
   begin
   PageControl1.ActivePageIndex:=1;
   DBNavigator1.Enabled:=false;
   treeview1.Enabled:=false;
   end else begin
   PageControl1.ActivePageIndex:=0;
   DBNavigator1.Enabled:=true;
   treeview1.Enabled:=true
   end;
end;
procedure Tfrmproduct_info.RzBitBtn5Click(Sender: TObject);
begin
close;
end;

procedure Tfrmproduct_info.RzBitBtn8Click(Sender: TObject);
begin
adoquery1.CancelUpdates;
RzBitBtn1.Enabled:=true;
RzBitBtn2.Enabled:=true;
RzBitBtn6.Enabled:=true;
RzBitBtn7.Enabled:=false;
PageControl1.ActivePageIndex:=0;
DBNavigator1.Enabled:=true;
treeview1.Enabled:=true;
end;

procedure Tfrmproduct_info.TreeView1Change(Sender: TObject;
  Node: TTreeNode);
begin
lbmc:=trim(treeview1.Selected.Text);
if lbmc='' then exit;
case node.Level of
     0:
        strsql:='select cpdm as 产品代码,bigclass as 大类,smallclass as 小类,cpmc as 名称,'+
               'dw as 单位,baoz as 包装,siyin as 丝印,sjkc as 实际库存,kykc as 可用库存,baoj as 单价,'+
               'aqkc as 安全库存,kykc as 剩余库存,chang as 厂别,bandan as 办单,djr as 操作,srrq as 日期,'+
              'node as 备注 from cpdmk order by cpdm asc';
     1:
        strsql:='select cpdm as 产品代码,bigclass as 大类,smallclass as 小类,cpmc as 名称,'+
               'dw as 单位,baoz as 包装,siyin as 丝印,sjkc as 实际库存,kykc as 可用库存,baoj as 单价,'+
               'aqkc as 安全库存,kykc as 剩余库存,chang as 厂别,bandan as 办单,djr as 操作,srrq as 日期,'+
              'node as 备注 from cpdmk where bigclass= '+''''+lbmc+''''+' order by cpdm asc';
     2,3,4,5,6:
        strsql:='select cpdm as 产品代码,bigclass as 大类,smallclass as 小类,cpmc as 名称,'+
               'dw as 单位,baoz as 包装,siyin as 丝印,sjkc as 实际库存,kykc as 可用库存,baoj as 单价,'+
               'aqkc as 安全库存,kykc as 剩余库存,chang as 厂别,bandan as 办单,djr as 操作,srrq as 日期,'+
              'node as 备注 from cpdmk where smallclass= '+''''+lbmc+''''+' order by cpdm asc';
   end;
adoexect(adoquery1,strsql);

end;
procedure Tfrmproduct_info.RzBitBtn6Click(Sender: TObject);
var
a:integer;
begin
a:=0;
if not qxjc(userid,'jbzl_del')and (username<>trim(dbedit2.Text)) then exit;
ADOStoredProc1.close;
adostoredproc1.Parameters.Clear;
adostoredproc1.ProcedureName:='p_check_cpdm';
adostoredproc1.Parameters.CreateParameter('@cpdm',ftstring,pdInput,20,1);
ADOStoredProc1.Parameters.ParamByName('@cpdm').Value:=trim(adoquery1.fieldbyname('产品代码').AsString);
adostoredproc1.Parameters.CreateParameter('@isok',ftinteger,pdoutput,1,1);
ADOStoredProc1.prepared:=true;
ADOStoredProc1.ExecProc;
a:=ADOStoredProc1.Parameters.ParamValues['@isok'];
if a=1 then
   begin
   showmessage('对不起!该产品已经使用了,不能删除');
   exit;
   end;
if (adoquery1.Recordset.EOF) and (adoquery1.Recordset.BOF) then begin
messagebox(handle,'没有选择要删除的记录!','警告',mb_ok+mb_iconwarning);
exit;
end;
adoquery1.Delete;
adoquery1.Requery(); 
end;

procedure Tfrmproduct_info.RzBitBtn4Click(Sender: TObject);
begin
frmcx:=tfrmcx.Create(self);
frmcx.adocx:=adoquery1;
frmcx.ShowModal;
adoquery1:=frmcx.adocx;
ADOquery1.Requery();
dbgrid1.Refresh;
end;

procedure Tfrmproduct_info.DBGrid1DrawColumnCell(Sender: TObject;
  const Rect: TRect; DataCol: Integer; Column: TColumn;
  State: TGridDrawState);
begin
if adoquery1.FieldByName('可用库存').Value < adoquery1.FieldByName('安全库存').Value then begin
   dbgrid1.Canvas.Brush.Color:=clYellow;
   dbgrid1.DefaultDrawColumnCell(rect,datacol,column,[gdfixed,gdfocused,gdselected]);
end;

end;

procedure Tfrmproduct_info.CheckBox1Click(Sender: TObject);
begin

if checkbox1.Checked=true then  begin
   strsql:='select cpdm as 产品代码,bigclass as 大类,smallclass as 小类,cpmc as 名称,'+
   'dw as 单位,baoz as 包装,siyin as 丝印,sjkc as 实际库存,kykc as 可用库存,baoj as 单价,'+
   'aqkc as 安全库存,kykc as 剩余库存,chang as 厂别,bandan as 办单,djr as 操作,srrq as 日期,'+
   'node as 备注 from cpdmk where kykc<aqkc order by cpdm asc';
end else begin
    strsql:='select cpdm as 产品代码,bigclass as 大类,smallclass as 小类,cpmc as 名称,'+
    'dw as 单位,baoz as 包装,siyin as 丝印,sjkc as 实际库存,kykc as 可用库存,baoj as 单价,'+
    'aqkc as 安全库存,kykc as 剩余库存,chang as 厂别,bandan as 办单,djr as 操作,srrq as 日期,'+
    'node as 备注 from cpdmk';
 end;
adoexect(adoquery1,strsql);
end;

procedure Tfrmproduct_info.RzMenuToolbarButton1Click(Sender: TObject);
begin
lbname:=RzDBLookupComboBox1.Text;
frmcpsmallclass:=tfrmcpsmallclass.Create(self);
frmcpsmallclass.ShowModal;
DBEdit7.Text:=lbname;

end;

procedure Tfrmproduct_info.DBEdit7Enter(Sender: TObject);
begin
RzMenuToolbarButton1.Visible:=true;
end;

procedure Tfrmproduct_info.DBEdit7Exit(Sender: TObject);
begin
RzMenuToolbarButton1.Visible:=false;
end;

procedure Tfrmproduct_info.RzBitBtn3Click(Sender: TObject);
begin
form3.frDBDataSet1.dataset:=adoquery1;
form3.frReport1.DoublePass := True;
form3.frReport1.Clear;
form3.frReport1.LoadFromFile(strpath+'/report/cpda.frf');
frVariables['username']:=username;
form3.frReport1.Preview := Form3.frPreview1;
if form3.frReport1.PrepareReport then
  begin
    form3.frReport1.ShowPreparedReport;
  end;
form3.ShowModal;
end;

procedure Tfrmproduct_info.DBEdit6DblClick(Sender: TObject);
begin
dbedit6.Text:=baoz;
end;

procedure Tfrmproduct_info.DBEdit3DblClick(Sender: TObject);
begin
dbedit3.Text:=cpmc;
end;

procedure Tfrmproduct_info.DBEdit13DblClick(Sender: TObject);
begin
dbedit13.Text:=siyin;
end;

procedure Tfrmproduct_info.DBEdit7DblClick(Sender: TObject);
begin
dbedit7.Text:=smallclass;
end;

procedure Tfrmproduct_info.DBMemo1DblClick(Sender: TObject);
begin
dbmemo1.text:=bz;
end;

procedure Tfrmproduct_info.DBGrid1TitleClick(Column: TColumn);
begin
dgridpx(adoquery1,DBGrid1,Column);
end;

end.

⌨️ 快捷键说明

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