📄 readdata.pas
字号:
SavePanel.Visible := FALSE;
frmRead.DataListView.Color := clWhite;
ChartFlag:=9 ;//temp
activecommand:=false;
end;
procedure TfrmRead.btnDeleteClick(Sender: TObject);
var
MeterID: String;
begin
if UNO_E.Text = '' then exit;
DM1.ModuleDB.Active := TRUE;
MeterID := ConvertID(UNO_E.Text);
if DM1.ModuleDB.Locate('DNO;UNO', VarArrayOf([DNOstr,MeterID]), [loCaseInsensitive]) then
begin
frmPromot.Hide;
frmPromot.Promot.Caption := '是否删除 [' + UNO_E.Text + '] 用户信息?';
if frmPromot.ShowModal <> mrOK then exit;
DM1.ModuleDB.Delete;
DataListView.Items.Delete(DataListView.Selected.Index);
end
else
begin
frmPromot.Hide;
frmPromot.Promot.Caption := '无此 [' + UNO_E.Text + '] 用户信息!';
if frmPromot.ShowModal <> mrOK then exit;
end;
if DM1.DSTdb.Locate('DNO', DNOstr, [loCaseInsensitive]) then
begin
DM1.DSTdb.Edit;
DM1.DSTdb.FieldByName('DNO').ASSTRING := DNOstr;
DM1.DSTdb.FieldByName('NMB').AsInteger := DM1.ModuleDB.RecordCount;
DM1.DSTdb.Post;
DM1.DSTdb.FlushBuffers ;
dm1.DSTdb.Refresh;
end;
end;
procedure TfrmRead.btnAppendClick(Sender: TObject);
var
I, tStatus: Integer;
ListItem: TListItem;
MeterID: String;
begin
if UNO_E.Text = '' then exit;
DM1.ModuleDB.Active := TRUE;
MeterID := ConvertID(UNO_E.Text);
if DM1.ModuleDB.Locate('DNO;UNO', VarArrayOf([DNOstr,MeterID]), [loCaseInsensitive]) then
begin
tStatus := 1;
DM1.ModuleDB.Edit;
frmPromot.Hide;
frmPromot.Promot.Caption := '是否修改 [' + UNO_E.Text + '] 用户信息?';
if frmPromot.ShowModal <> mrOK then exit;
end
else
begin
tStatus := 2;
if addorinsert=1 then
begin
if DM1.ModuleDB.Locate('DNO;UNO', VarArrayOf([DNOstr,datalistview.items[datalistview.selected.index].caption]), [loCaseInsensitive]) then
DM1.ModuleDB.insert
else
exit;
frmPromot.Hide;
frmPromot.Promot.Caption := '是否插入 [' + UNO_E.Text + '] 用户信息?';
if frmPromot.ShowModal <> mrOK then exit;
end
else
begin
DM1.ModuleDB.append;
frmPromot.Hide;
frmPromot.Promot.Caption := '是否添加 [' + UNO_E.Text + '] 用户信息?';
if frmPromot.ShowModal <> mrOK then exit;
end;
end;
//Modify Item
if tStatus = 1 then
begin
with DataListview do
begin
for I := 0 to Items.Count - 1 do
begin
if Items[I].Caption = MeterID then
begin
Items[I].SubItems.Strings[0] := MNO_E.Text;
Items[I].SubItems.Strings[1] := NAME_E.Text;
Items[I].SubItems.Strings[2] := ADDRESS_E.Text;
Items[I].SubItems.Strings[3] := FIG_E.Text;
Items[I].SubItems.Strings[4] := FFIG_E.Text;
Items[I].SubItems.Strings[5] := PFIG_E.Text;
Items[I].SubItems.Strings[6] := GFIG_E.Text;
Items[I].SubItems.Strings[7] := JFIG_E.Text;
Items[I].SubItems.Strings[8] := SCP_E.Text;
Items[I].SubItems.Strings[9] := CNST_E.Text;
Items[I].SubItems.Strings[10] := AMP_E.Text;
Items[I].SubItems.Strings[11] := MODEL_E.Text;
Items[I].SubItems.Strings[12] := USG_E.Text;
Items[I].SubItems.Strings[13] := PHS_E.Text;
Items[I].SubItems.Strings[14] := ampere_E.Text;
Items[I].SubItems.Strings[15] := BY_E.Text;
Items[I].Selected := True;
Items[I].Focused := True;
end;
end;
end;
end;
//Append Item
if tStatus = 2 then
begin
with DataListview do
begin
if addorinsert=1 then
ListItem := Items.insert(selected.index)
else
ListItem := Items.add;
ListItem.Caption := MeterID;
ListItem.ImageIndex := -1;
ListItem.SubItems.Add(MNO_E.Text);
ListItem.SubItems.Add(NAME_E.Text);
ListItem.SubItems.Add(ADDRESS_E.Text);
ListItem.SubItems.Add(FIG_E.Text);
ListItem.SubItems.Add(FFIG_E.Text);
ListItem.SubItems.Add(PFIG_E.Text);
ListItem.SubItems.Add(GFIG_E.Text);
ListItem.SubItems.Add(JFIG_E.Text);
ListItem.SubItems.Add(SCP_E.Text);
ListItem.SubItems.Add(CNST_E.Text);
ListItem.SubItems.Add(AMP_E.Text);
ListItem.SubItems.Add(MODEL_E.Text);
ListItem.SubItems.Add(USG_E.Text);
ListItem.SubItems.Add(PHS_E.Text);
ListItem.SubItems.Add(ampere_E.Text);
ListItem.SubItems.Add(BY_E.Text);
end;
end;
//Write Table
DM1.ModuleDB.FieldByName('DNO').AsString := DNOstr;
DM1.ModuleDB.FieldByName('UNO').AsString := MeterID;
DM1.ModuleDB.FieldByName('MNO').AsString := MNO_E.Text;
DM1.ModuleDB.FieldByName('NAME').AsString := NAME_E.text;
DM1.ModuleDB.FieldByName('ADDRESS').AsString := ADDRESS_E.Text;
DM1.ModuleDB.FieldByName('FIG').AsString := FIG_E.Text;
DM1.ModuleDB.FieldByName('PEAKFIG').AsString := FFIG_E.Text;
DM1.ModuleDB.FieldByName('SHOULDERFIG').AsString := PFIG_E.Text;
DM1.ModuleDB.FieldByName('OFFPEAKFIG').AsString := GFIG_E.Text;
DM1.ModuleDB.FieldByName('SHARPFIG').AsString := JFIG_E.Text;
DM1.ModuleDB.FieldByName('SCP').AsString := SCP_E.Text;
DM1.ModuleDB.FieldByName('CNST').AsString := CNST_E.Text;
DM1.ModuleDB.FieldByName('AMP').AsString := AMP_E.Text;
DM1.ModuleDB.FieldByName('MODEL').AsString := MODEL_E.Text;
if DM1.BillDB.Locate('NAME', USG_E.Text, [loCaseInsensitive]) then
DM1.ModuleDB.FieldByName('USG').AsString := DM1.BillDB.FieldByName('USG').AsString;
DM1.ModuleDB.FieldByName('PHS').AsString := PHS_E.Text;
DM1.ModuleDB.FieldByName('AMPERE').AsString := AMPERE_E.Text;
DM1.ModuleDB.FieldByName('BY').AsString := BY_E.Text;
DM1.ModuleDB.Post;
DM1.moduleDB.FlushBuffers;
DM1.ModuleDB.refresh;
if DM1.DSTdb.Locate('DNO', DNOstr, [loCaseInsensitive]) then
begin
DM1.DSTdb.Edit;
DM1.DSTdb.FieldByName('DNO').ASSTRING := DNOstr;
DM1.DSTdb.FieldByName('NMB').AsInteger := DM1.ModuleDB.RecordCount;
DM1.DSTdb.Post;
DM1.DSTdb.FlushBuffers ;
dm1.DSTdb.Refresh;
end;
frmInfo.ListView1.Items.Clear;
frmInfo.FormCreate(Sender);
addorinsert:=0;
end;
procedure TfrmRead.PanelIDDblClick(Sender: TObject);
var
i: Integer;
begin
frmPromot.Hide;
frmPromot.Promot.Caption := '下载 [' + DNO_E.Text + '] 集中器表号?';
if frmPromot.ShowModal <> mrOK then exit;
frmRead.Cursor := crHourGlass;
with DataListView do
for i := 0 to Items.Count - 1 do
begin
DM1.ModuleDB.Append;
DM1.ModuleDB.FieldByName('DNO').AsString := DNO_E.Text;
DM1.ModuleDB.FieldByName('UNO').AsString := Items[i].Caption;
DM1.ModuleDB.FieldByName('FIG').AsString := Items[i].SubItems.Strings[2];
DM1.ModuleDB.FieldByName('SCP').AsString := SCP_E.Text;
DM1.ModuleDB.FieldByName('CNST').AsString := cnst_e.text;
DM1.ModuleDB.FieldByName('AMP').AsString := AMP_E.Text;
DM1.ModuleDB.FieldByName('MODEL').AsString := MODEL_E.Text;
if DM1.BillDB.Locate('NAME', USG_E.Text, [loCaseInsensitive]) then
DM1.ModuleDB.FieldByName('USG').AsString := DM1.BillDB.FieldByName('USG').AsString;
DM1.ModuleDB.FieldByName('PHS').AsString := Items[i].SubItems.Strings[8];
DM1.ModuleDB.FieldByName('BYS').AsString := Items[i].SubItems.Strings[9];
DM1.ModuleDB.FieldByName('BY').AsString := Items[i].SubItems.Strings[10];
DM1.ModuleDB.FieldByName('RDT').AsString := CurTime;
DM1.ModuleDB.post;
DM1.ModuleDB.FlushBuffers ;
DM1.ModuleDB.Refresh ;
end;
frmRead.Cursor := crDefault;
ChartFlag := 0;
end;
procedure TfrmRead.DataListViewDblClick(Sender: TObject);
begin
frmMain.StatisticConsumerExecute(Sender);
end;
procedure TfrmRead.SpeedButton2Click(Sender: TObject);
begin
addorinsert:=1;
frmRead.btnAppendClick(Sender);
addorinsert:=0;
end;
procedure TfrmRead.SpeedButton3Click(Sender: TObject);
begin
frmfind.showmodal ;
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -