📄 ydsgcb.~cpp
字号:
//---------------------------------------------------------------------------
#include <vcl.h>
#include "Math.h"
#pragma hdrstop
#include "YDsgcb.h"
#include "YDdatam.h"
#include "YDmain.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TFsgcb *Fsgcb;
//---------------------------------------------------------------------------
__fastcall TFsgcb::TFsgcb(TComponent* Owner)
: TForm(Owner)
{
}
//---------------------------------------------------------------------------
void __fastcall TFsgcb::SpeedButton10Click(TObject *Sender)
{
Close();
}
//------------------------------------------------
/*
void TFsgcb::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 TFsgcb::xsdljs()
{
double bsdl,bsdlf,bsdlg,jfdl,jfdlf,jfdlg;
int xs;
YDData->TBdbda->First();
while (!YDData->TBdbda->Eof)
{
YDData->TBdbda->Edit();
bsdl=YDData->TBdbda->FieldByName("bsdl")->AsFloat;
bsdlf=YDData->TBdbda->FieldByName("bsdlf")->AsFloat;
bsdlg=YDData->TBdbda->FieldByName("bsdlg")->AsFloat;
jfdl=YDData->TBdbda->FieldByName("hjdl")->AsFloat;
jfdlf=YDData->TBdbda->FieldByName("hjdlf")->AsFloat;
jfdlg=YDData->TBdbda->FieldByName("hjdlg")->AsFloat;
xs=YDData->TBdbda->FieldByName("xs")->AsInteger;
if (xs>0)
if (YDData->TBdbda->FieldByName("dblb")->AsString.SubString(5,2)!="复")
{
if (YDData->TBdbda->FieldByName("xshbs")->AsString=="Y")
YDData->TBdbda->FieldByName("xsdl")->AsFloat=(bsdl+jfdl)*xs/1000;
else
YDData->TBdbda->FieldByName("xsdl")->AsFloat=jfdl*xs/1000;
}
else
{
if (YDData->TBdbda->FieldByName("xshbs")->AsString=="Y")
{
YDData->TBdbda->FieldByName("xsdl")->AsFloat=(bsdl+jfdl)*xs/1000;
YDData->TBdbda->FieldByName("xsdlf")->AsFloat=(bsdlf+jfdlf)*xs/1000;
YDData->TBdbda->FieldByName("xsdlg")->AsFloat=(bsdlg+jfdlg)*xs/1000;
}
else
{
YDData->TBdbda->FieldByName("xsdl")->AsFloat=jfdl*xs/1000;
YDData->TBdbda->FieldByName("xsdlf")->AsFloat=jfdlf*xs/1000;
YDData->TBdbda->FieldByName("xsdlg")->AsFloat=jfdlg*xs/1000;
}
}
YDData->TBdbda->Post();
YDData->TBdbda->Next();
}
}
//---------------------------------------------------------------------------
void TFsgcb::jlxss()
{
AnsiString hhhh,hhhh1,sql,dblb,tbjs,bz;
hhhh=YDData->TByhda->FieldByName("hhhh")->AsString;
tbjs=YDData->TByhda->FieldByName("tbjs")->AsString;
if (tbjs!="按用电量分摊"&&tbjs!="按用户数分摊") return;
// if (YDData->TBdbda->FieldByName("bldl")->AsFloat==0) return;
double jlxdl,jlxss,sydl,pdl,fdl,gdl;
sydl=0;
jlxdl=YDData->TBdbda->FieldByName("bldl")->AsFloat;
int hs;
TQuery *Query1=new TQuery(this);
Query1->DatabaseName="YDDB";
YDData->QUyh->SQL->Clear();
YDData->QUyh->SQL->Add("select * from YHDA0000 where tbjs='"+hhhh+"'" );
YDData->QUyh->ExecSQL();
YDData->QUyh->Open();
hs=YDData->QUyh->RecordCount;
YDData->TBdb->Open();
YDData->QUyh->First();
while (!YDData->QUyh->Eof)
{
YDData->TBdb->First();
while (!YDData->TBdb->Eof)
{
dblb=YDData->TBdb->FieldByName("dblb")->AsString;
pdl=YDData->TBdb->FieldByName("hjdl")->AsFloat;
fdl=YDData->TBdb->FieldByName("hjdlf")->AsFloat;
gdl=YDData->TBdb->FieldByName("hjdlg")->AsFloat;
if (dblb!="无功表"&&dblb!="无功复"&&dblb!="反向表")
sydl=sydl+pdl+fdl+gdl;
YDData->TBdb->Next();
}
YDData->QUyh->Next();
}
jlxss=jlxdl-sydl;
YDData->QUyh->First();
while (!YDData->QUyh->Eof)
{
// hhhh1=YDData->QUyh->FieldByName("hhhh")->AsString;
YDData->TBdb->First();
while (!YDData->TBdb->Eof)
{
dblb=YDData->TBdb->FieldByName("dblb")->AsString;
// bz=YDData->TBdb->FieldByName("bz")->AsString;
if (dblb!="无功表"&&dblb!="无功复"&&dblb!="反向表")
{
if (tbjs=="按用电量分摊"&&sydl>0)
{
YDData->TBdb->Edit();
YDData->TBdb->FieldByName("tzdl")->AsFloat=
(YDData->TBdb->FieldByName("hjdl")->AsFloat/sydl)*jlxss;
YDData->TBdb->FieldByName("tzdlf")->AsFloat=
(YDData->TBdb->FieldByName("hjdlf")->AsFloat/sydl)*jlxss;
YDData->TBdb->FieldByName("tzdlg")->AsFloat=
(YDData->TBdb->FieldByName("hjdlg")->AsFloat/sydl)*jlxss;
YDData->TBdb->Post();
}
if (tbjs=="按用户数分摊"&&hs>0)
{
YDData->TBdb->Edit();
YDData->TBdb->FieldByName("tzdl")->AsFloat=(1/hs)*jlxss;
YDData->TBdb->Post();
break;
}
}
YDData->TBdb->Next();
}
YDData->QUyh->Next();
}
YDData->TBdb->Close();
YDData->QUyh->Close();
delete Query1;
}
// ------------------------------------------
void TFsgcb::zfdljs()
{
TQuery *Query1=new TQuery(this);
Query1->DatabaseName="YDDB";
AnsiString hhhh,dbbh,bbzj,zjbx,jsql;
double pdl,fdl,gdl,p,f,g;
YDData->TBdbda->First();
while (!YDData->TBdbda->Eof)
{
if (YDData->TBdbda->FieldByName("dblb")->AsString.SubString(5,2)=="复"&&YDData->TBdbda->FieldByName("p_fg")->AsString=="Y")
{
YDData->TBdbda->Edit();
YDData->TBdbda->FieldByName("fldl")->AsFloat=YDData->TBdbda->FieldByName("fldl")->AsFloat-(YDData->TBdbda->FieldByName("hjdlf")->AsFloat+YDData->TBdbda->FieldByName("hjdlg")->AsFloat);
YDData->TBdbda->Post();
}
if (Trim(YDData->TBdbda->FieldByName("bz")->AsString)!="")
{
hhhh=YDData->TByhda->FieldByName("hhhh")->AsString;
dbbh=YDData->TBdbda->FieldByName("dbbh")->AsString;
bbzj=YDData->TBdbda->FieldByName("bbzj")->AsString;
zjbx=YDData->TBdbda->FieldByName("zjbx")->AsString;
if (YDData->TBdbda->FieldByName("fgp")->AsString=="")
{
if (YDData->TBdbda->FieldByName("bz")->AsString!="户间分表")
{
pdl=-(YDData->TBdbda->FieldByName("hjdl")->AsFloat+YDData->TBdbda->FieldByName("hjdlf")->AsFloat+YDData->TBdbda->FieldByName("hjdlg")->AsFloat);
fdl=0;
gdl=0;
}
else
{
pdl=YDData->TBdbda->FieldByName("hjdl")->AsFloat+YDData->TBdbda->FieldByName("hjdlf")->AsFloat+YDData->TBdbda->FieldByName("hjdlg")->AsFloat;
fdl=0;
gdl=0;
}
}
else
{
double ff=StrToFloat(YDData->TBdbda->FieldByName("fgp")->AsString.SubString(4,2));
double gg=StrToFloat(YDData->TBdbda->FieldByName("fgp")->AsString.SubString(7,2));
double pp=StrToFloat(YDData->TBdbda->FieldByName("fgp")->AsString.SubString(1,2));
p=YDData->TBdbda->FieldByName("hjdl")->AsFloat;
f=YDData->TBdbda->FieldByName("hjdlf")->AsFloat;
g=YDData->TBdbda->FieldByName("hjdlg")->AsFloat;
if (YDData->TBdbda->FieldByName("bz")->AsString!="户间分表")
{
fdl=-(p+f+g)*(ff/100);
gdl=-(p+f+g)*(gg/100);
pdl=-(p+f+g)*(pp/100);
}
else
{
fdl=(p+f+g)*(ff/100);
gdl=(p+f+g)*(gg/100);
pdl=(p+f+g)*(pp/100);
}
}
Query1->Close();
Query1->SQL->Clear();
jsql="update dbda0000 set fldl=fldl+"+FloatToStr(pdl)+",fldlf=fldlf+"+FloatToStr(fdl)+",fldlg=fldlg+"+FloatToStr(gdl)+" where hhhh='"+bbzj+"' and dbbh='"+zjbx+"'";
jsql=jsql+" or hhhh='"+hhhh+"' and dbbh='"+zjbx+"'";
Query1->SQL->Add(jsql);
Query1->ExecSQL();
}
YDData->TBdbda->Next();
}
delete Query1;
}
//---------------------------------------
void TFsgcb::jsjddl()
{
AnsiString dblb;
double jdygdl,tjbsdl,tjxsdl;
double jdwgdl;
YDData->TByhda->First();
while (!YDData->TByhda->Eof)
{
jdygdl=0;jdwgdl=0;tjbsdl=0;tjxsdl=0;
YDData->TByhda->Edit();
YDData->TBdbda->First();
while (!YDData->TBdbda->Eof)
{
dblb=YDData->TBdbda->FieldByName("dblb")->AsString;
if (dblb!="无功表"&&dblb!="无功复"&&dblb!="反向表")
{
jdygdl=jdygdl+YDData->TBdbda->FieldByName("zdl")->AsFloat+
YDData->TBdbda->FieldByName("zdlf")->AsFloat+
YDData->TBdbda->FieldByName("zdlg")->AsFloat;
tjbsdl=tjbsdl+YDData->TBdbda->FieldByName("bsdl")->AsFloat+
YDData->TBdbda->FieldByName("bsdlf")->AsFloat+
YDData->TBdbda->FieldByName("bsdlg")->AsFloat;
tjxsdl=tjxsdl+YDData->TBdbda->FieldByName("xsdl")->AsFloat+
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -