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

📄 pasmain.pas

📁 Monitor.dfm Meter.dpr pasMain.pas
💻 PAS
📖 第 1 页 / 共 4 页
字号:
    end;
    activecommand:=true;
    frmMain.StatusBar.Panels[1].Text := '';
    if (dialrs232<>1) and (rtconnect=1) then
        begin
        if frminfo.ListView1.Items[frminfo.ListView1.Selected.index].SubItems.Strings[0]<>DialOK THEN
                BEGIN
                        frmMain.StatusBar.Panels[1].Text := '台区选择错误!';
                        frmPromot.Hide;
                        frmPromot.Promot.Caption := '请选择建立链路台区!';
                        Download_T.Enabled := true;
                        if frmPromot.ShowModal <> mrOK then exit;
                        EXIT;
                END;
        end;
//Read record length
    if (PutTXD(_GetAllRec, 9, rStr,4000) = False) or (Copy(rStr, 1, 1) <> 'N') or (Copy(rStr, 8, 2) <> _CRLF) then
    begin
        frmMain.StatusBar.Panels[1].Text := '接收异常,请重试!';
        Download_T.Enabled := TRUE;
        activecommand:=false;
        exit;
    end;

    //Record length
    Num := StrToInt(Copy(rStr, 2, 6));
    if Num = 0 then
    begin
        frmMain.StatusBar.Panels[1].Text := '表长度为零!';
        Download_T.Enabled := TRUE;
        activecommand:=false;
        exit;
    end;
    //if Num > _MaxIDNum, error
    if Num > _MaxIDNum then
    begin
        frmMain.StatusBar.Panels[1].Text := '表长度溢出!';
        Download_T.Enabled := TRUE;
        activecommand:=false;
        exit;
    end;

    Prog.Min := 1;
    Prog.Max := Num;

//Read all records
    ErrorNum := 0;

    with frmRead.DataListView do
    for I := 1 to Num do
    begin
        if (GetRXD(_RecLen, rStr) = False) or (Copy(rStr, _Reclen-1, 1) <> _CR) then
        begin
            frmMain.StatusBar.Panels[1].Text := '下载异常,请重试!';
            Download_T.Enabled := TRUE;
            activecommand:=false;
            Exit;
        end;

        if not ((DM1.ModuleDB.Locate('DNO;UNO', VarArrayOf([DNOstr, Copy(rStr, 1, 12)]), [loCaseInsensitive]))) then
           ErrorNum := ErrorNum + 1;

        frmRead.DataListView.Color := clSilver;

        ListItem := Items.Add;
        ListItem.ImageIndex := -1;

        ListItem.Caption := Copy(rStr, 1, 12);
        ListItem.SubItems.Add(Copy(rStr, 14, 1));
        ListItem.SubItems.Add(Copy(rStr, 16, 1));

        if (DM1.ModuleDB.Locate('DNO;UNO', VarArrayOf([DNOstr, Copy(rStr, 1, 12)]), [loCaseInsensitive])) and (DM1.moduleDB.FieldByname('cnst').Asinteger<>0) then
        begin

        tempstr:= trim(format('%9.2f',[strtoint(Copy(rStr, 18, 6))+strtoint(copy(rstr,26,2))/100]));

        ListItem.SubItems.add(tempstr);
        tempstr:= trim(Format('%8.2f', [DM1.ModuleDB.FieldByname('FIG').AsFloat]));
        ListItem.SubItems.add(tempstr);
        listitem.SubItems.Add(Format('%8.2f',[StrToFloat(ListItem.SubItems.Strings[2]) - StrToFloat(ListItem.SubItems.Strings[3])]));

        end
        else
        begin
        ListItem.SubItems.add(format('%9.2f',[strtoint(Copy(rStr, 18, 6))+strtoint(copy(rstr,26,2))/100]));
        listitem.Subitems.Add('0.00');
        listitem.SubItems.Add('0.00');
        end;
        tempstr:= trim(format('%9.2f',[strtoint(Copy(rStr, 29, 6))+strtoint(copy(rstr,37,2))/100]));

        ListItem.SubItems.add(tempstr);
        tempstr:= trim(format('%9.2f',[strtoint(Copy(rStr, 40, 6))+strtoint(copy(rstr,48,2))/100]));

        ListItem.SubItems.add(tempstr);
        tempstr:= trim(format('%9.2f',[strtoint(Copy(rStr, 51, 6))+strtoint(copy(rstr,59,2))/100]));

        ListItem.SubItems.add(tempstr);
        tempstr:= trim(format('%9.2f',[strtoint(Copy(rStr, 62, 6))+strtoint(copy(rstr,70,2))/100]));

        ListItem.SubItems.add(tempstr);


        ListItem.SubItems.Add(Copy(rStr, 73, 6));
        ListItem.SubItems.Add(Copy(rStr, 79, 4));


        ListItem.SubItems.add(trim(format('%9.2f',[strtoint(Copy(rStr, 84, 6))+strtoint(copy(rstr,92,2))/100])));

        ListItem.SubItems.Add(Copy(rStr, 95, 1));
        ListItem.SubItems.Add(Copy(rStr, 97, 1));
        ListItem.SubItems.Add(Copy(rStr, 99, 12));
        ListItem.SubItems.Add(Copy(rStr, 112, 6));

        ListItem.SubItems.Add('20' + Copy(rStr, 119, 2) + '-' + Copy(rStr, 121, 2) + '-' + Copy(rStr, 123, 2) + ' ' +
                                     Copy(rStr, 125, 2) + ':' + Copy(rStr, 127, 2) + ':' + Copy(rStr, 129, 2));

        frmRead.DataListView.items[I - 1].Selected := True;
        frmRead.DataListView.items[I - 1].MakeVisible(True);

        Prog.Position := I;

        frmMain.StatusBar.Panels[1].Text := '已经完成: ' + IntToStr(I) + '/' + IntToStr(Num);
    end;

    if ErrorNum <> 0 then
        frmMain.StatusBar.Panels[1].Text := '有 '+ IntToStr(ErrorNum)+' 个ID不符,请检查!';

    Download_T.Enabled := TRUE; //Read button

    RUNFLAG := COMMANDTN0;

    frmRead.SavePanel.Visible := TRUE;
    if ErrorNum<>0 then
        frmread.btnSave.Enabled:=false
    else
        frmread.btnSave.Enabled:=true;
        
    activecommand:=false;
