📄 tempmingdan.pas
字号:
unit tempmingdan;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, GridsEh, DBGridEh, DB, ADODB,Hints;
type
TdlgTempMingdan = class(TForm)
dbTempMingdan: TDBGridEh;
cbDepart: TComboBox;
ckCard: TCheckBox;
edCard: TEdit;
ckID: TCheckBox;
edID: TEdit;
edName: TEdit;
ckName: TCheckBox;
btnSelect: TButton;
btnClose: TButton;
btnAllOut: TButton;
btnSelectOut: TButton;
DataSource1: TDataSource;
ADOQuery1: TADOQuery;
ADOQuery2: TADOQuery;
Label1: TLabel;
lblFlag: TLabel;
procedure FormCreate(Sender: TObject);
procedure FormShow(Sender: TObject);
procedure cbDepartChange(Sender: TObject);
procedure btnSelectClick(Sender: TObject);
procedure btnAllOutClick(Sender: TObject);
procedure btnCloseClick(Sender: TObject);
procedure btnSelectOutClick(Sender: TObject);
private
{ Private declarations }
SQL: string;
procedure cbDepartShow;
procedure cbDepartdbTempMingdanShow;
public
{ Public declarations }
end;
var
dlgTempMingdan: TdlgTempMingdan;
implementation
uses timeclock;
{$R *.dfm}
procedure TdlgTempMingdan.FormCreate(Sender: TObject);
begin
DataSource1.DataSet := ADOQuery1;
dbTempMingdan.DataSource := DataSource1;
end;
procedure TdlgTempMingdan.cbDepartShow;
var i: integer;
begin
cbDepart.Items.Clear;
cbDepart.Items.Add('0:所有');
if frmMain.cbCardUser.ItemIndex = 1 then
begin
ADOQuery2.Close;
SQL := 'select * from s_bji';
ADOQuery2.SQL.Text := SQL;
ADOQuery2.Open;
for i:=0 to ADOQuery2.RecordCount - 1 do
begin
cbDepart.Items.Add(ADOQuery2.FieldByName('bj_id').AsString+':'+ADOQuery2.FieldByName('bj_mcheng').AsString);
ADOQuery2.Next;
end;
end
else
begin
ADOQuery2.Close;
SQL := 'select * from s_jses';
ADOQuery2.SQL.Text := SQL;
ADOQuery2.Open;
for i:=0 to ADOQuery2.RecordCount - 1 do
begin
cbDepart.Items.Add(ADOQuery2.FieldByName('Jses_ID').AsString+':'+ADOQuery2.FieldByName('Jses_mcheng').AsString);
ADOQuery2.Next;
end;
end;
end;
procedure TdlgTempMingdan.cbDepartdbTempMingdanShow;
begin
ADOQuery1.Close();
if frmMain.cbCardUser.ItemIndex = 1 then
begin
if cbDepart.ItemIndex = 0 then
SQL := 'select a.xs_id as 学生ID,cast(a.cardID as varchar(20)) as 卡号, cast(b.xs_xming as varchar(20)) as 姓名,c.bj_mcheng as 所在班级 from n_xscard a inner join u_jbxxi b on a.xs_id = b.xs_id inner join s_bji c on c.bj_id=b.bj_id order by c.bj_id,a.xs_id'
else
SQL := 'select a.xs_id as 学生ID,cast(a.cardID as varchar(20)) as 卡号, cast(b.xs_xming as varchar(20)) as 姓名,c.bj_mcheng as 所在班级 from n_xscard a inner join u_jbxxi b on a.xs_id = b.xs_id inner join s_bji c on c.bj_id=b.bj_id where b.bj_id = left('''+cbDepart.Text+''',charindex('':'','''+cbDepart.Text+''')-1) order by c.bj_id,a.xs_id';
end
else
begin
if cbDepart.ItemIndex = 0 then
SQL := 'select a.zh_id as 教师ID, cast(a.cardID as varchar(20)) as 卡号,cast(b.zhming as varchar(20)) as 姓名,c.jses_mcheng as 所在部门 from n_jscard a inner join s_zhu b on a.zh_id=b.zh_id inner join s_jses c on b.js_id = c.jses_id'
else
SQL := 'select a.zh_id as 教师ID, cast(a.cardID as varchar(20)) as 卡号,cast(b.zhming as varchar(20)) as 姓名,c.jses_mcheng as 所在部门 from n_jscard a inner join s_zhu b on a.zh_id=b.zh_id inner join s_jses c on b.js_id = c.jses_id where b.js_id=left('''+cbDepart.Text+''',charindex('':'','''+cbDepart.Text+''')-1) order by c.jses_id, a.zh_id';
end;
ADOQuery1.SQL.Text := SQL;
ADOQuery1.Open;
end;
procedure TdlgTempMingdan.FormShow(Sender: TObject);
begin
cbDepartShow;
cbDepart.ItemIndex := 0;
ADOQuery1.Close;
if frmMain.cbCardUser.ItemIndex = 1 then
SQL := 'select a.xs_id as 学生ID,cast(a.cardID as varchar(20)) as 卡号, cast(b.xs_xming as varchar(20)) as 姓名,c.bj_mcheng as 所在班级 from n_xscard a inner join u_jbxxi b on a.xs_id = b.xs_id inner join s_bji c on c.bj_id=b.bj_id order by c.bj_id,a.xs_id'
else
SQL := 'select a.zh_id as 教师ID, cast(a.cardID as varchar(20)) as 卡号,cast(b.zhming as varchar(20)) as 姓名,c.jses_mcheng as 所在部门 from n_jscard a inner join s_zhu b on a.zh_id=b.zh_id inner join s_jses c on b.js_id = c.jses_id order by c.jses_id, a.zh_id';
ADOQuery1.SQL.Text := SQL;
ADOQuery1.Open;
end;
procedure TdlgTempMingdan.cbDepartChange(Sender: TObject);
begin
cbDepartdbTempMingdanShow;
end;
procedure TdlgTempMingdan.btnSelectClick(Sender: TObject);
var i:integer;
begin
if frmMain.cbCardUser.ItemIndex = 1 then
begin
SQL := 'select a.xs_id as 学生ID,cast(a.cardID as varchar(20)) as 卡号, cast(b.xs_xming as varchar(20)) as 姓名,c.bj_mcheng as 所在班级 from n_xscard a inner join u_jbxxi b on a.xs_id = b.xs_id inner join s_bji c on c.bj_id=b.bj_id';
if (ckName.Checked = true) and (ckCard.Checked = true) and (ckID.Checked = true) then
i:=0;
if (ckName.Checked = true) and (ckCard.Checked = true) and (ckID.Checked = false) then
i:=1;
if (ckName.Checked = true) and (ckCard.Checked = false) and (ckID.Checked = false) then
i:=2;
if (ckName.Checked = true) and (ckCard.Checked = false) and (ckID.Checked = true) then
i:=3;
if (ckName.Checked = false) and (ckCard.Checked = true) and (ckID.Checked = true) then
i:=4;
if (ckName.Checked = false) and (ckCard.Checked = true) and (ckID.Checked = false) then
i:=5;
if (ckName.Checked = false) and (ckCard.Checked = false) and (ckID.Checked = true) then
i:=6;
case i of
0:
SQL := SQL+' where b.xs_xming = '''+edName.Text+''' and a.CardID = '''+edCard.Text+''' and cast(a.xs_id as varchar) = '''+edID.Text+''' order by b.bj_id,a.xs_id' ;
1:
SQL := SQL+' where b.xs_xming = '''+edName.Text+''' and a.CardID = '''+edCard.Text+''' order by b.bj_id,a.xs_id' ;
2:
SQL := SQL+' where b.xs_xming = '''+edName.Text+''' order by b.bj_id,a.xs_id' ;
3:
SQL := SQL+' where b.xs_xming = '''+edName.Text+''' and cast(a.xs_id as varchar) = '''+edID.Text+''' order by b.bj_id,a.xs_id' ;
4:
SQL := SQL+' where a.CardID = '''+edCard.Text+''' and cast(a.xs_id as varchar) = '''+edID.Text+''' order by b.bj_id,a.xs_id' ;
5:
SQL := SQL+' where a.CardID = '''+edCard.Text+''' order by b.bj_id,a.xs_id' ;
6:
SQL := SQL+' where cast(a.xs_id as varchar) = '''+edID.Text+''' order by b.bj_id,a.xs_id' ;
end;
end
else
begin
SQL := 'select a.zh_id as 教师ID, cast(a.cardID as varchar(20)) as 卡号,cast(b.zhming as varchar(20)) as 姓名,c.jses_mcheng as 所在部门 from n_jscard a inner join s_zhu b on a.zh_id=b.zh_id inner join s_jses c on b.js_id = c.jses_id';
if (ckName.Checked = true) and (ckCard.Checked = true) and (ckID.Checked = true) then
i:=0;
if (ckName.Checked = true) and (ckCard.Checked = true) and (ckID.Checked = false) then
i:=1;
if (ckName.Checked = true) and (ckCard.Checked = false) and (ckID.Checked = false) then
i:=2;
if (ckName.Checked = true) and (ckCard.Checked = false) and (ckID.Checked = true) then
i:=3;
if (ckName.Checked = false) and (ckCard.Checked = true) and (ckID.Checked = true) then
i:=4;
if (ckName.Checked = false) and (ckCard.Checked = true) and (ckID.Checked = false) then
i:=5;
if (ckName.Checked = false) and (ckCard.Checked = false) and (ckID.Checked = true) then
i:=6;
case i of
0:
SQL := SQL+' where b.zhming = '''+edName.Text+''' and a.CardID = '''+edCard.Text+''' and cast(a.zh_id as varchar) = '''+edID.Text+''' order by c.jses_id, a.zh_id' ;
1:
SQL := SQL+' where b.zhming = '''+edName.Text+''' and a.CardID = '''+edCard.Text+''' order by c.jses_id, a.zh_id' ;
2:
SQL := SQL+' where b.zhming = '''+edName.Text+''' order by c.jses_id, a.zh_id' ;
3:
SQL := SQL+' where b.zhming = '''+edName.Text+''' and cast(a.zh_id as varchar) = '''+edID.Text+''' order by c.jses_id, a.zh_id' ;
4:
SQL := SQL+' where a.cardID = '''+edCard.Text+''' and cast(a.zh_id as varchar) = '''+edID.Text+''' order by c.jses_id, a.zh_id' ;
5:
SQL := SQL+' where a.cardID = '''+edCard.Text+''' order by c.jses_id, a.zh_id' ;
6:
SQL := SQL+' where cast(a.zh_id as varchar) = '''+edID.Text+''' order by c.jses_id, a.zh_id' ;
end;
end;
ADOQuery1.Close;
ADOQuery1.SQL.Text := SQL;
ADOQuery1.Open;
end;
procedure TdlgTempMingdan.btnAllOutClick(Sender: TObject);
begin
try
if not Assigned(dlgHints) then
dlgHints := TdlgHints.Create(dlgHints);
dlgHints.msg.Caption := '正在加载数据,请等候……';
dlgHints.Show;
dlgHints.Update;
ADOQuery2.Close;
ADOQuery2.SQL.Text := 'exec dbo.p_insert_kqmingdan null,'+inttostr(frmMain.cbListKind.ItemIndex)+','+inttostr(frmMain.pclk.clock_id)+','+lblFlag.Caption+','+inttostr(frmMain.cbCardUser.ItemIndex)+',0,'''+StringReplace(SQL,'''','''''',[rfReplaceAll])+'''';
ADOQuery2.ExecSQL;
finally
dlgHints.Close;
dlgTempMingdan.Close;
end;
end;
procedure TdlgTempMingdan.btnCloseClick(Sender: TObject);
begin
dlgTempMingdan.Close;
end;
procedure TdlgTempMingdan.btnSelectOutClick(Sender: TObject);
var
i:integer;
SQL:string;
begin
with dbTempMingdan.DataSource.DataSet do
begin
try
if not Assigned(dlgHints) then
dlgHints := TdlgHints.Create(dlgHints);
dlgHints.msg.Caption := '正在存入名单表中,请稍候......';
dlgHints.Show;
dlgHints.msg.Update;
ADOQuery2.Close;
for i:=0 to dbTempMingdan.SelectedRows.Count - 1 do
begin
GotoBookMark(Pointer(dbTempMingdan.SelectedRows.Items[i]));
ADOQuery2.SQL.Text := 'insert into t_kqmingdan values ('''+dbTempMingdan.Fields[1].AsString+''','+dbTempMingdan.Fields[0].AsString+','''+dbTempMingdan.Fields[2].AsString+''','+inttostr(frmMain.cbListKind.ItemIndex)+','+inttostr(frmMain.cbCardUser.ItemIndex)+',0,0,'+inttostr(frmMain.pclk.clock_id)+')';
ADOQuery2.ExecSQL;
end
finally
dlgHints.Close;
dlgTempMingdan.Close;
end;
end;
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -