INFORMIX -4GL 教程 的 入门 教材 数据库1-12
合集下载
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
file:///E|/erpdown/20100809(鼎捷)/易拓/Genero/NFORMIX-4GL的入门教材/1-12.htm[2010/8/10 19:38:53]
访问www.获erp取d免ow费nE.RcoPm文档及软件!
INFORMIX-4GL教程 COLUMN 38, r_b + s_b USING "###,###", COLUMN 46, r_m + s_m USING "###,###", COLUMN 54, r_s + s_s USING "###,###" PRINT COLUMN 05,"======================================"
FOREACH p_curs INTO p_person.* ... END FOREACH
12-4 執行報表
<語法格式> START REPORT report_name begin loop OUTPUT TO REPORT report_name(variable_list) end loop FINISH REPORT report_name
END REPORT
若使用 ORDER BY 則所欲排列的變數必須出現在 REPORT 的argument_list中。
12-3 報表資料之選擇
欲得到報表中所須之資料,必須使用 SELECT 敘述配合 cursor 和程式迴圈來選取報表中所須之資料。 §例:
DEFINE query_1 CHAR(500) DEFINE query_stat CHAR(500)
§例: DEFINE prt_file CHAR(14) LET prt_file = "??????.report"
STARTACH p_curs INTO p_person.* ... OUTPUT TO REPORT report_name(p_person.*) IF INT_FLAG THEN ERROR " 列表中斷 !!!" LET INT_FLAG = FALSE EXIT FOREACH END IF END FOREACH
§例: PAGE HEADER PRINT COLUMN 2, "科目別:",r_person.proj_name CLIPPED PRINT COLUMN 10, r_person.dept_name CLIPPED, COLUMN 30, r_persson.emp_name CLIPPED, COLUMN 50, r_persson.stuff_num PRINT COLUMN 02, "製表日期:",YEAR(TODAY)-1911 USING "##", "/",MONTH(TODAY) USING "&#","/", DAY(TODAY) USING "&#","<???????.4gl>", COLUMN 70, PAGENO USING "第###&頁" SKIP 5 LINE
§例: DECLARE p_curs CURSOR FOR ... START REPORT report_name TO prt_file FOREACH p_curs INTO p_person.* ... OUTPUT TO REPORT report_name(p_person.*) IF INT_FLAG THEN ERROR " 列表中斷 !!!" LET INT_FLAG = FALSE EXIT FOREACH END IF END FOREACH FINISH REPORT report_name IF INT_FLAG THEN RETURN END IF
INFORMIX-4GL教程
INFORMIX-4GL教程
您的位置:首页>>INFORMIX-4GL教程>>第十二章 报表设计
12-1 報表的架構
第十二章 报表设计
首先建立一個不可捲動的 cursor.再利用迴圈連接 start report、 output to report、和 finish report 敘述輸出資料至報表。
FINISH REPORT report_name IF INT_FLAG THEN RETURN END IF
REPORT report_name(r_person) ... END REPORT
12-2 REPORT 敘述
<語法格式> REPORT report_name(argument_list) DEFINE
file:///E|/erpdown/20100809(鼎捷)/易拓/Genero/NFORMIX-4GL的入门教材/1-12.htm[2010/8/10 19:38:53]
访问www.获erp取d免ow费nE.RcoPm文档及软件!
INFORMIX-4GL教程
REPORT report_name(r_person) ... END REPORT
FORMAT EVERY ROW END REPORT 結果: r_person.emp_name 曾令昌 r_person.idno A123456789 r_person.unit_name 電算中心系統組
.以 start report 來執行所要的報表程式,且須在傳送資料至報表的執行迴圈之 前。 .output report to 中的 variable_list 必須和 reort 中 argument_list的變數個數和資料型態必須相等。 .當程式迴圈完成傳送資料至報表後,最後必須加上 finish report 做為結束。
12-5 報表的格式化設計
在 format 區間設計的報表可以使用達到7種型式的控制區段,這7種型式可以任意的組合次序出現。
12-5-1 報表頁的表頭和表尾
.FIRST PAGE HEADER:若要在報表第一頁顯示表頭或不同文字內容時。 .PAGE HEADER:若要在報表每一頁的頂端顯示表頭或特定文字內容時。 .PAGE TRAILER:若要在報表每一頁的尾端顯示特定文字內容時。
file:///E|/erpdown/20100809(鼎捷)/易拓/Genero/NFORMIX-4GL的入门教材/1-12.htm[2010/8/10 19:38:53]
访问www.获erp取d免ow费nE.RcoPm文档及软件!
INFORMIX-4GL教程
[OUTPUT] [PAGE LENGTH integer] default 66 行 [TOP MARGIN integer] default 上面留 3 行 [BOTTOM MARGIN integer] default 上面留 3 行 [LEFT MARGIN integer] default 左邊邊緣留 5 格空白 [ORDER BY sort_list|ORDER EXTERNAL BY sort_list] FORMAT [FIRST PAGE HEADER ...] [PAGE HEADER ...] [PAGE TRAILER ...] [ON EVERY ROW ...] [ON LAST ROW ...] [BEFORE GROUP OF...] [AFTER GROUP OF...]
LET query_stat = " SELECT idno, dept_ty, pos_ty, ", " emp_name, paypnt, rank_name,", ... " FROM ssaltab WHERE ", query_1 CLIPPED, " AND work_ty = ""1""", " ORDER BY dept_ty,pos_ty" "[ORDER BY 2,3]"
§例: PAGE TRAILER PRINT COLUMN 05,"======================================" PRINT COLUMN 05,"** 本頁小計 ** ", COLUMN 39, r_b USING "##,###", COLUMN 47, r_m USING "##,###", COLUMN 55, r_s USING "##,###", COLUMN 39+off_set, s_b USING "##,###", COLUMN 47+off_set, s_m USING "##,###", COLUMN 55+off_set, s_s USING "##,###" SKIP 1 LINE PRINT COLUMN 05,"** 本頁累計 ** ",
12-5-2 列印每一列資料值
<語法格式一> [EVERY ROW] 若使用 every row 敘述時,系統會以內定格式將形式參數欄位印出
§例: REPORT report_name(r_person)
DEFINE r_person RECORD emp_name LIKE ssaltab.emp_name, idno LIKE ssaltab.idno, unit_name LIKE ssaltab.unit_name END RECORD
file:///E|/erpdown/20100809(鼎捷)/易拓/Genero/NFORMIX-4GL的入门教材/1-12.htm[2010/8/10 19:38:53]
访问www.获erp取d免ow费nE.RcoPm文档及软件!
INFORMIX-4GL教程
PREPARE excutable_stam FROM query_stat DECLARE p_curs CURSOR FOR excutable_stam ...
CONSTRUCT BY NAME query_1 ON ssaltab.work_ty, ssaltab.disins_ty, ssaltab.dept_ty, ssaltab.unit_ty, ssaltab.pos_ty, ssaltab.seq_num
访问www.获erp取d免ow费nE.RcoPm文档及软件!
INFORMIX-4GL教程 COLUMN 38, r_b + s_b USING "###,###", COLUMN 46, r_m + s_m USING "###,###", COLUMN 54, r_s + s_s USING "###,###" PRINT COLUMN 05,"======================================"
FOREACH p_curs INTO p_person.* ... END FOREACH
12-4 執行報表
<語法格式> START REPORT report_name begin loop OUTPUT TO REPORT report_name(variable_list) end loop FINISH REPORT report_name
END REPORT
若使用 ORDER BY 則所欲排列的變數必須出現在 REPORT 的argument_list中。
12-3 報表資料之選擇
欲得到報表中所須之資料,必須使用 SELECT 敘述配合 cursor 和程式迴圈來選取報表中所須之資料。 §例:
DEFINE query_1 CHAR(500) DEFINE query_stat CHAR(500)
§例: DEFINE prt_file CHAR(14) LET prt_file = "??????.report"
STARTACH p_curs INTO p_person.* ... OUTPUT TO REPORT report_name(p_person.*) IF INT_FLAG THEN ERROR " 列表中斷 !!!" LET INT_FLAG = FALSE EXIT FOREACH END IF END FOREACH
§例: PAGE HEADER PRINT COLUMN 2, "科目別:",r_person.proj_name CLIPPED PRINT COLUMN 10, r_person.dept_name CLIPPED, COLUMN 30, r_persson.emp_name CLIPPED, COLUMN 50, r_persson.stuff_num PRINT COLUMN 02, "製表日期:",YEAR(TODAY)-1911 USING "##", "/",MONTH(TODAY) USING "&#","/", DAY(TODAY) USING "&#","<???????.4gl>", COLUMN 70, PAGENO USING "第###&頁" SKIP 5 LINE
§例: DECLARE p_curs CURSOR FOR ... START REPORT report_name TO prt_file FOREACH p_curs INTO p_person.* ... OUTPUT TO REPORT report_name(p_person.*) IF INT_FLAG THEN ERROR " 列表中斷 !!!" LET INT_FLAG = FALSE EXIT FOREACH END IF END FOREACH FINISH REPORT report_name IF INT_FLAG THEN RETURN END IF
INFORMIX-4GL教程
INFORMIX-4GL教程
您的位置:首页>>INFORMIX-4GL教程>>第十二章 报表设计
12-1 報表的架構
第十二章 报表设计
首先建立一個不可捲動的 cursor.再利用迴圈連接 start report、 output to report、和 finish report 敘述輸出資料至報表。
FINISH REPORT report_name IF INT_FLAG THEN RETURN END IF
REPORT report_name(r_person) ... END REPORT
12-2 REPORT 敘述
<語法格式> REPORT report_name(argument_list) DEFINE
file:///E|/erpdown/20100809(鼎捷)/易拓/Genero/NFORMIX-4GL的入门教材/1-12.htm[2010/8/10 19:38:53]
访问www.获erp取d免ow费nE.RcoPm文档及软件!
INFORMIX-4GL教程
REPORT report_name(r_person) ... END REPORT
FORMAT EVERY ROW END REPORT 結果: r_person.emp_name 曾令昌 r_person.idno A123456789 r_person.unit_name 電算中心系統組
.以 start report 來執行所要的報表程式,且須在傳送資料至報表的執行迴圈之 前。 .output report to 中的 variable_list 必須和 reort 中 argument_list的變數個數和資料型態必須相等。 .當程式迴圈完成傳送資料至報表後,最後必須加上 finish report 做為結束。
12-5 報表的格式化設計
在 format 區間設計的報表可以使用達到7種型式的控制區段,這7種型式可以任意的組合次序出現。
12-5-1 報表頁的表頭和表尾
.FIRST PAGE HEADER:若要在報表第一頁顯示表頭或不同文字內容時。 .PAGE HEADER:若要在報表每一頁的頂端顯示表頭或特定文字內容時。 .PAGE TRAILER:若要在報表每一頁的尾端顯示特定文字內容時。
file:///E|/erpdown/20100809(鼎捷)/易拓/Genero/NFORMIX-4GL的入门教材/1-12.htm[2010/8/10 19:38:53]
访问www.获erp取d免ow费nE.RcoPm文档及软件!
INFORMIX-4GL教程
[OUTPUT] [PAGE LENGTH integer] default 66 行 [TOP MARGIN integer] default 上面留 3 行 [BOTTOM MARGIN integer] default 上面留 3 行 [LEFT MARGIN integer] default 左邊邊緣留 5 格空白 [ORDER BY sort_list|ORDER EXTERNAL BY sort_list] FORMAT [FIRST PAGE HEADER ...] [PAGE HEADER ...] [PAGE TRAILER ...] [ON EVERY ROW ...] [ON LAST ROW ...] [BEFORE GROUP OF...] [AFTER GROUP OF...]
LET query_stat = " SELECT idno, dept_ty, pos_ty, ", " emp_name, paypnt, rank_name,", ... " FROM ssaltab WHERE ", query_1 CLIPPED, " AND work_ty = ""1""", " ORDER BY dept_ty,pos_ty" "[ORDER BY 2,3]"
§例: PAGE TRAILER PRINT COLUMN 05,"======================================" PRINT COLUMN 05,"** 本頁小計 ** ", COLUMN 39, r_b USING "##,###", COLUMN 47, r_m USING "##,###", COLUMN 55, r_s USING "##,###", COLUMN 39+off_set, s_b USING "##,###", COLUMN 47+off_set, s_m USING "##,###", COLUMN 55+off_set, s_s USING "##,###" SKIP 1 LINE PRINT COLUMN 05,"** 本頁累計 ** ",
12-5-2 列印每一列資料值
<語法格式一> [EVERY ROW] 若使用 every row 敘述時,系統會以內定格式將形式參數欄位印出
§例: REPORT report_name(r_person)
DEFINE r_person RECORD emp_name LIKE ssaltab.emp_name, idno LIKE ssaltab.idno, unit_name LIKE ssaltab.unit_name END RECORD
file:///E|/erpdown/20100809(鼎捷)/易拓/Genero/NFORMIX-4GL的入门教材/1-12.htm[2010/8/10 19:38:53]
访问www.获erp取d免ow费nE.RcoPm文档及软件!
INFORMIX-4GL教程
PREPARE excutable_stam FROM query_stat DECLARE p_curs CURSOR FOR excutable_stam ...
CONSTRUCT BY NAME query_1 ON ssaltab.work_ty, ssaltab.disins_ty, ssaltab.dept_ty, ssaltab.unit_ty, ssaltab.pos_ty, ssaltab.seq_num