📄 ck1.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 + -