以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.com/bbs/index.asp)
--  专家坐堂  (http://foxtable.com/bbs/list.asp?boardid=2)
----  请教,有For ...Next.  (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=7477)

--  作者:baoxyang
--  发布时间:2010/6/28 14:43:00
--  请教,有For ...Next.

dim k as string = 20

for i as integer = 0 to k

    if  a > 10  then

        k = k -1

    end if

Next

 

目的是当遇a>10时,for ..... Next 循环次数减一次(少循环一次)

 

上面这样实现不了。请教,如何实现?先谢了!!!

[此贴子已经被作者于2010-6-28 14:43:52编辑过]

--  作者:狐狸爸爸
--  发布时间:2010/6/28 14:47:00
--  

dim k as string = 20

for i as integer = 0 to k

    if  a > 10  then

        i = i+1

    end if

Next


--  作者:baoxyang
--  发布时间:2010/6/28 14:55:00
--  
以下是引用狐狸爸爸在2010-6-28 14:47:00的发言:

dim k as string = 20

for i as integer = 0 to k

    if  a > 10  then

        i = i+1

    end if

Next

目的是K是打印页数,打印页数会根据每行的内容多少,设定一定宽度,再根据宽度大小来增中页数。按上面的代码只会减少页数。我上面说错了,是

dim k as string = 20

for i as integer = 0 to k

    if  a > 10  then

        k = k +1

    end if

Next

 

目的是当遇a>10时,for ..... Next 循环次数增中一次

 

不好意思!图片点击可在新窗口打开查看


--  作者:baoxyang
--  发布时间:2010/6/28 14:58:00
--  
是否K这个变量的值是不能在for ..... Next 循环中变动的吗?
--  作者:狐狸爸爸
--  发布时间:2010/6/28 15:05:00
--  

dim k as string = 20

 

应该是:

 

dim k As Integer

 

否则+1就成了201,不是21


--  作者:mr725
--  发布时间:2010/6/28 15:28:00
--  
以下是引用狐狸爸爸在2010-6-28 15:05:00的发言:

dim k as string = 20 

应该是:

dim k As Integer 

否则+1就成了201,不是21

 ?????????


图片点击可在新窗口打开查看此主题相关图片如下:未命名1.jpg
图片点击可在新窗口打开查看

 

这样才是你说的结果: 


图片点击可在新窗口打开查看此主题相关图片如下:未命名2.jpg
图片点击可在新窗口打开查看

--  作者:狐狸爸爸
--  发布时间:2010/6/28 15:37:00
--  

图片点击可在新窗口打开查看


--  作者:狐狸爸爸
--  发布时间:2010/6/28 15:38:00
--  

增加页数:

 

Dim k as Integer= 20

for i as integer = 0 to k

    if  a > 10  then

        i = i - 1

    end if

Next


--  作者:mr725
--  发布时间:2010/6/28 15:51:00
--  

a 在循环时也变化吗? 如果不是的话应该这样吧:

dim k as integer = 20
dim a as integer = 变量
if  a > 10  then
    k = k +1   
end if
for i as integer = 0 to k
  ······
Next

 


--  作者:baoxyang
--  发布时间:2010/6/28 16:02:00
--  

好像都不行,现只能把K固定一个较大的值,然后根据每页的行数及表总行数进行判断退出循环。

For t as integer = 0 to 1000

  \'中间的每页行数省略

    if a > 10 then

       j = j + 1

    end if

 if t < j then          
        Dim rm1 As prt.RenderEmpty
        rm1 = new prt.RenderEmpty \'定义一个新的空对象
        rm1.BreakBefore = prt.BreakEnum.Page \'打印前换页
        doc.Body.Children.Add(rm1)
   else
       exit for
   end if

Next

[此贴子已经被作者于2010-6-28 16:03:48编辑过]