求助/报表宽度大于纸的宽度
vb吧
全部回复
仅看楼主
level 1
血魂亡 楼主
毕业设计做了一个信息管理系统,打印报表时候显示报表宽度大于纸的宽度。请问怎么解决
2006年05月25日 11点05分 1
level 13
很简单, 我找一下代码,太久没用了......
2006年05月25日 12点05分 2
level 13
Printer.Orientation = vbPRORLandscape 加上这行就可以把打印的方向改变把纸高当成纸宽横向打印,我用过的,没问题.下面另有一些资料可参考.Printer 对象常数打印机颜色模式常数 值 描述 vbPRCMMonochrome 1 单色输出 vbPRCMColor 2 彩色输出 双面打印常数 值 描述 vbPRDPSimplex 1 单面打印 vbPRDPHorizontal 2 双面水平打印 vbPRDPVertical 3 双面垂直打印打印方向常数 值 描述 vbPRORPortrait 1 文档打印以纸的窄边作顶部 vbPRORLandscape 2 文档打印以纸的宽边作顶部 打印质量常数 值 描述 vbPRPQDraft -1 草稿打印质量 vbPRPQLow -2 低级打印质量 vbPRPQMedium -3 中等打印质量 vbPRPQHigh -4 高级打印质量 PaperBin 属性常数 值 描述 vbPRBNUpper 1 从上层纸盒进纸 vbPRBNLower 2 从下层纸盒进纸 vbPRBNMiddle 3 从中间纸盒进纸 vbPRBNManual 4 等待手动插入每页纸 vbPRBNEnvelope 5 从信封进纸器进纸 vbPRBNEnvManual 6 从信封进纸器进纸;但要等待手动插入 vbPRBNAuto 7 (缺省方式)从当前缺省纸盒进纸 vbPRBNTractor 8 从拖拉进纸器供纸 vbPRBNSmallFmt 9 从小型进纸器进纸 vbPRBNLargeFmt 10 从大型纸盒进纸 vbPRBNLargeCapacity 11 从大容量进纸器进纸 vbPRBNCassette 14 从附加的卡式纸盒进纸 PaperSize 属性常数 值 描述 vbPRPSLetter 1 信笺, 8 1/2 x 11 英寸 vbPRPSLetterSmall 2 +A611 小型信笺, 8 1/2 x 11 英寸 vbPRPSTabloid 3 小型报, 11 x 17 英寸 vbPRPSLedger 4 分类帐, 17 x 11 英寸 vbPRPSLegal 5 法律文件, 8 1/2 x 14 英寸 vbPRPSStatement 6 声明书,5 1/2 x 8 1/2 英寸 vbPRPSExecutive 7 行政文件,7 1/2 x 10 1/2 英寸 vbPRPSA3 8 A3, 297 x 420 mm vbPRPSA4 9 A4, 210 x 297 mm vbPRPSA4Small 10 A4小号, 210 x 297 mm vbPRPSA5 11 A5, 148 x 210 mm vbPRPSB4 12 B4, 250 x 354 mm vbPRPSB5 13 B5, 182 x 257 mm vbPRPSFolio 14 对开本, 8 1/2 x 13 英寸 vbPRPSQuarto 15 四开本, 215 x 275 mm vbPRPS1&H14 16 10 x 14 英寸 vbPRPS11x17 17 11 x 17 英寸 vbPRPSNote 18 便条,8 1/2 x 11 英寸 vbPRPSEnv9 19 #9 信封, 3 7/8 x 8 7/8 英寸 vbPRPSEnv10 20 #10 信封, 4 1/8 x 9 1/2 英寸 vbPRPSEnv11 21 #11 信封, 4 1/2 x 10 3/8 英寸 vbPRPSEnv12 22 #12 信封, 4 1/2 x 11 英寸 vbPRPSEnv14 23 #14 信封, 5 x 11 1/2 英寸 vbPRPSCSheet 24 C 尺寸工作单 vbPRPSDSheet 25 D 尺寸工作单 vbPRPSESheet 26 E 尺寸工作单 vbPRPSEnvDL 27 DL 型信封, 110 x 220 mm vbPRPSEnvC3 29 C3 型信封, 324 x 458 mm vbPRPSEnvC4 30 C4 型信封, 229 x 324 mm vbPRPSEnvC5 28 C5 型信封, 162 x 229 mm vbPRPSEnvC6 31 C6 型信封, 114 x 162 mm vbPRPSEnvC65 32 C65 型信封,114 x 229 mm vbPRPSEnvB4 33 B4 型信封, 250 x 353 mm vbPRPSEnvB5 34 B5 型信封,176 x 250 mm vbPRPSEnvB6 35 B6 型信封, 176 x 125 mm vbPRPSEnvItaly 36 信封, 110 x 230 mm vbPRPSEnvMonarch 37 信封大王, 3 7/8 x 7 1/2 英寸 vbPRPSEnvPersonal 38 信封, 3 5/8 x 6 1/2 英寸 vbPRPSFanfoldUS 39 U.S. 标准复写簿, 14 7/8 x 11 英寸 vbPRPSFanfoldStdGerman 40 德国标准复写簿, 8 1/2 x 12 英寸 vbPRPSFanfoldLglGerman 41 德国法律复写簿, 8 1/2 x 13 英寸 vbPRPSUser 256 用户定义
2006年05月25日 12点05分 3
level 1
血魂亡 楼主
我不太会弄请问加到那里?请详细说明谢谢
2006年05月25日 12点05分 4
level 13
'这是打印数据库里一个表的代码Private Sub Command1_Click() If Data1.Recordset.RecordCount > 0 Then Data1.Recordset.MoveFirst Printer.Orientation = vbPRORLandscape For i = 0 To Data1.Recordset.RecordCount - 1 aa = Data1.Recordset.Fields(0) & Space(1) & Data1.Recordset.Fields(1) & Space(1) & Data1.Recordset.Fields(2) Printer.Print aa If Not Data1.Recordset.EOF Then Data1.Recordset.MoveNext If Data1.Recordset.EOF Then Exit For End If End If Next i Printer.EndDoc End IfEnd Sub
2006年05月25日 12点05分 5
level 13
'这是打印简单记事本.txt的代码 (横向打印)Dim fname As String, aa As StringPrivate Sub Command1_Click() fname = "c:\test.txt" Open fname For Input As #1 Printer.Orientation = vbPRORLandscape While Not EOF(1) Line Input #1, aa$ Printer.Print aa Wend Close #1 Printer.EndDocEnd Sub
2006年05月25日 12点05分 6
level 13
你就看它在什么地方开始打印加上这行就好啦.Printer.Orientation = vbPRORLandscape
2006年05月25日 13点05分 8
level 1
血魂亡 楼主
在有打印报表的窗体属性里直接加?
2006年05月25日 13点05分 9
level 13
不是在窗体属性里加是在代码里加上那行你看它打印的那个 private sub 里面加, 你看一下有Printer.print的地方最上面加就是了.
2006年05月25日 13点05分 10
level 1
血魂亡 楼主
Private Sub Command1_Click() ClassCode = Trim(gradeCombox.Text) & "." & Trim(classCombox.Text) Call Update_ct Unload Me classRep.ShowEnd SubPrivate Sub Command1_Click() trname = Trim(teacherCombox.Text) Call Update_tt Unload Me TrRep.ShowEnd Sub是不是在这样的两段代码里面加?
2006年05月25日 13点05分 11
level 13
对啦,就是Private Sub里面你找一下有Printer.print的那个sub, 在最上面加就是了.
2006年05月25日 13点05分 12
level 1
血魂亡 楼主
没有带Printer.Print的sub
2006年05月25日 13点05分 13
level 1
血魂亡 楼主
'临时课表Dim ctCon As ADODB.ConnectionDim ctrs As ADODB.Recordset'classArray表Dim cacon As ADODB.ConnectionDim cars As ADODB.RecordsetDim sqlStr As StringDim ClassCode As StringDim wStr(5) As StringPrivate Sub clearStr() For i = 1 To 5 wStr(i) = " " Next iEnd SubPrivate Sub Update_ct() '删除所有以前的记录 ctCon.Execute ("delete * from tempCT") '更新表 sqlStr = "select * from classArray where cclasscode='" & ClassCode & "'" & " order by iTimeN" cacon.Execute sqlStr cars.Open sqlStr, cacon, adOpenStatic, adLockOptimistic 'cars.MoveFirst Dim i As Integer i = 1 clearStr While (Not cars.EOF) While cars!iTimeN <> i '添加一条课程记录 strSql = "insert into tempCT values(" & i & " ," + "'" + wStr(1) + "' ," + "'" + wStr(2) + "' ," + "'" + wStr(3) + "' ," + "'" + wStr(4) + "' ," + "'" + wStr(5) + "' )" ctCon.Execute strSql clearStr i = i + 1 Wend wStr(cars!iTimeW) = cars!csjname cars.MoveNext Wend '添加一条课程记录 strSql = "insert into tempCT values(" & i & " ," + "'" + wStr(1) + "' ," + "'" + wStr(2) + "' ," + "'" + wStr(3) + "' ," + "'" + wStr(4) + "' ," + "'" + wStr(5) + "' )" ctCon.Execute strSql clearStr While i < 10 '添加一条课程记录 strSql = "insert into tempCT values(" & i & " ," + "'" + wStr(1) + "' ," + "'" + wStr(2) + "' ," + "'" + wStr(3) + "' ," + "'" + wStr(4) + "' ," + "'" + wStr(5) + "' )" ctCon.Execute strSql i = i + 1 WendEnd SubPrivate Sub Command1_Click() ClassCode = Trim(gradeCombox.Text) & "." & Trim(classCombox.Text) Call Update_ct Unload Me classRep.ShowEnd SubPrivate Sub Form_Load() For i = 1 To 12 gradeCombox.AddItem (i) Next i For i = 1 To 20 classCombox.AddItem (i) Next i Set cacon = New ADODB.Connection Set cars = New ADODB.Recordset cacon.Open "provider=Microsoft.Jet.OLEDB.4.0; data source= " & App.Path & "\dataUse.mdb" Set ctCon = New ADODB.Connection Set ctrs = New ADODB.Recordset ctCon.Open "provider=Microsoft.Jet.OLEDB.4.0; data source= " & App.Path & "\dataUse.mdb"End SubPrivate Sub Form_Unload(Cancel As Integer) cars.Close cacon.Close Set cars = Nothing Set cacon = Nothing ctCon.Close Set ctrs = Nothing Set ctCon = NothingEnd Sub'临时教师代课表Dim ttCon As ADODB.ConnectionDim ttrs As ADODB.Recordset'trClass表Dim trcon As ADODB.ConnectionDim trrs As ADODB.RecordsetDim sqlStr As StringDim trname As StringDim wStr(5) As StringDim clStr(5) As StringPrivate Sub clearStr() For i = 1 To 5 wStr(i) = " " clStr(i) = " " Next iEnd SubPrivate Sub Update_tt() ttCon.Execute "delete * from tempTT" strSql = "select trclass.cclasscode,trclass.csubject,classarray.itimew,classarray.itimen" + _" from teacher,trclass,classarray " + _"where teacher.ctrname=trclass.cteacher and trclass.cclasscode=classarray.cclasscode" + _" and trclass.csubject=classarray.csjname and teacher.ctrname=" + "'" + trname + "'" _+ " order by iTimeN" trcon.Execute strSql trrs.Open strSql, trcon, adOpenStatic, adLockOptimistic trrs.MoveFirst Dim i As Integer i = 1 clearStr While Not trrs.EOF While trrs!iTimeN <> i strSql = "insert into tempTT values(" & i & " ," + "'" + wStr(1) + "' ," + "'" + wStr(2) + "' ," + "'" + wStr(3) + "' ," + "'" + wStr(4) + "' ," + "'" + wStr(5) + _ "' ,'" + clStr(1) + "' ," + "'" + clStr(2) + "' ," + "'" + clStr(3) + "' ," + "'" + clStr(4) + "' ," + "'" + clStr(5) + "' )" ttCon.Execute strSql clearStr i = i + 1 Wend wStr(trrs!iTimeW) = trrs!csubject clStr(trrs!iTimeW) = trrs!cClassCode trrs.MoveNext Wend strSql = "insert into tempTT values(" & i & " ," + "'" + wStr(1) + "' ," + "'" + wStr(2) + "' ," + "'" + wStr(3) + "' ," + "'" + wStr(4) + "' ," + "'" + wStr(5) + _ "' ,'" + clStr(1) + "' ," + "'" + clStr(2) + "' ," + "'" + clStr(3) + "' ," + "'" + clStr(4) + "' ," + "'" + clStr(5) + "' )" ttCon.Execute strSql clearStr While i < 10 i = i + 1 strSql = "insert into tempTT values(" & i & " ," + "'" + wStr(1) + "' ," + "'" + wStr(2) + "' ," + "'" + wStr(3) + "' ," + "'" + wStr(4) + "' ," + "'" + wStr(5) + _ "' ,'" + clStr(1) + "' ," + "'" + clStr(2) + "' ," + "'" + clStr(3) + "' ," + "'" + clStr(4) + "' ," + "'" + clStr(5) + "' )" ttCon.Execute strSql WendEnd SubPrivate Sub Command1_Click() trname = Trim(teacherCombox.Text) Call Update_tt Unload Me TrRep.ShowEnd SubPrivate Sub Form_Load() Set ttCon = New ADODB.Connection Set ttrs = New ADODB.Recordset ttCon.Open "provider=Microsoft.Jet.OLEDB.4.0; data source= " & App.Path & "\dataUse.mdb" Set trcon = New ADODB.Connection Set trrs = New ADODB.Recordset trcon.Open "provider=Microsoft.Jet.OLEDB.4.0; data source= " & App.Path & "\dataUse.mdb"End SubPrivate Sub Form_Unload(Cancel As Integer) 'ttrs.Close ttCon.Close Set ttrs = Nothing Set ttCon = Nothing trcon.Close Set trrs = Nothing Set trcon = NothingEnd Sub以上是两个打印报表只前的的窗体属性,麻烦看下那里的问题
2006年05月25日 13点05分 14
level 13
你问的问题是打印的问题,在上面代码根本与打印无关...........
2006年05月25日 13点05分 15
level 1
血魂亡 楼主
。。。。。。。。。。唉~帮忙帮到低麻烦你吧那个原程序弄下来就好解决问题了我不会VB的说不明白。
2006年05月25日 13点05分 16
level 1
血魂亡 楼主
谁能帮帮忙啊谢谢啦
2006年05月26日 01点05分 17
1