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

📄 ydcbjgl.~cpp

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

#include <vcl.h>
#include <stdio.h>
#include "loaddll.h"
#pragma hdrstop

#include "YDcbjgl.h"
#include "YDdatam.h"
#include "YDmain.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma link "CSPIN"
#pragma resource "*.dfm"

int ck=1; //当前串口保存变量

TFcbjgl *Fcbjgl;
//---------------------------------------------------------------------------
__fastcall TFcbjgl::TFcbjgl(TComponent* Owner)
        : TForm(Owner)
{
}
//---------------------------------------------------------------------------

void __fastcall TFcbjgl::Button9Click(TObject *Sender)
{
 int r1,r2;
 ck=1;
 r1=openport(1);
 closeport();
 r2=openport(2);
 closeport();
 if(r1==1)
   {
    ck=1;
    Edit3->Text="抄表器在串口一";
   }
 if(r2==2)
    {
      ck=2;
      Edit3->Text="抄表器在串口二";
    }
if (r1!=1&&r2!=2)
     Edit3->Text="连接不上抄表器";
// Edit4->Text =AnsiString(ck);
}
//---------------------------------------------------------------------------
#define uc unsigned char
void __fastcall TFcbjgl::Button10Click(TObject *Sender)
{
 unsigned int r,i,n,e;

 char *fn=new char[30];
 unsigned char *buf=new unsigned char[4000];
 union ulc{uc c[4];unsigned long ul;}mlen;
 AnsiString s,s1;
 FILE *fp;
 ListBox1->Items->Clear();
// Memo1->Lines->Clear();
 r=getlist(ck);
 e=r*24;
 Sleep(500);

 fp=fopen("filetmp.tmp","rb");
  if(fp==NULL){ShowMessage("打不开文件");return;}
 fseek(fp,0,SEEK_SET);
 fread(buf,1,e,fp);
 fclose(fp);


 for(i=0;i<r;i++)
  {
    for(n=0;n<20;n++)fn[n]=buf[i*24+4+n];
    fn[20]=0;
    for(n=0;n<4;n++)mlen.c[3-n]=buf[i*24+n];
    s1=AnsiString(fn);
    s=s1+",长度:"+IntToStr(mlen.ul);
    ListBox1->Items->Add(s);
//    Memo1->Lines->Add(s);
  }

 remove("filetmp.tmp");
 delete buf;
 delete fn;
}
//---------------------------------------------------------------------------
void __fastcall TFcbjgl::Button11Click(TObject *Sender)
{
if (Edit5->Text=="dian.dbf")
 {
   AnsiString sql;
   sql="select yhda0000.yhmc,dbda0000.* from yhda0000,dbda0000 where dbda0000.hhhh=yhda0000.hhhh and yhda0000.cby='"+ComboBox1->Text+"'";
   Table1->EmptyTable();
   TQuery *Query1=new TQuery(this);
   Query1->DatabaseName="YDDB";
   Query1->SQL->Add(sql);
   Query1->ExecSQL();
   Query1->Open();
   Query1->First();
   while (!Query1->Eof)
     {
       Table1->Append();
       Table1->FieldByName("no")->AsString=Query1->FieldByName("hhhh")->AsString;
       Table1->FieldByName("yhmc")->AsString=Query1->FieldByName("yhmc")->AsString;
       Table1->FieldByName("bh")->AsString=Query1->FieldByName("bh")->AsString;
       Table1->FieldByName("dblb")->AsString=Query1->FieldByName("dblb")->AsString;
       Table1->FieldByName("bl")->AsFloat=Query1->FieldByName("bl")->AsFloat;
       if (Query1->FieldByName("dblb")->AsString.SubString(5,2)!="复")
         Table1->FieldByName("sd")->AsString="";
       else
         Table1->FieldByName("sd")->AsString="平";
       Table1->FieldByName("sycj")->AsFloat=Query1->FieldByName("sycj")->AsFloat;
       Table1->FieldByName("bycj")->AsFloat=Query1->FieldByName("bycj")->AsFloat;
       Table1->FieldByName("cbbz")->AsString=Query1->FieldByName("cszt")->AsString;
       Table1->Post();
       if (Query1->FieldByName("dblb")->AsString.SubString(5,2)=="复")
        {
         Table1->Append();
         Table1->FieldByName("no")->AsString=Query1->FieldByName("hhhh")->AsString;
         Table1->FieldByName("yhmc")->AsString=Query1->FieldByName("yhmc")->AsString;
         Table1->FieldByName("bh")->AsString=Query1->FieldByName("bh")->AsString;
         Table1->FieldByName("dblb")->AsString=Query1->FieldByName("dblb")->AsString;
         Table1->FieldByName("bl")->AsFloat=Query1->FieldByName("blf")->AsFloat;
         Table1->FieldByName("sd")->AsString="峰";
         Table1->FieldByName("sycj")->AsFloat=Query1->FieldByName("sycjf")->AsFloat;
         Table1->FieldByName("bycj")->AsFloat=Query1->FieldByName("bycjf")->AsFloat;
         Table1->FieldByName("cbbz")->AsString=Query1->FieldByName("cszt")->AsString;
         Table1->Post();
         Table1->Append();
         Table1->FieldByName("no")->AsString=Query1->FieldByName("hhhh")->AsString;
         Table1->FieldByName("yhmc")->AsString=Query1->FieldByName("yhmc")->AsString;
         Table1->FieldByName("bh")->AsString=Query1->FieldByName("bh")->AsString;
         Table1->FieldByName("dblb")->AsString=Query1->FieldByName("dblb")->AsString;
         Table1->FieldByName("bl")->AsFloat=Query1->FieldByName("blg")->AsFloat;
         Table1->FieldByName("sd")->AsString="谷";
         Table1->FieldByName("sycj")->AsFloat=Query1->FieldByName("sycjg")->AsFloat;
         Table1->FieldByName("bycj")->AsFloat=Query1->FieldByName("bycjg")->AsFloat;
         Table1->FieldByName("cbbz")->AsString=Query1->FieldByName("cszt")->AsString;
         Table1->Post();
        }
       Query1->Next();
     }
   delete Query1;
   
  }


 int r;
 r=downfile(ck,Edit5->Text.c_str());
 switch(r)
  {
  case 1:
    ShowMessage("文件下传成功!");
    break;
  case 202:
    ShowMessage("数据传输错误!!");
    break;
  case 203:
    ShowMessage("文件打开错误!");
    break;
  default:
    ShowMessage("文件下传失败!");
    break;
  }
}
//---------------------------------------------------------------------------

void __fastcall TFcbjgl::Button12Click(TObject *Sender)
{
 Table1->Close();
 int r;
 if (Trim(Edit5->Text)=="")
  {
   ShowMessage("请先选择上传文件!!");
   return;
  }
 r=upfile(ck,Edit5->Text.c_str());
 switch(r)
  {
  case 1:
   if (LowerCase(Edit5->Text)=="dian.dbf")
    {
     Table1->Open();
     Table1->First();
     while (!Table1->Eof)
      {
        YDData->TBdbda->First();
         while (!YDData->TBdbda->Eof)
          {
           if (YDData->TBdbda->FieldByName("hhhh")->AsString==Table1->FieldByName("no")->AsString&&
           YDData->TBdbda->FieldByName("bh")->AsString==Table1->FieldByName("bh")->AsString)
            {
            YDData->TBdbda->Edit();
            if (Table1->FieldByName("sd")->AsString==""||Table1->FieldByName("sd")->AsString=="平")
              {

               YDData->TBdbda->FieldByName("sycj")->AsFloat=Table1->FieldByName("sycj")->AsFloat;
               YDData->TBdbda->FieldByName("bycj")->AsFloat=Table1->FieldByName("bycj")->AsFloat;

              }
            if (Table1->FieldByName("sd")->AsString=="峰")
              {
               YDData->TBdbda->FieldByName("sycjf")->AsFloat=Table1->FieldByName("sycj")->AsFloat;
               YDData->TBdbda->FieldByName("bycjf")->AsFloat=Table1->FieldByName("bycj")->AsFloat;
              }
            if (Table1->FieldByName("sd")->AsString=="谷")
              {
               YDData->TBdbda->FieldByName("sycjf")->AsFloat=Table1->FieldByName("sycj")->AsFloat;
               YDData->TBdbda->FieldByName("bycjf")->AsFloat=Table1->FieldByName("bycj")->AsFloat;
              }
            csjs();
            YDData->TBdbda->FieldByName("cszt")->AsString="1";
            YDData->TBdbda->Post();
            break;
           }
           YDData->TBdbda->Next();
          }
         AnsiString sql="update yhda0000 set cszt='1' where hhhh='"+Table1->FieldByName("no")->AsString+"'";
         TQuery *Query1=new TQuery(this);
         Query1->DatabaseName="YDDB";
         Query1->SQL->Add("sql");
         Query1->ExecSQL();
         delete Query1;
         Table1->Next();
      }
    }
    ShowMessage("文件上传成功!");
    break;
   case 202:
     ShowMessage("数据传输错误!!");
     break;
   default:
     ShowMessage("文件上传失败!");
     break;
  }
}
//---------------------------------------------------------------------------
void __fastcall TFcbjgl::Button13Click(TObject *Sender)
{
 int r;
 r=deletefile(ck,Edit5->Text.c_str());
 switch(r)
  {
  case 1:
    ShowMessage("文件删除成功!");
    break;
   default:
     ShowMessage("文件删除失败!");
     break;
  }

}
//---------------------------------------------------------------------------
void __fastcall TFcbjgl::FormActivate(TObject *Sender)
{
 ldll();
 Button9->Click();
 if (ck!=1||ck!=2)
  {
   Button11->Enabled=false;
   Button12->Enabled=false;
   Button13->Enabled=false;
  }
 else
   {
    Button11->Enabled=true;
    Button12->Enabled=true;
    Button13->Enabled=true;
   }
}
//---------------------------------------------------------------------------
void __fastcall TFcbjgl::Button8Click(TObject *Sender)
{
 Close();        
}
//---------------------------------------------------------------------------



void __fastcall TFcbjgl::FormShow(TObject *Sender)
{
//  Button9->Click();
}
//---------------------------------------------------------------------------


void __fastcall TFcbjgl::FormCreate(TObject *Sender)
{
 YDData->TBdbda->Open();
 YDData->TBcbysz->Open();
 YDData->TBcbysz->First();
 while (!YDData->TBcbysz->Eof)
   {
    ComboBox1->Items->Add(YDData->TBcbysz->FieldByName("cby_xm")->AsString);
    YDData->TBcbysz->Next();
   }
}
//---------------------------------------------------------------------------

void __fastcall TFcbjgl::FormClose(TObject *Sender, TCloseAction &Action)
{
 Table1->Close();
 YDData->TBdbda->Close();
 YDData->TBcbysz->Close();
 Fmain->gnjs(Fmain->tcjc);
}
//---------------------------------------------------------------------------
void TFcbjgl::csjs()
{
  int  ws=YDData->TBdbda->FieldByName("WS")->AsFloat;
  int  wsf=YDData->TBdbda->FieldByName("WSF")->AsFloat;
  int  wsg=YDData->TBdbda->FieldByName("WSG")->AsFloat;
  AnsiString fx=YDData->TBdbda->FieldByName("FX")->AsString;
  AnsiString fxf=YDData->TBdbda->FieldByName("FXF")->AsString;
  AnsiString fxg=YDData->TBdbda->FieldByName("FXG")->AsString;
  AnsiString dblb=YDData->TBdbda->FieldByName("DBLB")->AsString;
  AnsiString maxds="9999999999";
   if (YDData->TBdbda->FieldByName("FX")->AsString=="正转")
    {
     YDData->TBdbda->FieldByName("CS")->AsFloat=YDData->TBdbda->FieldByName("BYCJ")->AsFloat-
     YDData->TBdbda->FieldByName("SYCJ")->AsFloat;
    }
   if (YDData->TBdbda->FieldByName("FX")->AsString=="反转")
    {
     YDData->TBdbda->FieldByName("CS")->AsFloat=YDData->TBdbda->FieldByName("SYCJ")->AsFloat-
     YDData->TBdbda->FieldByName("BYCJ")->AsFloat;
    }
   if (dblb.SubString(5,2)=="复")
    {

      if (fxf=="正转"||fxg=="正转")
        {
         YDData->TBdbda->FieldByName("CSF")->AsFloat=YDData->TBdbda->FieldByName("BYCJF")->AsFloat-
         YDData->TBdbda->FieldByName("SYCJF")->AsFloat;
         YDData->TBdbda->FieldByName("CSG")->AsFloat=YDData->TBdbda->FieldByName("BYCJG")->AsFloat-
         YDData->TBdbda->FieldByName("SYCJG")->AsFloat;
        }
      if (fxf=="反转"||fxg=="反转")
       {
         YDData->TBdbda->FieldByName("CSF")->AsFloat=YDData->TBdbda->FieldByName("SYCJF")->AsFloat-
         YDData->TBdbda->FieldByName("BYCJF")->AsFloat;
         YDData->TBdbda->FieldByName("CSG")->AsFloat=YDData->TBdbda->FieldByName("SYCJG")->AsFloat-
         YDData->TBdbda->FieldByName("BYCJG")->AsFloat;
       }
    }
  if (YDData->TBdbda->FieldByName("CS")->AsFloat<0)
    {
     YDData->TBdbda->FieldByName("CS")->AsFloat=StrToInt(maxds.SubString(1,ws))+1+
     YDData->TBdbda->FieldByName("CS")->AsFloat;
    }
  if (YDData->TBdbda->FieldByName("CSF")->AsFloat<0)
    {
     YDData->TBdbda->FieldByName("CSF")->AsFloat=StrToInt(maxds.SubString(1,wsf))+1+
     YDData->TBdbda->FieldByName("CSF")->AsFloat;
    }
  if (YDData->TBdbda->FieldByName("CSG")->AsFloat<0)
    {
     YDData->TBdbda->FieldByName("CSG")->AsFloat=StrToInt(maxds.SubString(1,wsg))+1+
     YDData->TBdbda->FieldByName("CSG")->AsFloat;
    }
   YDData->TBdbda->FieldByName("BLDL")->AsFloat=YDData->TBdbda->FieldByName("BL")->AsFloat*
   YDData->TBdbda->FieldByName("CS")->AsFloat;
   YDData->TBdbda->FieldByName("BLDLF")->AsFloat=YDData->TBdbda->FieldByName("BLF")->AsFloat*
   YDData->TBdbda->FieldByName("CSF")->AsFloat;
   YDData->TBdbda->FieldByName("BLDLG")->AsFloat=YDData->TBdbda->FieldByName("BLG")->AsFloat*
   YDData->TBdbda->FieldByName("CSG")->AsFloat;

}
void __fastcall TFcbjgl::ListBox1DblClick(TObject *Sender)
{
 for (int i=0;i<ListBox1->Items->Count;i++)
 {
   if (ListBox1->Selected[i]==true)
     Edit5->Text=ListBox1->Items->Strings[i].SubString(1,ListBox1->Items->Strings[i].AnsiPos(",")-1);
   else
    Edit5->Text="";
 }
}
//---------------------------------------------------------------------------

⌨️ 快捷键说明

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