end;


procedure TfrmMain.SetParamExecute(Sender: TObject);
begin
    frmSetup.ShowModal;
end;


procedure TfrmMain.EditInfoClick(Sender: TObject);
begin
    frmInfo.WindowState := wsMaximized;
end;


procedure  TfrmMain.Delay1s(Sender: TObject);
begin
    TimeoutF:= False;

    TimerOut.Enabled := False;
    TimerOut.Interval:= 1500;
    TimerOut.Enabled:= True;
    while True do
    begin
        if not ActiveCommand then break;
        Application.ProcessMessages;
        if not ActiveCommand then break;

        if TimeOutF then
        begin
            TimeoutF := False;
            exit;
        end;
    end;

    TimerOut.Enabled := False;
    TimerOut.Interval := 1000;
    TimeoutF := False;
end;


procedure TfrmMain.Transformer_TClick(Sender: TObject);
begin
    if  frmInfo.WindowState = wsnormal then
        frmInfo.WindowState := wsmaximized
    else
        frmInfo.WindowState := wsnormal
end;

procedure TfrmMain.Consumer_TClick(Sender: TObject);
begin
    if RUNFLAG <> USEREDIT then exit;
    if  frmRead.WindowState = wsnormal then
    begin
        frmRead.WindowState := wsmaximized;
        frmRead.DataPanel.Visible := TRUE;
    end
    else
    begin
        frmRead.WindowState := wsnormal;
        frmRead.DataPanel.Visible := FALSE;
    end;
end;


procedure TfrmMain.EditUserClick(Sender: TObject);
begin
        frmRead.DataPanel.Visible := True;
end;

procedure TfrmMain.MonitorkwhClick(Sender: TObject);
begin
        frmMain.Monitor_T.OnClick(SENDER);
end;

procedure TfrmMain.Interactive1Click(Sender: TObject);
begin
        command.WindowState :=wsmaximized;
end;

procedure TfrmMain.SetupPtrClick(Sender: TObject);
begin
        PrinterSetupDialog.Execute;
end;

procedure TfrmMain.N1Click(Sender: TObject);
begin
        Frmtpwin.ShowModal;
end;

procedure TfrmMain.Dialog_TClick(Sender: TObject);
begin
        if command.WindowState=wsnormal then
        command.WindowState :=wsmaximized
        else
        command.WindowState:=wsnormal;
end;

procedure TfrmMain.SAVETN0Click(Sender: TObject);
var
 i:integer;
 SaveStr: string;
 savetime:string;

begin

        if RUNFLAG=commandtn0 then
            begin
                frmPromot.Hide;
                frmPromot.Promot.Caption := '是否保存抄表数据?';
                if frmPromot.ShowModal <> mrOK then exit;

            end
            ELSE
            EXIT;
        savetime:=CurTime;
        for i:=0 to frmread.datalistview.items.count-1 do
        Begin
                //if DM1.moduledb.Locate('uno',frmread.datalistview.items[i].Caption ,[loPartialKey]) then
                   //DM1.moduleDB.Filter := 'DNO = ' + '''' + DNOstr + ''''+' and '+' uno = '+''''+frmread.datalistview.items[i].Caption+'''';
                   //if  dm1.ModuleDB.Eof then

                   dm1.datadb.append;
                   DM1.dataDB.FieldByName('dno').AsString := dnostr;
                   DM1.dataDB.FieldByName('uno').AsString := frmread.datalistview.items[i].Caption;
                   SaveStr := frmRead.datalistview.items[i].SubItems.Strings[1];
                   DM1.dataDB.FieldByName('sf').AsString := SaveStr;
                  // SaveStr := frmRead.datalistview.items[i].SubItems.Strings[1];
                   //DM1.dataDB.FieldByName('sf').AsString := SaveStr;

                   //DM1.dataDB.FieldByName('sf').AsString := frmread.datalistview.items[i].SubItems.Strings[0];
                   DM1.dataDB.FieldByName('scp').AsString := frmread.datalistview.items[i].SubItems.Strings[5];
                   DM1.dataDB.FieldByName('cnst').AsString := frmread.datalistview.items[i].SubItems.Strings[6];
                   DM1.dataDB.FieldByName('fig').AsString := frmread.datalistview.items[i].SubItems.Strings[2];
                   DM1.dataDB.FieldByName('phs').AsString := frmread.datalistview.items[i].SubItems.Strings[8];
                   DM1.dataDB.FieldByName('bys').AsString := frmread.datalistview.items[i].SubItems.Strings[9];
                   DM1.dataDB.FieldByName('by').AsString := frmread.datalistview.items[i].SubItems.Strings[10];
                   DM1.dataDB.FieldByName('dtr').AsString := frmread.datalistview.items[i].SubItems.Strings[11];
                   DM1.dataDB.FieldByName('rdt').AsString := savetime;
                   dm1.datadb.post;
                   dm1.dataDB.FlushBuffers ;
                   dm1.datadb.refresh;
                   //   DM1.dataDB.fieldByName('dno').AsString :=dm1.moduledb.fieldbyname('fig').value- val(frmread.datalistview.items[i].SubItems.Strings[3]);
                   //end;


            end;
            dm1.timedb.Append;
            dm1.TimeDB.fieldbyname('dno').asstring:=dnostr;
            dm1.TimeDB.fieldbyname('rdt').asstring:=savetime;
            dm1.TimeDB.post;
            dm1.TimeDB.FlushBuffers ;
            dm1.TimeDB.refresh;

end;

procedure TfrmMain.ExportDataClick(Sender: TObject);
begin
      FRMOUTPUT.SHOWmodal;
end;

procedure TfrmMain.SetupTimingClick(Sender: TObject);
begin
    frmtestarg.FormCreate(Sender);
    frmtestarg.showmodal;
end;


procedure TfrmMain.SaveData(Sender: TObject);
var
    i: integer;
    SaveStr: string;
    SaveTime: string;
begin

    if RUNFLAG = COMMANDTN0 then
    begin
        frmPromot.Hide;
        frmPromot.Promot.Caption := '是否保存抄表数据?';
        if frmPromot.ShowModal <> mrOK then exit;
    end
    else
    exit;

    SaveTime := CurTime;
    DM1.ModuleDB.Filter := 'DNO = ' + '''' + DNOstr + '''';

    with frmRead.DataListView do
    for i := 0 to Items.Count - 1 do
    begin
        DM1.ModuleDB.first;
        if DM1.ModuleDB.Locate('DNO;UNO', VarArrayOf([DNOstr, Items[i].Caption]), [loCaseInsensitive]) then
        begin
            DM1.ModuleDB.Edit;
            DM1.ModuleDB.FieldByName('FIG').AsString := Items[i].SubItems.Strings[2];
            DM1.ModuleDB.FieldByName('peakFIG').AsString := Items[i].SubItems.Strings[5];
            DM1.ModuleDB.FieldByName('shoulderFIG').AsString := Items[i].SubItems.Strings[6];
            DM1.ModuleDB.FieldByName('offpeakFIG').AsString := Items[i].SubItems.Strings[7];
            DM1.moduleDB.FieldByName('RDT').AsString := SaveTime;
            DM1.ModuleDB.Post;
            DM1.moduleDB.FlushBuffers ;
            DM1.ModuleDB.refresh;
        end;

        DM1.DataDB.Active := TRUE;
        DM1.DataDB.Append;
        DM1.DataDB.FieldByName('DNO').AsString := DNOstr;
        DM1.DataDB.FieldByName('UNO').AsString := Items[i].Caption;
        SaveStr := Items[i].SubItems.Strings[1];
        DM1.DataDB.FieldByName('SF').AsString := SaveStr;

        DM1.DataDB.FieldByName('SCP').AsString := Items[i].SubItems.Strings[9];
        DM1.DataDB.FieldByName('CNST').AsString := Items[i].SubItems.Strings[10];
        DM1.DataDB.FieldByName('FIG').Asstring := items[i].SubItems.Strings[2];
        DM1.DataDB.FieldByName('FREFIG').Asstring := Items[i].SubItems.Strings[11];
        DM1.DataDB.FieldByName('DIF').AsString := Items[i].SubItems.Strings[4];
        DM1.DataDB.FieldByName('peakfig').AsString := Items[i].SubItems.Strings[5];
        DM1.DataDB.FieldByName('shoulderfig').AsString := Items[i].SubItems.Strings[6];
        DM1.DataDB.FieldByName('offpeakfig').AsString := Items[i].SubItems.Strings[7];
        DM1.DataDB.FieldByName('sharpfig').AsString := Items[i].SubItems.Strings[8];
        DM1.DataDB.FieldByName('PHS').AsString := Items[i].SubItems.Strings[12];
        DM1.DataDB.FieldByName('BYS').AsString := Items[i].SubItems.Strings[13];
        DM1.DataDB.FieldByName('BY').AsString := Items[i].SubItems.Strings[14];
        DM1.DataDB.FieldByName('DTR').AsString := Items[i].SubItems.Strings[16];
        DM1.DataDB.FieldByName('RDT').AsString := SaveTime;

        DM1.DataDB.post;
        DM1.DataDB.FlushBuffers ;
        DM1.DataDB.refresh;
    end;

    DM1.TimeDB.Append;
    DM1.TimeDB.FieldByName('DNO').AsString := DNOstr;
    DM1.TimeDB.FieldByName('RDT').AsString := SaveTime;
    DM1.TimeDB.Post;
    DM1.TimeDB.FlushBuffers ;
    DM1.TimeDB.Refresh ;
    DM1.DSTDB.Active := TRUE;
    if DM1.DSTDB.Locate('DNO', DNOstr, [loCaseInsensitive]) then
    begin
        DM1.DSTDB.Edit;
        DM1.DSTDB.FieldByName('DNO').AsString := DNOstr;
        DM1.DSTDB.fieldbyname('rdt').AsString := SaveTime;
        DM1.DSTDB.Post;
        DM1.DSTDB.FlushBuffers ;
        DM1.DSTDB.refresh;
    end;

    with frmInfo.ListView1 do
    for i := 0 To Items.Count - 1 do
    begin
        If Items[i].SubItems.Strings[2] = DNOstr Then
        begin
            Items[i].SubItems.Strings[4] := SaveTime;
            frmInfo.RDTcb.Text := SaveTime;
//            frmInfo.btnFind.Click;
            break;
        end;

⌨️ 快捷键说明

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