📄 pasmain.pas
字号:
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 + -