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

📄 unitorder0.pas

📁 远程抄表系统的客户端程序 安徽六安项目-客户端程序 0 开发环境 Delphi 7.0 所需控件 mxOutlookBar 数 据 库 Sybase 11.5 1 04-12-
💻 PAS
📖 第 1 页 / 共 3 页
字号:
      end;//end if
      //close();
    end;  //SQL <> ''

    SQL.Clear();
    SQL.Add('Insert tx_Order(fd_SysTime, fd_LineID, fd_BianTaiID, fd_Time, fd_OrderIndex, fd_OrderType, fd_Val, fd_OrderFlag)Values(getdate(),');
    SQL.Add(strLineID);
    SQL.Add(',');
    SQL.Add(strBianTaiID);
    SQL.Add(','''',');
    SQL.Add(strOrderIndex);
    SQL.Add(',');
    SQL.Add(strOrderType);
    SQL.Add(',''');
    SQL.Add(strVal);
    SQL.Add(''',0)');

    try
      ExecSQL();
    finally
    end;  //finally
  end;    //end with
end;

procedure TFormOrder0.SendOrderToServer();
var
  OrderStr : string;
begin
  OrderStr := char($EB) +  char($90) + char($91) + '指令:' + IntToStr(OrderIndex) + ':' + IntToStr(OrderType) + ':';
  MyModule.UDPClient.Send(OrderStr);
end;

procedure TFormOrder0.ShowLastMsg(StrMsg : string);
begin
  //Self.Close();
  //FormOrder3.WindowState:=wsMaximized;  //窗体最大化显示
  //FormOrder3.BorderStyle:=bsNone;			  //不要标题栏
  //FormOrder3.Parent:=Panel;             //父亲窗口
  FormOrder3.Parent := FormMain.Panel;
  FormOrder3.Width  := FormMain.Panel.Width;
  FormOrder3.Height := FormMain.Panel.Height;

  FormOrder3.OrderIndex := OrderIndex;
  FormOrder3.OrderType  := OrderType;
  FormOrder3.ListView.Items.Clear();
  FormOrder3.OrderCount := ListView.Items.Count;
  FormOrder3.OrderDelay := (FormMain.iWaitTime * 4);

  //FormOrder3.ResetListColumnsTitle();
  FormOrder3.ResetTabSheetVisible();

  //FormOrder3.MemoMsg.Lines.Clear();
  //FormOrder3.MemoMsg.Lines.Add(StrMsg);
  FormOrder3.MemoMsg.Lines.Insert(0, StrMsg);

  //定时器定时更新数据标志打开
  FormOrder3.bTimerRefresh := True;
  FormOrder3.Show();
end;

procedure TFormOrder0.SendUdpOrder(OrderType : Integer; StrMsg : string);
var
  i : Integer;
begin
  //得到最大指令号
  OrderIndex := GetMaxOrderIndex();
  //指令序号
  //OrderType  := 1;
  //写入指令库
  for i:=0 to ListView.Items.Count-1 do
  begin
    WriteTB_Order(ListView.Items[i].SubItems.Strings[1],
                  ListView.Items[i].Caption,
                  IntToStr(OrderIndex),
                  IntToStr(OrderType));

  end;
  //发送 '指令:1:1' 到服务器端
  SendOrderToServer();
  //显示指令处理结构信息视图
  StrMsg := '第' + IntToStr(OrderIndex) + '号' + StrMsg + '  共计:' + IntToStr(ListView.Items.Count) + '台区';
  ShowLastMsg(StrMsg);
end;

Function  TFormOrder0.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 TFormOrder0.TreeCancelAllSel(Sender: TObject);
begin
  if TreeView.Selected <> nil then
  begin
    TreeView.Selected.Selected := false;
  end;
end;

procedure TFormOrder0.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 := FormOrder0.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 TFormOrder0.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 := FormOrder0.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 TFormOrder0.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;

    iPos := Pos(')', BianTaiStr);
    BianTaiID   := Copy(BianTaiStr, 2,      iPos-2);
    BianTaiName := Copy(BianTaiStr, iPos+1, length(BianTaiStr));

    ListItem := FormOrder0.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;

procedure TFormOrder0.ListRemoveCurrSel(Sender: TObject);
begin
  if ListView.Selected <> nil then
  begin
    ListView.Selected.Delete();
  end;
end;

procedure TFormOrder0.ListRemoveAll(Sender: TObject);
begin
  ListView.Clear;
end;

procedure TFormOrder0.ListRemoveAllSel(Sender: TObject);
begin
  if ListView.Selected <> nil then
  begin
    ListView.DeleteSelected;
  end;
end;

procedure TFormOrder0.ListDeleteReSel(Sender: TObject);
var
  i : Integer;
  j : Integer;
begin
  for i:=(ListView.Items.Count-1) downto  0 do
    for j:=0 to i-1 do
    begin
      if ListView.Items[i].Caption = ListView.Items[j].Caption then
      begin
        ListView.Items[i].Delete();
        break;
      end;
    end;
end;

procedure TFormOrder0.ListSeekCurSel(Sender: TObject);
begin
  if ListView.Selected <> nil then
  begin
    with  MyModule.AdoQuery do
    begin
      Close();
      SQL.Clear();
      SQL.Add('select * from tx_BianTai where fd_BianTaiID =' + ListView.Selected.Caption);

      try
        Open();
      except
        ExecSQL();
      end;

      if RecordCount <> 0 then
      begin
         FormBianTai.EditBianTaiID.Text := ListView.Selected.Caption;
         //fd_CT
         FormBianTai.EditDspCT.Text   := Trim( FieldByName('fd_CT').AsString );
         //fd_PT
         FormBianTai.EditDspPT.Text   := Trim( FieldByName('fd_PT').AsString );
         //fd_DspMaxU
         FormBianTai.EditDspMaxU.Text := Trim( FieldByName('fd_DspMaxU').AsString );
         //fd_DspMinU
         FormBianTai.EditDspMinU.Text := Trim( FieldByName('fd_DspMinU').AsString );
         //fd_DspMaxT
         FormBianTai.EditDspMaxT.Text := Trim( FieldByName('fd_DspMaxT').AsString );
         //fd_DspMinT
         FormBianTai.EditDspMinT.Text := Trim( FieldByName('fd_DspMinT').AsString );
         //fd_DspMaxXB
         FormBianTai.EditDspMaxXB.Text:= Trim( FieldByName('fd_DspMaxXB').AsString );
         //fd_DspTQTime   //投切间隔
         FormBianTai.EditDspTQTime.Text := Trim( FieldByName('fd_DspTQTime').AsString );
         //fd_DspLQTime   //冷却时间
         FormBianTai.EditDspLQTime.Text := Trim( FieldByName('fd_DspLQTime').AsString );
         //ID3
         FormBianTai.EditBianTaiID3.Text := ListView.Selected.Caption;
         //Name3
         FormBianTai.EditName3.Text      := ListView.Selected.SubItems.Strings[0];

       end;//end <> 0
    end;  //end with


    FormBianTai.PageControl.Pages[0].TabVisible := false;
    FormBianTai.PageControl.Pages[1].TabVisible := false;
    FormBianTai.PageControl.Pages[2].TabVisible := true;


    FormBianTai.Caption  := '台区属性信息-修改DSP参数信息并选择发送相应指令';
    FormBianTai.iSetInfo := 1;

    FormBianTai.ShowModal();

    if FormBianTai.iBtnClick = 1 then
    begin
       with MyModule.AdoQuery do
       begin//with
         SQL.Clear();
         SQL.Add('UPDATE tx_BianTai SET fd_CT=''');
         SQL.Add(FormBianTai.EditDspCT.Text);
         SQL.Add(''',');

         SQL.Add('fd_PT=''');
         SQL.Add(FormBianTai.EditDspPT.Text);
         SQL.Add(''',');

         SQL.Add('fd_DspMaxU=');
         SQL.Add(FormBianTai.EditDspMaxU.Text);
         SQL.Add(',');

         SQL.Add('fd_DspMinU=');
         SQL.Add(FormBianTai.EditDspMinU.Text);
         SQL.Add(',');

         SQL.Add('fd_DspMaxT=');
         SQL.Add(FormBianTai.EditDspMaxT.Text);
         SQL.Add(',');

         SQL.Add('fd_DspMinT=');
         SQL.Add(FormBianTai.EditDspMinT.Text);
         SQL.Add(',');

         SQL.Add('fd_DspMaxXB=');
         SQL.Add(FormBianTai.EditDspMaxXB.Text);
         SQL.Add(',');

         SQL.Add('fd_DspTQTime=');
         SQL.Add(FormBianTai.EditDspTQTime.Text);
         SQL.Add(',');

         SQL.Add('fd_DspLQTime=');
         SQL.Add(FormBianTai.EditDspLQTime.Text);

         SQL.Add(' WHERE fd_BianTaiID=');
         SQL.Add(ListView.Selected.Caption);

         //ShowMessage(SQL.Text);
         try
           ExecSQL();
         Finally
         end; //finally
       end;   //with
     end;     //end if <> OK Click
   end;       //end if Select <> Nil

end;


procedure TFormOrder0.FormCreate(Sender: TObject);
begin
 TreeView.ShowRoot := true;
  TreeView.ShowButtons := true;
  TreeView.ShowLines := True;

  self.Caption := ' DSP参数调试';
end;

procedure TFormOrder0.BtnDspCTClick(Sender: TObject);
var
  StrMsg    : string;
begin
  if ListView.Items.Count = 0 then
    exit;

  FormOrderMsg.PanelMsg.Caption := '设置DSP-CT变比';
  FormOrderMsg.MyPos.iLeft := BtnDspCT.ClientOrigin.X;
  FormOrderMsg.MyPos.iTop  := BtnDspCT.ClientOrigin.Y;

  FormOrderMsg.Width := 250;
  FormOrderMsg.EditPara.Visible := False;
  FormOrderMsg.ShowModal();

  if FormOrderMsg.iBtnClick = 1 then
  begin
    OrderType := 51;
    StrMsg := '指令:客户端向服务器发送指令(51):设置DSP-CT变比';
    SendUdpOrder(OrderType, StrMsg);
  end;
end;

procedure TFormOrder0.BtnDspPTClick(Sender: TObject);
var
  StrMsg    : string;
begin
  if ListView.Items.Count = 0 then
    exit;

  FormOrderMsg.PanelMsg.Caption := '设置DSP-PT变比';
  FormOrderMsg.MyPos.iLeft := BtnDspPT.ClientOrigin.X;
  FormOrderMsg.MyPos.iTop  := BtnDspPT.ClientOrigin.Y;

  FormOrderMsg.Width := 250;
  FormOrderMsg.EditPara.Visible := False;
  FormOrderMsg.ShowModal();

  if FormOrderMsg.iBtnClick = 1 then
  begin
    OrderType := 52;
    StrMsg := '指令:客户端向服务器发送指令(52):设置DSP-PT变比';
    SendUdpOrder(OrderType, StrMsg);
  end;
end;

procedure TFormOrder0.BtnDspMaxUClick(Sender: TObject);
var
  StrMsg    : string;
begin
  if ListView.Items.Count = 0 then
    exit;

  FormOrderMsg.PanelMsg.Caption := '设置DSP-电压控制上限';
  FormOrderMsg.MyPos.iLeft := BtnDspMaxU.ClientOrigin.X;
  FormOrderMsg.MyPos.iTop  := BtnDspMaxU.ClientOrigin.Y;

  FormOrderMsg.Width := 250;
  FormOrderMsg.EditPara.Visible := False;
  FormOrderMsg.ShowModal();

  if FormOrderMsg.iBtnClick = 1 then
  begin
    OrderType := 53;
    StrMsg := '指令:客户端向服务器发送指令(53):设置DSP-电压控制上限';
    SendUdpOrder(OrderType, StrMsg);
  end;
end;

procedure TFormOrder0.BtnDspMinUClick(Sender: TObject);
var
  StrMsg    : string;
begin
  if ListView.Items.Count = 0 then
    exit;

  FormOrderMsg.PanelMsg.Caption := '设置DSP-电压控制下限';
  FormOrderMsg.MyPos.iLeft := BtnDspMinU.ClientOrigin.X;
  FormOrderMsg.MyPos.iTop  := BtnDspMinU.ClientOrigin.Y;

  FormOrderMsg.Width := 250;
  FormOrderMsg.EditPara.Visible := False;
  FormOrderMsg.ShowModal();

  if FormOrderMsg.iBtnClick = 1 then
  begin
    OrderType := 54;
    StrMsg := '指令:客户端向服务器发送指令(54):设置DSP-电压控制下限';
    SendUdpOrder(OrderType, StrMsg);
  end;
end;

procedure TFormOrder0.BtnDspMaxTClick(Sender: TObject);

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -