首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > PB >

求帮忙解决思路

2013-03-04 
求帮忙我想通过一个下拉框实现日历的自动弹出代码如下去高手看看那里错了点击的时候不弹出啊 IFDescribe(G

求帮忙
我想通过一个下拉框实现日历的自动弹出   代码如下  去高手看看那里错了  点击的时候不弹出啊 
IF  Describe(GetColumnName() + '.Edit.Style') = 'ddlb' &
AND Upper(Describe(GetColumnName() + '.ColType')) = "D_DATE" &
AND Upper(Describe(GetColumnName() + '.ColType')) = "D_DATE1" &
AND Upper(Describe(GetColumnName() + '.ColType')) = "D_DATE2" &
AND Upper(Describe(GetColumnName() + '.ColType')) = "D_DATE3" &
AND Upper(Describe(GetColumnName() + '.ColType')) = "D_DATE4" &
AND Upper(Describe(GetColumnName() + '.ColType')) = "D_DATE5" &
then
window iw_parent
long l_x,l_y
iw_parent=this.getparent()
if isvalid(uo_comctl_month-fordw) then iw_parent.closeuserobject(uo_comctl_month-fordw)
uo_comctl_month-fordw = CREATE uo_comctl_month-fordw
uo_comctl_month-fordw.visible =False
l_X = uf_Get_X( GetColumnName(), left!, uo_comctl_month-fordw.width,iw_parent )
l_Y = uf_Get_Y( GetColumnName(), uo_comctl_month-fordw.height ,iw_parent)
      nvo__month_dw lnvo_month
lnvo_month.iw_parent=iw_parent
lnvo_month.idw_datawindow=this
lnvo_month.ls_colname=GetColumnName()
choose case Upper(Describe(GetColumnName() + '.ColType'))
   case "D_DATE"
lnvo_month.d_date=this.getitemdate(this.getrow(),GetcolumnName())
lnvo_month.bl_isdate=true
case "D_DATE1"
lnvo_month.d_date=this.getitemdate(this.getrow(),GetcolumnName())
lnvo_month.bl_isdate=true
case "D_DATE2"
lnvo_month.d_date=this.getitemdate(this.getrow(),GetcolumnName())
lnvo_month.bl_isdate=true
case "D_DATE3"
lnvo_month.d_date=this.getitemdate(this.getrow(),GetcolumnName())
lnvo_month.bl_isdate=true
case "D_DATE4"
lnvo_month.d_date=this.getitemdate(this.getrow(),GetcolumnName())
lnvo_month.bl_isdate=true
case "D_DATE5"
lnvo_month.d_date=this.getitemdate(this.getrow(),GetcolumnName())
lnvo_month.bl_isdate=true

end choose
    iw_parent.OpenUserObjectwithparm(uo_comctl_month-fordw,lnvo_month,l_X,l_y)
if isvalid(uo_comctl_month-fordw) then
uo_comctl_month-fordw.SetPosition(ToTop!)
uo_comctl_month-fordw.visible = true
end if
return 1
end if

[解决办法]
我觉得程序逻辑上有问题:

IF Describe(GetColumnName() + '.Edit.Style') = 'ddlb' &
AND Upper(Describe(GetColumnName() + '.ColType')) = "D_DATE" &
AND Upper(Describe(GetColumnName() + '.ColType')) = "D_DATE1" &
AND Upper(Describe(GetColumnName() + '.ColType')) = "D_DATE2" &
AND Upper(Describe(GetColumnName() + '.ColType')) = "D_DATE3" &
AND Upper(Describe(GetColumnName() + '.ColType')) = "D_DATE4" &
AND Upper(Describe(GetColumnName() + '.ColType')) = "D_DATE5" &
then
。。。。

中的 AND 连接应该是讲不通的,应该用 OR ;
如:
IF Describe(GetColumnName() + '.Edit.Style') = 'ddlb' &
AND (Upper(Describe(GetColumnName() + '.ColType')) = "D_DATE" &


OR Upper(Describe(GetColumnName() + '.ColType')) = "D_DATE1" &
OR Upper(Describe(GetColumnName() + '.ColType')) = "D_DATE2" &
OR Upper(Describe(GetColumnName() + '.ColType')) = "D_DATE3" &
OR Upper(Describe(GetColumnName() + '.ColType')) = "D_DATE4" &
OR Upper(Describe(GetColumnName() + '.ColType')) = "D_DATE5" )
then
......

另,dw.describe('colname.coltype') 好像没有 d_dateXXX 的属性。
只有 date, datetime 等。。。
具体的查一下帮助。

[解决办法]
使用try语句排错:
try
    ...
catch(DWRuntimeError dwError)
    Messagebox("Error!",dwError.Text,Stopsign!)
end try

热点排行