unit EmpMst; interface uses Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, wItem, FireDAC.Stan.Intf, FireDAC.Stan.Option, FireDAC.Stan.Error, FireDAC.UI.Intf, FireDAC.Phys.Intf, FireDAC.Stan.Def, FireDAC.Stan.Pool, FireDAC.Stan.Async, FireDAC.Phys, FireDAC.Stan.Param, FireDAC.DatS, FireDAC.DApt.Intf, FireDAC.DApt, FireDAC.Phys.PGDef, FireDAC.VCLUI.Wait, FireDAC.Comp.UI, FireDAC.Phys.PG, Data.DB, FireDAC.Comp.DataSet, FireDAC.Comp.Client; type TEmpMst = class(TwItem) private { Private declarations } FOrdCode: string; FPosition: string; FRole: string; FInDate: string; FOutDate: string; FStatus: string; FEmpTelNum: string; FEmpAddress: string; FDescriptions: string; FEmpID: string; FEmpPwd: string; FEngCode: string; FEmgTelNum: string; FRelationship: string; FTeamName: string; FPermissions: string; protected { Protected declarations } public { Public declarations } class function LoadFromQuery(AQuery: TFDQuery): TList; class function xGetStrSqlEmpMstList(AQuery: TFDQuery; status, team, empName: string): TList; class function xAddSqlMark(velStr: string): string; class function xGetStrsEmpMstAllNames(AQuery: TFDQuery; column: string): TStrings; class function LoadFromStringsQuery(AQuery: TFDQuery; column: string): TStrings; class function xAddSqlDoubleMark(velStr: String): String; published { Published declarations } property OrdCode: string read FOrdCode write FOrdCode; property Position: string read FPosition write FPosition; property Role: string read FRole write FRole; property InDate: string read FInDate write FInDate; property OutDate: string read FOutDate write FOutDate; property Status: string read FStatus write FStatus; property EmpTelNum: string read FEmpTelNum write FEmpTelNum; property EmpAddress: string read FEmpAddress write FEmpAddress; property Descriptions: string read FDescriptions write FDescriptions; property EmpID: string read FEmpID write FEmpID; property EmpPwd: string read FEmpPwd write FEmpPwd; property EngCode: string read FEngCode write FEngCode; property EmgTelNum: string read FEmgTelNum write FEmgTelNum; property Relationship: string read FRelationship write FRelationship; property TeamName: string read FTeamName write FTeamName; property Permissions: string read FPermissions write FPermissions; end; implementation { TEmpMst } class function TEmpMst.LoadFromQuery(AQuery: TFDQuery): TList; var curEmp: TEmpMst; begin Result := TList.Create; while not AQuery.Eof do begin curEmp := TEmpMst.Create(nil); curEmp.OBID := AQuery.FieldByName('OBID').AsString; curEmp.Name := AQuery.FieldByName('Name').AsString; curEmp.wClassName := AQuery.FieldByName('wClassName').AsString; curEmp.CreateDate := AQuery.FieldByName('CreateDate').AsString; curEmp.CreateTime := FormatDateTime('hh:nn:ss', AQuery.FieldByName('CreateTime').AsDateTime); curEmp.CreatorID := AQuery.FieldByName('CreatorID').AsString; curEmp.IsValid := AQuery.FieldByName('IsValid').AsString; curEmp.LcStatus := AQuery.FieldByName('LcStatus').AsString; curEmp.OrdCode := AQuery.FieldByName('OrdCode').AsString; curEmp.Position := AQuery.FieldByName('Position').AsString; curEmp.Role := AQuery.FieldByName('Role').AsString; curEmp.InDate := AQuery.FieldByName('InDate').AsString; curEmp.OutDate := AQuery.FieldByName('OutDate').AsString; curEmp.Status := AQuery.FieldByName('Status').AsString; curEmp.EmpTelNum := AQuery.FieldByName('EmpTelNum').AsString; curEmp.EmpAddress := AQuery.FieldByName('EmpAddress').AsString; curEmp.Descriptions := AQuery.FieldByName('Descriptions').AsString; curEmp.EmpID := AQuery.FieldByName('EmpID').AsString; curEmp.EmpPwd := AQuery.FieldByName('EmpPwd').AsString; curEmp.EngCode := AQuery.FieldByName('EngCode').AsString; curEmp.EmgTelNum := AQuery.FieldByName('EmgTelNum').AsString; curEmp.Relationship := AQuery.FieldByName('Relationship').AsString; curEmp.Permissions := AQuery.FieldByName('Permissions').AsString; Result.Add(curEmp); AQuery.Next; end; end; class function TEmpMst.LoadFromStringsQuery(AQuery: TFDQuery; column: string): TStrings; var valStr: string; begin Result := TStringList.Create; while not AQuery.Eof do begin valStr := AQuery.FieldByName(column).AsString; Result.Add(valStr); AQuery.Next; end; end; class function TEmpMst.xAddSqlDoubleMark(velStr: String): String; begin Result := ''; Result := '"' + velStr + '"'; end; class function TEmpMst.xAddSqlMark(velStr: string): string; begin Result := ''; Result := '''' + velStr + ''''; end; class function TEmpMst.xGetStrsEmpMstAllNames(AQuery: TFDQuery; column: string): TStrings; var sql: string; begin Result := nil; sql := 'SELECT ' + xAddSqlDoubleMark(column) + ' FROM "EmpMst"'; sql := sql + ' WHERE "IsValid"=' + xAddSqlMark('t'); try AQuery.Close; AQuery.SQL.Text := sql; AQuery.Open; except on E: Exception do ShowMessage('xGetStrsEmpMstAllNames Äõ¸® ½ÇÇà ¿À·ù: ' + E.Message); end; Result := LoadFromStringsQuery(AQuery, column); end; class function TEmpMst.xGetStrSqlEmpMstList(AQuery: TFDQuery; status, team, empName: string): TList; var sql: string; begin Result := nil; sql := 'SELECT * FROM "EmpMst"'; sql := sql + ' WHERE "IsValid"=' + xAddSqlMark('t'); if Length(Trim(team)) > 0 then sql := sql + ' AND "TeamName"=' + xAddSqlMark(team); if Length(Trim(empName)) > 0 then sql := sql + ' AND "Name"=' + xAddSqlMark(empName); if Length(Trim(status)) > 0 then sql := sql + ' AND "Status"=' + xAddSqlMark(status); try AQuery.Close; AQuery.SQL.Text := sql; AQuery.Open; except on E: Exception do ShowMessage('xGetStrSqlEmpMstList Äõ¸® ½ÇÇà ¿À·ù: ' + E.Message); end; Result := LoadFromQuery(AQuery); end; end.