⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 dqmlgl.pas

📁 服务信息管理系统
💻 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 + -