以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.com/bbs/index.asp)
--  专家坐堂  (http://foxtable.com/bbs/list.asp?boardid=2)
----  自动输入班级  (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=92878)

--  作者:联友
--  发布时间:2016/11/15 16:11:00
--  自动输入班级

一年级3个班分别:101、102、103

二级2个班分别;201、202

101、102升二年级分别到201、202

代码是

Dim fdr As DataRow = DataTables("学生信息").find("学期 = \'2016年春季\' And 学生姓名 = \'" & e.Form.controls("学生姓名").Text & "\'")
If fdr IsNot Nothing Then
    If fdr("学期") Like "*春*" Then
        e.Form.controls("班级").Text = fdr("班级")+100
    Else
        e.Form.controls("班级").Text = fdr("班级")
    End If
End If

那么103升二年级分别到201或202,可招人数比较多的班级去,求代码?谢谢!

 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:管理项目2.zip


--  作者:有点蓝
--  发布时间:2016/11/15 16:38:00
--  
没看懂

 
以下是引用联友在2016/11/15 16:11:00的发言:


那么103升二年级分别到201或202,可招人数比较多的班级去,求代码?谢谢!


具体什么操作逻辑

--  作者:联友
--  发布时间:2016/11/15 16:56:00
--  

2016年春季一年级3个班分别:101、102、103

 

2016年秋季二年级只有2个班,分别到201、202

原101班的到现201班,原102班的到现202班,原103班分别到现201或者202班,人数比较少的班级去

 

[此贴子已经被作者于2016/11/15 17:00:34编辑过]

--  作者:有点蓝
--  发布时间:2016/11/15 17:30:00
--  
这样就只能写死了

Dim d As Date = Date.Today
Dim SXQ As String
If d.Month >= 5 And d.Month <=11 Then
    SXQ = d.Year & "年春季"
Else If d.Month = 12 Then
    SXQ  = d.Year & "年秋季"
Else If d.Month < 5 Then
    SXQ  = (d.Year-1) & "年秋季"
End If
Dim min As Integer = DataTables("学生信息").Compute("Count(学生姓名)","学期 = \'"& SXQ &"\'And 班级 = \'101\'")
Dim c As Integer = DataTables("学生信息").Compute("Count(学生姓名)","学期 = \'"& SXQ &"\'And 班级 = \'102\'")
Dim bj As Integer = 101
If c < min Then bj = 102
Dim fdr As DataRow = DataTables("学生信息").find("学期 = \'"& SXQ &"\'And 学生姓名 = \'" & e.Form.controls("学生姓名").Text & "\'")
If fdr IsNot Nothing Then
    If fdr("学期") Like "*春*" Then
        If fdr("班级") = 103 Then
            e.Form.controls("班级").Text = bj+100
        Else
            e.Form.controls("班级").Text = fdr("班级")+100
        End If
    Else
        e.Form.controls("班级").Text = fdr("班级")
    End If
End If

--  作者:联友
--  发布时间:2016/11/15 19:44:00
--  

这样不行,能不能像这样

在班级 输入框

ValueChanged

  If forms("可招人数").Opened Then
     If e.Form.controls("班级").Text <> Tables("可招人数_Table1").列标题 Then

        e.Form.controls("班级").Text=e.Form.controls("班级").Text-1

    Else

        e.Form.controls("班级").Text=e.Form.controls("班级").Text
   End If

End If


--  作者:有点蓝
--  发布时间:2016/11/15 20:45:00
--  
Dim d As Date = Date.Today
Dim SXQ As String
If d.Month >= 5 And d.Month <=11 Then
    SXQ = d.Year & "年春季"
Else If d.Month = 12 Then
    SXQ  = d.Year & "年秋季"
Else If d.Month < 5 Then
    SXQ  = (d.Year-1) & "年秋季"
End If
Dim fdr As DataRow = DataTables("学生信息").find("学期 = \'"& SXQ &"\'And 学生姓名 = \'" & e.Form.controls("学生姓名").Text & "\'")
If fdr IsNot Nothing Then
    If fdr("学期") Like "*春*" Then
        Dim bjs As List(Of String) = DataTables("计划人数").GetValues("班级","学期 = \'"& SXQ &"\'")
        If bjs.Contains(cstr(fdr("班级")+100)) Then
            e.Form.controls("班级").Text = fdr("班级")+100
        Else
            Dim pre As String  = cint(fdr("班级").ToString().SubString(0,1)) + 1
            Dim count As Integer
            Dim min As Integer = 999
            Dim newbj As String
            For Each bj As String In bjs
                If bj.StartsWith(pre) Then
                    count = DataTables("学生信息").Compute("count(学生姓名)","学期 = \'" & SXQ & "\' And 班级=\'" & bj & "\'")
                    If count < min Then
                        min = count
                        newbj = bj
                    End If
                End If
            Next
            e.Form.controls("班级").Text = newbj
        End If
    Else
        e.Form.controls("班级").Text = fdr("班级")
    End If
End If

--  作者:联友
--  发布时间:2016/11/15 20:50:00
--  
谢谢老师,早点休息吧