📄 unitorder2.pas
字号:
unit UnitOrder2;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, Menus, ComCtrls, StdCtrls, Buttons, ExtCtrls;
type
TFormOrder2 = class(TForm)
Panel: TPanel;
Panel1: TPanel;
SpeedBtnSQL: TSpeedButton;
GroupBox: TGroupBox;
PanelBianTaiID: TPanel;
EditBianTaiID: TEdit;
PanelBianTaiName: TPanel;
EditBianTaiName: TEdit;
PanelGsm: TPanel;
EditGsm: TEdit;
PanelOnlyCard: TPanel;
EditOnlyCard: TEdit;
PanelLineID: TPanel;
ComboLineID: TComboBox;
TreeView: TTreeView;
Panel2: TPanel;
ListView: TListView;
Panel3: TPanel;
PopupMenu2: TPopupMenu;
ListMenuRemoveAll: TMenuItem;
ListMenuRemoveCurrSel: TMenuItem;
ListMenuNone: TMenuItem;
PopupMenu1: TPopupMenu;
TreeMenuMoveAll: TMenuItem;
TreeMenuMoveAllSel: TMenuItem;
TreeMenuCancelAllSel: TMenuItem;
C1: TMenuItem;
BtnDayCurr: TSpeedButton;
BtnDayHistory: TSpeedButton;
BtnMonthMax: TSpeedButton;
BtnMonthMin: TSpeedButton;
BtnDrqHistory: TSpeedButton;
BtnXieboHistory: TSpeedButton;
BtnDayDN: TSpeedButton;
BtnDrqCurr: TSpeedButton;
BtnXieboCurr: TSpeedButton;
BtnMonthStat: TSpeedButton;
BtnQueXian: TSpeedButton;
BtnDuanXiang: TSpeedButton;
BtnMonthDrq: TSpeedButton;
BtnDyRate: TSpeedButton;
BtnGdRate: TSpeedButton;
BtnGet901F: 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 SpeedBtnSQLClick(Sender: TObject);
procedure BtnDayCurrClick(Sender: TObject);
procedure BtnDayHistoryClick(Sender: TObject);
procedure BtnDrqCurrClick(Sender: TObject);
procedure BtnDrqHistoryClick(Sender: TObject);
procedure BtnXieboCurrClick(Sender: TObject);
procedure BtnXieboHistoryClick(Sender: TObject);
procedure BtnDayDNClick(Sender: TObject);
procedure BtnMonthStatClick(Sender: TObject);
procedure BtnMonthMaxClick(Sender: TObject);
procedure BtnMonthMinClick(Sender: TObject);
procedure BtnDuanXiangClick(Sender: TObject);
procedure BtnMonthDrqClick(Sender: TObject);
procedure BtnQueXianClick(Sender: TObject);
procedure BtnDyRateClick(Sender: TObject);
procedure BtnGdRateClick(Sender: TObject);
procedure BtnGet901FClick(Sender: TObject);
private
{ Private declarations }
Function GetSQLString():string;
public
{ Public declarations }
OrderIndex : Integer;
OrderType : Integer;
OrderDelay : Integer;
Function GetMaxOrderIndex():Integer;
procedure WriteTB_Order( strLineID:string; strBianTaiID:string; strOrderIndex:string; strOrderType:string; strVal:string; strDateTime:string);
procedure SendOrderToServer();
procedure ShowLastMsg(StrMsg : string);
procedure SendUdpOrder(OrderType: Integer; StrMsg : string; strVal:string=''; strDateTime :string='');
end;
var
FormOrder2: TFormOrder2;
implementation
uses UnitBasic1, UnitMyModule, UnitOrder1, UnitOrder3, UnitMain, UnitLine,
UnitOrderPara, UnitLogin, UnitOrderMsg;
{$R *.dfm}
procedure TFormOrder2.FormCreate(Sender: TObject);
begin
{
'本地名字' MyModule.UDPServer.LocalName
'本地ip地址' MyModule.GetLocalIpAddress()
'监视端口号' IntToStr(MyModule.UDPServer.DefaultPort)
'最大缓冲' IntToStr(MyModule.UDPServer.BufferSize)
MyModule.UDPClient.Port := 1080;
MyModule.UDPClient.Active := true;
MyModule.UDPServer.Active := true;
MyModule.UDPClient.Send('111111111');
}
TreeView.ShowRoot := true;
TreeView.ShowButtons := true;
TreeView.ShowLines := True;
self.Caption := ' 数据远方读取';
end;
procedure TFormOrder2.FormShow(Sender: TObject);
var
i : integer;
begin
ComboLineID.Items.Clear();
ComboLineID.Items.Add(' ');;
//向ComboLineID中写入线路信息
//SetLength(ArrayLine, FormBasic1.ListView.Items.Count);
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 TFormOrder2.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 TFormOrder2.SpeedBtnSQLClick(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 TFormOrder2.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 TFormOrder2.TreeCancelAllSel(Sender: TObject);
begin
if TreeView.Selected <> nil then
begin
TreeView.Selected.Selected := false;
end;
end;
procedure TFormOrder2.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 := FormOrder2.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 TFormOrder2.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 := FormOrder2.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 TFormOrder2.TreeMoveCurrSel(Sender: TObject);
var
SelectedNode: TTreeNode;
ListItem : TListItem;
iPos : Integer;
BianTaiStr : string;
BianTaiID : string;
BianTaiName : string;
begin
//Copy Delete Pos
SelectedNode := TreeView.Selected;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -