TWI796545B - 文件式智能程式產生方法及其電子裝置 - Google Patents
文件式智能程式產生方法及其電子裝置 Download PDFInfo
- Publication number
- TWI796545B TWI796545B TW109101332A TW109101332A TWI796545B TW I796545 B TWI796545 B TW I796545B TW 109101332 A TW109101332 A TW 109101332A TW 109101332 A TW109101332 A TW 109101332A TW I796545 B TWI796545 B TW I796545B
- Authority
- TW
- Taiwan
- Prior art keywords
- database
- symbols
- webpage
- field
- data
- Prior art date
Links
Images
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本發明提供一種文件式智能程式產生方法及其電子裝置。此方法依據一個表格式文件,表格式文件中定義了多個標記符號來設定對應後端的資料表屬性,依據所述標記符號來建立資料庫表結構及存取資料庫的後端服務程式,並且依據所述標記符號來產生對應的前端網頁。
Description
本發明是有關於一種智能產生程式的方法及裝置,且特別是有關於一種文件式智能程式產生方法及其電子裝置。
企業的資訊化,多數是以資料庫與表格為核心。凡舉企業最常使用的ERP(企業資源規劃)、EIP(企業入口平台)、HR(人力資源管理)及CRM(客戶資源管理)等系統,都會大量使用到資料庫與表格。一般來說,多數的企業會採用套裝軟體,但也有少數的企業因為公司制度與行業特性無法使用套裝軟體。這些無法使用套裝軟體的企業通常會採用專案開發的方式來建立系統。
這種專案方式的開發過程當中,不僅步驟繁複,並且開發週期長。開發過程從使用者的需求分析開始,接著進行系統分析與設計,最後將分析與設計交給程式開發人員才能建立系統。開發過程不但冗長耗時,更常因為每個階段無法有效的溝通產生誤差,而需要重複往返討論,造成人力成本的浪費。
基此,如何減少重複往返討論,進而降低系統建立成本,為本領域人員致力發展的目標之一。
本發明提供一種文件式智能程式產生方法及其電子裝置,可將文件自動化轉換成資料庫與網頁程式。
本發明提供一種文件式智能程式產生方法及其電子裝置。此方法依據一表格式文件獲取資料表屬性,其中所述表格式文件中定義多個標記符號。依據所述標記符號建立資料庫表結構及可存取資料庫的後端服務程式。以及依據所述標記符號產生與所述資料庫對應的前端網頁
本發明還提供一種電子裝置,包括儲存裝置及處理器。儲存裝置儲存一或多個指令。處理器耦接儲存裝置,並且經配置以執行所述指令以:依據一表格式文件獲取資料表屬性,其中所述表格式文件中定義多個標記符號;依據所述標記符號建立資料庫表結構及可存取資料庫的後端服務程式;以及依據所述標記符號產生與所述資料庫對應的前端網頁。
基於上述,本發明實施例的文件式智能程式產生方法及其電子裝置,其可透過表格式文件中的標記符號,將表格式文件自動化轉換為資料庫表結構、後端服務程式及前端網頁。藉此,可節省開發者開發程式的時間及開發成本,並提升開發程式的生產力。
為讓本發明的上述特徵和優點能更明顯易懂,下文特舉實施例,並配合所附圖式作詳細說明如下。
本發明的部份實施例接下來將會配合附圖來詳細描述,以下的描述所引用的標記符號,當不同附圖出現相同的標記符號將視為相同或相似的標記。這些實施例只是本發明的一部份,並未揭示所有本發明的可實施方式。更確切的說,這些實施例只是本發明的專利申請範圍中的方法以及電子裝置的範例。
請參照圖1,圖1是根據本發明的一實施例所繪示的電子裝置的方塊圖。本實施例的電子裝置100包括處理器110及儲存裝置120。處理器110耦接儲存裝置120,而可存取並執行記錄在儲存裝置120中的指令,以實現本發明實施例的文件式智能程式產生方法。電子裝置100例如是具備運算功能的桌上型電腦、筆記型電腦、伺服器、智慧型手機、平版電腦或其他電子裝置,但本發明不限於此。
處理器110用以控制電子裝置100的整體運作。在不同實施例中,處理器110例如是中央處理單元(Central Processing Unit,CPU),或是其他可程式化之一般用途或特殊用途的微處理器(Microprocessor)、數位訊號處理器(Digital Signal Processor,DSP)、可程式化控制器、特殊應用積體電路(Application Specific Integrated Circuits,ASIC)、可程式化邏輯裝置(Programmable Logic Device,PLD)、圖形處理器(Graphics Processing Unit,GPU)或其他類似裝置或這些裝置的組合,本發明不限於此。
儲存裝置120例如是任意形式的固定式或可移動式隨機存取記憶體(Random Access Memory,RAM)、唯讀記憶體(Read-Only Memory,ROM)、快閃記憶體(Flash memory)、硬碟或其他類似裝置或這些裝置的組合,本發明不限於此。儲存裝置120用以儲存可由處理器110執行的一或多個指令,這些指令可載入處理器110。
舉例來說,儲存裝置120中包括有用來對電子文件進行讀取與分析的電腦程式產品。此電腦程式產品基本上是由多數個程式碼片段所組成的(例如建立組織圖程式碼片段、簽核表單程式碼片段、設定程式碼片段、以及部署程式碼片段),並且這些程式碼片段在載入如電子裝置100中並執行之後,即可實現對電子文件進行讀取與分析的功能。
圖2是根據本發明的一實施例所繪示的文件式智能產生程式的示意圖。為了提升軟體的開發效率,開發者或顧問專家可以利用紙本或電子的文件與使用者進行溝通,並與使用者確認文件的內容。請參照圖2,確認後的文件即可透過本發明實施例提供的文件式智能程式轉換為資料庫表結構21、後端服務程式22、前端網頁23或其他應用。用於討論的文件例如是表格式文件20,常見的表格式文件例如Word文件(Microsoft Word),但本發明不限於此。由於Word表格與傳統文件表格類似,與使用者溝通起來較為方便。
有關本發明之前述及其他技術內容、特點與功效,在以下配合參考圖式之一較佳實施例的詳細說明中,將可清楚的呈現。
圖3是根據本發明的一實施例所繪示的文件式智能程式產生方法的流程圖。請同時參照圖1及圖3,本實施例的方法適用於上述的電子裝置100,以下即搭配電子裝置100 的各項裝置及元件說明本實施例的文件式智能程式產生方法的詳細步驟。
以下以Word文件中的表格為範例說明本發明實施例。圖4是根據本發明的一實施例所繪示的表格式文件的範例。請參照圖4,空白的表格40包括多個欄位標題401及多個標記符號402。以本實施例的員工資料表為例,欄位標題401例如包括員工編號、姓名、英文姓名、身分證號及其他與員工相關的欄位。在與使用者確定表格式文件中的欄位格式沒問題後,開發人員或顧問專家會在表格式文件的表格40中與欄位標題401對應的欄位上,輸入如圖4中所示的標記符號402,並將填寫好的表格式文件上傳到電子裝置100中。接著處理器110執行本實施例提供的文件式智能程式產生方法,進而實現對表格式文件進行分析的功能。
處理器110依據表格式文件獲取資料表屬性,其中表格式文件中定義多個標記符號(圖3步驟S302)。資料表屬性可包括多種不同屬性,例如資料庫的表結構屬性或前端網頁的欄位屬性等。詳細而言,處理器110依據表格式文件包括的標記符號檢查並獲取標記符號表中對應資料庫的表結構屬性及前端網頁的欄位屬性。在本實施例中,儲存裝置120儲存讀取表格式文件的內容後,處理器110會針對表格式文件中的多個標記符號從儲存裝置120搜尋對應的標記符號表(如下表1),來決定資料庫的表結構屬性或前端網頁的欄位屬性。在本實施例中,儲存裝置120儲存的標記符號表如下表1、2、5所示,其中資料庫的表結構屬性例如包括產生結構內容(Table Schema)、資料長度(Length)及說明等(如下表1);前端網頁的欄位屬性包括欄位型態(如下表2)與控制項(如下表5)等,但本發明不限於此。
表1 表結構屬性的標記符號表
標記符號 | 產生結構內容 | 資料長度 | 說明 |
#K | nvarchar | 20 | 主鍵欄位 |
#KA | int | int | 主鍵欄位且自動編號,以Identity方式 |
#KA AUTO | nvarchar | 20 | 主鍵欄位且自動編號,以AUTO:參數來定義自動編號原則 |
# | nvarchar | 按表格寬度 | 一般文字,會按表格寬度決定30/45/60等字元寬度 |
#N | Decimal | 14.2 (小數2位) | 一般數值欄位,小數可以透過後面一位來指定,如N3代表小數3位 |
#D 或 #DE | Date | Date | 日期欄位,沒有時間的日期 |
#DT | DateTime | DateTime | 日期時間欄位,含時間的日期 |
#P | nvarchar | 40 | 圖檔欄位,欄位內容存放圖檔的URL連結 |
#F | nvarchar | 40 | 檔案上傳欄位,欄位內容存放檔案的URL連結 |
#O | nvarchar | 30 | 選項欄位,內容存放選項的結果 |
#C | nvarchar | 30 | 下拉選單欄位,內容存放選項的結果 |
#CK | nvarchar | 60 | 複選欄位,內容存放多個選項的結果 |
#R | nvarchar | 20 | 關聯選單欄位,用來關聯別的資料表 |
#A | nvarchar | 1024 | 備註欄位,可以存放較多的文字資料 |
#S | nvarchar | 20 | 開關欄位,用來存放只有兩種狀態的欄位 |
#E | nvarchar | 按表格寬度 | 組合性欄位,欄位中包含多組欄位的內容,會按表格寬度決定30/45/60等字元寬度 |
#J | nvarchar | 2048 | 表格式欄位,欄位中包含一個陣列式的表格。 |
*… | (星號),放在欄位標題前方代表所述欄位為必填(Not Null) | ||
# :... | 在「#」後面加上「:」可以自行定義欄位名稱,或是有些系統Table Schema已經存在了,須按原來的欄位命名方式 | ||
#M : | 用來指定主資料表(Table)的名稱,如果沒有指定,則會以Word的檔案名稱來自動命名。 | ||
##開頭 | 代表為第二階子表的欄位,##之後的標誌符號與#完全相同,如可以設定為##KA,##N,##D,##O等等 | ||
#MD : | 用來指定第二階子表 (Table)的名稱,如果沒有指定,則會以主表名稱後面加上「明細」來自動命名。 | ||
##2 | 代表為第二階的第2個子表的欄位,##2之後的標誌符號與#完全相同,如可以設定為##2KA,##2N,##2D,##2O等等 | ||
#MD2 : | 用來指定第二階的第2個子表(Table)的名稱,如果沒有指定,則會以主表名稱後面加上「明細2」來自動命名。 | ||
##3 | 代表為第二階的第3個子表的欄位,##3之後的標誌符號與#完全相同,如可以設定為##3KA,##3N,##3D,##3O等等 | ||
#MD3 : | 用來指定第二階的第3個子表(Table)的名稱,如果沒有指定,則會以主表名稱後面加上「明細3」來自動命名。 |
舉例而言,圖4中表格40中的欄位標題401員工編號對應的標記符號402為#K。處理器110會從表1中搜尋與標記符號#K相同的標記符號,因此處理器110選擇標記符號#K對應的資料庫的表結構屬性(如產生結構內容nvarchar及資料長度20而且為Identity)作為標記符號設定#K對應的資料庫表結構產生依據。
處理器110依據標記符號建立資料庫表結構及可存取資料庫的後端服務程式(圖3步驟S304)。在獲取對應資料庫的表結構屬性後,處理器110依據標記符號對應到資料庫的表結構屬性來建立資料庫表結構或更改資料庫表結構。詳細而言,處理器110利用結構化查詢語言依據表結構屬性建立或更改資料庫中的資料表。在本實施例中,處理器110會依據圖4中欄位標題401及標記符號402,利用結構化查詢語言(Structured Query Language,SQL)建立或更改資料庫中的資料表。其中資料庫例如為關聯式資料庫。
舉例而言,處理器110依據圖4中的表格40包括的欄位標題401及標記符號402,可以轉換成以下SQL來建立資料庫:
CREATE TABLE [員工資料表]([員工編號] nvarchar(20) NOT NULL,[建檔日期] date NULL,[姓名] nvarchar(30) NOT NULL,[相片] nvarchar(40) NULL,[英文姓名] nvarchar(30) NULL,[身分證號] nvarchar(30) NOT NULL,[電郵信箱] nvarchar(30) NULL,[到職日期] date NOT NULL,[戶籍地址] nvarchar(30) NULL,[出生年月日] nvarchar(30) NULL,[性別] nvarchar(20) NULL,[通訊地址] nvarchar(30) NULL,[血型] nvarchar(30) NULL,[聯絡電話(H)] nvarchar(30) NULL,[婚姻狀況] nvarchar(20) NULL,[駕駛執照] nvarchar(60) NULL,[緊急聯絡人] nvarchar(120) NULL,[學歷] nvarchar(1024) NULL)
ALTER TABLE [員工資料表] ADD PRIMARY KEY ([員工編號])
建立的資料庫中的資料表的屬性例如表2,包括欄位名稱(Column Name)、欄位型態(Data Type)及允許空白(Allow Null),但本發明不限於此。於表2中,欄位名稱根據表格40的欄位標題401,而欄位型態根據表格40的標記符號402,欄位長度根據標記符號402的表格寬度。並且,以欄位標題401前方是否有符號「*」來代表是否允許空白資料(是否為必填)。
表2 前端網頁的標記符號表
欄位名稱 | 欄位型態 | 允許空白 | |
1 | 員工編號 | nvarchar(20) | |
2 | 建檔日期 | date | V |
3 | 姓名 | nvarchar(30) | |
4 | 相片 | nvarchar(40) | V |
5 | 英文姓名 | nvarchar(30) | V |
6 | 身分證號 | nvarchar(30) | |
7 | 電郵信箱 | nvarchar(30) | V |
8 | 到職日期 | date | |
9 | 戶籍地址 | nvarchar(30) | V |
10 | 出生年月日 | nvarchar(30) | V |
11 | 性別 | nvarchar(20) | V |
12 | 通訊地址 | nvarchar(30) | V |
13 | 血型 | nvarchar(30) | V |
14 | 聯絡電話(H) | nvarchar(30) | V |
15 | 婚姻狀況 | nvarchar(20) | V |
16 | 駕駛執照 | nvarchar(60) | V |
17 | 緊急聯絡人 | nvarchar(120) | V |
18 | 學歷 | nvarchar(1024) | V |
在建立資料庫表結構的同時,處理器110還依據標記符號建立可存取資料庫的後端服務程式。舉例而言,處理器110自動產生存取資料庫的後端服務程式,例如包括新增(Insert)/更改(Update)/刪除(Delete)/查詢(Select)等SQL語句的「資料存取組件」,或者包括可讓開發者自行設定這些後端「資料存取組件」的屬性,以面對後續更多使用者的需求。在本實施例中,資料存取組件存取資料庫的資料內容並傳遞給前端網頁,並且依據前端網頁的要求新增或修改資料庫的資料內容。資料存取組件例如包括Command組件、UpdateComp組件以及AutoNumber組件,但本發明不限於此。
Command組件用來存取資料庫的資料內容,提供一個SQL命令的介面(interface),以此SQL命令來取得後端資料庫的資料內容並傳遞資料給前端(front-end)。Command組件的重要屬性說明如下。
(1)CommandText(SQL命令):前端提出需求時,會以此SQL指令來直接對資料庫進行讀取,一般皆為Select的語法。
(2)CommandType(SQL命令類別):SQL命令的類別,可選為SQL/ StoredProcedure等。
Keys(主鍵欄位):指定主檔的主鍵欄位,一般為PrimaryKey,可以設定多個。
(3)SecStyle(保全模式): 用來控制資料讀取權限的模式,目前可用的模式為:a. None不啟動:本InfoCommand不作任何資料保全控管;b. User:所有歸屬該使用者的資料都可以存取,啟動此命令時系統會自動加上「where指定欄位=UserID」;c. Group:所有歸屬該使用者相對的群組資料都可以存取,啟動此命令時系統會自動加上 「where 指定欄位 IN (該User群組)」。
(4)SecField(保全管制欄位):用來定義SecStyle的欄位名稱,如果SecStyle=ByUser就是指建檔者userid的欄位名稱,如果SecStyle=ByGroup即指此資料的所屬部門(群組)的欄位名稱。
(5)SelectPaging(分頁讀取):可設定為True/False。設為True可以分頁讀取大量數據,避免讀取過大的資料造成回應緩慢。
(6)CacheData(緩存數據):對於已加載的資料會緩存下來,不必每次重新撈取。
如果要對資料進行儲存操作,例如新增、更改、刪除等操作,則Command組件需要與UpdateComp組件配合。
UpdateComp組件用來配合Command組件進行數據回寫的動作,可以自動化處理前端所要求的新增(Insert)/更改(Update)/刪除(Delete)等修改資料庫的資料內容的動作,此UpdateComp組件會自動下達對應的新增/更改/刪除等SQL命令。UpdateComp組件的重要屬性說明如下:
(1)Fields(預設欄位明細):特殊控制每個欄位的預設值或是否可更改,例如,可以控制那些欄位只有新增(Insert)時回寫、更改(Update)/刪除(Delete)都回寫或永不回寫等。
(2)RowAffectsCheck(影響行數檢查):是否要進行被影響的資料筆數檢查,當沒有資料被影響或超過1筆被影響時提出警告。
(3)InfoCommand(對應InfoCommand):對應的Command組件,不能空白。
AutoNumber組件用來配合UpdateComp組件進行自動編號的動作。自動編號的需求通常是發生於新增(Insert)的狀態下才執行。AutoNumber組件的重要屬性說明如下:
(1)UpdateComp(UpdateComp元件名稱):所對應要自動編號的UpdateComp名稱。
(2)Field(編號欄位):需要自動編號的對方欄位名稱。
(3)GetFixed(前置碼):自動編碼的前置碼,可以使用YYMMDD這種格式(YY代表年度,MM代表月份,DD代表日期),也可以設定一個程式名稱來取得動態的前置碼。
(4)NumDig(編號位數):自動編號的位數,如3代表可編001到999等號碼,會在不滿的位數上自動加「0」。
(5)StartValue(起始號碼):每個編號規則產生第一筆自動編號的值,預設為1。
(6)Step(每次遞增量):每次編號的增加量,一般為1。如設定為2,則可編出1,3,5,7等。
舉例而言,本實施例產生的後端「資料存取組件」的屬性如下表3。屬性設定可讓開發者或顧問專家輸入以調整資料存取組件的屬性內容,來達到使用者的特殊需求。
表3
Id | 員工資料表 |
CommandText | SELECT 員工編號,建檔日期,姓名,相片,英文姓名,身分證號,電郵信箱,到職日期,戶籍地址,出生年月日,性別,通訊地址,血型,聯絡電話(H),婚姻狀況,駕駛執照,緊急聯絡人,學歷FROM 員工資料表 |
CommandType | Text |
Database | |
Keys | 員工編號 |
*SecStyle | None |
*SecField | |
*SecExcept | |
*SiteField | |
*SelectPaging | V |
*Descent | |
*CacheData | |
… | … |
此外,本實施例中,後端服務程式與圖4的文件表格40的標記符號402的對應規則,如下表4。處理器110可依據表4中的規則建立後端服務程式。
表4 後端服務程式與標記符號
標記符號 | 說明 |
#K | 主鍵欄位,自動設定到Command的Keys屬性中 |
#KA | 自動編號欄位,如果有AUTO:格式時會自動產生AutoNumber組件來達到自動編號功能。如:‘S’YYMM3,代表會按年度月份編出3碼的流水號。例如2019年05月則編號為S1905001到S1905999等。 |
#M : | 在Command組件的CommandText中,會以此作為Select的資料表名稱,如沒有指定,則會以Word的檔案名稱作為資料表名稱。 |
## | 會自動產生第二階子表的Command組件與其對應的UpdateComp組件。 |
##2 | 會自動產生第二階的第2個子表Command組件與其對應的UpdateComp組件。 |
##3 | 會自動產生第二階的第3個子表Command組件與其對應的UpdateComp組件。 |
處理器110還可以依據標記符號產生與資料庫對應的前端網頁(圖3步驟S306)。其中處理器110依據資料庫的資料內容產生前端(front-end)網頁。前端網頁例如包括可操作資料庫的使用者介面,或者包括可調整圖4文件式表格中各標記符號402對應的前端組件(或控制項)的使用者介面與屬性。其中網頁為自適應式(Responsive Web Design,RWD)網頁。處理器110可透過建立的後端服務程式接收前端網頁的要求並提供相對應的資料內容,並且可以透過此前端網頁讓使用者在前端的瀏覽器(Browser)上操作資料內容。
在本發明一實施例中,處理器110可以利用後端服務程式及資料庫的資料內容,依據圖4文件式表格中各標記符號402對應的前端組件產生前端網頁,所產生的前端網頁例如可呈現資料庫中資料表的資料內容以及包括新增、查詢及印表等功能按鈕。圖5是根據本發明的一實施例所繪示的前端網頁的範例。圖5中的資料表網頁50呈現使用者瀏覽員工資料表的資料庫資料表網頁範例,該網頁包括員工資料表的資料內容以及可操作的功能按鈕。
在本實施例中,前端網頁除了包括瀏覽的網頁表單,處理器110可以依據圖4文件式表格中各標記符號402對應的前端組件來產生另一個網頁表單,此網頁表單通常使用於新增或更改資料時使用,如圖6所示。具體而言,處理器110依據圖4文件式表格中各標記符號獲取「網頁控制項定義表」中對應的控制項來獲取網頁樣式並建立網頁表單。使用者可利用建立的網頁表單進行操作(如,新增/更改/刪除/查詢)資料庫。
在本實施例中,前端網頁的標記符號表包括「網頁控制項定義表」,例如下表5。網頁控制項定義表定義了標記符號、控制項與控制項說明。在本實施例中,網頁樣式以HTML樣式描述。
表5 網頁控制項定義表(前端網頁的標記符號表)
標記符號 | 控制項 | 控制項說明 |
#K 或 #KA | 自動編號欄位 | 通常不能編輯,新增後會自動顯示號碼 |
# | 文字欄位 | 一般的文字欄位 |
#N | 數值欄位 | 一般的數值欄位,只能輸入數值 |
#D | 日期欄位 | 可以開窗打開日曆並傳回 |
#DE | 日期分隔欄位 | 可以個別用下拉框選年月日 |
#P | 上傳圖檔欄位 | 可以上傳及顯示圖檔 |
#F | 上傳各式檔案 | 上傳各式檔案所使用,並可以用來連結下載 |
#O | 選項欄位 | 可以單選某一選項 |
#C | 下拉選項欄位 | 可以用下拉選單選某一選項 |
#CK | 複選欄位 | 可以選擇多個選項 |
#R | 關聯選單欄位 | 可以開窗選擇別的資料表資料並傳回對方的編號及其他有相同名稱的欄位(會自動對應) |
#A | 備註欄位 | 可以輸入多行的文字資料 |
#S | 開關欄位 | 用來讓使用者滑動開關所用,只能有兩種狀況 |
#E | 組合欄位 | 一個欄位中有多個欄位可以輸入個別項目 |
#J | 表格欄位 | 一個欄位可以包含一陣列式的表格資料,並讓使用者自由輸入 |
#G | 設定群組關係 | 用來設定欄位的群組關係,欄位很多的時候,可將欄位分割成不同的群組以方便使用者輸入資料 |
#B | 設定頁簽關係 | 用來設定欄位的頁簽關係,欄位很多的時候,可將欄位分割成不同的頁簽以方便使用者輸入資料 |
#(註解) | 提示訊息 | 欄位輸入的提示訊息,用來提示使用者的注意事項 |
## | 明細表欄位 | 可以把主表所對應的明細表以表格方式讓使用者輸入,並另存到相對的明細表中,明細表的欄位標記符號(Tag)則與主表完全一致,例如產品編號:##KR,產品名稱: ##,數量: ##N,單位:##,單價:##N,小計:##N |
##2 或 ##3 | 明細表欄位 | 同樣是明細表欄位,但分別代表主表所對應的第2個明細表與第3個明細表。 |
圖6是根據本發明的一實施例所繪示的前端網頁表單的範例。請參照圖4及圖6,在本實施例中,處理器110會從圖4表格40中取得欄位標題401及標記符號402,對應到表5 網頁控制項定義表中的控制項並產生對應的網頁樣式及控制項。具體而言,以圖4中欄位標題401的員工編號及上表5為例。表格40中的員工編號對應的標記符號402為#K。處理器110會從表5中搜尋與標記符號為#K相同的標記符號,並以表5所定義的「自動編號欄位」控制項來產生網頁樣式及控制項。圖6的網頁表單60包括圖4欄位標題401對應到圖6欄位標題601,及依據圖4標記符號402對應到圖6渲染結果的控制項602。
在本實施例中,處理器110還可以依據前端網頁產生前端控制項的屬性設定介面,並且可以讓設計者或顧問專家來設定這些屬性,來滿足使用者額外的需求。處理器110可依據前端網頁的屬性設定渲染前端網頁。舉例而言,本實施例產生的前端控制項屬性設定介面,記錄了前端網頁控制項的屬性設定例如下表6。開發者可直接修改前端控制項屬性,此時前端網頁控制項的渲染效果就會出現不同的變化。
表6
Id | dgMaster |
RemoteName | 員工資料表.員工資料表 |
*Columns | (Collection) |
*WhereStr | |
*AutoApply | V |
*DuplicateCheck | V |
EditOnEnter | V |
*ToolItems | (Collection) |
… | … |
另一方面,本發明實施例還提供套印表格式文件的功能。具體而言,處理器110可依據圖4的表格40結合資料庫資料表中的欄位名稱(通常會以欄位標題401命名),將資料表的資料內容套印到相對應的標記符號402位置上。其中生成的表格式文件可以是Word格式之外,本實施例還可以產生pdf的文件格式。本實施例使用表格40(即,員工資料表)為套印的範例,套印圖5的資料表網頁50中員工編號001的資料如下表7。
表7
員工基本資料 | |||
員工編號 | 001 | 建檔日期 | 2018-05-17 |
*姓名 | XXX | 相片 | |
英文姓名 | |||
*身分證號 | XXXXXXXXXX | ||
電郵信箱 | xxx@xxx.com | *到職日期 | 2018-05-18 |
戶籍地址 | 出生年月日 | 民國XX年XX月XX日 | |
通訊地址 | 性別 | 男 | |
婚姻狀況 | 未婚 | 血型 | |
緊急聯絡人 | 連絡電話(H) | XXXXXXXX | |
學歷 | 駕駛執照 |
在另一實施例中,由於表格式文件可能是銷貨單或報價單等需要計算數值功能的文件,因此本發明的前端網頁的欄位屬性另包括了欄位公式的計算定義。處理器110可依據表格式文件包括的標記符號檢查並獲取標記符號表中欄位公式的計算定義,並且依據計算定義自動產生與欄位公式相互綁定的控制項與網頁樣式。舉例而言,使用者可以使用標記符號 # 或 ## 在表格40中定義前端計算公式。例如:「#[欄位名稱]=計算公式」或「##[欄位名稱]=計算公式」。前述的「#」代表主表欄位,「##」代表明細表欄位。其中計算公式可以使用「+」、「-」、「*」、「/」代表四則運算,或使用固定的常數,也可以使用「()」來代表優先次序。並且,計算公式中還可以「 [欄位].Total」來代表取得對應欄位的加總值。接著,處理器110依照圖3步驟S306的內容建立前端網頁,在此不再贅述。
舉例而言,假設本實施例的銷貨單包括銷貨單主表與銷貨單明細,並且銷貨單明細的表格包括以下標記設定符號:
#[合計未稅]=[小計].Total
#[稅額]=[合計未稅]*0.05
#[總計含稅]=[合計未稅]+[稅額]
##[小計]=[數量]*[單價]
處理器110可依照圖3步驟S306的內容建立銷貨單明細前端網頁。當使用者在銷貨單明細的前端網頁中輸入「數量」與「單價」時,處理器110會自動計算「小計」。當使用者輸入多筆銷貨單明細時,處理器110會自動加總「小計」,並自動反映給「合計未稅」。並且,當「合計未稅」有改變時,處理器110會自動計算出「稅額」與「總計含稅」。
綜上所述,本發明實施例的文件式智能程式產生方法及其電子裝置,其可透過表格式文件中的標記符號,將表格式文件自動化轉換為資料庫表結構、後端服務程式及前端網頁,以取代傳統的系統設計與程式開發工作。在使用者變更需求並調整表格式文件的內容時,只需要重新上傳調整後的表格式文件,即可更方便、更快速的更改資料庫表結構、後端服務程式及前端網頁。藉此,可節省開發者開發程式的時間及開發成本,並提升開發程式的生產力。
100:電子裝置
110:處理器
120:儲存裝置
20:表格式文件
21:資料庫表結構
22:後端服務程式
23:前端網頁
S302~S306:步驟
40:表格
401,601:欄位標題
402:標記符號
50:資料表網頁
60:網頁表單
602:控制項
圖1是根據本發明的一實施例所繪示的電子裝置的方塊圖。
圖2是根據本發明的一實施例所繪示的文件式智能產生程式的示意圖。
圖3是根據本發明的一實施例所繪示的文件式智能程式產生方法的流程圖。
圖4是根據本發明的一實施例所繪示的表格式文件的範例。
圖5是根據本發明的一實施例所繪示的前端網頁的範例。
圖6是根據本發明的一實施例所繪示的前端網頁表單的範例。
S302~S306:步驟
Claims (6)
- 一種文件式智能程式產生方法,適用於具有處理器的電子裝置,該方法包括下列步驟:依據一表格式文件獲取資料表屬性,其中該表格式文件中定義多個標記符號,其中該表格式文件是已經與使用者確認的電子文件;依據該些標記符號建立資料庫表結構及可存取資料庫的後端服務程式;以及依據該些標記符號產生與該資料庫對應的前端網頁,其中該前端網頁為自適應式網頁,其中依據該些標記符號來產生與該資料庫對應的該前端網頁的步驟包括:利用該後端服務程式及該資料庫的資料內容,依據該些標記符號對應的前端組件產生該前端網頁,其中依據該資料庫的該資料內容產生該前端網頁的步驟包括:依據該些標記符號對應的該前端組件產生網頁表單。
- 如申請專利範圍第1項所述的文件式智能程式產生方法,其中依據該表格式文件獲取該資料表屬性的步驟包括:依據該表格式文件包括的該些標記符號檢查並獲取標記符號表中對應該資料庫的表結構屬性。
- 如申請專利範圍第2項所述的文件式智能程式產生方法,其中依據該些標記符號建立該資料庫表結構及可存取該資料庫的該後端服務程式的步驟包括: 依據該些標記符號對應到該資料庫的該表結構屬性利用結構化查詢語言建立或修改該資料庫表結構。
- 如申請專利範圍第1項所述的文件式智能程式產生方法,其中依據該些標記符號建立該資料庫表結構及可存取該資料庫的該後端服務程式的步驟包括:依據該些標記符號產生資料存取組件。
- 如申請專利範圍第1項所述的文件式智能程式產生方法,其中該方法更包括:依據該表格式文件包括的該些標記符號檢查並獲取標記符號表中該前端網頁的欄位屬性,其中該欄位屬性包括欄位公式的計算定義;以及依據該計算定義自動產生與該欄位公式相互綁定的該前端網頁的控制項與網頁樣式。
- 一種電子裝置,包括:儲存裝置,儲存一或多個指令;以及處理器,耦接該儲存裝置,經配置以執行該些指令以:依據一表格式文件獲取資料表屬性,其中該表格式文件中定義多個標記符號,其中該表格式文件是已經與使用者確認的電子文件;依據該些標記符號建立資料庫表結構及可存取資料庫的後端服務程式;以及 依據該些標記符號產生與該資料庫對應的前端網頁,其中該前端網頁為自適應式網頁,其中依據該些標記符號來產生與該資料庫對應的該前端網頁的步驟包括:利用該後端服務程式及該資料庫的資料內容,依據該些標記符號對應的前端組件產生該前端網頁,其中依據該資料庫的該資料內容產生該前端網頁的步驟包括:依據該些標記符號對應的該前端組件產生網頁表單。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
TW109101332A TWI796545B (zh) | 2020-01-15 | 2020-01-15 | 文件式智能程式產生方法及其電子裝置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
TW109101332A TWI796545B (zh) | 2020-01-15 | 2020-01-15 | 文件式智能程式產生方法及其電子裝置 |
Publications (2)
Publication Number | Publication Date |
---|---|
TW202129514A TW202129514A (zh) | 2021-08-01 |
TWI796545B true TWI796545B (zh) | 2023-03-21 |
Family
ID=78282744
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW109101332A TWI796545B (zh) | 2020-01-15 | 2020-01-15 | 文件式智能程式產生方法及其電子裝置 |
Country Status (1)
Country | Link |
---|---|
TW (1) | TWI796545B (zh) |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104285209A (zh) * | 2011-12-29 | 2015-01-14 | 比博实验室公司 | 适用于报告生成的基于电子表格的编程语言 |
CN105190533A (zh) * | 2013-03-15 | 2015-12-23 | 亚马逊科技公司 | 原位快照 |
TWI629602B (zh) * | 2013-12-31 | 2018-07-11 | 正修學校財團法人正修科技大學 | 互動式網頁程式自動產生方法 |
TWI682291B (zh) * | 2018-05-23 | 2020-01-11 | 中華電信股份有限公司 | 網頁之動態生成方法、網頁生成裝置及電腦程式產品 |
-
2020
- 2020-01-15 TW TW109101332A patent/TWI796545B/zh active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104285209A (zh) * | 2011-12-29 | 2015-01-14 | 比博实验室公司 | 适用于报告生成的基于电子表格的编程语言 |
CN105190533A (zh) * | 2013-03-15 | 2015-12-23 | 亚马逊科技公司 | 原位快照 |
TWI629602B (zh) * | 2013-12-31 | 2018-07-11 | 正修學校財團法人正修科技大學 | 互動式網頁程式自動產生方法 |
TWI682291B (zh) * | 2018-05-23 | 2020-01-11 | 中華電信股份有限公司 | 網頁之動態生成方法、網頁生成裝置及電腦程式產品 |
Also Published As
Publication number | Publication date |
---|---|
TW202129514A (zh) | 2021-08-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20200150938A1 (en) | Spreadsheet-Based Software Application Development | |
KR101331532B1 (ko) | 데이터베이스로부터 xml 문서를 동적으로 생성하는 방법 | |
JP3074737B2 (ja) | ファイル更新処理装置 | |
US7613688B2 (en) | Generating business warehouse reports | |
US6594672B1 (en) | Generating multidimensional output using meta-models and meta-outlines | |
US20060190275A1 (en) | Intellectual property management system | |
US8635251B1 (en) | Search and computing engine | |
KR20010110671A (ko) | 다양한 프레젠테이션을 위한 구조화된 문서 생성 방법 및장치 | |
CN116097241A (zh) | 使用语义角色的数据准备 | |
US11049161B2 (en) | Brand-based product management with branding analysis | |
CN103092917A (zh) | 一种自定义标签实现浏览器页面业务字典的查询方法 | |
US7600186B2 (en) | Generating a synonym dictionary representing a mapping of elements in different data models | |
Jennings | Professional ADO. NET 3.5 with LINQ and the Entity Framework | |
Kumar et al. | Exposing MARC 21 format for bibliographic data as linked data with provenance | |
EP1383055A2 (en) | Map and data location provider | |
TWI796545B (zh) | 文件式智能程式產生方法及其電子裝置 | |
JP3987018B2 (ja) | 統合業務ソフトウェアの導入運用支援システム | |
GB2458692A (en) | A process for generating database-backed, web-based documents | |
Sweetland | Humanists, libraries, electronic publishing, and the future | |
Bernauer et al. | Self-maintaining web pages: from theory to practice | |
EP1304630A2 (en) | Report generating system | |
JP7319475B1 (ja) | メタデータ管理システム、メタデータ管理方法、プログラム | |
Barbero et al. | The Database of the EMoBookTrade Project: a Proposal to Encode Early Modern Book Prices and Privileges | |
JPH11249775A (ja) | 帳票生成システム | |
Lypak et al. | Linguistic support for the formation of a consolidated information resource of social memory institutions |