📄 unitorder1.pas
字号:
unit UnitOrder1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, ExtCtrls, Buttons, ComCtrls, Menus;
type
TFormOrder1 = class(TForm)
PopupMenu2: TPopupMenu;
ListMenuRemoveAll: TMenuItem;
ListMenuRemoveCurrSel: TMenuItem;
ListMenuNone2: TMenuItem;
PopupMenu1: TPopupMenu;
TreeMenuMoveAll: TMenuItem;
TreeMenuMoveAllSel: TMenuItem;
TreeMenuCancelAllSel: TMenuItem;
Panel: TPanel;
Panel1: TPanel;
BtnSQL: TSpeedButton;
TreeView: TTreeView;
Panel3: TPanel;
ListView: TListView;
Panel2: TPanel;
BtnCT: TSpeedButton;
BtnPT: TSpeedButton;
BtnFreezeDN: TSpeedButton;
BtnFreezeDay: TSpeedButton;
BtnAutoSend: TSpeedButton;
BtnDataCycle: TSpeedButton;
BtnCheckYear: TSpeedButton;
BtnCheckHour: TSpeedButton;
BtnCheckTime: TSpeedButton;
BtnDrqDataType: TSpeedButton;
BtnDrqCycle: TSpeedButton;
BtnMinU: TSpeedButton;
BtnMaxU: TSpeedButton;
BtnRatedI: TSpeedButton;
BtnMaxI: TSpeedButton;
ListMenuDeleteReSel: TMenuItem;
GroupBox: TGroupBox;
PanelBianTaiID: TPanel;
EditBianTaiID: TEdit;
PanelBianTaiName: TPanel;
EditBianTaiName: TEdit;
PanelGsm: TPanel;
EditGsm: TEdit;
PanelOnlyCard: TPanel;
EditOnlyCard: TEdit;
PanelLineID: TPanel;
ComboLineID: TComboBox;
ListMenuModifyPara: TMenuItem;
ListMenuNone1: TMenuItem;
BtnPowerOff: TSpeedButton;
BtnOrderStop: TSpeedButton;
procedure FormCreate(Sender: TObject);
procedure FormShow(Sender: TObject);
procedure TreeCancelAllSel(Sender: TObject);
procedure TreeMoveCurrSel(Sender: TObject);
procedure TreeMoveAllSel(Sender: TObject);
procedure TreeMoveAll(Sender: TObject);
Function GetLineID(LineName:string) : string;
procedure ListRemoveAll(Sender: TObject);
procedure ListRemoveCurrSel(Sender: TObject);
procedure ListRemoveAllSel(Sender: TObject);
procedure ListSeekCurSel(Sender: TObject);
procedure ListDeleteReSel(Sender: TObject);
procedure BtnSQLClick(Sender: TObject);
procedure BtnDataCycleClick(Sender: TObject);
procedure BtnAutoSendClick(Sender: TObject);
procedure BtnDrqCycleClick(Sender: TObject);
procedure BtnDrqDataTypeClick(Sender: TObject);
procedure BtnFreezeDayClick(Sender: TObject);
procedure BtnFreezeDNClick(Sender: TObject);
procedure BtnPTClick(Sender: TObject);
procedure BtnMaxUClick(Sender: TObject);
procedure BtnMinUClick(Sender: TObject);
procedure BtnMaxIClick(Sender: TObject);
procedure BtnRatedIClick(Sender: TObject);
procedure BtnCTClick(Sender: TObject);
procedure BtnCheckYearClick(Sender: TObject);
procedure BtnCheckHourClick(Sender: TObject);
procedure BtnCheckTimeClick(Sender: TObject);
procedure BtnPowerOffClick(Sender: TObject);
procedure BtnOrderStopClick(Sender: TObject);
private
{ Private declarations }
OrderIndex : Integer;
OrderType : Integer;
OrderDelay : Integer;
Function GetMaxOrderIndex():Integer;
procedure WriteTB_Order( strLineID:string; strBianTaiID:string; strOrderIndex:string; strOrderType:string);
procedure SendOrderToServer();
procedure ShowLastMsg(StrMsg : string);
procedure SendUdpOrder(OrderType: Integer; StrMsg : string);
Function GetSQLString():string;
public
{ Public declarations }
end;
var
FormOrder1: TFormOrder1;
implementation
uses UnitMyModule, UnitOrder3, UnitMain, UnitBianTai, UnitBasic1, UnitLine, UnitOrderMsg,
UnitLogin, UnitOrderPara;
{$R *.dfm}
procedure TFormOrder1.FormCreate(Sender: TObject);
begin
TreeView.ShowRoot := true;
TreeView.ShowButtons := true;
TreeView.ShowLines := True;
self.Caption := ' 参数远方设置';
end;
procedure TFormOrder1.FormShow(Sender: TObject);
var
i : Integer;
begin
ComboLineID.Items.Clear();
ComboLineID.Items.Add(' ');
//向ComboLineID中写入线路信息
For i:=0 to FormBasic1.ListView.Items.Count-1 do
begin
ComboLineID.Items.Add(FormBasic1.ListView.Items[i].SubItems.Strings[0]);
end;
Self.WindowState := wsMaximized;
ListView.Columns.Clear();
ListView.Columns.Add();
ListView.Columns.Items[0].Caption := '变台编号';
ListView.Columns.Items[0].Width := (FormMain.Width - FormMain.mxOutlookBarPro1.Width - 35) div 4;
ListView.Columns.Add();
ListView.Columns.Items[1].Caption := '变台名称';
ListView.Columns.Items[1].Width := (FormMain.Width - FormMain.mxOutlookBarPro1.Width - 35) div 4;
ListView.Columns.Add();
ListView.Columns.Items[2].Caption := '线路编号';
ListView.Columns.Items[2].Width := (FormMain.Width - FormMain.mxOutlookBarPro1.Width - 35) div 4;
ListView.Columns.Add();
ListView.Columns.Items[3].Caption := '线路名称';
ListView.Columns.Items[3].Width := (FormMain.Width - FormMain.mxOutlookBarPro1.Width - 35) div 4;
end;
Function TFormOrder1.GetSQLString():string;
var
strSQL : string;
ArraySQL : array of string;
iCountSQL : Integer;
i : Integer;
LineID : string;
begin
strSQL := 'SELECT fd_BianTaiID, fd_Name, fd_LineID FROM tx_BianTai';
iCountSQL := 0;
setLength(ArraySQL, 0);
//fd_LineID
if Trim(ComBoLineID.Text) <> '' then
begin
//从线路名称取得线路编号
for i:=0 to (FormBasic1.ListView.Items.Count-1) do
begin
if ComBoLineID.Text = FormBasic1.ListView.Items[i].SubItems.Strings[0] then
begin
LineID := FormBasic1.ListView.Items[i].Caption;
inc(iCountSQL, 1);
setlength(ArraySQL, iCountSQL);
if iCountSQL <> 1 then
ArraySQL[iCountSQL-1] := ' And fd_LineID =' + LineID
else
ArraySQL[iCountSQL-1] := ' fd_LineID =' + LineID;
break;
end;// end ComboLineID.Text
end; // end for
end; // end if ComboLineID.Text <> 0
//fd_BianTaiID
if Trim(EditBianTaiID.Text) <> '' then
begin
inc(iCountSQL, 1);
setlength(ArraySQL, iCountSQL);
if iCountSQL <> 1 then
ArraySQL[iCountSQL-1] := ' And fd_BianTaiID =' + EditBianTaiID.Text
else
ArraySQL[iCountSQL-1] := ' fd_BianTaiID =' + EditBianTaiID.Text;
end;
//fd_Name
if Trim(EditBianTaiName.Text) <> '' then
begin
inc(iCountSQL, 1);
setlength(ArraySQL, iCountSQL);
if iCountSQL <> 1 then
ArraySQL[iCountSQL-1] := ' AND fd_Name like ''%'
else
ArraySQL[iCountSQL-1] := ' fd_Name like ''%';
ArraySQL[iCountSQL-1] := ArraySQL[iCountSQL-1] + EditBianTaiName.Text;
ArraySQL[iCountSQL-1] := ArraySQL[iCountSQL-1] + '%''';
end;
//fd_Gsm
if Trim(EditGsm.Text) <> '' then
begin
inc(iCountSQL, 1);
setlength(ArraySQL, iCountSQL);
if iCountSQL <> 1 then
ArraySQL[iCountSQL-1] := ' AND fd_Gsm like ''%'
else
ArraySQL[iCountSQL-1] := ' fd_Gsm like ''%';
ArraySQL[iCountSQL-1] := ArraySQL[iCountSQL-1] + EditGsm.Text;
ArraySQL[iCountSQL-1] := ArraySQL[iCountSQL-1] + '%''';
end;
//fd_OnlyCard
if Trim(EditOnlyCard.Text) <> '' then
begin
inc(iCountSQL, 1);
setlength(ArraySQL, iCountSQL);
if iCountSQL <> 1 then
ArraySQL[iCountSQL-1] := ' AND fd_OnlyCard like ''%'
else
ArraySQL[iCountSQL-1] := ' fd_OnlyCard like ''%';
ArraySQL[iCountSQL-1] := ArraySQL[iCountSQL-1] + EditOnlyCard.Text;
ArraySQL[iCountSQL-1] := ArraySQL[iCountSQL-1] + '%''';
end;
//strSQL
if length(ArraySQL) <> 0 then
begin
strSQL := strSQL + ' WHERE ';
//for i:=0 to length(ArraySQL)-1 do 性能和安全性没有以下代码优秀
for i := Low(ArraySQL) to High(ArraySQL) do
begin
strSQL := strSQL + ArraySQL[i];
end;//end for
end; //end if
result := strSQL + ' Order By fd_LineID, fd_BianTaiID';
end;
procedure TFormOrder1.BtnSQLClick(Sender: TObject);
var
Node_Parent: TTreeNode; //存储线路节点
//Node_Child : TTreeNode; //存储变台节点
LineName : string;
BianTaiName : string;
LineID : string;
i : Integer;
begin
TreeView.Items.clear;
//ShowMessage(GetSqlString);
with MyModule.AdoQuery do
begin
Close();
SQL.Clear();
SQL.Add(GetSQLString);
try
Open();
except
ExecSQL();
end;
//设置线路名称 := ''
LineID := '';
if RecordCount <> 0 then
begin
First();
while not eof do
begin
//ShowMessage(FieldByName('fd_LineID').AsString);
if LineID <> FieldByName('fd_LineID').AsString then
begin
LineID := FieldByName('fd_LineID').AsString;
Trim(LineID);
LineName := LineID;
for i:=0 to FormBasic1.ListView.Items.Count-1 do
begin
if LineID = FormBasic1.ListView.Items[i].Caption then
begin
LineName := Trim(FormBasic1.ListView.Items[i].SubItems.Strings[0]);
break;
end; //enf if
end; //end for
Node_Parent := TreeView.Items.Add(Treeview.TopItem, LineName);
end;
//LineName := FieldByName('fd_LineID').AsString;
BianTaiName := Trim( FieldByName('fd_Name').AsString );
//Node_Child := TreeView.Items.AddChild(Node_Parent, '(' + FieldByName('fd_BianTaiID').AsString + ')' + BianTaiName);
TreeView.Items.AddChild(Node_Parent, '(' + Trim(FieldByName('fd_BianTaiID').AsString) + ')' + BianTaiName);
Next();
end;//end while
end; //end if
//close();
end; //end with
end;
Function TFormOrder1.GetLineID(LineName:string) : string;
var
i : integer;
begin
result := '0';
for i:=0 to (FormBasic1.ListView.Items.Count - 1) do
begin
if FormBasic1.ListView.Items[i].SubItems.Strings[0] = LineName then
begin
result := FormBasic1.ListView.Items[i].Caption;
break;
end;
end;
end;
procedure TFormOrder1.TreeCancelAllSel(Sender: TObject);
begin
if TreeView.Selected <> nil then
begin
TreeView.Selected.Selected := false;
end;
end;
procedure TFormOrder1.TreeMoveAllSel(Sender: TObject);
var
i : integer;
SelectedNode : TTreeNode;
ListItem : TListItem;
iPos : Integer;
BianTaiStr : string;
BianTaiID : string;
BianTaiName : string;
begin
for i:=0 to TreeView.SelectionCount-1 do
begin
SelectedNode := TreeView.Selections[i];
//Copy Delete Pos
if (SelectedNode <> nil) and (SelectedNode.Parent <> nil)then
begin
BianTaiStr := SelectedNode.Text;
iPos := Pos(')', BianTaiStr);
BianTaiID := Copy(BianTaiStr, 2, iPos-2);
BianTaiName := Copy(BianTaiStr, iPos+1, length(BianTaiStr));
ListItem := FormOrder1.ListView.Items.Add();
ListItem.Caption := BianTaiID;
ListItem.SubItems.Add(BianTaiName);
ListItem.SubItems.Add( GetLineID(SelectedNode.Parent.Text) );
ListItem.SubItems.Add( SelectedNode.Parent.Text );
end; // end if SelectNod <> nil
end; // end for
end; // end
procedure TFormOrder1.TreeMoveAll(Sender: TObject);
var
i : integer;
Node : TTreeNode;
ListItem : TListItem;
iPos : Integer;
BianTaiStr : string;
BianTaiID : string;
BianTaiName : string;
begin
for i:=0 to TreeView.Items.Count-1 do
begin
Node := TreeView.Items[i];
//Copy Delete Pos
if (Node <> nil) and (Node.Parent <> nil)then
begin
BianTaiStr := Node.Text;
iPos := Pos(')', BianTaiStr);
BianTaiID := Copy(BianTaiStr, 2, iPos-2);
BianTaiName := Copy(BianTaiStr, iPos+1, length(BianTaiStr));
ListItem := FormOrder1.ListView.Items.Add();
ListItem.Caption := BianTaiID;
ListItem.SubItems.Add(BianTaiName);
ListItem.SubItems.Add( GetLineID(Node.Parent.Text) );
ListItem.SubItems.Add( Node.Parent.Text );
end; // end if SelectNod <> nil
end; // end for
end; // end
procedure TFormOrder1.TreeMoveCurrSel(Sender: TObject);
var
SelectedNode : TTreeNode;
ListItem : TListItem;
iPos : Integer;
BianTaiStr : string;
BianTaiID : string;
BianTaiName : string;
begin
//Copy Delete Pos
SelectedNode := TreeView.Selected;
if (SelectedNode <> nil) and (SelectedNode.Parent <> nil)then
begin
BianTaiStr := SelectedNode.Text;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -