两天没好好睡了!求高人解决datareport的问题

sergy 2005-07-19 04:01:04
我打印的医院门诊发票中有一部分如下图所示,表里的数据都存在数据库,要求根据这些数据
统计这一天每个医生,以及医院的营业总额。
每张发票只对应某个医生一次所开药的情况(如:费用名称,费用金额,如下表)
并且,下表费用名称中所填向并不固定(如:手术费,治疗费,X光费.....)
我用的是datareport,不知用分组怎么实现
------------------------------------------
费用名称 | 费用金额 |费用名称 | 费用金额 |
------------------------------------------
| | | |
------------------------------------------
| | | |
------------------------------------------
-------------------------------------------------------------------------------------
统计表大致是这样的:
医生名 |手术费 |治疗费|.................|合计|
----------------------------------------------
.
.
.
合计 | | |.................| |
-----------------------------------------------
目前只写了一点程序,然后就不知道该怎么办了!请高手指点,分不够再加!
Private Sub DataReport_Initialize()
Dim cn As ADODB.Connection
Dim rs As ADODB.Recordset
Dim Sql, strSql As String
'连接数据库(Access)
Set cn = New ADODB.Connection
With cn
.Provider = "MSDataShape.1"
.Open "Data Provider=Microsoft.Jet.OLEDB.4.0 ;" & _
"Data Source=" & App.Path & "\门诊.mdb;" & _
"Persist Security Info=False"
End With
RptGroup.Sections("Section6").Controls("text1").DataField = "序号a"
RptGroup.Sections("Section1").Controls("text2").DataField = "费用金额b1"
RptGroup.Sections("Section1").Controls("text2").DataMember = "mi"
Sql = "SELECT 费用金额b1,序号a FROM `成员` where Format(日期, 'yy/m/d')=Format(now, 'yy/m/d') "
strSql = "SHAPE {" & Sql & " } " & _
"AS mi COMPUTE mi,sum(mi.费用金额b1) as Total by 序号a "
Set rs = New ADODB.Recordset
rs.Open strSql, cn, adOpenStatic, adLockReadOnly
Set Me.DataSource = rs
End Sub

...全文
211 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
iamxiang 2005-09-02
  • 打赏
  • 举报
回复
这种打印不需要用datareport,自己做一段打印程序就可以了。
huzling 2005-08-08
  • 打赏
  • 举报
回复
我知道了!
huzling 2005-08-05
  • 打赏
  • 举报
回复
Dim cn As ADODB.Connection
Dim rs As ADODB.Recordset
Dim Sql As String
Dim strConn As String

'连接数据库(Access)
Set cn = New ADODB.Connection
strConn = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & App.Path & "\jysf.mdb;Persist Security Info=False"
cn.ConnectionString = strConn
cn.Open

DataReport1.Sections("Section1").Controls("text1").DataField = "student.sclass"
DataReport1.Sections("Section1").Controls("text2").DataField = "student.年"
DataReport1.Sections("Section1").Controls("text3").DataField = " student.月"
'打开记录集
Set rs = New ADODB.Recordset
Sql = "SELECT student.sclass, student.年, student.月, student.日, student.sname, student.sno, amounts.总额, amounts.学费, amounts.学杂费, amounts.住宿费, amounts.大写总额, amounts.学费代码, amounts.住宿费代码, amounts.收费单位代码, amounts.代管费, amounts.代管费总和, amounts.校服费, class.汉字班级 FROM amounts, student, class WHERE amounts.总额 = student.总额 AND student.sclass = class.sclass AND student.sclass = '1'"
'" & Chr(34) & Trim(DataList1.Text) & Chr(34) & "order by student.sclass" 'SQL语句可以用变量
'Debug.Print Sql
rs.Open Sql, cn, adOpenKeyset, adLockPessimistic

'设置text控件属性


Set DataReport1.DataSource = rs
'Set DataReport2.DataSource = Form1.Adodc1
cn.Close

~~~~~~~~~~~~~~~~
帮忙看一下!我是哪边设错了啊?提示datasource 不合法!!
jxgzay 2005-07-20
  • 打赏
  • 举报
回复

用VB建立EXCEL对象,通过代码调用EXCEL打印。
sergy 2005-07-20
  • 打赏
  • 举报
回复
一直用datareport没用过水晶报表,不过可以试一试。
sergy 2005-07-20
  • 打赏
  • 举报
回复
真的没人会吗?
zhzhq800204 2005-07-20
  • 打赏
  • 举报
回复
水晶报表
BestGuy_sun 2005-07-20
  • 打赏
  • 举报
回复
建议你使用水晶报表,很方便就能解决这个问题
sergy 2005-07-20
  • 打赏
  • 举报
回复
回楼上的,是打印到一起的,请一定帮忙啊!
deity2004 2005-07-20
  • 打赏
  • 举报
回复
只问一个问题,是分别打印成两张报表,还是要求打印在一起,数据肯定都是关联的!
说清楚,有兴趣帮你解决这个问题!

1,216

社区成员

发帖
与我相关
我的任务
社区描述
VB 数据库(包含打印,安装,报表)
社区管理员
  • 数据库(包含打印,安装,报表)社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