>>在GIRD,为什么看不到结果??<<

heavenmusic 2003-09-16 05:19:43
****--设置变量
PUBLIC nDate,cAccountNo,cBookId

WITH thisform
nDate = .TxtDate.value
cAccountNo = .CbAccountno.value
cBookID = .CbBookid.value
ENDWITH

****--先做一个判断,三个选项,不为空
IF !EMPTY(nDate) .and. !EMPTY(cAccountNo) .and. !EMPTY(cBookId)

SELECT TranDate,TranNo,Desp,CertNo,Bookid,Cashin,Cashout,Refno,CatgNo,Cuserid;
from cspost ;
WHERE DAY(TranDate) = DAY(nDate).and.MONTH(trandate) = MONTH(nDate) .AND. ALLTRIM(AccNo) = ALLTRIM(cAccountNo) .and. ALLTRIM(Bookid) = ALLTRIM(cBookid);
order by TranNo;
INTO TABLE temp_daily

****--进行一个判断
IF _TALLY>0
THISFORM.GRID1.RECORDSOURCE = 'temp_daily'
ELSE
MESSAGEBOX('没有符合要求的记录!')
ENDIF

ELSE
MESSAGEBOX('请三个空格完填完!',0+32,'操作错误')
thisform.txtdate.SetFocus
ENDIF

*!* Thisform.grid1.RecordSource = temp_daily

****--表示为空,无记录
thisform.Refresh
...全文
68 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
heavenmusic 2003-09-17
  • 打赏
  • 举报
回复
我如果用BROWSE 可以看到查询的结果!!!
heavenmusic 2003-09-17
  • 打赏
  • 举报
回复
加了 magnetmoon(天涯明月刀) 代码....
现象一样:没有结果,会出提示......查找到结果,没有显示!!!

FORM1---INIT:
THISFORM.GRID1.RECORDSOURCE=''

写这段代码,可以吗?
heavenmusic 2003-09-17
  • 打赏
  • 举报
回复
我刚开始已经置空了....

执行结果: 没有任何结果....GRID表,没有变白!!!
xiolig 2003-09-16
  • 打赏
  • 举报
回复
不太明白,看看是不是这个原因:
http://expert.csdn.net/Expert/topic/1858/1858328.xml?temp=.6606562
magnetmoon 2003-09-16
  • 打赏
  • 举报
回复
...
IF recc('temp_daily')>0
THISFORM.GRID1.RECORDSOURCE = 'temp_daily'
ELSE
MESSAGEBOX('没有符合要求的记录!')
ENDIF
...
protel dxp的元件封装 一、 Protel DXP中的基本PCB库: 原理图元件库的扩展名是.SchLib,PCB板封装库的扩展名.PcbLib,它们是在软件安装路径的“\Library\...”目录下面的一些封装库中。 根据元件的不同封装我们将其封装分为二大类:一类是分立元件的封装,一类是集成电路元件的封装 1、分立元件类: 电容:电容分普通电容和贴片电容:普通电容在Miscellaneous Devices.IntLib库中找到,它的种类比较多,总的可以分为二类,一类是电解电容,一类是无极性电容,电解电容由于容量和耐压不同其封装也不一样,电解电容的名称是“RB.*/.*”,其中.*/.*表示的是焊盘间距/外形直径,其单位是英寸。无极性电容的名称是“RAD-***”,其中***表示的是焊盘间距,其单位是英寸。 贴片电容在 \Library\PCB\Chip Capacitor-2 Contacts.PcbLib中,它的封装比较多,可根据不同的元件选择不同的封装,这些封装可根据厂家提供的封装外形尺寸选择,它的命名方法一般是CC****-****,其中“-”后面的“****”分成二部分,前面二个**是表示焊盘间的距离,后面二个**表示焊盘的宽度,它们的单位都是10mil,“-”前面的“****”是对应的公制尺寸。 电阻:电阻分普通电阻和贴片电阻:普通电阻在Miscellaneous Devices.IntLib库中找到,比较简单,它的名称是“AXIAL -***”,其中***表示的是焊盘间距,其单位是英寸。 贴片电阻在Miscellaneous Devices.IntLib库中只有一个,它的名称是“R2012-0806”,其含义和贴片电容的含义基本相同。其余的可用贴片电容的封装套用。 二极管:二极管分普通二极管和贴片二极管:普通二极管在Miscellaneous Devices.IntLib库中找到,它的名称是“DIODE -***”,其中***表示一个数据,其单位是英寸。贴片二极管可用贴片电容的封装套用。 三极管:普通三极管在Miscellaneous Devices.IntLib库中找到,它的名称与Protel99 SE的名称“TO-***”不同,在Protel DXP中,三极管的名称是“BCY-W3”目录中,以后就可以十分方便地调用了。其实对Protel 99、Protel2.5等以前的版本的封装元件库也可以用导入的方法将封装元件库导入Protel DXP中。 三、 在Protel DXP中创建新的封装元件: 创建新的封装元件在Protel DXP中有二种方法,一是手工创建,二是用向导创建 1、 用手工绘制封装元件: 用绘图工具箱 2、 用向导创建封装元件: 用向导创建封装元件根据封装元件的不同其步骤也有所不同,但是基本的方法大致是相同的,下面我们对最基本的方法简单介绍一下: ①、单击*.PcbLib(在那个元件库创建就单击那个元件库),将*.PcbLib作为当前被编辑的文件; ②、单击【Tools】/【New Component】,在对话框中选择准备创建元件的封装类型,下面的表格是各封装类型对照表: 序号 名 称 说 明 1 Ball Grid Arrays(BGA) BGA类型 2 Capacitors CAP无极性电容类型 3 Diodes 二极管类型 4 Dual in-line Package(DIP) DIP类型 5 Edge Connectors EC边沿连接类型 6 Leadless Chip Carier(LCC) LCC类型 7 Pin Grid Arrays(PGA) OGA类型 8 Quad Packs(QUAD) GUAD类型 9 Resistors 二脚元件类型 10 Small Outline Package(SOP) SOP类型 11 Staggered Ball Gird Arrayd (SBG) SBG类型 12 Staggered Pin Gird Arrayd (SPGA) SPGA类型 假定我们选择Dual in-line Package(DIP)的封装类型,并选择单位制为“Imperial”(英制,一般均选择英制),然后单击“Next”; ③、在这个对话框中是设置焊盘的大小,我们如果是创建一个DIP封装的元件,可以采用默认值,当然如果创建的不是典型的DIP封装元件,要根据焊盘流过的电流大小设置,对于电流较大的元件焊盘要设置的稍大一点,设置好后单击“Next”; ④、在这个对话框中是设置焊盘之间的X方向和Y方向间距的,如果我们是创建一个DIP封装的元件,可以采用默认值,当然如果创建的不是典型的DIP封装元件,要根据焊盘流过的电流大小设置,对于电流较大的元件焊盘的间距要设置的稍大一点,设置好后单击“Next”; ⑤、在这个对话框中是设置丝印层中丝印线条的宽度的,为了使丝印比较清晰最好印线条的宽度的设置为2-5mil,比较流行的设置是5 mil,设置好后单击“Next”; ⑥、在这个对话框中是设置焊盘的数目,我们如果是创建一个DIP封装的元件,根据封装设置;如果创建的不是DIP封装的元件,要根据焊盘的多少设置,当然由于是DIP封装设置一般要采用双数,如果设置和具体的封装有区别,在后面我们还可以修改,设置好后单击“Next”; ⑦、在这个对话框中是设置封装元件的名称的,在文本输入框输入即可,输入好后单击“Next”; ⑧、进入向导完成对话框,单击“Finish”结束向导。如果我们创建的是DIP元件,基本已经完成,但是我们创建的不是DIP元件,可能和元件封装有一定的差别,我们可以进行手工修改; ⑨、用手工绘制的方法进行修改,修改的内容包括增加或减少焊盘、对某个焊盘进行大小和名称的重新设置、对某个焊盘进行移动、重新绘制元件封装的轮廓线等等。全部设置和修改完成并经过反复检查认为没有问题后,点击【Edit】/【Set Reference】/【*】设置参考点。点击【Report】/【Component Rule Check】执行元件设计规则检查,如果在输出报表没有错误,则设计是成功的。点击主工具条的存盘键进行存盘。 四、 在Protel DXP中封装元件在封装元件库间的复制: 有的时候我们需要将一个封装元件库中的某个封装元件复制到另一个封装元件库中,复制的方法比较多,我们在这里介绍二种比较常用和比较简单的方法供参考: 方法一、单击*.PcbLib(被复制的封装元件所在的元件库),将*.PcbLib作为当前被编辑的文件,用鼠标右键点击被复制的封装元件,在下拉菜单单击“Copy”;单击*1.PcbLib(被复制的封装元件要复制到的元件库),将*1.PcbLib作为当前被编辑的文件,用鼠标右键点封装元件列表最上面的空白处,在下拉菜单单击“Paste”,然后保存即可; 方法二、单击*.PcbLib(被复制的封装元件所在的元件库),将*.PcbLib作为当前被编辑的文件,用鼠标左键点击被复制的封装元件,使被复制的封装元件到编辑区,点击【Edit】/【Select】/【All】选择编辑区的全部内容,再点击【Edit】/【Coyp】进行复制;单击*1.PcbLib(被复制的封装元件要复制到的元件库),将*1.PcbLib作为当前被编辑的文件,用鼠标左键点击【Tools】/【New Component】新建一个元件,关闭向导对话框,继续点击【Edit】/【Paste】将封装元件复制到编辑区,点击【Tools】/【Rename Component】对元件重命名,然后保存即可。 上述方法同样适合原理图元件库中元件的复制。 五、 在Protel DXP中创建自己的封装元件库: 我们在制作PCB板时不是需要在Protel DXP中的所有的元件库,而是仅仅需要其中的部分元件库和封装库,或者是某个库中的部分元件或封装元件,如果我们将这些元件或封装元件创建自己的元件库和封装元件库,给我们带来很大的方便,在查找过程中也特别容易了。在某个磁盘分区,新建一个目录如“PDXP LIB”,在这个目录下再新建二个目录“SCH”和“PCB”,在“SCH”目录中可以创建自己的电路原理图的元件库,由于本文主要讨论PCB封装元件库,这里我们不再讨论,在“PCB”中我们创建PCB封装元件库。在Protel DXP的单击【File】/【New】/【PCB Library】新建一个空的PCB元件库,并用另外的名称如“分立元件.PcbLib”存盘到“X:/PDXP LIB/PCB/”中,其中“X:”是上面目录的所在盘符。在这个库中用运上面新建封装元件的方法和封装元件在封装元件库间的复制方法将分立元件的封装全部放置在这个库中。用同样的方法,创建“DIP.PcbLib”、“贴片电容.PcbLib”、“接插件.PcbLib”、“PLCC.PcbLib”、“SOP.PcbLib”等等等等封装元件库,在这些库中用运上面新建封装元件的方法和封装元件在封装元件库间的复制方法将相应元件的封装全部放置在这个库中。在分类过程中,最好分的比较细一点,虽然看起来库比较多,但是一则管理比较方便,维护、修改、添加等都十分容易,二则在调用元件时一目了然,作者就是这样管理和用运的,比在原来的库中用运方便的多。 六、 创建和修改封装元件时注意的一些问题: 1、我们建议自己创建的元件库保存在另外的磁盘分区,这样的好处是如果在Protel DXP软件出现问题或操作系统出现问题时,自己创建的元件库不可能因为重新安装软件或系统而丢失,另外对元件库的管理也比较方便和容易。 2、对于自己用手工绘制元件时必须注意元件的焊接面在底层还是在顶层,一般来讲,贴片元件的焊接面是在顶层,而其他元件的焊接面是在底层(实际是在MultiLayer层)。对贴片元件的焊盘用绘图工具中的焊盘工具放置焊盘,然后双击焊盘,在对话框将Saple(形状)中的下拉单修改为Rectangle(方形)焊盘,同时调整焊盘大小X-Size和Y-Size为合适的尺寸,将Layer(层)修改到“Toplayer”(顶层),将Hole Size(内经大小)修改为0mil,再将Designator中的焊盘名修改为需要的焊盘名,再点击OK就可以了。有的初学者在做贴片元件时用填充来做焊盘,这是不可以的,一则本身不是焊盘,在用网络表自动放置元件时肯定出错,二则如果生产PCB板,阻焊层将这个焊盘覆盖,无法焊接,请初学者们特别注意。 3、在用手工绘制封装元件和用向导绘制封装元件时,首先要知道元件的外形尺寸和引脚间尺寸以及外形和引脚间的尺寸,这些尺寸在元件供应商的网站或供应商提供的资料中可以查到,如果没有这些资料,那只有用千分尺一个尺寸一个尺寸地测量了。测量后的尺寸是公制,最好换算成以mil为单位的尺寸(1cm=1000/2.54=394mil 1mm=1000/25.4=39.4mil),如果要求不是很高,可以取1cm=400mil,1mm=40mil。 4、如果目前已经编辑了一个PCB电路板,那么单击【Design】/【Make PCB Library】可以将PCB电路板上的所有元件新建成一个封装元件库,放置在PCB文件所在的工程中。这个方法十分有用,我们 在编辑PCB文件时如果仅仅对这个文件中的某个封装元件修改的话,那么只修改这个封装元件库中的相关元件就可以了,而其他封装元件库中的元件不会被修改。 protel dxp快捷键大全 enter——选取或启动 esc——放弃或取消 f1——启动在线帮助窗口 tab——启动浮动图件的属性窗口 pgup——放大窗口显示比例 pgdn——缩小窗口显示比例 end——刷新屏幕 del——删除点取的元件(1个) ctrl+del——删除选取的元件(2个或2个以上) x+a——取消所有被选取图件的选取状态 x——将浮动图件左右翻转 y——将浮动图件上下翻转 space——将浮动图件旋转90度 crtl+ins——将选取图件复制到编辑区里 shift+ins——将剪贴板里的图件贴到编辑区里 shift+del——将选取图件剪切放入剪贴板里 alt+backspace——恢复前一次的操作 ctrl+backspace——取消前一次的恢复 crtl+g——跳转到指定的位置 crtl+f——寻找指定的文字 alt+f4——关闭protel spacebar——绘制导线,直线或总线时,改变走线模式 v+d——缩放视图,以显示整张电路图 v+f——缩放视图,以显示所有电路部件 home——以光标位置为中心,刷新屏幕 esc——终止当前正在进行的操作,返回待命状态 backspace——放置导线或多边形时,删除最末一个顶点 delete——放置导线或多边形时,删除最末一个顶点 ctrl+tab——在打开的各个设计文件文档之间切换 alt+tab——在打开的各个应用程序之间切换 a——弹出edit\align子菜单 b——弹出view\toolbars子菜单 e——弹出edit菜单 f——弹出file菜单 h——弹出help菜单 j——弹出edit\jump菜单 l——弹出edit\set location makers子菜单 m——弹出edit\move子菜单 o——弹出options菜单 p——弹出place菜单 r——弹出reports菜单 s——弹出edit\select子菜单 t——弹出tools菜单 v——弹出view菜单 w——弹出window菜单 x——弹出edit\deselect菜单 z——弹出zoom菜单 左箭头——光标左移1个电气栅格 shift+左箭头——光标左移10个电气栅格 右箭头——光标右移1个电气栅格 shift+右箭头——光标右移10个电气栅格 上箭头——光标上移1个电气栅格 shift+上箭头——光标上移10个电气栅格 下箭头——光标下移1个电气栅格 shift+下箭头——光标下移10个电气栅格 ctrl+1——以零件原来的尺寸的大小显示图纸 ctrl+2——以零件原来的尺寸的200%显示图纸 ctrl+4——以零件原来的尺寸的400%显示图纸 ctrl+5——以零件原来的尺寸的50%显示图纸 ctrl+f——查找指定字符 ctrl+g——查找替换字符 ctrl+b——将选定对象以下边缘为基准,底部对齐 ctrl+t——将选定对象以上边缘为基准,顶部对齐 ctrl+l——将选定对象以左边缘为基准,靠左对齐 ctrl+r——将选定对象以右边缘为基准,靠右对齐 ctrl+h——将选定对象以左右边缘的中心线为基准,水平居中排列 ctrl+v——将选定对象以上下边缘的中心线为基准,垂直居中排列 ctrl+shift+h——将选定对象在左右边缘之间,水平均布 ctrl+shift+v——将选定对象在上下边缘之间,垂直均布 f3——查找下一个匹配字符 shift+f4——将打开的所有文档窗口平铺显示 shift+f5——将打开的所有文档窗口层叠显示 shift+单左鼠——选定单个对象 crtl+单左鼠,再释放crtl——拖动单个对象 shift+ctrl+左鼠——移动单个对象 按ctrl后移动或拖动——移动对象时,不受电器格点限制 按alt后移动或拖动——移动对象时,保持垂直方向 按shift+alt后移动或拖动——移动对象时,保持水平方向 小结:PCB使用技巧 1、元器件标号自动产生或已有的元器件标号取消重来 Tools工具|Annotate…注释 All Part:为所有元器件产生标号 Reset Designators:撤除所有元器件标号 2、单面板设置: Design设计|Rules…规则|Routing layers Toplayer设为NotUsed Bottomlayer设为Any 3、自动布线前设定好电源线加粗 Design设计|Rules…规则|Width Constraint 增加:NET,选择网络名VCC GND,线宽设粗 4、PCB封装更新,只要在原封装上右键弹出窗口内的footprint改为新的封装号 5、100mil=2.54mm;1mil=1/1000英寸 6、快捷键"M",下拉菜单内的Dram Track End 拖拉端点====拉PCB内连线的一端点处继续连线。 7、定位孔的放置 在KeepOutLayer层(禁止布线层)中画一个圆,Place|Arc(圆心弧)center,然后调整其半径和位置 8、设置图纸参数 Design|Options|Sheet Options (1)设置图纸尺寸:Standard Sytle选择 (2)设定图纸方向:Orientation选项----Landscape(小平方向)----Portrait(垂直方向) (3)设置图纸标题栏(Title BlocK):选择Standard为标准型,ANSI为美国国家协会标准型 (4)设置显示参考边框Show Reference Zones (5)设置显示图纸边框Show Border (6)设置显示图纸模板图形Show Template Graphics (7)设置图纸栅格Grids 锁定栅格Snap On,可视栅格设定Visible (8)设置自动寻找电器节点 10、元件旋转: Space键:被选中元件逆时针旋转90 在PCB中反转器件(如数码管),选中原正向器件,在拖动或选中状态下, X键:使元件左右对调(水平面); Y键:使元件上下对调(垂直面) 11、元件属性: Lib Ref:元件库中的型号,不允件修改 Footprint:元件的封装形式 Designator:元件序号如U1 Part type:元件型号(如芯片名AT89C52 或电阻阻值10K等等)(在原理图中是这样,在PCB中此项换为Comment) 12、生成元件列表(即元器件清单)Reports|Bill of Material 13、原理图电气法则测试(Electrical Rules Check)即ERC 是利用电路设计软件对用户设计好的电路进行测试,以便能够检查出人为的错误或疏忽。 原理图绘制窗中Tools工具|ERC…电气规则检查 ERC对话框各选项定义: Multiple net names on net:检测“同一网络命名多个网络名称”的错误 Unconnected net labels:“未实际连接的网络标号”的警告性检查 Unconnected power objects:“未实际连接的电源图件”的警告性检查 Duplicate sheet mnmbets:检测“电路图编号重号” Duplicate component designator:“元件编号重号” bus label format errors:“总线标号格式错误” Floating input pins:“输入引脚浮接” Suppress warnings:“检测项将忽略所有的警告性检测项,不会显示具有警告性错误的测试报告” Create report file:“执行完测试后程序是否自动将测试结果存在报告文件中” Add error markers:是否会自动在错误位置放置错误符号 Descend into sheet parts:将测试结果分解到每个原理图中,针对层次原理图而言 Sheets to Netlist:选择所要进行测试的原理图文件的范围 Net Identifier Scope:选择网络识别器的范围 14、系统原带库Miscellanous Devices.ddb中的DIODE(二级管)封装应该改,也就把管脚说明 1(A) 2(K)改为A(A) K(K) 这样画PCB导入网络表才不会有错误:Note Not Found 15、PCB布线的原则如下 (1)输入输出端用的导线应尽量避免相邻平行。最好加线间地线,以免发生反馈藕合。 (2)印制摄导线的最小宽度主要由导线与绝缘基扳间的粘附强度和流过它们的电流值决定。 当铜箔厚度为0.05mm、宽度为1~15mm时.通过2A的电流,温度不会高于3℃,因此导线宽度为1.5mm(60mil)可满足要求。对于集成电路,尤其是数字电路,通常选0.02~0.3mm(0.8~12mil)导线宽度。当然,只要允许,还是尽可能用宽线.尤其是电源线和地线。导线的最小间距主要由最坏情况下的线间绝缘电阻和击穿电压决定。对于集成电路,尤其是数字电路,只要工艺允许,可使间距小至5~8mm。 (3)印制导线拐弯处一般取圆弧形,而直角或夹角在高频电路中会影响电气性能。此外,尽量避免使用大面积铜箔,否则.长时间受热时,易发生铜箔膨胀和脱落现象。必须用大面积铜箔时,最好用栅格状.这样有利于排除铜箔与基板间粘合剂受热产生的挥发性气体。 (4)焊盘:焊盘中心孔要比器件引线直径稍大一些。焊盘太大易形成虚焊。焊盘外径D一般不小于(d+1.2)mm,其中d为引线孔径。对高密度的数字电路,焊盘最小直径可取(d+1.0)mm。 16、工作层面类型说明 ⑴、信号层(Signal Layers),有16个信号层,TopLayer BottomLayer MidLayer1-14。 ⑵、内部电源/接地层(Internal Planes),有4个电源/接地层Planel1-4。 ⑶、机械层(Mechanical Layers),有四个机械层。 ⑷、钻孔位置层(Drill Layers),主要用于绘制钻孔图及钻孔的位置,共包括Drill Guide 和Drill drawing两层。 ⑸、助焊层(Solder Mask),有TopSolderMask和BottomSolderMask两层,手工上锡。 ⑹、锡膏防护层(Paste Mask)有TopPaste和BottomPaster两层。 ⑺、丝印层(Silkscreen),有TopOverLayer和BottomOverLayer两层,主要用于绘制元件的外形轮廓。 ⑻、其它工作层面(Other): KeepOutLayer:禁止布线层,用于绘制印制板外边界及定位孔等镂空部分。 MultiLayer:多层 Connect:连接层 DRCError:DRC错误层 VisibleGrid:可视栅格层 Pad Holes:焊盘层。 Via Holes:过孔层。 17、PCB自动布线前的设置 ⑴Design|Rules…… ⑵Auto Route|Setup…… Lock All Pro-Route:锁定所有自动布线前手工预布的连线。

2,718

社区成员

发帖
与我相关
我的任务
社区描述
VFP,是Microsoft公司推出的数据库开发软件,用它来开发数据库,既简单又方便。
社区管理员
  • VFP社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