調用庫放置器件連線編譯生成報表
A. pcb如何生成元器件報表
從原理圖可以生成元器件報表,一般AD在菜單report->生成bom,即可。
B. Altium Designer教程的目錄
《altium designer教程-原理圖、pcb設計與模擬》
第1章 altium designer系統
1.1 altium designer的發展
1.2 altium designer的功能
1.3 altium designer的特點
1.4 altium designer的界面
1.4.1 altium designer的英文界面
1.4.2 altium designer的中文界面
1.5 altium designer的面板
1.5.1 面板的激活
1.5.2 面板的工作狀態
1.5.3 面板的選擇及狀態的轉換
1.5.4 面板的混合放置
1.6 altium designer的項目
1.6.1 項目的打開和編輯
1.6.2 新項目的建立
1.6.3 項目與文件
1.6.4 文件及工作窗口關閉
1.7 altium designer系統參數設置
1.7.1 常規(general)參數設置
.1.7.2 視圖(view)參數設置
1.7.3 系統互聯網更新(altium web update)參數設置
1.7.4 透明效果(transparency)參數設置
1.7.5 導航(navigation)參數設置
1.7.6 備份(backup)參數設置
1.7.7 項目面板(projects panel)視圖參數設置
習題1
第2章 原理圖編輯器及參數
2.1 啟動原理圖編輯器方式
2.1.1 從文件(files)面板中啟動原理圖編輯器
2.1.2 從主菜單中啟動原理圖編輯器
2.2 原理圖編輯器界面介紹
2.3 原理圖編輯器常用菜單及功能
2.3.1 文件(file)菜單
2.3.2 顯示(view)菜單
2.3.3 項目(project)菜單
2.4 原理圖編輯器界面配置
2.5 圖紙參數設置
2.5.1 圖紙規格設置
2.5.2 圖紙選項設置
2.5.3 圖紙柵格設置
2.5.4 自動捕獲電氣節點設置
2.5.5 快速切換柵格命令
2.5.6 圖紙設計信息填寫
2.5.7 繪圖單位設置
2.6 原理圖編輯參數設置
2.6.1 常規(general)參數設置
2.6.2 圖形編輯(graphical editing)參數設置
2.6.3 編譯器(compiler)參數設置
2.6.4 自動變焦(auto focus)參數設置
2.6.5 常用圖件默認值(default primitives)參數設置
習題2
第3章 原理圖設計實例
3.1 原理圖設計流程
3.2 原理圖的設計
3.2.1 創建一個項目
3.2.2 創建原理圖文件
3.2.3 載入元件庫
3.2.4 放置元件
3.2.5 放置導線
3.2.6 放置電源端子
3.3 原理圖的編輯與調整
3.3.1 自動標識元件
3.3.2 快速自動標識元件和恢復標識
3.3.3 元件參數的直接標識和編輯
3.3.4 標識的移動
3.4 原理圖的檢查
3.4.1 編譯參數設置
3.4.2 項目編譯與定位錯誤元件
3.5 原理圖的報表
3.5.1 生成網路表
3.5.2 報告(reports)菜單
3.5.3 材料清單
3.5.4 簡易材料清單報表
3.6 原理圖的列印輸出
3.6.1 頁面設置
3.6.2 列印預覽和輸出
習題3
第4章 原理圖元件庫的使用
4.1 元件庫的調用
4.1.1 有效元件庫的查看
4.1.2 元件庫的搜索與載入
4.1.3 元件庫的卸載
4.2 元件庫的編輯管理
4.2.1 原理圖元件庫編輯器
4.2.2 工具(tools)菜單
4.2.3 標准符號(ieee symbols)菜單
4.2.4 元件庫編輯管理器
4.3 新元件原理圖符號繪制
4.4 新建元件庫
4.5 生成項目元件庫
4.6 生成元件報表
4.7 修訂原理圖符號
習題4
第5章 原理圖設計常用工具
5.1 原理圖編輯器工具欄簡介
5.2 工具欄的使用方法
5.3 窗口顯示設置
5.3.1 混合平鋪窗口
5.3.2 水平平鋪窗口
5.3.3 垂直平鋪窗口
5.3.4 恢復默認的窗口層疊顯示狀態
5.3.5 在新窗口中打開文件
5.3.6 重排設計窗口
5.3.7 隱藏文件
5.4 工作面板
5.4.1 工作面板標簽
5.4.2 剪貼板面板(clipboard)功能
5.4.3 收藏面板(favorites)功能
5.4.4 導航器面板(navigator)功能
5.4.5 過濾器面板(sch filter)功能
5.4.6 列表面板(sch list)功能
5.4.7 圖紙面板(sheet)功能
5.4.8 檢查器面板(sch inspector)功能
5.5 導線高亮工具——高亮筆
習題5
第6章 原理圖編輯常用方法
6.1 編輯(edit)菜單
6.2 選取圖件
6.2.1 選取菜單命令
6.2.2 直接選取方法
6.2.3 取消選擇
6.3 剪貼或復制圖件
6.3.1 剪切
6.3.2 粘貼
6.3.3 智能粘貼
6.3.4 復制
6.4 刪除圖件
6.4.1 個體刪除(delete)命令
6.4.2 組合刪除(clear)命令
6.5 排列圖件
6.6 剪切導線
6.7 平移圖紙
6.8 游標跳轉
6.9 特殊粘貼命令
6.9.1 復寫命令
6.9.2 橡皮圖章
6.10 修改參數
6.11 全局編輯
6.11.1 元件的全局編輯
6.11.2 字元的全局編輯
習題6
第7章 原理圖常用圖件及屬性
7.1 放置(place)菜單
7.2 元件放置與其屬性設置
7.2.1 元件的放置
7.2.2 元件屬性設置
7.2.3 屬性分組框各參數及設置
7.2.4 圖形分組框各參數及設置
7.2.5 參數列表分組框各參數及設置
7.2.6 模型列表分組框各參數及設置
7.3 導線放置與其屬性設置
7.3.1 普通導線放置模式
7.3.2 點對點自動布線模式
7.3.3 導線屬性設置
7.4 匯流排放置與其屬性設置
7.4.1 匯流排放置
7.4.2 匯流排屬性設置
7.5 匯流排入口放置與其屬性設置
7.5.1 匯流排入口的放置
7.5.2 匯流排入口屬性設置
7.6 放置網路標號與其屬性設置
7.6.1 網路標號的放置
7.6.2 網路標號屬性設置
7.7 節點放置與其屬性設置
7.7.1 節點放置
7.7.2 節點屬性設置
7.8 電源端子放置與其屬性設置
7.8.1 電源端子簡介
7.8.2 電源端子的放置
7.8.3 電源端子屬性設置
7.9 放置no erc指令與其屬性設置
7.9.1 no erc指令的放置
7.9.2 no erc屬性設置
7.10 放置注釋文字與其屬性設置
7.10.1 注釋文字的放置
7.10.2 注釋文字屬性設置
習題7
第8章 原理圖層次設計
8.1 原理圖的層次設計方法
8.2 自上而下的原理圖層次設計
8.2.1 建立母圖
8.2.2 建立子圖
8.2.3 由子圖符號建立同名原理圖
8.2.4 繪制子系統原理圖
8.2.5 確立層次關系
8.3 自下而上的原理圖層次設計
8.3.1 建立項目和原理圖圖紙
8.3.2 繪制原理圖及埠設置
8.3.3 由原理圖生成子圖符號
8.3.4 確立層次關系
8.4 層次電路設計報表
8.4.1 元件交叉引用報表啟動
8.4.2 excel報表啟動
8.4.3 層次報表
8.4.4 埠引用參考
習題8
第9章 pcb設計基礎
9.1 pcb的基本常識
9.1.1 印製電路板的結構
9.1.2 pcb元件封裝
9.1.3 常用元件的封裝
9.1.4 pcb的其他術語
9.2 pcb設計的基本原則
9.2.1 pcb設計的一般原則
9.2.2 pcb的抗干擾設計原則
9.2.3 pcb可測性設計
9.3 pcb編輯器的啟動
9.3.1 利用新電路板生成向導啟動pcb編輯器
9.3.2 其他方法啟動pcb編輯器
習題9
第10章 pcb編輯器及參數
10.1 常規(general)參數設置
10.2 顯示(editing display)參數設置
10.3 互動式布線(editing interactive routing)參數設置
10.4 默認(editing defaults)參數設置
10.5 工作層顏色(editing layer colors)參數設置
10.5.1 工作層面的類型
10.5.2 工作層設置
10.6 板層的設置
10.6.1 板層堆棧管理器
10.6.2 板層設置
10.7 板選項參數設置
習題10
第11章 pcb設計基本操作
11.1 pcb編輯器界面
11.2 pcb編輯器工具欄
11.3 放置圖件方法
11.3.1 繪制導線
11.3.2 放置焊盤
11.3.3 放置過孔
11.3.4 放置字元串
11.3.5 放置位置坐標
11.3.6 放置尺寸標注
11.3.7 放置元件
11.3.8 放置填充
11.4 圖件的選取/取消選擇
11.4.1 選擇方式的種類與功能
11.4.2 圖件的選取操作
11.4.3 選擇指定的網路
11.4.4 切換圖件的選取狀態
11.4.5 圖件的取消選擇
11.5 刪除圖件
11.6 移動圖件
11.6.1 移動圖件的方式
11.6.2 圖件移動操作方法
11.7 跳轉查找圖件
11.7.1 跳轉查找方式
11.7.2 跳轉查找的操作方法
11.8 元器件封裝的製作
11.8.1 pcb庫文件編輯器
11.8.2 利用向導製作元件封裝
11.8.3 自定義製作pcb封裝
習題11
第12章 pcb設計實例
12.1 pcb的設計流程
12.2 雙面pcb設計
12.2.1 文件鏈接與命名
12.2.2 電路板禁止布線區的設置
12.2.3 數據的導入
12.2.4 pcb設計環境參數的設置
12.2.5 元件的自動布局
12.2.6 元件封裝的調換
12.2.7 pcb與原理圖文件的雙向更新
12.2.8 元件布局的交互調整
12.2.9 電路板的3d效果圖
12.2.10 設置布線規則
12.2.11 自動布線
12.2.12 手工調整布線
12.2.13 加補淚滴
12.2.14 放置敷銅
12.2.15 設計規則drc檢查
12.3 單面pcb設計
12.4 多層pcb設計
習題12
第13章 pcb的設計規則
13.1 電氣相關的設計規則
13.1.1 安全間距設計規則
13.1.2 短路許可設計規則
13.1.3 網路布線檢查設計規則
13.1.4 元件引腳連接檢查設計規則
13.2 布線相關的設計規則
13.2.1 設置導線寬度
13.2.2 設置布線方式
13.2.3 設置布線次序
13.2.4 設置布線板層
13.2.5 設置導線轉角方式
13.2.6 設置導孔規格
13.2.7 扇出控制布線設置
13.2.8 差分對布線設置
13.3 smd布線相關的設計規則
13.4 焊盤收縮量相關的設計規則
13.4.1 焊盤的收縮量
13.4.2 smd焊盤的收縮量
13.5 內層相關的設計規則
13.5.1 電源層的連接方式
13.5.2 電源層的安全間距
13.5.3 敷銅層的連接方式
13.6 測試點相關的設計規則
13.6.1 測試點規格
13.6.2 測試點用法
13.7 電路板製造相關的設計規則
13.7.1 設置最小環寬
13.7.2 設置最小夾角
13.7.3 設置最小孔徑
13.7.4 板層對許可
13.8 高頻電路設計相關的規則
13.8.1 導線長度和間距
13.8.2 網路長度
13.8.3 匹配網路長度
13.8.4 支線長度
13.8.5 smd焊盤過孔許可
13.8.6 導孔數限制
13.9 元件布置相關規則
13.9.1 元件盒
13.9.2 元件間距
13.9.3 元件的方向
13.9.4 元件的板層
13.9.5 網路的忽略
13.9.6 元件的高度
13. 10 信號完整性分析相關的設計規則
習題13
第14章 電子電路模擬
14.1 模擬的基本概念
14.2 模擬的常用元件及屬性
14.2.1 常用元件
14.2.2 元件模擬屬性編輯
14.3 模擬常用激勵源
14.3.1 模擬激勵源工具欄
14.3.2 模擬激勵源庫
14.4 初始狀態的設置
14.4.1 定義元件屬性設置初始狀態
14.4.2 特殊元件設置初始狀態
14.5 模擬器的設置
14.5.1 分析設置對話框
14.5.2 一般設置
14.5.3 瞬態特性分析
14.5.4 直流分析
14.5.5 交流小信號分析
14.5.6 雜訊分析
14.5.7 極點-零點分析
14.5.8 傳遞函數分析
14.5.9 溫度掃描分析
14.5.10 參數掃描分析
14.5.11 蒙特卡羅分析
14.6 電子電路模擬實例
14.6.1 電子電路模擬流程
14.6.2 模擬電子電路模擬實例
14.6.3 數字電子電路模擬實例
14.6.4 混合電子電路模擬實例
習題14
附錄a 常用原理圖元件符號與pcb封裝
參考文獻
C. quartus 選擇哪個器件進行編譯
QuartusII 是Altera公司開發的功能最強大的PLD編譯工具,全面取代MAX+PLUS
使用步驟:
一、建立工程.
1、「File」→「New Project Wizard」開始新工程的建立設置。『NEXT』
2、指定project的路徑,和project的名稱,頂層文件的名稱(一般與工程名相同)。
3、指定project中要include 的文件。
4、選擇project中要使用的一些EDA TOOLS。
5、選擇所使用的器件的家族「family」 和具體型號。
6、『finish』 完成工程的設置。
二、輸入文件. 在工程中新建設計文件:圖形文件「Block Diagram/Schematic File」,Verilog語言文 件「VerilogHDL File」
1、完成工程文件的輸入,若為頂層文件,則文件名應該保存為與工程名相同。
2、編譯設置:「Assignment」→「Compiler Settings Wizard」→「Next」
3、根據編譯窗口的提示修改錯誤。
4、編譯後會生成編譯報告「Compilation Report」會分成如下幾項:
(1) Analysis&Synthesis語法檢查,把大電路轉成較小的元件
(2) Fitter 器件資源利用情況,引腳分配情況等
(3) Assembler 連線各元件
(4) Timing Analyzer 時間分析
三、模擬. 完成工程文件的編譯、綜合、時間、分析後就可以建立波形模擬文件進行功能模擬
1、建立模擬文件
「File」→「New」→「Other Files」→「Vector Waveform File」→「OK」
2、選擇輸入輸出引腳
Edit→「Insert Node or Bus」→「Node Finder」,在「Filter」處選擇「Pins:all」,再按下「 >>」將所有選中的引腳添加到「Seleted Nodes」框,點「OK」→「OK」完成引腳添加。可通過右鍵 修改引腳的顯示方式、屬性、初始值等參數。
3、模擬時間、柵格的設置
Edit→『End Time』 設置模擬結束的時間, 『Grid Size』設置每個柵格表示的時間。模擬時間是 以建立模擬文件時給出的結束時間為准,模擬設置「Wizards」中設定的End Time沒用。
4、模擬編譯設置
『Assignments』→『Wizards』→『Simulator Settings Wizard』→選擇當前要模擬得文件
模擬文件做好後還要將其設置為當前模擬文件,才可以開始模擬。因為有時一個工程需要建立多個 模擬文件,這就需要通過設置確定仿哪個文件了。在選擇模擬類型「Type of simulation」時,「 timing」代表考慮延時,「functional」表示功能型的模擬。
5、先編譯後模擬
『Processing』→『Start Compilation&Simulation』
6、模擬結束後會生成模擬報告「Simulation Report」
模擬結果並不是出現 在所建立得模擬文件中,在模擬報告中有獨立的模擬結果。
模擬的結果總是與當前的工程文件相對應,工程文件改變後要重新模擬後才有意義。
四、將工程模塊化,利用圖形設計文件建立更大的工程
模塊工程文件(「Block Diagram/Schematic File」或「Verilog HDL File」)編譯模擬成功後就可以 將其模塊化,然後在更高層次將各個模塊級聯起來,構成更大得工程。
1、模塊化
『File』→『Creat/Updata』→『Creat Symbol Files for Current File』 然後編譯器會自動將當前工程完整得編譯一遍,然後生產圖形模塊,放在存放當前工程的文件夾里。
2、更大的工程
(1)建立工程文件
「File」→「New」→「Device Design Files」→「Block Diagram/Schematic File」→「OK」
(2)輸入元件
右鍵→『Insert』→『Symbol』→可以在庫文件中選,也可以通過「瀏覽」將已經建立圖新模塊的 工程載入進來。
(3)連線
D. CrystalReportViewer控制項怎麼用
在使用CrystalReportViewer 對象模型登錄到安全的SQL Server資料庫時,必須使用 CrystalDecisions.Shared命名空間中的類。
ConnectionInfo類的屬性可用來連接到資料庫伺服器或ODBC數據源。在本教程中,將設置ServerName,DatabaseName,UserID以及Password屬性。如果選擇僅設置DatabaseName,UserID和Password屬性,則會登錄到報表指定的資料庫的默認伺服器。但如果選擇指一個備用的serverName屬性,則可以在運行時將報表重定向到其它伺服器。
從CrystalReportViewer控制項的LogOnInfo屬性獲取TableLogOnInfos實例。然後,將ConnectionInfo實例賦給TableLogOnInfos實例的每個TableLogOnInfo對象。
以下用四步來創建報表:
1.創建連接到安全的SQL Server資料庫的報表。
在「解決方案資源管理器」中,右擊粗體顯示的項目名,指向「添加」,然後單擊「添加新項」。 在「添加新項」對話框的「模板」視圖中,選擇「Crystal Report」模板。 在「名稱」欄位中,輸入名稱「NorthwindCustomers.rpt」,然後單擊「打開」。 在「Crystal Reports 庫」對話框的「創建新 Crystal Report 文檔」面板中,選擇「使用報表向導」。 在「選擇專家」面板中,選擇「標准」後,單擊「確定」。出現「標准報表創建向導」窗口。 在「可用數據源」面板中,展開「創建新連接」文件夾。 從打開的子文件夾中,展開「OLE DB (ADO)」文件夾。出現「OLE DB (ADO)」窗口。 選擇「Microsoft OLE DB Provider for SQL Server」並單擊「下一步」。 分別將資料庫伺服器、用戶 ID 和密碼的值輸入到「伺服器」、「用戶 ID」和「密碼」欄位中。 從「資料庫」下拉列表中,選擇「Northwind」。取消選中「集成安全性」復選框,因為您使用的是 SQL Server 身份驗證而不是 NT 身份驗證。 單擊「完成」。OLE DB 文件夾將展開,顯示資料庫伺服器及其中的 Northwind 資料庫。 展開「Northwind」、「dbo」和「表」節點,然後選擇「Customers」表。 單擊「>」符號,將該表移入「選定的表」面板,然後單擊「下一步」。 展開「Customers」表,按住 Ctrl 鍵的同時單擊「公司名稱」、「聯系人姓名」和「城市」。 單擊「>」符號,將這些欄位移至「要顯示的欄位」面板,然後單擊「下一步」。 在「可用欄位」面板的「報表欄位」下,選擇「客戶.城市」,然後單擊「>」符號將該欄位移入「分組依據」面板,再單擊「完成」。NorthwindCustomers 報表創建完畢,並載入到 Visual Studio 的主窗口中。
2.綁定不帶登錄代碼的報表。
打開 Web 或 Windows 窗體。 從「視圖」菜單中,單擊「代碼」。 找到在 「項目設置」中創建的 ConfigureCrystalReports() 方法。 聲明一個字元串變數,將其命名為「reportPath」,然後將一個本地報表的運行時路徑賦值給它。對於網站項目和 Windows 項目,確定此路徑時會有所不同:對於網站,要將本地報表文件的名稱作為字元串參數傳遞到 Server.MapPath() 方法中。這樣,在運行時本地報表就會映射到硬碟文件目錄路徑。 C# Copy Code string reportPath = Server.MapPath("NorthwindCustomers.rpt");
對於 Windows 項目,要將 Application.StartupPath 屬性與一個反斜杠和本地報表文件名稱連接起來。這樣,報表將映射到與 Windows 可執行文件相同的目錄。
注意 編譯時,需要將報表復制到可執行文件所在的目錄。 C# Copy Code string reportPath = Application.StartupPath + "\" + "NorthwindCustomers.rpt";
將 NorthwindCustomers 報表的文件目錄路徑賦給 CrystalReportViewer 控制項的 ReportSource 屬性。C# Copy Code crystalReportViewer.ReportSource = reportPath;測試 NorthwindCustomers 報表的載入過程。現在即可生成並運行項目。預計報表載入將失敗,因為此時尚未編寫資料庫登錄代碼。從「生成」菜單中選擇「生成解決方案」。 如果生成過程中出錯,請立即糾正。 如果在 Windows 項目中使用非嵌入式報表,請在 \bin\debug\ 子目錄中找到編譯後的 Windows 可執行文件,然後將報表復制到該子目錄中。注意 要讓 Windows 可執行文件在運行時載入非嵌入式報表,該報表必須與 Windows 可執行文件存儲在同一個目錄中。從「調試」菜單中,單擊「開始」。NorthwindCustomers 報表並不顯示。它會在添加資料庫登錄代碼後顯示。注意 結果可能會因為所使用的 Crystal Reports 版本不同而不同。例如,如果安裝了 Crystal Reports 10 和更高版本,則會提示您輸入該報表的資料庫登錄信息。如果運行的是較早版本的 Crystal Reports,則會引發異常。不論是哪種情況,都需要依照以下過程來創建功能完整的應用程序。返回到 Visual Studio,然後單擊「停止」從調試模式中退出。
3.添加報表登錄代碼。
返回到此 Web 或 Windows 窗體的代碼隱藏類。 在類的底部,創建名為 SetDBLogonForReport() 的新私有幫助器方法,並將 ConnectionInfo 傳遞給方法簽名。 C# Copy Code private void SetDBLogonForReport(ConnectionInfo connectionInfo){}在此方法內,從 CrystalReportViewer 類的 LogOnInfo 屬性獲取 TableLogOnInfos 實例。注意 TableLogOnInfos 是包含 TableLogOnInfo 類實例的索引類。 C# Copy Code TableLogOnInfos tableLogOnInfos = crystalReportViewer.LogO www.hnne.com nInfo;創建一個 foreach 循環,它在 TableLogOnInfos 索引類實例的各個 TableLogOnInfo 實例間循環。C# Copy Code foreach(TableLogOnInfo tableLogOnInfo in tableLogOnInfos){}在 foreach 循環中,將 TableLogOnInfo 的 ConnectionInfo 屬性設置為 ConnectionInfo 參數。C# Copy Code tableLogOnInfo.ConnectionInfo = connectionInfo;修改 ConfigureCrystalReports() 方法以處理資料庫登錄代碼。此過程創建了用於設置資料庫登錄的方法。但是,必須修改 ConfigureCrystalReports() 方法以處理此方法,這樣報表才能識別出其中含有資料庫登錄信息。
修改 ConfigureCrystalReports() 方法需要兩個步驟: 配置 ConnectionInfo 實例。 調用 SetDBLogonForReport() 方法。 在 ConfigureCrystalReports() 方法中,在將報表綁定到 CrystalReportViewer 控制項的代碼之下聲明並實例化 ConnectionInfo 類。C# Copy Code ConnectionInfo connectionInfo = new ConnectionInfo();在下一行上,通過傳入 ConnectionInfo 實例調用 SetDBLogonForReport() 方法。 C# Copy Code SetDBLogonForReport(connectionInfo);設置 ConnectionInfo 實例的 DatabaseName、UserID 和 Password 屬性。注意 出於安全性考慮,使用訪問許可權受到限制的資料庫帳戶非常重要。有關更多信息,請參見 「安全性:創建受限訪問資料庫帳戶」。 在編寫的代碼中,用自己的密碼代替示例密碼 654321(如下所示)。 C# Copy Code connectionInfo.DatabaseName = "Northwind";connectionInfo.UserID = "limitedPermissionAccount";connectionInfo.Password = "654321";測試 NorthwindCustomers 報表的載入過程。現在即可生成並運行項目。由於已經添加了登錄資料庫的代碼,現在應該能夠正確載入報表了。 從「生成」菜單中選擇「生成解決方案」。 如果生成過程中出錯,請立即糾正。 從「調試」菜單中,單擊「開始」。NorthwindCustomers 報表將成功顯示。
返回到 Visual Studio,然後單擊「停止」從調試模式中退出。
4.添加在運行進更改資料庫位置的功能。
在本節中,將學習如何在運行時更改資料庫的位置。要實現此功能只需對 ConnectionInfo 實例稍加修改即可。注意 在本教程中,將更改資料庫伺服器的名稱,而不是資料庫的名稱。無法使用 CrystalReportViewer 控制項更改資料庫的名稱。在運行時更改資料庫位置。在 ConfigureCrystalReports() 方法中,在調用 SetDBLogonForReport() 方法的代碼後面創建幾行。 在這幾行中,設置 ConnectionInfo 實例的 ServerName 屬性。注意 在編寫的代碼中,用您的伺服器名稱代替示例伺服器名稱「DevDatabaseServer」(如下所示)。 C# Copy Code connectionInfo.ServerName = "DevDatabaseServer"; 測試是否能在運行時將報表重置到備用資料庫伺服器。現在即可生成並運行項目。報表應該會在運行時重定向到備用資料庫伺服器。從「生成」菜單中選擇「生成解決方案」。 如果生成過程中出錯,請立即糾正。 從「調試」菜單中,單擊「開始」。NorthwindCustomers 報表將成功顯示。返回到 Visual Studio,然後單擊「停止」從調試模式中退出。
E. 我用ad9自己畫的元器件庫,調用之後生成的PCB沒有連線是怎麼回事啊求詳解!
用ad9自己畫的元器件庫,調用之後生成的PCB沒有連線,這是PCB元件管腳定義與原理圖中元件管腳定義名稱不同造成的,你修改任何一面都可以,只要對應了,就能識別網路表,就能正常連線了。
F. 如何在VDSP下生成和調用DSP庫
有些資料可供你參考:
DSP的特點
對於沒有使用過DSP的初學者來說,第一個困惑就是DSP其他的嵌入式處理器究竟有什麼不同,它和單片機,ARM有什麼區別.事實上,DSP也是一種嵌入式處理器,它完全可以完成單片機的功能.
唯一的重要的區別在於DSP支持單時鍾周期的"乘-加"運算.這幾乎是所有廠家的DSP晶元的一個共有特徵.幾乎所有的DSP處理器的指令集中都會有一條MAC指令,這條指令可以把兩個操作數從RAM中取出相乘,然後加到一個累加器中,所有這些操作都在一個時鍾周期內完成.擁有這樣一條指令的處理器就具備了
DSP功能.
具有這條指令就稱之為數字信號處理器的原因在於,所有的數字信號處理演算法中最為常見的算術操作就是"乘-加".這是因為數字信號處理中大量使用了內積,或稱"點積"的運算.無論是FIR濾波,FFT,信號相關,數字混頻,下變頻.所有這些數字信號處理的運算經常是將輸入信號與一個系數表或者與一個本地參考信號相乘然後積分(累加),這就表現為將兩個向量(或稱序列)進行點積,在編程上就變成將輸入的采樣放在一個循環buffer里,本地的系數表或參考信號也放在一個buffer里,然後使用兩個指針指向這兩個buffer.這樣就可以在一個loop裡面使用一個MAC指令將二者進行點積運算.這樣的點積運算對與處理器來說是最快的,因為僅需一個始終周期就可以完成一次乘加.
了解DSP的這一特點後,當我們設計一個嵌入式系統時,首先要考慮處理器所實現的演算法中是否有點積運算
,即是否要經常進行兩個數組的乘加,(記住數字濾波,相關等都表現為兩個數組的點積)如果有的話,每秒要做多少次,這樣就能夠決定是否採用DSP,採用多高性能的DSP了.
浮點與定點
浮點與定點也是經常是初學者困惑的問題,在選擇DSP器件的時候,是採用浮點還是採用定點,如果用定點是16位還是32位?其實這個問題和你的演算法所要求的信號的動態范圍有關.
定點的計算不過是把一個數據當作整數來處理,通常AD采樣來的都是整數,這個數相對於真實的模擬信號有一個刻度因子,大家都知道用一個16位的AD去采樣一個0到5V的信號,那麼AD輸出的整數除以2^16再乘以5V就是對應的電壓.在定點DSP中是直接對這個16位的采樣進行處理,並不將它轉換成以小數表示的電壓,因為定點DSP無法以足夠的精度表示一個小數,它只能對整數進行計算.
而浮點DSP的優勢在於它可以把這個采樣得到的整數轉換成小數表示的電壓,並不損失精度(這個小數用科學記數法來表示),原因在於科學記數法可以表示很大的動態范圍的一個信號,以IEEE754浮點數為例,
單精度浮點格式: [31] 1位符號 [30-23]8位指數 [22-00]23位小數
這樣的能表示的最小的數是+-2^-149,最大的數是+-(2-2^23)*2^127.動態范圍為20*log(最大的數/最小的數)=1667.6dB 這樣大的動態范圍使得我們在編程的時候幾乎不必考慮乘法和累加的溢出,而如果使用定點處理器編程,對計算結果進行舍入和移位則是家常便飯,這在一定程度上會損失是精度.原因在於定點處理處理的信號的動態范圍有限,比如16位定點DSP,可以表示整數范圍為1-65536,其動態范圍為20*log(65536/1)=96dB.對於32定點DSP,動態范圍為20*log(2^32/1)=192dB,遠小於32位ieee浮點數的1667.6dB,但是,實際上192dB對絕大多數應用所處理的信號已經足夠了.
由於AD轉換器的位數限制,一般輸入信號的動態范圍都比較小,但在DSP的信號處理中,由於點積運算會使中間節點信號的動態范圍增加,所以主要考慮信號處理流程中中間結果的動態范圍,以及演算法對中間結果的精度要求,來選擇相應的DSP.另外就是浮點的DSP更易於編程,定點DSP編程中程序員要不斷調整中間結果的P,Q值,實際就是不斷對中間結果進行移位調整和舍入.
DSP與RTOS
TI的CCS提供BIOS,ADI的VDSP提供VDK,都是基於各自DSP的嵌入式多任務內核.DSP編程可以用單用C,也可以用匯編,或者二者結合,一般軟體編譯工具都提供了很好的支持.我不想在這里多說BIOS,VDK怎麼用這在相應的文檔里說的很詳細.我想給初學者說說DSP的RTOS原理.用短短幾段話說這個復雜的東西也是挑戰!^_^
其實DSP的RTOS和基於其他處理器的通用RTOS沒什麼大的區別,現在幾乎人人皆知的uCOSii也很容易移植到DSP上來,只要把寄存器保存與恢復部分和堆棧部分改改就可以.一般在用BIOS和VDK之前,先看看操作系統原理的書比較好.uCOS那本書也不錯.
BIOS和VDK其實是一個RTOS內核函數集,DSP的應用程序會和這些函數連接成一個可執行文件.其實實現一個簡單的多任務內核並不復雜,首先定義好內核的各種數據結構,然後寫一個scheler函數,功能是從所有就緒任務中(通過查找就緒任務隊列或就緒任務表)找出優先順序最高的任務,並恢復其執行.然後在此基礎上寫幾個用於任務間通信的函數就可以了,比如event,message box,等等.
RTOS一般採用搶先式的任務調度方式,舉例說當任務A等待的資源available的時候,DSP會執行一個任務調度函數scheler,這個函數會檢查當前任務是否比任務A優先順序低,如果是的話,就會把它當前掛起,然後把任務A保存在堆棧里寄存器值全部pop到DSP處理器中(這就是所謂的任務現場恢復).接著scheler還會把從堆棧中取出任務A掛起時的程序執行的地址,pop到PC,使任務A繼續執行.這樣當前任務就被任務A搶先了.
使用RTOS之後,每個任務都會有一個主函數,這個函數的起始地址就是該任務的入口.一般每個任務的主函數里有一個死循環,這個循環使該任務周期地執行,完成一部分演算法模塊的功能,其實這個函數跟普通函數沒任何區別,類似於C語言中的main函數.一個任務創建的時候,RTOS會把這個函數入口地址壓入任務的堆棧中,好象這個函數(任務)剛發生過一次中斷一樣.一旦這個新創建任務的優先順序在就緒隊列中是最高的,RTOS就會從其堆棧中彈出其入口地址開始執行.
有一個疑問是,不使用RTOS,而是簡單使用一個主循環在程序中調用各個函數模塊,一樣可以實現軟體的調度執行.那麼,這種常用的方法與使用RTOS相比有什麼區別呢?其實,使用主循環的方法不過是一種沒有優先順序的順序執行的調度策略而已.這種方法的缺點在於,主循環中調用的各個函數是順序執行的,那麼,即使是一個無關緊要的函數(比如閃爍一個LED),只要他不主動返回,也會一直執行直到結束,這時,如果發生一個重要的事件(比如DMA buffer full 中斷),就會得不到及時的響應和處理,只能等到那個閃爍LED的函數執行完畢.這樣就使整個DSP處理的優先次序十分不合理.而在使用了RTOS之後,當一個重要的事件發生時,中斷處理會進入RTOS,並調用scheler,這時scheler 會讓處理這一事件的任務搶佔DSP處理器(因為它的優先順序高).而哪個閃爍LED任務即使晚執行幾毫秒都沒任何影響.這樣整個DSP的調度策略就十分合理.
RTOS要說的內容太多,我只能講一下自己的一點體會吧
DSP與正(余)弦波
在DSP的應用中,我們經常要用到三角函數,或者合成一個正(余)弦波.這是因為我們喜歡把信號通過傅立葉變換映射到三角函數空間來理解信號的頻率特性.信號處理的一些計算技巧都需要在DSP軟體中進行三角函數計算.然而三角函數計算是非線性的計算,DSP並沒有專門的指令來求一個數的正弦或餘弦.於是我們需要用線性方法來近似求解.
一個直接的想法是用多項式擬合,這也正是大多數DSP C編譯器提供正餘弦庫函數所採用的方法.其原理是把三角函數向函數空間{1,x,x^2,x^3....}上投影,從而獲得一系列的系數,用這些系數就可以擬合出三角函數.比如,我們在[0,pi/2]區間上擬合sin,只需在matlab中輸入以下命令:
x=0:0.05:pi/2;
p=polyfit(x,sin(x),5)
就得到5階的多項式系數:
p =
0.00581052047605 0.00580963216172 -0.17193865685360
0.00209002716293 0.99969270087312 0.00000809543448
於是在[0,pi/2]區間上:
sin(x)= 0.00000809543448+0.99969270087312*x+ 0.00209002716293*x^2-0.17193865685360*x^3+
0.00580963216172*x^4+0.00581052047605*x^5
於是在DSP程序中,我們可以通過用乘加(MAC)指令計算這個多項式來近似求得sin(x)
當然如果用定點DSP還要把P這個多項式系數表用一定的Q值來改寫成定點數.
這樣的三角函數計算一般都需要幾十個cycle 的開銷.這對於某些場合是不能容忍的
另一種更快的方法是藉助於查表,比如,我們將[0,pi/2]分成32個區間,每個區間長度就為pi/64,在每個區間上我們使用直線段擬合sin曲線,每個區間線段起點的正弦值和線段斜率事先算好,存在RAM里,這樣就需要在在RAM里存儲64個
常數:
32個起點的精確的正弦值(事先算好): s[32]={0,sin(pi/64),sin(pi/32),sin(pi/16)....}
32個線段的斜率: f[32]={0.049,.....}
對於輸入的每一個x,先根據其大小找到所在區間i,通常x用定點表示,一般取其高幾位就是系數i了,然 後通過下式即可求出sin(x):
sin(x)= s*f
這樣一般只需幾個CYCLE就可以算出正弦值,如果需要更高的精度,可以將區間分得更細,當然,也就需 要更多的RAM去存儲常數表.
事實上,不僅三角函數,其他的各種非線性函數都是這樣近似計算的.
1. 接觸DSP
在參加過一次社會上多的盡乎到了泛濫地步的"DSPxxx"培訓班之後,我"自信"已經具備DSP工師資格,便欣喜若狂跑道書店買了一本名為"DSP xxx應用"的書,作者叫xxx,並且是這個領域的牛人,這本書確實是很出色的書籍.但是當時,對於我這個對DSP一竅不通、剛剛入門的人來說卻建立了一個錯誤的概念--DSP是個很容易的領域,只要培訓一下,再稍微看看書,就可以成為專家.所以,現在看來,這些都是誤導,我認為學習DSP技術應該分為兩個階段,第一階段學習DSP技術基礎概念;第二階段學習DSP技術的行業應用.那本"DSP xxx應用"的書,它更適合書名應叫做"DSP中的數學或物理運用"...什麼的.
2. 購買DSP學習套件
有了興趣,就要去學習,於是我攛掇領導批准購買了DSP學習入門套件(DSK),許多公司均有銷售,如TI等,大概是需要3000-4000人民幣.買後不久,我就發現,這種套件對於我來說一點用處都沒有.因為我的基礎知識實在是太差了.這些套件對於我來說,只是另一種涵義的PC機及一些外圍設備,想要懂的這些東西,我就需要去讀更多的相關書籍,這時,很難沒有想要放棄的念頭,我開始有點畏懼DSP這種技術,門檻太高了.可是,我不能放棄,我已經投入了許多的金錢和時間,我不想丟掉這4000元錢,也不能對領導沒有交待.事實上,我沒有想到,我將付出更多的錢和時間去學習.
3. 再次參加培訓班,再次購買DSP書籍
在我就感到了無助,困惑之際.我又想到了放棄.雖然我的數學還算不錯,但其中遇到的一些問題在我思考後,還是無法解決,我越來越畏懼DSP了.於是,我開始在"google"上搜索DSP培訓相關的信息,終於發現聞亭公司"DSP培訓中心"的教程和內容正是我一直尋找的東西.也許是DSP技術對我的有著巨大的誘惑力,也許是我的之直著,我又一次勇敢的報名參加了培訓.32個課時之後,解決了我半年多來積累的很多粗淺的問題.再翻開培訓教材剛剛復讀了第一章時,我想如果這本教材是我讀到的第一本書,並且我沒有花4000元買那個可*的學習套件,我會毫不猶豫的投降,放棄學習DSP,但.......那個可*的xxx作者,他的書怎麼可以用作教學呀.他的書雖然讓我對DSP產生了濃厚的興趣,卻把我引到了一條艱難的路上,而且花了那麼多的冤枉錢....既然事已如此,我只有慢慢的去讀這些書籍,在我讀到教材的後面章節以後,我開始明白前面章節的內容,所以當你讀書遇到不明白的時候,千萬不要氣餒.有時,一個內容,可能需要讀上幾遍,才能明白,這比一開始的感覺要好的多了.
4. 實驗--至關重要的一步
現在,從你的架子上取下那套DSK,去嘗試做一些小實驗,我的第一個實驗是"正弦發生器",這個實驗比較簡單,但是它也花費了我幾周的時間去讀大量的關於串口、編碼、寄存器等的書並且進行大量的實驗.這個執行半小時的"正弦發生器",讓我查閱了恨不得夠組建一個圖書館的書籍,而且這個東西沒有任何用途.我是用匯編語言在54x中執行,這個實驗讓我很好的理解了什麼是DSP,什麼是McBSP, DMA, 等.當然問題也同步產生了,我就又不得不做了許多的實驗去驗證.我建議,在系統未定型之前,使用mathlab/simulink進行模擬,並且可以多實驗幾種晶元,這樣可以讓你明白更多的內容.我覺得我就要成為一個真正的DSP工程師了,我度過了最困難的時期.我覺得自己是個英雄,嘿嘿.
5. 去尋找一份與DSP相關的工作,去當個DSP工程師
我希望困難已經過去,但這種願望為時過早了.在DSP的研究中,我還遇到了很多的困難,由於篇幅有限,我就不在進行描述了.反正,如果想成為真正的DSP專家,就不要期望事情會變得容易.有些DSP開發人員並不知道什麼是真正的0和1,他們只會查閱各種參考書籍和參數表,我們並不提倡這種做法.因為這些人選擇了一種簡單的做法,但是他們並不是真正的DSP開發人員.他們只是編寫一些他們不理解的代碼,他們似乎在擔當著一台"編碼器"的角色.
6. 總結
這篇文章只是我的一點感慨,可能並不是很適用現在的DSP開發工程師,因為,市面上已經有了供你學習的DSP教學套件,搭配了多種實驗供你參考,輕松入門,如:聞亭公司的"大學實驗箱"什麼的.這個實驗箱提供了一個很好的實驗環境,並且為初學的你設計了多種實驗、教材,讓你由淺入深的學習.不會向我似的,繞一大圈才走到正
G. 隱含模塊中的編譯錯誤:frm生成報表
才重裝系統,XP就行,WIN7家庭版更好。
H. 唉 生成了個報表(*.frx) 怎麼在程序里調用
說明這個大數據類型在這里不支持,在編譯的過程中,BigDecimal佔用位元組多,解釋的過程中發生溢出,導致編譯出問題,無法生成class,導致後面的調用出錯。。還是變通一下,轉換一下類型吧。。
I. VisualNet怎麼用
Visual Basic通用報表設計小結
本文對vb設計報表的方法作了一個小結,大家都知道,在VB平台下製作報表大致有兩種選擇:使用VB自帶的Data Report控制項和藉助第三方軟體。其中第三方軟體比較著名的就是MS Excel和Seagate公司的CrystalReporter,以下就這三個方案進行詳細的討論。
1. Data Report控制項
1.1 Data Report控制項使用方法
由於是VB自帶的控制項,所以使用相對比較方便。使用方法是:首先在"工程"菜單下面選擇"添加Data report"選項,這樣Data Report控制項就選入到了應用程序。
使用Data report的情況大多數採用數據綁定的模式,也就是將此控制項與資料庫的數據表綁定起來以便可以不用編寫代碼就輕松完成報表的設計。要使用數據綁定就必須要指定數據源,這里的數據源不是數據控制項而是數據環境(Data Environment),選擇"工程"菜單下面選擇"添加Data Environment"選項就可以將數據環境添加進應用程序中。數據環境有兩個重要的屬性:Connection 和Command屬性,前者是連接指定的資料庫,後者連接指定的數據表,一旦這兩者都設置成功之後,就可以把數據環境作為數據源了。只需要把Data report的DataSource屬性設置為前面的數據環境對象以及把DataMember設置為數據環境對象的Command對象即可。
1.2 Data Report控制項界面元素
完成了Data report控制項的數據綁定工作之後就可以直接控制報表的製作與顯示了。這里首先熟悉一下Data report控制項的顯示界面:
Data report控制項一共有5個區組成,分別是報表頭、頁面頭、細節區、頁面注腳和報表注腳。報表頭和報表注腳是用分別用於整個報表的最上部和最下部,它們將出現於整個報表的每一頁,可以放置一些報表名稱,時間之類的固定文本;頁面頭和頁面注腳只能出現在當前頁的最上部和最下部,也就是說它只能出現在當前頁中,不出現在其他頁面中,可以放置隨頁面變化的一些量比如頁碼等;而細節區就是用來進行實際顯示的區域,它是我們最為關心的區域,通過在此區域內放置顯示控制項可以控制報表的實際顯示輸出。這里介紹一下放置文本框控制項的使用方法,其實在綁定情況下只需要設置其DataMember和Datafield即可,前者用來指定數據表,可以設置為前面數據環境對象的Command對象,後者是指定數據段,即綁定的資料庫的指定欄位。這樣不需要編寫任何代碼就可以實現報表的顯示工作。
1.3 Data Report控制項的列印功能
對於報表的列印可以直接使用Data report自帶的列印功能,即可以實現簡易的報表列印。不過為了實現比較復雜的列印功能,也可以通過程序控制的方法來進行。這里只是給出一個實現思路:首先需要製作一個按鈕控制項來顯示"列印設置"的窗口,通過這個窗口用戶可以設置列印的相關的參數,然後在實現列印的子模塊中使用VB內嵌的printer對象來實現真實的列印,該對象能夠對列印的當前位置進行定位,而且對列印的字體等參數進行控制,所以結合"列印設置"窗口可以實現類似於word裡面的列印功能。
2.MS Excel
說起報表設計應用程序,無意微軟的Excel是一支獨秀,MS Excel就是用來進行表格和報表設計用的應用程序,它具有優秀的方格控制和宏代碼定製功能。所以如果在設計自己的應用程序的時候能夠結合到Excel的話,那麼你的應用程序就應該是相當的完善了,因為無論是編輯還是列印功能,Excel都提供了很完美的解決方案,所以你的應用程序所要做的事情就是實現程序和Excel通訊即可。
事實上,可以使用VBscript可以將VB與Excel兩者連接起來。以下就簡要介紹在VB下開發基於Excel的編程思路。
在VB中處理Excel的對象大致分為五個:Application對象、WorkBook對象、WorkSheet對象、Range對象以及Cell對象。它們的功能分別如下:
Application---------用來指代整個應用程序。
WorkBook----------表示工作簿對象
WorkSheet---------表示工作表對象,注意,一個工作簿可以包含多個工作表,它們就類似於多文檔中的框架窗口和裡面的單個視圖一樣。
Range-------------表示工作表中的某個區域范圍對象,特殊情況下也可以只代表一個Cell。
Cell---------------表示特定工作表的一個單元格對象。這個對象的使用頻率是最高的。
清楚了以上的五個對象的應用范圍,那麼使用它們就很簡單了,不過在使用這些對象之前,首先需要對它們進行聲明。方法是在"工程"的"引用"對話框之下選擇"Microsoft Excel9.0 Object Library",這樣就將整個Excel對象庫就引入到程序中來了。
下面舉一個示例,其實現的功能是打開一個工作簿。
Function OpenBook(strFilePath As String) As Boolean
' This procere checks to see if the workbook
' specified in the strFilePath argument is open.
' If it is open, the workbook is activated. If it is
' not open, the procere opens it.
Dim wkbCurrent As Excel.Workbook
Dim strBookName As String
On Error GoTo OpenBook_Err
' Determine the name portion of the strFilePath argument.
strBookName = NameFromPath(strFilePath)
If Len(strBookName) = 0 Then Exit Function
If Workbooks.Count >0 Then
For Each wkbCurrent In Workbooks
If UCase$(wkbCurrent.Name) = UCase$(strBookName) Then
wkbCurrent.Activate
Exit Function
End If
Next wkbCurrent
End If
Workbooks.Open strBookName
OpenBook = True
OpenBook_End:
Exit Function
OpenBook_Err:
OpenBook = False
Resume OpenBook_End
End Function
3.Crystal Reporter(水晶報表)
做為一個優秀的報表軟體,水晶報表是實際應用中最多的方案。在這一節里主要介紹一下水晶報表的定製和顯示,列印功能的實現。
首先要區分Crystal Reports插件程序和Crystal Reports控制項。前者主要用來創建報表模板,後者主要是用來在程序中顯示和列印報表,這兩者的分工決定了它們程序中的功能的不同。
其中Crystal Reports的插件程序可以從Seagate公司的官方網站上下載最新的測試版本。
3.1 Crystal Reports插件程序的使用
選擇"外接程序"菜單的"報表設計器"選項,則VB將執行Crystal Reports Pro插件應用程序。在Crystal Reports Pro里選擇"新建報表"圖標,可以選擇8標准模板和一個自定義的模板來開始報表工程。
整個水晶報表的使用跟第一節的Data Report的使用很類似。首先需要給報表選擇數據源,(即資料庫),然後就可以在報表中添加、刪除、修改欄位以及為記錄分組,可以利用水晶報表創建很多具有自定義風格的報表。由於本身Crystal Reports插件程序就是一個功能強大的報表設計軟體,這里就不能一一的講解了,有興趣可以參考程序自帶的幫助文檔。
3.2 Crystal Reports控制項的背景知識
Crystal Reports Pro還提供一個報表生成模塊,該模塊可以連接到並訪問VB應用程序,VB程序員不需花費大量時間寫自己的代碼就可再應用程序中添加復雜的報表生成及輸出功能。
Crystal Reports引擎是一個動態鏈接庫,它可以使應用程序訪問並具有同Crystal Reports 一樣強大的報表輸出功能。應用程序是通過Crystal Reports ActiveX控制項來訪問引擎。再編譯時應用程序同報表引擎鏈接,以給應用程序添加了生成報表的功能。
當程序使用Crystal Reports ActiveX控制項時,可以通過再設計時設置Crystal對象屬性或者再運行時改變對象屬性,來建立應用程序和Crystal Reports之間的連接。通過Crystal控制項的屬性可以指定:
響應應用程序某個事件的輸出報表的名字。
報表的目標位置(預覽窗口、磁碟文件或者電子郵件等)。
想要列印的份數(如果報表提交給列印機的話)。
輸出文件的信息。
預覽窗口的大小及位置信息(如果報表在預覽窗口中顯示時)。
選擇公式信息(如果在報表中限制記錄的話)。
排序信息。
其他相關的屬性。
這里要注意一點的是,Crystal控制項必須在由Crystal Reports Pro創建的報表中使用,而試圖在VB應用程序里引用之前,必須首先創建報表。
3.3 Crystal Reports控制項的使用
了解了Crystal Reports控制項的功能,那麼就可以使用它了。首先通過"工程"的"部件"選項裡面選擇"Crystal Reports Control",那麼VB的工具箱裡面就添加了Crystal Reports控制項了。
注意,對於Crystal Reports控制項的最重要的屬性就是ReportFileName了,把它設置為前面已經在Crystal Reports Pro里定製好的報表模板的文件路徑。那麼只需要調用控制項的PrintReport方法就可以將報表顯示出來了。
相對於Data Report控制項來說,Crystal Reports控制項的功能更加的完善,報表預覽,列印,編輯修改等功能都很完善,所以在實際的報表應用設計方案中,使用Crystal Reports的相對較多。然而Crystal Reports控制項也有它的局限性,即它不能在運行時創建自定義的窗口。可以使用控制項的數據綁定屬性來創建數據綁定報表,但是報表本身的格式都是由Crystal Reports控制項內部進行處理的。一般說來,Crystal Reports控制項不提供在程序中對報表欄位級的訪問。這一缺陷可以通過設計出足夠多的報表來彌補。
4.其他方法
除了通過上述的三種方法來實現報表設計以外,當然也可以直接利用Win32 API來進行直接進行設計,這種方式是最為靈活也是最為繁瑣的方式,因為所有的編輯、修改、列印等功能都是由程序控制,所以一般情況下不會使用這樣的方式來處理,這里就不介紹了。
5.小結
報表設計是程序員經常要遇到的問題,本文主要介紹目前主流的報表設計方案,由於所涉及到的知識點比較多,限於篇幅,在這里只是作了簡要的介紹,希望可以起到拋磚引玉的作用。
J. protel99如何生成元器件報表
從PCB文件和SCH文件都可以生成,執行報告(Reports)下的一個「材料清單」項