📄 pfjg.pas
字号:
unit pfjg;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
Db, DBTables, ComCtrls, StdCtrls, Buttons, ExtCtrls, Menus,variants;
type
Tpfjgf = class(TForm)
TreeView1: TTreeView;
Query1: TQuery;
Label1: TLabel;
Edit1: TEdit;
Edit2: TEdit;
Query2: TQuery;
PopupMenu1: TPopupMenu;
N1: TMenuItem;
N2: TMenuItem;
N3: TMenuItem;
Panel1: TPanel;
Label2: TLabel;
Label3: TLabel;
BitBtn1: TBitBtn;
BitBtn2: TBitBtn;
Edit3: TEdit;
Edit4: TEdit;
N4: TMenuItem;
Query5: TQuery;
UpdateSQL1: TUpdateSQL;
Label4: TLabel;
Edit5: TEdit;
Label5: TLabel;
Label6: TLabel;
procedure FormCreate(Sender: TObject);
procedure N1Click(Sender: TObject);
procedure BitBtn1Click(Sender: TObject);
procedure BitBtn2Click(Sender: TObject);
procedure N4Click(Sender: TObject);
procedure N2Click(Sender: TObject);
procedure N3Click(Sender: TObject);
procedure FormActivate(Sender: TObject);
procedure FormClose(Sender: TObject; var Action: TCloseAction);
procedure Edit3KeyPress(Sender: TObject; var Key: Char);
procedure Edit4KeyPress(Sender: TObject; var Key: Char);
procedure Edit5KeyPress(Sender: TObject; var Key: Char);
private
{ Private declarations }
public
{ Public declarations }
end;
var
pfjgf: Tpfjgf;
len:integer;
zbkm,xxx:string;
tt:Ttreenode;
implementation
uses chzx, caipincxU,rjsmain;
{$R *.DFM}
procedure Tpfjgf.FormCreate(Sender: TObject);
var
tv: array[0..200] of TTreeNode;
tv1,tv2:TTreenode;
I:INTEGER;
begin
treeview1.Items.Clear;
query1.Open;
i:=0;
query1.First;
tv1:=treeview1.Items.GetFirstNode;
while i<= query1.RecordCount -1 do
begin
tv[i]:=treeview1.Items.Add(tv1,query1.Fieldbyname('cpbm').AsString+'__'+query1.Fieldbyname('cpmc').AsString+'(1)');
query2.ParamByName('cs0').asstring:=query1.Fieldbyname('cpbm').AsString;
query2.Open;
if (query2.RecordCount>0) and (query2.Fieldbyname('cpbm').AsString<>'') then
begin
tv2:=treeview1.Items.GetNode(tv[i].itemid);
query2.First;
while not query2.Eof do
begin
tv[i]:=treeview1.Items.Addchild(tv2,query2.Fieldbyname('ylbm').AsString+'__'+query2.Fieldbyname('ylmc').AsString+'('+query2.Fieldbyname('ylyl').AsString+')');
query2.Next;
end;
end;
query2.Close;
query1.Next;
i:=i+1;
end;
query1.Close;
tt:=treeview1.TopItem;
end;
procedure Tpfjgf.N1Click(Sender: TObject);
var
i:integer;
begin
xxx:='tj';
if treeview1.Items.Count=0 then begin
tt:=treeview1.Items.AddFirst(tt,'新配方');
end
else begin
if treeview1.Selected.Level=0 then tt:=treeview1.Selected
else tt:=treeview1.Selected.Parent;
i:=pos('__',tt.Text);
edit4.Text:=copy(tt.Text,1,i-3);
tt:=treeview1.Items.Add(tt,'新配方');
end;
treeview1.Enabled:=false;
label5.Caption:='添加新配方';
spbt:='pfjg';
caipincxf.showmodal;
edit5.Text:='1';
edit5.ReadOnly:=true;
panel1.Visible:=true;
edit5.SetFocus;
end;
procedure Tpfjgf.BitBtn1Click(Sender: TObject);
var aa,bb:integer;
cc:string;
begin
tt.Text:=edit4.Text+'__'+edit3.Text+'('+edit5.Text+')';
treeview1.Enabled:=true;
if xxx='tj' then
begin
if (edit4.Text='') or (edit3.Text='') or (edit5.Text='') then
begin
application.MessageBox('名称、编码、数量不能为空!','提示信息',0);
edit4.SetFocus;
exit;
end;
if tt.Level=0 then
begin
treeview1.Refresh;
panel1.Visible:=false;
exit;
end;
aa:=ansipos('__',tt.Parent.Text);
bb:=ansipos('(',tt.Parent.Text);
query5.Append;
query5.FieldByName('cpbm').Value:=copy(tt.Parent.Text,1,aa-1);
query5.FieldByName('cpmc').Value:=copy(tt.Parent.Text,aa+2,bb-aa-2);
query5.FieldByName('ylbm').Value:=edit4.Text;
query5.FieldByName('ylmc').Value:=edit3.Text;
query5.FieldByName('ylyl').asstring:=edit5.Text;
query5.FieldByName('yldw').Value:=edit1.Text;
query5.FieldByName('yldj').asstring:=edit2.Text;
query5.Post;
query5.ApplyUpdates;
end;
if xxx='sc' then
begin
if treeview1.Selected.HasChildren then
if messagedlg('待删除的类别有子类!'+#13+'仍要删除吗?',mtwarning,[mbyes,mbno],0) <>mryes then exit;
if treeview1.Selected.HasChildren then
begin
query5.First;
while not query5.Eof do
begin
if copy(query5.FieldByName('cpbm').value,1,length(trim(edit4.text)))=trim(edit4.text) then query5.Delete
else query5.Next;
end;
end
else begin
aa:=ansipos('__',tt.Parent.Text);
cc:=copy(tt.Parent.Text,1,aa-1);
if query5.Locate('cpbm;ylbm',vararrayof([cc,edit4.Text]),[]) then
query5.Delete;
end;
tt.Delete;
query5.ApplyUpdates;
end;
if xxx='gg' then
begin
if (edit4.Text='') or (edit3.Text='') then
begin
application.MessageBox('名称及编号不能为空!','提示信息',0);
edit4.SetFocus;
exit;
end;
if treeview1.Selected.HasChildren then
begin
aa:=ansipos('__',tt.Text);
bb:=ansipos('(',tt.Text);
query5.First;
while not query5.Eof do
begin
if copy(query5.FieldByName('cpbm').value,1,length(trim(edit4.text)))=trim(edit4.text) then
begin
query5.Edit;
query5.FieldByName('cpbm').Value:=copy(tt.Text,1,aa-1);
query5.FieldByName('cpmc').Value:=copy(tt.Text,aa+2,bb-aa-2);
end
else query5.Next;
end;
end
else begin
aa:=ansipos('__',tt.Parent.Text);
cc:=copy(tt.Parent.Text,1,aa-1);
if query5.Locate('cpbm;ylbm',vararrayof([cc,edit4.Text]),[]) then
begin
query5.Edit;
query5.FieldByName('ylbm').Value:=edit4.Text;
query5.FieldByName('ylmc').Value:=edit3.Text;
query5.FieldByName('ylyl').asstring:=edit5.Text;
end;
end;
query5.ApplyUpdates;
end;
query5.Close;
query5.Open;
treeview1.Refresh;
panel1.Visible:=false;
end;
procedure Tpfjgf.BitBtn2Click(Sender: TObject);
begin
edit4.ReadOnly:=false;
if xxx='tj' then tt.Delete;
treeview1.Enabled:=true;
panel1.Visible:=false;
end;
procedure Tpfjgf.N4Click(Sender: TObject);
var
i:integer;
begin
if treeview1.Items.Count=0 then exit;
xxx:='tj';
if treeview1.Selected.Level=0 then tt:=treeview1.Selected
else tt:=treeview1.Selected.Parent;
i:=pos('__',tt.Text);
edit4.Text:=copy(tt.Text,1,i-1);
tt:=treeview1.Items.AddChild(tt,'新用料');
treeview1.Enabled:=false;
label5.Caption:='添加用料';
spbt:='pfjg';
cpcxf.showmodal;
edit5.Text:='';
edit5.ReadOnly:=false;
panel1.Visible:=true;
edit5.SetFocus;
end;
procedure Tpfjgf.N2Click(Sender: TObject);
var
i,j,k:integer;
begin
xxx:='sc';
tt:=treeview1.Selected;
i:=pos('__',tt.Text);
j:=pos('(',tt.Text);
k:=pos(')',tt.Text);
edit4.Text:=copy(tt.Text,1,i-1);
edit3.Text:=copy(tt.Text,i+2,j-i-2);
edit5.Text:=copy(tt.Text,j+1,k-j-1);
label5.Caption:='删除';
panel1.Visible:=true;
end;
procedure Tpfjgf.N3Click(Sender: TObject);
var
i,j,k:integer;
begin
xxx:='gg';
tt:=treeview1.Selected;
i:=pos('__',tt.Text);
j:=pos('(',tt.Text);
k:=pos(')',tt.Text);
edit4.Text:=copy(tt.Text,1,i-1);
edit3.Text:=copy(tt.Text,i+2,j-i-2);
edit5.Text:=copy(tt.Text,j+1,k-j-1);
edit4.ReadOnly:=true;
spbt:='pfjg';
cpcxf.showmodal;
label5.Caption:='修改';
panel1.Visible:=true;
edit5.SetFocus;
end;
procedure Tpfjgf.FormActivate(Sender: TObject);
begin
query5.Open;
formcreate(self);
end;
procedure Tpfjgf.FormClose(Sender: TObject; var Action: TCloseAction);
begin
query5.Close;
xxx:='';
end;
procedure Tpfjgf.Edit3KeyPress(Sender: TObject; var Key: Char);
begin
if key=chr(13) then edit4.SetFocus;
end;
procedure Tpfjgf.Edit4KeyPress(Sender: TObject; var Key: Char);
begin
if key=chr(13) then edit5.SetFocus;
end;
procedure Tpfjgf.Edit5KeyPress(Sender: TObject; var Key: Char);
begin
if key=chr(13) then bitbtn1.SetFocus;
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -