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

📄 unit_print.~cpp

📁 平台:c++ builder V6.0 功能:利用串口设备通讯,
💻 ~CPP
字号:
//---------------------------------------------------------------------------

#include <vcl.h>
#pragma hdrstop

#include "Unit_Print.h"
#include "Main.h"
#include "Unit_Preview.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm_Print *Form_Print;
//---------------------------------------------------------------------------
__fastcall TForm_Print::TForm_Print(TComponent* Owner)
        : TForm(Owner)
{
}
//---------------------------------------------------------------------------
void __fastcall TForm_Print::Button1Click(TObject *Sender)
{
PrinterSetupDialog1->Execute();
}
//---------------------------------------------------------------------------

void __fastcall TForm_Print::Button_CancelClick(TObject *Sender)
{
Close();
}
//---------------------------------------------------------------------------
void __fastcall TForm_Print::Button_OKClick(TObject *Sender)
{
Printer()->Orientation=poLandscape;
Printer()->Title=Application->Title;

Printer()->BeginDoc();

My_Print(Printer()->Canvas,0.015,
         Printer()->PageWidth,Printer()->PageHeight);
         
Printer()->EndDoc();
Close();
}
//---------------------------------------------------------------------------
void __fastcall TForm_Print::Button_PreviewClick(TObject *Sender)
{
double R;

R=Form_Preview->PixelsPerInch/25.4;
Form_Preview->ClientWidth = 297 * R;
Form_Preview->ClientHeight = 210 * R;
Form_Preview->Position = poDesktopCenter;
Form_Preview->WindowState=wsNormal;
My_Print(Form_Preview->Image1->Canvas,0.015,
         Form_Preview->Image1->Width,Form_Preview->Image1->Height);

Form_Preview->ShowModal();
}
//---------------------------------------------------------------------------
//***************************************************************************
void __fastcall TForm_Print::My_Print(TCanvas *tempCanvas,double ratio,int W,int H)//打印
{
int U;//U为每行的宽度
U= H*ratio;

//清空画布
tempCanvas->Pen->Color=clWhite;
tempCanvas->Rectangle(0,0,W,H);

//打印内容
//tempCanvas->Pen->Width=U/5;
tempCanvas->Pen->Width=0.6*tempCanvas->Font->PixelsPerInch/25.4;

tempCanvas->Pen->Color=clBlack;
tempCanvas->Rectangle(U*8,U*6,W-U*2,H-U*2);//粗线外框
tempCanvas->MoveTo(U*8,U*14);    tempCanvas->LineTo(W-U*2-3,U*14);
tempCanvas->Pen->Width=1;//线宽为1
tempCanvas->MoveTo(U*8,U*10);    tempCanvas->LineTo(U*75,U*10);//中间线(W-U*2,U*10)
tempCanvas->MoveTo(U*14.5,U*6);    tempCanvas->LineTo(U*14.5,U*14);//第一垂线
tempCanvas->MoveTo(U*40,U*6);    tempCanvas->LineTo(U*40,U*14);//第二垂线
tempCanvas->MoveTo(U*44,U*6);    tempCanvas->LineTo(U*44,U*14);//第三垂线
tempCanvas->MoveTo(U*52,U*6);    tempCanvas->LineTo(U*52,U*14);//第四垂线
tempCanvas->MoveTo(U*57.5,U*6);    tempCanvas->LineTo(U*57.5,U*14);//第五垂线
tempCanvas->MoveTo(U*64,U*6);    tempCanvas->LineTo(U*64,U*14);//第六垂线
tempCanvas->MoveTo(U*75,U*6);    tempCanvas->LineTo(U*75,U*14);//第七垂线
tempCanvas->MoveTo(U*79,U*6);    tempCanvas->LineTo(U*79,U*14);//第八垂线

tempCanvas->MoveTo(U*8,U*8);    tempCanvas->LineTo(U*40,U*8);//第二横线
tempCanvas->MoveTo(U*8,U*12);    tempCanvas->LineTo(U*40,U*12);//第二横线

tempCanvas->MoveTo(U*44,U*8);    tempCanvas->LineTo(U*75,U*8);//第三横线
tempCanvas->MoveTo(U*44,U*12);    tempCanvas->LineTo(U*75,U*12);//第四横线


int w,h,WW,HH;
WW=0;
HH=0;
/*if(CheckBox_Icon->Checked&&FileExists(Form_Main->COMPANY.Icon)){
   Graphics::TBitmap *pBitmap = new Graphics::TBitmap();//公司图标
   pBitmap->LoadFromFile(Form_Main->COMPANY.Icon);
   w=pBitmap->Width;
   h=pBitmap->Height;
   pBitmap->Transparent=true;
   HH=U*4;
   WW=HH*(double)w/(double)h;
   tempCanvas->StretchDraw(TRect(U*8,U*2,U*8+WW,U*2+HH),pBitmap);
   }

WideString tmp;
tmp=Form_Main->COMPANY.Name;
tempCanvas->Font->Style.Clear(); //公司名
tempCanvas->Font->Name="黑体";
tempCanvas->Font->Height=U*1.5;
tempCanvas->Pen->Color=clBlack;

if(!CheckBox_Icon->Checked) WW=0;

if(tmp.Length()<=9){
   tempCanvas->TextOut(U*8+WW,U*2.5,"");
   tempCanvas->TextOut(U*8+WW,U*4,tmp);
   }
else{
   tempCanvas->TextOut(U*8+WW,U*2.5,tmp.SubString(1,9));
   tempCanvas->TextOut(U*8+WW,U*4,tmp.SubString(10,tmp.Length()-9));
   }
*/


tempCanvas->Font->Style.Clear(); //测试标题
tempCanvas->Font->Name="宋体";
tempCanvas->Font->Height=U*1.5;
tempCanvas->Pen->Color=clBlack;
tempCanvas->TextOut(U*30,U*4,"粉尘测试");

tempCanvas->Font->Name="黑体";
tempCanvas->Font->Height=U*2.5;
tempCanvas->Pen->Color=clBlack;
tempCanvas->TextOut(U*45,U*3,"测 试 报 告");

String Temp;
Temp="报告编号:"+Form_Main->REPORT.Number;
tempCanvas->Font->Name="宋体";
tempCanvas->Font->Height=U*1.2;
tempCanvas->Pen->Color=clBlack;
tempCanvas->TextOut(U*75,U*4.6,Temp);//报告编号(W-U*Temp.Length()*1.0,U*4.6,Temp)

tempCanvas->TextOut(U*9,U*6.4,"代    号");
tempCanvas->TextOut(U*15,U*6.4,Form_Main->REPORT.Code);//代号

tempCanvas->TextOut(U*9,U*8.4,"名    称");
tempCanvas->TextOut(U*15,U*8.4,Form_Main->REPORT.Name);//名称

tempCanvas->TextOut(U*9,U*10.4,"技术条件");
tempCanvas->TextOut(U*15,U*10.4,Form_Main->REPORT.Technic);//技术条件

tempCanvas->TextOut(U*9,U*12.4,"用户编号");
tempCanvas->TextOut(U*15,U*12.4,Form_Main->REPORT.UserNumber);//用户编号

tempCanvas->TextOut(U*40.5,U*7.4,"状 态");//状态标题
tempCanvas->TextOut(U*45,U*6.4,"耐久试验前");
tempCanvas->TextOut(U*45,U*8.4,"耐久试验后");

if(!Form_Main->REPORT.State)
   tempCanvas->TextOut(U*54,U*6.4,"√");
else
   tempCanvas->TextOut(U*54,U*8.4,"√");

tempCanvas->TextOut(U*40.5,U*11.4,"装 配");//装配标题
tempCanvas->TextOut(U*45,U*10.4,"样    件");
tempCanvas->TextOut(U*45,U*12.4,"生    产");

if(!Form_Main->REPORT.Assem)
   tempCanvas->TextOut(U*54,U*10.4,"√");
else
   tempCanvas->TextOut(U*54,U*12.4,"√");

tempCanvas->TextOut(U*58.5,U*6.4,"测试温度");
tempCanvas->TextOut(U*65,U*6.4,Form_Main->REPORT.Temperature);//测试温度

tempCanvas->TextOut(U*58.5,U*8.4,"试 验 员");
tempCanvas->TextOut(U*65,U*8.4,Form_Main->REPORT.Laber);//试验员

tempCanvas->TextOut(U*58.5,U*10.4,"校    对");
tempCanvas->TextOut(U*65,U*10.4,Form_Main->REPORT.Checker);//校对

tempCanvas->TextOut(U*58.5,U*12.4,"负 责 人");
tempCanvas->TextOut(U*65,U*12.4,Form_Main->REPORT.Leader);//负责人

tempCanvas->TextOut(U*76.5,U*8.4,"备");//备注
tempCanvas->TextOut(U*76.5,U*10.4,"注");//备注

int J,LEN,k;
WideString STR,TMP;

STR=Form_Main->REPORT.Memo;
LEN=STR.Length();
k=1;
J=0;
for(int i=1;i<=LEN;i++){
    TMP=STR.SubString(k,i-k+1);
    if(tempCanvas->TextWidth(TMP)>=U*16||i==LEN){
       tempCanvas->TextOut(U*80,U*6.4+J*U*1.5,TMP);//备注
       J++;
       k=i+1;
       }
    }
///
String SSS;

tempCanvas->TextOut(U*18,U*16.4,"测试参数");
SSS="1.总循环次数:"+String(Form_Main->CHK.Total_Times);
tempCanvas->TextOut(U*15,U*18.4,SSS);

SSS="2.吹粉尘时间(百分秒):"+String(Form_Main->CHK.Spray_Time);
tempCanvas->TextOut(U*15,U*20.4,SSS);

SSS="3.卷收器拉出卷入次数:"+String(Form_Main->CHK.InOut_Time);
tempCanvas->TextOut(U*15,U*22.4,SSS);

SSS="4.间歇时间(百分秒):"+String(Form_Main->CHK.Break_Time);
tempCanvas->TextOut(U*15,U*24.4,SSS);

SSS="结论:";
tempCanvas->TextOut(U*18,U*26.4,SSS);
if(Form_Main->REPORT.CHECK_1){
   if(Form_Main->REPORT.E1){
      SSS="工位一失效:";
      tempCanvas->TextOut(U*15,U*28.4,SSS);
      SSS="完成总循环次数:"+String(Form_Main->REPORT.EE1.T);
      tempCanvas->TextOut(U*16,U*30.4,SSS);
      SSS="最后一次循环完成卷收次数:"+String(Form_Main->REPORT.EE1.S);
      tempCanvas->TextOut(U*16,U*32.4,SSS);
      }
   else{
      SSS="工位一测试通过.";
      tempCanvas->TextOut(U*15,U*28.4,SSS);
      }
   }
if(Form_Main->REPORT.CHECK_2){
   if(Form_Main->REPORT.E2){
      SSS="工位二失效:";
      tempCanvas->TextOut(U*41,U*28.4,SSS);
      SSS="完成总循环次数:"+String(Form_Main->REPORT.EE2.T);
      tempCanvas->TextOut(U*42,U*30.4,SSS);
      SSS="最后一次循环完成卷收次数:"+String(Form_Main->REPORT.EE2.S);
      tempCanvas->TextOut(U*42,U*32.4,SSS);
      }
   else{
      SSS="工位二测试通过.";
      tempCanvas->TextOut(U*41,U*28.4,SSS);
      }
   }

if(Form_Main->REPORT.CHECK_3){
   if(Form_Main->REPORT.E3){
      SSS="工位三失效:";
      tempCanvas->TextOut(U*69,U*28.4,SSS);
      SSS="完成总循环次数:"+String(Form_Main->REPORT.EE3.T);
      tempCanvas->TextOut(U*69,U*30.4,SSS);
      SSS="最后一次循环完成卷收次数:"+String(Form_Main->REPORT.EE3.S);
      tempCanvas->TextOut(U*70,U*32.4,SSS);
      }
   else{
      SSS="工位三测试通过.";
      tempCanvas->TextOut(U*69,U*28.4,SSS);
      }
   }
}
//***************************************************************************


void __fastcall TForm_Print::FormActivate(TObject *Sender)
{
 CheckBox_Have_Head->Checked=RadioButton_Curve->Checked;
 CheckBox_Have_Head->Enabled=!RadioButton_Curve->Checked;
}
//---------------------------------------------------------------------------

void __fastcall TForm_Print::RadioButton_CurveClick(TObject *Sender)
{
 CheckBox_Have_Head->Checked=RadioButton_Curve->Checked;
 CheckBox_Have_Head->Enabled=!RadioButton_Curve->Checked;
}
//---------------------------------------------------------------------------

void __fastcall TForm_Print::RadioButton2Click(TObject *Sender)
{
CheckBox_Have_Head->Enabled=!RadioButton_Curve->Checked;        
}
//---------------------------------------------------------------------------

⌨️ 快捷键说明

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