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

📄 ck1.pas

📁 delphi开发的委托加工管理系统源代码
💻 PAS
字号:
unit ck1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, ComCtrls, StdCtrls, Mask, DBCtrls, Buttons, DB, ADODB, DBActns,
  ActnList, RzButton, SUIComboBox, FR_Class, FR_DSet, FR_DBSet,
  RzPanel, ExtCtrls, Grids, DBGridEh, DosMove;

type
  Tck = class(TForm)
    ADOQuery1: TADOQuery;
    DataSource1: TDataSource;
    ADODataSet1: TADODataSet;
    ADOCommand1: TADOCommand;
    ActionList1: TActionList;
    DataSetDelete1: TDataSetDelete;
    DataSetEdit1: TDataSetEdit;
    ADODataSet2: TADODataSet;
    frDBDataSet1: TfrDBDataSet;
    frReport1: TfrReport;
    ADODataSet3: TADODataSet;
    GroupBox3: TGroupBox;
    GroupBox4: TGroupBox;
    Label1: TLabel;
    Label2: TLabel;
    Label3: TLabel;
    Label4: TLabel;
    Label5: TLabel;
    Label6: TLabel;
    Label7: TLabel;
    Label9: TLabel;
    Label11: TLabel;
    Label12: TLabel;
    Label10: TLabel;
    DateTimePicker1: TDateTimePicker;
    Edit1: TEdit;
    ComboBox1: TComboBox;
    DBEdit1: TDBEdit;
    DBEdit2: TDBEdit;
    DBEdit3: TDBEdit;
    Edit2: TEdit;
    DBEdit5: TDBEdit;
    DBEdit6: TDBEdit;
    suiComboBox1: TsuiComboBox;
    RzToolbar1: TRzToolbar;
    RzToolButton1: TRzToolButton;
    RzSpacer1: TRzSpacer;
    RzToolButton2: TRzToolButton;
    RzSpacer2: TRzSpacer;
    RzToolButton3: TRzToolButton;
    RzSpacer3: TRzSpacer;
    RzToolButton4: TRzToolButton;
    RzSpacer4: TRzSpacer;
    RzToolButton5: TRzToolButton;
    RzSpacer5: TRzSpacer;
    RzToolButton6: TRzToolButton;
    DBGridEh1: TDBGridEh;
    Label8: TLabel;
    DataSource2: TDataSource;
    Label22: TLabel;
    procedure BitBtn4Click(Sender: TObject);
    procedure ComboBox1DropDown(Sender: TObject);
    procedure ComboBox1Exit(Sender: TObject);
    procedure FormCreate(Sender: TObject);
    procedure BitBtn9Click(Sender: TObject);
    procedure suiComboBox1DropDown(Sender: TObject);
    procedure RzToolButton1Click(Sender: TObject);
    procedure RzToolButton2Click(Sender: TObject);
    procedure RzToolButton5Click(Sender: TObject);
    procedure RzToolButton6Click(Sender: TObject);
    procedure DBGridEh1DblClick(Sender: TObject);
    procedure RzToolButton4Click(Sender: TObject);
    procedure RzToolButton3Click(Sender: TObject);
    procedure DateTimePicker1KeyPress(Sender: TObject; var Key: Char);
    procedure Edit1KeyPress(Sender: TObject; var Key: Char);
    procedure ComboBox1KeyPress(Sender: TObject; var Key: Char);
    procedure Edit2KeyPress(Sender: TObject; var Key: Char);
    procedure suiComboBox1KeyPress(Sender: TObject; var Key: Char);
    procedure DBEdit5KeyPress(Sender: TObject; var Key: Char);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  ck: Tck;

implementation

uses adodm;

{$R *.dfm}

procedure Tck.BitBtn4Click(Sender: TObject);
begin
close
end;

procedure Tck.ComboBox1DropDown(Sender: TObject);
var
i:integer;
begin
combobox1.clear;
adoquery1.Active:=false;
adoquery1.Active:=true;
//adoquery1.Close;
//adoquery1.SQL.Add('select * from rkdata');
adoquery1.Open;
if (adoquery1.RecordCount>0) then
adoquery1.First;
for i:=0 to adoquery1.RecordCount - 1 do
begin
combobox1.Items.add(adoquery1.Fieldbyname('委托单号').AsString);
adoquery1.Next;
end;
adoquery1.close;
end;
procedure Tck.ComboBox1Exit(Sender: TObject);
begin
if combobox1.Text<>'' then
begin
adodataset1.Active:=false;
adodataset1.CommandText:='select * from rkdata where 委托单号='''+trim(combobox1.text)+'''';
adodataset1.Active:=true;
dbedit1.DataField:='物料代码';
dbedit2.DataField:='品名';
dbedit3.DataField:='加工类型';
dbedit5.DataField:='厂家';
dbedit6.DataField:='备注';
if (dbedit1.Text='') then
begin
showmessage('您输入的委托单号不存在!');
combobox1.Clear;
end
else
begin
dm.ql.Active:=false;
dm.ql.CommandText:='select rkdata.日期,rkdata.委托单号,rkdata.物料代码,rkdata.品名,'
+' rkdata.数量 as 入库数量,sum(iif(ckdata.数量,ckdata.数量,0)) as 出库数量,入库数量-出库数量 as 欠量'
+' from rkdata left join ckdata on rkdata.委托单号=ckdata.委托单号 '
+' where rkdata.委托单号='''+trim(combobox1.Text)+''''
+'group by rkdata.日期,rkdata.委托单号,rkdata.物料代码,rkdata.数量,rkdata.品名';
dm.ql.Active:=true;
label22.Caption:='此工单欠量为:'+dm.ql.Fields[6].AsString;
IF strtofloat(dm.ql.Fields[6].AsString)<=0 then
begin
adocommand1.CommandText:='update rkdata set 状态=''结案'' where 委托单号='''+trim(combobox1.text)+'''';
adocommand1.Execute;
adocommand1.CommandText:='update ckdata set 状态=''结案'' where 委托单号='''+trim(combobox1.text)+'''';
adocommand1.Execute;
showmessage('您输入的委托单号已结案')
end;
end;
end;
end;

procedure Tck.FormCreate(Sender: TObject);
begin
datetimepicker1.DateTime:=now;
label8.Caption:=formatdatetime('yyyymmddhhnnss',now);
dm.adoreportck.Active:=false;
dm.adoreportck.CommandText:='select 日期,单据编号,委托单号,物料代码,品名,加工类型,数量,库别,厂家,备注 from ckdata where ckn='''+trim(label8.Caption)+'''';
dm.adoreportck.Active:=true;
end;

procedure Tck.BitBtn9Click(Sender: TObject);
begin
close
end;

procedure Tck.suiComboBox1DropDown(Sender: TObject);
var
i:integer;
begin
suicombobox1.clear;
dm.kb.Open;
if (dm.kb.RecordCount>0) then
dm.kb.First;
for i:=0 to dm.kb.RecordCount - 1 do
begin
suicombobox1.Items.add(dm.kb.Fieldbyname('仓库名称').AsString);
dm.kb.Next;
end;
end;
procedure Tck.RzToolButton1Click(Sender: TObject);
begin
combobox1.Enabled:=true;
edit1.Enabled:=true;
edit1.Clear;
edit2.Enabled:=true;
suicombobox1.Enabled:=true;
label22.Caption:='';
edit2.Clear;
dbedit1.Clear;
dbedit2.Clear;
dbedit3.Clear;
suicombobox1.Clear;
dbedit5.Clear;
dbedit6.Clear;
combobox1.Clear;
rztoolbutton1.Enabled:=false;
rztoolbutton2.Enabled:=true;
end;

procedure Tck.RzToolButton2Click(Sender: TObject);
begin
if edit1.Text<>'' then
begin
if (dbedit1.Text<>'') then
begin
adodataset3.Active:=false;
adodataset3.CommandText:='select * from wldata where 物料代码='''+trim(dbedit1.text)+'''';
adodataset3.Active:=true;
adocommand1.CommandText:='insert into ckdata (日期,单据编号,委托单号,物料代码,品名,加工类型,数量,库别,厂家,备注,状态,金额,mon,jgmoney,ckn,fclose)'
+' values ('''+formatdatetime('yyyy-mm-dd',datetimepicker1.date)+''','''+trim(uppercase(edit1.Text))+''','''+trim(uppercase(combobox1.Text))+''','
+''''+trim(dbedit1.Text)+''','''+trim(dbedit2.Text)+''','''+trim(dbedit3.Text)+''','''+trim(edit2.Text)+''','''+trim(suicombobox1.Text)+''','''+trim(dbedit5.Text)+''','
+''''+trim(dbedit6.Text)+''',''审核'','''+formatfloat(',.00',strtofloat(edit2.text)*strtofloat(adodataset1.Fields[7].AsString))+''','''+formatdatetime('yyyymm',datetimepicker1.date)+''','
+''''+formatfloat(',.00',strtofloat(edit2.text)*strtofloat(adodataset3.Fields[5].AsString))+''','''+trim(label8.Caption)+''',''未入库'')';
adocommand1.Execute;
if  strtofloat(edit2.Text)>=strtofloat(dm.ql.Fields[6].AsString) then
begin
adocommand1.CommandText:='update rkdata set 状态=''结案'' where 委托单号='''+trim(combobox1.text)+'''';
adocommand1.Execute;
adocommand1.CommandText:='update ckdata set 状态=''结案'' where 委托单号='''+trim(combobox1.text)+'''';
adocommand1.Execute;
end;
dm.ADODataSet1.Active:=false;
dm.ADODataSet1.CommandText:='select * from kcdata where 物料代码='''+trim(dbedit1.Text)+''' and 库别='''+trim(suicombobox1.Text)+'''';
dm.ADODataSet1.Active:=true;
if dm.ADODataSet1.IsEmpty=false then
begin
dm.adock.SQL.Clear;
dm.adock.SQL.Add('update kcdata inner join ckdata on ckdata.物料代码=kcdata.物料代码 and ckdata.库别=kcdata.库别 set kcdata.数量=kcdata.数量-ckdata.数量 where ckdata.单据编号='''+trim(edit1.Text)+'''');
dm.adock.ExecSQL;
end
else
begin
end;
showmessage('操作成功!');
dm.ql.Active:=false;
dm.ql.Active:=true;
label22.Caption:='此工单欠量为:'+dm.ql.Fields[6].AsString;
dm.adoreportck.Active:=false;
dm.adoreportck.CommandText:='select 日期,单据编号,委托单号,物料代码,品名,加工类型,数量,库别,厂家,备注 from ckdata where ckn='''+trim(label8.Caption)+'''';
dm.adoreportck.Active:=true;
rztoolbutton2.Enabled:=false;
rztoolbutton1.Enabled:=true;
rztoolbutton5.Enabled:=true;
rztoolbutton4.Enabled:=true;
end
else
showmessage('请输入正确的委托单号!')
end
else
showmessage('请输入单据编号');
end;

procedure Tck.RzToolButton5Click(Sender: TObject);
begin
dm.adoreportck.Active:=false;
dm.adoreportck.CommandText:='select 日期,单据编号,委托单号,物料代码,品名,加工类型,数量,库别,厂家,备注 from ckdata where ckn='''+trim(label8.Caption)+'''';
dm.adoreportck.Active:=true;
frreport1.LoadFromFile('report\ck.frf');
//打印当前数据库
frreport1.ShowReport;
end;

procedure Tck.RzToolButton6Click(Sender: TObject);
begin
close;
end;

procedure Tck.DBGridEh1DblClick(Sender: TObject);
begin
rztoolbutton3.Enabled:=true;
edit1.text:=dbgrideh1.DataSource.DataSet.FieldValues[dbgrideh1.Columns[1].FieldName];
datetimepicker1.DateTime:=dbgrideh1.DataSource.DataSet.FieldValues[dbgrideh1.Columns[0].FieldName];
combobox1.Text:=dbgrideh1.DataSource.DataSet.FieldValues[dbgrideh1.Columns[2].FieldName];
dbedit1.Text:=dbgrideh1.DataSource.DataSet.FieldValues[dbgrideh1.Columns[3].FieldName];
dbedit2.Text:=dbgrideh1.DataSource.DataSet.FieldValues[dbgrideh1.Columns[4].FieldName];
dbedit3.Text:=dbgrideh1.DataSource.DataSet.FieldValues[dbgrideh1.Columns[5].FieldName];
edit2.Text:=dbgrideh1.DataSource.DataSet.FieldValues[dbgrideh1.Columns[6].FieldName];
suicombobox1.Text:=dbgrideh1.DataSource.DataSet.FieldValues[dbgrideh1.Columns[7].FieldName];
dbedit5.Text:=dbgrideh1.DataSource.DataSet.FieldValues[dbgrideh1.Columns[8].FieldName];
dbedit6.Text:=dbgrideh1.DataSource.DataSet.FieldValues[dbgrideh1.Columns[9].FieldName];
dm.ql.Active:=false;
dm.ql.Active:=true;
edit1.Enabled:=false;
rztoolbutton2.Enabled:=false;
label22.Caption:='此工单欠量为:'+dm.ql.Fields[6].AsString;
end;

procedure Tck.RzToolButton4Click(Sender: TObject);
var
a:string;
b:string;
begin
if dm.adoreportck.IsEmpty=false then
begin
a:=dbgrideh1.DataSource.DataSet.FieldValues[dbgrideh1.Columns[1].FieldName];
b:=dbgrideh1.DataSource.DataSet.FieldValues[dbgrideh1.Columns[2].FieldName];
if messagedlg('您确认要删除:'+#13+'单据:'+a,mtwarning,[mbyes,mbno],0)=mryes then
begin
adocommand1.CommandText:='update rkdata set 状态=''审核'' where 委托单号='''+b+'''';
adocommand1.Execute;
adocommand1.CommandText:='update ckdata set 状态=''审核'' where 委托单号='''+b+'''';
adocommand1.Execute;
dm.adock.SQL.Clear;
dm.adock.SQL.Add('update kcdata inner join ckdata on ckdata.物料代码=kcdata.物料代码 and ckdata.库别=kcdata.库别 set kcdata.数量=kcdata.数量+ckdata.数量 where ckdata.单据编号='''+a+'''');
dm.adock.ExecSQL;
adocommand1.CommandText:='delete from ckdata where 单据编号='''+a+'''';
adocommand1.Execute;
dm.adoreportck.Active:=false;
dm.adoreportck.Active:=true;
end;
end;
end;

procedure Tck.RzToolButton3Click(Sender: TObject);
var
a:string;
begin
a:=edit1.Text;
if messagedlg('您确定要修改:'+#13+'单据:'+a,mtwarning,[mbyes,mbno],0)=mryes then
begin
dm.adock.SQL.Clear;
dm.adock.SQL.Add('update kcdata inner join ckdata on ckdata.物料代码=kcdata.物料代码 and ckdata.库别=kcdata.库别 set kcdata.数量=kcdata.数量+ckdata.数量 where ckdata.单据编号='''+a+'''');
dm.adock.ExecSQL;
adocommand1.CommandText:='update ckdata set 日期='''+formatdatetime('yyyy-mm-dd',datetimepicker1.DateTime)+''',委托单号='''+trim(uppercase(combobox1.Text))+''''
+',物料代码='''+trim(dbedit1.Text)+''',加工类型='''+trim(dbedit3.Text)+''',数量='''+trim(edit2.Text)+''','
+'库别='''+trim(suicombobox1.Text)+''',厂家='''+trim(dbedit5.Text)+''',备注='''+trim(dbedit6.Text)+''' where 单据编号='''+a+'''';
adocommand1.Execute;
dm.adock.SQL.Clear;
dm.adock.SQL.Add('update kcdata inner join ckdata on ckdata.物料代码=kcdata.物料代码 and ckdata.库别=kcdata.库别 set kcdata.数量=kcdata.数量-ckdata.数量 where ckdata.单据编号='''+a+'''');
dm.adock.ExecSQL;
showmessage('修改成功!');
DM.adoreportck.Active:=false;
dm.adoreportck.Active:=true;
rztoolbutton3.Enabled:=false;
dm.ql.Active:=false;
dm.ql.Active:=true;
label22.Caption:='此工单欠量为:'+dm.ql.Fields[6].AsString;
if strtofloat(dm.ql.Fields[6].AsString)>0 then
begin
adocommand1.CommandText:='update rkdata set 状态=''审核'' where 委托单号='''+trim(combobox1.text)+'''';
adocommand1.Execute;
adocommand1.CommandText:='update ckdata set 状态=''审核'' where 委托单号='''+trim(combobox1.text)+'''';
adocommand1.Execute;
end;
end;
end;

procedure Tck.DateTimePicker1KeyPress(Sender: TObject; var Key: Char);
begin
if key=#13 then
edit1.SetFocus;
end;

procedure Tck.Edit1KeyPress(Sender: TObject; var Key: Char);
begin
if key=#13 then
combobox1.SetFocus;
end;

procedure Tck.ComboBox1KeyPress(Sender: TObject; var Key: Char);
begin
if key=#13 then
edit2.SetFocus;
end;

procedure Tck.Edit2KeyPress(Sender: TObject; var Key: Char);
begin
if key=#13 then
suicombobox1.SetFocus;
end;

procedure Tck.suiComboBox1KeyPress(Sender: TObject; var Key: Char);
begin
if key=#13 then
dbedit5.SetFocus;
end;

procedure Tck.DBEdit5KeyPress(Sender: TObject; var Key: Char);
begin
if key=#13 then
dbedit6.SetFocus;
end;

end.

⌨️ 快捷键说明

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