首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >IP地址的PowerBuilder数据窗口EditMask

IP地址的PowerBuilder数据窗口EditMask
EN

Stack Overflow用户
提问于 2015-05-13 13:04:41
回答 4查看 867关注 0票数 0

请帮助我为IP地址写入数据窗口编辑掩码。目前我正在做这样的###.###.###.###,但它也可以允许300.300.300.300,并且有效的ip地址只允许最大255.255.255.255。请给我引路。谢谢

EN

回答 4

Stack Overflow用户

发布于 2015-05-13 19:06:47

你不能这么做。

您必须使用pbm_keydownpbm_downkey作为事件id来创建一个用户事件,并编写一个脚本来阻止允许击键。返回值允许您拒绝或不拒绝该键。

票数 0
EN

Stack Overflow用户

发布于 2015-05-13 19:10:20

编辑掩码不会验证输入,它们只是格式化输入。最好使用itemchanged事件来验证数据。

票数 0
EN

Stack Overflow用户

发布于 2015-05-14 14:05:20

你的编辑掩码是可以的,如果我是你,我会在数据窗口中定义4个数字列,但是,如果你想要验证,你需要在itemchanged事件中编码:

代码语言:javascript
复制
ls_colname = dw_1.GetcolumnName()
Choose Case ls_colname

    Case "subnet_msk_1"
        if Integer(dw_1.getText()) > 255
          MessageBox("Warning", "Incorrect Input, subnet mask value should not be > 255")
          /*this will not let the datawindow accept the invalid input*/
          return 1
        end if
    Case "subnet_msk_2"
         /*do the same*/
    Case "subnet_msk_3"
         /*do the same*/
    Case "subnet_msk_4"
         /*do the same*/
    /*write your logic here*/
End Choose

如果您只想使用一个字符串cloumn,我相信您将需要使用mid()函数,只需在PB中按F1,您可以找到示例,在您的示例中:

代码语言:javascript
复制
ls_colname = dw_1.GetcolumnName()
Choose Case ls_colname

    Case "subnet_msk"
     if Mid(dw_1.getText(), 1, 4) > 255 OR Mid(dw_1.getText(), 4, 8) > 255 /*etc..*/
         /*your logic here*/
     end if
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/30206089

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档