⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 unitpowerinfo.~pas

📁 此代码是关于mapgis的在
💻 ~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 + -