SmartFactory_NEOL/SOURCE/Agent,Kiosk/NEOL-KIOSK/NeolTestMain.pas
2026-09-04 14:08:41 +09:00

302 lines
9.4 KiB
ObjectPascal
Raw Blame History

unit NeolTestMain;
interface
uses
Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics,
Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.StdCtrls, Vcl.Buttons, Vcl.Grids,
Vcl.ExtCtrls, 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.VCLUI.Wait, FireDAC.Stan.Param,
FireDAC.DatS, FireDAC.DApt.Intf, FireDAC.DApt, Data.DB, FireDAC.Comp.DataSet,
FireDAC.Comp.Client, FireDAC.Phys.PGDef, FireDAC.Phys.PG, FireDAC.Comp.UI, System.Math,
RegisterClasses_base, wItem, EmpMst;
type
TfrmNeolTestMain = class(TForm)
LabeledEdit1: TLabeledEdit;
LabeledEdit4: TLabeledEdit;
StringGrid1: TStringGrid;
Memo1: TMemo;
BitBtn1: TBitBtn;
LabeledEdit5: TLabeledEdit;
BitBtn2: TBitBtn;
BitBtn3: TBitBtn;
FDConnection1: TFDConnection;
FDQuery1: TFDQuery;
FDGUIxWaitCursor1: TFDGUIxWaitCursor;
FDPhysPgDriverLink1: TFDPhysPgDriverLink;
LabeledEdit3: TLabeledEdit;
LabeledEdit2: TLabeledEdit;
SpeedButton1: TSpeedButton;
Memo2: TMemo;
procedure BitBtn3Click(Sender: TObject);
procedure FormCreate(Sender: TObject);
procedure BitBtn1Click(Sender: TObject);
procedure BitBtn2Click(Sender: TObject);
procedure SpeedButton1Click(Sender: TObject);
procedure FormShow(Sender: TObject);
procedure SpeedButton2Click(Sender: TObject);
procedure StringGrid1DblClick(Sender: TObject);
procedure FormDestroy(Sender: TObject);
private
{ Private declarations }
FobjEmp: TEmpMst;
FqryList: TList;
function xGetObjEmpInfo: TList;
procedure xShowInfo(tmpList: TList);
procedure xFreeAll(tmpList: TList);
public
{ Public declarations }
procedure xAutoResizeStringGridColumns(Grid: TStringGrid; Canvas: TCanvas);
function xAddSqlMark(velStr: String): String;
function xAddSqlDoubleMark(velStr: String): string;
end;
var
frmNeolTestMain: TfrmNeolTestMain;
implementation
uses
Editor;
{$R *.dfm}
procedure TfrmNeolTestMain.BitBtn1Click(Sender: TObject);
begin
FDPhysPgDriverLink1.VendorLib := '.\libpq-10.dll';
FDConnection1.Connected := False;
FDConnection1.Params.Clear;
FDConnection1.Params.DriverID := 'PG';
FDConnection1.Params.Database := Trim(LabeledEdit1.Text);
FDConnection1.Params.UserName := Trim(LabeledEdit2.Text);
FDConnection1.Params.Password := Trim(LabeledEdit3.Text);
FDConnection1.Params.Add('Server=' + Trim(LabeledEdit4.Text));
FDConnection1.Params.Add('Port=' + Trim(LabeledEdit5.Text));
FDConnection1.Params.Add('CharacterSet=UTF8');
try
FDConnection1.Connected := True;
Memo1.Lines.Add('<27><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>');
Memo1.Lines.Add('"Q1" <20><>ư<EFBFBD><C6B0> <20><><EFBFBD><EFBFBD> <20><> "<22><><EFBFBD><EFBFBD>" <20><>ư<EFBFBD><C6B0> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>!!');
except
on E: Exception do Memo1.Lines.Add('<27><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>: ' + E.Message);
end;
end;
procedure TfrmNeolTestMain.BitBtn2Click(Sender: TObject);
var
i: Integer;
tmpList: TList;
tmpItem: TwItem;
tmpEmp: TEmpMst;
begin
try
FDQuery1.Close;
FDQuery1.SQL.Text := Memo1.Lines.Text;
FDQuery1.Open;
except
on E: Exception do ShowMessage('<27><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>: ' + E.Message);
end;
if FqryList <> nil then xFreeAll(FqryList);
FqryList := xGetObjEmpInfo;
xShowInfo(FqryList);
xAutoResizeStringGridColumns(StringGrid1, Canvas);
end;
procedure TfrmNeolTestMain.BitBtn3Click(Sender: TObject);
begin
if FDConnection1.Connected then FDConnection1.Connected := False;
// Application.Terminate;
Close;
end;
procedure TfrmNeolTestMain.FormCreate(Sender: TObject);
begin
RegisterMyClasses_base;
FobjEmp := nil;
FqryList := nil;
end;
procedure TfrmNeolTestMain.FormDestroy(Sender: TObject);
begin
if FqryList <> nil then xFreeAll(FqryList);
end;
procedure TfrmNeolTestMain.FormShow(Sender: TObject);
var
tmpStrs: TStrings;
begin
Memo1.Lines.Clear;
Memo2.Lines.Clear;
tmpStrs := TStringList.Create;
tmpStrs.Add('OBID'); tmpStrs.Add('Name'); tmpStrs.Add('wClassName');
tmpStrs.Add('CreateDate'); tmpStrs.Add('CreateTime'); tmpStrs.Add('CreatorID');
tmpStrs.Add('IsValid'); tmpStrs.Add('OrdCode'); tmpStrs.Add('Position');
tmpStrs.Add('Role'); tmpStrs.Add('InDate'); tmpStrs.Add('OutDate');
tmpStrs.Add('Status'); tmpStrs.Add('EmpTelNum'); tmpStrs.Add('EmpAddress');
tmpStrs.Add('Descriptions');
StringGrid1.ColCount := tmpStrs.Count;
StringGrid1.Rows[0].AddStrings(tmpStrs);
tmpStrs.Free;
xAutoResizeStringGridColumns(StringGrid1, Canvas);
end;
procedure TfrmNeolTestMain.SpeedButton1Click(Sender: TObject);
begin
Memo1.Lines.Clear;
Memo1.Lines.Add('SELECT * FROM "EmpMst" WHERE "IsValid"=' + xAddSqlMark('t') + ';');
end;
procedure TfrmNeolTestMain.SpeedButton2Click(Sender: TObject);
begin
Memo1.Lines.Clear;
end;
procedure TfrmNeolTestMain.StringGrid1DblClick(Sender: TObject);
var
cidx, ridx: Integer;
curEmp: TEmpMst;
tmpForm: TfrmEditor;
begin
cidx := StringGrid1.Rows[0].IndexOf('OBID');
ridx := StringGrid1.Row;
if StringGrid1.Objects[cidx,ridx] = nil then Exit;
curEmp := TEmpMst(StringGrid1.Objects[cidx,ridx]);
tmpForm := TfrmEditor.Create(Self);
tmpForm.objEmp := curEmp;
if tmpForm.ShowModal = mrOk then begin
BitBtn2.OnClick(Sender);
end;
tmpForm.Free; tmpForm:=nil;
end;
function TfrmNeolTestMain.xAddSqlDoubleMark(velStr: String): string;
begin
Result := '';
Result := '"' + velStr + '"';
end;
function TfrmNeolTestMain.xAddSqlMark(velStr: String): String;
begin
Result := '';
Result := '''' + velStr + '''';
end;
procedure TfrmNeolTestMain.xAutoResizeStringGridColumns(Grid: TStringGrid;
Canvas: TCanvas);
var
Col, Row: Integer;
MaxWidth: Integer;
CellText: string;
begin
for Col := 0 to Grid.ColCount - 1 do begin
MaxWidth := 0;
for Row := 0 to Grid.RowCount - 1 do begin
CellText := Grid.Cells[Col, Row];
MaxWidth := Max(MaxWidth, Canvas.TextWidth(CellText));
end;
Grid.ColWidths[Col] := MaxWidth + 10;
end;
end;
procedure TfrmNeolTestMain.xFreeAll(tmpList: TList);
var
i: Integer;
tmpEmp: TEmpMst;
begin
i := 0;
while i < tmpList.Count do begin
tmpEmp := TEmpMst(tmpList.Items[0]);
tmpEmp.Free;
tmpList.Delete(0);
end;
tmpList.Free; tmpList:=nil;
end;
function TfrmNeolTestMain.xGetObjEmpInfo: TList;
var
curEmp: TEmpMst;
begin
Result := TList.Create;
while not FDQuery1.Eof do begin
curEmp := TEmpMst.Create(Self);
curEmp.OBID := FDQuery1.FieldByName('OBID').AsString;
curEmp.Name := FDQuery1.FieldByName('Name').AsString;
curEmp.wClassName := FDQuery1.FieldByName('wClassName').AsString;
curEmp.CreateDate := FDQuery1.FieldByName('CreateDate').AsString;
//curEmp.CreateTime := FDQuery1.FieldByName('CreateTime').AsString;
curEmp.CreateTime := FormatDateTime('hh:nn:ss', FDQuery1.FieldByName('CreateTime').AsDateTime);
curEmp.CreatorID := FDQuery1.FieldByName('CreatorID').AsString;
curEmp.IsValid := FDQuery1.FieldByName('IsValid').AsString;
curEmp.OrdCode := FDQuery1.FieldByName('OrdCode').AsString;
curEmp.Position := FDQuery1.FieldByName('Position').AsString;
curEmp.Role := FDQuery1.FieldByName('Role').AsString;
curEmp.InDate := FDQuery1.FieldByName('InDate').AsString;
curEmp.OutDate := FDQuery1.FieldByName('OutDate').AsString;
curEmp.Status := FDQuery1.FieldByName('Status').AsString;
curEmp.EmpTelNum := FDQuery1.FieldByName('EmpTelNum').AsString;
curEmp.EmpAddress := FDQuery1.FieldByName('EmpAddress').AsString;
curEmp.Descriptions := FDQuery1.FieldByName('Descriptions').AsString;
Result.Add(curEmp);
FDQuery1.Next;
end;
end;
procedure TfrmNeolTestMain.xShowInfo(tmpList: TList);
var
i, cidx, ridx: Integer;
tmpEmp: TEmpMst;
begin
ridx := 0;
StringGrid1.RowCount := tmpList.Count+1;
for i := 0 to tmpList.Count-1 do begin
tmpEmp := TEmpMst(tmpList.Items[i]);
Inc(ridx);
cidx := StringGrid1.Rows[0].IndexOf('OBID');
StringGrid1.Objects[cidx,ridx] := tmpEmp;
StringGrid1.Cells[cidx,ridx] := tmpEmp.OBID;
cidx := StringGrid1.Rows[0].IndexOf('Name');
StringGrid1.Cells[cidx,ridx] := tmpEmp.Name;
cidx := StringGrid1.Rows[0].IndexOf('wClassName');
StringGrid1.Cells[cidx,ridx] := tmpEmp.wClassName;
cidx := StringGrid1.Rows[0].IndexOf('CreateDate');
StringGrid1.Cells[cidx,ridx] := tmpEmp.CreateDate;
cidx := StringGrid1.Rows[0].IndexOf('CreateTime');
StringGrid1.Cells[cidx,ridx] := tmpEmp.CreateTime;
cidx := StringGrid1.Rows[0].IndexOf('CreatorID');
StringGrid1.Cells[cidx,ridx] := tmpEmp.CreatorID;
cidx := StringGrid1.Rows[0].IndexOf('IsValid');
StringGrid1.Cells[cidx,ridx] := tmpEmp.IsValid;
cidx := StringGrid1.Rows[0].IndexOf('OrdCode');
StringGrid1.Cells[cidx,ridx] := tmpEmp.OrdCode;
cidx := StringGrid1.Rows[0].IndexOf('Position');
StringGrid1.Cells[cidx,ridx] := tmpEmp.Position;
cidx := StringGrid1.Rows[0].IndexOf('Role');
StringGrid1.Cells[cidx,ridx] := tmpEmp.Role;
cidx := StringGrid1.Rows[0].IndexOf('InDate');
StringGrid1.Cells[cidx,ridx] := tmpEmp.InDate;
cidx := StringGrid1.Rows[0].IndexOf('OutDate');
StringGrid1.Cells[cidx,ridx] := tmpEmp.OutDate;
cidx := StringGrid1.Rows[0].IndexOf('Status');
StringGrid1.Cells[cidx,ridx] := tmpEmp.Status;
cidx := StringGrid1.Rows[0].IndexOf('EmpTelNum');
StringGrid1.Cells[cidx,ridx] := tmpEmp.EmpTelNum;
cidx := StringGrid1.Rows[0].IndexOf('EmpAddress');
StringGrid1.Cells[cidx,ridx] := tmpEmp.EmpAddress;
cidx := StringGrid1.Rows[0].IndexOf('Descriptions');
StringGrid1.Cells[cidx,ridx] := tmpEmp.Descriptions;
end;
end;
end.