| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1062 人关注过本帖
标题:请帮助查找表单存在的问题
只看楼主 加入收藏
wang670528
Rank: 1
等 级:新手上路
帖 子:17
专家分:0
注 册:2010-2-24
结帖率:100%
收藏
已结贴  问题点数:5 回复次数:11 
请帮助查找表单存在的问题
想建一个查询及修改表单。
查询按钮的CLICK代码:
if empty(thisform.Text1.value)=.f.
go top
a=
b=alltrim(thisform.Text1.value)
c=.f.
  if a="身份证号"
     locate for 身份证号=b
     if eof()
        messagebox("数据库中不存在您所要查询的记录",16,"系统提示")
        go top
        return
     else
        c=.t.
     endif
  ENDIF
  if a="姓名"
     locate for 姓名=b
     if eof()
        messagebox("数据库中不存在您所要查询的记录",16,"系统提示")
        go top
        return
     else
        c=.t.
     endif
  ENDIF
  if a="联系电话"
     locate for 联系电话=b
     if eof()
        messagebox("数据库中不存在您所要查询的记录",16,"系统提示")
        go top
        return
     else
        c=.t.
     endif
  ENDIF
  if c
     thisform.Text1.enabled=.f.
     go recno()
     thisform.Text2.visible=.t.
     thisform.Text2.enabled=.f.
     thisform.Text3.visible=.t.
     thisform.Text4.visible=.t.
     thisform.Text5.visible=.t.
     thisform.Text6.visible=.t.
     thisform.Text7.visible=.t.
     thisform.Text8.visible=.t.
     thisform.Text9.visible=.t.
     thisform.Text10.visible=.t.
     thisform.Text11.visible=.t.
     thisform.Text12.visible=.t.
     thisform.Text13.visible=.t.
     thisform.Text14.visible=.t.
     thisform.Text15.visible=.t.
     thisform.Text16.visible=.t.
     thisform.Label3.visible=.t.
     thisform.label4.visible=.t.
     thisform.Label5.visible=.t.
     thisform.Text2.value=jg.序号
     thisform.Text3.value=jg.批文文号
     thisform.Text4.value=jg.姓名
     thisform.Text5.value=jg.出生日期
     thisform.Text6.visible=jg.身份证号
     thisform.Text7.visible=jg.派出所
     thisform.Text8.visible=jg.村委
     thisform.Text9.visible=jg.联系电话
     thisform.Text10.visible=jg.案件性质
     thisform.Text11.visible=jg.刑期
     thisform.Text12.visible=jg.期限
     thisform.Text13.visible=jg.种类
     thisform.Text14.visible=jg.开始时间
     thisform.Text15.visible=jg.结束时间
     thisform.Text16.visible=jg.接收民警
     thisform.Label3.visible=.t.
     thisform.label4.visible=.t.
     thisform.Label5.visible=.t.
     thisform.grid1.setfocus
     this.enabled=.f.
     
  endif
else
   messagebox("请输入要查找的内容!",16,"系统提示")
   thisform.Text1.value=""
   thisform.Text1.Setfocus
endif
thisform.refresh
修改按钮的CLICK代码:
a=alltrim(thisform.Text3.value)
b=alltrim(thisform.Text4.value)
if empty(a).or.empty(b)
   messagebox("姓名及批文文号不可以修改为空值",16,"系统提示")
   return
endif
msg=messagebox('确定要修改记录吗?',32+4,'系统提示')
if msg=6
   go recno()
   replace jg.批文文号 with a,jg.姓名 with b
   messagebox("修改记录成功",16,"系统提示")
   thisform.grid1.refresh
   
   thisform.Text1.enabled=.t.
   this.enabled=.f.
   thisform.Text2.visible=.f.
   thisform.Text3.visible=.f.
   thisform.Text4.visible=.f.
   thisform.Label3.visible=.f.
   thisform.label4.visible=.f.
   thisform.Label5.visible=.f.   
   thisform.Text1.value=""
   thisform.Text1.setfocus
endif
点查询按钮,提示:此属性的数据类型无效。
修改按钮代码未写完,能否按这个模式写下去。
谢谢
搜索更多相关主题的帖子: 表单 
2010-03-01 22:58
sywzs
Rank: 10Rank: 10Rank: 10
来 自:辽宁
等 级:贵宾
威 望:15
帖 子:508
专家分:1725
注 册:2009-5-13
收藏
得分:0 
表中的"身份证号"、"姓名"、"联系电话"是否都是字符型字段?
可以程序中设置断点,单步运行,看看是哪一条语句提示此属性的数据类型无效。

2010-03-02 07:40
sywzs
Rank: 10Rank: 10Rank: 10
来 自:辽宁
等 级:贵宾
威 望:15
帖 子:508
专家分:1725
注 册:2009-5-13
收藏
得分:0 
另外,把查询按钮的CLICK代码简化一下,供参考。其中第一个省略号是指Text4至Text15的Visible,第一个省略号是指相关赋值语句。
WITH Thisform
IF !EMPTY(.Text1.Value)
  ComValue=.combo1.DisplayValue
  LOCATE FOR &ComValue=ALLTRIM(.Text1.Value)
  IF FOUND()
    STORE .F. TO .Text1.Enabled,.Text2.Enabled
    STORE .T. TO .Text2.Visible,.Text3.Visible,;
    ........,.Text16.Visible,.Label3.Visible,;
    ,.Label4.Visible,.Label5.Visible
    Text2.value=jg.序号
    ..........
    .Text16.value=jg.接收民警
    .grid1.setfocus
    this.enabled=.f.
    .command2.enabled=.t.
  ELSE
    MESSAGEBOX("数据库中不存在您所要查询的记录",16,"系统提示")
    RETURN
  ENDIF
ELSE
  messagebox("请输入要查找的内容!",16,"系统提示")
  .Text1.Setfocus
ENDIF
.Refresh
ENDWITH


[ 本帖最后由 sywzs 于 2010-3-3 07:05 编辑 ]
2010-03-02 07:47
wang670528
Rank: 1
等 级:新手上路
帖 子:17
专家分:0
注 册:2010-2-24
收藏
得分:0 
姓名是字符型,联系电话、身份证号是数值型的。
在程序中设置断点?单步运行?请指教我具体步骤吗?
2010-03-02 12:55
茵梦湖
Rank: 11Rank: 11Rank: 11Rank: 11
等 级:贵宾
威 望:31
帖 子:545
专家分:2180
注 册:2009-4-25
收藏
得分:5 
查询按钮的CLICK代码:
if empty(thisform.Text1.value)=.f.
go top
a=displayvalue  && 字符型
b=alltrim(thisform.Text1.value)
c=.f.
  if a="身份证号"
     locate for 身份证号=val(b)  && 数值型
     if eof()
        messagebox("数据库中不存在您所要查询的记录",16,"系统提示")
        go top
        return
     else
        c=.t.
     endif
  ENDIF
  if a="姓名"
     locate for 姓名=b  && 字符型
     if eof()
        messagebox("数据库中不存在您所要查询的记录",16,"系统提示")
        go top
        return
     else
        c=.t.
     endif
  ENDIF
  if a="联系电话"
     locate for 联系电话=val(b)  && 数值型
     if eof()
        messagebox("数据库中不存在您所要查询的记录",16,"系统提示")
        go top
        return
     else
        c=.t.
     endif
  ENDIF



-------------------------------------------
只粗粗看了以上这段代码, 余下代码只瞄了一下, 没有细看~~~
 
其实, 这类查询如果设计的好, 代码是可以很简洁的~~~你的代码也太冗长了些~~
2010-03-02 13:17
sywzs
Rank: 10Rank: 10Rank: 10
来 自:辽宁
等 级:贵宾
威 望:15
帖 子:508
专家分:1725
注 册:2009-5-13
收藏
得分:0 
建议联系电话、身份证号设置成字符型的,这两个字段是不需要参加数学运算的。
2010-03-02 15:47
sdj_2003
Rank: 1
等 级:新手上路
帖 子:13
专家分:2
注 册:2010-3-2
收藏
得分:0 
联系电话是数值型有问题,联系电话第一位如果是0怎么办?

数字和数值型是两回事.

把表中联系电话身份证号改成字符型的
别外在Text1的init事件中输入 this.value='' 即对TEXT1的类型初始为字符型


2010-03-02 15:49
wang670528
Rank: 1
等 级:新手上路
帖 子:17
专家分:0
注 册:2010-2-24
收藏
得分:0 
我已把联系电话、身份证号改成字符型的。
运行这个表单,还是不通过。提示和过去一样。
我也按5楼老师的命令改过,也是通不过去。
请老师们再帮我看看。
2010-03-02 19:41
茵梦湖
Rank: 11Rank: 11Rank: 11Rank: 11
等 级:贵宾
威 望:31
帖 子:545
专家分:2180
注 册:2009-4-25
收藏
得分:0 
先将身份证号, 电话号码改为字符型, 查询键click代码如下, 如果再通不过, 我就无话可说了~

a =allt()
b =allt(thisform.Text1.value)
if empt(a) .or.empt(b)
   messagebox("查询关键词 或 查询内容 不能为空, 请予选定或录入~",16,"系统提示")
   thisform.Text1.value =""
   thisform.Text1.Setfocus
else
   sele jg
   loca for &a=b
   if eof()
      messagebox("&a.为( &b )的记录不存在",16,"系统提示")
      retu
   endif

   lsfdtt=",序号,批文文号,姓名,出生日期,身份证号,派出所,村委,联系电话,案件性质,刑期,期限,种类,开始时间,结束时间,接收民警,"
   for kk=2 to 15
       kkc =tran(kk)
       ls =at(",",lsfdtt,kk-1)+1
       lsfd =subs(lsfdtt,ls,at(",",lsfdtt,kk)-ls)
       thisform.Text&kkc..value=iif(vart(&lsfd)="D",dtoc(&lsfd),iif(vart(&lsfd)="N",allt(str(&lsfd)),allt(&lsfd) ))
       thisform.Text&kkc..enabled=.f.
       thisform.Text&kkc..visible=.t.
   endfor
   thisform.grid1.setfocus
   
endif


[ 本帖最后由 茵梦湖 于 2010-3-2 21:02 编辑 ]
2010-03-02 20:58
茵梦湖
Rank: 11Rank: 11Rank: 11Rank: 11
等 级:贵宾
威 望:31
帖 子:545
专家分:2180
注 册:2009-4-25
收藏
得分:0 
    thisform.Text6.visible=jg.身份证号
     thisform.Text7.visible=jg.派出所
     thisform.Text8.visible=jg.村委
     thisform.Text9.visible=jg.联系电话
     thisform.Text10.visible=jg.案件性质
     thisform.Text11.visible=jg.刑期
     thisform.Text12.visible=jg.期限
     thisform.Text13.visible=jg.种类
     thisform.Text14.visible=jg.开始时间
     thisform.Text15.visible=jg.结束时间
     thisform.Text16.visible=jg.接收民警

     thisform.Label3.visible=.t.
     thisform.label4.visible=.t.
     thisform.Label5.visible=.t.

====================
你上述代码(红字部分)都是错误的, visible的值只能为.t.或.f.~



2010-03-02 21:09
快速回复:请帮助查找表单存在的问题
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.042300 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved