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

📄 dfjs.cpp

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

#include <vcl.h>
#include "Math.h" 
#pragma hdrstop

#include "DFJS.h"
#include "YDdatam.h"
#include "YDmain.h"
#include "YDjstj.h"


//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TFdfjs *Fdfjs;
//---------------------------------------------------------------------------
__fastcall TFdfjs::TFdfjs(TComponent* Owner)
        : TForm(Owner)
{
}
//--------------------
void __fastcall TFdfjs::FormCreate(TObject *Sender)
{
 YDData->TByhda->Open();
 YDData->TByhda->First();
 YDData->TBdbda->Open();
 YDData->TBdjkp->Open();
 YDData->TBfjjj->Open();
 YDData->TBxlcs->Open();
 while (!YDData->TBxlcs->Eof)
   {
     ComboBox1->Items->Add(YDData->TBxlcs->FieldByName("xlmc")->AsString);
     YDData->TBxlcs->Next();
   }

 YDData->TBpqdm->Open();
 while (!YDData->TBpqdm->Eof)
    {
      ComboBox2->Items->Add(Trim(YDData->TBpqdm->FieldByName("pqdm")->AsString)+":"+YDData->TBpqdm->FieldByName("pqmc")->AsString);
      YDData->TBpqdm->Next();
    }
 YDData->TBxtcs->Open();
 Caption=YDData->TBxtcs->FieldByName("XT_HSQX")->AsString.SubString(1,4)+"年"+
 YDData->TBxtcs->FieldByName("XT_HSQX")->AsString.SubString(6,2)+"月电费计算";

}
//-------------------------------------------------


//------------------------------------------
void TFdfjs::fd_p()
{
 TQuery *Query3=new TQuery(this);
 Query3->DatabaseName="YDDB";
 AnsiString sql;
 double fbxs=0;
 double fbdl=0;
 if (jsfsp=="定量")
 {
  fbxs=StrToFloat(pdbl);
  if (fbxs>YDData->TBdbda->FieldByName("hjdl")->AsFloat)
    {
     fbdl=YDData->TBdbda->FieldByName("hjdl")->AsFloat;
     YDData->TBdbda->Edit();
     YDData->TBdbda->FieldByName("hjdl")->AsFloat=0;
     YDData->TBdbda->Post();
    }
    else
    {
     fbdl=fbxs;
     YDData->TBdbda->Edit();
     YDData->TBdbda->FieldByName("hjdl")->AsFloat=YDData->TBdbda->FieldByName("hjdl")->AsFloat-fbdl;
     YDData->TBdbda->Post();
    }
    YDData->TBdjkp->Edit();
    YDData->TBdjkp->FieldByName("dlp")->AsFloat=fbdl;
    YDData->TBdjkp->Post();
 }
 if (jsfsp=="定比")
    {
     fbxs=StrToFloat(pdbl)/100;
     fbdl=(YDData->TBdbda->FieldByName("zdl")->AsFloat-zdl_j)*fbxs;
     YDData->TBdbda->Edit();
     YDData->TBdbda->FieldByName("hjdl")->AsFloat=YDData->TBdbda->FieldByName("hjdl")->AsFloat-fbdl;
     YDData->TBdbda->Post();
     YDData->TBdjkp->Edit();
     YDData->TBdjkp->FieldByName("dlp")->AsFloat=fbdl;
     YDData->TBdjkp->Post();
    }
 if (jsfsp=="转变基数")
    {
      fbxs=StrToFloat(pdbl)/100;
      fbdl=(YDData->TBdbda->FieldByName("zdl")->AsFloat-zdl_j)*fbxs;
      YDData->TBdbda->Edit();
      YDData->TBdbda->FieldByName("hjdl")->AsFloat=YDData->TBdbda->FieldByName("hjdl")->AsFloat-fbdl;
      YDData->TBdbda->Post();
      zdl_j=zdl_j+fbdl;
      YDData->TBdjkp->Edit();
      YDData->TBdjkp->FieldByName("dlp")->AsFloat=fbdl;
      YDData->TBdjkp->Post();
    }
 if (jsfsp=="不计变损")
    {
     fbxs=StrToFloat(pdbl)/100;
     fbdl=(YDData->TBdbda->FieldByName("zdl")->AsFloat-zdl_j-YDData->TBdbda->FieldByName("bsdl")->AsFloat)*fbxs;
     YDData->TBdbda->Edit();
     YDData->TBdbda->FieldByName("hjdl")->AsFloat=YDData->TBdbda->FieldByName("hjdl")->AsFloat-fbdl;
     YDData->TBdbda->Post();
     YDData->TBdjkp->Edit();
     YDData->TBdjkp->FieldByName("dlp")->AsFloat=fbdl;
     YDData->TBdjkp->Post();
    }
 if (jsfsp=="跨越时段")
  {
   double fbxsp=StrToFloat(pdbl.SubString(1,3))/100 ;
   double fbxsf=StrToFloat(pdbl.SubString(4,3))/100 ;
   double fbxsg=StrToFloat(pdbl.SubString(7,3))/100 ;
   double fbdlp=fbxsp*YDData->TBdbda->FieldByName("zdl")->AsFloat;
   double fbdlf=fbxsf*YDData->TBdbda->FieldByName("zdlf")->AsFloat;
   double fbdlg=fbxsg*YDData->TBdbda->FieldByName("zdlg")->AsFloat;
   YDData->TBdjkp->Edit();
   YDData->TBdjkp->FieldByName("dlp")->AsFloat=fbdlp+fbdlf+fbdlg;
   YDData->TBdjkp->Post();
   YDData->TBdbda->Edit();
   YDData->TBdbda->FieldByName("hjdl")->AsFloat=YDData->TBdbda->FieldByName("hjdl")->AsFloat-fbdlp;
   YDData->TBdbda->FieldByName("hjdlf")->AsFloat=YDData->TBdbda->FieldByName("hjdlf")->AsFloat-fbdlf;
   YDData->TBdbda->FieldByName("hjdlg")->AsFloat=YDData->TBdbda->FieldByName("hjdlg")->AsFloat-fbdlg;
   YDData->TBdbda->Post();
  }
 if (jsfsp=="居民优待"||jsfsp=="职工优待")
  {
  if (jsfsp=="居民优待")
   sql="select * from djsjk where lb like '%居民优待%'";
  else
   sql="select * from djsjk where lb like '%职工优待%'";
   Query3->Close();
   Query3->SQL->Clear();
   Query3->SQL->Add(sql);
   Query3->ExecSQL();
   Query3->Open();
   int djs=Query3->RecordCount;
   if (djs==0)
   {
    YDData->TBdjkp->Edit();
    YDData->TBdjkp->FieldByName("dlp")->AsFloat=YDData->TBdbda->FieldByName("hjdl")->AsFloat;
    YDData->TBdjkp->FieldByName("jep")->AsFloat=YDData->TBdbda->FieldByName("hjdl")->AsFloat*
    YDData->TBdjkp->FieldByName("djp")->AsFloat;
    YDData->TBdjkp->Post();
    YDData->TBdbda->Edit();
    YDData->TBdbda->FieldByName("hjdl")->AsFloat=0;
    YDData->TBdbda->Post();
    return;
   }
   double dj[9];
   int y=0;
   Query3->First();
   while (!Query3->Eof)
     {
      if (YDData->TBdjkp->FieldByName("gddy")->AsString=="不满1千伏")
         dj[y]=Query3->FieldByName("dj1")->AsFloat;
      if (YDData->TBdjkp->FieldByName("gddy")->AsString=="1-10千伏")
         dj[y]=Query3->FieldByName("dj2")->AsFloat;
      if (YDData->TBdjkp->FieldByName("gddy")->AsString=="35千伏及以上")
         dj[y]=Query3->FieldByName("dj3")->AsFloat;
      if (YDData->TBdjkp->FieldByName("gddy")->AsString=="110千伏及以上")
         dj[y]=Query3->FieldByName("dj4")->AsFloat;
      Query3->Next();
      y++;
     }
   double zydl=YDData->TBdbda->FieldByName("hjdl")->AsFloat;
   double dfje;
   if (zydl>=StrToFloat(YDData->TBdjkp->FieldByName("pdbl")->AsString))
     {
       dfje=StrToFloat(YDData->TBdjkp->FieldByName("pdbl")->AsString)*YDData->TBdjkp->FieldByName("djp")->AsFloat;
       zydl=zydl-StrToFloat(YDData->TBdjkp->FieldByName("pdbl")->AsString);
       for (int x=0;zydl>0;)
        {
          if (zydl>=StrToFloat(YDData->TBdjkp->FieldByName("pdbl")->AsString)&&x<djs-1)
             {
               dfje=dfje+StrToFloat(YDData->TBdjkp->FieldByName("pdbl")->AsString)*dj[x];
               zydl=zydl-StrToFloat(YDData->TBdjkp->FieldByName("pdbl")->AsString);
             }
          else
            {
             dfje=dfje+zydl*dj[x];
             break;
            }
         if (x<djs-1)
              x++;
        }
     }
    else
     {
       dfje=zydl*YDData->TBdjkp->FieldByName("djp")->AsFloat;

     }

   YDData->TBdjkp->Edit();
   YDData->TBdjkp->FieldByName("dlp")->AsFloat=YDData->TBdbda->FieldByName("hjdl")->AsFloat;
   YDData->TBdjkp->FieldByName("jep")->AsFloat=dfje;
   YDData->TBdjkp->Post();
   YDData->TBdbda->Edit();
   YDData->TBdbda->FieldByName("hjdl")->AsFloat=0;
   YDData->TBdbda->Post();
  }
  delete Query3;
}
//----------------------------------------
void TFdfjs::fd_f()
{

 double fbxs=0;
 double fbdl=0;
 if (jsfsf=="定量")
 {
  fbxs=StrToFloat(gfbl);
  if (fbxs>YDData->TBdbda->FieldByName("hjdlf")->AsFloat)
    {
     fbdl=YDData->TBdbda->FieldByName("hjdlf")->AsFloat;
     YDData->TBdbda->Edit();
     YDData->TBdbda->FieldByName("hjdlf")->AsFloat=0;
     YDData->TBdbda->Post();
    }
    else
    {
     fbdl=fbxs;
     YDData->TBdbda->Edit();
     YDData->TBdbda->FieldByName("hjdlf")->AsFloat=YDData->TBdbda->FieldByName("hjdlf")->AsFloat-fbdl;
     YDData->TBdbda->Post();
    }
    YDData->TBdjkp->Edit();
    YDData->TBdjkp->FieldByName("dlf")->AsFloat=fbdl;
    YDData->TBdjkp->Post();
 }
 if (jsfsf=="定比")
    {
     fbxs=StrToFloat(gfbl)/100;
     fbdl=(YDData->TBdbda->FieldByName("zdlf")->AsFloat)*fbxs;
     YDData->TBdbda->Edit();
     YDData->TBdbda->FieldByName("hjdlf")->AsFloat=YDData->TBdbda->FieldByName("hjdlf")->AsFloat-fbdl;
     YDData->TBdbda->Post();
     YDData->TBdjkp->Edit();
     YDData->TBdjkp->FieldByName("dlf")->AsFloat=fbdl;
     YDData->TBdjkp->Post();
    }

}
//--------------------------------------------
void TFdfjs::fd_g()
{
 double fbxs=0;
 double fbdl=0;
 if (jsfsg=="定量")
 {
  fbxs=StrToFloat(dgbl);
  if (fbxs>YDData->TBdbda->FieldByName("hjdlg")->AsFloat)
    {
     fbdl=YDData->TBdbda->FieldByName("hjdlg")->AsFloat;
     YDData->TBdbda->Edit();
     YDData->TBdbda->FieldByName("hjdlg")->AsFloat=0;
     YDData->TBdbda->Post();
    }
    else
    {
     fbdl=fbxs;
     YDData->TBdbda->Edit();
     YDData->TBdbda->FieldByName("hjdlg")->AsFloat=YDData->TBdbda->FieldByName("hjdlg")->AsFloat-fbdl;
     YDData->TBdbda->Post();
    }
    YDData->TBdjkp->Edit();
    YDData->TBdjkp->FieldByName("dlg")->AsFloat=fbdl;
    YDData->TBdjkp->Post();
 }
 if (jsfsg=="定比")
    {
     fbxs=StrToFloat(dgbl)/100;
     fbdl=(YDData->TBdbda->FieldByName("zdlg")->AsFloat)*fbxs;
     YDData->TBdbda->Edit();
     YDData->TBdbda->FieldByName("hjdlg")->AsFloat=YDData->TBdbda->FieldByName("hjdlg")->AsFloat-fbdl;
     YDData->TBdbda->Post();
     YDData->TBdjkp->Edit();
     YDData->TBdjkp->FieldByName("dlg")->AsFloat=fbdl;
     YDData->TBdjkp->Post();
    }


}

