| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1561 人关注过本帖
标题:微调上限的逻辑
只看楼主 加入收藏
不懂才问
Rank: 15Rank: 15Rank: 15Rank: 15Rank: 15
来 自:大草原
等 级:贵宾
威 望:29
帖 子:1503
专家分:6593
注 册:2010-7-5
结帖率:91.53%
收藏
已结贴  问题点数:20 回复次数:13 
微调上限的逻辑
程序代码:
    PROCEDURE howManyLine.upClick
        IF thisform.howManyLine.value<=4
*!*                MESSAGEBOX("1单内最多只能有4项材料入账",64,"操作提示!")
*!*            ELSE
            clflCbxNum="clflCbx"+ALLTRIM(STR(thisform.howManyLine.value))
            clmcCbxNum="clmcCbx"+ALLTRIM(STR(thisform.howManyLine.value))
            jldwCbxNum="jldwCbx"+ALLTRIM(STR(thisform.howManyLine.value))
            ssslTxtNum="ssslTxt"+ALLTRIM(STR(thisform.howManyLine.value))
            grdjTxtNum="grdjTxt"+ALLTRIM(STR(thisform.howManyLine.value))
            grjeTxtNum="grjeTxt"+ALLTRIM(STR(thisform.howManyLine.value))
            bzdjTxtNum="bzdjTxt"+ALLTRIM(STR(thisform.howManyLine.value))
            bzjeTxtNum="bzjeTxt"+ALLTRIM(STR(thisform.howManyLine.value))
            cjTxtNum="cjTxt"+ALLTRIM(STR(thisform.howManyLine.value))
            bgddCbxNum="bgddCbx"+ALLTRIM(STR(thisform.howManyLine.value))
           
            thisform.addobject('&clflCbxNum','comboBox')
            thisform.addobject('&clmcCbxNum','comboBox')
            thisform.addobject('&jldwCbxNum','comboBox')
            thisform.addobject('&ssslTxtNum','textBox')
            thisform.addobject('&grdjTxtNum','textBox')
            thisform.addobject('&grjeTxtNum','textBox')
            thisform.addobject('&bzdjTxtNum','textBox')
            thisform.addobject('&bzjeTxtNum','textBox')
            thisform.addobject('&cjTxtNum','textBox')
            thisform.addobject('&bgddCbxNum','comboBox')
           
            Thisform.Arrange
        ELSE
            MESSAGEBOX("1单内最多只能有4项材料入账",64,"操作提示!")       
        ENDIF
    ENDPROC 

上限是4,已经是4的时候,再点一下,提示同名类,为什么不转到ELSE呢?

还是需要另设一个FORM的属性,协助限制上限?
2015-12-30 16:07
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
收藏
得分:0 
檢查value値。這個寫法不好,另外還有多餘動作。

授人以渔,不授人以鱼。
2015-12-30 16:25
吹水佬
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:451
帖 子:10607
专家分:43186
注 册:2014-5-20
收藏
得分:1 
与 Value 初始值和 Increment 有关。
2015-12-30 16:45
tlliqi
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
等 级:贵宾
威 望:204
帖 子:15453
专家分:65956
注 册:2006-4-27
收藏
得分:1 
设下初始值
2015-12-30 17:48
不懂才问
Rank: 15Rank: 15Rank: 15Rank: 15Rank: 15
来 自:大草原
等 级:贵宾
威 望:29
帖 子:1503
专家分:6593
注 册:2010-7-5
收藏
得分:0 
回复 2楼 TonyDeng
现在的事实是,这个写法肯定不好,因为在微调达到上限时,还可以继续点


但   有什么更好的写法吗?


给个提示    谢谢了    

报告老师,我低头不是因为我在装低调,是你问的问题,我真的不会答,,,
2015-12-30 22:47
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
收藏
得分:0 
看看你的畫面

授人以渔,不授人以鱼。
2015-12-30 22:53
不懂才问
Rank: 15Rank: 15Rank: 15Rank: 15Rank: 15
来 自:大草原
等 级:贵宾
威 望:29
帖 子:1503
专家分:6593
注 册:2010-7-5
收藏
得分:0 
回复 6楼 TonyDeng
首次运行
图片附件: 游客没有浏览图片的权限,请 登录注册



加到四行的时候
图片附件: 游客没有浏览图片的权限,请 登录注册



再点就这样了
图片附件: 游客没有浏览图片的权限,请 登录注册



放大的效果
图片附件: 游客没有浏览图片的权限,请 登录注册

报告老师,我低头不是因为我在装低调,是你问的问题,我真的不会答,,,
2015-12-31 07:01
不懂才问
Rank: 15Rank: 15Rank: 15Rank: 15Rank: 15
来 自:大草原
等 级:贵宾
威 望:29
帖 子:1503
专家分:6593
注 册:2010-7-5
收藏
得分:0 
用了另外一个表单的自定义属性  解决了 

程序代码:
    PROCEDURE howManyLine.upClick &&rtnMainBtn.click
        IF thisform.currLine<4
            clflCbxNum="clflCbx"+ALLTRIM(STR(thisform.howManyLine.value))
            clmcCbxNum="clmcCbx"+ALLTRIM(STR(thisform.howManyLine.value))
            jldwCbxNum="jldwCbx"+ALLTRIM(STR(thisform.howManyLine.value))
            ssslTxtNum="ssslTxt"+ALLTRIM(STR(thisform.howManyLine.value))
            grdjTxtNum="grdjTxt"+ALLTRIM(STR(thisform.howManyLine.value))
            grjeTxtNum="grjeTxt"+ALLTRIM(STR(thisform.howManyLine.value))
            bzdjTxtNum="bzdjTxt"+ALLTRIM(STR(thisform.howManyLine.value))
            bzjeTxtNum="bzjeTxt"+ALLTRIM(STR(thisform.howManyLine.value))
            cjTxtNum="cjTxt"+ALLTRIM(STR(thisform.howManyLine.value))
            bgddCbxNum="bgddCbx"+ALLTRIM(STR(thisform.howManyLine.value))
           
            thisform.addobject('&clflCbxNum','comboBox')
            thisform.addobject('&clmcCbxNum','comboBox')
            thisform.addobject('&jldwCbxNum','comboBox')
            thisform.addobject('&ssslTxtNum','textBox')
            thisform.addobject('&grdjTxtNum','textBox')
            thisform.addobject('&grjeTxtNum','textBox')
            thisform.addobject('&bzdjTxtNum','textBox')
            thisform.addobject('&bzjeTxtNum','textBox')
            thisform.addobject('&cjTxtNum','textBox')
            thisform.addobject('&bgddCbxNum','comboBox')
           
            Thisform.Arrange
        ELSE
            MESSAGEBOX("1单内最多只能有4项材料入账",64,"操作提示!")       
        ENDIF
    ENDPROC 


程序代码:
    PROCEDURE Arrange
略       
        WITH this.rtnMainBtn
            .top=this.line4.top+this.line4.height+5*this.formZoom
            .left=this.bgddTitle.left+this.bgddTitle.width/2-.width/2
            .height=25*this.formZoom
            .width=36*this.formZoom
            .fontSize=thisform.fontReSize(.name,.height,.width,9,3)
        ENDWITH       
       
        this.height=this.rtnMainBtn.top+this.rtnMainBtn.height+4*this.formZoom
       
        this.currLine=this.howManyLine.value
       
略
       
    ENDPROC

报告老师,我低头不是因为我在装低调,是你问的问题,我真的不会答,,,
2015-12-31 07:35
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
收藏
得分:18 
針對已有方案最快的解決辦法,是在微調控件的Click事件中檢測當前Value値,是上限4的時候,先查看對應對象是否存在,再決定是否創建。檢測對象是否存在的方法是:TYPE(對象名字符串)=="O",是Object的首字母,不是零。

這種情形,就如向數據表添加記錄,當要無重覆的時候,添加之前必須檢測是否已存在相同關鍵字的記錄。道理是一樣的,很多人寫程序,依賴SQL INSERT或數據庫自身的機制,基本不知道數據的細節,故總有人不斷地問已有數據表如何檢測重覆記錄的問題,那就是添加的時候根本沒意識,事後擦屁股的功夫比當初檢測攔截還大,貪圖添加一時之快,結果治病時間更長——上帝是很公平的。

[此贴子已经被作者于2015-12-31 14:13编辑过]


授人以渔,不授人以鱼。
2015-12-31 13:18
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
收藏
得分:0 
其實,你這個功能根本就不應該用微調控件,我之前就指出過了。爲什麽呢?你看微調控件,它的値是可以上下調的,那麽當用戶把値往回調的時候,你的這個實施過程,會出現什麽問題、如何解決?就算你用我上面説的辦法解決了,那也是很彆扭的手法,因爲這個機制是拗邏輯的——根本就不應該存在往回調的可能性,所以這裏不能用微調控件。換句話説,問題是選用這個控件導致的。選對方案,比單純靠技術手段管用。

[此贴子已经被作者于2015-12-31 13:55编辑过]


授人以渔,不授人以鱼。
2015-12-31 13:52
快速回复:微调上限的逻辑
数据加载中...
 
   



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

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