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

📄 info.pas

📁 Monitor.dfm Meter.dpr pasMain.pas
💻 PAS
📖 第 1 页 / 共 2 页
字号:
unit Info;

interface

uses
  Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
  Grids, DBGrids, Db, DBTables, ComCtrls, ToolWin, ImgList, ExtCtrls,
  StdCtrls, Buttons;

type
  TfrmInfo = class(TForm)
    ListView1: TListView;
    Panel1: TPanel;
    RDTcb: TComboBox;
    WTMcb: TComboBox;
    btnFind: TSpeedButton;
    Panel2: TPanel;
    DNOed: TEdit;
    Label1: TLabel;
    Label2: TLabel;
    NAMEed: TEdit;
    Label3: TLabel;
    TELed: TEdit;
    CRMed: TEdit;
    Label4: TLabel;
    SpeedButton3: TSpeedButton;
    SpeedButton4: TSpeedButton;
    MonitorPanel: TPanel;
    Image1: TImage;
    BorderShape: TShape;
    RunShape: TShape;
    Timer1: TTimer;
    Bevel1: TBevel;
    Bevel2: TBevel;
    SpeedButton5: TSpeedButton;
    btnMonitor: TSpeedButton;
    btnStop: TSpeedButton;
    ShowLab: TLabel;
    lMAX: TLabel;
    rMAX: TLabel;
    rINT: TLabel;
    rKwH: TLabel;
    CNST: TLabel;
    Pulse: TLabel;
    btnAddTS: TSpeedButton;
    Imgs0: TImage;
    Imgs1: TImage;
    imgs2: TImage;
    imgs3: TImage;
    imgs4: TImage;
    imgs5: TImage;
    imgs6: TImage;
    imgs7: TImage;
    imgs8: TImage;
    imgs9: TImage;
    Img1: TImage;
    Img2: TImage;
    Img3: TImage;
    Img4: TImage;
    Img5: TImage;
    Img6: TImage;
    Img7: TImage;
    Img8: TImage;
    MeterID: TLabel;
    SpeedButton1: TSpeedButton;
    SpeedButton2: TSpeedButton;
    procedure FormCreate(Sender: TObject);
    procedure ToolButton1Click(Sender: TObject);
    procedure ToolButton8Click(Sender: TObject);
    procedure ToolButton2Click(Sender: TObject);
    procedure ToolButton3Click(Sender: TObject);
    procedure DBGrid2CellClick(Column: TColumn);
    procedure DBGrid2ColExit(Sender: TObject);
    procedure FormResize(Sender: TObject);
    procedure ListView1SelectItem(Sender: TObject; Item: TListItem;
      Selected: Boolean);
    procedure btnFindClick(Sender: TObject);
    procedure Timer1Timer(Sender: TObject);
    procedure SpeedButton5Click(Sender: TObject);
    procedure btnMonitorClick(Sender: TObject);
    procedure btnStopClick(Sender: TObject);
    procedure SpeedButton3Click(Sender: TObject);
    procedure SpeedButton4Click(Sender: TObject);
    procedure btnAddTSClick(Sender: TObject);
    procedure WTMcbKeyPress(Sender: TObject; var Key: Char);
    procedure RDTcbKeyPress(Sender: TObject; var Key: Char);
    procedure ShowDigit(Consumption:string);


    procedure Showimage(Num:Integer; Images:Timage);
    procedure ListView1DblClick(Sender: TObject);
    procedure SpeedButton1Click(Sender: TObject);
    procedure SpeedButton2Click(Sender: TObject);
   

  private
    { Private declarations }
  public
    { Public declarations }
    TIDname: string;
    CheckIndex: Integer;
   //    ItemStr: String;
  end;

var
  frmInfo: TfrmInfo;

implementation

uses pasMain, DM, Promot, ReadData, Global, Tseg, Err;

{$R *.DFM}

procedure TfrmInfo.FormCreate(Sender: TObject);
var
    ListItem: TListItem;

begin
    //image8.Picture:=frminfo.imagelist2.getbitmap(0);
    //Initialize rotate flag
    RunShape.Left := BorderShape.Left;

    //Setup windows size
    Left := 0;
    Top := 0;
    Height := frmMain.Height * 6 div 10;
    Width := 301;

    ListView1.height := Height - Panel1.height - 26;

    //Load Info table
    DM1.DSTdb.First;
    while not DM1.DSTdb.Eof do
    with ListView1 do
    begin
        ListItem := Items.add;
        ListItem.Caption := DM1.DSTdb.FieldByname('NAME').AsString;
        ListItem.ImageIndex := -1;

        ListItem.SubItems.add(DM1.DSTdb.FieldByname('TEL').AsString);
        ListItem.SubItems.add('');

        ListItem.SubItems.add(DM1.DSTdb.FieldByname('DNO').AsString);
        ListItem.SubItems.add(DM1.DSTdb.FieldByname('NMB').AsString);
        ListItem.SubItems.add(DM1.DSTdb.FieldByname('RDT').AsString);
        ListItem.SubItems.add(DM1.DSTdb.FieldByname('CRM').AsString);
        ListItem.SubItems.add(DM1.DSTdb.FieldByname('AUTOREAD').AsString);

        DM1.DSTdb.Next;
    end;
    frminfo.rdtcb.text:='';

end;


procedure TfrmInfo.ToolButton1Click(Sender: TObject);
begin
        DM1.DSTdb.First;
end;

procedure TfrmInfo.ToolButton8Click(Sender: TObject);
begin
        DM1.DSTdb.Last;
end;

procedure TfrmInfo.ToolButton2Click(Sender: TObject);
begin
        DM1.DSTdb.Prior;
end;

procedure TfrmInfo.ToolButton3Click(Sender: TObject);
begin
        DM1.DSTdb.Next;
end;

procedure TfrmInfo.DBGrid2CellClick(Column: TColumn);
begin
        TIDname := DM1.DSTdb.FieldByname('DNO').AsString;
        DTELSTR :=  DM1.DSTdb.FieldByname('TEL').AsString;
        frmMain.StatusBar.SimpleText := 'DNO = ' + '''' + TIDname + '''';
        DM1.ModuleDB.Filter := 'DNO = ' + '''' + TIDname + '''';
end;

procedure TfrmInfo.DBGrid2ColExit(Sender: TObject);
begin
        frmMain.StatusBar.SimpleText := DM1.DSTdb.FieldByname('DNO').AsString;

end;

procedure TfrmInfo.FormResize(Sender: TObject);
begin

    ListView1.height := frmInfo.Height - Panel1.height - 26;

end;

procedure TfrmInfo.ListView1SelectItem(Sender: TObject; Item: TListItem; Selected: Boolean);
var
    ListItem: TListItem;
    NewColumn: TListColumn;
    StrFIG: String;
    I: Integer;
const
    Names: array[0..16, 0..2] of string = (
    ('通讯号', '100', '1'),
    ('帐号', '70', '0'),
    ('用户名', '80', '0'),
    ('地址', '135', '0'),
    ('总电量', '73', '2'),
    ('峰电量', '73', '2'),
    ('平电量', '73', '2'),
    ('谷电量', '73', '2'),
    ('尖电量', '73', '2'),
    ('量程', '73', '2'),
    ('常数', '54', '2'),
    ('变比', '48', '1'),
    ('表型', '50', '0'),
    ('用电类别', '80', '0'),
    ('相位', '42', '1'),
    ('条码号', '48', '1'),
    ('中继表号', '100', '0')
    );
begin

    RUNFLAG := USEREDIT;
    chartflag:=useredit;
    SearchFlag:=False;
    if Selected = FALSE then exit;
    //Show arrow
    dm1.DataDB.Refresh;
    dm1.moduleDB.Refresh;
    dm1.DSTdb.Refresh;
    ListView1.Items[CheckIndex].ImageIndex := -1;
    CheckIndex := ListView1.Selected.index;
    ListView1.Items[CheckIndex].ImageIndex := 4;

    //StatusBar's promot
    frmMain.StatusBar.Panels[1].Text := '[' + ListView1.Items[CheckIndex].Caption + ']';

    //Get DNO field
    DNOstr := ListView1.Items[CheckIndex].SubItems.Strings[2];
    dNameStr := ListView1.Items[CheckIndex].Caption;
    dTelStr := ListView1.Items[CheckIndex].SubItems.Strings[0];

    //Load all fields
    DNOed.Text := DNOstr;
    NAMEed.Text := ListView1.Items[CheckIndex].Caption;
    TELed.Text := ListView1.Items[CheckIndex].SubItems.Strings[0];
    CRMed.Text := ListView1.Items[CheckIndex].SubItems.Strings[5];

    //Load history time
    RDTcb.Items.Clear;
    DM1.TimeDB.Filter := 'DNO = ' + '''' + DNOstr + '''';
    RDTcb.Text :='';
    if not DM1.timedb.Eof then
    begin
        DM1.TimeDB.Last ;
        RDTcb.Text := DM1.timedb.FieldByname('rdt').AsString;
    end;
    DM1.TimeDB.First;

    while not DM1.TimeDB.Eof do
    begin
        RDTcb.items.Add(DM1.TimeDB.FieldByname('RDT').AsString);
        DM1.TimeDB.Next;
    end;

    //Load time segment
    WTMcb.Items.Clear;
    WTMcb.Text := '';

    DM1.WTMdb.Filter := 'DNO = ' + '''' + DNOstr + '''';

    if not DM1.WTMdb.Eof then WTMcb.Text := DM1.WTMdb.FieldByname('TIMESEG').AsString;

    while not DM1.WTMdb.Eof do
    begin
        WTMcb.items.Add(DM1.WTMdb.FieldByname('TIMESEG').AsString);
        DM1.WTMdb.Next;
    end;

    //Load Billing Table
    DM1.BillDB.First;
    frmRead.USG_E.Clear;
    while not DM1.BillDB.Eof do
    begin
        frmRead.USG_E.Items.Add(DM1.BillDB.FieldByname('NAME').AsString);
        DM1.BillDB.Next;
    end;

    //Load Moduler table
    DM1.ModuleDB.Filter := 'DNO = ' + '''' + DNOstr + '''';
    with frmRead.DataListView do
    begin
        Visible := FALSE;
        Items.Clear;
        Columns.Clear;

        //Add new column
        for I := Low(Names) to High(Names) do
        begin
            NewColumn := Columns.Add;
            NewColumn.Width := StrToInt(Names[I][1]);
            NewColumn.Caption := Names[I][0];

            case StrToInt(Names[I][2]) of
            0: NewColumn.Alignment := (taLeftJustify);
            1: NewColumn.Alignment := (taCenter);
            2: NewColumn.Alignment := (taRightJustify);
            end;
        end;
        //NewColumn.AutoSize := TRUE;
    end;

    frmRead.Caption := '当前操作台区 [' + dNameStr + ']';
    frmRead.DNO_E.Text := DNOstr;

    while not DM1.ModuleDB.Eof do
    with frmRead.DataListView do
    begin
        ListItem := Items.add;
        ListItem.Caption := DM1.ModuleDB.FieldByname('UNO').AsString;
        ListItem.ImageIndex := -1;

        ListItem.SubItems.add(DM1.ModuleDB.FieldByname('MNO').AsString);
        ListItem.SubItems.add(DM1.ModuleDB.FieldByname('NAME').AsString);
        ListItem.SubItems.add(DM1.ModuleDB.FieldByname('ADDRESS').AsString);
        StrFIG := Format('%8.2f', [DM1.ModuleDB.FieldByname('FIG').AsFloat]);
        ListItem.SubItems.add(StrFIG);
        StrFIG := Format('%8.2f', [DM1.ModuleDB.FieldByname('peakFIG').AsFloat]);
        ListItem.SubItems.add(StrFIG);
        StrFIG := Format('%8.2f', [DM1.ModuleDB.FieldByname('shoulderFIG').AsFloat]);
        ListItem.SubItems.add(StrFIG);
        StrFIG := Format('%8.2f', [DM1.ModuleDB.FieldByname('offpeakFIG').AsFloat]);
        ListItem.SubItems.add(StrFIG);
        StrFIG := Format('%8.2f', [DM1.ModuleDB.FieldByname('sharpFIG').AsFloat]);
        ListItem.SubItems.add(StrFIG);
        ListItem.SubItems.add(DM1.ModuleDB.FieldByname('SCP').AsString);
        ListItem.SubItems.add(DM1.ModuleDB.FieldByname('CNST').AsString);
        ListItem.SubItems.add(DM1.ModuleDB.FieldByname('AMP').AsString);
        ListItem.SubItems.add(DM1.ModuleDB.FieldByname('MODEL').AsString);

        if DM1.BillDB.Locate('USG', DM1.ModuleDB.FieldByname('USG').AsString, [loCaseInsensitive]) then
            ListItem.SubItems.add(DM1.BillDB.FieldByname('NAME').AsString)
        else
            ListItem.SubItems.add('');

        ListItem.SubItems.add(DM1.ModuleDB.FieldByname('PHS').AsString);
        ListItem.SubItems.add(DM1.ModuleDB.FieldByname('ampere').AsString);
        ListItem.SubItems.add(DM1.ModuleDB.FieldByname('BY').AsString);

        DM1.ModuleDB.Next;
    end;

    frmRead.DataListView.Visible := TRUE;
end;


procedure TfrmInfo.btnFindClick(Sender: TObject);
var
    I: Integer;
    NewColumn: TListColumn;
    ListItem: TListItem;
    StrFIG: String;

const
    Names: array[0..15, 0..2] of string = (
    ('通讯号', '100', '1'),
    ('标志', '26', '1'),
    ('用户名', '80', '0'),
    ('地址', '120', '0'),
    ('本次总电量', '86', '2'),
    ('用电量', '73', '2'),
    ('本次峰电量', '86', '2'),
    ('本次平电量', '86', '2'),
    ('本次谷电量', '86', '2'),
    ('本次尖电量', '86', '2'),
    ('冻结电量', '80', '2'),
    ('相位', '42', '1'),
    ('条码号', '48', '1'),
    ('中继表号', '84', '1'),
    ('读表时间', '112', '1'),
    ('集抄时间', '112', '1')
    );
begin

    RUNFLAG := SEARCHRDT;

//Close Edit Panel
    frmRead.DataPanel.Visible := FALSE;

//Creat Columns
    with frmRead.DataListView do
    begin
        Visible := FALSE;
        Items.Clear;
        Columns.Clear;

        for I := Low(Names) to High(Names) do
        begin
            NewColumn := Columns.Add;
            NewColumn.Width := StrToInt(Names[I][1]);
            NewColumn.Caption := Names[I][0];

            case StrToInt(Names[I][2]) of
            0: NewColumn.Alignment := (taLeftJustify);
            1: NewColumn.Alignment := (taCenter);
            2: NewColumn.Alignment := (taRightJustify);
            end;
        end;
    end;

//Load Data
    DM1.DataDB.Filter := 'RDT = ' + '''' + RDTcb.Text + '''' + ' and '+ 'DNO=' + '''' + DNOstr + '''';
    while not DM1.DataDB.EOF do
    with frmRead.DataListView do
    begin
        ListItem := Items.Add;
        ListItem.Caption := DM1.DataDB.FieldByname('UNO').AsString;
        ListItem.ImageIndex := -1;

⌨️ 快捷键说明

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