📄 unitorder0.pas
字号:
unit UnitOrder0;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, Menus, StdCtrls, ComCtrls, Buttons, ExtCtrls;
type
TFormOrder0 = class(TForm)
Panel: TPanel;
Panel1: TPanel;
BtnSQL: TSpeedButton;
TreeView: TTreeView;
Panel3: TPanel;
ListView: TListView;
Panel2: TPanel;
BtnDspMaxT: TSpeedButton;
BtnDspMaxXB: TSpeedButton;
BtnDspMaxU: TSpeedButton;
BtnDspCT: TSpeedButton;
BtnDspMinT: TSpeedButton;
BtnDspTQTime: TSpeedButton;
BtnDspMinU: TSpeedButton;
BtnDspPT: TSpeedButton;
GroupBox: TGroupBox;
PanelBianTaiID: TPanel;
EditBianTaiID: TEdit;
PanelBianTaiName: TPanel;
EditBianTaiName: TEdit;
PanelGsm: TPanel;
EditGsm: TEdit;
PanelOnlyCard: TPanel;
EditOnlyCard: TEdit;
PanelLineID: TPanel;
ComboLineID: TComboBox;
PopupMenu2: TPopupMenu;
ListMenuRemoveAll: TMenuItem;
ListMenuRemoveCurrSel: TMenuItem;
ListMenuNone1: TMenuItem;
ListMenuDeleteReSel: TMenuItem;
ListMenuNone2: TMenuItem;
ListMenuModifyPara: TMenuItem;
PopupMenu1: TPopupMenu;
TreeMenuMoveAll: TMenuItem;
TreeMenuMoveAllSel: TMenuItem;
TreeMenuCancelAllSel: TMenuItem;
BtnDspLQTime: TSpeedButton;
BtnDspGetPara: TSpeedButton;
Btn196DataClear: TSpeedButton;
Btn196DataInit: TSpeedButton;
BtnDspCurrXB: TSpeedButton;
BtnDspMonthMaxXB: TSpeedButton;
BtnDspMonthMaxXB2: TSpeedButton;
BtnMdSet06: TSpeedButton;
BtnMdSetApn: TSpeedButton;
BtnMdGetPara: TSpeedButton;
BtnMdClearStat: TSpeedButton;
BtnMdGetStat: TSpeedButton;
procedure BtnSQLClick(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 FormCreate(Sender: TObject);
procedure BtnDspCTClick(Sender: TObject);
procedure BtnDspPTClick(Sender: TObject);
procedure BtnDspMaxUClick(Sender: TObject);
procedure BtnDspMinUClick(Sender: TObject);
procedure BtnDspMaxTClick(Sender: TObject);
procedure BtnDspMinTClick(Sender: TObject);
procedure BtnDspMaxXBClick(Sender: TObject);
procedure BtnDspTQTimeClick(Sender: TObject);
procedure BtnDspLQTimeClick(Sender: TObject);
procedure BtnDspGetParaClick(Sender: TObject);
procedure Btn196DataClearClick(Sender: TObject);
procedure BtnDspCurrXBClick(Sender: TObject);
procedure BtnDspMonthMaxXBClick(Sender: TObject);
procedure BtnDspMonthMaxXB2Click(Sender: TObject);
procedure Btn196DataInitClick(Sender: TObject);
procedure BtnMdSet06Click(Sender: TObject);
procedure BtnMdSetApnClick(Sender: TObject);
procedure BtnMdGetParaClick(Sender: TObject);
procedure BtnMdGetStatClick(Sender: TObject);
procedure BtnMdClearStatClick(Sender: TObject);
private
{ Private declarations }
OrderIndex : Integer;
OrderType : Integer;
OrderPara : string;
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
FormOrder0: TFormOrder0;
implementation
uses UnitMyModule, UnitBasic1, UnitMain, UnitOrder3, UnitOrder1,
UnitBianTai, UnitOrderMsg, UnitLogin;
{$R *.dfm}
procedure TFormOrder0.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
end; //end with
end;
procedure TFormOrder0.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 TFormOrder0.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;
Function TFormOrder0.GetMaxOrderIndex() : Integer;
var
MaxOrderIndex : Integer;
begin
MaxOrderIndex := 1;
with MyModule.AdoQuery do
begin//with
//得到 fd_OrderIndex 最大序号
Close();
SQL.Clear();
SQL.Add('select convert(char(6), isnull(max(fd_OrderIndex),0)+1) from tx_Order');
//ShowMessage(SQL.Text);
try
Open();
except
ExecSQL();
end;
if RecordCount <> 0 then
begin
MaxOrderIndex := StrToInt(Trim(Fields[0].AsString));
end; //end if
end; //with
result := MaxOrderIndex
end;
procedure TFormOrder0.WriteTB_Order(strLineID:string; strBianTaiID:string; strOrderIndex:string; strOrderType:string);
var
strVal : string;
begin
with MyModule.AdoQuery do
begin//with
Close();
SQL.Clear();
case OrderType of
17: //电能预置
begin
strVal := OrderPara;
end;
23: //模块心跳间隔
begin
strVal := OrderPara;
end;
24: //模块APN
begin
strVal := OrderPara;
end;
25: //设置模块APN
begin
strVal := '';
end;
26: //清空模块状态
begin
strVal := '';
end;
27: //读取模块状态
begin
strVal := '';
end;
45: //DSP-月谐波最大值
begin
strVal := OrderPara;
end;
46: //DSP-当前谐波数据 参数=0xAA
begin
strVal := '170';
end;
50: //DSP-参数读取
begin
strVal := '';
end;
51: //DSP-CT变比
begin
SQL.Add('select fd_CT from tx_BianTai where fd_BianTaiID=');
SQL.Add(strBianTaiID);
end;
52: //DSP-PT变比
begin
SQL.Add('select fd_PT from tx_BianTai where fd_BianTaiID=');
SQL.Add(strBianTaiID);
end;
53: //DSP-电压控制上限
begin
SQL.Add('select convert(char(6),fd_DspMaxU) from tx_BianTai where fd_BianTaiID=');
SQL.Add(strBianTaiID);
end;
54: //DSP-电压控制下限
begin
SQL.Add('select convert(char(6),fd_DspMinU) from tx_BianTai where fd_BianTaiID=');
SQL.Add(strBianTaiID);
end;
55: //DSP-温度控制上限
begin
SQL.Add('select convert(char(6),fd_DspMaxT) from tx_BianTai where fd_BianTaiID=');
SQL.Add(strBianTaiID);
end;
56: //DSP-温度控制下限
begin
SQL.Add('select convert(char(6),fd_DspMinT) from tx_BianTai where fd_BianTaiID=');
SQL.Add(strBianTaiID);
end;
57: //DSP-谐波控制上限
begin
SQL.Add('select convert(char(6),fd_DspMaxXB) from tx_BianTai where fd_BianTaiID=');
SQL.Add(strBianTaiID);
end;
58: //DSP-投切周期
begin
SQL.Add('select convert(char(6),fd_DspTQTime) from tx_BianTai where fd_BianTaiID=');
SQL.Add(strBianTaiID);
end;
59: //DSP-冷却时间
begin
SQL.Add('select convert(char(6),fd_DspLQTime) from tx_BianTai where fd_BianTaiID=');
SQL.Add(strBianTaiID);
end;
else
strVal := '';
end; //end case
if SQL.Text <> '' then
begin
try
Open();
except
ExecSQL();
end;
//ShowMessage(sql.Text);
if RecordCount <> 0 then
begin
strVal := Trim(Fields[0].AsString) ;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -