以文本方式查看主题

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

--  作者:良才
--  发布时间:2017/11/22 9:43:00
--  自动输入班级

学生基本信息窗口学生姓名下拉选择学生姓名后,自动输入学生编号,学生编号发生变化后,如果上学期是春季(本学期是秋季),班级自动加1,比如:上学期是602班,本学期是702班,假如本学期没有702班,那么自动找是否有701,701已招满,提示701已招满,清除班级。

基本都做到,唯一701已招满了,会到801,请老师指点,谢谢!

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


--  作者:有点甜
--  发布时间:2017/11/22 10:43:00
--  
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:管理项目26.foxdb


--  作者:良才
--  发布时间:2017/11/22 11:19:00
--  
谢谢
--  作者:良才
--  发布时间:2017/11/23 19:59:00
--  
老师碰到问题,三年级3个班,四年级2个班,401已招满,402未招满,选择302、303可以自动在班级输入框输入402,唯独选择301不能,请老师指教。谢谢!
--  作者:有点甜
--  发布时间:2017/11/23 21:16:00
--  
Dim ary() As String = Functions.Execute("Xueqi")
Dim fdr = DataTables("学生基本信息").SQLFind("学生编号 = \'"& e.Form.Controls("学生编号").Text & "\'")
If fdr IsNot Nothing Then
    e.Form.Controls("学生姓名").Text = fdr("学生姓名")
End If
Dim s1 As Integer = val(Left(ary(1),4))
cmd.ConnectionName = "数据库"
cmd.CommandText ="Select TOP 1 班级 From {缴退费信息} WHERE 缴费项目 = \'学费\' And 缴费状态 = \'已缴\'And 学生编号 = \'"& e.Form.controls("学生编号").Text &"\' ORDER BY 缴费日期 Desc"
dt = cmd.ExecuteReader()
If dt.DataRows.Count > 0  Then
    Dim m As Integer = dt.DataRows(0)("班级") + 100
    Dim bjs As List(Of String) = DataTables("招生计划").SQLGetValues("班级","学期 = \'"& ary(1) &"\' and 班级 = \'" & m & "\'")
    Dim drs = DataTables("招生计划").Select("学期 = \'"& ary(1) &"\' and 班级 like \'" & cstr(m).Substring(0,1) & "%\'", "班级")
    If ary(1) Like "*秋*" Then
        Dim count As Integer
        Dim newbj As String = ""
        If bjs.Contains(cstr(m)) Then
            For Each dr As DataRow In drs
                If dr("班级") = m Then
                    count = DataTables("缴退费信息").SQLCompute("count(学生编号)","学期 = \'" & ary(1) & "\'And 班级=\'" & m & "\' And 缴费项目 = \'学费\' And 缴费状态 = \'已缴\'")
                    If count < dr("计划人数") Then
                        newbj = dr("班级")
                        Exit For
                    End If
                End If
            Next
            If newbj > "" Then
                e.Form.controls("班级").Text = newbj
            Else
                e.Form.controls("班级").Text = "已招满"
            End If
        End If
        If newbj = "" Then
            For Each dr As DataRow In drs
                count = DataTables("缴退费信息").SQLCompute("count(学生编号)","学期 = \'" & ary(1) & "\'And 班级=\'" & dr("班级") & "\' And 缴费项目 = \'学费\' And 缴费状态 = \'已缴\'")
                If count < dr("计划人数") Then
                    newbj = dr("班级")
                    Exit For
                End If
            Next
            If newbj > "" Then
                e.Form.controls("班级").Text = newbj
            Else
                e.Form.controls("班级").Text = "已招满"
            End If
        End If
    Else
        If bjs.Contains(cstr(m)) Then
            If m = 1 Then
                e.Form.controls("班级").Text = "001"
            Else
                e.Form.controls("班级").Text = m
            End If
        End If
    End If
End If

--  作者:良才
--  发布时间:2017/11/23 21:25:00
--  
谢谢老师,您休息吧!
--  作者:良才
--  发布时间:2018/1/8 9:15:00
--  
老师想了解这两段代码,第一段(加载数据)是可以的,我想从后台提取用第二段不可用,请老师指点,谢谢!
Dim drs = DataTables("招生计划").Select("学期 = \'"& ary(1) &"\' and 班级 like \'" & cstr(m).Substring(0,1) & "%\'", "班级")
Dim drs = DataTables("招生计划").SQLSelect("学期 = \'"& ary(1) &"\' and 班级 like \'" & cstr(m).Substring(0,1) & "%\'", "班级")
[此贴子已经被作者于2018/1/8 9:21:26编辑过]

--  作者:有点甜
--  发布时间:2018/1/8 9:46:00
--  

这样写

 

Dim drs = DataTables("招生计划").SQLSelect("学期 = \'"& ary(1) &"\' and 班级 like \'" & cstr(m).Substring(0,1) & "%\'", "", "班级")

 

http://www.foxtable.com/webhelp/scr/2900.htm

 


--  作者:良才
--  发布时间:2018/1/8 9:56:00
--  
谢谢!