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

📄 unitorder1.pas

📁 远程抄表系统的客户端程序 安徽六安项目-客户端程序 0 开发环境 Delphi 7.0 所需控件 mxOutlookBar 数 据 库 Sybase 11.5 1 04-12-
💻 PAS
📖 第 1 页 / 共 3 页
字号:
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 + -