📄 u_xlcj1.~pas
字号:
unit U_xlcj1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, Grids, DBGrids, ExtCtrls, ComCtrls, DBTables, DB,
Buttons;
type
Txlcj1 = class(TForm)
TreeView1: TTreeView;
PageControl1: TPageControl;
tbs_gr: TTabSheet;
Panel3: TPanel;
Label11: TLabel;
Label14: TLabel;
Label15: TLabel;
combo_km_gr: TComboBox;
combo_cj_gr: TComboBox;
tbs_dw: TTabSheet;
Panel1: TPanel;
Label3: TLabel;
Label4: TLabel;
combo_km_dw: TComboBox;
combo_cj_dw: TComboBox;
GroupBox2: TGroupBox;
DBGrid2: TDBGrid;
Query1: TQuery;
tbl_grxlcj: TTable;
DataSource1: TDataSource;
combo_name: TComboBox;
TreeView2: TTreeView;
tbl_dwlb: TTable;
Label1: TLabel;
DateTimePicker1: TDateTimePicker;
Label2: TLabel;
DateTimePicker3: TDateTimePicker;
tbs_bz: TTabSheet;
GroupBox3: TGroupBox;
Label6: TLabel;
combo_zy: TComboBox;
Label7: TLabel;
combo_gz: TComboBox;
Label5: TLabel;
combo_km_bz: TComboBox;
Label8: TLabel;
combo_cj_bz: TComboBox;
Label9: TLabel;
DateTimePicker2: TDateTimePicker;
GroupBox4: TGroupBox;
DBGrid3: TDBGrid;
GroupBox1: TGroupBox;
btn_close_gr: TBitBtn;
btn_lr_gr: TBitBtn;
GroupBox6: TGroupBox;
DBGrid1: TDBGrid;
GroupBox5: TGroupBox;
btn_close_bz: TBitBtn;
btn_lr_bz: TBitBtn;
GroupBox7: TGroupBox;
btn_close_dw: TBitBtn;
btn_lr_dw: TBitBtn;
tbl_bzxlcj: TTable;
tbl_dwxlcj: TTable;
DataSource2: TDataSource;
DataSource3: TDataSource;
tbl_grxlcjDWDM: TStringField;
tbl_grxlcjXM: TStringField;
tbl_grxlcjKMXH: TSmallintField;
tbl_grxlcjCJ: TStringField;
tbl_grxlcjKHDATE: TDateField;
tbl_grxlcjKMMC: TStringField;
tbl_bzxlcjDWDM: TStringField;
tbl_bzxlcjZYXH: TSmallintField;
tbl_bzxlcjGWLBXH: TSmallintField;
tbl_bzxlcjGWZLXH: TSmallintField;
tbl_bzxlcjKHDATE: TDateField;
tbl_bzxlcjKMXH: TSmallintField;
tbl_bzxlcjCJ: TStringField;
tbl_bzxlcjKMMC: TStringField;
tbl_bzxlcjGWZLMC: TStringField;
tbl_bzxlcjZYMC: TStringField;
tbl_dwxlcjDWDM: TStringField;
tbl_dwxlcjKHDATE: TDateField;
tbl_dwxlcjKMXH: TSmallintField;
tbl_dwxlcjCJ: TStringField;
tbl_dwxlcjKMMC: TStringField;
tbl_jbxx: TTable;
tbl_zy: TTable;
tbl_gwzl: TTable;
procedure btnreturnClick(Sender: TObject);
procedure FormCreate(Sender: TObject);
procedure FormShow(Sender: TObject);
procedure TreeView1Change(Sender: TObject; Node: TTreeNode);
procedure combo_nameChange(Sender: TObject);
procedure combo_zyChange(Sender: TObject);
procedure combo_gzChange(Sender: TObject);
procedure FormClose(Sender: TObject; var Action: TCloseAction);
procedure btn_lr_grClick(Sender: TObject);
procedure btn_lr_bzClick(Sender: TObject);
procedure btn_lr_dwClick(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
xlcj1: Txlcj1;
implementation
uses p_res;
{$R *.dfm}
procedure Txlcj1.btnreturnClick(Sender: TObject);
begin
close;
end;
procedure Txlcj1.FormCreate(Sender: TObject);
var
DmLen,ii:integer;
CurStr1:string;
MyTextFile1,MyTextFile2:TextFile;
begin
Query1.Close;
Query1.SQL.Text:='select * from dwlb order by dwccdm';
Query1.Open;
AssignFile(MyTextFile1,pb_runpath+'\res\dwlb.txt');
Rewrite(MyTextFile1);
AssignFile(MyTextFile2,pb_runpath+'\res\dwdm.txt');
Rewrite(MyTextFile2);
DmLen:=Length(query1.fieldbyname('dwccdm').asstring);
while not query1.Eof do
begin
CurStr1:='';
for ii:=1 to trunc((Length(query1.fieldbyname('dwccdm').asstring)-DmLen)/2) do
begin
CurStr1:=CurStr1+#9;
end;
Writeln(MyTextFile1,CurStr1+query1.fieldbyname('dwjmc').asstring);
Writeln(MyTextFile2,CurStr1+query1.fieldbyname('dwdm').asstring);
query1.Next;
end;
CloseFile(MyTextFile1);
CloseFile(MyTextFile2);
TreeView1.LoadFromFile(pb_runpath+'\res\dwlb.txt');
TreeView2.LoadFromFile(pb_runpath+'\res\dwdm.txt');
Query1.Close;
end;
procedure Txlcj1.FormShow(Sender: TObject);
begin
TreeView1.SetFocus;
TreeView1.FullExpand;
end;
procedure Txlcj1.TreeView1Change(Sender: TObject; Node: TTreeNode);
begin
if TreeView1.SelectionCount=0 then exit;
TreeView2.Selected:=TreeView2.Items[TreeView1.Selected.AbsoluteIndex];
tbl_jbxx.Filter:='dwdm='+QuotedStr(TreeView2.Selected.Text);
tbl_grxlcj.Filter:='dwdm='+QuotedStr(TreeView2.Selected.Text);
tbl_bzxlcj.Filter:='dwdm='+QuotedStr(TreeView2.Selected.Text);
tbl_dwxlcj.Filter:='dwdm='+QuotedStr(TreeView2.Selected.Text);
tbl_dwlb.Locate('dwdm',TreeView2.Selected.Text,[loCaseInsensitive ]);
tbl_grxlcj.Close;
tbl_bzxlcj.Close;
tbl_dwxlcj.Close;
btn_lr_gr.Enabled:=false;
btn_lr_bz.Enabled:=false;
btn_lr_dw.Enabled:=false;
if tbl_dwlb.FieldByName('dwlb').AsInteger=1 then
begin
btn_lr_gr.Enabled:=true;
btn_lr_dw.Enabled:=true;
tbs_bz.TabVisible:=false;
combo_name.Clear;
//个人姓名
tbl_jbxx.First;
while not tbl_jbxx.Eof do
begin
combo_name.Items.Add(tbl_jbxx.fieldbyname('xm').AsString);
tbl_jbxx.Next;
end;
//根据姓名填课目
if combo_name.Items.Count<>0 then
begin
combo_name.ItemIndex:=0;
combo_nameChange(self);
end;
//单位课目
combo_km_dw.Clear;
Query1.Close;
Query1.SQL.Text:='select kmxh,kmmc from xlkm_jg where xlqf<>1';
Query1.Open;
Query1.First;
while not Query1.Eof do
begin
combo_km_dw.Items.AddObject(Query1.fieldbyname('kmmc').AsString,TObject(Query1.fieldbyname('kmxh').AsInteger));
Query1.Next;
end;
if combo_km_dw.Items.Count<>0 then
begin
combo_km_dw.ItemIndex:=0;
end;
tbl_grxlcj.Open;
tbl_dwxlcj.open;
end
else
if tbl_dwlb.FieldByName('dwlb').AsInteger=2 then
begin
btn_lr_gr.Enabled:=true;
btn_lr_dw.Enabled:=true;
btn_lr_bz.Enabled:=true;
tbs_bz.TabVisible:=true;
combo_name.Clear;
//个人姓名
tbl_jbxx.First;
while not tbl_jbxx.Eof do
begin
combo_name.Items.Add(tbl_jbxx.fieldbyname('xm').AsString);
tbl_jbxx.Next;
end;
//根据姓名填课目
if combo_name.Items.Count<>0 then
begin
combo_name.ItemIndex:=0;
combo_nameChange(self);
end;
combo_zy.Clear;
//班组专业
tbl_zy.First;
while not tbl_zy.Eof do
begin
combo_zy.Items.AddObject(tbl_zy.fieldbyname('zymc').AsString,TObject(tbl_zy.fieldbyname('zyxh').AsInteger));
tbl_zy.Next;
end;
//根据专业填班组
if combo_zy.Items.Count<>0 then
begin
combo_zy.ItemIndex:=0;
combo_zyChange(self);
end;
//单位课目
combo_km_dw.Clear;
Query1.Close;
Query1.SQL.Text:='select kmxh,kmmc from xlkm where zyxh=8 and gwlbxh=4 and gwzlxh=3';
Query1.Open;
Query1.First;
while not Query1.Eof do
begin
combo_km_dw.Items.AddObject(Query1.fieldbyname('kmmc').AsString,TObject(Query1.fieldbyname('kmxh').AsInteger));
Query1.Next;
end;
if combo_km_dw.Items.Count<>0 then
begin
combo_km_dw.ItemIndex:=0;
end;
tbl_grxlcj.Open;
tbl_dwxlcj.open;
tbl_bzxlcj.open;
end
else
begin
tbl_grxlcj.Close;
tbl_bzxlcj.Close;
tbl_dwxlcj.Close;
end;
end;
procedure Txlcj1.combo_nameChange(Sender: TObject);
var
s:string;
begin
if tbl_dwlb.FieldByName('dwlb').AsInteger=0 then exit;
tbl_jbxx.Locate('xm',combo_name.Text,[loCaseInsensitive ]);
combo_km_gr.Clear;
//根据姓名取课目
if tbl_dwlb.FieldByName('dwlb').AsInteger=1 then
begin
s:='select kmxh,kmmc from xlkm_jg where ';
//首长机关人员
s:=s+'xlqf=1';
if tbl_jbxx.FieldByName('zyxh').AsInteger=50 then
s:=s+' and (lbxh=1 or lbxh=2 or lbxh=3)'
else
if tbl_jbxx.FieldByName('zyxh').AsInteger=51 then
s:=s+' and (lbxh=1 or lbxh=2 or lbxh=3)'
else
s:=s+' and (lbxh=1 or lbxh=3)';
end
else
if tbl_dwlb.FieldByName('dwlb').AsInteger=2 then
begin
s:='select kmxh,kmmc from xlkm';
//修理分队人员
s:=s+' where zyxh='+inttostr(tbl_jbxx.fieldbyname('zyxh').AsInteger);
s:=s+' and gwzlxh='+inttostr(tbl_jbxx.fieldbyname('gwzlxh').AsInteger);
if trim(tbl_jbxx.FieldByName('lb').AsString)='军官' then
begin
if trim(tbl_jbxx.FieldByName('jszwmc').AsString)='助理工程师(技术员)' then
s:=s+' and khdxxh=1'
else
if trim(tbl_jbxx.FieldByName('jszwmc').AsString)='工程师' then
s:=s+' and khdxxh=2'
else
if trim(tbl_jbxx.FieldByName('jszwmc').AsString)='高级工程师' then
s:=s+' and khdxxh=3'
else
if trim(tbl_jbxx.FieldByName('jszwmc').AsString)='' then
s:=s+' and khdxxh=1';
s:=s+' and gwlbxh=3';
end
else
if trim(tbl_jbxx.FieldByName('lb').AsString)='士官' then
begin
if trim(tbl_jbxx.FieldByName('zwjb').AsString)='一期' then
s:=s+' and khdxxh=1'
else
if (trim(tbl_jbxx.FieldByName('zwjb').AsString)='二期') or (trim(tbl_jbxx.FieldByName('zj').AsString)='三期' ) then
s:=s+' and khdxxh=2'
else
s:=s+' and khdxxh=3';
s:=s+' and gwlbxh=1';
end
else
if trim(tbl_jbxx.FieldByName('lb').AsString)='义务兵' then
begin
s:=s+' and khdxxh=1';
s:=s+' and gwlbxh=1';
end;
end;
Query1.Close;
Query1.SQL.Clear;
Query1.SQL.Add(s);
Query1.Open;
while not Query1.Eof do
begin
combo_km_gr.Items.AddObject(Query1.fieldbyname('kmmc').AsString,TObject(Query1.fieldbyname('kmxh').AsInteger));
Query1.Next;
end;
if combo_km_gr.Items.Count<>0 then
begin
combo_km_gr.ItemIndex:=0;
end;
end;
procedure Txlcj1.combo_zyChange(Sender: TObject);
begin
combo_gz.Clear;
tbl_gwzl.Filter:='check=true and zyxh='+inttostr(Integer(combo_zy.Items.Objects[combo_zy.ItemIndex]))
+ ' and gwlbxh=2';
tbl_gwzl.First;
while not tbl_gwzl.Eof do
begin
combo_gz.Items.AddObject(tbl_gwzl.fieldbyname('gwzlmc').AsString,TObject(tbl_gwzl.fieldbyname('gwzlxh').AsInteger));
tbl_gwzl.Next;
end;
if combo_gz.Items.Count<>0 then
begin
combo_gz.ItemIndex:=0;
combo_gzChange(self);
end;
end;
procedure Txlcj1.combo_gzChange(Sender: TObject);
begin
combo_km_bz.Clear;
Query1.Close;
Query1.SQL.Text:='select kmxh,kmmc from xlkm where zyxh=:zyxh and gwlbxh=2 and gwzlxh=:gwzlxh';
Query1.ParamByName('zyxh').AsInteger:=Integer(combo_zy.Items.Objects[combo_zy.ItemIndex]);
Query1.ParamByName('gwzlxh').AsInteger:=Integer(combo_gz.Items.Objects[combo_gz.ItemIndex]);
Query1.Open;
Query1.First;
while not Query1.Eof do
begin
combo_km_bz.Items.AddObject(Query1.fieldbyname('kmmc').AsString,TObject(Query1.fieldbyname('kmxh').AsInteger));
Query1.Next;
end;
if combo_km_bz.Items.Count<>0 then
begin
combo_km_bz.ItemIndex:=0;
end;
end;
procedure Txlcj1.FormClose(Sender: TObject; var Action: TCloseAction);
begin
tbl_grxlcj.Close;
tbl_bzxlcj.Close;
tbl_dwxlcj.Close;
tbl_zy.Close;
tbl_gwzl.Close;
tbl_jbxx.Close;
tbl_dwlb.Close;
end;
procedure Txlcj1.btn_lr_grClick(Sender: TObject);
begin
if combo_km_gr.ItemIndex=-1 then exit;
if tbl_grxlcj.Locate('xm;khdate;kmxh',VarArrayOf([combo_name.Text,DateTimePicker1.DateTime,Integer(combo_km_gr.Items.Objects[combo_km_gr.ItemIndex])]),[loCaseInsensitive ]) then
begin
MessageBox(Handle,'成绩已录入后不能再进行修改!','成绩管理',MB_OK+MB_ICONINFORMATION);
exit;
end
else
tbl_grxlcj.Append;
tbl_grxlcj.FieldByName('dwdm').AsString:=TreeView2.Selected.Text;
tbl_grxlcj.FieldByName('xm').AsString:=combo_name.Text;
tbl_grxlcj.FieldByName('khdate').AsDateTime:=DateTimePicker1.DateTime;
tbl_grxlcj.FieldByName('kmxh').AsInteger:=Integer(combo_km_gr.Items.Objects[combo_km_gr.ItemIndex]);
tbl_grxlcj.FieldByName('kmmc').AsString:=combo_km_gr.Text;
tbl_grxlcj.FieldByName('cj').AsString:=combo_cj_gr.Text;
tbl_grxlcj.Post;
end;
procedure Txlcj1.btn_lr_bzClick(Sender: TObject);
begin
if combo_km_bz.ItemIndex=-1 then exit;
if combo_gz.ItemIndex=-1 then exit;
if tbl_bzxlcj.Locate('zyxh;khdate;gwzlxh;kmxh',VarArrayOf(
[Integer(combo_zy.Items.Objects[combo_zy.ItemIndex]),
DateTimePicker2.DateTime,
Integer(combo_gz.Items.Objects[combo_gz.ItemIndex]),
Integer(combo_km_bz.Items.Objects[combo_km_bz.ItemIndex])
]),[loCaseInsensitive ]) then
begin
MessageBox(Handle,'成绩已录入后不能再进行修改!','成绩管理',MB_OK+MB_ICONINFORMATION);
exit;
end
else
tbl_bzxlcj.Append;
tbl_bzxlcj.FieldByName('dwdm').AsString:=TreeView2.Selected.Text;
tbl_bzxlcj.FieldByName('zyxh').AsInteger:=Integer(combo_zy.Items.Objects[combo_zy.ItemIndex]);
tbl_bzxlcj.FieldByName('zymc').AsString:=combo_zy.Text;
tbl_bzxlcj.FieldByName('gwzlxh').AsInteger:=Integer(combo_gz.Items.Objects[combo_gz.ItemIndex]);
tbl_bzxlcj.FieldByName('gwzlmc').AsString:=combo_gz.Text;
tbl_bzxlcj.FieldByName('khdate').AsDateTime:=DateTimePicker2.DateTime;
tbl_bzxlcj.FieldByName('kmxh').AsInteger:=Integer(combo_km_bz.Items.Objects[combo_km_bz.ItemIndex]);
tbl_bzxlcj.FieldByName('kmmc').AsString:=combo_km_bz.Text;
tbl_bzxlcj.FieldByName('cj').AsString:=combo_cj_bz.Text;
tbl_bzxlcj.Post;
end;
procedure Txlcj1.btn_lr_dwClick(Sender: TObject);
begin
if combo_km_dw.ItemIndex=-1 then exit;
if tbl_dwxlcj.Locate('khdate;kmxh',VarArrayOf([DateTimePicker3.DateTime,Integer(combo_km_dw.Items.Objects[combo_km_dw.ItemIndex])]),[loCaseInsensitive ]) then
begin
MessageBox(Handle,'成绩已录入后不能再进行修改!','成绩管理',MB_OK+MB_ICONINFORMATION);
exit;
end
else
tbl_dwxlcj.Append;
tbl_dwxlcj.FieldByName('dwdm').AsString:=TreeView2.Selected.Text;
tbl_dwxlcj.FieldByName('khdate').AsDateTime:=DateTimePicker3.DateTime;
tbl_dwxlcj.FieldByName('kmxh').AsInteger:=Integer(combo_km_dw.Items.Objects[combo_km_dw.ItemIndex]);
tbl_dwxlcj.FieldByName('kmmc').AsString:=combo_km_dw.Text;
tbl_dwxlcj.FieldByName('cj').AsString:=combo_cj_dw.Text;
tbl_dwxlcj.Post;
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -