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

📄 yddljs.cpp

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

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