//---------------------------------------------------------------------------
void TFdfjs::dfjs()
{
 TQuery *Query1=new TQuery(this);
 Query1->DatabaseName="YDDB";
 AnsiString sql;
 AnsiString hhhh=YDData->TByhda->FieldByName("hhhh")->AsString;
 AnsiString hsqx=YDData->TBxtcs->FieldByName("xt_hsqx")->AsString;
 double sycj,bycj,cs,bjdl,hjdl;
 YDData->TBdbda->First();
 while (!YDData->TBdbda->Eof)
  {

    YDData->TBdjkp->First();
     while (!YDData->TBdjkp->Eof)
       {
         pdbl=YDData->TBdjkp->FieldByName("pdbl")->AsString;
         gfbl=YDData->TBdjkp->FieldByName("gfbl")->AsString;
         dgbl=YDData->TBdjkp->FieldByName("dgbl")->AsString;
         jsfsp=YDData->TBdjkp->FieldByName("jsfsp")->AsString;
         jsfsf=YDData->TBdjkp->FieldByName("jsfsf")->AsString;
         jsfsg=YDData->TBdjkp->FieldByName("jsfsg")->AsString;

         if (jsfsp!="收容"&&pdbl!="")
           fd_p();
          else
           {
            YDData->TBdjkp->Edit();
            YDData->TBdjkp->FieldByName("dlp")->AsFloat=YDData->TBdbda->FieldByName("hjdl")->AsFloat;
            YDData->TBdjkp->Post();
            YDData->TBdbda->Edit();
            YDData->TBdbda->FieldByName("hjdl")->AsFloat=0;
            YDData->TBdbda->Post();
           }
         if (jsfsf!="收容"&&gfbl!="")
            fd_f();
          else
           {
            YDData->TBdjkp->Edit();
            YDData->TBdjkp->FieldByName("dlf")->AsFloat=YDData->TBdbda->FieldByName("hjdlf")->AsFloat;
            YDData->TBdjkp->Post();
            YDData->TBdbda->Edit();
            YDData->TBdbda->FieldByName("hjdlf")->AsFloat=0;
            YDData->TBdbda->Post();
           }
         if (jsfsg!="收容"&&dgbl!="")
            fd_g();
          else
           {
            YDData->TBdjkp->Edit();
            YDData->TBdjkp->FieldByName("dlg")->AsFloat=YDData->TBdbda->FieldByName("hjdlg")->AsFloat;
            YDData->TBdjkp->Post();
            YDData->TBdbda->Edit();
            YDData->TBdbda->FieldByName("hjdlg")->AsFloat=0;
            YDData->TBdbda->Post();

           }

          YDData->TBdjkp->Next();
       }
    YDData->TBdbda->Edit();
    YDData->TBdbda->FieldByName("cszt")->AsString="2";
    YDData->TBdbda->Post();
    YDData->TBdbda->Next();

  }
  YDData->TBfjjj->First();
  while (!YDData->TBfjjj->Eof)
    {
       YDData->TBfjjj->Edit();
       YDData->TBfjjj->FieldByName("fj_dl")->AsFloat=YDData->TByhda->FieldByName("zjygdl")->AsFloat;
       YDData->TBfjjj->FieldByName("fj_je")->AsFloat=
       YDData->TByhda->FieldByName("zjygdl")->AsFloat*YDData->TBfjjj->FieldByName("fj_dj")->AsFloat;
       YDData->TBfjjj->Post();
       YDData->TBfjjj->Next();
    }
 Query1->SQL->Clear();
 sql="select 'fjf'=sum(fj_je) from fjjj0000 where fj_hhhh='"+hhhh+"'";
 Query1->SQL->Add(sql);
 Query1->ExecSQL();
 Query1->Open();
 YDData->TByhda->Edit();
 YDData->TByhda->FieldByName("fjf")->AsFloat=Query1->FieldByName("fjf")->AsFloat;
 YDData->TByhda->Post();
 Query1->Close();
 Query1->SQL->Clear();
 sql="update djkp0000 set jep=dlp*djp,jef=dlf*djf,jeg=dlg*djg where jsfsp<>'居民优待'and jsfsp<>'职工优待' and hhhh='"+hhhh+"'";
 Query1->SQL->Add(sql);
 Query1->ExecSQL();
 Query1->SQL->Clear();
 sql="select 'dddf'=sum(jep)+sum(jef)+sum(jeg) from djkp0000 where hhhh='"+hhhh+"'";
 Query1->SQL->Add(sql);
 Query1->ExecSQL();
 Query1->Open();
 YDData->TByhda->Edit();
 YDData->TByhda->FieldByName("dddf")->AsFloat=Query1->FieldByName("dddf")->AsFloat;
 YDData->TByhda->FieldByName("www")->AsFloat=YDData->TByhda->FieldByName("zjygdl")->AsFloat*YDData->TBxtcs->FieldByName("xt_wgfdj")->AsFloat;
 YDData->TByhda->Post();
 YDData->TByhda->Refresh();
 if (YDData->TByhda->FieldByName("jbdj")->AsFloat>0&&YDData->TByhda->FieldByName("yxts")->AsFloat>0)
  {
   YDData->TByhda->Edit();
   YDData->TByhda->FieldByName("jbdf")->AsFloat=YDData->TByhda->FieldByName("jbdj")->AsFloat*
   YDData->TByhda->FieldByName("syrl")->AsFloat;
   YDData->TByhda->Post();
  }
  else
  {
   YDData->TByhda->Edit();
   YDData->TByhda->FieldByName("jbdf")->AsFloat=0;
   YDData->TByhda->Post();
  }
 double llyg,llwg,sjll,jfbl;
 llyg=YDData->TByhda->FieldByName("zjygdl")->AsFloat;
 llwg=YDData->TByhda->FieldByName("zjwgdl")->AsFloat;
 if (llyg!=0&&llwg!=0)
   {
    sjll=llyg/sqrt(llyg*llyg+llwg*llwg);
    jfbl=jfbljs(sjll,YDData->TByhda->FieldByName("BZLL")->AsFloat);
    YDData->TByhda->Edit();
    YDData->TByhda->FieldByName("lldf")->AsFloat=Query1->FieldByName("dddf")->AsFloat*jfbl/100;
    YDData->TByhda->FieldByName("jfbl")->AsFloat=jfbl;
    YDData->TByhda->FieldByName("byll")->AsFloat=sjll;
    YDData->TByhda->Post();
   }
 else
  {
    YDData->TByhda->Edit();
    YDData->TByhda->FieldByName("lldf")->AsFloat=0;
    YDData->TByhda->FieldByName("jfbl")->AsFloat=0;

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -