作者:鍾情噯伱_616 | 来源:互联网 | 2023-01-06 16:18
ListView以Report属性显示,显示结果是一个表中的记录。如何把显示的结果能够打印出来,程序该如何实现??请详细指教。谢谢了!!
7 个解决方案
建立一个结构体,把ListView中的数据读出来,进行打印
void __fastcall TForm1::BitBtn1Click(TObject *Sender)
{
const char Names[6][2][10] =
{{"Rubble","Barny"},
{"Michael", "Johnson"},
{"Bunny", "Bugs"},
{"Silver", "HiHo"},
{"Simpson", "Bart"},
{"Squirrel", "Rockey"}};
TListColumn *NewColumn;
TListItem *ListItem;
TListView *ListView = new TListView(this);
//ListView->Parent1 = this;
//ListView->Align = alClient;
ListView1->ViewStyle = vsReport;
NewColumn = ListView1->Columns->Add();
NewColumn->Caption = "Last";
NewColumn = ListView1->Columns->Add();
NewColumn->Caption = "First";
for (int i = 0; i < 6; i++)
{
ListItem = ListView1->Items->Add();
ListItem->Caption = Names[i][0];
ListItem->SubItems->Add(Names[i][1]);
}
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button1Click(TObject *Sender)
{
TListItem *ListItem;
TQRLabel *QRLabela,*QRLabelb;
for (int i=0;iItems->Count;i++){
QRLabela = new TQRLabel(QRBand1);
QRLabelb = new TQRLabel(QRBand1);
QRLabela->Name = "QRLabela"+IntToStr(i);
QRLabelb->Name = "QRLabelb"+IntToStr(i);
QRLabela->Top = 10;
QRLabelb->Top = 10;
QRLabela->Left = 10;
QRLabelb->Left = 20;
QRLabela->Top = i * QRLabela->Height + QRLabela->Top + 10;
QRLabelb->Top = i * QRLabelb->Height + QRLabelb->Top + 10;
QRLabela->Visible = true;
QRLabelb->Visible = true;
ListItem = ListView1->Items->Item[i];
QRLabela->Caption = ListItem->Caption;
QRLabelb->Caption = ListItem->SubItems->Text;
}
}
可是QRLabela,QRLabelb不显示,自己改改,这样就差不多了,如果数据比较多,注意分页
那么,要打印应该用那个函数或是控件啊(哈哈哈---小弟实在是个菜鸟,没做过打印方面的程序。那位仁兄能否介绍一下打印的设置过程以及最终打印函数,请赐教了!小弟万分感谢!!!
嘎嘎,看看有关TQuickReport组件页的相关组件和一些打印的小例程吧。