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.
|