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