D10DJkaimengwenshang/项目代码/wenshangkm/机台检验主程序可配置20201/机台检验主程序可配置2020/U_staffSeList.pas
DESKTOP-E401PHE\Administrator 74d01e92e1 ~
2025-09-27 14:24:10 +08:00

288 lines
7.6 KiB
ObjectPascal
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

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.