如何实现只对可勾选的记录进行打印,请帮助 (50分)

  • 主题发起人 主题发起人 chengcheng178
  • 开始时间 开始时间
C

chengcheng178

Unregistered / Unconfirmed
GUEST, unregistred user!
大家帮忙给分析一下,这是其中的代码:
procedure TForm2.Button4Click(Sender: TObject);
var
i:Integer;
AnyRec:Boolean;
begin
AnyRec:=False;
for i:=0 to CheckListBox1.Count-1do
if CheckListBox1.Checked then
AnyRec:=True;
if not AnyRec then
begin
MessageBox(Handle,'没有打印的记录!','信息',MB_OK or MB_ICONSTOP);
Exit;
end;
form4.QuickRep1.preview;
end;

form4打印预览时出现的记录和可勾选的结果无关,form4中的QuickRep1中的DataSet应如何设就可以和form2中的勾选的记录关联,如有写语句应如何写,请帮助,如能实现,马上加分,谢谢!
 
最好是将选中的数据 生成新的数据集合 如果用 QUERY 大约是这样
select * from table where checked = true
或者是
select * from table where xtbh in (1,2,3,4,5,6)
 
根据选中的记录,生成一个新的记录集
 
楼上的朋友请说的具体一些,把相应的程序语句写一下,谢谢!
 
procedure TForm2.Button4Click(Sender: TObject);
var ss:String;
begin
for i:=0 to CheckListBox1.Count-1do
if CheckListBox1.Checked then

begin
ss:=ss+CheckListBox1.Items[CheckListBox1.itemIndex]+',';//这里有个逻辑错误.你可以自己改一下.
end;
Query1.SQL.Add('Select '+ss From Table into TempDB );
Form4.QuickRep1.DataSet:=TempDB;
form4.QuickRep1.preview;
end;
 
为表添加一个字段用来判断是否选中,选种时将字段值设为1,否则为0,打印时再判断就OK了。
 
建一个临时或固定表,双击Grid中要打印的记录,将其加入到临时或固定表中,再打印以其为源的报表即可。
 
楼上的朋友请把具体的程序语句写一下,如何创建临时表,我现在是想对表中的记录进行选择即勾选,只有选中的记录可以打印出来,这样的程序语句应如何写,如能实现马上加分,在线等
 
var
s_SQL:string;
begin
for i:= 10 to Checklistbox1.Count _1do
begin
if checklistbox1.Checked then
begin
s_SQL:='insert into table1 (select * from yourtable where Fieldname ='+'''+ checklistbox1.itemS[checklistbox1.itemindex]+'''+')';
query1.sql.Clear;
Query1.sql. add(s_SQL);
Query1.Open;
end;
end;
Form4.QuickRep1.DataSet:=table1;
form4.QuickRep1.preview;
end;
 
TO aweih:
按你的语句编译执行后出现错误,勾选后提示连接表错误
请问你的table1和Fieldname各指什么,请说明好吗
s_SQL:='insert into table1 (select * from yourtable where Fieldname ='+'''+ checklistbox1.itemS[checklistbox1.itemindex]+'''+')';
 
tabel1是一个临时表,作为打印数据来源
fieldname是你checklistbox1中显示的字段
 
另外建个DATASET保存选择的记录吧
 
to lyctree:
请问如何建dataset保存选择的记录?具体的程序语句如何写,谢谢!
 
为什么不考虑
tsj的方法
 
TO maozhuxi
请说具体一些,好吗?
 
为表添加一个字段用来判断是否选中,选种时将字段值设为1,否则为0,打印时再判断就OK了。
 
引用tsj的话
 
TO maozhuxi
把程序语句写一下好吗,谢谢
 
不过考虑一下,他的方法比较麻烦
还是不用为好
 
TO maozhuxi
把程序语句写一下好吗,谢谢
 
后退
顶部