PB editmaskip与子网掩码的关系问题

求解:PB中editmask设定格式ABCD-12-34
求解:PB中editmask设定格式ABCD-12-34 5
我要设定输入格式 前四位必须为大写字母 第五和第八位是 -& 其余是四位数字
应该在editmask里怎么设置
类似于PB的editmask的可自行设置mask的输入控件
&html&&head&&title&格式化输入控件 code by meixx&/title&&style type="text/css"&.txtMask{ background-color:#FFFFCC; behavior: url(meixx.htc);}&/style&&script language="JavaScript"&&!--//--&&/script&&/head&&body &&table cellpadding=0 cellspacing=0 border=1 width="100%"&&&tr height="200"&& &td&&& &H4&格式化输入控件&/h4&&& &p&模式:##-###-########&/P&&& &p&说明:可自行更改输入的格式,但只能用#作为输入部分(暂时只能输入数字),分隔部分字符不限!&/P&&& &p&&&&&合法检查函数根据需要自己完成&/P&&& &p&引用方法: &input type="text" check="date"& mask="####-##-## ##:##" class="txtMask"....&&/P&&& &p&css样式: .txtMask{ background-color:#FFFFCC; behavior: url(meixx.htc);}&/P&&& &p&code by meixx&/P&&& &p&&/P&&& &br&&br&& &/td&&&/tr&&&tr&& &td&&& 日期时间输入:&input type="text" name="txtMask" check="date" id="txtMask" mask="####-##-## ##:##" size=20 class="txtMask"&&&&&&& 例如可输入: 15:00& &/td&&&/tr&&/table&&/body&&/html&********************************************************//meixx.htc
&!--接口定义--&&public:component&&&public:property name="description"&&& value="Mask Input Behavior" /&&&public:property name="version"&&&& value="1.0.0.0" /&
&&public:attach& event="oncontentready"&& onevent="init()"&& /&&&public:attach& event="onselectstart"&& onevent="eventCancel()" /&&&public:attach& event="onkeypress"&& onevent="keyPress()" /&&&public:attach& event="onkeydown"&& onevent="keyDown()" /&&&public:attach& event="onPaste"&& onevent="eventCancel()" /&&&public:attach& event="onFocus"&& onevent="doFocus()" /&&&public:attach& event="onclick"&& onevent="doFocus()" /&&&public:attach& event="ondblclick"&& onevent="doFocus()" /&&&public:attach& event="onblur"&& onevent="doCheck()" /&
&&public:method& name="getCursorPos" /&&&public:method& name="setCursorPos" /&&&public:method& name="movCursorNext" /&&&public:method& name="IsNumber" /&&/public:component&
&!--组件实现--&&script language="javascript"&var mask=element.//内部函数,事件oncontentready,初始化function init(){&//alert();&element.value=&element.maxLength=mask.}function keyPress(){&//如果输入不是数字,返回&var keyNum=String.fromCharCode(event.keyCode)&if(!IsNumber(keyNum)) return&&writeNum(keyNum,1);&var curPos=getCursorPos();&if(mask.charAt(curPos)!="#"){& MoveCursor(1);&}}function keyDown(){&var e=window.&var code=e.keyC// alert(code);&if(code==8 || code==37 || code==39){ & var curPos=getCursorPos();& if(code==8){ //退格时替换内容&& if(mask.charAt(curPos-1)!="#")&&& MoveCursor(-1);&& curPos=getCursorPos();&& writeNum(mask.charAt(curPos-1),-1);&& window.event.returnValue=&& MoveCursor(-1);& }& else{&& if(code==37 && mask.charAt(curPos-1)!="#")&&& MoveCursor(-1);&& else if(code==39 && mask.charAt(curPos+1)!="#")&&& MoveCursor(1);& }&}&if(code==46) window.event.returnValue=}//替换文本框中光标所在位置的下一个或上一个字符为输入值或默认的初始值//flag 1:输入 -1: 退格function writeNum(keyNum,flag){&var rng=document.selection.createRange();&if(flag&0)& rng.moveEnd("character",flag);&else& rng.moveStart("character",flag);&//alert(rng.text);&rng.text=keyN}//取得当前光标位置function getCursorPos(){&var len=mask.&var pos=0;&var rng=document.selection.createRange();&rng.moveEnd("character",len);&try{& pos=len-rng.text.length&}catch(e){}&}//向前或向后移动光标一位 flag& 1:向前&& -1 :向后function MoveCursor(flag){&var rng =element.createTextRange();&rng.moveStart("character",getCursorPos()+flag);&rng.collapse(true);&rng.select();}//判断keypress事件输入是否为数字true:是 false:不是function IsNumber(keyNum){&return !isNaN(parseInt(keyNum));}//取消事件function eventCancel(){&with (window.event) &{&& cancelBubble =&& returnValue =&}&}//获得焦点事件function doFocus(){&if(mask.charAt(getCursorPos())!="#")& MoveCursor(1);}//统一的检查函数function doCheck(){&//根据需要检查录入的内容是否合法&switch(element.check){& case "date": checkDate();& default:&}}function checkDate(){
}&/script&
放在一个目录下即可运行
相关知识等待您来回答
编程领域专家
& &SOGOU - 京ICP证050897号PB数据库开发
共有798位成员   人气指数 -   最新排名 -
【话题】数据窗口中editmask如何设置才能让日期默认是今天啊?
07:56:42 来自:默封晨 浏览数:46次
& & 请问:
& & & & PB9中数据窗口中editmask如何设置才能让日期默认是今天啊?如果不设置他的默认值是(在mask处写的是yyyy/mm/dd)
a回复于01日08点09分 
窗口打开时
this.em_1.text=string(today())
michaelmas回复于01日08点19分 
打开DW时,在column specifications窗格中
lxh0452回复于01日08点31分 
设置日期格式
z回复于01日08点41分 
数据窗口字段初始值 下图以日期为例
睡梦含回复于01日08点50分 
可用dw_1.modify()为其设置默认值.
sophiajin30回复于01日09点01分 
如果是列则可以用dw_1.setitem()为其设置默认值,如:
dw_1.setitem(row,col,today())
florablue回复于01日09点10分 
如何设置?
许愿草回复于01日09点20分 
设置DW的列的initial value设为today
jidoudou回复于01日09点30分 
饿,我喜欢屏蔽掉那最下面的。。。
谢谢大家,方法都可以。
再次感谢。
PB数据库开发的其他话题...
热门脚本语言:两天热门文章
最新推荐文章1639人阅读
文本编辑:SingleLineEdit-单行编辑器、EditMask-屏蔽编辑器、MultiLineEdit-多行编辑器、RichTextEdit-富文本编辑器
文本显示:StaticText-静态文本控件、StaticHyperLink-静态联结
SingleLineEdit(单行编辑器)
缺省为True。当为False时,该控件在窗口上隐藏。
缺省为True。当为False时,该控件不能获得焦点,用户不能进行编辑和选中;控件背景为灰色。
▲DisplayOnly
缺省为False。当为True时,该控件中的文字不能被修改,并且也不能输入,但可以选中、复制。
▲Password
缺省为False。当为True时,在该输入框中输入的内容显示为“*”号,星号的数目等于输入的字符的数目,加密规则依赖于操作系统。其实际内容和用户输入的内容一致。
▲AutoHScroll
缺省为True,表示当用户输入的内容显示不下时,可以自动横向滚动光标,但是不显示滚动条。
▲HideSelection
缺省为True,表示只有当单行编辑器获得焦点时,才高亮显示选中文本。建议使用缺省值,因为将该属性设置为False,没有获得焦点时,选中的内容就高亮显示,这容易让用户造成错误。
缺省是0,表示没有长度限制。可以输入其他一个数字,表示该单行编辑框中最多接受用户输入的字符个数,最大数字是32 767。
▲TextCase
有三个选项,upper!表示用户输入的内容中的字母都自动转换成大写,lower!表示都自动转换成小写,anycase!表示不做转换。
这是该控件运行时最经常使用的一个属性。可以给该属性赋值来将特定信息显示在单行编辑器中,也可以读取该属性而获得单行编辑器中的内容。设计状态下,在Text属性输入框中录入的文字在窗口刚刚打开时显示在单行编辑框中。
是否显示边框,缺省为True
单行编辑器提供了12个事件,Modified是经常使用的事件,其他事件和命令按钮的同名事件完全相同
◆Modified
该事件的触发时机是在编辑器中输入内容后,焦点离开该编辑器时
单行编辑器提供了很多的函数,其中需要掌握的有10个经常使用的函数,这10个常用函数是CanUndo、Clear、Copy、Cut、Paste、SetFocus、ReplaceText、SelectedStart、SelectedText、SelectText。其中,前面的6个函数是无参数函数,可以直接用editcontrolname.function()形式使用,从字面意思可以理解函数的功能。后面的4个函数和下拉列表框中的同名函数用法相同
MultiLineEdit(多行编辑器)
它的很多属性使用缺省值即可满足要求,常用属性有14个,其中Visible、Enabled、DisplayOnly、AutoHScroll、HideSelection、RightToLeft、Border、Case、Limit和单行编辑器的同名属性意义相同。还有以下5个属性需要关注
▲HscrollBar
是否显示横向滚动条,缺省为False。当该属性为True时,显示横向滚动条,某行文字的宽度大于控件的宽度,则滚动条可用,否则灰色显示不可用。当属性为False时,输入的文字大于控件宽度,则自动换行。
▲VscrollBar
是否显示纵向滚动条,缺省为False。当该属性为True时,显示纵向滚动条,如果文字的高度大于控件的高度,则滚动条可用,否则灰色显示不可用。当属性为False时,输入的文字大于控件高度时,就不允许再增加新的数据行。
▲AutoVScroll
是否在需要时自动显示纵向滚动条,缺省为False。如果设置为True,在当前内容显示满控件时,增加新的数据行将会出现纵向滚动条。
▲IgnoreDefaultButton
是否忽略Enter按钮,缺省为False。如果属性为True并且当前焦点在多行编辑器中,这时使用Enter键则会在多行编辑器中增加一个新行;如果属性为False,则会触发窗口上Default按钮的Clicked事件。
▲Alignment
文本的对齐方式,是一个枚举型取值,有Center!、Justify!、Left!、Right!四个取值,缺省为Left!。
多行编辑器提供了12个缺省事件,触发时机和单行编辑器的12个事件完全相同。经常使用的事件也是Modified,参考单行编辑器
多行编辑器也提供了很多的函数,和单行编辑器的同名函数的用法及注意事项完全相同,需要注意的是两个单行编辑器没有的函数LineCount和LineLength。这两个函数经常配合使用,对多行编辑器中的文本逐个字符处理。
★LineCount()
可以获取editname中数据的实际行数,不管每行后面是否有回车或换行符号。函数执行错误返回-1,如果editname为Null,则返回Null。
★LineLength()
可以获取editname中当前光标所在行的字符数,包括空格。执行错误返回-1,当editname为Null时返回Null
EditMask(屏蔽编辑器)
EditMask控件的许多常用属性和SingleLineEdit的同名属性都相同。另外,还有3个属性需要特别地关注,它们是Spin、Increment和MinMax,这些属性共同规定了使用微调小按钮录入数据的一些动作和特征
▲MaskDataType
使用一些特殊的符号可以指定EditMask能够接受的数据格式,首先使用属性MaskDataType指明EditMask要接受的数据类型,该属性是EditMask控件非常重要的属性。该属性的取值是枚举类型,有6个取值,它们是:DateMask!、DateTimeMask!、DecimalMask!、NumericMask!、StringMask!、TimeMask!
不同的数据类型使用不同的格式符号,例如#表示数字,!表示一个大写字母等等,这些都可以在属性窗口的Mask输入框中输入或者直接选择,也可以在运行时使用脚本动态设定。设定完MaskDataType属性之后,就应该设置Mask属性了,该属性的取值是一个字符串,规定EditMask控件的数据格式,例如,em_1.Mask=& (###)########&可以设置电话号码格式
该属性指定是否使用微调输入数据,缺省是False。如果属性为True,每次用鼠标单击微调按钮时,向上箭头则逐渐增加,向下箭头则逐渐减小,步长是Increment属性规定的值。
▲Increment
规定使用微调时输入内容每次增大的幅度。该属性只有当Spin属性为True才起作用,并且只对日期类型或者数值类型起作用。
▲Min、Max
用来规定最大和最小值。
经常使用editmaskname.text来读取或设置它的文字。也可以在运行时使用脚本修改该属性,格式为用两个波浪号(~)联结的数字所构成的字符串,例如:em_1.MinMax=&100~~1000&
该控件提供了很多的函数,但绝大多数都和多行编辑器的同名函数功能或用法相同。只有函数GetData需要关注一下
★GetData()
该函数的语法是:editmaskname.GetData (datavariable )
功能是获得EditMaskName中的原始数据,并保存在Datavariable变量中。
Datavariable变量的类型和屏蔽编辑器中的数据类型一致,可用的数据类型有date、DateTime、decimal、double、string和time。成功执行则返回1,执行过程中发生错误则返回-1,如果参数为Null则返回Null。
注意该函数读取的是屏蔽编辑器中原始的数据,而不是实际显示的格式(可以用editmaskname.text获得显示格式的数据)
RichTextEdit(富文本编辑器)
▲DocumentName
打印编辑器中的内容时,文件在打印队列中的名称。
▲RulerBar
是否显示标尺,缺省为False。标尺可以作为编辑时对齐、调整间距的参照。如果PopMenu属性为True,用户在程序运行时就能通过右键弹出菜单来决定是否显示标尺。
是否在编辑器的编辑区域上方显示Tab工具条。使用该工具条可以灵活设定Tab按钮所前进的距离,在工具条上用鼠标单击即可添加一个Tab位。如果PopMenu属性为True,用户在程序运行时就能通过右键弹出菜单来决定是否显示Tab工具条。
是否显示工具条。工具条可以提供设定显示格式、对齐方式、字体等一些工具,缺省为False。如果PopMenu属性为True,用户在程序运行时就能通过右键弹出菜单来决定是否显示工具条。
▲HeaderFooter
指定在编辑器上是否有页眉和页脚。建议选中该属性,因为如果没有该属性,当用户保存具有页眉或页脚的文件后就会丢失页眉或页脚;如果设置了该属性就不会丢失,打开没有页眉和页脚的文件时也不会有冲突。该属性只能在设计状态下设定,在运行时只能读取该属性。
是否允许用户在运行时使用鼠标右键弹出菜单。该属性缺省为False,建议设置为True,因为这样用户有更大的灵活性,可以设定自己喜欢的工作环境,这是Windows应用程序界面设计所提倡的。
▲ReturnVisible
是否显示回车符号,缺省为False。回车符号是行的结束符号,通常情况下是隐含的。如果PopMenu属性为True,用户在程序运行时就能通过右键弹出菜单来决定是否显示回车符号。
▲InputFieldsVisible和InputFieldNamesVisible
当数据由DataWindow提供时使用该属性,它们控制用户是否可以看到数据字段和名字。
▲WordWrap
到达一行末尾时是否自动换行。
▲PicturesAsFrame
控制是否将图片显示为图文框。
▲DisplayOnly
是否文档仅仅用于显示,而不允许用户修改。
▲InputFieldBackColor
输入字段的背景颜色,当数据由DataWindow提供时,该属性有效。
▲UndoDepth
可以撤消历史操作的数目,每次使用Ctrl+Z快捷键或者执行函数undo()时,撤消一个操作。
◆FileExists
当用户试图将控件中的内容保存到已经存在的文件时触发该事件,该事件的参数filename可以在脚本中直接使用,返回值1表示停止处理,0表示继续处理。一般在该事件中编程让用户确认是否覆盖已经存在的文件。下面是该事件下的一个典型脚本:
integer li_rtn //保存用户的确认信息
li_rtn = Messagebox(&确认&,filename + &已经存在,是否覆盖? &,Question!,YesNo!,2)
If li_rtn = 1 Then //用户选择了“yes”
return 0 //保存
return 1 //不保存
◆InputFieldSelected
当用户选择一个输入字段(在该字段内双击或按了Enter键)时触发该事件。
◆Modified
当对控件中的内容做第一次改动时触发该事件。
◆PictureSelected
当用户在一个位图上双击或者按下了Enter键时触发该事件。通常在该事件中调用相应的位图编辑软件。
◆PrinterFooter
当要打印每页的页脚时触发该事件。该事件的两个参数CurrentPage和TotalPages可以在脚本中直接使用,表示当前页号和总页号。
◆PrinterHeader
当要打印每页的页眉时触发该事件。该事件中的两个参数和PrinterFooter事件中的两个参数完全相同。
◆RButtonDown
当PopMenu属性为False并且用户在该控件上按下鼠标右键时触发该事件。
◆RButtonUp
当PopMenu属性为False并且用户在该控件上松开鼠标右键时触发该事件。
StaticText(静态文本控件)
静态文本控件经常用来显示一定的提示信息,其中的文字在运行时用户不能进行编辑,可以用脚本改变其显示的内容。该控件在运行时不能获得焦点,即使将它的Tab Order值设置为非0也无法获得焦点。
该控件的缺省属性中惟一应该修改的就是text,其他没有必要也很少进行修改。
该控件虽然也提供了很多的事件,例如Clicked事件、DoubleClicked事件等,但很少在该控件上编写脚本,因为该控件一般就是用来显示信息,很少希望用户和该控件进行交互
StaticHyperLink(静态联结)
该控件也提供了很多的事件,但很少在上面进行编程。在该控件上单击鼠标即可自动调用操作系统上的缺省浏览器,打开该控件URL属性指定的页面
版权声明:本文为博主原创文章,未经博主允许不得转载。
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:13816次
排名:千里之外
原创:38篇
(3)(2)(39)pb的数据窗口中,象‘数量’之类只能输入数字和小数点的字段,用EDITMASK编辑风格可限制用户只能输入数字和小数点,但在没有输入小数点时
[问题点数:0分]
pb的数据窗口中,象‘数量’之类只能输入数字和小数点的字段,用EDITMASK编辑风格可限制用户只能输入数字和小数点,但在没有输入小数点时
[问题点数:0分]
不显示删除回复
显示所有回复
显示星级回复
显示得分回复
只显示楼主
相关推荐:
本帖子已过去太久远了,不再提供回复功能。

我要回帖

更多关于 pb editmask 自动选中 的文章

 

随机推荐