📄 umain.pas
字号:
if dxBarButton22.Down then
dxStatusBar1.Visible := True
else
dxStatusBar1.Visible := false;
end;
procedure TfrmMain.dxBarButton26Click(Sender: TObject);
begin
if dxBarButton26.Down then
dxBarManager1.Bars.Items[1].Visible := True
else
dxBarManager1.Bars.Items[1].Visible := false;
end;
procedure TfrmMain.LoadUserGrp;
var
Node, ParNode: TTreeNode;
NodData: PUserGrpData;
begin
with cds_Grp do
begin
if Active then
Active := false;
XMLData := DM.FreeQuery('select * from T_003 order by V04,V03,V01');
Active := true;
first;
while not eof do
begin
ParNode := GetGrpNode(trim(cds_Grp.fieldbyname('V03').AsString));
Node := TV_Grp.Items.AddChild(ParNode,
trim(cds_Grp.fieldbyname('V02').AsString));
Node.ImageIndex := 4;
Node.SelectedIndex := 3;
new(NodData);
NodData^.GrpId := trim(cds_Grp.fieldbyname('V01').AsString);
NodData^.GrpName := trim(cds_Grp.fieldbyname('V02').AsString);
NodData^.GrpMemo := trim(cds_Grp.fieldbyname('V05').AsString);
NodData^.Nod := Node;
Node.Data := NodData;
next;
end;
end;
end;
function TfrmMain.GetGrpNode(const Id: string): TTreeNode;
var
i: integer;
begin
result := nil;
for i := 0 to TV_Grp.Items.Count - 1 do
begin
if PUserGrpData(TV_Grp.Items[i].Data)^.GrpId = Id then
begin
result := TV_Grp.Items[i];
break;
end;
end;
end;
procedure TfrmMain.TV_GrpMouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
var
TempStr: string;
procedure GetCaption(Node: TTreeNode);
begin
if trim(TempStr) = '' then
TempStr := Node.Text
else
TempStr := Node.Text + '>>' + TempStr;
if Node.Parent <> nil then
GetCaption(Node.Parent);
end;
begin
TV_Grp.Selected := TV_Grp.GetNodeAt(X, Y);
if TV_Grp.Selected <> nil then
begin
TempStr := '';
GetCaption(TV_Grp.Selected);
Labl_Title.Caption := TempStr;
UserListSql := 'select * from V_0011 where V31 in (' +
GetGrpCodeStr(TV_Grp.Selected) + ') order by V01';
LoadUserList(UserListSql);
end;
end;
procedure TfrmMain.DelGrpExecute(Sender: TObject);
var
ListItem: TListItem;
procedure DelGrpNod(Node: TTreeNode);
begin
while Node.HasChildren do
DelGrpNod(Node.Item[0]);
DM.UserGrpDel(PUserGrpData(Node.Data)^.GrpId);
dispose(Node.Data);
Node.Delete;
end;
begin
if ActiveCtrl = 'UserGrp' then
begin
if TV_Grp.Selected = nil then
exit;
DelGrpNod(TV_Grp.Selected);
end
else if ActiveCtrl = 'UserList' then
begin
ListItem := LV_UserList.Selected;
if ListItem <> nil then
begin
UserId := PLVData(ListItem.Data)^.UserId;
if not PLVData(ListItem.Data)^.IfImp then
begin
if TPublicFunc.ShowQuestionMsg('您确实要删除此用户吗?') = IDYes then
begin
if DM.UserDel(UserId) = 0 then
begin
Dispose(ListItem.Data);
ListItem.Delete;
end;
end;
end
else
TPublicFunc.ShowWarningMsg('重要用户不能任意删除,请确定!');
end;
end;
end;
procedure TfrmMain.LoadUserList;
begin
LoadListViewData(LV_UserList, UserListSql);
end;
procedure TfrmMain.OpenSubSysExecute(Sender: TObject);
begin
frmSubSystem := TfrmSubSystem.Create(nil);
frmSubSystem.ShowModal;
frmSubSystem.Free;
end;
procedure TfrmMain.dxBarButton49Click(Sender: TObject);
begin
frmRightGrp := TfrmRightGrp.Create(nil);
frmRightGrp.ShowModal;
frmRightGrp.Free;
end;
procedure TfrmMain.SetImpExecute(Sender: TObject);
var
ListItem: TListItem;
begin
ListItem := LV_UserList.Selected;
if ListItem <> nil then
begin
UserId := PLVData(ListItem.Data)^.UserId;
cSqlStr := 'update T_001 set V15=1 where V01=' + Quotedstr(UserId);
if DM.ExecuteSqlCmd(cSqlStr) = 0 then
begin
PLVData(ListItem.Data)^.IfImp := true;
ListItem.SubItems[0] := '!';
end;
end;
end;
procedure TfrmMain.SetUnImpExecute(Sender: TObject);
var
ListItem: TListItem;
begin
ListItem := LV_UserList.Selected;
if ListItem <> nil then
begin
UserId := PLVData(ListItem.Data)^.UserId;
cSqlStr := 'update T_001 set V15=0 where V01=' + Quotedstr(UserId);
if DM.ExecuteSqlCmd(cSqlStr) = 0 then
begin
PLVData(ListItem.Data)^.IfImp := false;
ListItem.SubItems[0] := ' ';
end;
end;
end;
procedure TfrmMain.LoadUserList(const cSql: string);
begin
LoadListViewData(LV_UserList, cSql);
end;
procedure TfrmMain.SpeedButton5Click(Sender: TObject);
begin
if TV_Grp.Selected <> nil then
UserListSql := 'select * from V_0011 where (V02 like ' +
QuotedStr('%' + trim(edt_Search.Text) + '%') + ' or V03 like ' +
QuotedStr('%' + trim(edt_Search.Text) + '%') + ') and V31 in (' +
GetGrpCodeStr(TV_Grp.Selected) + ') '
else
UserListSql := 'select * from V_001 where V02 like ' +
QuotedStr('%' + trim(edt_Search.Text) + '%') + ' or V03 like ' +
QuotedStr('%' + trim(edt_Search.Text) + '%');
LoadUserList(UserListSql);
end;
procedure TfrmMain.LoadSubSys;
var
Node: TTreeNode;
NodData: PSubSysData;
begin
with cds_SubSys do
begin
if Active then
Active := false;
XMLData := DM.FreeQuery('select * from T_005 order by V01');
Active := true;
first;
while not eof do
begin
Node := TV_SubSys.Items.AddChild(nil,
trim(fieldbyname('V02').AsString));
Node.ImageIndex := 4;
Node.SelectedIndex := 3;
new(NodData);
NodData^.SubId := trim(fieldbyname('V01').AsString);
NodData^.SubName := trim(fieldbyname('V02').AsString);
NodData^.SubVer := trim(fieldbyname('V03').AsString);
NodData^.SubMemo := trim(fieldbyname('V04').AsString);
NodData^.Nod := Node;
Node.Data := NodData;
next;
end;
end;
end;
procedure TfrmMain.TV_SubSysMouseDown(Sender: TObject;
Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
var
TmpStr: string;
begin
TmpStr := '';
TV_SubSys.Selected := TV_SubSys.GetNodeAt(X, Y);
if TV_SubSys.Selected <> nil then
begin
LoadListViewData(LV_UserList, 'Q_SysUser ' +
QuotedStr(PSubSysData(TV_SubSys.Selected.Data)^.SubId));
end;
end;
function TfrmMain.GetGrpCodeStr(Node: TTreeNode): string;
var
TempStr: string;
procedure GetChild(Nod: TTreeNode);
var
i: smallint;
begin
if not Nod.HasChildren then
TempStr := TempStr + ',' + QuotedStr(PUserGrpData(Nod.Data)^.GrpId)
else
begin
TempStr := TempStr + ',' + QuotedStr(PUserGrpData(Nod.Data)^.GrpId);
for i := 0 to Nod.Count - 1 do
GetChild(Nod.Item[i]);
end;
end;
begin
TempStr := '''''';
GetChild(Node);
result := TempStr;
end;
procedure TfrmMain.FreeLVData(LV: TRzListView);
var
i: smallint;
begin
for i := 0 to LV.Items.Count - 1 do
begin
if LV.Items.Item[i].Data <> nil then
begin
Dispose(LV.Items.Item[i].Data);
LV.Items.Item[i].Data := nil;
end;
end;
LV.Items.Clear;
end;
procedure TfrmMain.LoadListViewData(LV: TRzListView; const cSql: string);
var
ListItem: TListItem;
LVDataPtr: PLVData;
begin
FreeLVData(LV);
LV.Items.Clear;
if cds_UserList.Active then
cds_UserList.Active := false;
cds_UserList.XMLData := DM.FreeQuery(cSql);
cds_UserList.Active := true;
cds_UserList.First;
while not cds_UserList.Eof do
begin
ListItem := LV.Items.Add;
ListItem.Caption := trim(cds_UserList.FieldByName('V37').AsString);
ListItem.SubItems.Add(trim(cds_UserList.FieldByName('V38').AsString));
ListItem.SubItems.Add(trim(cds_UserList.FieldByName('V02').AsString));
ListItem.SubItems.Add(trim(cds_UserList.FieldByName('V03').AsString));
ListItem.SubItems.Add(trim(cds_UserList.FieldByName('V05').AsString));
ListItem.SubItems.Add(trim(cds_UserList.FieldByName('V06').AsString));
ListItem.SubItems.Add(trim(cds_UserList.FieldByName('V32').AsString));
ListItem.SubItems.Add(trim(cds_UserList.FieldByName('V35').AsString));
ListItem.SubItems.Add(trim(cds_UserList.FieldByName('V11').AsString));
new(LVDataPtr);
LVDataPtr^.UserId := trim(cds_UserList.FieldByName('V01').AsString);
LVDataPtr^.UserGrpId := trim(cds_UserList.FieldByName('V31').AsString);
LVDataPtr^.UserGrpName := trim(cds_UserList.FieldByName('V32').AsString);
if cds_UserList.FieldByName('V15').AsInteger = 1 then
LVDataPtr^.IfImp := true
else
LVDataPtr^.IfImp := false;
if cds_UserList.FieldByName('V14').AsInteger = 1 then
LVDataPtr^.IfManager := true
else
LVDataPtr^.IfManager := false;
ListItem.Data := LVDataPtr;
cds_UserList.Next;
end;
end;
procedure TfrmMain.FormCloseQuery(Sender: TObject; var CanClose: Boolean);
begin
FreeLVData(LV_UserList);
end;
procedure TfrmMain.LV_UserListEnter(Sender: TObject);
begin
ActiveCtrl := 'UserList';
end;
procedure TfrmMain.MoveToGrpExecute(Sender: TObject);
var
ListItem: TListItem;
begin
ListItem := LV_UserList.Selected;
if ListItem <> nil then
begin
UserId := PLVData(ListItem.Data)^.UserId;
frmMoveToGrp := TfrmMoveToGrp.Create(nil);
frmMoveToGrp.UserId := UserId;
if frmMoveToGrp.ShowModal = mrOK then
ListItem.SubItems[5] := frmMoveToGrp.GrpName;
frmMoveToGrp.Free;
end;
end;
procedure TfrmMain.ChgPwdExecute(Sender: TObject);
var
ListItem: TListItem;
begin
ListItem := LV_UserList.Selected;
if ListItem <> nil then
begin
UserId := PLVData(ListItem.Data)^.UserId;
frmChangePwd := TfrmChangePwd.Create(nil);
frmChangePwd.UserId := UserId;
frmChangePwd.lab_Name.Caption := ListItem.SubItems[2];
frmChangePwd.lab_LoginName.Caption := ListItem.SubItems[1];
frmChangePwd.ShowModal;
frmChangePwd.Free;
end;
end;
procedure TfrmMain.LookUpExecute(Sender: TObject);
begin
frmSearch := TfrmSearch.Create(nil);
frmSearch.ShowModal;
frmSearch.Free;
end;
procedure TfrmMain.UserLogExecute(Sender: TObject);
begin
frmUserLog := TfrmUserLog.Create(nil);
frmUserLog.ShowModal;
frmUserLog.Free;
end;
procedure TfrmMain.ActPrintExecute(Sender: TObject);
var
ListItem: TListItem;
CardId: string;
begin
ListItem := LV_UserList.Selected;
if ListItem <> nil then
begin
UserId := PLVData(ListItem.Data)^.UserId;
if cds_Card.Active then
cds_Card.Active := false;
//cds_Card.XMLData:= DM.FreeQuery('Q_Card ' + Quotedstr(''));
cds_Card.XMLData :=
DM.FreeQuery('select V01 from T_009 where V07=1 and V05= ' +
Quotedstr(UserId));
cds_Card.Active := true;
if cds_Card.RecordCount > 0 then
begin
CardId := trim(cds_Card.fieldbyname('V01').AsString);
cds_Card.Active := false;
cds_Card.XMLData := DM.FreeQuery('Q_Card ' + Quotedstr(CardId));
cds_Card.Active := true;
frmCustomReport := TfrmCustomReport.Create(nil);
frmCustomReport.AddDataSetX('Card', cds_Card.XMLData, '', -1, '');
frmCustomReport.ReportFileName := '口令卡打印报表.rmf';
frmCustomReport.ShowModal;
frmCustomReport.Free;
end;
end;
end;
procedure TfrmMain.dxBarButton48Click(Sender: TObject);
const
PARAMFORMAT = '"%s" "%s"';
var
par: string;
begin
par := Format(PARAMFORMAT, ['192.168.1.1', AppFilePath]);
ShellExecute(0, nil, PChar('Card.exe'), PChar(par), nil, sw_shownormal);
end;
procedure TfrmMain.FormShow(Sender: TObject);
begin
ActiveCtrl := 'UserGrp';
self.ActiveControl := TV_Grp;
LoadUserGrp;
LoadSubSys;
UserListSql := 'select * from V_001 order by V01';
LoadUserList;
end;
procedure TfrmMain.FormCreate(Sender: TObject);
begin
AppFilePath:= ExtractFilePath(Application.ExeName);
end;
procedure TfrmMain.ActClearCookieExecute(Sender: TObject);
begin
if ClearCookies then
TPublicFunc.ShowInfoMsg('Cookie已清除!')
else
TPublicFunc.ShowErrorMsg('Cookie清除失败!');
end;
procedure TfrmMain.ActOpenExecute(Sender: TObject);
begin
if TV_Grp.Selected = nil then
exit;
UserListSql := 'select * from V_0011 where V31 in (' +
GetGrpCodeStr(TV_Grp.Selected) + ') order by V01';
LoadUserList(UserListSql);
TV_Grp.Selected.Expand(true);
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -