報表編程
Ⅰ 在Java編程語言里報表(excel和pdf)是怎麼實現的
excel報表的導入導出要用poi.jar這個包,pdf報表你可以用ireport做,具體怎麼做也不是一兩句話講得清的,你可以網上查查資料自己跟著做做看,一點都不難的...
Ⅱ delphi 報表
Grid++Report 報表組件具有如下特點:
1、適用范圍廣:VB.NET、C#、VB、VC、Delphi、C++Builder、VFP、易語言等一切支持 COM 的開發工具。
2、功能強大:實現普通格式報表、表格報表、多層表頭、票據套打、交叉表等各種報表非常簡便;報表完全可編程定義,非常適合開發通用軟體中的動態報表。
3、獨有的報表查詢顯示功能:除了提供報表的列印、列印預覽、數據導出等功能,還提供獨有的報表查詢顯示功能,既提供報表查詢與輸出的集成一次性實現,又能保證數據的一致性與完整性。
4、特有的分組單元格合並功能,輕松實現常見的中國式報表分組在列中展現並垂直居中。
5、提供圖表功能,在報表中直接實現圖表功能。包括:餅圖、疊加餅圖、柱狀圖,連線圖、散列點圖等。
6、報表數據導出格式豐富,格式包括:Excel、PDF、圖像、HTML、文本,CSV 等。
7、提供腳本編程功能,直接在報表模板中自定義報錶行為,採用通用的 VBScript 與 JScript 腳本引擎。
8、支持參數化報表查詢sql語句,輕松實現動態過濾條件篩選報表數據。
9、報表查詢顯示時提供報表內容文字查找功能。
10、全中文界面,針對中國報表進行了很多專門實現,如:報表表格線、財務金額線、大寫金額、發票列印圓圈中畫叉圖標、負數紅字顯示、多層表頭等。很多在國外報表控制項中很難實現的功能在本報表控制項中可以輕易實現。
11、組件提供豐富交互事件,輕松實現報表穿透(透視)查詢和報表交互。
12、重新發布簡單:只需分發兩個 DLL 文件。
13、易學易用:完全可視化設計,完善的復制/剪切/粘貼(Copy/Cut/Paste)和恢復重做(Undo/Redo)功能,專業的拖放操作與即時編輯功能。
14、編寫了完整詳盡的幫助文檔。提供了豐富常式,包括VB.NET、C#、VB、VC、Delphi、C++Builder、VFP、中文編程易語言。
15、為 Delphi、C++Builder 編寫專門的包裝類,象使用 VCL 控制項一樣使用 Grid++Report。
16、支持所有常規條形碼,列印條形碼精度高易讀取。
不過好像是商業控制項。
在Delphi盒子上有下載,
要先登錄才可以下載
Ⅲ 用Delphi實現自己的Excel報表
Excel是大家都比較熟悉的表格處理軟體 用它來做自由報表載體其好處有1 從用戶角度
載體本身具有腳本支持 公式編輯 模板支持 格式 版式設計等諸多功能 而這些功能對於大部分用戶是比較熟悉的 省去了用戶培訓環節 多數辦公用電腦都裝有Office軟體 所以 其輸出的報表可以被任何裝有Office軟體的計算機瀏覽
2 從開發者角度
可以通過OLE訪問 提供了大量的編程介面 幾乎所有的操作都可以用程序來控制 利用宏 VBA等技術可以很輕松地編寫報表設計模塊
整體思路
程序通過OLE獲取Excel的Sheet對象 遍歷每個單元格 將模板中的元素以變數 表格等替換 就生成了最終報表 其中元素種類可分為變數元素 數據集元素 數據欄位元素和其它標志元素 它們都是處於單元格內的包含特殊格式的字元串 格式可以自由定義 但要保證此格式不會與正文相沖突
如
#ValueAA# (變數名兩邊加入#號 當遍歷到其所在的單元格時在程序中對單元格進行相應處理)
報表功能實現
首先新建Excel模板 如下圖 模板保存為template xlt
現在模板有了 現在需要實現的功能就是分析此模板 將模板中的元素替換為程序中將要輸出的變數或數據表
下面我們來設計一個簡單的模板分析類(TXlTemplateAnalyzer)
1 公有方法generateReport //套用模板生成最終報表
registerDataSet //在DataSet列表中新增數據集
registerParam //在Param列表中新增變數
removeDataSet //在DataSet列表中刪除數據集
removeParam //在Param列表中刪除變數 SetSheetObject //設置模板的Sheet對象
2 私有成員變數
FBoundLeft FBoundRight //保存左右列邊界FDataSetList //用於維護數據集列表的私有成員
FParamList //用於維護變數列表的的私有成員
FExcelSheetObject // *** 作模板的Sheet對象 FCurrentRow //當前處理的行號
FCurrentCol //當前處理的列號
3 私有工具方法
ProcessDataSetElement //處理數據集元素
getTemplateBoundary //獲取邊界索引號
parsorFieldNameFromElement //從模板元素中提取欄位名
FindParam //從FParamList中查找特定Name的變數
FindDataSet //從DataSetList中查找特定Name的DataSet
IsTamplateElement //判斷是否為元素
IsDataSetFieldElement //是否為數據欄位元素
IsDataSetBeginElement //是否為DataSet起始元素
IsControlTag //是否為控制元素
IsParamElement //是否為變數元素
4 事件
OnParamElement
OnDataSetOperationElement
OnControlElement
OnDataSetFieldElement
OnElement
寫到這里大家可能已經知道我的用意了 其實這么多類成員中 但其核心就在於generateReport和ProcessDataSetElement這兩個方法
(以下代碼只是描述性的腳本代碼 在Delphi中不能編譯)
generateReport:
循環遍歷單元格
FCurrentRow := iRow;
FCurrentCol := iCol;//保存當前正在處理的行列索引號
CellObj := FExcelSheetObject Cells[iRow iCol];//取當前單元格對象
CellValue := CellValue Value; //取單元格內容
if IsTamplateElement(CellValue) //判斷是否為模板元素
begin
if IsDataSetBeginElement(CellValue) then //判斷是否為數據集開始元素
begin
ProcessDataSetElement (CellValue); //處理數據集元素
end;
if IsParamElement then(CellValue) then //判斷是否為變數元素
CellObj Value := FindParam(CellValue); //查找變數值 填到當前單元格中
if IsControlTag(CellValue) then
…………………
end;
遍歷循環結束
執行到這里 報表生成完畢
ProcessDataSetElement
ADataSet := FindDataSet(CellValue);
for j:= to ADataSet RecordCount do
begin
FExcelSheetObject Rows[FCurrentRow + j] Delete;//將當前行刪除(也就是#Table Begin()#所在的行)
FExcelSheetObject Rows[FCurrentRow + j] Insert;//新增行
FExcelSheetObject Rows[FCurrentRow + j] Copy(FExcelSheetObject Rows[FCurrentRow + ]);
for i:= FBoundLeft to FBoundLeft do
begin
fieldCellStr := FExcelSheetObject Rows[FCurrentRow + j] Cell[i] Value; //獲取數據欄位元素
fieldname := parsorFieldNameFromElement(fieldCellStr); //從元素中解析欄位名
FExcelSheetObject Rows[FCurrentRow + j] Cell[i] := ADataSet FieldByName(fieldname) Value; //將//相應欄位的值賦入單元格
end;
ADataSet Next;
end
FCurrentRow := FCurrentRow + j;
到這里 這個模板分析類的核心功能基本完成了 我想如果這個類的實現代碼全部完成後 應該把這個類做成一個Component 並注冊到Delphi的IDE中 以便以後使用 在上面提到的類的事件 是用來實時通知客戶當前正在處理哪個Element和Cell 客戶可以在此事件中做更進一步的特殊處理(例如將上述模板中產值小於完成計劃數的單元格置為紅色等等) 非常靈活 但是出於代碼整潔 在這里我沒有加到代碼中 另外在程序中還可以在報表中加入Excel的各種Chart Shape等對象 這些留著我以後再寫吧
TXlTemplateAnalyzer類的是這樣調用
begin
1 先將數據集 變數注冊
templtAnalyzer RegisterDataSet(DataSet Table);
templtAnalyzer RegisterParam(Now Date );
templtAnalyzer RegisterParam(totalQu TotalQuantity );
templtAnalyzer RegisterParam(totalPlan TotalPlan );
templtAnalyzer RegisterParam(totalPer TotalPercent );
2 生成報表
templtAnalyzer generateReport;
end;
參考文檔 MSDN:Microsoft Developer Net
好了 大家不妨按我的思路試試 希望我的這篇文章能給大家帶來幫助
lishixin/Article/program/Delphi/201311/8465
Ⅳ Access如何製作報表
很明顯,使用 Excel 輸出報表第一個弱點能夠必須同時打開 Access 和 Excel (當然,您得在一台機器上同時安裝 Access 和 Excel),當然可能您和我一樣擁有工作在 966MHz 上的 CPU 和 256M 內存還有大空間硬碟時,那就不必考慮了,繼續吧。 第1步找到 VBA 編程界面並找到"軟體"菜單並點擊"引用..."菜單項,在彈出的"引用"窗體中找到"現有引用"列表,在名為"Microsoft Excel x.0 Object Library"的項目前的方框內打鉤。 接下來,您要做好一張空白的 Excel 電子表格,設定好顯示字體、邊框、列印紙張等等並用其存檔。(下面示例中該表格名為 "temp.xls" )當然啦,直接使用空白的 Excel 文件也是能夠的,但是您要編程自動生成表格邊框、背景顏色、單元格格式等多數內容,這些涉及到 Excel 編程,我將來會在 Excel 專欄里詳細敘述,這里就不多說了。 接下來您就能夠在 Access 裡面製作您個人的列印預覽窗體了,在窗體中安排 2 個命令選項,在名為預覽的選項的 click 事件里敲入下面代碼: Private Sub ExcelPrevIE游覽器w_Click() Dim xlApp As Excel.Application Dim xlBook As Workbook, xlSheet As Worksheet Set xlApp = CreateObject("Excel.Application") Set xlApp = New Excel.Application xlApp.Visible = True Set xlBook = xlApp.Workbooks.Open("c:\reprot\temp.xls") Set xlSheet = xlBook.Worksheets(1) xlSheet.Cells(3, 1) = "製表日期:" + "12" + " 月" '以上只更改了一個單元格內的數據,可根據就得沒有限次加入
Ⅳ 以預覽方式輸出報表 怎麼編程
Docmd.OpenReport="報表名",acViewPreview
根據需要靈活應用的特點,但需編寫程序。下附代碼,第一段代碼定義基本變數,第二段代碼定義列印函數,第三段代碼是具體列印代碼,含數據轉換。第四段代碼是窗體載入代碼,具體連接資料庫和列印代碼根據你所涉及的數據要求進行修改。
function window.onbeforeprint()
{
//將一些不需要列印的隱藏
}
function window.onafterprint()
{
//放開隱藏的元素
}
事實上,很多用戶都是採用這種方式列印,但是這種方式最致命的缺點是不能設置列印參數,比如紙型,頁邊距,選擇列印機等等。

(5)報表編程擴展閱讀:
VB下數據報表列印輸出方法有多種,
一是通過自己的設計和編程完成報表列印輸出。
二是通過MS OFFICE實現報表列印輸出。
三是應用數據報表設計器的報表列印輸出。本人經常使用第一種方法,它具有根據需要靈活應用的特點,但需編寫程序。
列印輸出是將報表進行保存、報送有關部門而不可缺少的一種報表輸出方式。
但在付諸列印之前必須在報表系統中做好列印機的有關設置以及報表列印的格式設置,並確認列印機已經與主機正常連接。列印報表之前可以在「預覽」窗口預覽。
Ⅵ ASP水晶報表的編程怎麼搞
只有xml內容沒有資料庫內容么?
Ⅶ 編程:需要經常列印報表用什麼語言編程好用些
SQL編程,好多編程工具都可以的,僅僅是需要用點SQL語句把數據搞出來,按一定的格式做成報表。。。 比如DELPHI什麼的。。。事實上,這個工具是最傻瓜化的,而且效率比其它工具也快多了
Ⅷ 製作一個統計報表軟體用什麼編程語言
如果是要單純的製作報表和列印,那麼我推薦PowerBuilder(簡稱PB),它有自帶的資料庫:sqlanywhere,非常好用。PB的一大特點就在與DateWindow上,它能很容易的讓你製作出各種各樣的報表樣式,我們公司為其他大型企業開發業務系統就是用PB的,因為對方的報表和單據特別多。
下面是powerbuilder的一部分介紹:
PowerBuilder一個很大的特點就是提出了數據窗口對象的概念。數據窗口對象也是PowerBuilder中的一種對象類型,與其它對象不同的是數據窗口對象是專門為了訪問後台的資料庫服務的,在數據窗口對象中我們定義了數據的來源和數據的顯示風格,這樣在應用程序中我們就可以把精力完全放在程序的運行流程式控制制上,而不用關心具體數據的來源,因為我們在數據窗口對象中已經定義好了數據的來源。如果需要使用資料庫中不同的數據也只要對數據窗口對象進行修改就可以了。特別要指出的是PowerBuilder在數據窗口對象中提供了豐富的數據顯示方式,可以滿足各種不同的需要。 在PowerBuilder較新的版本中提供了基礎類庫PFC,它為應用程序的開發提供了許多可重用的預定義類和對象,利用基本類庫PFC可以快速開發出高質量重用性好的應用程序。真正發揮面向對象編程的巨大威力。
