Foxtable(狐表)用户栏目专家坐堂 → [求助] 自动填充无法填充多行


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

主题:[求助] 自动填充无法填充多行

帅哥哟,离线,有人找我吗?
wumingrong1
  11楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:五尾狐 帖子:1029 积分:6497 威望:0 精华:0 注册:2014/1/3 12:49:00
  发帖心情 Post By:2014/10/30 10:56:00 [只看该作者]

我在表DataColChanged中想实现、

在“设备”列中有按顺序编排的数值、每个数值有4行;那么我希望在“内层”列中中实现自动填入序列填充的数值。命令该怎么写?


设备         内层

50            10
50            11
50            12
50            13
51            14
51            15
51            16
51            17
52            18
52            19
52            20
52            21

[此贴子已经被作者于2014-10-30 10:59:32编辑过]

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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2014/10/30 11:00:00 [只看该作者]

dim nc as integer = e.DataTable.Compute("max(内层)", "设备 = '" & e.DataRow("设备") & "' and _Sortkey < " & e.DataRow("_Sortkey"))
If nc = 0 Then
    e.DataRow("内层") = 10
Else
    e.DataRow("内层") = nc + 1
End If


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


加好友 发短信
等级:五尾狐 帖子:1029 积分:6497 威望:0 精华:0 注册:2014/1/3 12:49:00
  发帖心情 Post By:2014/10/30 11:23:00 [只看该作者]

如果我想实现以下效果,有没有更方便和直接的办法?
设备 内层
50 1051
50 1052
50 1053
50 1054
51 1055
51 1056
51 1057
51 1058
52 1059
52 1060
52 1061
52 1062
53 1063
53 1064
53 1065
53 1066
54 1067
54 1068
54 1069
54 1070
55 1071
55 1072
55 1073
55 1074
56 1075
56 1076
56 1077
56 1078
57 1079
57 1080
57 1081
57 1082
58 1083
58 1084
58 1085
58 1086
59 1087
59 1088
59 1089
59 1090


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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2014/10/30 11:29:00 [只看该作者]

dim nc as integer = e.DataTable.Compute("max(内层)", "_Sortkey <= " & e.DataRow("_Sortkey") & " and _Identify <> " & e.datarow("_Identify"))

e.DataRow("内层") = nc + 1

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


加好友 发短信
等级:五尾狐 帖子:1029 积分:6497 威望:0 精华:0 注册:2014/1/3 12:49:00
  发帖心情 Post By:2014/10/30 14:56:00 [只看该作者]

下面的命令能不能进行优化?该怎么优化?


If e.Form.Controls("端口编号").Text = "0" Then
                
                For j0 As Integer = 1001 To 1106
                    Dim dr As DataRow = DataTables("OLT设备用户端口数据表").AddNew
                    
                    dr("机房名称") = e.Form.Controls("机房名称").Text
                    dr("设备名称") = e.Form.Controls("设备名称").Text
                    dr("机框编号") = e.Form.Controls("机框编号").Text
                    dr("槽位编号") = e.Form.Controls("槽位编号").Text
                    dr("端口编号") = e.Form.Controls("端口编号").Text
                    
                    dr("BAS设备") = e.Form.Controls("BAS设备").Text
                    dr("BAS槽位") = e.Form.Controls("BAS槽位").Text
                    dr("BAS子槽") = e.Form.Controls("BAS子槽").Text
                    dr("BAS端口") = e.Form.Controls("BAS端口").Text
                    
                    dr("外层VLAN") = e.Form.Controls("外层VLAN").Text
                    dr("内层VLAN") = j0
                    
                Next
                
                
            Else
                
                If e.Form.Controls("端口编号").Text = "1" Then
                    
                    For j1 As Integer = 1107 To 1212
                        Dim dr As DataRow = DataTables("OLT设备用户端口数据表").AddNew
                        
                        dr("机房名称") = e.Form.Controls("机房名称").Text
                        dr("设备名称") = e.Form.Controls("设备名称").Text
                        dr("机框编号") = e.Form.Controls("机框编号").Text
                        dr("槽位编号") = e.Form.Controls("槽位编号").Text
                        dr("端口编号") = e.Form.Controls("端口编号").Text
                        
                        dr("BAS设备") = e.Form.Controls("BAS设备").Text
                        dr("BAS槽位") = e.Form.Controls("BAS槽位").Text
                        dr("BAS子槽") = e.Form.Controls("BAS子槽").Text
                        dr("BAS端口") = e.Form.Controls("BAS端口").Text
                        
                        dr("外层VLAN") = e.Form.Controls("外层VLAN").Text
                        dr("内层VLAN") = j1
                        
                    Next
                    
                    
                Else
                    
                    If e.Form.Controls("端口编号").Text = "2" Then
                        
                        For j2 As Integer = 1213 To 1318
                            Dim dr As DataRow = DataTables("OLT设备用户端口数据表").AddNew
                            
                            dr("机房名称") = e.Form.Controls("机房名称").Text
                            dr("设备名称") = e.Form.Controls("设备名称").Text
                            dr("机框编号") = e.Form.Controls("机框编号").Text
                            dr("槽位编号") = e.Form.Controls("槽位编号").Text
                            dr("端口编号") = e.Form.Controls("端口编号").Text
                            
                            dr("BAS设备") = e.Form.Controls("BAS设备").Text
                            dr("BAS槽位") = e.Form.Controls("BAS槽位").Text
                            dr("BAS子槽") = e.Form.Controls("BAS子槽").Text
                            dr("BAS端口") = e.Form.Controls("BAS端口").Text
                            
                            dr("外层VLAN") = e.Form.Controls("外层VLAN").Text
                            dr("内层VLAN") = j2
                            
                        Next


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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2014/10/30 15:01:00 [只看该作者]

Dim i As Integer = e.Form.Controls("端口编号").Text
For j0 As Integer = 1001+i*106 To 1106+i*106
    Dim dr As DataRow = DataTables("OLT设备用户端口数据表").AddNew
   
    dr("机房名称") = e.Form.Controls("机房名称").Text
    dr("设备名称") = e.Form.Controls("设备名称").Text
    dr("机框编号") = e.Form.Controls("机框编号").Text
    dr("槽位编号") = e.Form.Controls("槽位编号").Text
    dr("端口编号") = e.Form.Controls("端口编号").Text
   
    dr("BAS设备") = e.Form.Controls("BAS设备").Text
    dr("BAS槽位") = e.Form.Controls("BAS槽位").Text
    dr("BAS子槽") = e.Form.Controls("BAS子槽").Text
    dr("BAS端口") = e.Form.Controls("BAS端口").Text
   
    dr("外层VLAN") = e.Form.Controls("外层VLAN").Text
    dr("内层VLAN") = j0
   
Next

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


加好友 发短信
等级:五尾狐 帖子:1029 积分:6497 威望:0 精华:0 注册:2014/1/3 12:49:00
  发帖心情 Post By:2014/10/30 15:46:00 [只看该作者]

有某列,想自动填充数值;帮我看看命令该怎么写?


Dim i As Integer = e.Form.Controls("端口编号").Text
For j0 As Integer = 1001+i*106 To 1106+i*106
    Dim dr As DataRow = DataTables("OLT设备用户端口数据表").AddNew
    
    dr("机房名称") = e.Form.Controls("机房名称").Text
    dr("设备名称") = e.Form.Controls("设备名称").Text
    dr("机框编号") = e.Form.Controls("机框编号").Text
    dr("槽位编号") = e.Form.Controls("槽位编号").Text
    dr("端口编号") = e.Form.Controls("端口编号").Text
    
    dr("BAS设备") = e.Form.Controls("BAS设备").Text
    dr("BAS槽位") = e.Form.Controls("BAS槽位").Text
    dr("BAS子槽") = e.Form.Controls("BAS子槽").Text
    dr("BAS端口") = e.Form.Controls("BAS端口").Text
    
    dr("外层VLAN") = e.Form.Controls("外层VLAN").Text
    dr("内层VLAN") = j0

dr("设备ID") =    1~50行填入0~49;从第51行开始每隔4行填入数值从50~63

    
Next


设备ID

0
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
50
50
50
51
51
51
51
52
52
52
52
53
53
53
53
54
54
54
54
55
55
55
55
56
56
56
56
57
57
57
57
58
58
58
58
59
59
59
59
60
60
60
60
61
61
61
61
62
62
62
62
63
63
63
63


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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2014/10/30 16:23:00 [只看该作者]

Dim i As Integer = e.Form.Controls("端口编号").Text
Dim pid As Integer = 49
For j0 As Integer = 1001+i*106 To 1106+i*106
    Dim dr As DataRow = DataTables("OLT设备用户端口数据表").AddNew
   
    dr("机房名称") = e.Form.Controls("机房名称").Text
    dr("设备名称") = e.Form.Controls("设备名称").Text
    dr("机框编号") = e.Form.Controls("机框编号").Text
    dr("槽位编号") = e.Form.Controls("槽位编号").Text
    dr("端口编号") = e.Form.Controls("端口编号").Text
   
    dr("BAS设备") = e.Form.Controls("BAS设备").Text
    dr("BAS槽位") = e.Form.Controls("BAS槽位").Text
    dr("BAS子槽") = e.Form.Controls("BAS子槽").Text
    dr("BAS端口") = e.Form.Controls("BAS端口").Text
   
    dr("外层VLAN") = e.Form.Controls("外层VLAN").Text
    dr("内层VLAN") = j0
   
    Dim id As Integer = j0 - 1001+i*106
    If id <= 49 Then
        dr("设备ID") = id
    Else If id Mod 4 = 2 Then
        dr("设备ID") = id
        pid += 1
    Else
        dr("设备ID") = pid
    End If
Next

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


加好友 发短信
等级:五尾狐 帖子:1029 积分:6497 威望:0 精华:0 注册:2014/1/3 12:49:00
  发帖心情 Post By:2014/10/30 17:43:00 [只看该作者]

好像还是不行。再帮我看看。麻烦啦
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:管理项目10.foxdb


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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2014/10/30 17:55:00 [只看该作者]

Dim i As Integer = e.Form.Controls("端口编号").Text
Dim pid As Integer = 49
For j0 As Integer = 1001+i*106 To 1106+i*106
    Dim dr As DataRow = DataTables("表A").AddNew
   
   
    dr("内层VLAN") = j0
   
    Dim id As Integer = j0 - (1001+i*106)
    If id <= 49 Then
        dr("设备ID") = id
       
        dr("类型") = "单个"
       
    Else
        If id Mod 4 = 2 Then
            pid += 1
            dr("设备ID") = pid
            dr("类型") = "多个"
        Else
            dr("设备ID") = pid
            dr("类型") = "多个"
        End If
    End If
Next

 回到顶部
总数 20 上一页 1 2