VB打印功能全代码

Private  Sub  Image5_Click()  '打印报表  
       Dim  i  As  Integer  
       Dim  pageleft  As  Integer  
       Dim  pageheader  As  Integer  
       Dim  pagefooter  As  Integer  
       Dim  pageright  As  Integer  
       Dim  startx  As  Integer  
       Dim  starty  As  Integer  
       Dim  startline  As  Integer  
       Dim  endline  As  Integer  
       Dim  usewidth  As  Integer  
       Dim  useheight  As  Integer  
       pageheader  =  25  
       pagefooter  =  25  
       pageleft  =  20  
       pageright  =  20  
         
       '定义纸张类型A4  
       Printer.FontSize  =  20  
       Printer.PaperSize  =  9  
       Printer.ScaleMode  =  6  
       Printer.FontBold  =  False  
       Printer.ScaleLeft  =  -20  
       Printer.ScaleTop  =  -25  
       Printer.ScaleWidth  =  210  
       Printer.ScaleHeight  =  297  
       usewidth  =  Printer.ScaleWidth  -  40  
       useheight  =  Printer.ScaleHeight  -  50  
       Printer.CurrentX  =  0  
       Printer.CurrentY  =  0  
       Printer.DrawWidth  =  2  
         
       '打印主标题  
       Printer.FontSize  =  20  
       Printer.CurrentX  =  (usewidth  -  Printer.TextWidth(Me.Text1.Text  &  "经济情况表"))  /  2  
       Printer.CurrentY  =  Printer.ScaleTop  
       Printer.Print  Me.Text1.Text  &  "经济情况表"  
         
       '打印空白行  
       Printer.FontSize  =  8  
       Printer.CurrentX  =  (usewidth  -  Printer.TextWidth(""))  /  2  
       Printer.CurrentY  =  Printer.CurrentY  +  1  
       Printer.Print  ""  
         
       '打印副标题  
       Printer.FontSize  =  15  
       Printer.CurrentX  =  (usewidth  -  Printer.TextWidth(commonth  &  "月份经济情况报表"))  /  2  
       Printer.CurrentY  =  Printer.CurrentY  +  1  
       Printer.Print  commonth  &  "月份经济情况报表"  
         
       '打印空白行  
       Printer.FontSize  =  8  
       Printer.CurrentX  =  (usewidth  -  Printer.TextWidth(""))  /  2  
       Printer.CurrentY  =  Printer.CurrentY  +  1  
       Printer.Print  ""  
         
       '打印表的内容  
       '首先打印第一条横线  
       '打印最上边的第一条横线  
       Printer.CurrentX  =  pageleft  +  Printer.ScaleLeft  
       startline  =  Printer.CurrentY  +  1  
       Printer.Line  -((Printer.ScaleLeft  +  Printer.ScaleWidth  -  pageleft),  Printer.CurrentY)  
         
         
       Printer.FontSize  =  12  
       Printer.CurrentY  =  Printer.CurrentY  +  1  
       starty  =  Printer.CurrentY  
       Printer.CurrentX  =  ((Printer.ScaleWidth  -  40)  /  3  -  Printer.TextWidth(""))  /  2  
       Printer.Print  ""  
         
       Printer.FontSize  =  12  
       Printer.CurrentX  =  usewidth  /  3  +  ((usewidth  /  3  -  Printer.TextWidth("今年经济情况"))  /  2)  
       Printer.CurrentY  =  starty  
       Printer.Print  "今年经济情况(万元)"  
         
       Printer.FontSize  =  12  
       Printer.CurrentX  =  (usewidth  /  3)  *  2  +  ((usewidth  /  3  -  Printer.TextWidth("去年经济情况"))  /  2)  
       Printer.CurrentY  =  starty  
       Printer.Print  "去年经济情况(万元)"  
         
       Printer.CurrentX  =  pageleft  +  Printer.ScaleLeft  
       Printer.CurrentY  =  Printer.CurrentY  +  1  
       Printer.Line  -((Printer.ScaleLeft  +  Printer.ScaleWidth  -  pageleft),  Printer.CurrentY)  
         
       Printer.CurrentY  =  Printer.CurrentY  +  1  
         
       For  i  =  0  To  10  
       '判断是否该页已打满  
       Me.MSFlexGrid1.Row  =  i  
       If  Printer.CurrentY  >=  useheight  Then  
 
       '打印横线  
             Printer.CurrentX  =  Printer.ScaleLeft  +  pageleft  
             Printer.Line  -((Printer.ScaleLeft  +  Printer.ScaleWidth  -  pageleft),  Printer.CurrentY)  
             Printer.CurrentY  =  Printer.CurrentY  +  1  
         
           
               '打印四条竖线  
               endline  =  Printer.CurrentY  
               Printer.Line  (0,  startline)-(0,  endline)  
               Printer.Line  (usewidth  /  3,  startline)-(usewidth  /  3,  endline)  
               Printer.Line  ((usewidth  /  3)  *  2,  startline)-((usewidth  /  3)  *  2,  endline)  
               Printer.Line  (usewidth,  startline)-(usewidth,  endline)  
                 
             '打印页号  
               Printer.CurrentX  =  (Printer.ScaleWidth  -  Printer.TextWidth(Printer.Page))  /  3  -  pageleft  
               Printer.CurrentY  =  useheight  +  3  
               Printer.Print  Printer.Page  
               Printer.NewPage    'NewPage告诉打印机,程序对当前输出页的发送已经结束。Printer对象应开始新的一页。  
               
               Printer.CurrentX  =  pageleft  +  Printer.ScaleLeft  
               Printer.CurrentY  =  pageheader  +  Printer.ScaleTop  
               startline  =  Printer.CurrentY  
               
     Else  
       '打印一行数据  
       Me.MSFlexGrid1.Col  =  0  
       Printer.CurrentX  =  ((Printer.ScaleWidth  -  40)  /  3  -  Printer.TextWidth(Me.MSFlexGrid1.Text))  /  8  
       starty  =  Printer.CurrentY  
       Printer.Print  Me.MSFlexGrid1.Text  
         
       Me.MSFlexGrid1.Col  =  1  
       Printer.CurrentX  =  (Printer.ScaleWidth  -  40)  /  3  +  ((Printer.ScaleWidth  -  40)  /  3  -  Printer.TextWidth(Me.MSFlexGrid1.Text))  /  2  
       Printer.CurrentY  =  starty  
       Printer.Print  Me.MSFlexGrid1.Text  
         
       Me.MSFlexGrid1.Col  =  2  
       Printer.CurrentX  =  ((Printer.ScaleWidth  -  40)  /  3)  *  2  +  ((Printer.ScaleWidth  -  40)  /  3  -  Printer.TextWidth(Me.MSFlexGrid1.Text))  /  2  
       Printer.CurrentY  =  starty  
       Printer.Print  Me.MSFlexGrid1.Text  
         
       Printer.CurrentX  =  pageleft  +  Printer.ScaleLeft  
       Printer.CurrentY  =  Printer.CurrentY  +  1  
       Printer.Line  -((Printer.ScaleLeft  +  Printer.ScaleWidth  -  pageleft),  Printer.CurrentY)  
         
       Printer.CurrentY  =  Printer.CurrentY  +  1  
   End  If  
Next  i  
             '打印最后一条横线  
       Printer.CurrentX  =  Printer.ScaleLeft  +  pageleft  
       Printer.Line  -((Printer.ScaleLeft  +  Printer.ScaleWidth  -  pageleft),  Printer.CurrentY)  
       endline  =  Printer.CurrentY  
       '打印四条竖线  
       Printer.Line  (0,  startline)-(0,  endline)  
       Printer.Line  (usewidth  /  3,  startline)-(usewidth  /  3,  endline)  
       Printer.Line  ((usewidth  /  3)  *  2,  startline)-((usewidth  /  3)  *  2,  endline)  
       Printer.Line  (usewidth,  startline)-(usewidth,  endline)  
       
   
               '打印页号  
             
       Printer.CurrentX  =  (Printer.ScaleWidth  -  Printer.TextWidth(Printer.Page))  /  3  -  pageleft  
       Printer.CurrentY  =  useheight  +  3  
       'Printer.Print  Printer.Page  
       Printer.Print  "        哈尔滨高新技术开发区"  
       Printer.EndDoc    'EndDoc告诉VISUAL  BASIC,程序创建文档结束。VISUAL  BASIC应将它发送到物理打印机上打印。  
 
 
 
 
   If  Err.Number  =  0  Then  
         MsgBox  "you  are  successful!",  ,  ""  
   End  If  
End  Sub
  • 0
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
Option Explicit Global Const mm = 567 Global Const cm = 567 Global Const NM_PP_Ofs = 0 '36 Global Const Gray = &HC0C0C0 Global Scala As Single Global Const ANTEPRIMA = 0 Global Const STAMPANTE = 1 Global Const NONESCLUSIVO = 0 Global Const ESCLUSIVO = 1 Global LocPerc As String Global Const LocName = "_$$_TEMP.TMP" Global Ofs As Single Global Const SistemaCoordinate = 0 Global NM_AnnullaStampa As Boolean Global TempDemoMode As Boolean Sub SistemaBarra(sP As Integer, eP As Integer, aP As Integer) ' PrnPRN.sBar > max bar ' PrnPRN.aBar > actual value ' ' sP = start page ' eP = end page ' aP = actual page Static Stp As Single Stp = PrnPrn.tBar.Width / ((eP - sP) + 1) PrnPrn.pBar.Width = Stp * aP End Sub Function TempFileExists(MyFilename As String) As Boolean Dim TempAttr As Double TempFileExists = True On Error GoTo MyErrorFileExist TempAttr = FileLen(MyFilename) GoTo MyExitFileExist MyErrorFileExist: TempFileExists = False Resume MyExitFileExist MyExitFileExist: On Error GoTo 0 End Function Sub ContaPagine() PrnPrv.MousePointer = vbHourglass Static NumPag As Integer NumPag = 0 Static A As String, B As String PrnPrv.ePag.Clear Open LocPerc + LocName For Append As #27: Close #27 '@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ Open LocPerc + LocName For Input As #27 While Not EOF(27) Line Input #27, A If A = "#startpage" Then NumPag = NumPag + 1 ElseIf A = "#endpage" Then PrnPrv.ePag.AddItem Format(NumPag) End If Wend Close #27 If PrnPrv.ePag.ListCount > 0 Then PrnPrv.ePag.ListIndex = 0 Else PrnPrv.MousePointer = vbDefault MsgBox "No pages to print!", vbInformation, "Preview non available" Unload PrnPrv End If PrnPrv.MousePointer = vbDefault End Sub Sub SistemaStatusBar()
### 回答1: VB 微信群发消息的代码可以通过微信开放平台的 API 来实现。首先,你需要在微信开放平台注册一个开发者账号,并创建一个公众号应用。然后,你可以使用微信提供的官方开发工具包来编写 VB 代码来实现群发消息功能。 在 VB 中,你可以通过 HTTP 请求来调用微信开放平台的接口来实现群发消息。首先,你需要获取一个访问令牌(access token),使用该令牌可以访问微信开放平台的其他接口。 获取访问令牌可以通过发送 HTTP GET 请求到以下 URL:https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=APPID&secret=APPSECRET 其中,APPID 是你的公众号应用的唯一标识符,APPSECRET 是你的应用的密钥。发送请求后,微信开放平台会返回一个 JSON 格式的响应,其中包含了访问令牌。 接下来,你可以使用访问令牌来发送 HTTP POST 请求到以下 URL:https://api.weixin.qq.com/cgi-bin/message/mass/sendall?access_token=ACCESS_TOKEN 其中,ACCESS_TOKEN 是上一步获取到的访问令牌。在 POST 请求的主体部分,你可以设置参数来定义群发消息的内容,例如消息类型、接收者列表、消息内容等等。 具体的 VB 代码实现可以参考微信开放平台提供的官方开发文档和示例代码。在编写代码时,你需要注意保护用户隐私和遵守微信开放平台的开发规范。 ### 回答2: VB 中对微信群发消息的实现需要调用微信公众号相关的 API 接口,并且需要获取到合法的访问令牌进行身份验证。下面是一个简单的 VB 代码示例,实现微信群发消息功能。 首先,需要引入微信公众号接口的数据类型定义,可以使用 XML 或 JSON 数据格式进行通信。在代码的开头添加以下引用: ``` Imports System.Net Imports System.IO Imports System.Text Imports System.Web.Script.Serialization ``` 然后,定义一个发送群发消息的函数: ``` Private Sub SendMessageToGroup(text As String) Dim accessToken As String = GetAccessToken() '获取访问令牌 Dim url As String = "https://api.weixin.qq.com/cgi-bin/message/mass/sendall?access_token=" + accessToken Dim jsonData As String = "{""filter"":{""is_to_all"":true},""text"":{""content"":""" + text + """},""msgtype"":""text""}" Dim requestData As Byte() = Encoding.UTF8.GetBytes(jsonData) Dim request As HttpWebRequest = WebRequest.Create(url) request.Method = "POST" request.ContentType = "application/json" request.ContentLength = requestData.Length Using requestStream As Stream = request.GetRequestStream() requestStream.Write(requestData, 0, requestData.Length) End Using Dim response As HttpWebResponse = request.GetResponse() Using responseStream As Stream = response.GetResponseStream() Using reader As New StreamReader(responseStream) Dim responseJson As String = reader.ReadToEnd() '解析回复的 JSON 数据,处理返回结果 End Using End Using response.Close() End Sub ``` 以上代码中的 `GetAccessToken()` 函数负责获取访问令牌的逻辑,并返回访问令牌供发送函数使用。这个函数可以自行编写,可以使用微信提供的 access_token 接口获取。 使用时,只需调用 `SendMessageToGroup("要发送的消息内容")` 即可实现微信群发消息的功能。 需要注意的是,代码中的发送消息接口为群发接口,消息内容需设置为 `text` 类型。 以上是一个简单的 VB 代码示例,实现了微信群发消息的功能。实际使用中也可以根据自己的需求进行调整和完善。 ### 回答3: VB是一种编程语言,可以用来开发各种应用程序,包括微信群发消息功能。下面是一个简单的VB代码示例来实现微信群发消息功能: ```vb Imports System Imports System.Net Imports System.IO Module Module1 Sub Main() Dim accessToken As String = "这里填写你的Access Token" Dim message As String = "这里填写你要发送的消息内容" Dim userIDs As String() = {"user_id1", "user_id2", "user_id3"} ' 这里填写你要发送消息的用户ID,可以是多个 Dim url As String = String.Format("https://api.weixin.qq.com/cgi-bin/message/mass/send?access_token={0}", accessToken) Dim request As HttpWebRequest = WebRequest.Create(url) request.Method = "POST" request.ContentType = "application/json" Using stream As Stream = request.GetRequestStream() Using writer As New StreamWriter(stream) Dim postData As String = String.Format("{{""touser"":{0},""msgtype"":""text"",""text"":{{""content"":""{1}""}}}}", userIDs, message) writer.Write(postData) writer.Flush() End Using End Using Dim response As HttpWebResponse = request.GetResponse() Using stream As Stream = response.GetResponseStream() Using reader As New StreamReader(stream) Dim result As String = reader.ReadToEnd() Console.WriteLine(result) ' 打印发送结果 End Using End Using Console.ReadLine() End Sub End Module ``` 这段代码使用VB语言,可以通过微信接口实现批量发送消息到指定用户。在代码中,你需要提供你的Access Token和要发送的消息内容,以及要发送消息的用户ID。代码将发送POST请求到微信的群发消息接口,并接收响应结果。你可以根据自己的需求修改这段代码,实现更多功能,比如上传素材、发送图片、发送视频等。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值