📄 unitpowerinfo.~pas
字号:
unit UnitPowerInfo;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, ComCtrls, StdCtrls, Spin, Global, MapXLib_TLB, AnyPoster,
DBM_MSSQL;
type
TForm_PowerInfo = class(TForm)
PageControl1: TPageControl;
TabSheet1: TTabSheet;
TabSheet2: TTabSheet;
GroupBox1: TGroupBox;
ListView1: TListView;
Button4: TButton;
Button6: TButton;
GroupBox2: TGroupBox;
Label1: TLabel;
Label2: TLabel;
edPowerName: TEdit;
Label3: TLabel;
edScript: TEdit;
Label4: TLabel;
edPowerType: TComboBox;
Button1: TButton;
Button2: TButton;
Button3: TButton;
Label5: TLabel;
RadioButton1: TRadioButton;
RadioButton2: TRadioButton;
edPowerId: TEdit;
procedure Button1Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
procedure FormShow(Sender: TObject);
procedure FormCreate(Sender: TObject);
procedure Button4Click(Sender: TObject);
procedure Button6Click(Sender: TObject);
procedure FormDestroy(Sender: TObject);
procedure edPowerIdKeyPress(Sender: TObject; var Key: Char);
private
{ Private declarations }
FIsOk: Boolean;
FMode: TConfigMode;
FPowerId: Integer;
FUnitID: Integer;
FFeature: CMapXFeature;
FDBManager:TSQLServerDBManager;
FDBPoster:TDBPosterWithSQL;
procedure DisplayData;
procedure ApplayData;
public
{ Public declarations }
property IsOk:Boolean read FIsOk;
property Mode:TConfigMode read FMode write FMode;
property UnitID:Integer read FUnitID write FUnitID;
property PowerId:Integer read FPowerId write FPowerId;
property Feature:CMapXFeature read FFeature write FFeature;
end;
var
Form_PowerInfo: TForm_PowerInfo;
function NewPowerInfo(MapX:TMapXObject; AUnitID:Integer; AFt:Feature):Boolean;
function ConfigPowerInfo(MapX:TMapXObject; AUnitID:Integer; AFt:Feature):Boolean;
implementation
uses
ADODBTools, UnitMainLinkObjects, UnitProject, UnitChooseSDLine,
BusinessDialogs, WinControl, UnitQCAPIs, UnitDMLinks;
{$R *.dfm}
function NewPowerInfo(MapX:TMapXObject; AUnitID:Integer; AFt:Feature):Boolean;
begin
with TForm_PowerInfo.Create(nil) do
begin
try
Feature:=AFt;
Mode:=cmAdd;
UnitID:=AUnitID;
ShowModal;
Result:=IsOk;
if not Result then
MyDefInformation('您已取消属性设置,如要删除图形,请手动操作!')
finally
Free;
end;
end;
end;
function ConfigPowerInfo(MapX:TMapXObject; AUnitID:Integer; AFt:Feature):Boolean;
begin
with TForm_PowerInfo.Create(nil) do
begin
try
Feature:=AFt;
Mode:=cmModify;
UnitID:=AUnitID;
PowerId:=StrToInt(AFt.KeyValue);
ShowModal;
Result:=IsOk;
finally
Free;
end;
end;
end;
procedure TForm_PowerInfo.ApplayData;
begin
PostPowerRecord(Feature,
FDBPoster,
UnitID,
StrToInt(edPowerId.Text),
edPowerName.Text,
edPowerType.ItemIndex,
RadioButton2.Checked,
edScript.Text,
nil,
True,
True,
True);
FPowerId:=StrToInt(edPowerId.Text);
end;
procedure TForm_PowerInfo.Button1Click(Sender: TObject);
begin
ApplayData;
FIsOk:=True;
Close;
end;
procedure TForm_PowerInfo.Button2Click(Sender: TObject);
begin
Close;
end;
procedure TForm_PowerInfo.DisplayData;
var
aItem:TListItem;
begin
with dm_MainLinkObjects.PublicQuery do
begin
Close;
SQL.Clear;
SQL.Add('select * from t_CtrlDotsLayer');
SQL.Add('where UnitID='+IntToStr(UnitID));
SQL.Add('and DotID='+IntToStr(PowerId));
Open;
if not Eof then
begin
edPowerId.Text:=FieldByName('DotID').AsString;
edPowerName.Text:=FieldByName('DotName').AsString;
edPowerType.ItemIndex:=FieldByName('Type').AsInteger;
edScript.Text:=FieldByName('Script').AsString;
if FieldByName('kgState').AsBoolean then
RadioButton1.Checked:=True
else
RadioButton2.Checked:=True;
Close;
SQL.Clear;
SQL.Add('select b.LineID,b.LineName from t_DotLines a, t_LinesLayer b');
SQL.Add('where a.DotID='+IntToStr(PowerId)+' and a.LineID=b.LineID');
Open;
while not Eof do
begin
aItem:=ListView1.Items.Add;
aItem.Caption:=FieldByName('LineID').AsString;
aItem.SubItems.Add(FieldByName('LineName').AsString);
Next;
end;
end;
Close;
end;
end;
procedure TForm_PowerInfo.FormShow(Sender: TObject);
begin
FIsOk:=False;
if Mode=cmModify then
DisplayData
else begin
edPowerId.Text:=IntToStr(GetNewIntID(dm_MainLinkObjects.PublicQuery,
't_CtrlDotsLayer', 'DotID', '', 1));
edPowerName.Text:=edPowerId.Text+'号开关';
end;
end;
procedure TForm_PowerInfo.FormCreate(Sender: TObject);
begin
FDBManager:=TSQLServerDBManager.Create;
FDBPoster:=TDBPosterWithSQL.Create;
FDBPoster.DBManager:=FDBManager;
FDBPoster.Engine:=dm_Links.DBMachine1;
FPowerId:=-1;
end;
procedure TForm_PowerInfo.Button4Click(Sender: TObject);
var
aLineId:Integer;
aLineName:string;
aListItem:TListItem;
begin
if ChooseSDLine(FUnitID, aLineId, aLineName) then
begin
with dm_MainLinkObjects.PublicQuery do
begin
Close;
SQL.Clear;
SQL.Add('insert into t_DotLines');
SQL.Add('(DotID, LineID) values (:DotID, :LineID)');
SetParamValue(dm_MainLinkObjects.PublicQuery, 'DotID', StrToInt(edPowerId.Text));
SetParamValue(dm_MainLinkObjects.PublicQuery, 'LineID', aLineId);
ExecSQL;
end;
aListItem:=ListView1.Items.Add;
aListItem.Caption:=IntToStr(aLineId);
aListItem.SubItems.Add(aLineName);
end;
end;
procedure TForm_PowerInfo.Button6Click(Sender: TObject);
begin
if ListView1.Selected=nil then Exit;
with dm_MainLinkObjects.PublicQuery do
begin
Close;
SQL.Clear;
SQL.Add('delete from t_DotLines');
SQL.Add('where DotID=:DotID and LineID=:LineID');
SetParamValue(dm_MainLinkObjects.PublicQuery, 'DotID', PowerId);
SetParamValue(dm_MainLinkObjects.PublicQuery, 'LineID', ListView1.Selected.Caption);
ExecSQL;
end;
ListView1.DeleteSelected;
end;
procedure TForm_PowerInfo.FormDestroy(Sender: TObject);
begin
FDBManager.Free;
FDBPoster.Free;
end;
procedure TForm_PowerInfo.edPowerIdKeyPress(Sender: TObject;
var Key: Char);
begin
IntegerEditKeyPress(TEdit(Sender), Key);
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -