📄 khzlxx.pas
字号:
unit khzlxx;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, ImgList, StdCtrls, Buttons, ComCtrls, ToolWin, ExtCtrls, Grids,
DBGrids, DB, DBTables;
type
Tfrmkhzl = class(TForm)
ImageList: TImageList;
CoolBar1: TCoolBar;
oToolBar: TToolBar;
DqtjaddButton: TToolButton;
DqxjaddButton: TToolButton;
DqDeleteButton: TToolButton;
PrintButton: TToolButton;
PrintviewButton: TToolButton;
ToolButton7: TToolButton;
ToolButton1: TToolButton;
ToolButton2: TToolButton;
ToolButton3: TToolButton;
ToolButton4: TToolButton;
ToolButton5: TToolButton;
ToolButton6: TToolButton;
ToolButton8: TToolButton;
ToolButton9: TToolButton;
ToolButton10: TToolButton;
ToolButton11: TToolButton;
ToolButton12: TToolButton;
ToolButton13: TToolButton;
ToolButton14: TToolButton;
Panel1: TPanel;
Splitter1: TSplitter;
Panel2: TPanel;
Panel3: TPanel;
Panel4: TPanel;
Splitter2: TSplitter;
Panel5: TPanel;
Panel6: TPanel;
DBGrid1: TDBGrid;
Edit1: TEdit;
khgjquery: TQuery;
KhgjDataSource: TDataSource;
Label3: TLabel;
Label4: TLabel;
DBGrid2: TDBGrid;
DqmlQuery: TQuery;
DqmlView: TTreeView;
Label1: TLabel;
khzlDataSource: TDataSource;
KhxxQuery: TQuery;
Query1: TQuery;
procedure FormClose(Sender: TObject; var Action: TCloseAction);
procedure ToolButton14Click(Sender: TObject);
procedure DBGrid1ColEnter(Sender: TObject);
procedure Edit1Change(Sender: TObject);
procedure FormResize(Sender: TObject);
procedure Panel1Resize(Sender: TObject);
procedure Panel3Resize(Sender: TObject);
procedure DqtjaddButtonClick(Sender: TObject);
procedure DqxjaddButtonClick(Sender: TObject);
procedure ToolButton1Click(Sender: TObject);
procedure FormCreate(Sender: TObject);
procedure DqmlViewClick(Sender: TObject);
procedure KhxxQueryFilterRecord(DataSet: TDataSet;
var Accept: Boolean);
procedure DqDeleteButtonClick(Sender: TObject);
procedure PrintviewButtonClick(Sender: TObject);
procedure PrintButtonClick(Sender: TObject);
procedure ToolButton2Click(Sender: TObject);
procedure ToolButton3Click(Sender: TObject);
procedure ToolButton4Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
frmkhzl: Tfrmkhzl;
lsbl_cxnr, dqml_bjzt, dqml_dqbh, dqml_dqdqbh, dqml_dqdqmc: string;
{ dqml_dqbh 当前选中地区的上级地区的编号
dqml_dqdqbh 当前选中地区的编号
dqml_dqdqmc 当前选中地区的名称}
implementation
uses mainform, dqmlgl, dqmlreport, khzlbj;
{$R *.dfm}
procedure Tfrmkhzl.FormClose(Sender: TObject; var Action: TCloseAction);
begin
Action := caFree;
frmkhzl := nil
end;
procedure Tfrmkhzl.ToolButton14Click(Sender: TObject);
begin
Close;
end;
procedure Tfrmkhzl.DBGrid1ColEnter(Sender: TObject);
var
lsbl_khbh: string;
begin
lsbl_khbh := Trim(Khxxquery.FieldByName('kh_bh').AsString);
KhgjQuery.Close;
KhgjQuery.ParamByName('lsbl_khbh').AsString := lsbl_khbh;
KhgjQuery.Prepare;
KhgjQuery.Open;
end;
procedure Tfrmkhzl.Edit1Change(Sender: TObject);
begin
lsbl_cxnr := Trim(Edit1.text);
if lsbl_cxnr = '' then
begin
khxxquery.OnFilterRecord := nil;
khxxquery.Filtered := False;
end
else
begin
khxxquery.OnFilterRecord := khxxqueryFilterRecord;
khxxquery.Filtered := True;
end;
Label4.Caption := InttoStr(khxxquery.RecordCount);
end;
procedure Tfrmkhzl.FormResize(Sender: TObject);
begin
Label4.Left := Panel4.Width - 106;
Label3.Left := Panel4.Width - 178;
end;
procedure Tfrmkhzl.Panel1Resize(Sender: TObject);
begin
if Panel1.Width > 308 then
Panel1.Width := 308;
if Panel1.Width < 190 then
Panel1.Width := 190;
end;
procedure Tfrmkhzl.Panel3Resize(Sender: TObject);
begin
if Panel3.Height > 473 then
Panel3.Height := 473;
if Panel3.Height < 372 then
Panel3.Height := 372;
end;
procedure Tfrmkhzl.DqtjaddButtonClick(Sender: TObject);
begin
dqml_bjzt := 'dqtjadd';
frmdqmlgl := Tfrmdqmlgl.Create(Self);
with frmdqmlgl do
begin
caption := '地区同级增加';
BitBtnsave.Enabled := False;
ShowModal;
end;
end;
procedure Tfrmkhzl.DqxjaddButtonClick(Sender: TObject);
begin
dqml_bjzt := 'dqxjadd';
frmdqmlgl := Tfrmdqmlgl.Create(Self);
with frmdqmlgl do
begin
caption := '地区下级增加';
BitBtnsave.Enabled := False;
ShowModal;
end;
end;
procedure Tfrmkhzl.ToolButton1Click(Sender: TObject);
begin
dqml_bjzt := 'dqedit';
frmdqmlgl := Tfrmdqmlgl.Create(Self);
with frmdqmlgl do
begin
caption := '地区编辑';
Edit1.Text := dqml_dqdqbh;
Edit1.Enabled := False;
Edit2.Text := dqml_dqdqmc;
BitBtnsave.Enabled := False;
ShowModal;
end;
end;
procedure Tfrmkhzl.FormCreate(Sender: TObject);
var
pCode, yCode, pName: string;
MainNode, yNode, zNode: TTreeNode;
begin
MainNode := TTreeNode.Create(DqmlView.Items);
yNode := TTreeNode.Create(DqmlView.Items);
zNode := TTreeNode.Create(DqmlView.Items);
dqmlView.Items.Clear;
with DqmlQuery do
begin
Close;
SQL.Clear;
SQL.Add('Select dq_bh,dq_mc From dqxxk order by dq_bh');
Prepare;
Open;
end;
DqmlQuery.first;
yCode := Trim(DqmlQuery.FieldByName('dq_bh').AsString);
DqmlView.Items.BeginUpdate;
while not DqmlQuery.eof do
begin
pCode := Trim(DqmlQuery.FieldByName('dq_bh').AsString);
pName := Trim(DqmlQuery.FieldByName('dq_mc').AsString);
case length(pCode) of
3:
begin
MainNode := DqmlView.Items.AddChild(nil, pCode + ' ' + pName);
yNode := MainNode;
end;
6:
begin
pCode := Copy(pCode, 4, 3);
MainNode := DqmlView.Items.AddChild(yNode, pCode + ' ' + pName);
zNode := MainNode;
end;
9:
begin
pCode := Copy(pCode, 7, 3);
MainNode := DqmlView.Items.AddChild(zNode, pCode + ' ' + pName)
end;
end;
Mainnode.SelectedIndex := 16;
Mainnode.ImageIndex := 17;
DqmlQuery.Next;
end;
DqmlView.Items.EndUpdate;
DqmlQuery.Close;
if DqmlView.Items.Count <> 0 then
begin
DqmlView.Items[0].Selected := True;
DqmlView.OnClick(sender);
end
else
begin
DqxjaddButton.Enabled := False;
DqDeleteButton.Enabled := False;
end;
end;
procedure Tfrmkhzl.DqmlViewClick(Sender: TObject);
var
lsbl_dqbh, lsbl_dqbh2, lsbl_dqbhcx, lsbl_bhcd: string;
lsbl_word: Word;
lsbl_dqjb, lsbl_x: Integer;
lsbl_node: TTreeNode;
lsbl_xjdqsl, lsbl_dqkhsl: Boolean; //此两变量是用来判断地区是否能被删除
//任一个为真则地区不能删除
begin
if DqmlView.Selected <> nil then
begin
LockWindowUpdate(handle);
dqml_bjzt := '';
dqml_dqbh := '';
lsbl_node := DqmlView.Selected;
lsbl_dqjb := DqmlView.Selected.Level;
lsbl_dqbh := Trim(DqmlView.Selected.Text);
lsbl_word := Pos(' ', lsbl_dqbh);
dqml_dqdqmc := Copy(lsbl_dqbh, lsbl_word + 1, length(lsbl_dqbh));
lsbl_dqbh := Copy(lsbl_dqbh, 1, lsbl_word - 1);
for lsbl_x := 0 to lsbl_dqjb - 1 do
begin
lsbl_dqbh2 := Trim(lsbl_node.Parent.Text);
lsbl_word := Pos(' ', lsbl_dqbh2);
lsbl_dqbh2 := Copy(lsbl_dqbh2, 1, lsbl_word - 1);
dqml_dqbh := lsbl_dqbh2 + dqml_dqbh; //当前选中地区的上级编号
lsbl_dqbh := lsbl_dqbh2 + lsbl_dqbh;
lsbl_node := lsbl_node.Parent;
end;
dqml_dqdqbh := lsbl_dqbh; //当前选中地区的编号
lsbl_bhcd := inttostr(length(dqml_dqdqbh));
//以下是判断所选地区是否能被删除
lsbl_xjdqsl := DqmlView.Selected.HasChildren;
//如果此地区有下级地区则不允需删除
lsbl_dqbhcx := lsbl_dqbh + '%';
with khxxquery do
begin
Filtered := False;
Close;
SQL.Clear;
SQL.Add('Select * From khxxview');
SQL.Add('where (kh_dqbh like ''' + lsbl_dqbhcx + '''' + ') order by kh_bh');
Open;
end;
Label4.Caption := InttoStr(khxxquery.RecordCount);
if KhxxQuery.RecordCount <> 0 then
lsbl_dqkhsl := True //如果此地区还有客户则不允需删除
else
lsbl_dqkhsl := False;
if (lsbl_xjdqsl = True) or (lsbl_dqkhsl = True) then
DqDeleteButton.Enabled := False
else
DqDeleteButton.Enabled := True;
//以上是判断所选地区是否能被删除}
if DqmlView.Selected.Level = 2 then //编码长度为三级,
Dqxjaddbutton.Enabled := False //超过三级则下级增加按钮变为不能用
else
Dqxjaddbutton.Enabled := True;
Edit1.Text := '';
LockWindowUpdate(0);
end;
end;
procedure Tfrmkhzl.KhxxQueryFilterRecord(DataSet: TDataSet;
var Accept: Boolean);
begin
Accept := (sysform.StrLike(lsbl_cxnr, KhxxQuery.FieldByName('kh_bh').AsString))
or (sysform.StrLike(lsbl_cxnr, KhxxQuery.FieldByName('kh_mc').AsString))
or (sysform.StrLike(lsbl_cxnr, KhxxQuery.FieldByName('kh_zjm').AsString))
or (sysform.StrLike(lsbl_cxnr, KhxxQuery.FieldByName('kh_dh').AsString))
or (sysform.StrLike(lsbl_cxnr, KhxxQuery.FieldByName('kh_lxr').AsString))
or (sysform.StrLike(lsbl_cxnr, KhxxQuery.FieldByName('kh_sh').AsString));
end;
procedure Tfrmkhzl.DqDeleteButtonClick(Sender: TObject);
var
lsbl_dqmc: string;
begin
if dqmlView.Selected <> nil then
begin
lsbl_dqmc := dqmlview.Selected.Text;
if MessageDlg('确实要删除地区【' + lsbl_dqmc + '】',
mtConfirmation, [mbYes, mbNo], 0) = mrYes then
begin
with dqmlQuery do
begin
Close;
SQL.Clear;
SQL.Add('Delete from dqxxk where Trim(dq_bh)=''' + dqml_dqdqbh + '''');
Prepare;
try
ExecSQL;
dqmlview.Selected.Delete;
dqmlView.OnClick(sender);
except
MessageDlg('删除数据失败', mtWarning, [mbOk], 0);
exit;
end;
end;
end;
end;
end;
procedure Tfrmkhzl.PrintviewButtonClick(Sender: TObject);
begin
if frmdqmlreport = nil then
frmdqmlreport := Tfrmdqmlreport.create(self);
frmdqmlreport.QuickRep1.ReportTitle := '《地区目录》';
frmdqmlreport.QuickRep1.Preview;
frmdqmlreport.Free;
frmdqmlreport := nil;
end;
procedure Tfrmkhzl.PrintButtonClick(Sender: TObject);
begin
if frmdqmlreport = nil then
frmdqmlreport := Tfrmdqmlreport.create(self);
frmdqmlreport.QuickRep1.ReportTitle := '《地区目录》';
frmdqmlreport.QuickRep1.Print;
frmdqmlreport.Free;
frmdqmlreport := nil;
end;
procedure Tfrmkhzl.ToolButton2Click(Sender: TObject);
begin
frmkhzlbj := Tfrmkhzlbj.Create(Self);
with frmkhzlbj do
begin
caption := '客户资料增加';
khzlbj_bjzt := 'khzladd';
khxx_dqbh := dqml_dqdqbh;
khxx_dqmc := dqml_dqdqmc;
DqEdit.Text := dqml_dqdqmc;
khxx_bh := '';
ShowModal;
end;
end;
procedure Tfrmkhzl.ToolButton3Click(Sender: TObject);
begin
frmkhzlbj := Tfrmkhzlbj.Create(Self);
with frmkhzlbj do
begin
caption := '客户资料修改';
khzlbj_bjzt := 'khzledit';
khxx_dqbh := dqml_dqdqbh;
khxx_dqmc := dqml_dqdqmc;
ShowModal;
end;
end;
procedure Tfrmkhzl.ToolButton4Click(Sender: TObject);
var
lsbl_selectkhbh: string;
begin
if Khxxquery.FieldByName('kh_bh').AsString <> '' then
begin
if MessageBox(handle, '确定要删除当前记录吗?', pchar('提示信息'), mb_IconQuestion + mb_YesNo) = mrYes then
begin
lsbl_selectkhbh := Trim(Khxxquery.FieldByName('kh_bh').AsString);
Query1.ParamByName('deletekhbh').AsString := lsbl_selectkhbh;
try
Query1.ExecSQL;
except
MessageBox(handle, '删除当前记录失败', pchar('提示信息'), mb_IconWarning + mb_OK);
end;
Query1.Close;
KhxxQuery.Filtered := False;
KhxxQuery.Close;
KhxxQuery.Open;
Edit1.OnChange(Sender);
end;
end;
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -