📄 uglobal.pas
字号:
unit uGlobal;
interface
uses
Forms, Controls, SysUtils, Graphics, Buttons, ComCtrls, ADODB, uMyApp, uLog;
const
{$IFDEF TRAIL}
AppCaption = '员工档案管理系统';
{$ELSE}
AppCaption = '员工档案管理系统';
{$ENDIF}
ViewColor = clMoneyGreen;
type
TFormClass = class of TForm;
PNodeData = ^TNodeData;
TNodeData = packed record
Id: Integer;
No, En: string;
end;
var
MyApp: TMyApp;
Log: TLog;
{模式显示指定窗口}
procedure ShowFormModal(AOwner: TWinControl; AFormClass: TFormClass);
{加载员工信息入树}
procedure AddStaffs(ATreeView: TTreeView; AParNode: TTreeNode; ADeptID, AQrySql: string);
{取英语首字母}
function GetEnStr(const CnString: string): string;
{过滤数据集}
procedure FilterData(ADataSet: TADOQuery; AFilter: string);
implementation
uses uData;
procedure ShowFormModal(AOwner: TWinControl; AFormClass: TFormClass);
var
Form: TForm;
begin
Form := AFormClass.Create(AOwner);
Form.ShowModal;
FreeAndNil(Form);
end;
function GetEnStr(const CnString: string): string;
const
ChinaCode: array[0..25, 0..1] of Integer = ((1601, 1636), (1637, 1832), (1833, 2077),
(2078, 2273), (2274, 2301), (2302, 2432), (2433, 2593), (2594, 2786), (9999, 0000),
(2787, 3105), (3106, 3211), (3212, 3471), (3472, 3634), (3635, 3722), (3723, 3729),
(3730, 3857), (3858, 4026), (4027, 4085), (4086, 4389), (4390, 4557), (9999, 0000),
(9999, 0000), (4558, 4683), (4684, 4924), (4925, 5248), (5249, 5589));
var
i, j, HzOrd: integer;
begin
i := 1;
while i <= Length(CnString) do
begin
if (CnString[i] >= #160) and (CnString[i + 1] >= #160) then
begin
HzOrd := (Ord(CnString[i]) - 160) * 100 + Ord(CnString[i + 1]) - 160;
for j := 0 to 25 do
begin
if (HzOrd >= ChinaCode[j][0]) and (HzOrd <= ChinaCode[j][1]) then
begin
Result := Result + char(byte('a') + j);
break;
end;
end;
Inc(i);
end else Result := Result + CnString[i];
Inc(i);
end;
end;
procedure AddStaffs(ATreeView: TTreeView; AParNode: TTreeNode; ADeptID, AQrySql: string);
var
aqSta: TADOQuery;
Sid: PNodeData;
tnStaff: TTreeNode;
begin
aqSta := TADOQuery.Create(nil);
try
DM.OpenQuery(aqSta, AQrySql);
aqSta.Filtered := False;
aqSta.Filter := 'depid=' + ADeptID;
aqSta.Filtered := True;
if aqSta.RecordCount = 0 then Exit;
aqSta.First;
while not aqSta.Eof do
begin
New(Sid);
Sid^.Id := StrToInt(aqSta.FieldByName('id').AsString);
Sid^.No := aqSta.FieldByName('stano').AsString;
Sid^.En := aqSta.FieldByName('ename').AsString;
tnStaff := ATreeView.Items.AddChildObject(AParNode, aqSta.FieldByName('sname').AsString, Sid);
tnStaff.ImageIndex := 2;
aqSta.Next;
end;
finally
aqSta.Free;
end;
end;
procedure FilterData(ADataSet: TADOQuery; AFilter: string);
begin
with ADataSet do
begin
Filtered := False;
Filter := AFilter;
Filtered := True;
end;
end;
initialization
MyApp := TMyApp.Create;
Log := TLog.Create;
finalization
MyApp.Free;
Log.Free;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -