291 lines
9.1 KiB
Plaintext
291 lines
9.1 KiB
Plaintext
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,
|
||
|
||
RegisterClasses_base, wItem, EmpMst, Math;
|
||
|
||
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;
|
||
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;
|
||
end;
|
||
|
||
var
|
||
frmNeolTestMain: TfrmNeolTestMain;
|
||
|
||
implementation
|
||
|
||
uses
|
||
Editor;
|
||
|
||
{$R *.dfm}
|
||
|
||
procedure TfrmNeolTestMain.BitBtn1Click(Sender: TObject);
|
||
begin
|
||
FDPhysPgDriverLink1.VendorLib := 'C:\WorkTest\NEOL-MES\pglib\libpq.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;
|
||
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;
|
||
|
||
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
|
||
|
||
end;
|
||
tmpForm.Free; tmpForm:=nil;
|
||
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.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.
|