一个很复杂的数据库打印问题! (100分)

  • 主题发起人 主题发起人 redwood
  • 开始时间 开始时间
R

redwood

Unregistered / Unconfirmed
GUEST, unregistred user!
现在有DBGrid1两个!一个连接QUERY 一个连的table,现在想做一个打印。
要求是:1.直接在任何一个DBGrid1里选择一行或两行,然后按button就可直接打印选择的行。
2.输入一个数字N,然后打印任何一个DBGrid1里的最后N行
还有一个问题是,怎么做一个可调整内部控件位置的报表?并且可记录调整后的位置。最好是有源程序或者详细的资料!
谢谢!redwood1999@163.net
 
自己写代码,不复杂的,20行的事!
 
1、将DBGRID1中的选择行放到一个临时表中,再打印这个临时表。
2、还没想好。
 
怎么做呀?对了!不是要打印DBGrid表,而是导出到报表(QReport)里打印!这样应该好解决了吧!
我总是问一些菜鸟问题,这里的一位DFW已经开始讨厌我了!
看来是混不久了……请各位多多照顾!
目前全文搜索中
 
同意自己个写代码。
或者你先准备好一个临时报表,对应一个临时数据库。
当你选择几行后,将这几行添加到这个临时数据库,然后启动报表进行打印,一点儿都
不复杂。
 
完成了,
一、又建了一个表,然后用QUERY全部解决!把报表指向的QUERY!
二、取全表行数!然后用行数-N。得到结果M,由于表内有与行绝对相同的序号一项,所以用QUERY查比结果大的序号,嘿嘿,就完成了。

现在就剩打印的问题了!怎样才能控制报表里的控件位置呀?
 
hoho 恭喜你。。:)
报表的控件位置可就要自己个写代码了。用top left width height 来控制控件的位置。
比如说,你有一个QRLabel.这又是个动态的值,但又要它打印时放到报表中央就用:
Qrlabel1.Left:=(PageWidth-QrLabel1.Width ) div 2;
其它的一些控件如QrDBText 就类似了。。
 
主要是怎么解决位置调整后的记录问题。INI文件应该怎么调用和保存啊?
请以QrDBText为例讲解.
谢谢了,我没有这方面的书……
 
ini file使用很简单,在帮助里面有相关的例子。
这下面两个是帮助里面的例子,自己个看看吧,这个问题也该结束了,兄弟!
procedure TForm1.Button1Click(Sender: TObject);
var
MyIniFile: TIniFile;
begin
MyIniFile := TIniFile.Create('/usr/myapp.ini');
Memo1.Clear;
MyIniFile.ReadSectionValues('Transfer', Memo1.Lines);
if Memo1.Lines.Values['Title1'] <> 'Picture Painter' then
MyIniFile.WriteString('Transfer', 'Title1', 'Picture Painter');
MyIniFile.Free;
end;

procedure TForm1.Button2Click(Sender: TObject);
var
MyIniFile: TIniFile;
begin

MyIniFile := TIniFile.Create('/usr/myapp.ini');
{ if the entry wasn抰 there before, delete it now }
if Memo1.Lines.Values['Title1'] = '' then
MyIniFile.DeleteKey('Transfer', 'Title1')
{ otherwise, restore the old value }
else
MyIniFile.WriteString('Transfer', 'Title1', Memo1.Lines.Values['Title1']);
MyIniFile.Free;
end;
 
接受答案了.
 
后退
顶部