使用OracleDeveloper做系統
今天從莫兄關於SLK的文章中得到啟發
問題是
點擊此處下載armok
我編譯了一個
點擊此處下載armok
PACKAGE Fmp_SlkReport IS
-------------------------------------
--設置創建SLK文件--------------------
-------------------------------------
Procedure SP_CreateSlkFile
(P_SlkFile In Out Text_Io.File_Type --SLK文件對象
,P_FileName In VarChar2 --要創建的文件名
);
-------------------------------------
--設置關閉SLK文件--------------------
-------------------------------------
Procedure SP_CloseSlkFile
(P_SlkFile In Out Text_Io.File_Type --SLK文件對象
);
-------------------------------------
--設置單元格的值---------------------
-------------------------------------
Procedure SP_TransValue
(
P_SlkFile In Text_Io.File_Type
,P_Row In Number --傳入行值
,P_Col In Number --傳入列值
,P_Value In Number); --傳入要設定的值,數值型
Procedure SP_TransValue
(
P_SlkFile In Text_Io.File_Type
,P_Row In Number --傳入行值
,P_Col In Number --傳入列值
,P_Value In Varchar2); --傳入要設定的值,字符型
Procedure SP_TransValue
(
P_SlkFile In Text_Io.File_Type
,P_Row In Number --傳入行值
,P_Col In Number --傳入列值
,P_Value In Date --傳入要設定的值,日期型
,P_DataFormat In VarChar2:='yyyy.mm.dd'--要轉換為日期的格式
);
-------------------------------------
--設置邊框線,只能是單實線邊框-------
-------------------------------------
Procedure SP_SetBorder
(
P_SlkFile In Text_Io.File_Type
,P_StartRow In Number --傳入行值
,P_StartCol In Number --傳入起始列
,P_EndRow In Number --傳入終止行
,P_EndCol In Number --傳入終止列
);
-------------------------------------
--設置行高---------------------------
-------------------------------------
Procedure SP_SetRowHeight
(
P_SlkFile In Text_Io.File_Type
,P_StartRow In Number --傳入行值
,P_EndRow In Number --傳入起始列
,P_RowHeight In Number --要設定的高度
);
-------------------------------------
--設置列寬---------------------------
-------------------------------------
Procedure SP_SetColWidth
(
P_SlkFile In Text_Io.File_Type
,P_StartCol In Number --傳入行值
,P_EndCol In Number --傳入起始列
,P_ColWidth In Number --要設定的列寬
);
-------------------------------------
--設置水平居中---------------------------
-------------------------------------
Procedure SP_SetVerticalAlign
(
P_SlkFile In Text_Io.File_Type
,P_StartRow In Number --傳入行值
,P_StartCol In Number --傳入起始列
,P_EndRow In Number --傳入終止行
,P_EndCol In Number --傳入終止列
,P_Type In Number --居中方式
);
-------------------------------------
--設置垂直居中---------------------------
-------------------------------------
Procedure SP_SetHorizontalAlign
(
P_SlkFile In Text_Io.File_Type
,P_StartRow In Number --傳入行值
,P_StartCol In Number --傳入起始列
,P_EndRow In Number --傳入終止行
,P_EndCol In Number --傳入終止列
,P_Type In Number --居中方式
);
-------------------------------------
--設置字體---------------------------
-------------------------------------
Procedure SP_SetFontstype
(
P_SlkFile In Text_Io.File_Type
,P_StartRow In Number --傳入行值
,P_StartCol In Number --傳入起始列
,P_EndRow In Number --傳入終止行
,P_EndCol In Number --傳入終止列
,P_FontType In Varchar2:='A12' --字體名稱,值表如下:A8:宋體8;A10:宋體10;A12:宋體12;A16:宋體16;A24:宋體24;B12:宋體加黑12;B16:宋體加黑16;B24:宋體加黑24;
);
END Fmp_SlkReport;
PACKAGE Body Fmp_SlkReport IS
-------------------------------------
--設置創建SLK文件--------------------
-------------------------------------
Procedure SP_CreateSlkFile
(P_SlkFile In Out Text_Io.File_Type --SLK文件對象
,P_FileName In VarChar2 --要創建的文件名
)
Is
Begin
--創建並打開文件
P_SlkFile := Text_IO.Fopen(P_FileName, 'W');
--寫入SLK文件頭的相關字符
Text_IO.PUTF(P_SlkFile, 'ID;PWXL;N;E'|| Chr(10));
Text_IO.PUTF(P_SlkFile, 'P;PGeneral'|| Chr(10));
Text_IO.PUTF(P_SlkFile, 'P;P0'|| Chr(10));
Text_IO.PUTF(P_SlkFile, 'P;P0.00'|| Chr(10));
Text_IO.PUTF(P_SlkFile, 'P;P#,##0'|| Chr(10));
Text_IO.PUTF(P_SlkFile, 'P;P#,##0.00'|| Chr(10));
Text_IO.PUTF(P_SlkFile, 'P;P#,##0;;\-#,##0'|| Chr(10));
Text_IO.PUTF(P_SlkFile, 'P;P#,##0;;[Red]\-#,##0'|| Chr(10));
Text_IO.PUTF(P_SlkFile, 'P;P#,##0.00;;\-#,##0.00'|| Chr(10));
Text_IO.PUTF(P_SlkFile, 'P;P#,##0.00;;[Red]\-#,##0.00'|| Chr(10));
Text_IO.PUTF(P_SlkFile, 'P;P"$"#,##0;;"$"\-#,##0'|| Chr(10));
Text_IO.PUTF(P_SlkFile, 'P;P"$"#,##0;;[Red]"$"\-#,##0'|| Chr(10));
Text_IO.PUTF(P_SlkFile, 'P;P"$"#,##0.00;;"$"\-#,##0.00'|| Chr(10));
Text_IO.PUTF(P_SlkFile, 'P;P"$"#,##0.00;;[Red]"$"\-#,##0.00'|| Chr(10));
Text_IO.PUTF(P_SlkFile, 'P;P0%'|| Chr(10));
Text_IO.PUTF(P_SlkFile, 'P;P0.00%'|| Chr(10));
Text_IO.PUTF(P_SlkFile, 'P;P0.00E+00'|| Chr(10));
Text_IO.PUTF(P_SlkFile, 'P;P##0.0E+0'|| Chr(10));
Text_IO.PUTF(P_SlkFile, 'P;P#\ ?/?'|| Chr(10));
Text_IO.PUTF(P_SlkFile, 'P;P#\ ??/??'|| Chr(10));
Text_IO.PUTF(P_SlkFile, 'P;Pyyyy/m/d'|| Chr(10));
Text_IO.PUTF(P_SlkFile, 'P;Pd/mmm/yy'|| Chr(10));
Text_IO.PUTF(P_SlkFile, 'P;Pd/mmm'|| Chr(10));
Text_IO.PUTF(P_SlkFile, 'P;Pmmm/yy'|| Chr(10));
Text_IO.PUTF(P_SlkFile, 'P;Ph:mm\ AM/PM'|| Chr(10));
Text_IO.PUTF(P_SlkFile, 'P;Ph:mm:ss\ AM/PM'|| Chr(10));
Text_IO.PUTF(P_SlkFile, 'P;Ph:mm'|| Chr(10));
Text_IO.PUTF(P_SlkFile, 'P;Ph:mm:ss'|| Chr(10));
Text_IO.PUTF(P_SlkFile, 'P;Pyyyy/m/d\ h:mm'|| Chr(10));
Text_IO.PUTF(P_SlkFile, 'P;Pmm:ss'|| Chr(10));
Text_IO.PUTF(P_SlkFile, 'P;Pmm:ss.0'|| Chr(10));
Text_IO.PUTF(P_SlkFile, 'P;P@'|| Chr(10));
Text_IO.PUTF(P_SlkFile, 'P;P[h]:mm:ss'|| Chr(10));
Text_IO.
From:http://tw.wingwit.com/Article/program/Oracle/201311/18862.html