官术网_书友最值得收藏!

大易至簡,行于表上

如果有人告訴你,有這樣一款軟件,不管你有沒有基礎,只需一周左右的時間就能讓你成為一個數據管理高手,而且其數據錄入之快捷、統計查詢之強大、報表輸出之多樣,目前市面上的軟件無出其右;同時只要你愿意,它可以立即變身為一個開發平臺,而且從PC到手機、從C/S到B/S、從客戶端到服務端、從單機到局域網再到互聯網、從常規的數據管理到文檔管理、從單業務管理系統到企業整套ERP,包括企業IM,它都能勝任開發,并且可以編譯成獨立的可執行文件。它不僅簡單,而且高效,高效到一人可抵一個小團隊;它能讓一個完全沒有接觸過編程的職場菜鳥,在3個月甚至更短的時間內蛻變為一個管理軟件開發的全棧工程師。

你可能不會相信,真的有這樣的軟件嗎?有,它就是Foxtable!

簡單和強大永遠是矛盾的,但Foxtable卻在二者中取得了很好的均衡,使得二者不再是完全對立的兩面,下面通過一些常用的功能看看Foxtable如何將看似強大的功能做到極致的簡單。

1.輕松輸入

用Excel實現下拉列表輸入相當復雜,但是在Foxtable中卻異常簡單,以下圖的“學歷”列為例,只需在列屬性設置中將其下拉列表框設置為“博士”“碩士”“本科”“大專”“高中”“初中”“小學”,即可用下拉列表形式輸入學歷。

如果在設置列表項目的同時需要將擴展列類型設置為“多值字段”,就可以從下拉列表框中選擇多個值輸入,如下圖的“負責人”列。

對于日期列和數值列,如果在列屬性設置中將“使用內置輸入器”設置為True,則可以使用下拉日歷或計算器輸入數據,如下圖的“入職日期”列。

更令人拍案叫絕的是,Foxtable可以使用目錄樹作為下拉列表。例如,下圖的“大類”列就設置了目錄樹列表,單擊目錄樹中的某個節點,能夠同時輸入“大類”“二類”“三類”這3列的數據。

下拉列表還可以是一個表,如下圖所示。

要完成這些看似復雜的功能,并不需要編寫任何代碼,只需進行一些簡單的設置即可。

Foxtable內置了圖片和備注編輯窗口,可以很方便地編輯長文本和管理圖片,如下圖所示。

圖片的管理是通過擴展列類型實現的,在一個單元格中可以插入多個圖片,此外,也可以將列擴展為文件列,這樣就可以管理任何類型的文檔,如下圖所示。

2.輕松統計

有下圖所示的一個訂單表。

假定你需要得到下圖所示的統計分析結果。

要在Excel中完成這樣的統計,相信對于絕大多數的用戶來說,都是一件不可能完成的任務。而在Foxtable中,不用編寫任何代碼,只需簡單地單擊幾次鼠標,在菜單中執行分組統計命令,然后按下圖所示進行設置,最后單擊【確定】按鈕即可。

如果要編寫代碼完成上述統計,即使對資深程序員也是一件頗費時間的任務,代碼至少百行以上,而在Foxtable中則只需寥寥幾行:

Dim g As New Group Table Builder("統計表1", Data Tables("訂單"))

g.Groups.Add Def("日期", Date Group Enum.Year, "年")

g.Groups.Add Def("日期", "月")

g.Totals.Add Def("數量")

g.Totals.Add Def("金額")

g.Same Period Growth = True ‘開啟同比分析

g.Circle Growth = True ‘開啟環比分析

g.Build()

Main Table = Tables("統計表1")

上述代碼只有9行,而且無任何復雜的邏輯,普通用戶經過簡單的基礎學習就能掌握。實際上,我們并不需要自己編寫代碼,因為單擊設置窗口的【生成代碼】按鈕,即可根據現有設置自動生成上述代碼。

再例如,假定要得到下圖所示的每年各產品的銷量、占比及各產品的總銷量和總占比。

同樣只需單擊幾次鼠標或使用不到10行的代碼即可完成。

Dim g As New Cross Table Builder("統計表1", Data Tables("訂單"))

g.HGroups.Add Def("產品")

g.VGroups.Add Def("日期", Date Group Enum.Year, "{0}年_數量")

g.Totals.Add Def("數量", "數量")

g.Horizontal Total = True

g.Vertical Total = True

g.Vertical Proportion = True

g.Build()

Main Table = Tables("統計表1")

以上只是Foxtable統計功能的牛刀小試,Foxtable內置合計模式、匯總模式、分組統計、交叉統計等多個統計工具,以前需要數小時甚至數天才能完成的統計,現在可以隨時信手拈來。

3.輕松報表

以Excel為代表的電子表格制表功能強大,可以設計出非常復雜的報表,但在數據輸入、查詢和統計分析方面,遠不如數據庫軟件強大便利,而Foxtable則結合了二者的優勢,可以直接利用Excel設計報表模板,然后根據此模板批量生成報表,如下圖所示。

Foxtable還可以利用Word設計報表模板,如下圖所示。

4.輕松查詢

和統計功能一樣,Foxtable查詢功能之強大、智能和方便,可以說到了令人難以置信的程度,以日期查詢為例,假定日期列中某個單元格的值為“2018-9-18”,右擊此單元格,彈出的篩選菜單如下圖所示。

由圖可見,可以通過菜單篩選出等于、早于或晚于此日期的行,也可以篩選出和此日期同年、同月、同日、同季度或同星期的行,還可以直接篩選出指定季度或月份的行。例如,單擊上圖菜單的【范圍之內】命令,可以彈出下圖所示的對話框用于篩選指定日期范圍內的行。

不僅是日期列,字符列和數值列同樣有類似的智能篩選功能。包括智能篩選在內,Foxtable合計提供了10種篩選功能,其中最為方便的是篩選樹。可以根據數據表的任意列生成一個目錄樹,然后單擊相應的節點,即可篩選出對應的行。例如,下圖篩選出了2009年1月產品為“PD03”的銷售記錄。

5.界面設計

Foxtable的初始界面雖然類似于電子表格,看起來就是一個普通的應用軟件,但實際上Foxtable還是一個真正的開發平臺,提供了非常強大的菜單和窗口設計功能,以下兩圖就是基于Foxtable設計的兩個窗口,前者為主界面,后者為數據輸入對話框。

與普通的管理軟件二次開發平臺不同,Foxtable具備編譯功能,能將設計好的系統編譯成可執行文件,成為獨立的軟件,脫離Foxtable運行,所以完全可以基于Foxtable開發商業軟件,實際上有相當多的軟件公司和咨詢公司正在使用Foxtable進行開發。

6.B/S和手機開發

Foxtable內建Web服務及手機網頁生成功能,普通用戶即使完全不懂網頁設計,也能基于Foxtable快速開發出手機端的管理系統。下面就來演示Foxtable在這方面到底有多簡單。

首先在項目的After Open Project事件中輸入以下代碼:

Http Server.Prefixes.Add("http://*/")

Http Server.Web Path ="d:\web"

Http Server.Start()

上面用3行代碼就完成了一個Web服務器的搭建工作,這應該是目前最簡單的Web服務器搭建方法。

然后將Http Request事件代碼設置如下:

Dim wb As New We UI

wb.Add Form("","form1","addnew.htm")

With wb.Add Input Group("form1","ipg1","新增訂單")

.Add Select("cp","產品","PD01|PD02|PD03|PD04|PD05")

.Add Input("gy","雇員","text")

.Add Input("kh","客戶","text")

.Add Input("dj","單價","number")

.Add Input("zk","折扣","number")

.Add Input("sl","數量","number")

.Add Input("rq","日期","date")

End With

With wb.Add Button Group("form1","btg1",True)

.Add("btnok","確定")

End With

e.Write String(wb.Build)

以上代碼用于生成網頁,現在在本機打開瀏覽器,輸入地址“http://127001/”,即可看到下圖所示的網頁。

我們只用18行代碼就完成了Web服務端的架設及客戶端網頁的生成。因為代碼編寫全部在Foxtable中完成,不需要借助其他平臺,所以也不需要額外學習,只需掌握Foxtable即可。如果按常規方式自行編碼,不僅代碼量10倍于此,而且涉及的知識面非常多,需要很長的學習周期,一般用戶很難掌握,這也是為什么手機端管理軟件的開發往往只有少數專業人士掌握的原因。

7.企業IM

Foxtbale內置即時通信功能,可以用不到30行的代碼,快速搭建一個企業內部的IM系統。下圖所示為內置的企業IM聊天窗口。

