当前位置:主页>销售管理软件> 列表

大家新年快乐!我是新手,有个有关报表的问题需要大家帮忙.把 找会员管理系统软件

记账软件版1楼: 我需要建立这样一种的报表,请问用delphi怎么做呀.报表里的数据是从工人问题表(工号,问题编号),工人目标表(工号,目标编号),工人措施(工号,措施编号)里查询出来的
++++计划
姓名.... 工号...
---------------------
一.问题1
目标
1.
措施
1.
二.问题2
目标
1.
2....
.
.

措施
1.
2....
....
...
...
...
签名:
日期:
---------------------
备注:数据库里有工人问题表(工号,问题编号),工人目标表(工号,目标编号),工人措施(工号,措施编号).另外还有问题表(问题编号,问题内容),目标表(目标编号,目标内容),措施表(措施编号,措施内容)等(其中目标编号和措施编号都以问题编号为前缀)请详细说明

2楼: 用fastreport 或 reportmachine 应该可以做得出来 如用友酒店管理软件

3楼: 用 Printer.canvas
代码量大了些,但是很不错的.

4楼: 能不能具体点呀

5楼: 在USER中加入Printers


with Printer do
begin
BeginDoc;
Canvas.TextRect(Rect(200,200,PageWidth-200,PageHeight-200),//打印大小


200, 200, 我的文字);//开始位置,
EndDoc;
你想要打印的东西就加在BEGINDOC 和ENDDOC中间.
PRINTER有一个COPIES,打印份数.
通过CANVAS,可以有你想要的任何效果.

具体看printer单元.

6楼: 我没有用过Printer.canvas
希望你能给个详细的例子

记账软件版7楼: 自己先试吧,对不起,偶要去老婆哪啊,否则上不了床.要的话明天给你完整的代码,好不好??????

8楼: 好的.麻烦你了

9楼: var
empname,empid:string;
x,y,z:integer;//循环计数变量
 linex,liney:integer;打印位置变量;
begin 
with qryemp do //qryemp:选择工人查询
begin
close;
sql.clear;
sql.text := ''select 姓名,工号 from 工人表 '';
open ;
if recordcount >0 then
begin
for x := recordcount -1 downto 0 do
begin
empname := fields[0].asstring;;
    empid := fields[1].asstring;
   linex := 0;//初始化位置;
liney := 0;
begindoc
printer.canvas.textout(linex,liney,''姓名:''+empname+'' ''+ ''工号:''+empid);
liney := liney+1;
printer.canvas.textout(linex,liney,''--------------'');
with qryques do //qryques问题查询
begin
       close;
sql.clear;
sql.text :=''select 问题编号 from 工人问题表 where 工号=''+empid;
open;
if recordcount >0 then
begin
printer.canvas.textout(linex,liney,''问题1'');
//下面的和上面的照样做就可以了

end;

end;

end;


end;
end;
enddoc;
end;


这个是顺序式的,你可以把每个查询做成一个过程.依次调用过程就可以了.

10楼: dancekids你有用这个做的例子么,
我没用过这个
看者有些明白
但是还是不太会用
谢谢你了!对了有QQ没

11楼: 倒.
没有例子,临时给你做的啊.
你要完整的话你先说详细一些我才能给你做啊

12楼: 详细说明 如会员管理系统软件

13楼: 谢谢你!!dancekids!

记账软件版14楼: 结贴啦,朋友

15楼: 其实还没


哪个bug我没高顶

16楼: 我把数据库里改了
不过还是不行

17楼: 我把分加错了!!