DXperience学习笔记

合集下载

dxp小结

dxp小结

enter——选取或启动
esc——放弃或取消
f1——启动在线帮助窗口
tab——启动浮动图件的属性窗口
pgup——放大窗口显示比例
pgdn——缩小窗口显示比例
end——刷新屏幕
del——删除点取的元件(1个)
ctrl+del——删除选取的元件(2个或2个以上)
x+a——取消所有被选取图件的选取状态
ctrl+5——以零件原来的尺寸的50%显示图纸
ctrl+f——查找指定字符
ctrl+g——查找替换字符
ctrl+b——将选定对象以下边缘为基准,底部对齐
ctrl+t——将选定对象以上边缘为基准,顶部对齐
ctrl+l——将选定对象以左边缘为基准,靠左对齐
ctrl+r——将选定对象以右边缘为基准,靠右对齐
BGA封装具有以下特点:
1.I/O引脚数虽然增多,但引脚之间的距离远大于QFP封装方式,提高了成品率。
2.虽然BGA的功耗增加,但由于采用的是可控塌陷芯片法焊接,从而可以改善电热性能。
3.信号传输延迟小,适应频率大大提高。
shift+f5——将打开的所有文档窗口层叠显示
shift+单左鼠——选定单个对象
crtl+单左鼠,再释放crtl——拖动单个对象
shift+ctrl+左鼠——移动单个对象
按ctrl后移动或拖动——移动对象时,不受电器格点限制
按alt后移动或拖动——移动对象时,保持垂直方向
按shift+alt后移动或拖动——移动对象时,保持水平方向
五、CSP芯片尺寸封装

dxp心得体会

dxp心得体会

dxp心得体会篇一:PRoTEL学习心得Protel学习心得以下是通过自学得到的一些Protel经验和心得(一)PcB板设计的工作流程通常情况下,从接受到设计到最后制成PcB板图,主要经过以下几步:1)计划剖析:主要决定原理图的设计;2)软件仿真:对设计进行软件仿真,评估设计的可行性;3)设计原理图元件:固然Protel中提供了丰盛的原理图元件库,但并不是所有的元件都被收进了尺度库中,如果发明元件库中没有所需的元件,则需要手动设计原理图元件,树立自己的元件库,将所有手动设计的元件都放在自己定义的库中是一个好习惯。

4)绘制原理图:在找到所有原理图元件后,可以开端原理图的绘制,根据具体电路的庞杂水平决议是否使用层次原理图。

完成原理图设计后,需要应用ERc工具查错,找到出错原因后,修改原理图电路,重新查错直到没有原则性错误为止;5)设计元件封装:同原理图元件一样,Protel也不可能提供所有元件的封装。

如果元件封装库中没有所需尺寸的封装,则需自己手动设计元件的封装。

树立自己的元件封装库,将所有设计的元件封装都放在元件封装库中,以便今后设计中取用。

6)设计PcB板:在确认原理图无误后,开端PcB板的绘制工作,首先要根据系统的设计和工艺要求,绘出PcB板的轮廓,并肯定PcB 的工艺请求,这主要包括断定使用几层板,加工精度等,然后将原理图导入到PcB板中,在网络表、设计规则和原理图的领导下布局和布线。

最后利用dRc工具查错。

7)文档整顿:文档收拾是很必要的,它有利于今后的保护和改良工作。

通常情形下,全部设计的基础流程如上所述,其中有些步骤在设计中经常会穿插进行。

PcB板图是所有设计的终极结果,PcB板图的好坏直接决议了设计结果是否满足请求,PcB板图的设计过程主要有以下几步:1)计划PcB板在正式绘制之前,要计划好PcB板的尺寸,这包含PcB板的边缘尺寸和内部预留的用于固定的螺丝孔,也包含其他需要挖掉和预留的空间,这些地位是由装备的外形和接口来决议。

Cadence自学笔记笔记

Cadence自学笔记笔记

Cadence⾃学笔记笔记Cadence SPB15.7 快速⼊门视频教程⽬录Capture CIS 原理图及元件库部分第1-15讲第1讲课程介绍,学习⽅法,了解CADENCE软件Cadence下⼏个程序说明Design Entry CIS 系统级原理图设计Design Entry HDL 芯⽚设计Layout plus orcad ⾃带的pcb板布局布线⼯具,功能不是很强⼤,不推荐使⽤Pcb Editor Pcb librarian Cadence带的PCB布局布线封装设计PCB Router pcb⾃动布线Pcb SI SigXplorer Pcb电路板信号完整性仿真OrCAD Capture CIS 对元件管理更⽅便相对于OrCAD CaptureI 放⼤O 缩⼩页⾯属性设置options Design Templateoptions Schematic Page Propertie s第2讲创建⼯程,创建元件库原理图元件库,某元件分成⼏个部分,各部分间浏览ctrl+N ctrl+B元件创建完后修改footprint封装,options Package Properties第3讲分裂元件的制作⽅法1、homogeneous 和heterogeneous 区别homogeneous,芯⽚包含⼏个完全相同的部分选择该模式,画好第⼀个part后,后⾯的part会⾃动⽣成,因为完全⼀样。

但是引脚编号留空了,要⾃⼰再设置引脚编号。

heterogeneous芯⽚包含⼏个功能部分,可按照功能部分分成⼏个部分。

ctrl+N ctrl+B切换分裂元件的各个部分原理图画完之后,要对各元件⾃动编号,在项⽬管理窗⼝选择项⽬,点击tools annotate,在Action下⾯选择相应的动作。

2、创建homogeneous类型元件3、创建heterogeneous类型元件第4讲正确使⽤heterogeneous类型的元件1、可能出现的错误Cannot perform annotation of heterogeneous part J?A(Value RCA_Octal_stack ) part has not been uniquely group(using a common User Property with differing Values) or the device designation has not been chosen2、出现错误的原因分裂元件分成⼏个part,并且⽤了多⽚这样的分裂元件。

dxp 元器件库 基础知识

dxp 元器件库 基础知识

DXP中有两个预置的元件库是最常用的。

Device和Conection一般的【电阻】【电容】【电感】【三极管】【场效应管】【开关】【晶振】【二极管】【电池】【天线】等等都在Device库里面。

可以看出这些都是基本的分立元件。

Conection库中放的都是插装的连接器件,比如排针,DB9串口接头,DB25并口接头之类。

预置的元件库还有还几个都是初级应用不常用的,可以不管,将他们Remove 掉。

基本得只用这两个库就行了。

画图画多了之后你对这两个库都熟悉了。

找不到的元件都自己画。

初学protel DXP 碰到最多的问题就是:不知道元件放在哪个库中。

这里我收集了DXP2004常用元件库下常见的元件。

使用时,只需在libary中选择相应的元件库后,输入英文的前几个字母就可看到相应的元件了。

通过添加通配符*,可以扩大选择范围。

下面这些库元件都是DXP 2004自带的不用下载。

########### DXP2004下Miscellaneous Devices.Intlib元件库中常用元件有:电阻系列(res*)排组(res pack*)电感(inductor*)电容(cap*,capacitor*)二极管系列(diode*,d*)三极管系列(npn*,pnp*,mos*,MOSFET*,MESFET*,jfet*,IGBT*)运算放大器系列(op*)继电器(relay*)8位数码显示管(dpy*)电桥(bri*bridge)光电耦合器( opto* ,optoisolator )光电二极管、三极管(photo*)模数转换、数模转换器(adc-8,dac-8)晶振(xtal)电源(battery)喇叭(speaker)麦克风(mic*)小灯泡(lamp*)响铃(bell)天线(antenna)保险丝(fuse*)开关系列(sw*)跳线(jumper*)变压器系列(trans*)????(tube*)(scr)(neon)(buzzer)(coax)晶振(crystal oscillator)的元件库名称是Miscellaneous Devices.Intlib, 在search栏中输入*soc 即可。

dxp实训心得参考8篇

dxp实训心得参考8篇

dxp实训心得参考8篇(经典版)编制人:__________________审核人:__________________审批人:__________________编制单位:__________________编制时间:____年____月____日序言下载提示:该文档是本店铺精心编制而成的,希望大家下载后,能够帮助大家解决实际问题。

文档下载后可定制修改,请根据实际需要进行调整和使用,谢谢!并且,本店铺为大家提供各种类型的经典范文,如工作计划、工作总结、述职报告、合同协议、演讲致辞、条据文书、心得体会、策划方案、教学资料、其他范文等等,想了解不同范文格式和写法,敬请关注!Download tips: This document is carefully compiled by this editor. I hope that after you download it, it can help you solve practical problems. The document can be customized and modified after downloading, please adjust and use it according to actual needs, thank you!Moreover, our store provides various types of classic sample essays, such as work plans, work summaries, job reports, contract agreements, speeches, documents, insights, planning plans, teaching materials, other sample essays, and more. If you want to learn about different sample formats and writing methods, please stay tuned!dxp实训心得参考8篇通过撰写心得体会,可以培养自我反思和自我评估的能力,优异的心得体会能够帮助我们更好地应对人生的挑战和困难,本店铺今天就为您带来了dXp2024实训心得参考8篇,相信一定会对你有所帮助。

dxp学习笔记

dxp学习笔记

1)如何使PCB图的背景和边框一致?按住shift选中所有边框,Design->Board shape->Define from selected objects2)线条形成回路就自动删除原来的线解决办法:place line就不会改变原来的。

Place route会改变。

3)同一个项目几个原理图的同一个网络,用不同的网络标号,结果生成网络表时用第一个标注的网络标号。

4)检查PowerPCB印制板图的网络表的方法:把印制板图生成的网络表转换成protel格式,在protel99里先随便导入一个PCB图,然后import两个网络表,用protel99的网络表-》高级-》菜单-》比较网络表在DXP里用reports-》report single pin nets检查没有连线的空管脚是否有遗漏。

5)Pb-free Package 无铅6) 元器件自动编号:Tools >> annotate7) 材料表:Reports >>bill of materials,或Reports >>simple BOM8) 测量尺寸:Ctrl+M9) PROTEL走线时改线宽:按TAB键。

10) QFP封装元器件管脚间距≥0.5mm11) 反面一般只能放2PIN器件,多PIN器件重量不能超过2克12) QFP、BGA器件周围3mm不放其他器件13) 表贴元器件最小0603封装14) DCP010505BP输入电容用2.2uF/0805封装陶瓷电容,输出电容用一个1uF/0805封装陶瓷电容和一个10V/10uF电解电容15) 多上下拉电阻用0603封装电阻,用表贴排阻的话供货厂家少16) 如何让相同的器件依次编号?先RESET ALL(先打开所有项目文档,在不LOCK状态下RESET ALL),然后全部LOCK(鼠标右键FIND SIMILATE OBJECT,选勾select matching,选择OPEN DOCUMENT,在INSPECTOR中选择LOCK DESIGNATOR),然后过滤某种器件,解除LOCK,然后用Tools >> annotate对该种器件编号,然后不用(清除过滤和LOCK编好号的器件),直接过滤另外一种器件,解除LOCK,其后步骤同上。

DXP2004常用库要点

DXP2004常用库要点

1. Miscellaneous Devices库元件名列表元器件英文名中文译名NPN NPN型三级管PNP PNP型三级管以A开头的元器件ADC 模数转换器Antenna 天线以B开头的元器件Battery 直流电源Bell 铃,钟(喇叭)Bridge 整流桥(二极管)Buzzer 蜂鸣器以C开头的元器件Cap 电容Cap Feed 穿心电容Cap Pol 有极性电容Cap Var 可调电容Circuit Breaker 熔断丝Coax 同轴电缆以D开头的元器件D Schottky 稳压二极管D Varactor 变容二极管D Zener 稳压二极管Diac-NPN 双向触发二极管(NPN)Diac-PNP 双向触发二极管(PNP)Diode 晶体二极管Diode-10TQ035 肖特二极管Diode BBY31 变容真空二极管D Tunnel 1 江崎二极管DPY 数码管DPY Overflow 进位显示数码管Dpy 16-seg 16段数码管以F开头的元器件Fuse 保险丝Fuse 保险丝Fuse Thermal 温度保险丝以I开头的元器件IGBT-N 绝缘栅双极型晶体管IGBT-P 绝缘栅双极型晶体管Inductor adj 可变电感Inductor iron adj 有芯可变电感Inductor iron dot 电感Inductor iron 电感Inductor Isolated 电感Inductor 电感以J开头的元器件JFET-N 场效应晶体管Jumper 跳线以L开头的元器件Lamp 照射器Lamp 照射器LED 发光二极管以M开头的元器件Mesfet 场效应晶体管Meter 测量器Mic 麦克风Mic 麦克风MOSFET-2GN 金氧半场效晶体管MOSFET-N 金氧半场效晶体管MOTOR 马达以N开头的元器件NEON 氖气灯NMOS NMOS(N沟道场效应管)NPN NPN型三极管以O开头的元器件OP AMP 集成运算放大器以P开头的元器件PHOTO NPN 光敏三极管(NPN)PLL 锁相环PUT 可编程单结晶体PORT 端口元器件英文名中文译名以R开头的元器件RELAY 继电器RES 电阻以S开头的元器件SCR 晶闸管SPEAKER 扬声器SW 开关以T开头的元器件TRANS 变压器Tranzorb 矽二极体Triac 三端双向可控硅Tube 6L6GC 电子管6L6GCTube 6SN7 电子管6SN7Tube 12AU7 电子管12AU7Tube 12AX7 电子管12AX7Tube 5879 电子管5879Tube 7199 电子管7199Tube Triode 三极真空管以U开头的元器件UJT-N N型单结晶体管UJT-P P型单结晶体管以V开头的元器件Volt Reg 电压调节器以X开头的元器件XTAL 晶振2. Miscellaneous Connectors库元件名列表元器件英文名中文译名以B开头的元器件BNC 接头以C开头的元器件COAX-F 同轴电缆COAX-M 同轴电缆CON EISAE 总线插口Connector 连接器以E开头的元器件Edge Con 印刷板连接器(类似内存的插接口)以H开头的元器件Header 插头以M开头的元器件MHDR 插头以P开头的元器件Phonejack Stereo SW 立体声耳机插座PLUG 插头PS2-6PIN PS2 接口,俗称“小口”PWR2.5 电源以R开头的元器件RCA 高频线接插器以S开头的元器件SMB 连接器Socket 插座3 Miscellaneous Devices元器件库(图片名称功能对照版)4 Miscellaneous Connectors库(图片名称功能对照版)。

《Cadence Allegro 电子设计常见问题解答500例》读书笔记模板

《Cadence Allegro 电子设计常见问题解答500例》读书笔记模板

06
关于本书
05
附录A电子 设计常用的 QA要点
1.1什么叫原理图?它的作用是什么? 1.2什么叫PCB版图?它的作用是什么? 1.3什么叫原理图符号?它的作用是什么? 1.4什么叫PCB符号?它的作用是什么? 1.5 PCB封装的组成元素有哪些? 1.6常见的PCB封装类型有哪些? 1.7原理图中的元器件与PCB版图中的元器件是怎么关联的? 1.8整个PCB版图设计的完整流程是什么? 1.9什么叫金属化孔?
本书以Cadence公司的SPB 16.6版本的OrCAD软件与Cadence Allegro软件为基础,收录了包括电子设计的 基本概念、原理图封装库的设计、原理图的设计、PCB封装库的设计、Cadence Allegro软件操作实战、PCB版图 的设计等6个电子设计大类的500个常见问题,对其进行了详细解答,并分享了处理原理图设计与PCB版图设计的 方法与技巧。
Cadence Allegro 电子设计 常见问题解答500例
读书笔记模板
01 思维导图
03 目录分析 05 精彩摘录
目录
02 内容摘要 04 读书笔记 06 作者介绍
思维导图
本书关键字分析思维导图
电子设计

电子设计

版图 软件
含义
原理 软件
图 设计
封装
问题解答
元器件
作用
文件
焊盘
ห้องสมุดไป่ตู้
原理
铜皮
内容摘要
目录分析
第1章电子设计基 本概念100问解析
内容简介
第2章 OrCAD原理 图封装库50问解析
01
第3章 OrCAD原理 图设计90 问解析
02
第4章 CadenceA llegro封 装库设计 50问解析

DXP实践学习手册(一)_图文

DXP实践学习手册(一)_图文

DXP 实践学习手册(一)作者:权利红我近期将会把我以前学习的一些资料整理并进行上传,方便更多的学习者学习,知识只有在共享中才能升华。

这些都是实际操作的很好的知识范例,我做了详细的图解。

常用却不啰嗦。

主要是我看到有很多初学者不知道该怎么学习,也总有人问我,我单片机该怎样学呢,DXP是不是很难等等的问题,电子专业直到毕业STC,51没有碰过的同学也不在少数,别说AVR、MSP430、STM32、arduino、FPGA、DSP、ARM等等这些了,玩的人更是少则又少,其实有很多同学也是很想学的,只不过一开始没有一个很好的人带,学着学着就没有了兴趣,就不想学了。

真的如果没有一个好的指导人,会让你浪费很多学习时间,而且后期可能就没有学习的兴趣了,所以我想把我的一些经验分享给大家,以便能给那些没有人带的新生们一些帮助。

因此我想着通过各种各样的平台去分享我的知识和经验,百度文库、淘宝、论坛、博客这些我都去尝试,博客权利红的专栏我在搞,百度文库我也在弄,觉得百度文库、百度网盘和淘宝是个很好的平台,百度文库和网盘可以上传很多的资料,淘宝能让更多人直接看到你的东西,所以我开始弄淘宝,主要不是为了挣钱,为的是能有更多的新生不在迷茫中学习,能够学的更快学的更好,所以我的淘宝定价很低,可以让那些想学习的同学不失去兴趣、能够得到更好的学习平台,我要努力的把这件事情做下去,让更多的大学新生老生们们受益,让更多想学的大学同学能够学的快学的好。

//==DXP实践学习手册(一)//==作者:权利红//==2012-1-5//==版本:Rov1//=========================================================== =======//======================================================= ===========1. 工程的保存//=========================================================== =======先建立工程按要求的工程名保存工程到指定位置建立原理图文件并按要求的文件名保存建立PCB 文件并按要求的文件名保存建立原理图库文件并按要求的文件名保存建立PCB 库文件并按要求的文件名保存//=========================================================== =======2.网格的颜色调整//=========================================================== =======修改Grid Color见图1图一3.标题栏的设置//=========================================================== =======选择Convert SpecialStrings在对应的位置填写你要的内容点击Place 下的TextString按tab 键出现下面图示在text下选择你所要的信息放置到标题栏相应位置即可//=========================================================== =======4.创建网络表文件//=========================================================== =======//======================================================= ===========5.创建Excel 表格//=========================================================== =======第一步第二步第三步//=========================================================== =======6. 标注尺寸线//=========================================================== =======空格键进行水平方向垂直方向切换//=========================================================== =======7.裁剪板子//=========================================================== =======先将板子的整体形状裁剪出来在机械层画出板子具体形状再进行部分裁剪空格键切换线条形状//=========================================================== =======8. 规则设定//=========================================================== =======点击Design 下的Rules//=========================================================== =======9. 标题栏模板制作//=========================================================== =======新建原理图文件并保存为dot类型将title block勾掉直接放置文本也可放置图片放置标题栏选择文件打开点击ok 即可。

DXP 中必记的快捷键及一些参数解释

DXP 中必记的快捷键及一些参数解释

DXP中必记的快捷键及一些参数解释1.编辑原理图时,按右键可以拖动电路。

2.按住ctrl键,用滚轮可以放大缩小。

3.想同时移动多个元件,要同时选中多个元件,按shift键即可。

4.拖动一个元件,但不会改变和其他脚的连接关系,连线会跟着延长,快捷键先按M 再按D,再点要移动的元件,即可,当然只有导线会跟着延长,若是直接与电阻或是什么芯片的管脚连接,中间没有导线,那拖动的时候,连接就会断开。

5.可以将元件对折,双击零件,在属性框的Graphical选项中,选中Mirrored选项。

6.S+C,执行这个命令后单击导线、电气结点、端口或网络标号,可以将实际连接在一起的导线、电线结点、端口或网络标号选中,取消这个状态,点按屏幕右下角的clear即可。

可视网格:可视网格是图样上可以看到的网格,用作视觉参照,一般将它的范围选为和捕获风格同样大,以便捕获网格的使用。

两上参数,一般只用到grid2,表示网格的大小,grid1是表示一个网格内又有小网格,用细线表示,不知道为什么,软件里老显示不出来,所以基本不用。

捕获网格:使用捕获网格,在放置或者移动图样上的实体时,将光标定位在捕获网格上,也就是说定义的捕获风格就是光标移动步伐的大小。

电气网格:电气网格用于引导布线,在原理图编辑器中布置导线时,当它落入到另一个实体的电气连接点的电气范围内时,光标会捕获到这个实体,这个实体的电气连接点就会出现热点,此时单击鼠标就可以将两个电气实体连接上了。

元件网格:捕获网格是限制鼠标移动位置的网格,它对移动线啊什么的都限制,元件网格是专门针对移动或者放置元件限制的,例如将元件网格设置为100mile,捕获网格设置为25mil,这样元件移动时,始终保持元件在100mil的网格上,即元件移动都是以100mil为单位的,而布线时也总能够从管脚正中间穿过,即布线等是以25mil为单位的,即元件移动不受捕获网格的限制。

7.丈量两点间的距离,用ctrl+M,拖两点即可。

关于protel学习的一些知识点

关于protel学习的一些知识点

这些是我从所学习的内容中摘录出来的重点。

1、将PCB中的格点进行切换(点形或线形),如图所示。

2、设置原点的位置,如图所示。

3、在keep-out-layer定义PCB板的边界。

4、设置移动的步长,如图所示。

如图所示。

6、在拖动元件的过程中按L键可使元件在顶层和底层之间切换。

7、同时改变所有标号的尺寸:选中其中一个标号后右击此标号,再出现的快捷菜单中选择Find Similar Objects…命令,然后在出现的对话框中单击OK按钮,在出现的对话框中进行修改。

此时板子的颜色发生了变化。

按clear键可以回到原来的状态。

如图所示。

8、符合铜柱的尺寸的焊盘的设定(安装孔)。

如图所示。

9、可以双击焊盘选定locked 将其锁定。

10、在自动布线时可以将Lock All Pre-routes 前面的复选框选中以便锁定自己在这之前已布好的线。

11、铺铜时的设定:12、元件的布局一般是按照电路原理图的走向来布局。

13、布线规则必须要设定的三大规则是:安全间距设定(electrical/ clearance)、粗线设定(routing/width)和布线层设定(routing/ routing layers)。

14、要取消电路板的布线,选择tools | un-rute | all 命令即可。

15、拆单根线:tools | un-rute | connection16、对不同的电路可以采用不同的设计规则,如果是设计双面板,很多规则可以采用系统默认值,系统默认值就是对双面板进行布线的设置。

17、clearance(安全距离)选项区域设置安全距离设置的是PCB电路板在布置铜膜导线时,元件焊盘和焊盘之间、焊盘与导线之间的最小的距离。

18、a、安全距离的设置方法:(1)在clearance上右击鼠标,从弹出的快捷菜单中选择New Rule选项,如图所示。

系统将自动当前设计规则为准,生成名为Clearance_1的新设计规则,其设计对话框如图所示。

expert one-on-one j2ee design and development 笔记

expert one-on-one j2ee design and development 笔记

以下是Expert One-on-One J2EE Design and Development的部分笔记:1.J2EE(Java 2 Platform,Enterprise Edition)是一个用于构建分布式企业级应用的平台。

它提供了一系列的标准和规范,使得开发者可以更高效地开发出稳定、安全和可靠的应用程序。

2.J2EE的核心组件包括:•Servlet:用于处理客户端请求和生成动态Web页面。

•JSP(JavaServer Pages):用于创建动态Web页面。

•EJB(Enterprise JavaBeans):用于实现企业级应用程序的业务逻辑。

•JNDI(Java Naming and Directory Interface):用于查找和访问企业资源,如数据库连接、邮件服务器等。

•JTA(Java Transaction API):用于协调和管理分布式事务。

•JMS(Java Message Service):用于处理消息传递,支持队列和主题两种消息传递模型。

1.在J2EE应用程序中,通常使用MVC(Model-View-Controller)设计模式来分离应用程序的不同方面。

Model表示应用程序的数据和业务逻辑,View表示应用程序的用户界面,Controller表示应用程序的控制逻辑。

2.在J2EE应用程序中,通常使用依赖注入(Dependency Injection)来管理组件之间的依赖关系。

依赖注入是一种设计模式,通过将组件之间的依赖关系从硬编码方式改为配置方式,使得组件之间的耦合度降低,便于测试和维护。

3.在J2EE应用程序中,通常使用拦截器(Interceptor)来处理跨多个组件的通用逻辑,例如日志记录、权限验证等。

拦截器可以在请求到达目标组件之前或之后执行特定的操作。

4.在J2EE应用程序中,通常使用AOP(Aspect-Oriented Programming)来处理跨多个组件的横切关注点,例如日志记录、事务管理等。

DXP学习笔记

DXP学习笔记

1.元件库的加载:Library—>Istalled—>Istall;2.元件对齐操作:按下shift键,依次选中要对齐的元件,Edit-->Align,选择对齐方式(左对齐、右对齐、水平中心排列、水平等距分布、顶部对齐、底部对齐、垂直中心排列、垂直等距分布、水排列对象到当前网格)。

3.电气规则检查(ERC),可按照用户设计的规则进行,在执行检查后自动生成各种可能存在错误的报表,并且在原理图中以特殊符号标明。

4.元件序号重新编号Tools-->Annotate,选择编号规则:Across Then Down(从左到右、从上到下)、Across then up、Up then across、Down then across。

单击对话框中的Reset All,将删除原理图中的所有编号,同时系统提示用户原理图中发生了哪些变化。

单击Update changes list,提示重新编号后,和原图比较有哪些元件编号发生了变化。

单击Accept changes(Create ECO),单击Execute changes。

5.新建元件库时,在第四象限的原点附近绘制元件外形(若不在第四现象原点处绘制元件,在使用元件时,将出现参考点离元件很远的情况)。

6. 自动布线器所放置的导线有两种颜色:红色表示导线在板的顶层信号层,而蓝色表示底层信号层。

自动布线器所使用的层是由PCB板向导设置的Routing Layers 设计规则中所指明的。

7. 如何用DXP制作PCB版当原理图画好后且封装,在左下角找到files,点击进入在最下面找到PCB向导,也就是PCB Board Wizard 点击进入一步步点击完成finish ,弹出下图。

左键点住PCB1.PcbDoc 不放,拖动到工程里去,并且保存。

完成后如下(切记,一定要保存)点击Design updade PCB document 节能灯.PcbDoc弹出下图,将元件拖到版内,即可布线.7.。

DXperience GridControl 使用笔记

DXperience GridControl 使用笔记

DXperience GridControl 使用笔记GridControl关于数据绑定:明细部分数据赋值的时候不需要象MultilRow那样逐行赋值,它只需要绑定数据集就可以了,在DataSet里需要对应字段名,这样在SetRowCellValue或者GetRowCellValue里指定的Columns[“xx”]才能设置或取到正确的数据在SetRequestData里用记录集收集数据,而不需要象MultilRow取明细中的值,要注意的是在行离开的时候最好用到View的UpdateCurrentRow方法用语更新记录集在GetResponseData直接用GridControl 的DataSource绑定到传回的记录集上,如果有显示不正确的说明在DataSet里或着Columns的FiledName不正确明细选择不要背景色Appearance FocuseRow HideSelectionRow内部Enter能跳动GridView OptionsNavigation EnterMoveNextColoumn→TrueGridView设置IndicatorWidth 行头的宽度设置Tab键可用:OptionsBehavior→FocusLeaveOnTab →True设置列是否可移动,可筛选,可排序:OptionsCustomization→AllowColumnMoving→False AllowFilter→False AllowSort→False光标进入单元格而不是整行的设置:OptionsSelect EnableApppearanceFocusedRow→False MultiSelect→CellSelect明细进入处于编辑状态:OptionsSelection→EnableAppearanceFocuseRow→False MultiSelectMode→CellSelectColumns的设置ColumnEdit设置列的类型比如comboxFieldName 填充的字段名列的操作OptionsColumn →AllowEdit,AllowFocus,ReadOnly,TabStop数字型注意设置DisplayFormat,对齐方式一般是右对齐设置在AppearanceCell→TextOptions→HAlignment→Far,数字型有时候需要清空处理,赋成空会出现错误,要赋成Null就需要设置ColumnEdit→AllowNullInput→True有多个明细不出现Tab选项上面文字OptionsDetail→ShowDetailTabs → False一次只展开一个明细的数据OptionsDetail→AllowOnlyOneMasterRowExpanded → True Combox在明细没有显示出来ShowButtonMode → ShowAlways 初始化的时候也需要加载数据检索画面需要单双行颜色不一致OptionsView →EnableAppearanceEvenRow →True 在设计代码中加上皮肤颜色NumberSpinTextBoxProperties → DisplayFormat,EditFormat 设置NumericEditMask设置d Mask EditMask设置dMaxValue,MinValueDateTextBoxProperties → DisplayFormat,EditFormat 设置DataTimeMask UseMaskAsDisplayFormat TrueMaxValue,MinValueGridView事件CustomDrawRowIndicator用于处理行头的自动编号InvalidRowException 用于只捕捉自定义异常,如果不写这个事件的话,如果列输入的格式不正确的话系统会自动报出输入的字符串格式不正确,但这个是它内部捕捉的,这个不要让它报出来就在这个事件里写ValidateRow 用于行离开时处理,列本身长度的控制是MaxLength,但这个是字符长度,通常需要按字节截取,行离开的时候字节截取就在这个事件处理;判断数据合法性也在这个事件处理,需要注意的是在之前调用View的CloseEditor()用于关闭编辑状态,如果没用这方法的话会出现有时行离开取不到之前的值最后需要刷新记录集UpdateCurrentRow() ValidatingEditor 用于处理正在编辑离开处理,这个事件可以用来处理合法性的判断,但它只能捕捉到有值改变的情况下,如果是直接是空离开,是不触发的,如果是有值的情况再改变成空是可以触发的TextEdit事件控件的Enter事件如stText = this.ViewMaterial.GetRowCellValue(this.ViewMaterial.FocusedRowHandle, "MaterialID").ToString();控件的Leave事件用于如ID离开取出相应的名称,或者补0,或者后面的列清空,注意数字型的清空如果之前设置了允许Null的情况,清空时列的值是赋成null文本和Combox组合的情况选择框赋值时注意,选择框没有SelectIndex属性,赋值的时候就用SetRowCellValue(this.ViewMaterial.FocusedRowHandle, ViewMaterial.Columns["UnitName"], this.cmbMXUnitName.Items[i])SelectedIndexChanged 用于处理选择后给文本赋值SetRowCellValue(this.ViewMaterial.FocusedRowHandle, ViewMaterial.Columns["MXUnitID"], ((boBoxEdit)sender).SelectedItem.ToString().Substring(0, vLength));事件Leave 和Validated是不同的,特别是在需要补0的控件,需要使用Validated才会有效果,他们的区别在于Validated是先检验处理,在触发Leave事件,而Leave就只是离开时需要统一处理的1. 明细部分移动由Enter改成Tab,设置参照上面的2. 主的有效明细字段清空时,清空后面的数据3. 主的有效明细字段为空的时候,不提示错误信息,因为该行不作为数据收集4. 如果主的有效明细字段不为空的时候,其他有效明细字段为空,提示错误信息图形说明上述情况:材料编号作为主的有效明细字段(2)如果材料编号清空的话,材料名,规格,数量,单位就要清空(3)如果材料编号为空,就算数量,单位不为空也不提示错误,因为编号没填就不是有效明细(4)如果材料编号不为空,数量或单位为空,提示错误信息明细内式样设计:1. 组合控件:如TextBox+Label+Button或TextBox+ComboBox的字段,字段标题居中显示,字段设计如下所示:2.数字类型的数据右对齐,数字类型的控件有CalcEdit和SpinEdit,可以通过需求选择,两者的区别CalcEdit SpinEdit没有MaxValue和MinValue 可以通过设置MaxValue和MinValue属性设置数字大小共同点:设置MaxLength,最大长度,设置输入格式,Mask→EditMask,显示格式:DisplayFormat,画面显示时按显示格式要求显示时:Mask→UseMaskAsDisplayFormat=True,金额计算方式/ 显示格式:SummaryItem→SummaryType / DisplayFormat2. ComboBoxEdit的使用,焦点不能进入:AllowFocus=false,不能进行编辑:TextEditStyle=DisableTextEditor调用该控件的字段的属性设置:OptionsColumn→AllowMove=false,TabStop=false3. ButtonEdit的使用,只显示按钮:TextEditStyle=HideTextEditor 宽度:Width=224. 用于只读控件的属性设置,OptionsColumn 的AllowEdit=false、AllowFocus=false、ReadOnly=True、TabStop=false4. 明细内部字段和基本的字段设计相同部分按照基本设计修改,明细行高为20(此为默认行高,不需要进行设置)5. 若无法正好显示明细内行,经确认后再行修改,不得随意按个人意愿修改关于之前遗留问题解决方案:1.明细行离开会把全部错误信息都提示出来,如果某一列已经合法了错误提示信息依然存在,并不能及时清空错误信息,原因是在ValidatingEditor事件没有清空ValidateRow事件时捕捉的错误,办法是在ValidatingEditor事件里,如果合法就清空ValidateRow事件时捕捉的错误清空调用方法如XX.SetColumnError(this.XX.Columns["Quantity"], "");2.关于明细复选框勾选不上的原因,明细复选框的数据源必须是bool型,所以在数据集绑定的字段要设置DataType为System.Boolean,默认是System.String3.明细数字用到SpinEdit如果在单元格上下列点击,再关闭窗体出现系统错误,原因是在ValidatingEditor事件中 e.Value是null,而用于接受数字值是CastUtility.ToDecimal(e.Value.ToString()),e.Value.ToString()是会转换失败的,解决办法是如果判断当前列是数字的话,先判断e.V alue是不是Null在不是Null的情况才进行下面的处理关于明细中用到多个View 的情况,处理办法如下:1. 关于关系记录集的添加:在工程中(这个项目是添加在Core—>Relation)需要添加数据集xsd,在这里指定字段,以及主外键关系,编译以后在工具箱的组件中就会有刚添加的关系数据集,然后拖到现窗体画面2. 本身View先画好主的以后,再添加Level,选择Level所需要用的View类型(本身属性设置略)这个时候子View里的FiledList是没有任何字段的3. 指定关系绑定数据,这个是最重要的部分默认情况,在GirdControl里的DataSource是无法选择刚添加的记录集中主表,而只有在界面设计类中通过代码来添加,打开Windows 窗体设计器生成的代码,添加如this.GridList.DataSource = this.dsOrder1.Order;这样回到窗体设计画面看到DataSource里绑定的是dsOrder1.Order,这样绑定了以后运行仍然是不正确的,不能出现子表设计画面,在GirdControl上有两个按钮一个Retrieve Details和Run Designer,需要点击Retrieve Details然后会出现对话框,选择清空所有格式,这个时候Level中的之前画好的View会被清掉,被默认的取代,这个时候,点击新的View,然后会有两个选项,一个是新的设计View类型,一个是自己之前画好的子View,点击选择子View,这样就完成了主与子表的设计,这个时候再点击明细内部设计的Columns子View里的FiledLis就会出现字段这样处理完了之后,怎么把数据加载到记录集数据的问题需要把数据导入到主表和子表中去,如for (int i = 0; i < vResponse.Tables[0].Rows.Count; i++){DataRow rw = vResponse.Tables[0].Rows[i];this.dsOrder1.Order.ImportRow(rw);}for (int j = 0; j < vResponse.Tables[1].Rows.Count; j++){DataRow rw = vResponse.Tables[1].Rows[j];this.dsOrder1.OrderDetail.ImportRow(rw);}要注意的是记录集的清空Clear(),特别是设置了主外键的时候,数据重复的话会冲突行头自动编号private void ViewMaterial_CustomDrawRowIndicator(object sender, DevExpress.XtraGrid.Views.Grid.RowIndicatorCustomDrawEventArgs e){if (.IsRowIndicator && e.RowHandle >= 0){.DisplayText = (e.RowHandle + 1).ToString().Trim();}}下面再介绍关于怎么处理子的View里列离开事件响应处理的问题通常情况下如Enter事件是stText = this.ViewData1.GetRowCellV alue(this.ViewData1.FocusedRowHandle, "BillStatus").ToString();但是这个语句在子的View是不管用的,因为当前的FocusedRowHandle值是无法定位到子表中的位置,处理办法是用先接受当前GridView,只有判断当前是子的View的时候,再用当前View的FocusedRowHandle才能知道是哪一行关于怎么接受字段值的问题:用之前实例过的View的GetDataRow(vRow)vRow就是用前面FocusedRowHandleDevExpress.XtraGrid.Views.Grid.GridView view = this.GridList.FocusedView asDevExpress.XtraGrid.Views.Grid.GridView;DataRow rw = view.GetDataRow(view.FocusedRowHandle);stText = rw["StatusID"].ToString();关于怎么赋值给指定的列的问题:用之前实例过的View的SetFocusedRowCellValue要注意的是事件中接受刚输入的值,以前是XXView. CloseEditor,才能接受新的值,但如果有多个View如果是用子View名. CloseEditor是没有作用的,需要用之前实例过当前的View 的CloseEditor页脚合计值的设置首先View的ShowFooter 要设置成True,Columns的SummaryItem设置格式默认合计是以行为单位,但如果要使界面能即使刷新是用ViewData.RefreshData();取得合计值用ViewData.Columns["ProductMoney"].SummaryText数字控件SpinEdit 边框默认会有下拉框,去掉的话是在Buttons中移除,同样计算器也是这样出现滚动条设置在ColumnAutoWidth→ False不要出现页脚设置在ShowFooter →Flase报表部分纸型设置PaperKind A4 边距设置Margins明细控制只读以及颜色的控制,现在是通过GridView_ShowingEditor和RowCellStyle组合控制,只是有个问题,如果e.Cancel = true的话会使明细的Enter键无效了,所以要处理如果让他能跳动就不要把e.Cancel 设置为true,只是这个有点不好的是被锁住的列光标能进入,只是不能编辑在ShowingEdito事件中通过this.GridView.FocusedColumn.FieldName来判断是否允许编辑如果可以编辑this.GridView.FocusedColumn.OptionsColumn.ReadOnly = false ; e.Cancel = false RowCellStyle事件主要控制颜色的显示,要注意的是获取列不能用FocusedColumn而要用e.Column.FieldName,得到要设置的列后通过e.Appearance.BackColor设置背景色有子明细的View,有时候需要获得它父类的所在行编号通过实例化View对象DevExpress.XtraGrid.Views.Grid.GridView vFocusView = this.GridList.FocusedView as DevExpress.XtraGrid.Views.Grid.GridView;通过判断是父View还是子View如果是父View用vFocusView.FocusedRowHandle;如果是子View用vFocusView.SourceRowHandle在子View里有检索按钮的话,如果检索画面跳出来后,明细行缩上去了,所以返回后赋值会找不到所要赋值的行,解决办法是先在记录父View所在行,用DataRow 记录子View检索后的数据最终反应到记录集中DevExpress.XtraGrid.Views.Grid.GridView vFocusView = this.GridMaterialList.FocusedView as DevExpress.XtraGrid.Views.Grid.GridView; //实例化对象int vParentRowHandle = vFocusView.SourceRowHandle; //获得父类位置this.GridMaterialView.BeginUpdate();DataRow rw1 = vFocusView.GetDataRow(vFocusView.FocusedRowHandle);//获得子类当前行的记录FrmSearch search = new FrmSearch(SearchMode.供应商查询);if (search.CD1 != null && !search.CD1.Equals("")){this.GridMaterialView.ExpandMasterRow(vParentRowHandle); //展开父类AgtProvider agt2 = new AgtProvider();agt2.ProviderID = search.CD1;DataSet vResponse = agt2.Get();if (vResponse.Tables[0].Rows.Count > 0){rw1["ProviderID"] = vResponse.Tables[0].Rows[0]["ProviderID"]; //设置查询到的数据}}this.GridMaterialView.EndUpdate();明细行中有按钮上面文字要出来,默认是...内部按钮Buttons→Caption设置要显示的字Kind→Glyph报错时需要把光标定义到子明细的列上//把光标定义到父类this.GridMaterialView.FocusedRowHandle = i;this.GridMaterialView.ExpandMasterRow(i);//通过实例化父类对象,光标指定到子明细中GridView vFocusView = (GridView)this.GridMaterialView.GetVisibleDetailView(i);this.GridMaterialList.FocusedView = vFocusView;vFocusView.Focus();vFocusView.FocusedRowHandle = j;vFocusView.FocusedColumn = vFocusView.Columns["ProvideQuantity"];关于消息提示,跳出画面的总结这是一种组合出来的结果。

cadence学习笔记

cadence学习笔记

cadence学习笔记1. Allegro中我设置了highlight的颜⾊为⽩⾊,但选中后颜⾊是⽩蓝相间的,很不⽅便查看。

是什么地⽅需要设置,哪位⼤虾告诉哈我?答:setup/user preferences/display/display_nohilitefont 这个选项打勾就⾏了。

2. 不⼩⼼按了Highlight Sov后部分线⾼亮成⽩⾊,怎样取消?答:这个是⽤来检查跨分割的,取消的办法是:如果是4层板的话,在电源层跟地层都铺上地⽹络,然后再按Highlight Sov刷新即可。

3. 如何更改Highlight⾼亮默认颜⾊?答:可以在Display->Color/Visibility->Display->Temporary Highlight⾥修改即可,临时修改颜⾊可以点Display->Assign Color 来实现。

4. 如实现Highlight⾼亮部分⽹络,⽽背景变暗,就像Altium Designer那样?答:可以在Display->Color/Visibility->Display->Shadow Mode打开该模式,并且选中Dim active layer 即可。

5. 快速切换层快捷键答:可以按数字区⾥的“-”或“+”来换层。

6. OrCAD跟Allegro交互时,出现WARNING [CAP0072] Could not find component to highlight 错误等?答:OrCAD输出⽹表,Allegro导⼊⽹表,确保两者对的上号,然后在Orcad选中元件,再右键Editor Select,即可在Allegro中选中该元件;反过来,在Allegro中要先Highlight某元件,在Orcad中变会选中该元件。

