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

📄 unitorder0.pas

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