📄 yhgnqxsz.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 + -