📄 yddljs.cpp
字号:
//---------------------------------------------------------------------------
#include <vcl.h>
#include "Math.h"
#pragma hdrstop
#include "YDdljs.h"
#include "YDdatam.h"
#include "YDmain.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TFdljs *Fdljs;
//---------------------------------------------------------------------------
__fastcall TFdljs::TFdljs(TComponent* Owner)
: TForm(Owner)
{
}
//---------------------------------------------------------------------------
void __fastcall TFdljs::SpeedButton1Click(TObject *Sender)
{
Label2->Caption="正在计算电量,请稍候...";
TQuery *Query1=new TQuery(this);
Query1->DatabaseName="YDDB";
AnsiString sql="UPDATE DBDA0000 SET fldl=0,fldlf=0,fldlg=0,hjdl=bldl+zjdl+hbdl+bsf,";
sql=sql+"hjdlf=bldlf+zjdlf+hbdlf+bsff,hjdlg=bldlg+zjdlg+hbdlg+bsfg,tzdl=0,tzdlf=0,tzdlg=0,";
sql=sql+"bsdl=0,bsdlf=0,bsdlg=0,xsdl=0,xsdlf=0,xsdlg=0";
sql=sql+" WHERE cszt='0' or cszt='1' or cszt='2'";
Query1->SQL->Clear();
Query1->SQL->Add(sql);
Query1->ExecSQL();
YDData->TBdbda->Close();
YDData->TBdbda->Open();
YDData->TByhda->First();
int cshs=YDData->TByhda->RecordCount;
ProgressBar1->Position=0;
while (!YDData->TByhda->Eof&&cshs>0)
{
YDData->TBdbda->Close();
YDData->TBdbda->Open();
zfdljs();
YDData->TBdbda->Close();
YDData->TBdbda->Open();
bsdljs();
YDData->TBdbda->Close();
YDData->TBdbda->Open();
xsdljs();
YDData->TBdbda->Close();
YDData->TBdbda->Open();
jlxss();
ProgressBar1->Position+=100/cshs;
YDData->TByhda->Next();
}
Query1->SQL->Clear();
sql="UPDATE DBDA0000 SET zdl=bldl+zjdl+hbdl+bsf+bsdl+xsdl+fldl+tzdl,";
sql=sql+"zdlf=bldlf+zjdlf+hbdlf+bsff+bsdlf+xsdlf+fldlf+tzdlf,zdlg=bldlg+zjdlg+hbdlg+bsfg+bsdlg+xsdlg+fldlg+tzdlg WHERE cszt='0' or cszt='1' or cszt='2'";
Query1->SQL->Add(sql);
Query1->ExecSQL();
YDData->TBdbda->Close();
YDData->TBdbda->Open();
YDData->TByhda->Refresh();
jsjddl();
delete Query1;
YDData->TBdbda->Close();
YDData->TByhda->Close();
YDData->TBxtcs->Close();
Fmain->gnjs(Fmain->tcjc);
Label2->Caption="计算电量完毕!";
}
//---------------------------------------------------------------------------
void __fastcall TFdljs::FormCreate(TObject *Sender)
{
YDData->TByhda->Open();
YDData->TBdbda->Open();
}
//---------------------------------------------------------------------------
void TFdljs::bsdljs()
{
if (YDData->TByhda->FieldByName("kplb")->AsString=="无") return;
if (YDData->TByhda->FieldByName("jffs")->AsString=="高供高计"||
YDData->TByhda->FieldByName("jffs")->AsString=="低供低计") return;
double ygss,wgss,jdygss,jdwgss,ygfe,ygcu,wgfe,wgcu,ecll,edrl;
double zyg,zwg;
int ygbsl,wgbsl;
int yxxs;
zyg=0;zwg=0;ygbsl=0;wgbsl=0;ygss=0;wgss=0;
AnsiString hhhh=YDData->TByhda->FieldByName("hhhh")->AsString;
AnsiString byqxh=YDData->TByhda->FieldByName("BYQXH")->AsString;
AnsiString dblb;
YDData->TBdbda->First();
while (!YDData->TBdbda->Eof)
{
dblb=YDData->TBdbda->FieldByName("dblb")->AsString;
if (dblb!="无功表"&&dblb!="无功复"&&dblb!="反向表")
{
zyg=zyg+YDData->TBdbda->FieldByName("hjdl")->AsFloat+YDData->TBdbda->FieldByName("hjdlf")->AsFloat+
YDData->TBdbda->FieldByName("hjdlg")->AsFloat;
ygbsl=ygbsl+1;
}
else
{
zwg=zwg+YDData->TBdbda->FieldByName("hjdl")->AsFloat+YDData->TBdbda->FieldByName("hjdlf")->AsFloat+
YDData->TBdbda->FieldByName("hjdlg")->AsFloat;
wgbsl=wgbsl+1;
}
YDData->TBdbda->Next();
}
YDData->QUyh->SQL->Clear();
YDData->QUyh->SQL->Add("select * from YHDA0000 where zj='"+hhhh+"'" );
YDData->QUyh->ExecSQL();
YDData->QUyh->Open();
YDData->TBdb->Open();
YDData->QUyh->First();
while (!YDData->QUyh->Eof)
{
YDData->TBdb->First();
while (!YDData->TBdb->Eof)
{
dblb=YDData->TBdb->FieldByName("dblb")->AsString;
if (dblb!="无功表"&&dblb!="无功复"&&dblb!="反向表")
{
zyg=zyg+YDData->TBdb->FieldByName("hjdl")->AsFloat+YDData->TBdb->FieldByName("hjdlf")->AsFloat+
YDData->TBdb->FieldByName("hjdlg")->AsFloat;
ygbsl=ygbsl+1;
}
else
{
zwg=zwg+YDData->TBdb->FieldByName("hjdl")->AsFloat+YDData->TBdb->FieldByName("hjdlf")->AsFloat+
YDData->TBdb->FieldByName("hjdlg")->AsFloat;
wgbsl=wgbsl+1;
}
YDData->TBdb->Next();
}
YDData->QUyh->Next();
}
if (wgbsl==0)
ecll=0.8;
else
{
if (zyg==0)
ecll=1;
else
ecll=zyg/sqrt(zyg*zyg+zwg*zwg);
}
YDData->TBbyqcs->Open();
YDData->TBbyqcs->First();
while (!YDData->TBbyqcs->Eof)
{
if (YDData->TBbyqcs->FieldByName("BYQ_XH")->AsString==byqxh)
{
ygfe=YDData->TBbyqcs->FieldByName("BYQ_YGFE")->AsFloat;
ygcu=YDData->TBbyqcs->FieldByName("BYQ_YGCU")->AsFloat;
wgfe=YDData->TBbyqcs->FieldByName("BYQ_WGFE")->AsFloat;
wgcu=YDData->TBbyqcs->FieldByName("BYQ_WGCU")->AsFloat;
edrl=YDData->TBbyqcs->FieldByName("BYQ_RL")->AsFloat;
yxxs=YDData->TBbyqcs->FieldByName("BYQ_YXXS")->AsInteger;
break;
}
YDData->TBbyqcs->Next();
}
YDData->TBbyqcs->Close();
if (YDData->TBbyqcs->Eof)
{
ygss=(ygfe+ygcu*(zyg/(edrl*yxxs*ecll))*(zyg/(edrl*yxxs*ecll)))*yxxs;
wgss=(wgfe+wgcu*(zwg/(edrl*yxxs*ecll))*(zwg/(edrl*yxxs*ecll)))*yxxs;
}
YDData->TByhda->Edit();
YDData->TByhda->FieldByName("BS_ZYG")->AsFloat=zyg;
YDData->TByhda->FieldByName("BS_ZWG")->AsFloat=zwg;
YDData->TByhda->FieldByName("BS_YGSS")->AsFloat=ygss;
YDData->TByhda->FieldByName("BS_WGSS")->AsFloat=wgss;
YDData->TByhda->FieldByName("BS_YGBSL")->AsInteger=ygbsl;
YDData->TByhda->FieldByName("BS_WGBSL")->AsInteger=wgbsl;
YDData->TByhda->Post();
YDData->TBdbda->First();
while (!YDData->TBdbda->Eof)
{
dblb=YDData->TBdbda->FieldByName("dblb")->AsString;
YDData->TBdbda->Edit();
if (dblb!="无功表"&&dblb!="无功复"&&dblb!="反向表")
if (zyg!=0)
{
YDData->TBdbda->FieldByName("bsdl")->AsFloat=YDData->TBdbda->FieldByName("hjdl")->AsFloat/zyg*ygss;
YDData->TBdbda->FieldByName("bsdlf")->AsFloat=YDData->TBdbda->FieldByName("hjdlf")->AsFloat/zyg*ygss;
YDData->TBdbda->FieldByName("bsdlg")->AsFloat=YDData->TBdbda->FieldByName("hjdlg")->AsFloat/zyg*ygss;
}
else
if (zwg!=0)
{
YDData->TBdbda->FieldByName("bsdl")->AsFloat=YDData->TBdbda->FieldByName("hjdl")->AsFloat/zwg*wgss;
YDData->TBdbda->FieldByName("bsdlf")->AsFloat=YDData->TBdbda->FieldByName("hjdlf")->AsFloat/zwg*wgss;
YDData->TBdbda->FieldByName("bsdlg")->AsFloat=YDData->TBdbda->FieldByName("hjdlg")->AsFloat/zwg*wgss;
}
YDData->TBdbda->Post();
YDData->TBdbda->Next();
}
YDData->QUyh->First();
while (!YDData->QUyh->Eof)
{
YDData->TBdb->First();
while (!YDData->TBdb->Eof)
{
if (YDData->TBdb->FieldByName("bs")->AsString=="分摊")
{
dblb=YDData->TBdb->FieldByName("dblb")->AsString;
YDData->TBdb->Edit();
if (dblb!="无功表"&&dblb!="无功复"&&dblb!="反向表")
if (zyg!=0)
{
YDData->TBdb->FieldByName("bsdl")->AsFloat=YDData->TBdb->FieldByName("hjdl")->AsFloat/zyg*ygss;
YDData->TBdb->FieldByName("bsdlf")->AsFloat=YDData->TBdb->FieldByName("hjdlf")->AsFloat/zyg*ygss;
YDData->TBdb->FieldByName("bsdlg")->AsFloat=YDData->TBdb->FieldByName("hjdlg")->AsFloat/zyg*ygss;
}
else
if (zwg!=0)
{
YDData->TBdb->FieldByName("bsdl")->AsFloat=YDData->TBdb->FieldByName("hjdl")->AsFloat/zwg*wgss;
YDData->TBdb->FieldByName("bsdlf")->AsFloat=YDData->TBdb->FieldByName("hjdlf")->AsFloat/zwg*wgss;
YDData->TBdb->FieldByName("bsdlg")->AsFloat=YDData->TBdb->FieldByName("hjdlg")->AsFloat/zwg*wgss;
}
YDData->TBdb->Post();
}
YDData->TBdb->Next();
}
YDData->QUyh->Next();
}
YDData->QUyh->Close();
YDData->TBdb->Close();
YDData->TBdbda->Close();
YDData->TBdbda->Open();
}
//-----------------------
//------------------------------------------------
void TFdljs::xsdljs()
{
double bsdl,bsdlf,bsdlg,jfdl,jfdlf,jfdlg;
int xs;
YDData->TBdbda->First();
while (!YDData->TBdbda->Eof)
{
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -