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

📄 ucgdd.pas

📁 工廠採購管理系統
💻 PAS
📖 第 1 页 / 共 2 页
字号:
unit ucgdd;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, Buttons, RzButton, StdCtrls, DBCtrls, Mask, ExtCtrls, Grids,
  DBGridEh, RzTabs, DB, ADODB, FR_DSet, FR_DBSet, FR_Class, ComCtrls,
  RzDTP, RzDBDTP, GridsEh, Menus;

type
  Tfrmcgdd = class(TForm)
    Panel1: TPanel;
    Panel2: TPanel;
    Panel3: TPanel;
    RzBitBtn1: TRzBitBtn;
    RzBitBtn2: TRzBitBtn;
    RzBitBtn3: TRzBitBtn;
    RzBitBtn5: TRzBitBtn;
    RzBitBtn6: TRzBitBtn;
    RzBitBtn7: TRzBitBtn;
    RzBitBtn8: TRzBitBtn;
    RzBitBtn9: TRzBitBtn;
    DBNavigator1: TDBNavigator;
    Label1: TLabel;
    Label2: TLabel;
    Label3: TLabel;
    Label4: TLabel;
    Label5: TLabel;
    Label6: TLabel;
    DBEdit1: TDBEdit;
    Label7: TLabel;
    DBEdit2: TDBEdit;
    DBEdit3: TDBEdit;
    DBEdit4: TDBEdit;
    DBMemo1: TDBMemo;
    DBEdit5: TDBEdit;
    DBEdit6: TDBEdit;
    RzPageControl1: TRzPageControl;
    TabSheet1: TRzTabSheet;
    TabSheet2: TRzTabSheet;
    DBGridEh1: TDBGridEh;
    DataSource1: TDataSource;
    DataSource2: TDataSource;
    ADOQuery1: TADOQuery;
    ADOQuery2: TADOQuery;
    ADOQuery3: TADOQuery;
    GroupBox1: TGroupBox;
    Label8: TLabel;
    Label9: TLabel;
    Label10: TLabel;
    Label11: TLabel;
    Label12: TLabel;
    Label13: TLabel;
    DBEdit7: TDBEdit;
    DBEdit8: TDBEdit;
    DBEdit9: TDBEdit;
    DBEdit10: TDBEdit;
    Label14: TLabel;
    DBEdit13: TDBEdit;
    RzBitBtn4: TRzBitBtn;
    RzBitBtn12: TRzBitBtn;
    edit1: TEdit;
    edit2: TEdit;
    ADOQuery4: TADOQuery;
    DataSource3: TDataSource;
    RzToolbarButton2: TRzToolbarButton;
    RzToolbarButton3: TRzToolbarButton;
    Label15: TLabel;
    DBEdit11: TDBEdit;
    Label16: TLabel;
    Label17: TLabel;
    DBComboBox1: TDBComboBox;
    DBCheckBox1: TDBCheckBox;
    Label18: TLabel;
    Label19: TLabel;
    DBEdit12: TDBEdit;
    RzDBDateTimePicker1: TRzDBDateTimePicker;
    Label20: TLabel;
    DBEdit14: TDBEdit;
    Label21: TLabel;
    DBComboBox2: TDBComboBox;
    dtp1: TRzDateTimePicker;
    dtp2: TRzDateTimePicker;
    Label22: TLabel;
    RzToolbarButton1: TRzToolbarButton;
    DBEdit15: TDBEdit;
    Label23: TLabel;
    DBEdit16: TDBEdit;
    PopupMenu1: TPopupMenu;
    N1: TMenuItem;
    N2: TMenuItem;
    Label24: TLabel;
    Edit3: TEdit;
    ADOQuery5: TADOQuery;
    Label25: TLabel;
    DBComboBox3: TDBComboBox;
    procedure FormCreate(Sender: TObject);
    procedure RzBitBtn1Click(Sender: TObject);
    procedure RzBitBtn2Click(Sender: TObject);
    procedure RzBitBtn3Click(Sender: TObject);
    procedure RzBitBtn7Click(Sender: TObject);
    procedure RzBitBtn8Click(Sender: TObject);
    procedure RzBitBtn9Click(Sender: TObject);
    procedure FormClose(Sender: TObject; var Action: TCloseAction);
    procedure DBEdit4Exit(Sender: TObject);
    procedure DBEdit4Enter(Sender: TObject);
    procedure TabSheet2Enter(Sender: TObject);
    procedure edit1KeyPress(Sender: TObject; var Key: Char);
    procedure edit2KeyPress(Sender: TObject; var Key: Char);
    procedure RzBitBtn4Click(Sender: TObject);
    procedure RzBitBtn6Click(Sender: TObject);
    procedure RzBitBtn12Click(Sender: TObject);
    procedure RzMenuToolbarButton1Click(Sender: TObject);
    procedure RzMenuToolbarButton2Click(Sender: TObject);
    procedure DBEdit1Change(Sender: TObject);
    procedure DBEdit3Enter(Sender: TObject);
    procedure DBEdit3Exit(Sender: TObject);
    procedure RzToolbarButton2Click(Sender: TObject);
    procedure RzToolbarButton3Click(Sender: TObject);
    procedure RzBitBtn5Click(Sender: TObject);
    procedure csh();
    procedure dtp1Exit(Sender: TObject);
    procedure dtp2Exit(Sender: TObject);
    function jcsj():boolean;
    procedure DBEdit2Enter(Sender: TObject);
    procedure DBEdit2Exit(Sender: TObject);
    procedure RzToolbarButton1Click(Sender: TObject);
    procedure RzPageControl1Change(Sender: TObject);
    procedure DBComboBox2Change(Sender: TObject);
    procedure DBGridEh1DblClick(Sender: TObject);
    procedure N1Click(Sender: TObject);
    procedure N2Click(Sender: TObject);
    procedure DBGridEh1TitleClick(Column: TColumnEh);
  private
    { Private declarations }
    jhdh:string;
    ddhm:string;
    xql:longint;
    addedit:boolean;
  public
    { Public declarations }
  end;

var
  frmcgdd: Tfrmcgdd;

implementation
uses uconst,ufunction,udm1,ucx,ugyslb,ubjdh_lb,uwllb,uxqdh_wllb,ucgjhdh_lb,unit3,ucgjh_wllb;
{$R *.dfm}

procedure tfrmcgdd.csh();
begin
if jb<>'系统维护' then
    strsql:='select ddhm as 订单号码,xqdh as 需求单号,bjdh as 报价单号,jhdh as 计划单号,'+
    'gysdm as 供应商代码,gysmc as 供应商名称,lxr as 联系人,djr as 负责人,cgrq as 采购日期,'+
    'ldrq as 落单日期,fkfs as 付款方式,shhe as 审核,node as 备注,cgdd_main.bb as 币别,bf as 币符'+
    ',cgleixing as 采购类型 from cgdd_main where cgrq>=:rq1 and cgrq<=:rq2 and'+
    ' djr='+''''+trim(username)+''''+' order by ddhm desc'
else
    strsql:='select ddhm as 订单号码,xqdh as 需求单号,bjdh as 报价单号,jhdh as 计划单号,'+
    'gysdm as 供应商代码,gysmc as 供应商名称,lxr as 联系人,djr as 负责人,cgrq as 采购日期,'+
    'ldrq as 落单日期,fkfs as 付款方式,shhe as 审核,node as 备注,cgdd_main.bb as 币别,bf as 币符'+
    ',cgleixing as 采购类型 from cgdd_main where cgrq>=:rq1 and cgrq<=:rq2 order by ddhm desc';
if adoquery2.Active then adoquery2.Close;
adoquery2.SQL.Clear;
adoquery2.sql.Add(strsql);
adoquery2.Parameters.ParamByName('rq1').Value:=dtp1.Date;
adoquery2.Parameters.ParamByName('rq2').Value:=dtp2.Date;
adoquery2.Open;
end;
function tfrmcgdd.jcsj():boolean;
begin
strsql:='select * from shd_main where ddhm='+''''+trim(dbedit1.Text)+'''';
adoexect(adoquery3,strsql);
if not(adoquery3.Recordset.EOF and adoquery3.Recordset.BOF) then
   begin
   showmessage('该订单已有送货,不能再编辑');
   result:=true;
   end else begin
   result:=false;
   end;
adoquery3.Close;
end;
procedure Tfrmcgdd.FormCreate(Sender: TObject);
begin
jhdh:='';
adoquery1.Connection:=dm1.ADOConnection1;
adoquery2.Connection:=dm1.ADOConnection1;
adoquery3.Connection:=dm1.ADOConnection1;
adoquery4.Connection:=dm1.ADOConnection1;
strsql:='select * from payment_class order by id asc';
adoexect(adoquery3,strsql);
if not(adoquery3.Recordset.EOF and adoquery3.Recordset.BOF) then
   begin
        dbcombobox1.Items.Clear;
        adoquery3.First;
        while not adoquery3.Eof do
        begin
        dbcombobox1.Items.Add(trim(adoquery3.fieldbyname('classname').AsString));
        adoquery3.Next;
        end;
   end;
strsql:='select * from bb_class order by id asc';
adoexect(adoquery3,strsql);
if not(adoquery3.Recordset.EOF and adoquery3.Recordset.BOF) then
   begin
        dbcombobox2.Items.Clear;
        adoquery3.First;
        while not adoquery3.Eof do
        begin
        dbcombobox2.Items.Add(trim(adoquery3.fieldbyname('classname').AsString));
        adoquery3.Next;
        end;
   end;
DBComboBox3.Items.Clear;
DBComboBox3.Items.Add('不需报关');
DBComboBox3.Items.Add('需要报关');
dtp1.Date:=date-30;
dtp2.Date:=date;
csh;
end;

procedure Tfrmcgdd.RzBitBtn1Click(Sender: TObject);

begin
if not qxjc(userid,'cgdd_add') then exit;
adoquery2.Append;
addedit:=true;
RzBitBtn1.Enabled:=false;
RzBitBtn2.Enabled:=false;
RzBitBtn3.Enabled:=true;
dbedit5.Text:=username;
dbedit12.Text:=datetostr(date);
RzDBDateTimePicker1.Date:=date+15;
jhdh:='';
end;

procedure Tfrmcgdd.RzBitBtn2Click(Sender: TObject);
begin
if adoquery2.Recordset.EOF and adoquery2.Recordset.BOF then exit;
if not qxjc(userid,'cgdd_edit') and (username<>trim(dbedit5.Text)) then exit;
if jcsj then exit;
if adoquery2.FieldByName('审核').Value=1 then
   begin
        messagebox(handle,'该订单已经通过审核,不能在进行更改','信息',mb_ok+mb_iconinformation);
        exit;
   end;
RzBitBtn1.Enabled:=false;
RzBitBtn2.Enabled:=false;
RzBitBtn3.Enabled:=true;
adoquery2.edit;
dbedit5.Text:=username;
dbedit12.Text:=datetostr(date);
addedit:=false;
jhdh:=trim(dbedit2.Text);
ddhm:=trim(dbedit1.Text);
end;

procedure Tfrmcgdd.RzBitBtn3Click(Sender: TObject);
var
qz:string;
begin
dbedit15.Text:=datetostr(RzDBDateTimePicker1.Date);
if trim(dbedit4.Text)='' then
   begin
        showmessage('没有选择报价单号');
        exit;
   end;
if trim(dbedit2.Text)='' then
   begin
        showmessage('没有选择计划单号');
        exit;
   end;
if trim(dbcombobox1.Text)='' then
   begin
        showmessage('没有选择付款方式');
        dbcombobox1.SetFocus;
        exit;
   end;
if trim(dbcombobox2.Text)='' then
   begin
        showmessage('没有选择币种');
        dbcombobox2.SetFocus;
        exit;
   end;
if trim(dbcombobox3.Text)='' then
   begin
        showmessage('采购类型不能为空');
        dbcombobox3.SetFocus;
        exit;
   end;
if trim(dbedit3.Text)='' then
   begin
        showmessage('没有选择供应商');
        dbedit3.SetFocus;
        exit;
   end;
if trim(dbedit14.Text)='' then
   begin
        showmessage('需求单号不能为空');
        dbedit14.SetFocus;
        exit;
   end;
if trim(dbedit6.Text)='' then
   begin
        showmessage('联络人不能为空');
        dbedit16.SetFocus;
        exit;
   end;
strsql:='select * from cgjh_main where cgjhdh='+''''+trim(dbedit2.text)+''''+'and shhe=1';
adoexect(adoquery3,strsql);
if adoquery3.Recordset.eof and adoquery3.Recordset.BOF then
   begin
   showmessage('计划单号'+trim(dbedit2.text)+'尚未审核,不能下单');
   exit;
   end;
if adoquery2.State in[dsinsert] then
   begin
   qz:='CGDD'+formatdatetime('yy',now)+
   formatdatetime('mm',now)+formatdatetime('dd',date);
   strsql:='select * from cgdd_main where ddhm like'+''''+qz+'%'+''''+'order by ddhm asc';
   adoexect(adoquery3,strsql);
   dbedit1.Text:=creatdh(adoquery3,11,qz);
   end;
strsql:='select * from cgdd_main where jhdh='+''''+trim(dbedit2.Text)+'''';    //检测是否重复使用采购计划单
adoexect(adoquery3,strsql);
if (not(adoquery3.Recordset.eof and adoquery3.Recordset.BOF)) and addedit  then
   begin
   showmessage('该采购计划单号已经被采用,不能重复使用!');
   dbedit2.SetFocus;
   exit;
   end;
if (not(adoquery3.Recordset.eof and adoquery3.Recordset.BOF)) and not addedit and (jhdh<>trim(dbedit2.Text))  then
   begin
   showmessage('该采购计划单号已经被采用,不能重复使用!');
   dbedit2.SetFocus;
   exit;
   end;
{以下代码用来保存主表数据}
if (not addedit) and (jhdh<>trim(dbedit2.Text)) then
   begin
        if messagebox(handle,'该计划单已改变,是否重新生成','询问',mb_yesno+mb_iconquestion)=idno then
        begin
        exit;
        end else begin
        strsql:='exec p_cgdd_del '+trim(ddhm);
        adodel(adoquery3,strsql);
        end;
   end;
try
    adoquery2.post;
    if jhdh<>trim(dbedit2.Text) then
       begin
       strsql:='update cgjh_main set sfxd=1 where cgjhdh='+''''+trim(dbedit2.Text)+'''';
       adodel(adoquery3,strsql);
       strsql:='update cgjh_main set sfxd=0 where cgjhdh='+''''+jhdh+'''';
       adodel(adoquery3,strsql);
       adoquery3.Close;
       end;
except
    if adoquery2.State in[dsinsert] then
    begin
    strsql:='exec p_cgdd_del '+trim(dbedit1.Text);
    adodel(adoquery3,strsql);
    strsql:='delete cgdd_main from where ddhm='+''''+trim(dbedit1.Text)+'''';      //如果有异常则应清除明细表中的数据
    adodel(adoquery3,strsql);
    adoquery3.Close;
    adoquery1.Close;
    adoquery1.Open;
    end;

⌨️ 快捷键说明

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