📄 xfwh.pas
字号:
unit xfwh;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
StdCtrls, Db, DBTables, Grids, DBGrids, ComCtrls, ExtCtrls, Menus,
Buttons, ImgList, DBCtrls;
type
TxfwhForm = class(TForm)
GroupBox1: TGroupBox;
Query1: TQuery;
DataSource1: TDataSource;
GroupBox2: TGroupBox;
DBGrid1: TDBGrid;
Panel1: TPanel;
TreeView1: TTreeView;
TreeView2: TTreeView;
Table1: TTable;
ComboBox1: TComboBox;
GroupBox3: TGroupBox;
BitBtn3: TBitBtn;
BitBtn5: TBitBtn;
BitBtn1: TBitBtn;
PopupMenu1: TPopupMenu;
N1: TMenuItem;
N2: TMenuItem;
N3: TMenuItem;
DBNavigator1: TDBNavigator;
ImageList1: TImageList;
Panel5: TPanel;
Label22: TLabel;
Label23: TLabel;
DBGrid2: TDBGrid;
jc: TEdit;
DataSource2: TDataSource;
N4: TMenuItem;
procedure FormCreate(Sender: TObject);
procedure TreeView2Click(Sender: TObject);
procedure BitBtn3Click(Sender: TObject);
procedure Table1AfterOpen(DataSet: TDataSet);
procedure TreeView2Change(Sender: TObject; Node: TTreeNode);
procedure Table1AfterInsert(DataSet: TDataSet);
procedure DBGrid1KeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
procedure BitBtn5Click(Sender: TObject);
procedure BitBtn1Click(Sender: TObject);
procedure DBGrid1KeyPress(Sender: TObject; var Key: Char);
procedure N1Click(Sender: TObject);
procedure N2Click(Sender: TObject);
procedure N3Click(Sender: TObject);
procedure FormClose(Sender: TObject; var Action: TCloseAction);
procedure DBGrid1DblClick(Sender: TObject);
procedure jcExit(Sender: TObject);
procedure jcKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
procedure jcKeyPress(Sender: TObject; var Key: Char);
procedure jcKeyUp(Sender: TObject; var Key: Word; Shift: TShiftState);
procedure DBGrid2DblClick(Sender: TObject);
procedure DBGrid2Exit(Sender: TObject);
procedure DBGrid2KeyPress(Sender: TObject; var Key: Char);
procedure N4Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
xfwhForm: TxfwhForm;
implementation
uses dataproc, srdl, srlb;
{$R *.DFM}
procedure tree1;
begin
with xfwhform do
begin
treeview1.Items.Clear;
query1.Active:=false;
query1.SQL.Clear;
query1.SQL.Add('select * from custype order by CusType');
query1.Prepare;
query1.Open;
QUERY1.First;
while not query1.Eof do
begin
// if (trim(query1.FieldByName('parentcode').asstring)='0') or (trim(query1.FieldByName('parentcode').asstring)='00') then
if (trim(query1.FieldByName('parentcode').asstring)='0') then
BEGIN
treeview1.Selected:=treeview1.Items.Add(treeview1.items.getfirstnode,trim(query1.FieldByName('CusType').asstring));
END
else
begin
while trim(treeview1.Selected.Text)<>trim(query1.FieldByName('parentcode').asstring) do
BEGIN
treeview1.Selected:=treeview1.Selected.Parent;
END;
treeview1.Selected:=treeview1.Items.AddChild(treeview1.selected,trim(query1.FieldByName('CusType').asstring));
end;
query1.Next;
end;
query1.Active:=false;
query1.SQL.Clear;
end;
end;
procedure TxfwhForm.FormCreate(Sender: TObject);
begin
DataSource1.DataSet:=nil;
treeview1.Items.Clear;
treeview2.Items.Clear;
query1.Active:=false;
query1.SQL.Clear;
query1.SQL.Add('select * from custype order by CusType');
// Table1.TableName:='商品类别';
query1.Prepare;
query1.Open;
QUERY1.First;
while not query1.Eof do
begin
// if (trim(query1.FieldByName('parentcode').asstring)='0') or (trim(query1.FieldByName('parentcode').asstring)='00') then
if (trim(query1.FieldByName('parentcode').asstring)='0') then
BEGIN
treeview1.Selected:=treeview1.Items.Add(treeview1.items.getfirstnode,trim(query1.FieldByName('CusType').asstring));
treeview2.Selected:=treeview2.Items.Add(treeview2.items.getfirstnode,trim(query1.FieldByName('CusName').asstring));
treeview2.Selected.ImageIndex:=0;
treeview2.Selected.SelectedIndex:=1;
END
else
begin
while trim(treeview1.Selected.Text)<>trim(query1.FieldByName('parentcode').asstring) do
BEGIN
treeview1.Selected:=treeview1.Selected.Parent;
treeview2.Selected:=treeview2.Selected.Parent;
END;
treeview1.Selected:=treeview1.Items.AddChild(treeview1.selected,trim(query1.FieldByName('CusType').asstring));
treeview2.Selected:=treeview2.Items.AddChild(treeview2.selected,trim(query1.FieldByName('CusName').asstring));
treeview2.Selected.ImageIndex:=0;
treeview2.Selected.SelectedIndex:=1;
end;
query1.Next;
end;
query1.Active:=false;
query1.SQL.Clear;
DataSource1.DataSet:=table1;
try
TreeView2Click(nil);
except
end;
combobox1.Text:='';
treeview1.FullCollapse;
treeview2.FullCollapse;
TreeView2Click(nil);
end;
procedure TxfwhForm.TreeView2Click(Sender: TObject);
var ls:integer;
begin
if DataSource1.DataSet=table1 then
begin
{ ls:=length(trim(treeview1.Items[treeview2.Selected.AbsoluteIndex].Text));
DBNavigator1.Enabled:=(ls>=3);
BitBtn1.Enabled:=(ls>=3);
BitBtn3.Enabled:=BitBtn1.Enabled;
table1.Active:=false;
if treeview1.Items[treeview2.Selected.AbsoluteIndex].Text='0001' then
table1.Filter:='CusType>=''0000'' and CusType<=''0100''' else
table1.Filter:='CusType>='''+trim(treeview1.Items[treeview2.Selected.AbsoluteIndex].Text)+''' and CusType<='''+trim(copy('0'+inttostr(strtoint(treeview1.Items[treeview2.Selected.AbsoluteIndex].Text)+1),2-ls+length(inttostr(strtoint(treeview1.Items[treeview2.Selected.AbsoluteIndex].Text)+1)),ls))+'''';
table1.Filtered:=true;
table1.Active:=true;
table1.Fields[3].Visible:=false;
Tbooleanfield(table1.Fields[7]).displayvalues:='是;否';
Tbooleanfield(table1.Fields[8]).displayvalues:='要;否';
Tbooleanfield(table1.Fields[9]).displayvalues:='可;否'; }
DBNavigator1.Enabled:=(length(trim(treeview1.Items[treeview2.Selected.AbsoluteIndex].Text))>=3);
BitBtn1.Enabled:=(length(trim(treeview1.Items[treeview2.Selected.AbsoluteIndex].Text))>=3);
BitBtn3.Enabled:=BitBtn1.Enabled;
table1.Active:=false;
table1.Filter:='CusType='''+trim(treeview1.Items[treeview2.Selected.AbsoluteIndex].Text)+'''';
table1.Filtered:=true;
table1.Active:=true;
Tbooleanfield(table1.Fields[7]).displayvalues:='是;否';
Tbooleanfield(table1.Fields[8]).displayvalues:='是;否';
Tbooleanfield(table1.Fields[9]).displayvalues:='是;否';
// Tbooleanfield(DBGrid1.Fields[10]).displayvalues:='是;否';
// table1.Fields[11].Visible:=false;
end;
end;
procedure TxfwhForm.BitBtn3Click(Sender: TObject);
begin
if messagedlg('确信删除这条记录吗!!',mtwarning,[mbok,mbcancel],0)=mrok then
if trim(table1.FieldByName('CusCode').asstring)<>'' then
begin
table1.delete;
end;
end;
procedure TxfwhForm.Table1AfterOpen(DataSet: TDataSet);
var i:integer;
begin
table1.First;
for i:=0 to DBGrid1.FieldCount-1 do
DBGrid1.Fields[i].DisplayWidth:=8;
dbgrid1.Fields[1].DisplayWidth:=10;
dbgrid1.Fields[2].DisplayWidth:=12;
dbgrid1.Fields[4].DisplayWidth:=10;
dbgrid1.Fields[5].DisplayWidth:=10;
end;
procedure TxfwhForm.TreeView2Change(Sender: TObject; Node: TTreeNode);
begin
TreeView2Click(nil);
end;
procedure TxfwhForm.Table1AfterInsert(DataSet: TDataSet);
begin
table1.FieldByName('CusType').asstring:=trim(treeview1.Items[treeview2.Selected.AbsoluteIndex].Text);
table1.FieldByName('isjs').asboolean:=false;
table1.FieldByName('iszy').asboolean:=false;
table1.FieldByName('iszk').asboolean:=false;
table1.FieldByName('tcje').asfloat:=0;
query1.Active:=false;
query1.SQL.Clear;
query1.SQL.Add('select max(substring(CusCode,5,2)) from CusItem where CusType='''+trim(treeview1.Items[treeview2.Selected.AbsoluteIndex].Text)+'''');
query1.Prepare;
query1.Open;
if trim(query1.fields[0].Asstring)='' then
table1.FieldByName('CusCode').asstring:=trim(treeview1.Items[treeview2.Selected.AbsoluteIndex].Text)+'00'
else
table1.FieldByName('CusCode').asstring:=trim(treeview1.Items[treeview2.Selected.AbsoluteIndex].Text)
+copy('0'+inttostr(query1.fields[0].Asinteger+1),length(inttostr(query1.fields[0].Asinteger+1)),2);
query1.Active:=false;
query1.SQL.Clear;
end;
procedure TxfwhForm.DBGrid1KeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
begin
if key=13 then
begin
if (trim(dbgrid1.Fields[1].AsString)<>'') and (dbgrid1.SelectedIndex=1)then
begin
table1.Edit;
dbgrid1.Fields[2].AsString:=pyjc(dbgrid1.Fields[1].AsString);
end;
table1.Refresh;
if DBGrid1.SelectedIndex<DBGrid1.FieldCount-1 then
DBGrid1.SelectedIndex:=DBGrid1.SelectedIndex+1
else
begin
table1.Next;
if table1.Eof then
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -