📄 info.pas
字号:
unit Info;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
Grids, DBGrids, Db, DBTables, ComCtrls, ToolWin, ImgList, ExtCtrls,
StdCtrls, Buttons;
type
TfrmInfo = class(TForm)
ListView1: TListView;
Panel1: TPanel;
RDTcb: TComboBox;
WTMcb: TComboBox;
btnFind: TSpeedButton;
Panel2: TPanel;
DNOed: TEdit;
Label1: TLabel;
Label2: TLabel;
NAMEed: TEdit;
Label3: TLabel;
TELed: TEdit;
CRMed: TEdit;
Label4: TLabel;
SpeedButton3: TSpeedButton;
SpeedButton4: TSpeedButton;
MonitorPanel: TPanel;
Image1: TImage;
BorderShape: TShape;
RunShape: TShape;
Timer1: TTimer;
Bevel1: TBevel;
Bevel2: TBevel;
SpeedButton5: TSpeedButton;
btnMonitor: TSpeedButton;
btnStop: TSpeedButton;
ShowLab: TLabel;
lMAX: TLabel;
rMAX: TLabel;
rINT: TLabel;
rKwH: TLabel;
CNST: TLabel;
Pulse: TLabel;
btnAddTS: TSpeedButton;
Imgs0: TImage;
Imgs1: TImage;
imgs2: TImage;
imgs3: TImage;
imgs4: TImage;
imgs5: TImage;
imgs6: TImage;
imgs7: TImage;
imgs8: TImage;
imgs9: TImage;
Img1: TImage;
Img2: TImage;
Img3: TImage;
Img4: TImage;
Img5: TImage;
Img6: TImage;
Img7: TImage;
Img8: TImage;
MeterID: TLabel;
SpeedButton1: TSpeedButton;
SpeedButton2: TSpeedButton;
procedure FormCreate(Sender: TObject);
procedure ToolButton1Click(Sender: TObject);
procedure ToolButton8Click(Sender: TObject);
procedure ToolButton2Click(Sender: TObject);
procedure ToolButton3Click(Sender: TObject);
procedure DBGrid2CellClick(Column: TColumn);
procedure DBGrid2ColExit(Sender: TObject);
procedure FormResize(Sender: TObject);
procedure ListView1SelectItem(Sender: TObject; Item: TListItem;
Selected: Boolean);
procedure btnFindClick(Sender: TObject);
procedure Timer1Timer(Sender: TObject);
procedure SpeedButton5Click(Sender: TObject);
procedure btnMonitorClick(Sender: TObject);
procedure btnStopClick(Sender: TObject);
procedure SpeedButton3Click(Sender: TObject);
procedure SpeedButton4Click(Sender: TObject);
procedure btnAddTSClick(Sender: TObject);
procedure WTMcbKeyPress(Sender: TObject; var Key: Char);
procedure RDTcbKeyPress(Sender: TObject; var Key: Char);
procedure ShowDigit(Consumption:string);
procedure Showimage(Num:Integer; Images:Timage);
procedure ListView1DblClick(Sender: TObject);
procedure SpeedButton1Click(Sender: TObject);
procedure SpeedButton2Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
TIDname: string;
CheckIndex: Integer;
// ItemStr: String;
end;
var
frmInfo: TfrmInfo;
implementation
uses pasMain, DM, Promot, ReadData, Global, Tseg, Err;
{$R *.DFM}
procedure TfrmInfo.FormCreate(Sender: TObject);
var
ListItem: TListItem;
begin
//image8.Picture:=frminfo.imagelist2.getbitmap(0);
//Initialize rotate flag
RunShape.Left := BorderShape.Left;
//Setup windows size
Left := 0;
Top := 0;
Height := frmMain.Height * 6 div 10;
Width := 301;
ListView1.height := Height - Panel1.height - 26;
//Load Info table
DM1.DSTdb.First;
while not DM1.DSTdb.Eof do
with ListView1 do
begin
ListItem := Items.add;
ListItem.Caption := DM1.DSTdb.FieldByname('NAME').AsString;
ListItem.ImageIndex := -1;
ListItem.SubItems.add(DM1.DSTdb.FieldByname('TEL').AsString);
ListItem.SubItems.add('');
ListItem.SubItems.add(DM1.DSTdb.FieldByname('DNO').AsString);
ListItem.SubItems.add(DM1.DSTdb.FieldByname('NMB').AsString);
ListItem.SubItems.add(DM1.DSTdb.FieldByname('RDT').AsString);
ListItem.SubItems.add(DM1.DSTdb.FieldByname('CRM').AsString);
ListItem.SubItems.add(DM1.DSTdb.FieldByname('AUTOREAD').AsString);
DM1.DSTdb.Next;
end;
frminfo.rdtcb.text:='';
end;
procedure TfrmInfo.ToolButton1Click(Sender: TObject);
begin
DM1.DSTdb.First;
end;
procedure TfrmInfo.ToolButton8Click(Sender: TObject);
begin
DM1.DSTdb.Last;
end;
procedure TfrmInfo.ToolButton2Click(Sender: TObject);
begin
DM1.DSTdb.Prior;
end;
procedure TfrmInfo.ToolButton3Click(Sender: TObject);
begin
DM1.DSTdb.Next;
end;
procedure TfrmInfo.DBGrid2CellClick(Column: TColumn);
begin
TIDname := DM1.DSTdb.FieldByname('DNO').AsString;
DTELSTR := DM1.DSTdb.FieldByname('TEL').AsString;
frmMain.StatusBar.SimpleText := 'DNO = ' + '''' + TIDname + '''';
DM1.ModuleDB.Filter := 'DNO = ' + '''' + TIDname + '''';
end;
procedure TfrmInfo.DBGrid2ColExit(Sender: TObject);
begin
frmMain.StatusBar.SimpleText := DM1.DSTdb.FieldByname('DNO').AsString;
end;
procedure TfrmInfo.FormResize(Sender: TObject);
begin
ListView1.height := frmInfo.Height - Panel1.height - 26;
end;
procedure TfrmInfo.ListView1SelectItem(Sender: TObject; Item: TListItem; Selected: Boolean);
var
ListItem: TListItem;
NewColumn: TListColumn;
StrFIG: String;
I: Integer;
const
Names: array[0..16, 0..2] of string = (
('通讯号', '100', '1'),
('帐号', '70', '0'),
('用户名', '80', '0'),
('地址', '135', '0'),
('总电量', '73', '2'),
('峰电量', '73', '2'),
('平电量', '73', '2'),
('谷电量', '73', '2'),
('尖电量', '73', '2'),
('量程', '73', '2'),
('常数', '54', '2'),
('变比', '48', '1'),
('表型', '50', '0'),
('用电类别', '80', '0'),
('相位', '42', '1'),
('条码号', '48', '1'),
('中继表号', '100', '0')
);
begin
RUNFLAG := USEREDIT;
chartflag:=useredit;
SearchFlag:=False;
if Selected = FALSE then exit;
//Show arrow
dm1.DataDB.Refresh;
dm1.moduleDB.Refresh;
dm1.DSTdb.Refresh;
ListView1.Items[CheckIndex].ImageIndex := -1;
CheckIndex := ListView1.Selected.index;
ListView1.Items[CheckIndex].ImageIndex := 4;
//StatusBar's promot
frmMain.StatusBar.Panels[1].Text := '[' + ListView1.Items[CheckIndex].Caption + ']';
//Get DNO field
DNOstr := ListView1.Items[CheckIndex].SubItems.Strings[2];
dNameStr := ListView1.Items[CheckIndex].Caption;
dTelStr := ListView1.Items[CheckIndex].SubItems.Strings[0];
//Load all fields
DNOed.Text := DNOstr;
NAMEed.Text := ListView1.Items[CheckIndex].Caption;
TELed.Text := ListView1.Items[CheckIndex].SubItems.Strings[0];
CRMed.Text := ListView1.Items[CheckIndex].SubItems.Strings[5];
//Load history time
RDTcb.Items.Clear;
DM1.TimeDB.Filter := 'DNO = ' + '''' + DNOstr + '''';
RDTcb.Text :='';
if not DM1.timedb.Eof then
begin
DM1.TimeDB.Last ;
RDTcb.Text := DM1.timedb.FieldByname('rdt').AsString;
end;
DM1.TimeDB.First;
while not DM1.TimeDB.Eof do
begin
RDTcb.items.Add(DM1.TimeDB.FieldByname('RDT').AsString);
DM1.TimeDB.Next;
end;
//Load time segment
WTMcb.Items.Clear;
WTMcb.Text := '';
DM1.WTMdb.Filter := 'DNO = ' + '''' + DNOstr + '''';
if not DM1.WTMdb.Eof then WTMcb.Text := DM1.WTMdb.FieldByname('TIMESEG').AsString;
while not DM1.WTMdb.Eof do
begin
WTMcb.items.Add(DM1.WTMdb.FieldByname('TIMESEG').AsString);
DM1.WTMdb.Next;
end;
//Load Billing Table
DM1.BillDB.First;
frmRead.USG_E.Clear;
while not DM1.BillDB.Eof do
begin
frmRead.USG_E.Items.Add(DM1.BillDB.FieldByname('NAME').AsString);
DM1.BillDB.Next;
end;
//Load Moduler table
DM1.ModuleDB.Filter := 'DNO = ' + '''' + DNOstr + '''';
with frmRead.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;
end;
//NewColumn.AutoSize := TRUE;
end;
frmRead.Caption := '当前操作台区 [' + dNameStr + ']';
frmRead.DNO_E.Text := DNOstr;
while not DM1.ModuleDB.Eof do
with frmRead.DataListView do
begin
ListItem := Items.add;
ListItem.Caption := DM1.ModuleDB.FieldByname('UNO').AsString;
ListItem.ImageIndex := -1;
ListItem.SubItems.add(DM1.ModuleDB.FieldByname('MNO').AsString);
ListItem.SubItems.add(DM1.ModuleDB.FieldByname('NAME').AsString);
ListItem.SubItems.add(DM1.ModuleDB.FieldByname('ADDRESS').AsString);
StrFIG := Format('%8.2f', [DM1.ModuleDB.FieldByname('FIG').AsFloat]);
ListItem.SubItems.add(StrFIG);
StrFIG := Format('%8.2f', [DM1.ModuleDB.FieldByname('peakFIG').AsFloat]);
ListItem.SubItems.add(StrFIG);
StrFIG := Format('%8.2f', [DM1.ModuleDB.FieldByname('shoulderFIG').AsFloat]);
ListItem.SubItems.add(StrFIG);
StrFIG := Format('%8.2f', [DM1.ModuleDB.FieldByname('offpeakFIG').AsFloat]);
ListItem.SubItems.add(StrFIG);
StrFIG := Format('%8.2f', [DM1.ModuleDB.FieldByname('sharpFIG').AsFloat]);
ListItem.SubItems.add(StrFIG);
ListItem.SubItems.add(DM1.ModuleDB.FieldByname('SCP').AsString);
ListItem.SubItems.add(DM1.ModuleDB.FieldByname('CNST').AsString);
ListItem.SubItems.add(DM1.ModuleDB.FieldByname('AMP').AsString);
ListItem.SubItems.add(DM1.ModuleDB.FieldByname('MODEL').AsString);
if DM1.BillDB.Locate('USG', DM1.ModuleDB.FieldByname('USG').AsString, [loCaseInsensitive]) then
ListItem.SubItems.add(DM1.BillDB.FieldByname('NAME').AsString)
else
ListItem.SubItems.add('');
ListItem.SubItems.add(DM1.ModuleDB.FieldByname('PHS').AsString);
ListItem.SubItems.add(DM1.ModuleDB.FieldByname('ampere').AsString);
ListItem.SubItems.add(DM1.ModuleDB.FieldByname('BY').AsString);
DM1.ModuleDB.Next;
end;
frmRead.DataListView.Visible := TRUE;
end;
procedure TfrmInfo.btnFindClick(Sender: TObject);
var
I: Integer;
NewColumn: TListColumn;
ListItem: TListItem;
StrFIG: String;
const
Names: array[0..15, 0..2] of string = (
('通讯号', '100', '1'),
('标志', '26', '1'),
('用户名', '80', '0'),
('地址', '120', '0'),
('本次总电量', '86', '2'),
('用电量', '73', '2'),
('本次峰电量', '86', '2'),
('本次平电量', '86', '2'),
('本次谷电量', '86', '2'),
('本次尖电量', '86', '2'),
('冻结电量', '80', '2'),
('相位', '42', '1'),
('条码号', '48', '1'),
('中继表号', '84', '1'),
('读表时间', '112', '1'),
('集抄时间', '112', '1')
);
begin
RUNFLAG := SEARCHRDT;
//Close Edit Panel
frmRead.DataPanel.Visible := FALSE;
//Creat Columns
with frmRead.DataListView do
begin
Visible := FALSE;
Items.Clear;
Columns.Clear;
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;
end;
end;
//Load Data
DM1.DataDB.Filter := 'RDT = ' + '''' + RDTcb.Text + '''' + ' and '+ 'DNO=' + '''' + DNOstr + '''';
while not DM1.DataDB.EOF do
with frmRead.DataListView do
begin
ListItem := Items.Add;
ListItem.Caption := DM1.DataDB.FieldByname('UNO').AsString;
ListItem.ImageIndex := -1;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -