以文本方式查看主题 - Foxtable(狐表) (http://foxtable.net/bbs/index.asp) -- 专家坐堂 (http://foxtable.net/bbs/list.asp?boardid=2) ---- 赋值问题 (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=173055) |
-- 作者:shenfengxiaozi -- 发布时间:2021/11/12 16:51:00 -- 赋值问题 dim a1 as integer
dim b1 as integer
有10个 label ,值都是数字,名称分别为 label1--label10, 表A有10个逻辑列,名称分别为第一列--第十列, 而这10个列中,当前行有且只有2个值为TRUE. 需要按以下规律 给 a1 ,b1 赋值
比如
if Tables("表A").Current("第一列") = true \'(列号为1 )\' and Tables("表A").Current("第三列") = true \'(列号为3)\' then
if forms("窗口1").controls(label1).txt < forms("窗口1").controls(label3).txt then
a1=forms("窗口1").controls(label1).txt \'取 值为true的当前行的2个列的列号对应的label的值,把较小的值给a1,较大的给a2. b1=forms("窗口1").controls(label3).txt else b1=forms("窗口1").controls(label1).txt a1=forms("窗口1").controls(label3).txt
end if end if
考虑所有的情况,如何用简洁的代码写?谢谢、
|
-- 作者:有点蓝 -- 发布时间:2021/11/12 16:57:00 -- 看不懂您说的规律。截图举例说明一下。 |
-- 作者:shenfengxiaozi -- 发布时间:2021/11/12 17:13:00 --
把较小的赋值给a1 较大的赋值给b1 [此贴子已经被作者于2021/11/12 17:15:36编辑过]
|
-- 作者:有点蓝 -- 发布时间:2021/11/12 17:31:00 -- dim a1 as integer = -1 dim b1 as integer = -1 dim r as row = Tables("表A").current
for i as integer = 0 to Tables("表A").cols.count - 1 if r(i) = true then dim v as integer = val(forms("窗口1").controls("label" & (i+1)).txt) if a1 = -1 then a1 = v else if v> a1 then b1 = v else b1 = a1 a1 = v end if end if end if next |