1.ORcad :⾸先打开orcad和allegro分别占1/2的窗⼝界⾯。

然后orcad中Tools/creatnetlist/PCB Editor中Create PCB Editor Netlist下的Options中设置导出⽹表的路径。

Proteus学习笔记

Proteus学习笔记

操作步骤与快捷键删除=双击右键自动摇景=shift+鼠标撞击视图边缘快速的画重复路径的连线(比如画零件到总线的连线):先画好第一根连线,这时软件会把刚才画线的路径记忆下来,画第二根线的时候只要在第二根线的起点双击即可。

(实在是方便)查找并编辑元件属性:按e弹出搜索框,输入零件序号,比如r2,按回车,就会打开r2的编辑框。

编辑元件属性:方法1:双击元件。

方法2:选中元件,按ctrl+e。

方法3:在零件上按右键再按左键。

自动拐角线与直线的绘制:当按下时,走线为自动拐角模式,简称WAR模式,参见tools菜单,效果如。

当弹起时,走线为直线模式如,当我们画总线分支线的时候,需要采用这种模式。

还有我们可以在走线的时候按住Ctrl键随时进入任意角度走线模式。

在线的中点拖动可以给两边拖出两拐角如,在线的端点拖动只能拖出一个拐角,如视图缩放快捷键F8=全部显示F7=缩小F6=放大鼠标定位+F5=手动摇景R=刷新X:鼠标形状会在正常、斜45度,全屏十字三种状态循环转换栅格的显示与隐藏:按g键切换,或者点按钮切换。

重新定位坐标原点:(作用:为了便于比较而选取的参照点)因为坐标的原点在编辑区的中间,有的地方的坐标值比较大,不利于我们进行比较。

此时可通过点击菜单命令“View” 下的“Origin” 命令,也可以点击工具栏的按钮或者按快捷键“O” 来自己定位新的坐标原点。

快捷键O的用法:先定位鼠标到指定位置,然后按O键,注意此时的状态栏显示一个粉红的坐标值0,0 若再按一次O键,坐标将会恢复到系统默认的中点位置。

同时,状态栏的坐标值会变成黑色字体。

复制零件:左键点击选中零件,点开始复制,零件编号会自动递增总线标号的命名方式:在总线上的命名形如AD[0..7]如图,若写成AD[$0..7$]则可以形成上划线效果,如同.Proteus支持将零件的引脚画成总线型,如PageUp、PageDown按钮可以在多张图纸间切换。

一些常用的零件:交流电源:Simulator Primitives →ALTERNATOR灯:Optoelectronics-> LAMP配置Set Animation Options,这样使你的仿真结果更加形象。

excite知识点总结

excite知识点总结

excite知识点总结IntroductionExcite is a comprehensive search engine and web portal that provides a variety of services, including email, news, and a customizable homepage. It is owned and operated by IAC Search & Media, which is a subsidiary of InterActiveCorp. Excite was launched in 1995 and quickly became one of the most popular search engines on the Internet.In this summary, we will explore the key knowledge points about Excite, including its history, features, and the ways in which it has impacted the Internet and our online experiences.HistoryExcite was founded by five Stanford University students in 1993. Originally named Architext, the search engine was later rebranded as Excite in 1994. The company went public in 1996 and saw rapid growth and success in the late 1990s. However, in 2001, Excite was acquired by @Home Network, a high-speed cable internet provider. This acquisition marked the beginning of a tumultuous period for Excite, as @Home Network filed for bankruptcy in 2002.After several ownership changes and rebranding efforts, Excite was eventually acquired by Ask Jeeves in 2004. In 2007, Ask Jeeves was acquired by IAC Search & Media, which became the current owner of Excite. Despite its turbulent history, Excite has remained a popular search engine and web portal, serving millions of users around the world.FeaturesExcite offers a wide range of features and services to its users. Some of the key features include:1. Web Search: Excite provides a powerful search engine that allows users to search for information, images, videos, and more. The search engine uses advanced algorithms to deliver accurate and relevant results to users.2. Email: Excite offers free email services to its users, allowing them to create and manage their own email accounts. Users can send and receive messages, organize their inbox, and customize their email settings.3. News: Excite provides a comprehensive news service that aggregates news articles from various sources. Users can access the latest headlines, trending topics, and personalized news feeds.4. Customizable Homepage: Excite allows users to create a customizable homepage that includes a variety of widgets and features. Users can personalize their homepage with news feeds, weather updates, stock quotes, and more.5. Entertainment: Excite offers entertainment services, including movie reviews, celebrity news, and event listings. Users can stay up-to-date on the latest entertainment news and find information about upcoming events in their area.ImpactExcite has had a significant impact on the Internet and our online experiences. Some of the key ways in which Excite has influenced the digital landscape include:1. Search Engine Innovation: Excite was one of the first search engines to offer a comprehensive web search service. Its advanced algorithms and user-friendly interface set the standard for other search engines to follow. Excite's search engine has continued to evolve and improve over the years, setting the bar for search engine innovation.2. Email Services: Excite was one of the pioneers of free email services, providing users witha convenient and reliable way to communicate online. Excite's email service has remained popular and continues to be a preferred choice for users who want a reliable and easy-to-use email platform.3. News Aggregation: Excite's news service has revolutionized the way users access and consume news online. The platform's ability to aggregate news articles from a variety of sources has made it easier for users to stay informed about current events and trending topics.4. Customizable Homepages: Excite's customizable homepage feature has allowed users to create a personalized online experience. By offering a variety of widgets and features, Excite has empowered users to create a customized homepage that meets their specific needs and interests.ConclusionIn conclusion, Excite is a powerful search engine and web portal that provides a wide range of features and services to its users. With a rich history, innovative features, and a significant impact on the Internet, Excite has established itself as a leading player in the digital landscape. As it continues to evolve and adapt to the changing needs of users, Excite will likely remain a popular choice for users seeking a reliable and versatile online platform.。

DXP菜单命令总结

DXP菜单命令总结

附录1 菜单命令F1.1 DXP菜单命令1.Customize…:自定义菜单的内容、快捷键和工具按钮。

2.System Preferences…:设置Protel DXP的原始设置环境、备份路径等。

3.System Info…:EDA Service,Protel DXP可以兼容的文件。

4.Run Process…:运行某一程序。

5.Licensing…:Protel DXP的许可信息。

6.Run Script:选择并打开已有的文件。

7.Run Script Debugger:执行某文件的调试程序。

F1.2 初始菜单命令(未建立任何文件)灰色菜单表明当前菜单不可用。

F1.2.1 File菜单1.New:新建文件,在右边的子菜单中可以选择原理图、PCB等。

2.Open…:打开已经建立的文件。

3.Close:关闭现在打开的文件。

4.Open Project…:打开已存在的项目文件。

5.Open Design Workspace…:打开已存在的设计工作空间。

6.Save Project:保存当前项目文件。

7.Save Project As…:将当前项目文件另存为。

8.Save Design Workspace:保存当前设计工作空间。

9.Save Design Workspace As…:将当前设计工作空间另存为。

10.Save All:保存当前所有打开的文件等。

11.Recent Documents:打开右边子菜单的最近的设计文件。

12.Recent Projects:打开右边子菜单的最近的项目文件。

13.Recent Workspace:打开右边子菜单的最近的工作空间。

14.Exit:退出Protel DXP系统。

F1.2.2 View菜单1.Toolbars:显示的工具箱。

2.Workspace Panels:显示工作空间面板。

1)Design Compiler:显示设计编译器。

2)Help:显示帮助文件。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

DevExpress学习笔记(一)——IDXDataErrorInfo接口
鉴于自己知识面中的欠缺,花了很多时间潜心学习了DevExpress组件。

学习之前以为DevExpress只是控件,熟悉属性、方法、事件即可,
后来发现远不是这么回事情,比如IDXDataErrorInfo接口。

一、IDXDataErrorInfo的基础知识
IDXDataErrorInfo接口,用于为业务类的属性提供展示提示信息的
方法。

其名称空间为:DevExpress.XtraEditors.DXErrorProvider,程
序集为:DevExpress.Data.版本号.dll。

无父类。

该接口提供了两个方法:
void GetError(ErrorInfo info);
void GetPropertyError(string propertyName, ErrorInfo info);
用得最多的是第二个。

示例代码如下:
#region IDXDataErrorInfo 成员
void
DevExpress.XtraEditors.DXErrorProvider.IDXDataErrorInfo.GetError(DevE xpress.XtraEditors.DXErrorProvider.ErrorInfo info)
{
return;
}
void
DevExpress.XtraEditors.DXErrorProvider.IDXDataErrorInfo.GetPropertyEr ror(string propertyName,
DevExpress.XtraEditors.DXErrorProvider.ErrorInfo info)
{
info.ErrorType =
rmation;
switch (propertyName)
{
case "Category":
if (Category == null)
info.ErrorText = "请务必选择收支项目。

";
break;
case "Amount":
if (Amount == 0)
info.ErrorText = "请录入金额。

";
break;
}
}
#endregion
ErrorType,是用于获取或者设置信息展示的图标,有红叉叉、黄色感叹号、蓝色的i,以及多达9个自定义图标。

ErrorText,是用于获取或者设置信息的内容。

二、IDXDataErrorInfo的应用
为什么会对这个接口如此感兴趣呢?是基于如下的原因:
1、可以在业务层中完成数据录入校验,而不用分散在不同的界面层去。

2、实现了该接口的业务类,可以通过和控件的绑定、包括和GridControl 控件的绑定,轻松实现录入校验结果的展示。

并且这种展示方式改善了我之前常用的而又比较厌恶的方式:
A、在LABEL中,用*号表示必录项,我一向认为不好看,而且即使已录
入正确还有此提示;
B、用MessageBox展示错误提示信息,这个我一向认为不太礼貌。

应用一、与Edit控件的绑定。

当业务类实现了该接口后,可以在录入的时候进行控件绑定,即把控件的属性和业务类的属性绑定在一起,同时把一个DXErrorProvider 组件与业务类实例进行绑定。

绑定示例代码如下:
txtAmount.DataBindings.Add(new Binding("Text",
m_IncExpTransaction, "Amount", true));
cmbCategory.DataBindings.Add(new Binding("EditValue",
m_IncExpTransaction, "Category", true));
m_ErrorProvider.DataSource = m_IncExpTransaction;
其中,txtAmount是CalcEdit控件,cmbCategory是LookUpEdit控件,m_ErrorProvider是DxErrorProvider组件,m_IncExpTransaction是业务类实例。

错误提示示例代码如下:
private void btnSave_Click(object sender, EventArgs e)
{
if (m_ErrorProvider.HasErrors)
{
foreach (BaseEdit control in FirstErrorControlList)
{
if (control.ErrorText.Length > 0)
{
control.Focus(); //控件获得焦点
control.SelectAll(); //控件的值处于选中状态 m_ToolTipControler.ShowHint(control.ErrorText , control, DevExpress.Utils.ToolTipLocation.TopCenter); //用hint来显示提示信息
break;
}
}
}
else
{
Save();
this.Close();
}
}
protected virtual BaseEdit[] FirstErrorControlList
{
get
{
return new BaseEdit[] { };
}
}
protected virtual void Save()
{
XtraMessageBox.Show("尚未重写保存方法。

");
}
其中,FirstErrorControlList属性用于提供需要检查的控件列表,并按照列表顺序进行控件检查。

m_ToolTipControler是ToolTipControler 组件。

效果如下:
1、当进入该界面时,会自动在金额和收支项目前显示i,以提示是必填项;鼠标移上去后,显示提示信息。

2、点击保存,而录入项不正确,则主动显示提示信息。

应用二、与GridControl控件的绑定。

这个实际上只是在GridControl的校验事件相关。

示例代码如下:
protected virtual void OnGridValidateRow(object sender, DevExpress.XtraGrid.Views.Base.ValidateRowEventArgs e)
{
for (int i = 0; i < m_View.Columns.Count; i++) //依次检查所有的列是否能校验通过
{
if (m_View.GetColumnError(m_View.Columns).Length > 0) {
e.Valid = false; //校验失败,激发InvalidRowException事件
break;
}
}
}
备注:GetColumnError的值就是IDXDataErrorInfo中的错误提示,如果没有错误,则为空字符串。

protected virtual void OnGridInvalidRowException(object sender, DevExpress.XtraGrid.Views.Base.InvalidRowExceptionEventArgs e)
{
if (DevExpress.XtraEditors.XtraMessageBox.Show("您是否要修改尚未正确录入的数据?\n\r\n\r点击“否”将取消您的修改,恢复成原来的数据。

", "提示", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.Yes)
{
e.ExceptionMode =
DevExpress.XtraEditors.Controls.ExceptionMode.NoAction; //不作任何操作
if (m_Form != null)
m_Form.MDIContainer.Focus(); //不切换子窗体
for (int i = 0; i < m_View.Columns.Count; i++)
{
if (m_View.GetColumnError(m_View.Columns).Length > 0)
{
m_View.FocusedColumn = m_View.Columns; //第一个错误列获得焦点
break;
}
}
}
else
e.ExceptionMode =
DevExpress.XtraEditors.Controls.ExceptionMode.Ignore; //忽略错误并取消数据改动或者录入
}
效果如下:。

相关文档
最新文档