unit1.pas
来自「Delphi_7.0数据库开发源代码。有内容十一章节」· PAS 代码 · 共 879 行 · 第 1/2 页
PAS
879 行
DaP[59-i]:=Table_Power.FieldByName('DaP').AsFloat;
DaQ[59-i]:=Table_Power.FieldByName('DaQ').AsFloat;
DaS[59-i]:=Sqrt(DaP[59-i]*DaP[59-i]+DaQ[59-i]*DaQ[59-i]);
DaR[59-i]:=DaP[59-i]/DaS[59-i];
QinP[59-i]:=Table_Power.FieldByName('QinP').AsFloat;
QinQ[59-i]:=Table_Power.FieldByName('QinQ').AsFloat;
QinS[59-i]:=Sqrt(QinP[59-i]*QinP[59-i]+QinQ[59-i]*QinQ[59-i]);
QinR[59-i]:=QinP[59-i]/QinS[59-i];
Table_Power.Prior;
end;
Table_Power.Close;
Table_Consumer.Open;
Table_Consumer.First;
for i:=1 to Table_Consumer.RecordCount do
begin
Table_Consumer.Edit;
Table_Consumer.FieldByName('Give').AsFloat:=0;
Table_Consumer.Next;
end;
Table_Consumer.Close;
end;
Timer1.Enabled:=True;
end;
procedure TForm1.BitBtn1Click(Sender: TObject);
var
x:integer;
y:Single;
begin
try
x:=StrToInt(Ed_Fee.Text);
except
ShowMessage('输入有错');
exit;
end;
y:=x/10000;
Ed_Fee.Text:='';
with DM do
begin
Table_Consumer.Open;
Case RadioGroup1.ItemIndex of
0: Table_Consumer.First;
1: Table_Consumer.FindKey(['2']);
2: Table_Consumer.FindKey(['3']);
3: Table_Consumer.FindKey(['4']);
4: Table_Consumer.FindKey(['5']);
5: Table_Consumer.FindKey(['6']);
6: Table_Consumer.FindKey(['7']);
7: Table_Consumer.FindKey(['8']);
8: Table_Consumer.FindKey(['9']);
end;
Table_Consumer.Edit;
Table_Consumer.FieldByName('Give').AsFloat:=Table_Consumer.FieldByName('Give').AsFloat+y;
Table_Consumer.Post;
Table_Consumer.Close;
end;
end;
procedure TForm1.RadioGroup1Click(Sender: TObject);
begin
with DM do
begin
Table_Consumer.Open;
Case RadioGroup1.ItemIndex of
0: Table_Consumer.First;
1: Table_Consumer.FindKey(['2']);
2: Table_Consumer.FindKey(['3']);
3: Table_Consumer.FindKey(['4']);
4: Table_Consumer.FindKey(['5']);
5: Table_Consumer.FindKey(['6']);
6: Table_Consumer.FindKey(['7']);
7: Table_Consumer.FindKey(['8']);
8: Table_Consumer.FindKey(['9']);
end;
Lb_Shoud.Caption:=RealToStr(Table_Consumer.FieldByName('Need').AsFloat);
Lb_RunOut.Caption:=RealToStr(Table_Consumer.FieldByName('Consum').AsFloat);
Table_Consumer.Close;
end;
end;
procedure TForm1.BitBtn2Click(Sender: TObject);
begin
with DM do
begin
Table_Consumer.Open;
Case ComboBox1.ItemIndex of
0: Table_Consumer.First;
1: Table_Consumer.FindKey(['2']);
2: Table_Consumer.FindKey(['3']);
3: Table_Consumer.FindKey(['4']);
4: Table_Consumer.FindKey(['5']);
5: Table_Consumer.FindKey(['6']);
6: Table_Consumer.FindKey(['7']);
7: Table_Consumer.FindKey(['8']);
8: Table_Consumer.FindKey(['9']);
end;
Lb_Sum.Caption:=RealToStr(Table_Consumer.FieldValues['Consum']);
Lb_ShoudG.Caption:=RealToStr(Table_Consumer.FieldValues['Need']);
Lb_AlreadyG.Caption:=RealToStr(Table_Consumer.FieldValues['Give']);
Lb_NotG.Caption:=RealToStr( Table_Consumer.FieldValues['Need']-Table_Consumer.FieldValues['Give']);
Table_Consumer.Close;
end;
end;
procedure TForm1.BitBtn3Click(Sender: TObject);
var
k:integer;
x,y:single;
begin
x:=0;
y:=0;
if((Ed_Min.Text='')and(Ed_Sec.Text=''))or((Ed_Min.Text<>'')and(Ed_Sec.Text='')) then
begin
ShowMessage('输入非法!!!');
exit;
end
else if(Ed_Min.Text='')and(Ed_Sec.Text<>'') then
begin
try
k:=StrToInt(Ed_Sec.Text);
except
begin
ShowMessage('输入非法!!!');
exit;
end;
end;
end
else
begin
try
k:=StrToInt(Ed_Min.Text)*60+StrToInt(Ed_Sec.Text);
except
begin
ShowMessage('输入非法!!!');
exit;
end;
end;
end;
Ed_Min.Text:='';
Ed_Sec.Text:='';
with DM do
begin
Table_Power.Open;
if(k>Table_Power.RecordCount) then
begin
Table_Power.Close;
ShowMessage('输入的时间值太大!');
exit;
end;
Table_Power.FindKey([k]);
case RadioGroup2.ItemIndex of
0: begin
x:=Table_Power.FieldValues['LiuP'];
y:=Table_Power.FieldValues['LiuQ'];
end;
1: begin
x:=Table_Power.FieldValues['GeP'];
y:=Table_Power.FieldValues['GeQ'];
end;
2: begin
x:=Table_Power.FieldValues['DaP'];
y:=Table_Power.FieldValues['DaQ'];
end;
3: begin
x:=Table_Power.FieldValues['QinP'];
y:=Table_Power.FieldValues['QinQ'];
end;
end;
end;
Lb_P.Caption:=RealToStr(x);
Lb_Q.Caption:=RealToStr(y);
Lb_S.Caption:=RealToStr(sqrt(x*x+y*y));
Lb_R.Caption:=RealToStr(x/sqrt(x*x+y*y));
end;
procedure TForm1.Button_LiuClick(Sender: TObject);
var
i,k:integer;
x,y:single;
begin
if Test('POWER')=False then exit;
With DM do
begin
if Liu_Open=True then Table_Liu.Close;
Table_Liu:=TTable.Create(self);
Table_Liu.DatabaseName:='POWER';
Table_Liu.TableName:='TableLiu.db';
Table_Liu.TableType:=ttParadox;
Table_Liu.FieldDefs.Clear;
Table_Liu.FieldDefs.Add('ID',ftInteger,0,True);
Table_Liu.FieldDefs.Add('P',ftFloat,0,True);
Table_Liu.FieldDefs.Add('Q',ftFloat,0,True);
Table_Liu.FieldDefs.Add('S',ftFloat,0,True);
Table_Liu.FieldDefs.Add('R',ftFloat,0,True);
Table_Liu.IndexDefs.Add('LiuIndex','ID',[ixPrimary,ixUnique]);
Table_Liu.CreateTable;
Session.SaveConfigFile;
Table_Liu.Open;
Table_Liu.First;
Table_Power.Open;
Table_Power.First;
k:=Table_Power.RecordCount;
for i:=1 to k do
begin
Table_Liu.Append;
Table_Liu.FieldByName('ID').AsInteger:=Table_Power.FieldByName('ID').AsInteger;
x:=Table_Power.FieldByName('LiuP').AsFloat;
y:=Table_Power.FieldByName('LiuQ').AsFloat;
Table_Liu.FieldByName('P').AsFloat:=x;
Table_Liu.FieldByName('Q').AsFloat:=y;
Table_Liu.FieldByName('S').AsFloat:=sqrt(x*x+y*y);
Table_Liu.FieldByName('R').AsFloat:=x/sqrt(x*x+y*y);
Table_Power.Next;
Table_Liu.Post;
end;
DS_Liu.DataSet:=Table_Liu;
DBGrid1.DataSource:=DS_Liu;
DBGrid1.Columns[0].FieldName:='ID';
DBGrid1.Columns[0].Expanded:=True;
DBGrid1.Columns[1].FieldName:='P';
DBGrid1.Columns[2].FieldName:='Q';
DBGrid1.Columns[3].FieldName:='S';
DBGrid1.Columns[4].FieldName:='R';
DBGrid1.Refresh;
DBNavigator1.DataSource:=DS_Liu;
DBNavigator1.Refresh;
Lb_M.Caption:='刘家峡电站的运行历史数据:';
Liu_Open:=True;
Table_Power.Close;
end;
end;
procedure TForm1.BitBtn4Click(Sender: TObject);
begin
Close;
end;
procedure TForm1.Button_GeClick(Sender: TObject);
var
i,k:integer;
x,y:single;
begin
if Test('POWER')=False then exit;
With DM do
begin
if Ge_Open=True then Table_Ge.Close;
Table_Ge:=TTable.Create(self);
Table_Ge.DatabaseName:='POWER';
Table_Ge.TableName:='TableGe.db';
Table_Ge.TableType:=ttParadox;
Table_Ge.FieldDefs.Clear;
Table_Ge.FieldDefs.Add('ID',ftInteger,0,True);
Table_Ge.FieldDefs.Add('P',ftFloat,0,True);
Table_Ge.FieldDefs.Add('Q',ftFloat,0,True);
Table_Ge.FieldDefs.Add('S',ftFloat,0,True);
Table_Ge.FieldDefs.Add('R',ftFloat,0,True);
Table_Ge.IndexDefs.Add('GeIndex','ID',[ixPrimary,ixUnique]);
Table_Ge.CreateTable;
Session.SaveConfigFile;
Table_Ge.Open;
Table_Ge.First;
Table_Power.Open;
Table_Power.First;
k:=Table_Power.RecordCount;
for i:=1 to k do
begin
Table_Ge.Append;
Table_Ge.FieldByName('ID').AsInteger:=Table_Power.FieldByName('ID').AsInteger;
x:=Table_Power.FieldByName('GeP').AsFloat;
y:=Table_Power.FieldByName('GeQ').AsFloat;
Table_Ge.FieldByName('P').AsFloat:=x;
Table_Ge.FieldByName('Q').AsFloat:=y;
Table_Ge.FieldByName('S').AsFloat:=sqrt(x*x+y*y);
Table_Ge.FieldByName('R').AsFloat:=x/sqrt(x*x+y*y);
Table_Power.Next;
Table_Ge.Post;
end;
DS_Ge.DataSet:=Table_Ge;
DBGrid1.DataSource:=DS_Ge;
DBGrid1.Columns[0].FieldName:='ID';
DBGrid1.Columns[0].Expanded:=True;
DBGrid1.Columns[1].FieldName:='P';
DBGrid1.Columns[2].FieldName:='Q';
DBGrid1.Columns[3].FieldName:='S';
DBGrid1.Columns[4].FieldName:='R';
DBGrid1.Refresh;
DBNavigator1.DataSource:=DS_Ge;
DBNavigator1.Refresh;
Lb_M.Caption:='葛洲坝电站的运行历史数据:';
Ge_Open:=True;
Table_Power.Close;
end;
end;
procedure TForm1.Button_DaClick(Sender: TObject);
var
i,k:integer;
x,y:single;
begin
if Test('POWER')=False then exit;
With DM do
begin
if Da_Open=True then Table_Da.Close;
Table_Da:=TTable.Create(self);
Table_Da.DatabaseName:='POWER';
Table_Da.TableName:='TableDa.db';
Table_Da.TableType:=ttParadox;
Table_Da.FieldDefs.Clear;
Table_Da.FieldDefs.Add('ID',ftInteger,0,True);
Table_Da.FieldDefs.Add('P',ftFloat,0,True);
Table_Da.FieldDefs.Add('Q',ftFloat,0,True);
Table_Da.FieldDefs.Add('S',ftFloat,0,True);
Table_Da.FieldDefs.Add('R',ftFloat,0,True);
Table_Da.IndexDefs.Add('DaIndex','ID',[ixPrimary,ixUnique]);
Table_Da.CreateTable;
Session.SaveConfigFile;
Table_Da.Open;
Table_Da.First;
Table_Power.Open;
Table_Power.First;
k:=Table_Power.RecordCount;
for i:=1 to k do
begin
Table_Da.Append;
Table_Da.FieldByName('ID').AsInteger:=Table_Power.FieldByName('ID').AsInteger;
x:=Table_Power.FieldByName('DaP').AsFloat;
y:=Table_Power.FieldByName('DaQ').AsFloat;
Table_Da.FieldByName('P').AsFloat:=x;
Table_Da.FieldByName('Q').AsFloat:=y;
Table_Da.FieldByName('S').AsFloat:=sqrt(x*x+y*y);
Table_Da.FieldByName('R').AsFloat:=x/sqrt(x*x+y*y);
Table_Power.Next;
Table_Da.Post;
end;
DS_Da.DataSet:=Table_Da;
DBGrid1.DataSource:=DS_Da;
DBGrid1.Columns[0].FieldName:='ID';
DBGrid1.Columns[0].Expanded:=True;
DBGrid1.Columns[1].FieldName:='P';
DBGrid1.Columns[2].FieldName:='Q';
DBGrid1.Columns[3].FieldName:='S';
DBGrid1.Columns[4].FieldName:='R';
DBGrid1.Refresh;
DBNavigator1.DataSource:=DS_Da;
DBNavigator1.Refresh;
Lb_M.Caption:='大亚湾电站的运行历史数据:';
Da_Open:=True;
Table_Power.Close;
end;
end;
procedure TForm1.Button_QinClick(Sender: TObject);
var
i,k:integer;
x,y:single;
begin
if Test('POWER')=False then exit;
With DM do
begin
if Qin_Open=True then Table_Qin.Close;
Table_Qin:=TTable.Create(self);
Table_Qin.DatabaseName:='POWER';
Table_Qin.TableName:='TableQin.db';
Table_Qin.TableType:=ttParadox;
Table_Qin.FieldDefs.Clear;
Table_Qin.FieldDefs.Add('ID',ftInteger,0,True);
Table_Qin.FieldDefs.Add('P',ftFloat,0,True);
Table_Qin.FieldDefs.Add('Q',ftFloat,0,True);
Table_Qin.FieldDefs.Add('S',ftFloat,0,True);
Table_Qin.FieldDefs.Add('R',ftFloat,0,True);
Table_Qin.IndexDefs.Add('QinIndex','ID',[ixPrimary,ixUnique]);
Table_Qin.CreateTable;
Session.SaveConfigFile;
Table_Qin.Open;
Table_Qin.First;
Table_Power.Open;
Table_Power.First;
k:=Table_Power.RecordCount;
for i:=1 to k do
begin
Table_Qin.Append;
Table_Qin.FieldByName('ID').AsInteger:=Table_Power.FieldByName('ID').AsInteger;
x:=Table_Power.FieldByName('QinP').AsFloat;
y:=Table_Power.FieldByName('QinQ').AsFloat;
Table_Qin.FieldByName('P').AsFloat:=x;
Table_Qin.FieldByName('Q').AsFloat:=y;
Table_Qin.FieldByName('S').AsFloat:=sqrt(x*x+y*y);
Table_Qin.FieldByName('R').AsFloat:=x/sqrt(x*x+y*y);
Table_Power.Next;
Table_Qin.Post;
end;
DS_Qin.DataSet:=Table_Qin;
DBGrid1.DataSource:=DS_Qin;
DBGrid1.Columns[0].FieldName:='ID';
DBGrid1.Columns[0].Expanded:=True;
DBGrid1.Columns[1].FieldName:='P';
DBGrid1.Columns[2].FieldName:='Q';
DBGrid1.Columns[3].FieldName:='S';
DBGrid1.Columns[4].FieldName:='R';
DBGrid1.Refresh;
DBNavigator1.DataSource:=DS_Qin;
DBNavigator1.Refresh;
Lb_M.Caption:='秦山电站的运行历史数据:';
Qin_Open:=True;
Table_Power.Close;
end;
end;
end.
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?