Foxtable(狐表)用户栏目专家坐堂 → 请问这种报表该如何生成?


  共有3392人关注过本帖树形打印复制链接

主题:请问这种报表该如何生成?

美女呀,离线,留言给我吧!
youkacard
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:童狐 帖子:269 积分:1847 威望:0 精华:0 注册:2014/11/9 21:57:00
请问这种报表该如何生成?  发帖心情 Post By:2015/6/3 19:44:00 [只看该作者]

举个简单的例子:
我做了一个循环生成的流水号,比方说从NO.00001-NO.01000;这时我需要200个号码就是一个号段,比方说第一个号段是NO.00001-NO.00200,第二个号段是NO.00201-NO.00400...以此类推;我需要这些号段做一个标签,标签图如下:

图片点击可在新窗口打开查看此主题相关图片如下:qq截图20150603193738.png
图片点击可在新窗口打开查看
请问该怎么做呢。
请版主提供个思路给我,我自己做。


 回到顶部
帅哥哟,离线,有人找我吗?
monvzhilei
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:童狐 帖子:201 积分:1386 威望:0 精华:0 注册:2015/4/14 17:39:00
  发帖心情 Post By:2015/6/3 19:49:00 [只看该作者]

我感觉就是使用excel报表功能。

 回到顶部
帅哥哟,离线,有人找我吗?
大红袍
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:贵宾 帖子:39310 积分:196782 威望:0 精华:1 注册:2015/4/25 9:23:00
  发帖心情 Post By:2015/6/3 19:59:00 [只看该作者]

 用专业报表吧。

 

 

Dim doc As New PrintDoc '定义一个报表

For i As Integer = 1 To 10
    Dim rt As New prt.RenderTable() '定义一个表格对象
    doc.Body.Children.Add(rt) '将表格对象加入到报表中
    rt.Style.GridLines.All = New prt.Linedef '设置网格线
    rt.Style.Spacing.Bottom = 20
    rt.Cells(0,0).Text = "订单名称"
    rt.Cells(0,1).Text = "停车卡"
    rt.Cells(1,0).Text = "盒装数量"
    rt.Cells(1,1).Text = "第" & i & "盒"
    rt.Cells(2,0).Text = "号段"
    rt.Cells(2,1).Text = "NO." & format((i-1)*200+1, "00000") & "-NO." &  Format(i*200, "00000")
Next
doc.Preview() '预览报表

 

http://www.foxtable.com/help/topics/1199.htm

 


 回到顶部
美女呀,离线,留言给我吧!
youkacard
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:童狐 帖子:269 积分:1847 威望:0 精华:0 注册:2014/11/9 21:57:00
  发帖心情 Post By:2015/6/3 20:05:00 [只看该作者]

谢谢

 回到顶部
美女呀,离线,留言给我吧!
youkacard
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:童狐 帖子:269 积分:1847 威望:0 精华:0 注册:2014/11/9 21:57:00
  发帖心情 Post By:2015/6/4 16:29:00 [只看该作者]

您好,大红袍版主,经过实际应用时候,发现有个问题,就是循环里我如果要跳过某个指定条件的数字,号段并不会跳过,请问如果解决呢?示例如下:
For i As Integer = 1 To 10
Dim b As Boolean = True
If CStr(i).EndsWith("4") Or Format(i,"000").EndsWith("4") Then '个位数含4的都跳过
b = False
End If
If b Then
If i <= 5 Then '总共5盒
MessageBox.Show((i - 1) * 2 + 1 & "-" & i * 2)
End If
End If
Next

这里面,号段不会跳过4

 回到顶部
帅哥哟,离线,有人找我吗?
大红袍
  6楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:贵宾 帖子:39310 积分:196782 威望:0 精华:1 注册:2015/4/25 9:23:00
  发帖心情 Post By:2015/6/4 16:33:00 [只看该作者]

For i As Integer = 1 To 10
    Dim d1 As Integer = (i - 1) * 2 + 1
    Dim d2 As Integer = i * 2
    If not (Cstr(d1).Contains("4") OrElse Cstr(d2).Contains("4")) Then
        If i <= 5 Then '总共5盒
            MessageBox.Show(d1 & "-" & d2)
        End If
    End If
Next

 回到顶部
美女呀,离线,留言给我吧!
youkacard
  7楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:童狐 帖子:269 积分:1847 威望:0 精华:0 注册:2014/11/9 21:57:00
  发帖心情 Post By:2015/6/8 9:30:00 [只看该作者]

以下是引用大红袍在2015/6/4 16:33:00的发言:
For i As Integer = 1 To 10
    Dim d1 As Integer = (i - 1) * 2 + 1
    Dim d2 As Integer = i * 2
    If not (Cstr(d1).Contains("4") OrElse Cstr(d2).Contains("4")) Then
        If i <= 5 Then '总共5盒
            MessageBox.Show(d1 & "-" & d2)
        End If
    End If
Next

这样生成出来好像不对,我自己按照这个思路用EndWish也不行,按照循环 1 - 10,每2个就是一个号段,跳过4之后的号段应该是 1-2;3-5;6-7;8-9;10-11;可是这段代码输出的是1-2;5-6;7-8;9-10;


 回到顶部
美女呀,离线,留言给我吧!
youkacard
  8楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:童狐 帖子:269 积分:1847 威望:0 精华:0 注册:2014/11/9 21:57:00
  发帖心情 Post By:2015/6/8 9:47:00 [只看该作者]

顶起来,让大神们看到图片点击可在新窗口打开查看

 回到顶部
帅哥哟,离线,有人找我吗?
Bin
  9楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:贵宾 帖子:35433 积分:178524 威望:0 精华:3 注册:2013/3/30 16:36:00
  发帖心情 Post By:2015/6/8 9:57:00 [只看该作者]

Dim d3 As Integer
For i As Integer = 1 To 10
    Dim d1 As Integer = (i - 1) * 2 + 1+d3
    Dim d2 As Integer = i * 2+d3
    If i <= 5 Then '总共5盒
        If not (Cstr(d1).Contains("4") OrElse Cstr(d2).Contains("4")) Then
            MessageBox.Show(d1 & "-" & d2)
        Else If Cstr(d2).Contains("4") Then
            d3=1
            MessageBox.Show(d1 & "-" & (d2+1))
        End If
    End If
Next

 回到顶部
帅哥哟,离线,有人找我吗?
大红袍
  10楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:贵宾 帖子:39310 积分:196782 威望:0 精华:1 注册:2015/4/25 9:23:00
  发帖心情 Post By:2015/6/8 10:00:00 [只看该作者]


Dim d1 As Integer
Dim d2 As Integer = 0
Dim count = 10
Dim i = 1
Do While i <= count
    If cstr(i).Contains("4") = False Then
        d2 += 1
        If d2 = 1 Then
            d1 = i
        ElseIf d2 = 2 Then
            output.show(d1 & " " & i)
            d2 = 0
        End If
    Else
        count += 1
    End If
    i += 1
Loop

 回到顶部