📄 printset.cpp
字号:
//---------------------------------------------------------------------------
#include <vcl.h>
#pragma hdrstop
#include "PrintSet.h"
#include "DM1.h"
#include "MyPrint.h"
#include "SortSelect.h"
#include "ChangeTitle.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TFormPrintSet *FormPrintSet;
//---------------------------------------------------------------------------
__fastcall TFormPrintSet::TFormPrintSet(TComponent* Owner)
: TForm(Owner)
{
for (int i= 0;i<50;i++)
{
pColumn[i] = NULL;
}
}
//----------------------------------------------
__fastcall TFormPrintSet::~TFormPrintSet()
{
for (int i= 0;i<50;i++)
{
if (pColumn[i])
{
delete pColumn[i];
pColumn[i] = NULL;
}
}
}
//-----------------------------------------------------
void __fastcall TFormPrintSet::SetGrid(TDBGrid *pSourceGrid)
{
DBGrid1->Columns->Clear();
DBGrid1->Columns->Assign(pSourceGrid->Columns);
}
//-----------------------------------------------------
void __fastcall TFormPrintSet::SetColumn(TDBGrid *pGrid)
{
int nLeft,nTop;
nLeft = 0;
nTop = 0;
for (int i = 0;i<pGrid->Columns->Count;i++)
{
pColumn[i] = new TCheckBox(this);
pColumn[i]->Parent = Panel1;
pColumn[i]->Caption = pGrid->Columns->Items[i]->Title->Caption ;
pColumn[i]->Width = strlen(pGrid->Columns->Items[i]->Title->Caption.c_str()) * 6 + 30;
pColumn[i]->Checked = pGrid->Columns->Items[i]->Visible;
//if ((Panel1->Width - nLeft) < pColumn[i]->Width)
if ((Panel1->Width - nLeft) < 84)
{
nTop = nTop + pColumn[i]->Height;
if ((Panel1->Height - nTop) < pColumn[i]->Height)
{
Panel1->Height = Panel1->Height + pColumn[i]->Height;
for(int j = 0;j < ControlCount;j++)
{
if (Controls[j]->Top <= Panel1->Top) continue;
Controls[j]->Top += pColumn[i]->Height;
}
Height += pColumn[i]->Height +2;
}
nLeft = 0;
}
pColumn[i]->Top = nTop+ 2;
pColumn[i]->Left = nLeft + 4;
//nLeft = nLeft + pColumn[i]->Width;
nLeft = nLeft + 100;
}
}
//---------------------------------------------------------------------------
void __fastcall TFormPrintSet::FormShow(TObject *Sender)
{
SetColumn(DBGrid1);
}
//-------------------------------------------------------
void __fastcall TFormPrintSet::SetDataSource(TDataSet *pSourceDataSet)
{
pQuery = dynamic_cast<TADOQuery *>(pSourceDataSet);
DataSource1->DataSet = pQuery;
}
//-------------------------------------------------------
void __fastcall TFormPrintSet::DelColumn()
{
for (int i= 0;i<50;i++)
{
if (pColumn[i])
{
delete pColumn[i];
pColumn[i] = NULL;
}
}
}
//---------------------------------------------------------------------------
void __fastcall TFormPrintSet::DBGrid1ColumnMoved(TObject *Sender,
int FromIndex, int ToIndex)
{
DelColumn();
SetColumn(DBGrid1);
}
//---------------------------------------------------------------------------
void __fastcall TFormPrintSet::ButtonSelectColumnClick(TObject *Sender)
{
if (ButtonSelectColumn->Caption == "选择打印列(&A)")
{
Panel1->Color = clInfoBk ;
Panel1->Enabled = true;
DBGrid1->Enabled = false;
BitBtnPreview->Enabled = false;
BitBtnPrint->Enabled = false;
ButtonSelectColumn->Caption = "确定(&A)";
}
else
{
Panel1->Color = clBtnFace;
Panel1->Enabled = false;
DBGrid1->Enabled = true;
BitBtnPreview->Enabled = true;
BitBtnPrint->Enabled = true;
ButtonSelectColumn->Caption = "选择打印列(&A)";
for(int i =0;i < DBGrid1->Columns->Count;i++)
{
DBGrid1->Columns->Items[i]->Visible = pColumn[i]->Checked;
}
}
}
//---------------------------------------------------------------------------
void __fastcall TFormPrintSet::Button2Click(TObject *Sender)
{
FontDialog1->Font = DBGrid1->Columns->Items[0]->Title->Font ;
if(FontDialog1->Execute())
{
for(int i =0;i<DBGrid1->Columns->Count; i++)
{
DBGrid1->Columns->Items[i]->Title->Font = FontDialog1->Font;
}
}
}
//---------------------------------------------------------------------------
void __fastcall TFormPrintSet::Button1Click(TObject *Sender)
{
FontDialog2->Font = DBGrid1->Font ;
if(FontDialog2->Execute())
{
DBGrid1->Font = FontDialog2->Font ;
}
}
//---------------------------------------------------------------------------
void __fastcall TFormPrintSet::Button3Click(TObject *Sender)
{
FontDialog3->Font = EditTitle->Font;
if(FontDialog3->Execute())
EditTitle->Font = FontDialog3->Font;
}
//---------------------------------------------------------------------------
void __fastcall TFormPrintSet::BitBtnPreviewClick(TObject *Sender)
{
if (nPrintErr == 1)
{
ShowMessage("连接打印机失败! 请检查打印机连接是否正确,然后重新运行程序!");
return;
}
//TFormMyPrint * FormMyPrint = new TFormMyPrint(this);
FormMyPrint->SetTitle(EditTitle->Text,EditTitle->Font);
FormMyPrint->SetLabel(DBGrid1,DataSource1->DataSet);
FormMyPrint->repPreview();
//delete FormMyPrint;
}
//---------------------------------------------------------------------------
void __fastcall TFormPrintSet::BitBtnPrintClick(TObject *Sender)
{
//TFormMyPrint * FormMyPrint = new TFormMyPrint(this);
if (nPrintErr == 1)
{
ShowMessage("连接打印机失败! 请检查打印机连接是否正确,然后重新运行程序!");
return;
}
FormMyPrint->SetTitle(EditTitle->Text,EditTitle->Font);
FormMyPrint->SetLabel(DBGrid1,DataSource1->DataSet);
FormMyPrint->repPrint();
//delete FormMyPrint;
}
//---------------------------------------------------------------------------
void __fastcall TFormPrintSet::BitBtn1Click(TObject *Sender)
{
Close();
}
//---------------------------------------------------------------------------
void __fastcall TFormPrintSet::Button4Click(TObject *Sender)
{
TFormSortSelect *FormSortSelect = new TFormSortSelect(this);
FormSortSelect->SetItem(DBGrid1);
if (FormSortSelect->ShowModal() == mrOk)
pQuery->Sort = FormSortSelect->sSort;
delete FormSortSelect;
}
//---------------------------------------------------------------------------
void __fastcall TFormPrintSet::Button5Click(TObject *Sender)
{
TFormChangeTitle * FormChangeTitle = new TFormChangeTitle(this);
FormChangeTitle->pGrid = DBGrid1;
FormChangeTitle->ShowModal();
delete FormChangeTitle;
}
//---------------------------------------------------------------------------
void __fastcall TFormPrintSet::BitBtnPrintSetClick(TObject *Sender)
{
if (nPrintErr == 1)
{
ShowMessage("连接打印机失败! 请检查打印机连接是否正确,然后重新运行程序!");
return;
}
FormMyPrint->QuickRep1->PrinterSetup();
}
//---------------------------------------------------------------------------
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -