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

📄 unitbasic2.pas

📁 远程抄表系统的客户端程序 安徽六安项目-客户端程序 0 开发环境 Delphi 7.0 所需控件 mxOutlookBar 数 据 库 Sybase 11.5 1 04-12-
💻 PAS
📖 第 1 页 / 共 2 页
字号:
unit UnitBasic2;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, Buttons, ComCtrls, ExtCtrls, Menus, ImgList, ToolWin;

type
  //定义线路纪录
  //TLineRecord = record
  // LineID : string;
  //  Name   : string;
  //end;

  TFormBasic2 = class(TForm)
    ListView: TListView;
    PopupMenu: TPopupMenu;
    MenuAdd: TMenuItem;
    MenuModify: TMenuItem;
    MenuDelete: TMenuItem;
    MenuSeek: TMenuItem;
    MenuRefresh: TMenuItem;
    MenuExit: TMenuItem;
    ImageList: TImageList;
    CoolBar: TCoolBar;
    ToolBar: TToolBar;
    BtnAdd: TToolButton;
    BtnModify: TToolButton;
    BtnDel: TToolButton;
    BtnSeek: TToolButton;
    BtnRefresh: TToolButton;
    BtnExit: TToolButton;
    procedure BtnAddClick(Sender: TObject);
    procedure BtnExitClick(Sender: TObject);
    procedure BtnRefreshClick(Sender: TObject);
    procedure BtnModifyClick(Sender: TObject);
    procedure BtnDeleteClick(Sender: TObject);
    procedure BtnSeekClick(Sender: TObject);
    procedure FormCreate(Sender: TObject);
  private
    { Private declarations }
    Function GetMaxBianTaiID() : Integer;
  public
    { Public declarations }
  end;

var
  FormBasic2 : TFormBasic2;
  //ArrayLine  : Array of TLineRecord;

implementation

uses
  UnitMyModule, UnitBasic1, UnitBianTai, UnitMain, UnitLine, UnitBianTaiSeek;

{$R *.dfm}

Function TFormBasic2.GetMaxBianTaiID() : Integer;
var
  MaxBianTaiID : Integer;
begin
  MaxBianTaiID := 1;
  with MyModule.AdoQuery do
  begin//with
    //得到 fd_Index 最大序号
    Close();
    SQL.Clear();
    SQL.Add('select isnull(max(fd_BianTaiID),0)+1 from tx_BianTai');
    //ShowMessage(SQL.Text);
    try
      Open();
    except
      ExecSQL();
    end;

    if RecordCount <> 0 then
    begin
      MaxBianTaiID := StrToInt(Trim(Fields[0].AsString));
    end;   //end if
  end;     //with
    result := MaxBianTaiID;
end;

procedure TFormBasic2.BtnAddClick(Sender: TObject);
var
  I : Integer;
  LineID : string;  //ComboLineID
  Status : string;  //ComboStatus
  AutoSend    : string;   //ComboAutoSend
  DrqDataType : string;   //ComboDrqDataType

  ListItem : TListItem;
begin
  FormBianTai.Caption  := '变台基本信息-增加';
  FormBianTai.iSetInfo := 0; //不是设置窗口

  //设置focus窗口为 TabSheet1
  FormBianTai.TabSheet1.Show();

  FormBianTai.EditBianTaiID.Text := IntToStr(GetMaxBianTaiID());
  FormBianTai.EditName.Text := '';
  FormBianTai.EditMaxU.Text := '245';
  FormBianTai.EditMinU.Text := '215';

  FormBianTai.ComboLineID.Items.Clear();
  //向FormBiantTai.ComboLineID中写入线路信息
  //SetLength(ArrayLine,FormBasic1.ListView.Items.Count);
  FormBianTai.ComboLineID.Text := '0';
  For i:=0 to FormBasic1.ListView.Items.Count-1 do
  begin
    FormBianTai.ComboLineID.Items.Add(FormBasic1.ListView.Items[i].SubItems.Strings[0]);
    FormBianTai.ComboLineID.Text := FormBasic1.ListView.Items[i].SubItems.Strings[0];
    //ArrayLine[i].LineID := FormBasic1.ListView.Items[i].Caption;
    //ArrayLine[i].Name   := FormBasic1.ListView.Items[i].SubItems.Strings[0];
  end;

  if ListView.Items.Count >= 1 then
  begin
    FormBianTai.ComboLineID.Text := ListView.Items[ListView.Items.Count-1].SubItems.Strings[1];
  end;

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

  FormBianTai.ShowModal();

  if FormBianTai.iBtnClick = 1 then
  begin
    with MyModule.AdoQuery do
    begin//with
      SQL.Clear();
      //SQL语句
      SQL.Add('INSERT INTO tx_BianTai(fd_BianTaiID, fd_Name, fd_LineID, fd_Type, fd_Cap, fd_Status, fd_Gsm, fd_OnlyCard, fd_Ip, fd_Port, fd_YYID, fd_PD2000, fd_Addr, fd_Memo,');
      SQL.Add('fd_DataCycle, fd_AutoSend, fd_DrqCycle, fd_DrqDataType, fd_CT, fd_PT, fd_FreezeDay, fd_FreezeDN, fd_Max_U, fd_Min_U, fd_Max_I, fd_Rated_I)VALUES(');
      //0 fd_BianTaiID
      SQL.Add(FormBianTai.EditBianTaiID.Text);
      SQL.Add(',''');
      //1 fd_Name
      SQL.Add(FormBianTai.EditName.Text);
      SQL.Add(''',');

      //SQL.Add(FormBianTai.ComboLineID.Text);
      //取得 fd_LineID
      LineID := '0';
      for i:=0 to ( FormBasic1.ListView.Items.Count - 1 ) do
      begin
        if FormBasic1.ListView.Items[i].SubItems.Strings[0] = FormBianTai.ComboLineID.Text then
        begin
          LineID := FormBasic1.ListView.Items[i].Caption;
          break;
        end;
      end;
      //2 fd_LineID
      SQL.Add(LineID);
      SQL.Add(',''');
      //3 fd_Type
      SQL.Add(FormBianTai.ComboType.Text);
      SQL.Add(''',''');
      //4 fd_Cap(Capcity)
      SQL.Add(FormBianTai.EditCap.Text);
      SQL.Add(''',');

      if FormBianTai.ComboStatus.Text = '良好' then
        Status := '0'
      else if FormBianTai.ComboStatus.Text = '故障' then
        Status := '1'
      else if FormBianTai.ComboStatus.Text = '未运行' then
        Status := '2'
      else
        Status := '1';
      //5 fd_Status
      SQL.Add(Status);
      SQL.Add(',''');
      //6 fd_GSM       手机号码
      SQL.Add(FormBianTai.EditGSM.Text);
      SQL.Add(''',''');
      //7 fd_OnlyCard  唯一识别码
      SQL.Add(FormBianTai.EditOnlyCard.Text);
      SQL.Add(''',''');
      //8 fd_IP        IP地址
      SQL.Add(FormBianTai.EditIP.Text);
      SQL.Add(''',''');
      //9 fd_Port      端口号(port)
      SQL.Add(FormBianTai.EditPort.Text);
      SQL.Add(''',''');
      //10 fd_YYID
      SQL.Add(Trim(FormBianTai.EditYYID.Text));
      SQL.Add(''',''');
      //11 fd_PD2000
      SQL.Add(Trim(FormBianTai.ComboPD2000.Text));
      SQL.Add(''',''');
      //12 fd_Addr 地址
      SQL.Add(FormBianTai.EditAddr.Text);
      SQL.Add(''',''');
      //13 fd_Momo 备注
      SQL.Add(FormBianTai.EditMemo.Text);
      SQL.Add(''',');
      //14 fd_DataCycle
      SQL.Add(FormBianTai.EditDataCycle.Text);
      SQL.Add(',');

      if FormBianTai.ComboAutoSend.Text = '是' then
        AutoSend := '1'
      else if FormBianTai.ComboAutoSend.Text = '否' then
        AutoSend := '0'
      else
        AutoSend := '0';

      //15 fd_AutoSend
      SQL.Add(AutoSend);
      SQL.Add(',');
      //16 fd_DrqCycle
      SQL.Add(FormBianTai.EditDrqCycle.Text);
      SQL.Add(',');

      if FormBianTai.ComboDrqDataType.Text = '级数' then
        DrqDataType := '0'
      else if FormBianTai.ComboDrqDataType.Text = '容量' then
        DrqDataType := '1'
      else
        DrqDataType := '0';

      //17 fd_DrqDataType
      SQL.Add(DrqDataType);
      SQL.Add(',''');
      //18 fd_CT
      SQL.Add(FormBianTai.EditCT.Text);
      SQL.Add(''',''');
      //19 fd_PT
      SQL.Add(FormBianTai.EditPT.Text);
      SQL.Add(''',''');
      //20 fd_FreezeDay 冻结时间(日时)
      SQL.Add(FormBianTai.EditFreezeDay.Text + '日' + FormBianTai.EditFreezeHour.Text + '时');
      SQL.Add(''',''');
      //21 fd_FreezeDN  电能时刻(小时)默认0时
      SQL.Add(FormBianTai.EditFreezeDN.Text);
      SQL.Add(''',');
      //22 fd_MaxU 最大电压
      SQL.Add(FormBianTai.EditMaxU.Text);
      SQL.Add(',');
      //23 fd_MinU 最小电压
      SQL.Add(FormBianTai.EditMinU.Text);
      SQL.Add(',');
      //24 fd_MaxI 最大电流
      SQL.Add(FormBianTai.EditMaxI.Text);
      SQL.Add(',');
      //25 fd_Rated_I 额定电流
      SQL.Add(FormBianTai.EditRatedI.Text);
      SQL.Add(')');

      //26 fd_RefTime 更新时间
      //ShowMessage(SQL.Text);
      try
        ExecSQL();

        ListItem := ListView.Items.Add();
        //0 fd_BianTaiID
        ListItem.Caption := FormBianTai.EditBianTaiID.Text;
        //1 fd_Name
        ListItem.SubItems.Add(FormBianTai.EditName.Text);
        //2 fd_LineID
        ListItem.SubItems.Add(FormBianTai.ComboLineID.Text);
        //3 fd_Type
        ListItem.SubItems.Add(FormBianTai.ComboType.Text);
        //4 fd_Cap(Capcity)
        ListItem.SubItems.Add(FormBianTai.EditCap.Text);
        //5 fd_Status
        ListItem.SubItems.Add(FormBianTai.ComboStatus.Text);
        //6 fd_GSM       手机号码
        ListItem.SubItems.Add(FormBianTai.EditGSM.Text);
        //7 fd_OnlyCard  唯一识别码
        ListItem.SubItems.Add(FormBianTai.EditOnlyCard.Text);
        //8 fd_IP        IP地址
        ListItem.SubItems.Add(FormBianTai.EditIP.Text);
        //9 fd_Port      端口号(port)
        ListItem.SubItems.Add(FormBianTai.EditPort.Text);
        //10 fd_YYID
        ListItem.SubItems.Add(FormBianTai.EditYYID.Text);
        //11 fd_PD2000
        ListItem.SubItems.Add(FormBianTai.ComboPD2000.Text);
        //12 fd_Addr 地址
        ListItem.SubItems.Add(FormBianTai.EditAddr.Text);
        //13 fd_Momo 备注
        ListItem.SubItems.Add(FormBianTai.EditMemo.Text);

        //14 fd_DataCycle
        ListItem.SubItems.Add(FormBianTai.EditDataCycle.Text);
        //15 fd_AutoSend
        ListItem.SubItems.Add(FormBianTai.ComboAutoSend.Text);
        //16 fd_DrqCycle
        ListItem.SubItems.Add(FormBianTai.EditDataCycle.Text);
        //17 fd_DrqDataType
        ListItem.SubItems.Add(FormBianTai.ComboDrqDataType.Text);
        //18 fd_CT
        ListItem.SubItems.Add(FormBianTai.EditCT.Text);
        //19 fd_PT
        ListItem.SubItems.Add(FormBianTai.EditPT.Text);
        //20 fd_FreezeDay 冻结时间(日时)
        ListItem.SubItems.Add(FormBianTai.EditFreezeDay.Text+'日' + FormBianTai.EditFreezeHour.Text + '时');
        //21 fd_FreezeDN  电能时刻(小时)默认0时
        ListItem.SubItems.Add(FormBianTai.EditFreezeDN.Text);
        //22 fd_MaxU 最大电压
        ListItem.SubItems.Add(FormBianTai.EditMaxU.Text);
        //23 fd_MinU 最小电压
        ListItem.SubItems.Add(FormBianTai.EditMinU.Text);
        //24 fd_MaxI 最大电流
        ListItem.SubItems.Add(FormBianTai.EditMaxI.Text);
        //25 fd_RatedI 二次额定电流
        ListItem.SubItems.Add(FormBianTai.EditRatedI.Text);

      Finally
      end; //finally
    end;   //with
  end;     //if
end;

{
flat ListView Header
平滑效果的 ListView
procedure TFormBasic2.FormShow(Sender: TObject);
const
  LVM_GETHEADER = $1000 + 31;
var
  hHeader: THandle;
  style: dWord;
begin

  Flat ListView Header
  hHeader := SendMessage(ListView.Handle, LVM_GETHEADER, 0, 0);
  //style := GetWindowLong(hHeader, GWL_STYLE);
  //style := style xor $2;
  style :=  1;
  SetWindowLong(hHeader, GWL_STYLE, style);
  SetWindowPos(ListView.Handle, Self.Handle, 0, 0, 0, 0,SWP_NOZORDER or SWP_NOSIZE or SWP_NOMOVE or SWP_DRAWFRAME);

  Self.Width  := FormMain.Panel.Width;
  self.Height := FormMain.Panel.Height;
  self.ListView.Width := FormMain.Panel.Width;

end;
}

procedure TFormBasic2.BtnExitClick(Sender: TObject);
begin
  self.Hide();
end;

procedure TFormBasic2.BtnRefreshClick(Sender: TObject);
begin
   ListView.Clear();
   FormMain.LoadTableBianTai('SELECT * FROM tx_BianTai ORDER BY fd_BianTaiID');
   //FormMain.LoadTableBianTai('SELECT * FROM tx_BianTai Where fd_Name like ''%33%''');
end;

procedure TFormBasic2.BtnModifyClick(Sender: TObject);
var
  i : Integer;
  iPos1 : Integer;
  iPos2 : Integer;
  LineId : string;
  Status : string;
  AutoSend    : string;
  DrqDataType : string;
  FreezeDay   : string;
  FreezeHour  : string;
begin
  if ListView.Selected <> nil then
  begin
      FormBianTai.Caption := '台区基本信息-修改';
      FormBianTai.iSetInfo := 0; //不是设置窗口

      FormBianTai.ComboLineID.Items.Clear();
      //向FormBiantTai.ComboLineID中写入线路信息
      //SetLength(ArrayLine,FormBasic1.ListView.Items.Count);
      For i:=0 to FormBasic1.ListView.Items.Count-1 do
      begin
        FormBianTai.ComboLineID.Items.Add(FormBasic1.ListView.Items[i].SubItems.Strings[0]);

        //ArrayLine[i].LineID := FormBasic1.ListView.Items[i].Caption;
        //ArrayLine[i].Name   := FormBasic1.ListView.Items[i].SubItems.Strings[0];
      end;

     //0 fd_BianTaiID
       FormBianTai.EditBianTaiID.Text := ListView.Selected.Caption;

⌨️ 快捷键说明

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