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

📄 yhgnqxsz.pas

📁 服务信息管理系统
💻 PAS
字号:
unit yhgnqxsz;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, Buttons, ComCtrls, ExtCtrls, DB, DBTables, Grids,
  DBGrids, CheckLst;

type
  Tfrmyhgnsz = class(TForm)
    GroupBox1: TGroupBox;
    SaveBitBtn: TBitBtn;
    BitBtn2: TBitBtn;
    Label1: TLabel;
    Label2: TLabel;
    Edit4: TEdit;
    Edit5: TEdit;
    Panel1: TPanel;
    CheckBox1: TCheckBox;
    Label3: TLabel;
    Panel2: TPanel;
    Label4: TLabel;
    CheckBox2: TCheckBox;
    Panel3: TPanel;
    Label5: TLabel;
    CheckBox3: TCheckBox;
    czyqxTable: TTable;
    qxTable: TTable;
    CheckListBox1: TCheckListBox;
    CheckListBox2: TCheckListBox;
    CheckListBox3: TCheckListBox;
    Edit1: TEdit;
    Edit2: TEdit;
    procedure BitBtn2Click(Sender: TObject);
    procedure FormClose(Sender: TObject; var Action: TCloseAction);
    procedure CheckBox1Click(Sender: TObject);
    procedure CheckBox2Click(Sender: TObject);
    procedure FormShow(Sender: TObject);
    procedure SaveBitBtnClick(Sender: TObject);
    procedure CheckListBox1Click(Sender: TObject);
    procedure CheckListBox2Click(Sender: TObject);
    procedure CheckBox3Click(Sender: TObject);
    procedure CheckListBox3Click(Sender: TObject);
    procedure FormCreate(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  frmyhgnsz: Tfrmyhgnsz;

implementation
uses Desktop, mainform;
{$R *.dfm}

procedure Tfrmyhgnsz.BitBtn2Click(Sender: TObject);
begin
  Close;
end;

procedure Tfrmyhgnsz.FormClose(Sender: TObject; var Action: TCloseAction);
begin
  Action := caFree;
end;

procedure Tfrmyhgnsz.CheckBox1Click(Sender: TObject);
var
  lsbl_x: integer;
  lsbl_xz: Boolean;
begin
  if CheckBox1.Checked = True then
    begin
      lsbl_xz := True;
    end
  else
    begin
      lsbl_xz := False;
    end;

  for lsbl_x := 0 to CheckListBox1.Items.Count - 1 do
    CheckListBox1.Checked[lsbl_x] := lsbl_xz;

  for lsbl_x := 0 to CheckListBox2.Items.Count - 1 do
    CheckListBox2.Checked[lsbl_x] := lsbl_xz;

  for lsbl_x := 0 to CheckListBox3.Items.Count - 1 do
    CheckListBox3.Checked[lsbl_x] := lsbl_xz;
  with qxtable do
    begin
      First;
      while not eof do
        begin
          edit;
          FieldByName('qx_xz').AsBoolean := lsbl_xz;
          next;
        end;
    end;
  CheckListBox1.OnClick(CheckListBox1);
end;

procedure Tfrmyhgnsz.CheckBox2Click(Sender: TObject);
var
  lsbl_x: integer;
  lsbl_xz: Boolean;
  lsbl_qxbh: string;
begin
  if CheckBox2.Checked = True then
    begin
      lsbl_xz := True;
    end
  else
    begin
      lsbl_xz := False;
    end;

  for lsbl_x := 0 to CheckListBox2.Items.Count - 1 do
    CheckListBox2.Checked[lsbl_x] := lsbl_xz;
  for lsbl_x := 0 to CheckListBox3.Items.Count - 1 do
    CheckListBox3.Checked[lsbl_x] := lsbl_xz;

  with qxtable do
    begin
      lsbl_qxbh := Trim(Edit1.Text) + '*';
      Filter := '[qx_bh]=''' + lsbl_qxbh + '''';
      Filtered := True;
      First;
      while not eof do
        begin
          edit;
          FieldByName('qx_xz').AsBoolean := lsbl_xz;
          next;
        end;
      Filtered := False;
    end;
  CheckListBox2.OnClick(CheckListBox2);
end;

procedure Tfrmyhgnsz.FormShow(Sender: TObject);
var
  lsbl_qxbh: string;
  lsbl_qxbh1: string;
  lsbl_x: Integer;
begin
  with czyqxtable do
    begin
      filtered := False;
      Filter := '[czy_bh]=''' + Edit4.Text + '''';
      Filtered := True;
      First;
      if not eof then
        begin
          while not eof do
            begin
              lsbl_qxbh := FieldValues['czy_qxxmbh'];
              if qxtable.FindKey([lsbl_qxbh]) then
                begin
                  qxtable.Edit;
                  qxtable.FieldByName('qx_xz').AsBoolean :=
                    FieldValues['czy_sfxz'];
                end;
              Next;
            end;
        end
      else
        begin
          while not qxtable.Eof do
            begin
              qxtable.Edit;
              qxtable.FieldByName('qx_xz').AsBoolean := False;
              qxtable.Next;
            end;
        end;
    end;

  CheckListBox1.Clear;
  lsbl_x := 0;
  with qxtable do
    begin
      Filtered := False;
      Filter := 'qx_jb=1';
      Filtered := True;
      First;
      lsbl_qxbh := Trim(FieldValues['qx_bh']) + '*';
      while not eof do
        begin
          CheckListBox1.Items.Add(Trim(FieldValues['qx_bh']) + ' ' +
            FieldValues['qx_mc']);
          CheckListBox1.Checked[lsbl_x] := FieldValues['qx_xz'];
          lsbl_x := lsbl_x + 1;
          Next;
        end;
      CheckListBox1.Selected[0] := True;

      lsbl_x := 0;
      CheckListBox2.Clear;
      Filtered := False;
      Filter := '([qx_bh]=''' + lsbl_qxbh + ''') and ([qx_jb]=''' + '2' + ''')';
      Filtered := True;
      First;
      lsbl_qxbh1 := Trim(FieldValues['qx_bh']) + '*';
      while not eof do
        begin
          CheckListBox2.Items.Add(Trim(FieldValues['qx_bh']) + ' ' +
            FieldValues['qx_mc']);
          CheckListBox2.Checked[lsbl_x] := FieldValues['qx_xz'];
          lsbl_x := lsbl_x + 1;
          Next;
        end;

      lsbl_x := 0;
      CheckListBox3.Clear;
      Filtered := False;
      Filter := '([qx_bh]=''' + lsbl_qxbh1 + ''') and ([qx_jb]=''' + '3' +
        ''')';
      Filtered := True;
      First;
      while not eof do
        begin
          CheckListBox3.Items.Add(Trim(FieldValues['qx_bh']) + ' ' +
            FieldValues['qx_mc']);
          CheckListBox3.Checked[lsbl_x] := FieldValues['qx_xz'];
          lsbl_x := lsbl_x + 1;
          Next;
        end;
    end;
  if Trim(Edit4.Text) = '0000' then
    begin
      SaveBitBtn.Enabled := False;
    end;
  qxtable.Filtered := False;
  CheckListBox1.OnClick(Sender);
end;

procedure Tfrmyhgnsz.SaveBitBtnClick(Sender: TObject);
var
  lsbl_qxbh: string;
begin
  with qxtable do
    begin
      Filtered := False;
      First;
      while not eof do
        begin
          lsbl_qxbh := Trim(FieldValues['qx_bh']);
          if czyqxtable.Locate('czy_bh;czy_qxxmbh', Vararrayof([Edit4.Text,
            lsbl_qxbh]), [lopartialKey]) then
            begin
              czyqxtable.Edit;
              if FieldValues['qx_xz'] = True then
                begin
                  czyqxtable.FieldByName('czy_sfxz').AsBoolean := True;
                end
              else
                begin
                  czyqxtable.FieldByName('czy_sfxz').AsBoolean := False;
                end;
              czyqxtable.Post;
            end
          else
            begin
              czyqxtable.Insert;
              czyqxtable.FieldByName('czy_bh').AsString := Edit4.Text;
              czyqxtable.FieldByName('czy_qxxmbh').AsString :=
                FieldValues['qx_bh'];
              czyqxtable.FieldByName('czy_qxxmmc').AsString :=
                FieldValues['qx_mc'];
              czyqxtable.FieldByName('czy_sfxz').AsBoolean :=
                FieldValues['qx_xz'];
              czyqxtable.FieldByName('czy_qxjb').AsString :=
                FieldValues['qx_jb'];
              czyqxtable.Post;
            end;
          next;
        end;
    end;
  if sys_czybh = Edit4.Text then
    begin
      desktopform.czyqx_mainqx := sysform.GetCzyqx(sys_czybh, '', '1');
      desktopform.czyqx_jlcxqx := sysform.GetCzyqx(sys_czybh, '009', '2');
    end;
end;

procedure Tfrmyhgnsz.CheckListBox1Click(Sender: TObject);
var
  lsbl_x: Integer;
  lsbl_y: Integer;
  lsbl_z: Integer;
  lsbl_qxbh: string;
  lsbl_qxbh1: string;
begin
  lsbl_x := 0;
  lsbl_z := 0;
  for lsbl_y := 0 to CheckListBox1.Items.Count - 1 do
    if CheckListBox1.Selected[lsbl_y] = True then
      begin
        lsbl_qxbh := Trim(CheckListBox1.Items[lsbl_y]);
        lsbl_qxbh := Copy(lsbl_qxbh, 1, 3);
        Edit1.Text := lsbl_qxbh;
        CheckListBox2.Clear;
        CheckListBox3.Clear;
        if qxtable.FindKey([lsbl_qxbh]) then
          begin
            qxtable.Edit;
            qxtable.FieldByName('qx_xz').AsBoolean :=
              CheckListBox1.Checked[lsbl_y];
          end;
        lsbl_qxbh := lsbl_qxbh + '*';
        with qxtable do
          begin
            Filtered := False;
            Filter := '([qx_bh]=''' + lsbl_qxbh + ''') and ([qx_jb]<>''' + '1' +
              ''')';
            Filtered := True;
            First;
            if not eof then
              begin
                lsbl_qxbh1 := Trim(FieldValues['qx_bh']);
                Edit2.Text := Trim(FieldValues['qx_bh']);
                while not eof do
                  begin
                    if CheckListBox1.Checked[lsbl_y] = False then
                      begin
                        edit;
                        FieldByName('qx_xz').AsBoolean := False;
                      end;
                    if FieldValues['qx_jb'] = '2' then
                      begin
                        CheckListBox2.Items.Add(Trim(FieldValues['qx_bh']) + ' '
                          + FieldValues['qx_mc']);
                        CheckListBox2.Checked[lsbl_x] := FieldValues['qx_xz'];
                        CheckListBox2.ItemEnabled[lsbl_x] :=
                          CheckListBox1.Checked[lsbl_y];
                        lsbl_x := lsbl_x + 1;
                      end
                    else
                      begin
                        if (Copy(FieldValues['qx_bh'], 1, 5) = lsbl_qxbh1) and
                          (FieldValues['qx_jb'] = '3') then
                          begin
                            CheckListBox3.Items.Add(Trim(FieldValues['qx_bh']) +
                              ' ' + FieldValues['qx_mc']);
                            CheckListBox3.Checked[lsbl_z] :=
                              FieldValues['qx_xz'];
                            CheckListBox3.ItemEnabled[lsbl_z] :=
                              CheckListBox2.Checked[0];
                            lsbl_z := lsbl_z + 1;
                          end;
                      end;
                    Next;
                  end;
              end;
          end;
        if CheckListBox1.Checked[lsbl_y] = True then
          begin
            CheckBox2.Enabled := True;
          end
        else
          begin
            CheckBox2.Enabled := False;
            CheckBox3.Enabled := False;
          end;
        qxtable.Filtered := False;
        CheckBox2.Checked := False;
        exit;
      end;
end;

procedure Tfrmyhgnsz.CheckListBox2Click(Sender: TObject);
var
  lsbl_x: Integer;
  lsbl_y: Integer;
  lsbl_qxbh2: string;
begin
  lsbl_x := 0;
  for lsbl_y := 0 to CheckListBox2.Items.Count - 1 do
    if CheckListBox2.Selected[lsbl_y] = True then
      begin
        lsbl_qxbh2 := Trim(CheckListBox2.Items[lsbl_y]);
        lsbl_qxbh2 := Copy(lsbl_qxbh2, 1, 5);
        if qxtable.FindKey([lsbl_qxbh2]) then
          begin
            qxtable.Edit;
            qxtable.FieldByName('qx_xz').AsBoolean :=
              CheckListBox2.Checked[lsbl_y];
          end;
        lsbl_qxbh2 := lsbl_qxbh2 + '*';
        with qxtable do
          begin
            CheckListBox3.Clear;
            Filtered := False;
            Filter := '([qx_bh]=''' + lsbl_qxbh2 + ''') and ([qx_jb]=''' + '3' +
              ''')';
            Filtered := True;
            First;
            while not eof do
              begin
                CheckListBox3.Items.Add(Trim(FieldValues['qx_bh']) + ' ' +
                  FieldValues['qx_mc']);
                CheckListBox3.Checked[lsbl_x] := FieldValues['qx_xz'];
                CheckListBox3.ItemEnabled[lsbl_x] :=
                  CheckListBox2.Checked[lsbl_y];
                lsbl_x := lsbl_x + 1;
                Next;
              end;
          end;
        if CheckListBox2.Checked[lsbl_y] = True then
          begin
            CheckBox3.Enabled := True;
          end
        else
          begin
            CheckBox3.Enabled := False;

          end;
        qxtable.Filtered := False;
        CheckBox3.Checked := False;
        exit;
      end;
end;

procedure Tfrmyhgnsz.CheckBox3Click(Sender: TObject);
var
  lsbl_x: integer;
  lsbl_xz: Boolean;
begin
  if CheckBox3.Checked = True then
    begin
      lsbl_xz := True;
    end
  else
    begin
      lsbl_xz := False;
    end;

  for lsbl_x := 0 to CheckListBox3.Items.Count - 1 do
    CheckListBox3.Checked[lsbl_x] := lsbl_xz;

end;

procedure Tfrmyhgnsz.CheckListBox3Click(Sender: TObject);
var
  lsbl_y: Integer;
  lsbl_qxbh3: string;
begin
  for lsbl_y := 0 to CheckListBox3.Items.Count - 1 do
    if CheckListBox3.Selected[lsbl_y] = True then
      begin
        lsbl_qxbh3 := Trim(CheckListBox3.Items[lsbl_y]);
        lsbl_qxbh3 := Copy(lsbl_qxbh3, 1, 7);
        if qxtable.FindKey([lsbl_qxbh3]) then
          begin
            qxtable.Edit;
            qxtable.FieldByName('qx_xz').AsBoolean :=
              CheckListBox3.Checked[lsbl_y];
          end;
        qxtable.Filtered := False;
        exit;
      end;
end;

procedure Tfrmyhgnsz.FormCreate(Sender: TObject);
begin
  czyqxtable.Active := True;
  qxtable.Active := True;
end;

end.

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -