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

📄 pasmain.pas

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

end;


procedure TfrmMain.N9Click(Sender: TObject);
begin
         sortflag :=1;
       //frmRead.DataListViewColumnClick;
end;


procedure TfrmMain.DeleteHistoryClick(Sender: TObject);
var
    i: Integer;
    Item: tListItem;
begin
    DM1.DataDB.Filter := 'RDT = ' + '''' + frmInfo.RDTcb.Text + ''''+' and ' + 'DNO = ' + '''' + DNOstr + '''';
    if DM1.DataDB.Eof then
    begin
        WarnAbout.Hide;
        WarnAbout.Promot.Caption := '无历史抄表记录!';
        WarnAbout.ShowModal;
        exit;
    end;

    frmPromot.Hide;
    frmPromot.Promot.Caption := '删除本次抄表记录 [' + frminfo.RDTcb.Text + ']?';
    if frmPromot.ShowModal <> mrOK then exit;

    with DM1.Backup do
    begin
        Close;
        with SQL do
        begin
            Clear;
            Add('delete from RMT ');
            Add('where RDT =' + '''' + frminfo.RDTcb.Text + '''' + ' and ' + 'DNO = ' + '''' + DNOstr + '''')
        end;
        Execsql;
    end;

    with DM1.Backup do
    begin
        Close;
        with SQL do
        begin
            Clear;
            Add('delete from DRT');
            Add('where RDT =' + '''' + frmInfo.RDTcb.Text + '''' + ' and ' + 'DNO = ' + '''' + DNOstr + '''');
        end;
        ExecSQL;
    end;

    for i := 0 to frmInfo.ListView1.Items.Count - 1 do
    begin
        If frmInfo.ListView1.Items[i].SubItems.Strings[2] = DNOstr then
        begin
            frmInfo.ListView1SelectItem(frmInfo, Item, True);
            break;
        end;
    end;
end;


procedure TfrmMain.N10Click(Sender: TObject);
var
    i: Integer;
begin

    DM1.WTMdb.Filter := 'TimeSeg = ' + '''' + frminfo.WTMcb.Text + ''''+' and ' + 'DNO = ' + '''' + DNOstr + '''';
    if not DM1.wtmDB.Eof then
    begin
        frmPromot.Hide;
        frmPromot.Promot.Caption := '删除抄表时段 [' + frmInfo.WTMcb.Text + ']?';
        if frmPromot.ShowModal <> mrOK then exit;

        for i := 0 to (frmInfo.WTMcb.Items.Count - 1) do
        begin
            if frmInfo.WTMcb.Items.Strings[i] = frmInfo.WTMcb.Text then
            begin
                frmInfo.WTMcb.Items.Delete(i);
                break;
            end;
        end;
        frmInfo.WTMcb.Text := '';

        DM1.WTMdb.Delete;
    end
    else
    begin
        WarnAbout.Hide;
        WarnAbout.Promot.Caption := '无此抄表时段!';
        WarnAbout.ShowModal;
    end;
end;

procedure TfrmMain.RunTimgClick(Sender: TObject);
begin
    RunTestTimer.Enabled := True;
    Auto := 2;
    frmMain.RunTimg.Enabled := False;
    frmMain.StopTiming.Enabled := True;
end;


procedure TfrmMain.RunTestTimerTimer(Sender: TObject);
begin
    //RunTestTimer.Enabled := True;

    if Auto = 2 then
    begin
        ActiveCommand := True;
        AutoReadMeter(sender);
        exit;
    end;

    If AutoCRM = 2 Then
    begin
        ActiveCommand:=true;
        AutoReadMeterCRM(sender);
    end;
end;


procedure TfrmMain.StopTimingClick(Sender: TObject);
begin
        RunTestTimer.Enabled := false;
        auto := 1;
        ActiveCommand:=false;
        frmmain.RunTimg.Enabled :=true;
        frmmain.StopTiming.Enabled :=false;
end;


procedure TfrmMain.AutoONClick(Sender: TObject);
begin
        AutoCRM := 2;
        RunTestTimer.Enabled := True;
        frmmain.AutoON.Enabled := False;
        frmmain.AutoOFF.Enabled := True;
end;

procedure TfrmMain.AutoOFFClick(Sender: TObject);
begin
        RunTestTimer.Enabled := False;
        AutoCRM := 0;
        frmmain.AutoON.Enabled := True;
        frmmain.AutoOFF.Enabled := False;
end;


procedure TfrmMain.price_menuClick(Sender: TObject);
begin
    frmprice.showmodal;
end;

procedure TfrmMain.StatusBarDrawPanel(StatusBar: TStatusBar;
  Panel: TStatusPanel; const Rect: TRect);
begin
    DrawRect := Rect;
end;

procedure TfrmMain.FormShow(Sender: TObject);
begin
    formdlg.showmodal;
    Prog := TProgressBar.Create(frmMain);
    SetupCommunication(Sender);
end;

procedure TfrmMain.AboutClick(Sender: TObject);
begin
//       AboutBox.formCreate(Sender);
       AboutBox.showmodal;
end;

procedure TfrmMain.CountLineWasteClick(Sender: TObject);
var
    ListItem: TListItem;
    InitReading: array of Real;
    CurReading: array of Real;
    Consumption: array of Real;
    I: Integer;
const
    Names: array[0..7, 0..3] of string = (
    ('序号.', '36', '1', '0'),
    ('本次表示数', '80', '2', '0'),
    ('上次表示数', '73', '2', '0'),
    ('用电量', '73', '2', '0'),
    ('抄表时间', '120', '1', '0'),
    ('问题', '54', '1', '0'),
    ('可能原因', '120', '0', '0'),
    ('', '40', '1', '1')
    );
begin

    ChartFlag := _TOTALPOWER;

    frmModuler.IDLab.Caption := ' 台区编号: ' + DNOstr + ' ';
    frmModuler.NAMELab.Caption := ' 台区名称: ' + dNameStr + ' ';
    frmModuler.labChart.Caption := '最小用电量';
    frmModuler.FastBtn.Caption := '&点图';
    frmModuler.FastBtn.Glyph := frmModuler.imgDotBtn.Glyph;
    frmModuler.Min_E.Text := '0';


    //Search reading time
    DM1.TimeDB.Filter := 'DNO = ' + '''' + DNOstr + '''';
    if DM1.TimeDB.Eof then exit;

    //Count initial consumption
    DM1.ModuleDB.Filter := 'DNO = ' + '''' + DNOstr + '''';

    SetLength(InitReading, DM1.TimeDB.RecordCount + 1);
    SetLength(CurReading, DM1.TimeDB.RecordCount + 1);
    SetLength(Consumption, DM1.TimeDB.RecordCount + 1);

    InitReading[0] := 0;
    while not DM1.ModuleDB.Eof do
    begin
        //Search data
        DM1.DataDB.Filter := 'DNO = ' + '''' + DNOstr + '''' + ' and ' +
                             'UNO = ' + '''' + DM1.ModuleDB.FieldByname('UNO').AsString + '''' + ' and ' +
                             'RDT = ' + '''' + DM1.TimeDB.FieldByname('RDT').AsString + '''';
        InitReading[0] := InitReading[0] + DM1.DataDB.FieldByname('FIG').AsFloat;
        DM1.ModuleDB.Next;
    end;

    //Count consumption
    I := 0;
    while not DM1.TimeDB.Eof do
    begin
        DM1.ModuleDB.First;

        CurReading[I] := 0;
        while not DM1.ModuleDB.Eof do
        begin
            //Search data
            DM1.DataDB.Filter := 'DNO = ' + '''' + DNOstr + '''' + ' and ' +
                                 'UNO = ' + '''' + DM1.ModuleDB.FieldByname('UNO').AsString + '''' + ' and ' +
                                 'RDT = ' + '''' + DM1.TimeDB.FieldByname('RDT').AsString + '''';
            CurReading[I] := CurReading[I] + DM1.DataDB.FieldByname('FIG').AsFloat;
            DM1.ModuleDB.Next;
        end;
        Consumption[I] := CurReading[I] - InitReading[I];
        InitReading[I + 1] := CurReading[I];
        I := I + 1;
        DM1.TimeDB.Next;
    end;


    frmModuler.Hide;

    //Create new culomns
    with frmModuler.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;

            case StrToInt(Names[I][3]) of
            0: NewColumn.ImageIndex := -1;
            1: NewColumn.ImageIndex := 0;
            end;
        end;
        NewColumn.AutoSize := TRUE;
    end;

    //Add order and difference
    frmModuler.DataListView.AlphaSort;

    frmModuler.InitialCB.Clear;
    frmModuler.InitialCB.Text := '';
    frmModuler.PreviousCB.Clear;
    frmModuler.PreviousCB.Text := '';

    //Load data
    I := 0;
    DM1.TimeDB.First;
    while not DM1.TimeDB.Eof do
    with frmModuler.DataListView do
    begin
        ListItem := Items.Add;
        ListItem.Caption := IntToStr(I); //Order
        ListItem.ImageIndex := -1;

        ListItem.SubItems.Add(Trim(Format('%8.2f',[CurReading[I]])));
        ListItem.SubItems.Add(Trim(Format('%8.2f',[InitReading[I]])));
        ListItem.SubItems.Add(Trim(Format('%8.2f',[Consumption[I]])));
        ListItem.SubItems.Add(DM1.TimeDB.FieldByname('RDT').AsString);

        frmModuler.InitialCB.Items.Add(DM1.TimeDB.FieldByname('RDT').AsString);
        frmModuler.PreviousCB.Items.Add(DM1.TimeDB.FieldByname('RDT').AsString);

        ListItem.SubItems.Add('');
        ListItem.SubItems.Add('');
        ListItem.SubItems.Add('');  //Mark

        DM1.TimeDB.Next;
        I := I + 1;
    end;

    frmModuler.PointBtn.Click;

    frmModuler.Left := ( Screen.Width - frmModuler.Width ) div 2;
    frmModuler.Top := ( Screen.Height - frmModuler.Height ) div 2;

    frmModuler.DataListView.Visible := TRUE;
    frmModuler.Caption := 'Power Consumption Analysis for Distribution Transformer';
    frmModuler.PanelCount.Visible := TRUE;
    frmModuler.ShowModal;
end;


procedure TfrmMain.CustomManthlyConsumption1Click(Sender: TObject);
begin
    //if frmRead.DataListView.SelCount = 0 then
    //begin
    //    WarnAbout.Hide;
    //    WarnAbout.Promot.Caption := '请选择打印用户信息!';
    //    WarnAbout.ShowModal;
    //    exit;
    //end;
    printitem:=1;
    DM1.TimeDB.Filter := 'DNO = ' + '''' + DNOstr + '''';
    if DM1.TimeDB.Eof then exit;
   
    chooserdt.combobox1.Clear;
    chooserdt.combobox1.Text := '';
    chooserdt.combobox2.Clear;
    chooserdt.combobox2.Text := '';
    DM1.TimeDB.First;
    while not DM1.TimeDB.Eof do
        begin
                chooserdt.combobox1.Items.Add(DM1.TimeDB.FieldByname('RDT').AsString);
                chooserdt.combobox2.Items.Add(DM1.TimeDB.FieldByname('RDT').AsString);
                DM1.TimeDB.Next;
        end;
   chooserdt.showmodal;

end;

procedure TfrmMain.StatisticConsumerExecute(Sender: TObject);
var
    ListItem: TListItem;
    StrFIG: String;
    Consumption: real;
    I: Integer;
const
    Names: array[0..10, 0..3] of string = (
    ('序号.', '36', '1', '0'),
    ('标志', '30', '1', '0'),
    ('当前总电量', '80', '2', '0'),
    ('用电量', '80', '2', '0'),
    ('当前峰电量', '80', '2', '0'),
    ('当前平电量', '80', '2', '0'),
    ('当前谷电量', '80', '2', '0'),
    ('抄表时间', '120', '2', '0'),
    ('问题', '20', '1', '2'),
    ('可能原因', '120', '2', '0'),
    ('', '40', '1', '1')
    );
begin

    ChartFlag := _CONSUMERPOWER;
    if RUNFLAG = SEARCHRDT then
    begin
        frmPromot.Hide;
        frmPromot.Promot.Caption := '请进入用户编辑状态!';
        frmPromot.ShowModal;
        exit;
    end;

    if  frmRead.DataListView.SelCount = 0 then
    begin
        frmPromot.Hide;
        frmPromot.Promot.Caption := '无用户被选中!';
        frmPromot.ShowModal;
        exit;
    end;

    frmModuler.IDLab.Caption := UNOstr;
    frmModuler.NAMELab.Caption := '用户名: ' + NAMEstr;

⌨️ 快捷键说明

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