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 + -
显示快捷键?