📄 ydcbjgl.~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 + -