值得一提的是,這個內置的IM系統可以和基于Foxtable開發的管理系統緊密結合起來,實現消息、數據和文檔的自動收發,還可以直接和微信進行通信。

8.大數據管理

企業的數據量通常以百萬行甚至千萬行計算,對于這種級別的數據量,采用Excel管理是不可能的,但Foxtable卻能輕松應對。Foxtable能連接局域網或互聯網數據庫,包括Access、SQL Server和Oracle等主流數據庫,將外部數據庫中的表添加到Foxtable中時,可以選擇初始不加載數據或只加載少量數據(這一點很重要),然后通過代碼或菜單設置加載樹,如可以按下圖所示的訂單表設置加載樹。

可以勾選“自動顯示加載樹”復選框,這樣打開項目時就能自動生成加載樹;或者在After Open Project事件中加上以下代碼:

Tables("訂單").Open Load Tree("日期 YM|產品",150,50)

表示根據日期(按年月)和產品生成加載樹,加載樹的寬度為150個像素,每頁加載50行數據。下圖所示為生成的加載樹。

加載樹和前面介紹的篩選樹有些類似,但是篩選樹是篩選已經加載的數據,而加載樹是從后臺加載符合條件的數據,而且可以分頁加載。例如,在上圖單擊2010年1月的節點,即可加載該月的訂單,該月的訂單不止50行,可以通過目錄樹下方的按鈕加載不同頁面的數據,而且Foxtable的篩選和統計都可以直接針對后臺所有數據,所以分頁加載并不會對日常使用帶來任何影響。有了加載樹功能,Foxtable可以讓一個普通用戶,在幾分鐘內就能搭建完成一個基于互聯網的大數據管理系統,而且不用編寫任何代碼。

9.無需留戀VBA

如果你是Excel或Word的資深用戶,一定會留戀VBA,實際上你的VBA知識在Foxtable中一樣有用。將原來的VBA代碼稍作修改,就可用于Foxtable中。這樣,除了Foxtable本身提供的Excel或Word報表功能外,還可使用VBA無所拘束地操控它們。

例如,在Foxtable中運行以下代碼,將自動創建一個新的Excel工作簿文件:第1個工作表的名稱為“測試表”,同時在A1單元格寫入內容“我是用來測試的單元格”,保存的文件名為“d:\testxls”:

Dim App As New MSExcel.Application

Dim Wb As MSExcel.Workbook = App.Work Books.Add

Wb.Work Sheets(1).name ="測試表"

Wb.Work Sheets(1).range("A1").Value ="我是用來測試的單元格"

Wb.Save As("d:\test.xls")

App.Quit

由此可見,Foxtable已經針對國人的數據使用習慣及各種不同的應用場景,在Excel的基礎上做了大量的功能優化、提煉及擴展。從某種程度上說,超越Excel已為事實。例如,在Excel中處理海量數據是很不方便的,盡管后來推出了Power Query與Power Pivot兩個插件,但在職場環境中能熟練使用它們的仍然寥寥無幾。而Foxtable的“數據展示面”雖然還是Excel(包括快速移動光標、快速復制單元格等操作方法甚至和Excel一模一樣),但它的“芯”已經變為數據庫,加上擴展的各種模塊化功能,這樣做起商業智能分析(BI)來才會更加順暢、便捷、簡單。

這里僅僅是讓大家對Foxtable的定位和特點有個初步的了解,以堅定讀者繼續學習的決心。事實上,隨著學習的深入,你會發現Foxtable所提供的功能遠遠不止于此。本書由Foxtable軟件作者賀輝及資深用戶周菁合作完成,盡管期間已數易其稿,但疏漏及錯誤之處仍在所難免,懇請廣大讀者批評指正。

作者

2018年7月

主站蜘蛛池模板: 黑山县| 横山县| 临桂县| 利津县| 黄大仙区| 拜泉县| 宾阳县| 开江县| 万源市| 潮安县| 元朗区| 孟村| 托克托县| 神池县| 吴堡县| 广昌县| 启东市| 平和县| 新平| 琼结县| 丰县| 青铜峡市| 鄢陵县| 河北区| 海阳市| 大荔县| 仪征市| 西充县| 宁武县| 海安县| 封丘县| 德江县| 鹤壁市| 罗定市| 连平县| 武功县| 通州区| 静乐县| 娱乐| 塔河县| 开封市|