關于Printer打印問題﹐在線等待﹗

huangpin 2003-06-10 02:19:56
想請教各位﹐用Printer打印表格可以預覽﹖哪位有直接用Printer打印的公共模塊﹐可直接給標頭RS及明細部分RS,及可自動生成報表的﹐可否提供原碼參考﹐分數不限﹗
...全文
62 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
huangpin 2003-06-12
  • 打赏
  • 举报
回复
沒人回答嗎﹖
planetike 2003-06-12
  • 打赏
  • 举报
回复
'可以打印到图片框作为预览,obj为printer时打到打印机上。
Sub PrintGrid(Sysname As String, Topic As String, MyGrid As Control, Name As String, Obj As Object) '打印网格
Dim R, Step, Y, C As Integer

'设置每段长度
Step = Obj.ScaleWidth \ (MyGrid.Cols - 1 + 2)

'打印页眉
Y = Obj.CurrentY
Obj.Line (Obj.ScaleLeft, Y + 10)-(Obj.ScaleWidth, Y + 10)

'打印标题
Y = Y + 200
Obj.CurrentX = Obj.ScaleWidth \ 2 - LenB(Topic) * 150 \ 2
Obj.CurrentY = Obj.CurrentY + 200
Obj.FontSize = 14
Obj.FontName = "楷体_GB2312"
Obj.Print Topic

'打印消费场所名称
Y = Y + 500
Obj.CurrentX = Obj.ScaleLeft + 500
Obj.CurrentY = Y
Obj.FontSize = 10
Obj.FontName = "宋体"
Obj.Print Trim(Sysname)

'打印日期
'Y = Y + 500
Obj.CurrentX = Obj.ScaleLeft + 3500
Obj.CurrentY = Y
Obj.FontSize = 10
Obj.FontName = "宋体"
Obj.Print "日期: " & Date

'打印姓名
Obj.CurrentX = Obj.ScaleWidth - 3500
Obj.CurrentY = Y
Obj.FontSize = 10
Obj.FontName = "宋体"
Obj.Print "经手人: " & Name

'打印Line
Y = Y + 200
Obj.Line (Obj.ScaleLeft, Y)-(Obj.ScaleWidth, Y)

'打印GRIDHEADING
Y = Y + 200
R = 0
For C = 0 To MyGrid.Cols - 1
MyGrid.Row = R
MyGrid.Col = C
Obj.CurrentX = (Step * C) + (Step \ 2 - LenB(MyGrid.Text) * 40 \ 2)
Obj.CurrentY = Y
Obj.FontSize = 10
Obj.FontName = "宋体"
Obj.Print MyGrid.Text
Next

'打印GRID
For R = 1 To MyGrid.Rows - 1
If Y <= Obj.ScaleHeight - 500 Then
Y = Y + 200
Else
Obj.Line (Obj.ScaleLeft, Y)-(Obj.ScaleWidth, Y)
Y = Obj.CurrentY
Obj.Print "'"
Obj.Line (Obj.ScaleLeft, Y + 10)-(Obj.ScaleWidth, Y + 10)
Y = Y + 200
End If
For C = 0 To MyGrid.Cols - 1
MyGrid.Row = R
MyGrid.Col = C
If MyGrid.ColAlignment(C) = 7 Then
Obj.CurrentX = Step * (C + 1) - LenB(MyGrid.Text) * 40
Else
Obj.CurrentX = (Step * C) + (Step \ 2 - LenB(MyGrid.Text) * 40 \ 2)
End If
Obj.CurrentY = Y
Obj.FontSize = 10
Obj.FontName = "宋体"
Obj.Print MyGrid.Text
Next
Next

'打印 Line
Y = Y + 400
Obj.Line (Obj.ScaleLeft, Y)-(Obj.ScaleWidth, Y)

'打印 审核人
Y = Y + 200
Obj.CurrentX = Obj.ScaleWidth - 3000
Obj.CurrentY = Y
Obj.FontSize = 10
Obj.FontName = "宋体"
Obj.Print "审核人:"
If TypeOf Obj Is Printer Then
Obj.EndDoc
End If
End Sub
'检测打印输出对象是不是有效
Public Function ValidObj(objOP As Object) As Boolean
Dim Msg As String
If TypeOf objOP Is Form Or TypeOf objOP Is PictureBox Or TypeOf objOP Is Printer Then
ValidObj = True
Else
ValidObj = False
End If
If Not ValidObj Then
Msg = "无效的对象: " + vbCrLf
Msg = Msg + vbCrLf + vbCrLf
Msg = Msg + "有效的对象参数只能为打印机,图片框或是表单" + vbCrLf
MsgBox Msg, vbCritical, "对象无效"
End If
End Function
huangpin 2003-06-10
  • 打赏
  • 举报
回复
我的郵箱是﹕nc_hp@163.com,謝謝
planetike 2003-06-10
  • 打赏
  • 举报
回复
不知道直接打印msflexgrid表格的源码是不合你心意,如果想看看,请来信:planetike@tom.com
分数不限 0<=分<=OO
内容概要:本文研究了一种针对四机并联孤岛微电网的协同控制策略,通过集成DoS攻击模拟、分布式二次控制、下垂控制与事件触发式负荷控制,旨在实现微电网在遭受网络安全威胁等异常工况下的电压与频率恢复以及有功/无功功率的精确共享分配。基于Simulink平台构建了完整的微电网仿真系统,包含多台分布式发电单元(DG),采用下垂控制实现无需通信的功率自主分配,并引入分布式二次控制以补偿由下垂特性引起的电压和频率偏差,从而提升电能质量。为进一步降低通信负担并提高系统效率,设计了事件触发机制,仅在必要时刻进行信息交互。研究重点在于多时间尺度下的协同控制架构设计,全面验证了该策略在正常运行与遭受DoS攻击等扰动情形下的稳定性、鲁棒性与恢复能力。; 适合人群:具备电力系统、自动控制理论基础,熟悉Simulink/Matlab仿真工具,从事微电网、分布式能源、智能电网及相关领域研究的研究生、科研人员及工程技术人员。; 使用场景及目标:①研究孤岛微电网中电压频率恢复与功率均分的多时间尺度协同控制机制;②分析DoS网络攻击对微电网控制性能的影响及其应对策略;③掌握事件触发控制在减少通信开销中的实际应用方法;④复现并拓展具备网络安全防护能力的高级微电网控制算法仿真模型。; 阅读建议:此资源以Simulink仿真实现为核心,建议读者结合现代控制理论与网络安全知识,逐步搭建系统模型,重点关注控制器参数整定、事件触发阈值设计及DoS攻击注入方式,通过对比实验深入理解控制策略的有效性与鲁棒性。

807

社区成员

发帖
与我相关
我的任务
社区描述
VB 多媒体
社区管理员
  • 多媒体
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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