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

📄 baobiaosetu.cpp

📁 这是个16路采集器的上位机源码。该套程序是由C++builder开发的
💻 CPP
字号:
//---------------------------------------------------------------------------

#include <vcl.h>
#pragma hdrstop

#include "BaobiaoSetU.h"
#include "BaobiaoU.h"
#include "MainU.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma link "Button3D"
#pragma resource "*.dfm"
TBaobiaoSetFrm *BaobiaoSetFrm;
//---------------------------------------------------------------------------
__fastcall TBaobiaoSetFrm::TBaobiaoSetFrm(TComponent* Owner)
        : TForm(Owner)
{
}
//---------------------------------------------------------------------------




void __fastcall TBaobiaoSetFrm::Button1Click(TObject *Sender)
{ Application->Initialize();
                 Application->CreateForm(__classid(TBaobiaoFrm), &BaobiaoFrm);
  BaobiaoFrm->ADOQuery1->Active=false;
  switch(ComboBox1->ItemIndex)
   {  case 1: BaobiaoFrm->QRLC1->Caption="通道1";
              BaobiaoFrm->QRLC2->Caption="通道2";
              BaobiaoFrm->QRLC3->Caption="通道3";
              BaobiaoFrm->QRLC4->Caption="通道4";
              BaobiaoFrm->QRDBTC1->DataField="chy1";
              BaobiaoFrm->QRDBTC2->DataField="chy2";
              BaobiaoFrm->QRDBTC3->DataField="chy3";
              BaobiaoFrm->QRDBTC4->DataField="chy4";
              break;
      case 2: BaobiaoFrm->QRLC1->Caption="通道5";
              BaobiaoFrm->QRLC2->Caption="通道6";
              BaobiaoFrm->QRLC3->Caption="通道7";
              BaobiaoFrm->QRLC4->Caption="通道8";
              BaobiaoFrm->QRDBTC1->DataField="chy5";
              BaobiaoFrm->QRDBTC2->DataField="chy6";
              BaobiaoFrm->QRDBTC3->DataField="chy7";
              BaobiaoFrm->QRDBTC4->DataField="chy8";
              break;
      case 3: BaobiaoFrm->QRLC1->Caption="通道9";
              BaobiaoFrm->QRLC2->Caption="通道10";
              BaobiaoFrm->QRLC3->Caption="通道11";
              BaobiaoFrm->QRLC4->Caption="通道12";
              BaobiaoFrm->QRDBTC1->DataField="chy9";
              BaobiaoFrm->QRDBTC2->DataField="chy10";
              BaobiaoFrm->QRDBTC3->DataField="chy11";
              BaobiaoFrm->QRDBTC4->DataField="chy12";
              break;
      case 4: BaobiaoFrm->QRLC1->Caption="通道13";
              BaobiaoFrm->QRLC2->Caption="通道14";
              BaobiaoFrm->QRLC3->Caption="通道15";
              BaobiaoFrm->QRLC4->Caption="通道16";
              BaobiaoFrm->QRDBTC1->DataField="chy13";
              BaobiaoFrm->QRDBTC2->DataField="chy14";
              BaobiaoFrm->QRDBTC3->DataField="chy15";
              BaobiaoFrm->QRDBTC4->DataField="chy16";
              break;
      default: ShowMessage("请选择通道");
               return;
    } //end switch
    Word SYear, SMonth, SDay, SHour, SMinute, SSec, SMSec;
    Word EYear, EMonth, EDay, EHour, EMinute, ESec, EMSec;
    DecodeDate(StrToDateTime(SEdit->Text), SYear, SMonth, SDay);
    DecodeTime(StrToDateTime(SEdit->Text), SHour, SMinute, SSec, SMSec);
    DecodeDate(StrToDateTime(EEdit->Text), EYear, EMonth, EDay);
    DecodeTime(StrToDateTime(EEdit->Text), EHour, EMinute, ESec, EMSec);
    BaobiaoFrm->ADOQuery1->SQL->Clear();
    BaobiaoFrm->ADOQuery1->SQL->Add("select * from chanel\n");
    BaobiaoFrm->ADOQuery1->SQL->Add("where datetime>=DateSerial("+AnsiString(SYear)+","+AnsiString(SMonth)+","+AnsiString(SDay)+")+TimeSerial("+AnsiString(SHour)+","+AnsiString(SMinute)+","+AnsiString(SSec)+")\n");
    //BaobiaoFrm->ADOQuery1->SQL->Add("and time>=TimeSerial("+AnsiString(SHour)+","+AnsiString(SMinute)+","+AnsiString(SSec)+")\n");
    BaobiaoFrm->ADOQuery1->SQL->Add("and datetime<=DateSerial("+AnsiString(EYear)+","+AnsiString(EMonth)+","+AnsiString(EDay)+")+TimeSerial("+AnsiString(EHour)+","+AnsiString(EMinute)+","+AnsiString(ESec)+")\n");
    //BaobiaoFrm->ADOQuery1->SQL->Add("and time<=TimeSerial("+AnsiString(EHour)+","+AnsiString(EMinute)+","+AnsiString(ESec)+")\n");

    
    BaobiaoFrm->ADOQuery1->Open();
    if(BaobiaoFrm->ADOQuery1->RecordCount==0)
    {
       BaobiaoFrm->ADOQuery1->Close();
       BaobiaoFrm->Close();
       ShowMessage("没有数据可打印!");
       return;
    }
    BaobiaoFrm->QuickRep1->Preview();
    this->Close();
}
//---------------------------------------------------------------------------

void __fastcall TBaobiaoSetFrm::FormCreate(TObject *Sender)
{
  SEdit->Text=DateTimeToStr(MainFrm->start);
  EEdit->Text=DateTimeToStr(MainFrm->end);
}
//---------------------------------------------------------------------------

void __fastcall TBaobiaoSetFrm::Button2Click(TObject *Sender)
{
    //Application->Initialize();
  Application->CreateForm(__classid(TBaobiaoFrm), &BaobiaoFrm);
  BaobiaoFrm->ADOQuery1->Active=false;
  /*
  switch(ComboBox1->ItemIndex)
   {  case 1: BaobiaoFrm->QRLC1->Caption="通道1";
              BaobiaoFrm->QRLC2->Caption="通道2";
              BaobiaoFrm->QRLC3->Caption="通道3";
              BaobiaoFrm->QRLC4->Caption="通道4";
              BaobiaoFrm->QRDBTC1->DataField="chy1";
              BaobiaoFrm->QRDBTC2->DataField="chy2";
              BaobiaoFrm->QRDBTC3->DataField="chy3";
              BaobiaoFrm->QRDBTC4->DataField="chy4";
              break;
      case 2: BaobiaoFrm->QRLC1->Caption="通道5";
              BaobiaoFrm->QRLC2->Caption="通道6";
              BaobiaoFrm->QRLC3->Caption="通道7";
              BaobiaoFrm->QRLC4->Caption="通道8";
              BaobiaoFrm->QRDBTC1->DataField="chy5";
              BaobiaoFrm->QRDBTC2->DataField="chy6";
              BaobiaoFrm->QRDBTC3->DataField="chy7";
              BaobiaoFrm->QRDBTC4->DataField="chy8";
              break;
      case 3: BaobiaoFrm->QRLC1->Caption="通道9";
              BaobiaoFrm->QRLC2->Caption="通道10";
              BaobiaoFrm->QRLC3->Caption="通道11";
              BaobiaoFrm->QRLC4->Caption="通道12";
              BaobiaoFrm->QRDBTC1->DataField="chy9";
              BaobiaoFrm->QRDBTC2->DataField="chy10";
              BaobiaoFrm->QRDBTC3->DataField="chy11";
              BaobiaoFrm->QRDBTC4->DataField="chy12";
              break;
      case 4: BaobiaoFrm->QRLC1->Caption="通道13";
              BaobiaoFrm->QRLC2->Caption="通道14";
              BaobiaoFrm->QRLC3->Caption="通道15";
              BaobiaoFrm->QRLC4->Caption="通道16";
              BaobiaoFrm->QRDBTC1->DataField="chy13";
              BaobiaoFrm->QRDBTC2->DataField="chy14";
              BaobiaoFrm->QRDBTC3->DataField="chy15";
              BaobiaoFrm->QRDBTC4->DataField="chy16";
              break;
      default: ShowMessage("请选择通道");
               return;
    } //end switch
    */
    Word SYear, SMonth, SDay, SHour, SMinute, SSec, SMSec;
    Word EYear, EMonth, EDay, EHour, EMinute, ESec, EMSec;
    DecodeDate(StrToDateTime(SEdit->Text), SYear, SMonth, SDay);
    DecodeTime(StrToDateTime(SEdit->Text), SHour, SMinute, SSec, SMSec);
    DecodeDate(StrToDateTime(EEdit->Text), EYear, EMonth, EDay);
    DecodeTime(StrToDateTime(EEdit->Text), EHour, EMinute, ESec, EMSec);
    BaobiaoFrm->ADOQuery1->SQL->Clear();
    BaobiaoFrm->ADOQuery1->SQL->Add("select * from chanel\n");
    BaobiaoFrm->ADOQuery1->SQL->Add("where datetime>=DateSerial("+AnsiString(SYear)+","+AnsiString(SMonth)+","+AnsiString(SDay)+")+TimeSerial("+AnsiString(SHour)+","+AnsiString(SMinute)+","+AnsiString(SSec)+")\n");
    BaobiaoFrm->ADOQuery1->SQL->Add("and datetime<=DateSerial("+AnsiString(EYear)+","+AnsiString(EMonth)+","+AnsiString(EDay)+")+TimeSerial("+AnsiString(EHour)+","+AnsiString(EMinute)+","+AnsiString(ESec)+")\n");
    BaobiaoFrm->ADOQuery1->Open();
    if(BaobiaoFrm->ADOQuery1->RecordCount==0)
     {
       BaobiaoFrm->ADOQuery1->Close();
       BaobiaoFrm->Close();
       ShowMessage("没有数据可打印!");
       
       //this->Close();
       return;
     }
  //异常处理
  try
  {
    excelapp=Variant::CreateObject("Excel.Application");
  }
  catch(...)
  {
    Application->MessageBox("无法创建Excel表格,请检查您的系统是否安装了Excel!","错误",MB_ICONERROR);
    return;
  }
  excelapp=Variant::CreateObject("Excel.Application");
  excelapp.OlePropertySet("Visible", true);
  excelapp.OlePropertyGet("workbooks").OleFunction("add",1);
  workbook1=excelapp.OlePropertyGet("ActiveWorkbook");
  sheet1=workbook1.OlePropertyGet("ActiveSheet");
  excelapp.OlePropertySet("statusbar","您好,请稍等,USB数据采集器正在查询数据库...");
  excelapp.OlePropertyGet("columns",2).OlePropertySet("columnwidth",16);
  sheet1.OlePropertyGet("cells",1,6).OlePropertySet("value",AnsiString("USB数据采集器报表").c_str());
  sheet1.OlePropertyGet("cells",2,1).OlePropertySet("value",AnsiString("序号").c_str());
  sheet1.OlePropertyGet("cells",2,2).OlePropertySet("value",AnsiString("采集时间").c_str());
  sheet1.OlePropertyGet("cells",2,3).OlePropertySet("value",AnsiString("通道1").c_str());
  sheet1.OlePropertyGet("cells",2,4).OlePropertySet("value",AnsiString("通道2").c_str());
  sheet1.OlePropertyGet("cells",2,5).OlePropertySet("value",AnsiString("通道3").c_str());
  sheet1.OlePropertyGet("cells",2,6).OlePropertySet("value",AnsiString("通道4").c_str());
  sheet1.OlePropertyGet("cells",2,7).OlePropertySet("value",AnsiString("通道5").c_str());
  sheet1.OlePropertyGet("cells",2,8).OlePropertySet("value",AnsiString("通道6").c_str());
  sheet1.OlePropertyGet("cells",2,9).OlePropertySet("value",AnsiString("通道7").c_str());
  sheet1.OlePropertyGet("cells",2,10).OlePropertySet("value",AnsiString("通道8").c_str());
  sheet1.OlePropertyGet("cells",2,11).OlePropertySet("value",AnsiString("通道9").c_str());
  sheet1.OlePropertyGet("cells",2,12).OlePropertySet("value",AnsiString("通道10").c_str());
  sheet1.OlePropertyGet("cells",2,13).OlePropertySet("value",AnsiString("通道11").c_str());
  sheet1.OlePropertyGet("cells",2,14).OlePropertySet("value",AnsiString("通道12").c_str());
  sheet1.OlePropertyGet("cells",2,15).OlePropertySet("value",AnsiString("通道13").c_str());
  sheet1.OlePropertyGet("cells",2,16).OlePropertySet("value",AnsiString("通道14").c_str());
  sheet1.OlePropertyGet("cells",2,17).OlePropertySet("value",AnsiString("通道15").c_str());
  sheet1.OlePropertyGet("cells",2,18).OlePropertySet("value",AnsiString("通道16").c_str());


  BaobiaoFrm->ADOQuery1->First();
  int i=3;
  while(!BaobiaoFrm->ADOQuery1->Eof)
  { sheet1.OlePropertyGet("cells",i,1).OlePropertySet("value",AnsiString(BaobiaoFrm->ADOQuery1->FieldByName("number")->AsInteger).c_str());
    sheet1.OlePropertyGet("cells",i,2).OlePropertySet("value",DateTimeToStr(BaobiaoFrm->ADOQuery1->FieldByName("datetime")->AsDateTime).c_str());
    sheet1.OlePropertyGet("cells",i,3).OlePropertySet("value",AnsiString(BaobiaoFrm->ADOQuery1->FieldByName("chy1")->AsString).c_str());
    sheet1.OlePropertyGet("cells",i,4).OlePropertySet("value",AnsiString(BaobiaoFrm->ADOQuery1->FieldByName("chy2")->AsString).c_str());
    sheet1.OlePropertyGet("cells",i,5).OlePropertySet("value",AnsiString(BaobiaoFrm->ADOQuery1->FieldByName("chy3")->AsString).c_str());
    sheet1.OlePropertyGet("cells",i,6).OlePropertySet("value",AnsiString(BaobiaoFrm->ADOQuery1->FieldByName("chy4")->AsString).c_str());
    sheet1.OlePropertyGet("cells",i,7).OlePropertySet("value",AnsiString(BaobiaoFrm->ADOQuery1->FieldByName("chy5")->AsString).c_str());
    sheet1.OlePropertyGet("cells",i,8).OlePropertySet("value",AnsiString(BaobiaoFrm->ADOQuery1->FieldByName("chy6")->AsString).c_str());
    sheet1.OlePropertyGet("cells",i,9).OlePropertySet("value",AnsiString(BaobiaoFrm->ADOQuery1->FieldByName("chy7")->AsString).c_str());
    sheet1.OlePropertyGet("cells",i,10).OlePropertySet("value",AnsiString(BaobiaoFrm->ADOQuery1->FieldByName("chy8")->AsString).c_str());
    sheet1.OlePropertyGet("cells",i,11).OlePropertySet("value",AnsiString(BaobiaoFrm->ADOQuery1->FieldByName("chy9")->AsString).c_str());
    sheet1.OlePropertyGet("cells",i,12).OlePropertySet("value",AnsiString(BaobiaoFrm->ADOQuery1->FieldByName("chy10")->AsString).c_str());
    sheet1.OlePropertyGet("cells",i,13).OlePropertySet("value",AnsiString(BaobiaoFrm->ADOQuery1->FieldByName("chy11")->AsString).c_str());
    sheet1.OlePropertyGet("cells",i,14).OlePropertySet("value",AnsiString(BaobiaoFrm->ADOQuery1->FieldByName("chy12")->AsString).c_str());
    sheet1.OlePropertyGet("cells",i,15).OlePropertySet("value",AnsiString(BaobiaoFrm->ADOQuery1->FieldByName("chy13")->AsString).c_str());
    sheet1.OlePropertyGet("cells",i,16).OlePropertySet("value",AnsiString(BaobiaoFrm->ADOQuery1->FieldByName("chy14")->AsString).c_str());
    sheet1.OlePropertyGet("cells",i,17).OlePropertySet("value",AnsiString(BaobiaoFrm->ADOQuery1->FieldByName("chy15")->AsString).c_str());
    sheet1.OlePropertyGet("cells",i,18).OlePropertySet("value",AnsiString(BaobiaoFrm->ADOQuery1->FieldByName("chy16")->AsString).c_str());
    i++;
    BaobiaoFrm->ADOQuery1->Next();
  }
  BaobiaoFrm->ADOQuery1->Close();
  excelapp.OlePropertySet("statusbar","完成");
  BaobiaoFrm->Close();
}

//---------------------------------------------------------------------------




void __fastcall TBaobiaoSetFrm::RadioButton2Click(TObject *Sender)
{
  Label2->Enabled=true;
  ComboBox1->Enabled=true;
}
//---------------------------------------------------------------------------

void __fastcall TBaobiaoSetFrm::RadioButton1Click(TObject *Sender)
{
  Label2->Enabled=false;
  ComboBox1->Enabled=false;
}
//---------------------------------------------------------------------------

void __fastcall TBaobiaoSetFrm::Button3D1Click(TObject *Sender)
{
  if(RadioButton1->Checked)
     Button2Click(Sender);
  else
     Button1Click(Sender);

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

⌨️ 快捷键说明

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