⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 ydsgcb.~cpp

📁 营业用电管理系统(网络版)是本公司推出的新一代软件产品
💻 ~CPP
📖 第 1 页 / 共 2 页
字号:
//---------------------------------------------------------------------------

#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 + -