📄 unit_dinginput.~pas
字号:
unit Unit_dinginput;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
StdCtrls, Mask, DBCtrls, Grids, DBGrids, ExtCtrls, Db, DBTables, ComCtrls;
type
TForm_dinginput = class(TForm)
Table1: TTable;
DataSource1: TDataSource;
Panel1: TPanel;
Panel2: TPanel;
DBGrid1: TDBGrid;
DBEdit1: TDBEdit;
DBEdit4: TDBEdit;
DBEdit5: TDBEdit;
DBEdit6: TDBEdit;
DBEdit7: TDBEdit;
DBEdit8: TDBEdit;
Panel3: TPanel;
Panel4: TPanel;
Panel5: TPanel;
Panel6: TPanel;
Panel7: TPanel;
Panel8: TPanel;
Panel9: TPanel;
Panel10: TPanel;
DateTimePicker1: TDateTimePicker;
DateTimePicker2: TDateTimePicker;
Panel11: TPanel;
Button1: TButton;
Button2: TButton;
Button3: TButton;
Button4: TButton;
Panel12: TPanel;
Panel13: TPanel;
Panel14: TPanel;
DBEdit9: TDBEdit;
DBEdit10: TDBEdit;
DBEdit11: TDBEdit;
Table1Kehumi: TStringField;
Table1Chpimi: TStringField;
Table1Tuhao: TStringField;
Table1Diqi: TDateField;
Table1Jiaohuriqi: TDateField;
Table1Jihufash: TStringField;
Table1Lixiren: TStringField;
Table1Dijin: TFloatField;
Table1Touru: TFloatField;
Table1Note: TStringField;
Panel15: TPanel;
Panel16: TPanel;
Button7: TButton;
Panel17: TPanel;
Label1: TLabel;
Label2: TLabel;
Label3: TLabel;
DateTimePicker3: TDateTimePicker;
DateTimePicker4: TDateTimePicker;
Button8: TButton;
DBEdit12: TDBEdit;
DBEdit13: TDBEdit;
Table1Xuhao: TStringField;
Table1Shuli: TIntegerField;
Table1Dajia: TFloatField;
DBEdit14: TDBEdit;
Table1ProdID: TStringField;
DBEdit3: TDBEdit;
DBEdit2: TDBEdit;
Query1: TQuery;
DBEdit15: TDBEdit;
DBEdit16: TDBEdit;
Table1Tanhuang: TIntegerField;
Table1Gujia: TIntegerField;
Table1Flag: TStringField;
procedure Button1Click(Sender: TObject);
procedure Button3Click(Sender: TObject);
procedure FormShow(Sender: TObject);
procedure Button7Click(Sender: TObject);
procedure DBEdit3Enter(Sender: TObject);
procedure DBEdit2Enter(Sender: TObject);
procedure DBEdit3Exit(Sender: TObject);
procedure DBEdit2Exit(Sender: TObject);
procedure DBEdit1Click(Sender: TObject);
procedure DBEdit2Click(Sender: TObject);
procedure FormKeyPress(Sender: TObject; var Key: Char);
procedure Button4Click(Sender: TObject);
procedure DBGrid1CellClick(Column: TColumn);
procedure Button2Click(Sender: TObject);
procedure DBEdit5Enter(Sender: TObject);
procedure DBEdit5Exit(Sender: TObject);
procedure DBEdit11Exit(Sender: TObject);
procedure Button8Click(Sender: TObject);
procedure DBGrid1DblClick(Sender: TObject);
procedure Table1FilterRecord(DataSet: TDataSet; var Accept: Boolean);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form_dinginput: TForm_dinginput;
a,v:integer;
p:string;
implementation
uses UnitDictionary, UnitQueryID, UnitDM, Unit_jihua;
{$R *.DFM}
procedure TForm_dinginput.Button1Click(Sender: TObject);
var
sID:string;
begin
DataSource1.DataSet:=table1;
a:=1;
Button3.Enabled:=true;
Button2.Enabled:=false;
Button4.Enabled:=false;
Button8.Enabled:=false;
with Table1 do
begin
if not active then
open;
last;
sID:=fieldbyname('xuhao').asstring;
if sID='' then
sID:='0';
sID:=frmCommDictionary.zdyStrAddOne(sID);
append;
end; //with
DBEdit1.SetFocus;
DBEdit1.text:=sID;
DBEdit2.SetFocus;
end;
procedure TForm_dinginput.Button3Click(Sender: TObject);
begin
// 必须填写某些栏目
if (DBEdit3.text = '') or (DBEdit5.text = '') then
begin
showmessage('必须填写“产品名称”和“订购数量”!');
exit;
end;//if
if a=1 then
begin
table1.fieldbyname('flag').asstring:='f';
DBEdit12.Text:=datetostr(DateTimePicker1.date);
DBEdit13.Text:=datetostr(DateTimePicker2.date);
table1.post;
table1.Filtered:=false;
table1.Refresh;
Button3.Enabled:=false;
Button1.Enabled:=true;
Button2.Enabled:=true;
Button4.Enabled:=true;
Button8.Enabled:=true;
end;
if a=0 then
showmessage('请先按“添加”或“修改”按键!');
a:=0;
end;
procedure TForm_dinginput.FormShow(Sender: TObject);
begin
a:=0;
p:='';
v:=0;
table1.open;
Button3.Enabled:=false;
DateTimePicker1.date:=date;
DateTimePicker2.date:=date+20;
DateTimePicker3.date:=date-30;
DateTimePicker4.date:=date;
end;
procedure TForm_dinginput.Button7Click(Sender: TObject);
begin
Button1.Enabled:=true;
Button3.Enabled:=false;
Button2.Enabled:=true;
Button4.Enabled:=true;
Button8.Enabled:=true;
table1.Close;
close;
end;
procedure TForm_dinginput.DBEdit3Enter(Sender: TObject);
begin
if a<>1 then
begin
showmessage('请先按“添加新订单”按钮或“修改”按钮!');
Button1.SetFocus;
exit;
end;
frmCommQueryID.top:=200;//Form_dinginput.Height+Form_dinginput.top;
frmCommQueryID.left:=200;//Form_dinginput.left;
TDBEdit(sender).color:=claqua;
if (table1.State = dsinsert) or (table1.State = dsedit) then
begin
case (sender as TDBEdit).tag of
1: // if the TDBEdit is dbeProdName
begin
frmCommQueryID.PageControl1.ActivePageIndex:=1;
// frmCommQueryID.table2.open;
frmCommQueryID.ActiveControl:=frmCommQueryID.dbgProdDictionary;
// showmessage('通过');
if frmCommQueryID.showmodal = mrok then
begin
DBEdit14.SetFocus;
DBEdit14.text:=frmCommQueryID.query1.fieldbyname('ProdID').asstring;
DBEdit3.text:=frmCommQueryID.query1.fieldbyname('prodname').asstring;
DBEdit4.text:=frmCommQueryID.query1.fieldbyname('figid').asstring;
DBEdit15.Text:=inttostr(frmCommQueryID.query1.fieldbyname('gujia').asinteger);
DBEdit16.Text:=inttostr(frmCommQueryID.query1.fieldbyname('tanhuang').asinteger);
end; //if
DBEdit5.setfocus;
end; // case 1
2: // if the TDBEdit is dbeChecker
begin
frmCommQueryID.eStaffID.text:='';
frmCommQueryID.PageControl1.ActivePageIndex:=0;
// frmCommQueryID.table1.open;
frmCommQueryID.ActiveControl:=frmCommQueryID.eStaffID;
if frmCommQueryID.showmodal = mrok then
begin
DBEdit9.SetFocus;
DBEdit9.text:=frmCommQueryID.query3.fieldbyname('StaffID').asstring;
end; //if
// dbenote.setfocus;
end; //case 2
end; // then Case statement is over
//恢复过滤Table属性
//tabProdDictionary tabStaff tabManufacturer tabWorkShop
{dm.tabProdDictionary.filtered:=false;
dm.tabProdDictionary.filter:='';
dm.tabStaff.filtered:=false;
dm.tabStaff.filter:='';
dm.tabManufacturer.filtered:=false;
dm.tabManufacturer.filter:=''; }
end; //
end;
procedure TForm_dinginput.DBEdit2Enter(Sender: TObject);
begin
if a<>1 then
begin
showmessage('请先按“添加新订单”按钮或“修改”按钮!');
Button1.SetFocus;
exit;
end;
frmCommQueryID.top:=200;//DBEdit2.Height+DBEdit2.top;
frmCommQueryID.left:=200;//DBEdit2.left;
DBEdit2.color:=claqua;
frmCommQueryID.PageControl1.ActivePageIndex:=2;
frmCommQueryID.ActiveControl:=frmCommQueryID.dbgManufacturer;
if frmCommQueryID.showmodal = mrok then
begin
//Edit3.SetFocus;
DBEdit2.text:=frmCommQueryID.Query4.fieldbyname('Manufacturer').asstring;
end; //with
DBEdit3.setfocus;
//case 3
end;
procedure TForm_dinginput.DBEdit3Exit(Sender: TObject);
begin
TdbEdit(Sender).color:=clwindow;
end;
procedure TForm_dinginput.DBEdit2Exit(Sender: TObject);
begin
TdbEdit(Sender).color:=clwhite;
end;
procedure TForm_dinginput.DBEdit1Click(Sender: TObject);
begin
if a=0 then
begin
showmessage('请先按“添加新订单”或“修改”按钮!');
exit;
end;
end;
procedure TForm_dinginput.DBEdit2Click(Sender: TObject);
begin
if a=0 then
begin
showmessage('请先按“添加新订单”或“修改”按钮!');
exit;
end;
end;
procedure TForm_dinginput.FormKeyPress(Sender: TObject; var Key: Char);
begin
if key = #13 then
begin
key:=#0;
perform(WM_NEXTDLGCTL,0,0);
end; //if
end;
procedure TForm_dinginput.Button4Click(Sender: TObject);
var
r:string;
begin
DataSource1.DataSet:=table1;
if v<>1 then
begin
showmessage('请选择要删除的记录!');
exit;
end;
if messagedlg('会删除所选记录 要继续吗?',mtWarning,[mbYes,mbNo],0) = mrNo then
begin
v:=0;
exit;
end;
with Query1 do
begin
close;
sql.Clear;
sql.Add('select flag from dinghuodan.db ');
sql.Add('where xuhao =:xu');
parambyname('xu').asstring:=p;//table1.fieldbyname('xuhao').asstring;
open;
if fieldbyname('flag').asstring='f' then
begin
showmessage('此订单未编制计划,没有供货,最好不要删除!');
if messagedlg('确要删除吗?',mtWarning,[mbYes,mbNo],0) = mrNo then
begin
v:=0;
exit;
end;
end;
end;//with
// begin
table1.open;
if table1.recordcount=0 then
begin
showmessage('无记录可删除!');
exit;
end;
with Query1 do
begin
close;
sql.Clear;
sql.Add('select * from jihuadan where 主表标识号 = :xu ');
parambyname('xu').asstring:=p;//table1.fieldbyname('xuhao').asstring;
open;
if recordcount<>0 then //无计划单
begin
close;
sql.Clear;
sql.Add('delete from jihuadan where 主表标识号 = :xu ');
parambyname('xu').asstring:=p;//table1.fieldbyname('xuhao').asstring;
execsql;
end;//if
end;//with
with Query1 do
begin
close;
sql.Clear;
sql.Add('delete from dinghuodan where xuhao= :xu ');
parambyname('xu').asstring:=p;//table1.fieldbyname('xuhao').asstring;
execsql;
end;
//table1.delete;
with table1 do
begin
// open;
first;
while not eof do
begin
r:=fieldbyname('xuhao').asstring;
if strtoint(r)>strtoint(p) then
begin
edit;
//r:=strtoint(fieldbyname('StaffID').asstring)-1;
fieldbyname('xuhao').asstring :=frmCommDictionary.zdyStrdecOne(r);
post;
p:=inttostr(strtoint(p)+1);
end;
next;
end;
table1.Refresh;
end;
p:='';
v:=0;
end;
//end;
procedure TForm_dinginput.DBGrid1CellClick(Column: TColumn);
begin
if DataSource1.DataSet=query1 then
begin
v:=1;
p:=query1.fieldbyname('xuhao').asstring;
DateTimePicker1.date:=query1.fieldbyname('diqi').asdatetime;
DateTimePicker2.date:=query1.fieldbyname('jiaohuriqi').asdatetime;
exit;
end;
v:=1;
p:=table1.fieldbyname('xuhao').asstring;
DateTimePicker1.date:=table1.fieldbyname('diqi').asdatetime;
DateTimePicker2.date:=table1.fieldbyname('jiaohuriqi').asdatetime;
end;
procedure TForm_dinginput.Button2Click(Sender: TObject);
begin
if p='' then
begin
showmessage('请选择要修改的记录!');
exit;
end;
DataSource1.DataSet:=table1;
table1.Filtered:=true;
a:=1;
Button3.Enabled:=true;
Button1.Enabled:=false;
Button4.Enabled:=false;
Button8.Enabled:=false;
table1.open;
table1.edit;
end;
procedure TForm_dinginput.DBEdit5Enter(Sender: TObject);
begin
if a<>1 then
begin
showmessage('请先按“添加新订单”按钮或“修改”按钮!');
Button1.SetFocus;
exit;
end;
(sender as TDBEdit).color := claqua;
end;
procedure TForm_dinginput.DBEdit5Exit(Sender: TObject);
begin
(sender as TDBEdit).color := clwindow;
end;
procedure TForm_dinginput.DBEdit11Exit(Sender: TObject);
begin
Button3.SetFocus;
end;
procedure TForm_dinginput.Button8Click(Sender: TObject);
begin
DataSource1.DataSet:=query1;
with Query1 do
begin
close;
sql.Clear;
sql.Add('select * from dinghuodan.db ');
sql.Add('where diqi between :v_from and :v_to order by xuhao ');
parambyname('v_from').asdatetime:=DateTimePicker3.Date;
parambyname('v_to').asdatetime:=DateTimePicker4.date;
open;
if recordcount = 0 then
begin
showmessage('此期间无订单!');
exit;
end;
end; //with
end;
procedure TForm_dinginput.DBGrid1DblClick(Sender: TObject);
begin
if table1.fieldbyname('flag').asstring <>'f' then
begin
if messagedlg('此订单已编制了生产计划单,还要编制吗?',mtWarning,[mbYes,mbNo],0) = mrNo then
exit;
end;
Form_jihua.Edit_dinghao.text:=table1.FieldByName('xuhao').asstring;
Form_jihua.Edit2.text:='11';
Form_jihua.Edit_dep.Text:=table1.FieldByName('kehumi').asstring;
Form_jihua.edit_p.Text:=table1.FieldByName('chpimi').asstring;
Form_jihua.Edit_tuhao.Text:=table1.FieldByName('tuhao').asstring;
Form_jihua.Edit1_riqi.Text:=datetostr(table1.FieldByName('diqi').asdatetime);
Form_jihua.Edit2_shuli.Text:=inttostr(table1.FieldByName('shuli').asinteger);
Form_jihua.show;
Form_dinginput.Visible:=false;
end;
procedure TForm_dinginput.Table1FilterRecord(DataSet: TDataSet;
var Accept: Boolean);
begin
if (table1.FieldByName('xuhao').asstring =p) then
Accept:=true
else
Accept:=false;
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -