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