我用 query 查询得一组数据 ,显示在dbgrid 中.如图
change created_date staff_id name
123 1983-04-22 2004 王
..... .......... ......
其中查询的时候是用 以created_date 为条件,用两个DateTimePicker 输入查询时间段的
change 有正有负 但是为整数,打印时正的加到一起.负的加到一起,staff_id 可能不同可能相同
现在需要打印出来.打印格式如下
staff_id name DateTimePicker1 DateTimePicker2 change(正) change(负) 合计
....... .. ............. .............. ........ ....... ...
也就是把dbgrid表中的数据汇总.如果staff_id相同 那很好办对吧.就是打印一行 可是不同呢
请大哥们指导.是用什么控件好?我用qreport 比较困难 因为由于staff_id 的不确定性.就需要在report中动态创建了表格了.复杂.直接用tprint 类吗 ? 我不会.各位大哥们指导
最好写清楚语句.呵呵 .谢先
change created_date staff_id name
123 1983-04-22 2004 王
..... .......... ......
其中查询的时候是用 以created_date 为条件,用两个DateTimePicker 输入查询时间段的
change 有正有负 但是为整数,打印时正的加到一起.负的加到一起,staff_id 可能不同可能相同
现在需要打印出来.打印格式如下
staff_id name DateTimePicker1 DateTimePicker2 change(正) change(负) 合计
....... .. ............. .............. ........ ....... ...
也就是把dbgrid表中的数据汇总.如果staff_id相同 那很好办对吧.就是打印一行 可是不同呢
请大哥们指导.是用什么控件好?我用qreport 比较困难 因为由于staff_id 的不确定性.就需要在report中动态创建了表格了.复杂.直接用tprint 类吗 ? 我不会.各位大哥们指导
最好写清楚语句.呵呵 .谢先
解决方案 »
- 如何在FR中动态显示图片?
- postmessage发送的消息为何没被处理
- DELPHI如何把其他类型文件当做EXE来执行?
- 如何过滤一个字符串中的特殊字符
- 产生随机数磁到的问题:我用调试程序时可以得到随机数,不调试时得到的是同一个随机数。。。。
- [问]SetVal(const applyid: TXSDecimal);有关XML Service调用
- 数据库的校验问题
- 如何生成用字符串指定类型的对象?
- 关于combobox的style属性的动态设置?
- 如何用sql语言实现?
- 200分求可下载的SQL server2000企业英文版本地址
- 100分送。olecontainer如果borderstyle设成none,颜色变为灰色,能变成白色吗?
123 1983-04-22 2004 王
..... .......... ......SQL如下:sql := 'SELECT a.staff_id,a.name,' +
'(SELECT ' + '''' + DateTimeToStr(DateTimePicker1.DateTime) + '''' + ') '+
'AS DateTimePicker1,' +
'(SELECT ' + '''' + DateTimeToStr(DateTimePicker1.DateTime) + '''' + ') '+
'AS DateTimePicker2,' +
'(SELECT SUM(change) FROM table ' +
'WHERE staff_id=a.staff_id AND name=a.name AND change>0 AND ' +
'created_date BETWEEN ' + '''' + DateTimeToStr(DateTimePicker1.DateTime) + ''''+
' AND ' + '''' + DateTimeToStr(DateTimePicker1.DateTime) + '''') AS change(正),' +
'(SELECT SUM(change) FROM table ' +
'WHERE staff_id=a.staff_id AND name=a.name AND change<0 AND ' +
'created_date BETWEEN ' + '''' + DateTimeToStr(DateTimePicker1.DateTime) + ''''+
' AND ' + '''' + DateTimeToStr(DateTimePicker1.DateTime) + '''') AS change(负),' +
'SELECT (change(正)+change(负) FROM table AS ''合计'' '+
'FROM table a'
TAdoQuery1.SQL.Add(sql);
'(SELECT ' + '''' + DateTimeToStr(DateTimePicker1.DateTime) + '''' + ') '+
'AS DateTimePicker1,' +
'(SELECT ' + '''' + DateTimeToStr(DateTimePicker1.DateTime) + '''' + ') '+
'AS DateTimePicker2,' +
'(SELECT SUM(change) FROM table ' +
'WHERE staff_id=a.staff_id AND name=a.name AND change>0 AND ' +
'created_date BETWEEN ' + '''' + DateTimeToStr(DateTimePicker1.DateTime) + ''''+
' AND ' + '''' + DateTimeToStr(DateTimePicker1.DateTime) + '''') AS change(正),' +
'(SELECT SUM(change) FROM table ' +
'WHERE staff_id=a.staff_id AND name=a.name AND change<0 AND ' +
'created_date BETWEEN ' + '''' + DateTimeToStr(DateTimePicker1.DateTime) + ''''+
' AND ' + '''' + DateTimeToStr(DateTimePicker1.DateTime) + '''') AS change(负),' +
'SELECT (change(正)+change(负)) AS ''合计'' FROM table '+ //这里改一下
'FROM table a'
'SELECT (change(正)+change(负)) AS ''合计'' '+ //
在 dbgrid 中显示为如下:
change created_date staff_id name
123 1983-04-22 2004 王
-56 1983-05-10 2051 方
..... .......... ...... ....
现在我需要打印出来 打印出来的格式如下:
staff_id name DateTimePicker1 DateTimePicker2 change(正) change(负) 合计
....... .. ............. .............. ........ ....... ...
请问如何打印:::::::
你再放个DBGrid,按上面的SQL查询
在用报表控件把DBGrid打印出来不就可以了(比如:FastReport的frPrintGrid)