為了方便,文本框改成數(shù)組控件。代碼中用北京作為天氣預(yù)報(bào)地點(diǎn),改的話將網(wǎng)址改下即可,具體方法可以百度。另外,新浪天氣預(yù)報(bào)只有4天。最后說明一下,除了標(biāo)簽和文本框,沒用其它控件。
創(chuàng)新互聯(lián)自2013年創(chuàng)立以來,是專業(yè)互聯(lián)網(wǎng)技術(shù)服務(wù)公司,擁有項(xiàng)目成都網(wǎng)站建設(shè)、網(wǎng)站建設(shè)網(wǎng)站策劃,項(xiàng)目實(shí)施與項(xiàng)目整合能力。我們以讓每一個(gè)夢(mèng)想脫穎而出為使命,1280元濰城做網(wǎng)站,已為上家服務(wù),為濰城各地企業(yè)和個(gè)人服務(wù),聯(lián)系電話:13518219792
首先你想獲取當(dāng)今的天氣預(yù)報(bào) 你發(fā)布在網(wǎng)頁制作 我姑且是以為你做的是vb點(diǎn)虐 網(wǎng)頁程序其次 獲取當(dāng)今的天氣預(yù)報(bào) 都是調(diào)用各大網(wǎng)站給出的接口 (不會(huì)有人自己去整理這些資料的吧)最后 接口的使用 如果是軟件 可以調(diào)用 WEB服務(wù)接口(各網(wǎng)站有) 網(wǎng)頁也可以調(diào)用這些接口(實(shí)現(xiàn)方法輸入城市地址,返回天氣)還有更簡單的 直接使用我給出一個(gè)簡單框架代碼實(shí)現(xiàn):新浪天氣預(yù)報(bào)代碼 代碼 :"/A
Visual Basic通用報(bào)表設(shè)計(jì)小結(jié)
本文對(duì)vb設(shè)計(jì)報(bào)表的方法作了一個(gè)小結(jié),大家都知道,在VB平臺(tái)下制作報(bào)表大致有兩種選擇:使用VB自帶的Data Report控件和借助第三方軟件。其中第三方軟件比較著名的就是MS Excel和Seagate公司的CrystalReporter,以下就這三個(gè)方案進(jìn)行詳細(xì)的討論。
1. Data Report控件
1.1 Data Report控件使用方法
由于是VB自帶的控件,所以使用相對(duì)比較方便。使用方法是:首先在"工程"菜單下面選擇"添加Data report"選項(xiàng),這樣Data Report控件就選入到了應(yīng)用程序。
使用Data report的情況大多數(shù)采用數(shù)據(jù)綁定的模式,也就是將此控件與數(shù)據(jù)庫的數(shù)據(jù)表綁定起來以便可以不用編寫代碼就輕松完成報(bào)表的設(shè)計(jì)。要使用數(shù)據(jù)綁定就必須要指定數(shù)據(jù)源,這里的數(shù)據(jù)源不是數(shù)據(jù)控件而是數(shù)據(jù)環(huán)境(Data Environment),選擇"工程"菜單下面選擇"添加Data Environment"選項(xiàng)就可以將數(shù)據(jù)環(huán)境添加進(jìn)應(yīng)用程序中。數(shù)據(jù)環(huán)境有兩個(gè)重要的屬性:Connection 和Command屬性,前者是連接指定的數(shù)據(jù)庫,后者連接指定的數(shù)據(jù)表,一旦這兩者都設(shè)置成功之后,就可以把數(shù)據(jù)環(huán)境作為數(shù)據(jù)源了。只需要把Data report的DataSource屬性設(shè)置為前面的數(shù)據(jù)環(huán)境對(duì)象以及把DataMember設(shè)置為數(shù)據(jù)環(huán)境對(duì)象的Command對(duì)象即可。
1.2 Data Report控件界面元素
完成了Data report控件的數(shù)據(jù)綁定工作之后就可以直接控制報(bào)表的制作與顯示了。這里首先熟悉一下Data report控件的顯示界面:
Data report控件一共有5個(gè)區(qū)組成,分別是報(bào)表頭、頁面頭、細(xì)節(jié)區(qū)、頁面注腳和報(bào)表注腳。報(bào)表頭和報(bào)表注腳是用分別用于整個(gè)報(bào)表的最上部和最下部,它們將出現(xiàn)于整個(gè)報(bào)表的每一頁,可以放置一些報(bào)表名稱,時(shí)間之類的固定文本;頁面頭和頁面注腳只能出現(xiàn)在當(dāng)前頁的最上部和最下部,也就是說它只能出現(xiàn)在當(dāng)前頁中,不出現(xiàn)在其他頁面中,可以放置隨頁面變化的一些量比如頁碼等;而細(xì)節(jié)區(qū)就是用來進(jìn)行實(shí)際顯示的區(qū)域,它是我們最為關(guān)心的區(qū)域,通過在此區(qū)域內(nèi)放置顯示控件可以控制報(bào)表的實(shí)際顯示輸出。這里介紹一下放置文本框控件的使用方法,其實(shí)在綁定情況下只需要設(shè)置其DataMember和Datafield即可,前者用來指定數(shù)據(jù)表,可以設(shè)置為前面數(shù)據(jù)環(huán)境對(duì)象的Command對(duì)象,后者是指定數(shù)據(jù)段,即綁定的數(shù)據(jù)庫的指定字段。這樣不需要編寫任何代碼就可以實(shí)現(xiàn)報(bào)表的顯示工作。
1.3 Data Report控件的打印功能
對(duì)于報(bào)表的打印可以直接使用Data report自帶的打印功能,即可以實(shí)現(xiàn)簡易的報(bào)表打印。不過為了實(shí)現(xiàn)比較復(fù)雜的打印功能,也可以通過程序控制的方法來進(jìn)行。這里只是給出一個(gè)實(shí)現(xiàn)思路:首先需要制作一個(gè)按鈕控件來顯示"打印設(shè)置"的窗口,通過這個(gè)窗口用戶可以設(shè)置打印的相關(guān)的參數(shù),然后在實(shí)現(xiàn)打印的子模塊中使用VB內(nèi)嵌的printer對(duì)象來實(shí)現(xiàn)真實(shí)的打印,該對(duì)象能夠?qū)Υ蛴〉漠?dāng)前位置進(jìn)行定位,而且對(duì)打印的字體等參數(shù)進(jìn)行控制,所以結(jié)合"打印設(shè)置"窗口可以實(shí)現(xiàn)類似于word里面的打印功能。
2.MS Excel
說起報(bào)表設(shè)計(jì)應(yīng)用程序,無意微軟的Excel是一支獨(dú)秀,MS Excel就是用來進(jìn)行表格和報(bào)表設(shè)計(jì)用的應(yīng)用程序,它具有優(yōu)秀的方格控制和宏代碼定制功能。所以如果在設(shè)計(jì)自己的應(yīng)用程序的時(shí)候能夠結(jié)合到Excel的話,那么你的應(yīng)用程序就應(yīng)該是相當(dāng)?shù)耐晟屏?,因?yàn)闊o論是編輯還是打印功能,Excel都提供了很完美的解決方案,所以你的應(yīng)用程序所要做的事情就是實(shí)現(xiàn)程序和Excel通訊即可。
事實(shí)上,可以使用VBscript可以將VB與Excel兩者連接起來。以下就簡要介紹在VB下開發(fā)基于Excel的編程思路。
在VB中處理Excel的對(duì)象大致分為五個(gè):Application對(duì)象、WorkBook對(duì)象、WorkSheet對(duì)象、Range對(duì)象以及Cell對(duì)象。它們的功能分別如下:
Application---------用來指代整個(gè)應(yīng)用程序。
WorkBook----------表示工作簿對(duì)象
WorkSheet---------表示工作表對(duì)象,注意,一個(gè)工作簿可以包含多個(gè)工作表,它們就類似于多文檔中的框架窗口和里面的單個(gè)視圖一樣。
Range-------------表示工作表中的某個(gè)區(qū)域范圍對(duì)象,特殊情況下也可以只代表一個(gè)Cell。
Cell---------------表示特定工作表的一個(gè)單元格對(duì)象。這個(gè)對(duì)象的使用頻率是最高的。
清楚了以上的五個(gè)對(duì)象的應(yīng)用范圍,那么使用它們就很簡單了,不過在使用這些對(duì)象之前,首先需要對(duì)它們進(jìn)行聲明。方法是在"工程"的"引用"對(duì)話框之下選擇"Microsoft Excel9.0 Object Library",這樣就將整個(gè)Excel對(duì)象庫就引入到程序中來了。
下面舉一個(gè)示例,其實(shí)現(xiàn)的功能是打開一個(gè)工作簿。
Function OpenBook(strFilePath As String) As Boolean
' This procedure checks to see if the workbook
' specified in the strFilePath argument is open.
' If it is open, the workbook is activated. If it is
' not open, the procedure opens it.
Dim wkbCurrent As Excel.Workbook
Dim strBookName As String
On Error GoTo OpenBook_Err
' Determine the name portion of the strFilePath argument.
strBookName = NameFromPath(strFilePath)
If Len(strBookName) = 0 Then Exit Function
If Workbooks.Count 0 Then
For Each wkbCurrent In Workbooks
If UCase$(wkbCurrent.Name) = UCase$(strBookName) Then
wkbCurrent.Activate
Exit Function
End If
Next wkbCurrent
End If
Workbooks.Open strBookName
OpenBook = True
OpenBook_End:
Exit Function
OpenBook_Err:
OpenBook = False
Resume OpenBook_End
End Function
3.Crystal Reporter(水晶報(bào)表)
做為一個(gè)優(yōu)秀的報(bào)表軟件,水晶報(bào)表是實(shí)際應(yīng)用中最多的方案。在這一節(jié)里主要介紹一下水晶報(bào)表的定制和顯示,打印功能的實(shí)現(xiàn)。
首先要區(qū)分Crystal Reports插件程序和Crystal Reports控件。前者主要用來創(chuàng)建報(bào)表模板,后者主要是用來在程序中顯示和打印報(bào)表,這兩者的分工決定了它們程序中的功能的不同。
其中Crystal Reports的插件程序可以從Seagate公司的官方網(wǎng)站上下載最新的測(cè)試版本。
3.1 Crystal Reports插件程序的使用
選擇"外接程序"菜單的"報(bào)表設(shè)計(jì)器"選項(xiàng),則VB將執(zhí)行Crystal Reports Pro插件應(yīng)用程序。在Crystal Reports Pro里選擇"新建報(bào)表"圖標(biāo),可以選擇8標(biāo)準(zhǔn)模板和一個(gè)自定義的模板來開始報(bào)表工程。
整個(gè)水晶報(bào)表的使用跟第一節(jié)的Data Report的使用很類似。首先需要給報(bào)表選擇數(shù)據(jù)源,(即數(shù)據(jù)庫),然后就可以在報(bào)表中添加、刪除、修改字段以及為記錄分組,可以利用水晶報(bào)表創(chuàng)建很多具有自定義風(fēng)格的報(bào)表。由于本身Crystal Reports插件程序就是一個(gè)功能強(qiáng)大的報(bào)表設(shè)計(jì)軟件,這里就不能一一的講解了,有興趣可以參考程序自帶的幫助文檔。
3.2 Crystal Reports控件的背景知識(shí)
Crystal Reports Pro還提供一個(gè)報(bào)表生成模塊,該模塊可以連接到并訪問VB應(yīng)用程序,VB程序員不需花費(fèi)大量時(shí)間寫自己的代碼就可再應(yīng)用程序中添加復(fù)雜的報(bào)表生成及輸出功能。
Crystal Reports引擎是一個(gè)動(dòng)態(tài)鏈接庫,它可以使應(yīng)用程序訪問并具有同Crystal Reports 一樣強(qiáng)大的報(bào)表輸出功能。應(yīng)用程序是通過Crystal Reports ActiveX控件來訪問引擎。再編譯時(shí)應(yīng)用程序同報(bào)表引擎鏈接,以給應(yīng)用程序添加了生成報(bào)表的功能。
當(dāng)程序使用Crystal Reports ActiveX控件時(shí),可以通過再設(shè)計(jì)時(shí)設(shè)置Crystal對(duì)象屬性或者再運(yùn)行時(shí)改變對(duì)象屬性,來建立應(yīng)用程序和Crystal Reports之間的連接。通過Crystal控件的屬性可以指定:
響應(yīng)應(yīng)用程序某個(gè)事件的輸出報(bào)表的名字。
報(bào)表的目標(biāo)位置(預(yù)覽窗口、磁盤文件或者電子郵件等)。
想要打印的份數(shù)(如果報(bào)表提交給打印機(jī)的話)。
輸出文件的信息。
預(yù)覽窗口的大小及位置信息(如果報(bào)表在預(yù)覽窗口中顯示時(shí))。
選擇公式信息(如果在報(bào)表中限制記錄的話)。
排序信息。
其他相關(guān)的屬性。
這里要注意一點(diǎn)的是,Crystal控件必須在由Crystal Reports Pro創(chuàng)建的報(bào)表中使用,而試圖在VB應(yīng)用程序里引用之前,必須首先創(chuàng)建報(bào)表。
3.3 Crystal Reports控件的使用
了解了Crystal Reports控件的功能,那么就可以使用它了。首先通過"工程"的"部件"選項(xiàng)里面選擇"Crystal Reports Control",那么VB的工具箱里面就添加了Crystal Reports控件了。
注意,對(duì)于Crystal Reports控件的最重要的屬性就是ReportFileName了,把它設(shè)置為前面已經(jīng)在Crystal Reports Pro里定制好的報(bào)表模板的文件路徑。那么只需要調(diào)用控件的PrintReport方法就可以將報(bào)表顯示出來了。
相對(duì)于Data Report控件來說,Crystal Reports控件的功能更加的完善,報(bào)表預(yù)覽,打印,編輯修改等功能都很完善,所以在實(shí)際的報(bào)表應(yīng)用設(shè)計(jì)方案中,使用Crystal Reports的相對(duì)較多。然而Crystal Reports控件也有它的局限性,即它不能在運(yùn)行時(shí)創(chuàng)建自定義的窗口??梢允褂每丶臄?shù)據(jù)綁定屬性來創(chuàng)建數(shù)據(jù)綁定報(bào)表,但是報(bào)表本身的格式都是由Crystal Reports控件內(nèi)部進(jìn)行處理的。一般說來,Crystal Reports控件不提供在程序中對(duì)報(bào)表字段級(jí)的訪問。這一缺陷可以通過設(shè)計(jì)出足夠多的報(bào)表來彌補(bǔ)。
4.其他方法
除了通過上述的三種方法來實(shí)現(xiàn)報(bào)表設(shè)計(jì)以外,當(dāng)然也可以直接利用Win32 API來進(jìn)行直接進(jìn)行設(shè)計(jì),這種方式是最為靈活也是最為繁瑣的方式,因?yàn)樗械木庉嫛⑿薷?、打印等功能都是由程序控制,所以一般情況下不會(huì)使用這樣的方式來處理,這里就不介紹了。
5.小結(jié)
報(bào)表設(shè)計(jì)是程序員經(jīng)常要遇到的問題,本文主要介紹目前主流的報(bào)表設(shè)計(jì)方案,由于所涉及到的知識(shí)點(diǎn)比較多,限于篇幅,在這里只是作了簡要的介紹,希望可以起到拋磚引玉的作用。
使用webbrowser或inet控件,打開天氣網(wǎng)頁,提取其中的相關(guān)信息即可。