288 lines
7.6 KiB
ObjectPascal
288 lines
7.6 KiB
ObjectPascal
|
|
unit U_staffSeList;
|
|||
|
|
|
|||
|
|
interface
|
|||
|
|
|
|||
|
|
uses
|
|||
|
|
Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics,
|
|||
|
|
Vcl.Controls, Vcl.Forms, Vcl.Dialogs, cxGraphics, cxControls, cxLookAndFeels,
|
|||
|
|
dxCustomTileControl, dxTileBar, cxClasses, dxListView, Data.DB, Data.Win.ADODB,
|
|||
|
|
dxTileControl, cxContainer, cxEdit, cxGroupBox, cxGeometry, dxFramedControl,
|
|||
|
|
dxPanel, System.ImageList, Vcl.ImgList, cxImageList, Vcl.ToolWin, Vcl.ActnMan,
|
|||
|
|
Vcl.ActnCtrls, cxImage, Vcl.Menus, Vcl.StdCtrls, cxButtons,
|
|||
|
|
Vcl.ExtCtrls, cxLookAndFeelPainters;
|
|||
|
|
|
|||
|
|
type
|
|||
|
|
TfrmStaffSelList = class(TForm)
|
|||
|
|
ADOQueryStaff: TADOQuery;
|
|||
|
|
dxPanel1: TdxPanel;
|
|||
|
|
dxTileBar2: TdxTileBar;
|
|||
|
|
dxTileControlGroup1: TdxTileControlGroup;
|
|||
|
|
dxTileControlGroup3: TdxTileControlGroup;
|
|||
|
|
dxTileBarItem1: TdxTileBarItem;
|
|||
|
|
dxTileBarItem2: TdxTileBarItem;
|
|||
|
|
ADOQueryTmp: TADOQuery;
|
|||
|
|
ilSmall: TcxImageList;
|
|||
|
|
dxTileControl1: TdxTileControl;
|
|||
|
|
dxTileControl1Item1: TdxTileControlItem;
|
|||
|
|
dxTileControl1Item2: TdxTileControlItem;
|
|||
|
|
dxTileControl1Item3: TdxTileControlItem;
|
|||
|
|
dxTileControl1Item4: TdxTileControlItem;
|
|||
|
|
dxTileControl1Item5: TdxTileControlItem;
|
|||
|
|
dxTileControl1Group1: TdxTileControlGroup;
|
|||
|
|
dxTileControl1Item6: TdxTileControlItem;
|
|||
|
|
dxTileControl1Item7: TdxTileControlItem;
|
|||
|
|
dxTileControl1Item8: TdxTileControlItem;
|
|||
|
|
dxTileControl1Item9: TdxTileControlItem;
|
|||
|
|
dxTileControl1Item10: TdxTileControlItem;
|
|||
|
|
dxTileControl1Item11: TdxTileControlItem;
|
|||
|
|
dxTileControl1Item12: TdxTileControlItem;
|
|||
|
|
dxTileControl1Item13: TdxTileControlItem;
|
|||
|
|
dxTileControl1Item14: TdxTileControlItem;
|
|||
|
|
dxTileControl1Item15: TdxTileControlItem;
|
|||
|
|
dxTileControl1Item16: TdxTileControlItem;
|
|||
|
|
dxTileControl1Item17: TdxTileControlItem;
|
|||
|
|
dxTileControl1Item18: TdxTileControlItem;
|
|||
|
|
dxTileControl1Item19: TdxTileControlItem;
|
|||
|
|
dxTileControl1Item20: TdxTileControlItem;
|
|||
|
|
dxTileControl1Group2: TdxTileControlGroup;
|
|||
|
|
dxTileControl1Item21: TdxTileControlItem;
|
|||
|
|
ADOQueryCmd: TADOQuery;
|
|||
|
|
ilMedium: TcxImageList;
|
|||
|
|
Image_tmp: TImage;
|
|||
|
|
procedure dxTileBar1dxTileBarItem2Click(Sender: TdxTileControlItem);
|
|||
|
|
procedure FormClose(Sender: TObject; var Action: TCloseAction);
|
|||
|
|
procedure FormDestroy(Sender: TObject);
|
|||
|
|
procedure FormShow(Sender: TObject);
|
|||
|
|
procedure FormCreate(Sender: TObject);
|
|||
|
|
procedure dxTileBarItem1Click(Sender: TdxTileControlItem);
|
|||
|
|
private
|
|||
|
|
fcurUserId:string;
|
|||
|
|
|
|||
|
|
fcurItem:TdxTileControlItem;
|
|||
|
|
procedure createGroup();
|
|||
|
|
procedure createGroupItem(group:TdxTileControlGroup;groupName:String);
|
|||
|
|
procedure dxTileControl1Item1Click(Sender: TdxTileControlItem);
|
|||
|
|
function addStaff():boolean;
|
|||
|
|
public
|
|||
|
|
fCurDept:string;
|
|||
|
|
fCurGroupId:string;
|
|||
|
|
fSelUsersName:string;
|
|||
|
|
fCurGroupName:string;
|
|||
|
|
end;
|
|||
|
|
|
|||
|
|
var
|
|||
|
|
frmStaffSelList: TfrmStaffSelList;
|
|||
|
|
|
|||
|
|
implementation
|
|||
|
|
uses
|
|||
|
|
spmain,U_iniParam;
|
|||
|
|
{$R *.dfm}
|
|||
|
|
|
|||
|
|
procedure TfrmStaffSelList.dxTileBar1dxTileBarItem2Click(
|
|||
|
|
Sender: TdxTileControlItem);
|
|||
|
|
begin
|
|||
|
|
close;
|
|||
|
|
end;
|
|||
|
|
|
|||
|
|
procedure TfrmStaffSelList.dxTileBarItem1Click(Sender: TdxTileControlItem);
|
|||
|
|
begin
|
|||
|
|
if fcurItem=nil then
|
|||
|
|
begin
|
|||
|
|
application.MessageBox('<27><><EFBFBD><EFBFBD>ѡ<EFBFBD><D1A1><EFBFBD><EFBFBD>Ա<EFBFBD><D4B1>','<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϣ',0) ;
|
|||
|
|
exit;
|
|||
|
|
end;
|
|||
|
|
// if fCurGroupId='' then
|
|||
|
|
// begin
|
|||
|
|
// application.MessageBox('<27><><EFBFBD><EFBFBD>id<69><64><EFBFBD><EFBFBD>Ϊ<EFBFBD>գ<EFBFBD>','<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϣ',0) ;
|
|||
|
|
// exit;
|
|||
|
|
// end;
|
|||
|
|
|
|||
|
|
if addStaff() then
|
|||
|
|
begin
|
|||
|
|
modalresult:=1;;
|
|||
|
|
end;
|
|||
|
|
end;
|
|||
|
|
|
|||
|
|
procedure TfrmStaffSelList.FormClose(Sender: TObject; var Action: TCloseAction);
|
|||
|
|
begin
|
|||
|
|
action:=cafree;
|
|||
|
|
end;
|
|||
|
|
|
|||
|
|
procedure TfrmStaffSelList.FormCreate(Sender: TObject);
|
|||
|
|
begin
|
|||
|
|
dxTileControl1.Align:=alClient;
|
|||
|
|
|
|||
|
|
|
|||
|
|
end;
|
|||
|
|
|
|||
|
|
procedure TfrmStaffSelList.FormDestroy(Sender: TObject);
|
|||
|
|
begin
|
|||
|
|
frmStaffSelList:=nil;
|
|||
|
|
end;
|
|||
|
|
|
|||
|
|
procedure TfrmStaffSelList.FormShow(Sender: TObject);
|
|||
|
|
var
|
|||
|
|
item:TdxTileBarItem;
|
|||
|
|
begin
|
|||
|
|
createGroup();
|
|||
|
|
// with ADOQueryTmp do
|
|||
|
|
// begin
|
|||
|
|
// close;
|
|||
|
|
// sql.Clear;
|
|||
|
|
// sql.Add('select distinct mctype as groupName from Bs_Machine');
|
|||
|
|
// sql.Add('where isnull(mctype,'''')<>'''' ');
|
|||
|
|
// open;
|
|||
|
|
//
|
|||
|
|
// first;
|
|||
|
|
// while not eof do
|
|||
|
|
// begin
|
|||
|
|
// item:=dxTileBar2.CreateItem(tbisRegular,dxTileControlGroup4) ;
|
|||
|
|
//
|
|||
|
|
// item.Text2.Value:=trim(fieldByName('groupName').AsString);
|
|||
|
|
//
|
|||
|
|
// next;
|
|||
|
|
// end;
|
|||
|
|
// end;
|
|||
|
|
end;
|
|||
|
|
procedure TfrmStaffSelList.createGroup();
|
|||
|
|
var
|
|||
|
|
group:TdxTileControlGroup;
|
|||
|
|
mCaption:string;
|
|||
|
|
i:integer;
|
|||
|
|
begin
|
|||
|
|
dxTileControl1.Groups.Clear;
|
|||
|
|
with ADOQueryTmp do
|
|||
|
|
begin
|
|||
|
|
close;
|
|||
|
|
filtered:=false;
|
|||
|
|
sql.clear;
|
|||
|
|
sql.Add('select distinct a.dept as groupName');
|
|||
|
|
sql.Add('from SY_Employee a');
|
|||
|
|
//if fCurDept<>'' then
|
|||
|
|
// sql.Add('where a.dept='+quotedstr(fCurDept));
|
|||
|
|
// sql.Add('order by a.orderNo,a.mcName');
|
|||
|
|
open;
|
|||
|
|
end;
|
|||
|
|
ADOQueryTmp.first;
|
|||
|
|
i:=0;
|
|||
|
|
while not ADOQueryTmp.eof do
|
|||
|
|
begin
|
|||
|
|
mCaption:=trim( ADOQueryTmp.fieldByname('groupName').asstring);
|
|||
|
|
group:=dxTileControl1.Groups.Add;
|
|||
|
|
group.Caption.Font.Name:='<><CEA2><EFBFBD>ź<EFBFBD>';
|
|||
|
|
group.Caption.Font.Size:=12;
|
|||
|
|
group.Caption.Font.Color:=clWhite;
|
|||
|
|
group.Caption.Text:=mCaption;
|
|||
|
|
group.Caption.Font.Style:= [fsBold] ;
|
|||
|
|
group.Tag:=i;
|
|||
|
|
createGroupItem(group,mCaption);
|
|||
|
|
inc(i);
|
|||
|
|
ADOQueryTmp.Next;
|
|||
|
|
end;
|
|||
|
|
end;
|
|||
|
|
|
|||
|
|
///////////////////////////////////////////////
|
|||
|
|
/////////////////////////////////////////////////////
|
|||
|
|
///
|
|||
|
|
procedure TfrmStaffSelList.createGroupItem(group:TdxTileControlGroup;groupName:String);
|
|||
|
|
var
|
|||
|
|
item:TdxTileControlItem;
|
|||
|
|
i:integer;
|
|||
|
|
Stream:TMemoryStream ;
|
|||
|
|
begin
|
|||
|
|
Stream := TMemoryStream.Create;
|
|||
|
|
try
|
|||
|
|
with ADOQueryStaff do
|
|||
|
|
begin
|
|||
|
|
close;
|
|||
|
|
sql.Clear;
|
|||
|
|
sql.Add('select a.*');
|
|||
|
|
sql.Add('from SY_Employee a');
|
|||
|
|
sql.Add('where a.dept='''+groupName+'''');
|
|||
|
|
// sql.Add(' and not exists (SELECT x.user_id FROM bs_group_staff x where x.user_id=a.eeCode and group_id='+quotedstr(fCurGroupId)+')');
|
|||
|
|
// sql.Add('order by a.mcno,a.mcName');
|
|||
|
|
open;
|
|||
|
|
if recordcount=0 then
|
|||
|
|
begin
|
|||
|
|
group.Visible:=false;
|
|||
|
|
exit;
|
|||
|
|
end;
|
|||
|
|
end;
|
|||
|
|
//
|
|||
|
|
ADOQueryStaff.First;
|
|||
|
|
i:=1;
|
|||
|
|
while not ADOQueryStaff.eof do
|
|||
|
|
begin
|
|||
|
|
item:= dxTileControl1.CreateItem(tcisRegular,group); // tcisSmall tcisRegular
|
|||
|
|
item.OnClick:=dxTileControl1Item1Click;
|
|||
|
|
item.Style.GradientBeginColor:=$20998200;
|
|||
|
|
//item.Glyph.ImageIndex:=13;
|
|||
|
|
|
|||
|
|
// if not ADOQueryStaff.FieldByName('pic').IsNull then
|
|||
|
|
// begin
|
|||
|
|
// TBlobField(ADOQueryStaff.FieldByName('pic')).SaveToStream(Stream) ;
|
|||
|
|
// Stream.Position:=0;
|
|||
|
|
// item.Glyph.Image.LoadFromStream(Stream) ;
|
|||
|
|
// end;
|
|||
|
|
|
|||
|
|
|
|||
|
|
item.Text1.Value:=trim(ADOQueryStaff.FieldByName('EEName').AsString);
|
|||
|
|
item.Text1.Font.Style:=[fsBold];
|
|||
|
|
item.Text1.Font.Name:='<><CEA2><EFBFBD>ź<EFBFBD>';
|
|||
|
|
item.Text1.Font.Size:=12;
|
|||
|
|
item.Text2.Value:=trim(ADOQueryStaff.FieldByName('EECode').AsString);
|
|||
|
|
item.Text3.Value:=trim(ADOQueryStaff.FieldByName('sex').AsString);
|
|||
|
|
item.Text2.Font.Color:= $20998200;
|
|||
|
|
// item.Text3.Font.Color:= $20998200;
|
|||
|
|
item.Text4.Value:= trim(ADOQueryStaff.FieldByName('post').AsString);
|
|||
|
|
|
|||
|
|
inc(i);
|
|||
|
|
ADOQueryStaff.Next;
|
|||
|
|
end;
|
|||
|
|
finally
|
|||
|
|
Stream.Free;
|
|||
|
|
end;
|
|||
|
|
end;
|
|||
|
|
|
|||
|
|
|
|||
|
|
procedure TfrmStaffSelList.dxTileControl1Item1Click(Sender: TdxTileControlItem);
|
|||
|
|
begin
|
|||
|
|
fcurUserId:=sender.Text2.Value;
|
|||
|
|
fcurItem:= Sender ;
|
|||
|
|
Sender.Checked:=not sender.Checked;
|
|||
|
|
end;
|
|||
|
|
|
|||
|
|
//////////////////////////////////////////////
|
|||
|
|
function TfrmStaffSelList.addStaff():boolean;
|
|||
|
|
var
|
|||
|
|
i:integer;
|
|||
|
|
begin
|
|||
|
|
try
|
|||
|
|
result:=false;
|
|||
|
|
fSelUsersName:='';
|
|||
|
|
for i := 0 to dxTileControl1.Items.Count-1 do
|
|||
|
|
begin
|
|||
|
|
if dxTileControl1.Items[i].Checked then
|
|||
|
|
begin
|
|||
|
|
if fSelUsersName='' then
|
|||
|
|
begin
|
|||
|
|
fSelUsersName:= dxTileControl1.Items[i].Text1.Value;
|
|||
|
|
end
|
|||
|
|
else
|
|||
|
|
begin
|
|||
|
|
fSelUsersName:=fSelUsersName+','+ dxTileControl1.Items[i].Text1.Value;
|
|||
|
|
end;
|
|||
|
|
end;
|
|||
|
|
end;
|
|||
|
|
|
|||
|
|
result:=true;
|
|||
|
|
except
|
|||
|
|
|
|||
|
|
|
|||
|
|
end;
|
|||
|
|
end;
|
|||
|
|
|
|||
|
|
|
|||
|
|
|
|||
|
|
end.
|