| 報表系統(tǒng)一直是數(shù)據(jù)庫應(yīng)用類軟件開發(fā)中的重要部分,專業(yè)性很強,需要寫很多代碼,設(shè)計報表要比設(shè)計表單復(fù)雜和繁瑣得多。 由于現(xiàn)有的報表設(shè)計器都是面向程序開發(fā)者的,所以大多數(shù)報表設(shè)計器里的頁面布局與普通用戶平時常用的Word那樣的頁面完全不同,其專業(yè)性首先就體現(xiàn)在報表設(shè)計器中的多個區(qū)帶標(biāo)簽橫向貫穿了整個報表頁面,硬生生地把頁面“四分五裂”,怎么看都看不出是一張紙,而Word的帶著四個L形頁邊距直角折線的頁面布局則能讓人直觀地、自然而然地把頁面視為一張紙,并理所當(dāng)然地認為這才是報表該有的樣子,這導(dǎo)致當(dāng)程序發(fā)布后普通用戶需要自己修改報表時,面對與常用的Word截然不同的專業(yè)報表設(shè)計器望而生畏無所適從。 作為微軟最成功的軟件之一,Word的另外一個無比強大的功能是表格的單元格合并,這使得每天無數(shù)人通過單元格合并功能設(shè)計出無數(shù)種布局的報表,讓無論是簡單的還是復(fù)雜的報表在單元格合并功能下都變得信手拈來。 VFP自帶的報表設(shè)計器永遠不能與時俱進了,雖然微軟也想大力改進VFP的報表功能,甚至VFP9大動干戈地重寫了報表設(shè)計器和報表渲染引擎以支持GDI+,但還是因為太復(fù)雜而曲高和寡,被VFP開發(fā)者歸為奇技淫巧一類而難以普及,除此之外在報表設(shè)計器上并沒有多少改進。 很多VFP開發(fā)者使用Excel或者Word利用VBA輸出報表,這不但要求對VBA熟悉,而且功能有限,還要面對用戶重裝系統(tǒng)、重裝Office帶來的Excel或者Word對象創(chuàng)建失敗的種種問題,并且Office程序越來越大,也越來越慢,版本間也有些兼容性問題,很影響用戶的體驗。 當(dāng)年摩托羅拉和諾基亞如日中天的時候,蘋果公司以iPhone重新定義了手機,革了手機行業(yè)的命,使摩托羅拉和諾基亞從巔峰走向末路。 報表革命就是把專業(yè)的報表設(shè)計變成像Word那樣的Office性質(zhì)的報表設(shè)計,不用寫代碼就能設(shè)計出專業(yè)的報表,不但讓程序設(shè)計者大幅提高開發(fā)效率,更能讓普通用戶像使用Office軟件那樣簡單、方便、快速、容易地設(shè)計報表,把開飛機變得像騎自行車一樣簡單! 為什么使報表設(shè)計像Word而不像Excel那樣呢?因為Excel有一個致命的問題,就是Excel的本質(zhì)是行列式的表格,就像VFP的Grid控件那樣,每行之間的列數(shù)都完全相同和對齊,當(dāng)設(shè)計一個檔案或簡歷類的報表時,如果有20行,而只是需要向其中一行新插入一列時,那么所有20行都會插入一列,然后必須將其它19行中新插入的列合并單元格,而Word就不存在這個問題,Word表格的每行之間的列數(shù)可以不相同、不對齊,這就是Word表格的專業(yè)之處。 本報表設(shè)計器結(jié)合了Word和Excel兩種軟件的單元格處理算法,以單元格為基本操作對象,由單元格組成區(qū)帶,通過單元格的添加、刪除、合并快速實現(xiàn)報表布局,與Word和Excel有很多相似之處。 特別說明:本報表系統(tǒng)(報表設(shè)計與報表打?。┡cVFP的報表系統(tǒng)沒有任何關(guān)系,既不使用VFP的報表文件,也不使用VFP的報表打印命令。本報表系統(tǒng)是使用VFP開發(fā)的、以VFP的表或者Cursor為數(shù)據(jù)源的、專用于VFP的、有單獨報表文件的獨立報表系統(tǒng),所以不要誤以為是修改VFP的frx報表文件的程序! 本報表設(shè)計器只需動動鼠標(biāo),分分鐘就能輕輕松松實現(xiàn)以下功能: (1)自定義紙張。在頁面設(shè)置中任何打印機(包括PDF打印機、Office虛擬打印機)都可以設(shè)置自定義紙張,絕對不會向控制面板的打印服務(wù)器添加任何紙張,不會修改打印服務(wù)器的任何屬性。 (2)縮小字體填充。Word的單元格沒有這個功能,只有Excel的單元格有這個功能。當(dāng)單元格高度固定時如果文字太多容納不下則可以設(shè)置縮小字體填充,系統(tǒng)會自動縮小字體使文本都容納下。 (3)斜線表頭。很多報表設(shè)計器的斜線表頭使用的是圖片,本系統(tǒng)是實時繪制的矢量斜線,隨單元格大小自動變化。 (4)設(shè)置文本的上標(biāo)下標(biāo)。設(shè)置像立方、化學(xué)式那樣的格式化文本。 (5)分組。可以設(shè)置多級分組,還可以設(shè)置對每組進行匯總。 (6)合并重復(fù)的分組值。分組報表時每組的分組值只打印一個,意想不到的簡單。 (7)分欄。可以將報表分成多列,支持水平打印和垂直打印,當(dāng)有多個表時每個表的分欄都是相互獨立設(shè)置的,互不干擾。 (8)打印圖片。可以打印靜態(tài)圖片,也可以打印字段中的圖片。當(dāng)字段的數(shù)據(jù)類型是Blob類型時自動按圖片打印。可以設(shè)置圖片的縮放和翻轉(zhuǎn)旋轉(zhuǎn)。 (9)打印條碼。支持3種二維碼和27種一維碼,共30種條碼。 (10)打印圖表。支持9種常用的圖表。 (11)匯總(含分組匯總)。合計、平均、最大、最小、計數(shù)等。 (12)套打。使用掃描的單據(jù)作為背景圖設(shè)計套打布局,可以連背景圖一起打印。 (13)嵌套報表。一對多報表時可以把子表嵌入到主表的單元格中,使單元格本身變成一個報表。 (14)自動編號。為每條記錄打印自動編號,類似記錄號的功能,可以指定編號起始值。 (15)浮動對象??梢蕴砑痈游谋竞透訄D片。浮動圖片可用于打印印章、簽名??梢栽O(shè)置浮動對象的透明度,免去使用圖片處理軟件進行透明處理的麻煩。 (16)各種特殊格式打?。贺敃褂玫慕痤~線、大寫人民幣、數(shù)值、負數(shù)等等。 (17)不限次數(shù)的Undo/Redo。VFP的表單設(shè)計器和報表設(shè)計器只能緩存一步Undo/Redo,本報表設(shè)計器的Undo/Redo不限次數(shù),數(shù)十億次都沒問題,不占用內(nèi)存,給操作者足夠充足的后悔藥。 (18)完全的所見即所得的交互式界面,不但設(shè)計器頁面即時顯示設(shè)置效果,而且很多設(shè)置中都有效果示例,即使是普通用戶看了效果示例后想不懂都難。 ......(此處省略若干條) 以上只是大概列舉了一些常用的功能和特點,實際上遠比介紹的豐富多彩,請關(guān)注后續(xù)的截圖和演示視頻。 下圖是新建報表的界面:(頁面布局看起來有點像Word吧) 下圖是新建報表界面的功能區(qū)說明: | 
|  |