📄 dqmlgl.pas
字号:
unit dqmlgl;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, ExtCtrls, Buttons, DB, DBTables, ComCtrls;
type
Tfrmdqmlgl = class(TForm)
Label1: TLabel;
Label2: TLabel;
Edit1: TEdit;
Edit2: TEdit;
Shape1: TShape;
Shape2: TShape;
BitBtnsave: TBitBtn;
BitBtn1: TBitBtn;
DqQuery: TQuery;
procedure BitBtn1Click(Sender: TObject);
procedure FormClose(Sender: TObject; var Action: TCloseAction);
procedure Edit2Enter(Sender: TObject);
procedure Edit2Exit(Sender: TObject);
procedure FormKeyPress(Sender: TObject; var Key: Char);
procedure Edit2Change(Sender: TObject);
procedure BitBtnsaveClick(Sender: TObject);
procedure FormShow(Sender: TObject);
private
{ Private declarations }
function datasave: Boolean; //数据保存函数
function Getdqbh: string; //获取地区编号
public
{ Public declarations }
end;
var
frmdqmlgl: Tfrmdqmlgl;
implementation
uses khzlxx;
{$R *.dfm}
procedure Tfrmdqmlgl.BitBtn1Click(Sender: TObject);
begin
Close;
end;
procedure Tfrmdqmlgl.FormClose(Sender: TObject; var Action: TCloseAction);
begin
Action := caFree;
frmdqmlgl := nil
end;
procedure Tfrmdqmlgl.Edit2Enter(Sender: TObject);
begin
(Sender as TEdit).color := clGradientActiveCaption;
end;
procedure Tfrmdqmlgl.Edit2Exit(Sender: TObject);
begin
(Sender as TEdit).color := ClWindow;
end;
procedure Tfrmdqmlgl.FormKeyPress(Sender: TObject; var Key: Char);
begin
if Key = #13 then
begin
SelectNext(ActiveControl, True, True);
Key := #0;
end;
end;
procedure Tfrmdqmlgl.Edit2Change(Sender: TObject);
begin
Bitbtnsave.enabled := True
end;
function Tfrmdqmlgl.datasave: Boolean; //数据保存函数
var
lsbl_dqbh, lsbl_dqmc: string;
lsbl_bhcd1, lsbl_bhcd2: Integer;
cMessage: string;
MainNode: TTreeNode;
lsbl_view: TTreeview;
begin
lsbl_dqbh := Trim(Edit1.Text);
lsbl_dqmc := Trim(Edit2.Text);
lsbl_view := frmkhzl.DqmlView;
Result := True;
if lsbl_dqbh = '' then
begin
MessageDlg('地区编号不能为空', mtError, [mbOk], 0);
Edit1.SetFocus;
Result := False;
exit;
end;
if lsbl_dqmc = '' then
begin
MessageDlg('地区名称不能为空', mtError, [mbOk], 0);
Edit2.SetFocus;
Result := False;
exit;
end;
with dqQuery do
begin
Close;
SQL.Clear;
SQL.Add('Select dq_bh,dq_mc From dqxxk');
if dqml_bjzt = 'dqtjadd' then
SQL.Add('where Trim(dq_bh)=''' + dqml_dqbh + lsbl_dqbh + '''')
else
SQL.Add('where Trim(dq_bh)=''' + dqml_dqdqbh + lsbl_dqbh + '''');
Open;
First;
if (FieldByName('dq_bh').AsString <> '') and (dqml_bjzt <> 'Edit') then
begin
cMessage := '已存在部门【' + Trim(FieldByName('dq_bh').AsString) +
' ';
cMessage := cMessage + Trim(FieldByName('dq_mc').AsString) +
'】,请重新输入编号';
MessageDlg(cMessage, mtError, [mbOk], 0);
close;
Edit1.SetFocus;
Result := False;
exit;
end
else
Close;
end;
with DqQuery do
begin
if dqml_bjzt = 'dqtjadd' then
begin
with dqQuery do
begin
Close;
SQL.Clear;
SQL.Add('Insert into dqxxk (dq_bh,dq_mc,dq_jb)');
SQL.Add(' values (''' + dqml_dqbh + lsbl_dqbh + '''' + ',''' +
lsbl_dqmc + '''');
if lsbl_view.Items.count = 0 then
SQL.Add(',''' + '0' + '''' + ')')
else
SQL.Add(',''' + inttostr(lsbl_view.Selected.level) + ''''
+ ')');
Prepare;
try
ExecSQL;
if lsbl_view.Items.count = 0 then
MainNode := lsbl_view.Items.AddChild(nil, lsbl_dqbh +
' ' +
lsbl_dqmc)
else
begin
if lsbl_view.Selected.Level = 0 then
MainNode := lsbl_view.Items.AddChild(nil, lsbl_dqbh
+
' ' + lsbl_dqmc)
else
MainNode :=
lsbl_view.Items.AddChild(lsbl_view.Selected.Parent,
lsbl_dqbh + ' ' + lsbl_dqmc);
end;
Mainnode.SelectedIndex := 16;
Mainnode.ImageIndex := 17;
//MainNode.Selected := True;
except
MessageDlg('更新数据失败', mtWarning, [mbOk], 0);
Result := False;
exit;
end;
end;
end
else
begin
if dqml_bjzt = 'dqxjadd' then
begin
with dqQuery do
begin
Close;
SQL.Clear;
SQL.Add('Insert into dqxxk (dq_bh,dq_mc,dq_jb)');
SQL.Add(' values (''' + dqml_dqdqbh + lsbl_dqbh + '''' + ','''
+
lsbl_dqmc + '''');
SQL.Add(',''' + inttostr(lsbl_view.Selected.level + 1) +
'''' +
')');
Prepare;
try
ExecSQL;
MainNode :=
lsbl_view.Items.AddChild(lsbl_view.Selected,
lsbl_dqbh + ' ' + lsbl_dqmc);
Mainnode.SelectedIndex := 16;
Mainnode.ImageIndex := 17;
//MainNode.Selected := True;
except
MessageDlg('更新数据失败', mtWarning, [mbOk], 0);
Result := False;
exit;
end;
end;
end
else
begin
SQL.Clear;
SQL.Add('update dqxxk set dq_mc=''' + lsbl_dqmc + '''');
SQL.Add('where Trim(dq_bh)=''' + dqml_dqdqbh + '''');
try
ExecSQL;
lsbl_bhcd1 := length(dqml_dqbh) + 1;
lsbl_bhcd2 := length(dqml_dqdqbh) - lsbl_bhcd1 + 1;
lsbl_dqbh := Copy(dqml_dqdqbh, lsbl_bhcd1, lsbl_bhcd2);
lsbl_view.Selected.Text := lsbl_dqbh + ' ' + lsbl_dqmc;
dqml_dqdqmc := lsbl_dqmc;
except
MessageDlg('更新数据失败', mtWarning, [mbOk], 0);
Result := False;
Exit;
end;
end;
end;
end;
end;
procedure Tfrmdqmlgl.BitBtnsaveClick(Sender: TObject);
var
lsbl_save: Boolean;
begin
lsbl_save := datasave();
if lsbl_save = True then
begin
BitBtnSave.Enabled := False;
if (dqml_bjzt = 'dqtjadd') or (dqml_bjzt = 'dqxjadd') then
begin
Edit1.Text := Getdqbh();
Edit2.Text := '';
Edit1.SetFocus;
end
else
Close;
end;
end;
function Tfrmdqmlgl.Getdqbh: string; //数据保存函数
var
lsbl_dqbh, lsbl_dqbhcd, lsbl_level: string;
begin
if dqml_bjzt = 'dqtjadd' then
begin
lsbl_dqbhcd := inttostr(length(dqml_dqbh));
lsbl_level := inttostr(frmkhzl.dqmlview.Selected.Level);
with dqQuery do
begin
Close;
SQL.Clear;
SQL.Add('Select max(dq_bh) as dqbh From dqxxk');
SQL.Add('where left(dq_bh,' + lsbl_dqbhcd + ')=''' + dqml_dqbh +
'''');
SQL.Add('and dq_jb=''' + lsbl_level + '''');
Open;
First;
end;
if dqquery.FieldByName('dqbh').AsString <> '' then
begin
lsbl_dqbh := dqquery.FieldByName('dqbh').AsString;
lsbl_dqbh := copy(lsbl_dqbh, strtoint(lsbl_dqbhcd) + 1, 3);
lsbl_dqbh := inttostr(strtoint(lsbl_dqbh) + 1);
lsbl_dqbh := Copy('00000000000000000000', 1, 3 - length(lsbl_dqbh)) +
lsbl_dqbh;
end
else
begin
lsbl_dqbh := '001';
end;
end;
if dqml_bjzt = 'dqxjadd' then
begin
lsbl_dqbhcd := inttostr(length(dqml_dqdqbh));
lsbl_level := inttostr(frmkhzl.dqmlview.Selected.Level + 1);
with dqQuery do
begin
Close;
SQL.Clear;
SQL.Add('Select max(dq_bh) as dqbh From dqxxk');
SQL.Add('where left(dq_bh,' + lsbl_dqbhcd + ')=''' + dqml_dqdqbh +
'''');
SQL.Add('and dq_jb=''' + lsbl_level + '''');
Open;
First;
end;
if dqquery.FieldByName('dqbh').AsString <> '' then
begin
lsbl_dqbh := dqquery.FieldByName('dqbh').AsString;
lsbl_dqbh := copy(lsbl_dqbh, strtoint(lsbl_dqbhcd) + 1, 3);
lsbl_dqbh := inttostr(strtoint(lsbl_dqbh) + 1);
lsbl_dqbh := Copy('00000000000000000000', 1, 3 - length(lsbl_dqbh)) +
lsbl_dqbh;
end
else
begin
lsbl_dqbh := '001';
end;
end;
dqquery.Close;
Result := lsbl_dqbh;
end;
procedure Tfrmdqmlgl.FormShow(Sender: TObject);
begin
if (dqml_bjzt = 'dqtjadd') or (dqml_bjzt = 'dqxjadd') then
begin
Edit1.Text := Getdqbh();
Edit2.Text := '';
end;
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -