我用quickreport,想在dbgrid里选择几条记录打印,不知怎么实现,请高手指点。
解决方案 »
- 高性能大容量SOCKET并发(一):IOCP完成端口例子介绍
- ado+accese用wise制作的安装程序,安装后提示找不到数据库!
- 求支持GIF的DBIMAGE控件?~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
- 我想用dhtml做过网页编辑器,但不知在dhtml中如何得到当前网页的源代码(像ie右键查看源代码一样)
- 再次请教:如何实现报表的分组统计?---在线等待!急!!!
- 请教高手,关于copy文件的问题
- 请问在程序中如何获得系统时间?
- 这里有个项目,哪个公司可以接,进来看一下
- 扑克牌控件:z_x_b(长弓落日金沙丘)
- 在三层结构中客户端程序运行后提示“服务器运行失败”这是为何?〖不断加分〗
- 求救!Delphi7怎么没有DBDateTimePicker,急!
- 怎么生成如下的报表格式啊?(急,在线!!)
建议:你可以直接把要打印的东西用sql查出来给dbgrid显示,然后直接把记录指针给QR打印,
如果你一定要选择打印,那还有个小动作,那就是点打印的时候重新生成sql语句,把他附给QR!!
var
Form1 : TForm1;
Col_Value , Top_Value , Row_Value : Integer;
GridWidth : Integer;
begin
Form1 := TForm1.Create(Application);
OnLine := True;
Top_Value := 17 ;
Top_Temp := 17;
//---------------------------------------------------------------------
if CheckBox2.Checked then
begin
GridWidth := GetGridWidth;
Top_Value := 17 ;
Row_Value := 17 ;
RowScaValue := Row_Sca;
if Not CheckBox1.Checked then
begin
OnLine := False;
Form1.CreateRowQRShape(Top_Value + 20 + Round(Row_Sca * 17), TextViewGrid.Left,
GridWidth, 1);
end;
For Col_Value := 0 to FColCount - 1 do
begin
Form1.CreateRQLabel(Top_Value + Round(Round(Row_Sca * 17)/2), SetUpHB.Sections[Col_Value].Left,
TextViewGrid.ColWidths[Col_Value], 17, Col_Value,SetUpHB.Sections[Col_Value].Text).Show;
end;
QRColHeight := Top_Value;
Inc(Row_Value);
if Not CheckBox1.Checked then
Form1.CreateColQRShape(Top_Value - 2 ,GridWidth,1,20 + Round(Row_Sca * 17));
Top_Value := Top_Value + ( 1 * 20) + Round(Row_Sca * 17);
Top_Temp := Top_Value;
end;
//---------------------------------------------------------------------
GridWidth := GetGridWidth;
Top_Value := Top_Temp ;
Row_Value := FRowMin ;
RowScaValue := Row_Sca;
While Top_Value <= 718 do
begin
if Not CheckBox1.Checked then
begin
OnLine := False;
Form1.CreateRowQRShape(Top_Value + 20 + Round(Row_Sca * 17), TextViewGrid.Left,
GridWidth, 1);
end;
For Col_Value := 0 to FColCount - 2 do
begin
Form1.CreateRQLabel(Top_Value + Round(Round(Row_Sca * 17)/2), SetUpHB.Sections[Col_Value].Left,
TextViewGrid.ColWidths[Col_Value], 17, Col_Value,TextViewGrid.Cells
[Col_Value,Row_Value]).Show;
end;
QRColHeight := Top_Value;
Inc(Row_Value);
if Not CheckBox1.Checked then
Form1.CreateColQRShape(Top_Value - 2 ,GridWidth,1,20 + Round(Row_Sca * 17));
if Row_Value >= FRowMax then
begin
Form1.QuickRep1.Preview;
Exit;
end;
Top_Value := Top_Value + ( 1 * 20) + Round(Row_Sca * 17);
end;
Form1.QuickRep1.Preview;
end;