以文本方式查看主题

-  Foxtable(狐表)  (http://www.foxtable.com/bbs/index.asp)
--  专家坐堂  (http://www.foxtable.com/bbs/list.asp?boardid=2)
----  缴费问题  (http://www.foxtable.com/bbs/dispbbs.asp?boardid=2&id=48762)

--  作者:aygp
--  发布时间:2014/4/4 14:17:00
--  缴费问题
学生在校要缴三次学费。只有学费缴清,并且最终成绩及格才能毕业并发毕业证。现在要达到以下目的:
1、表A中的“最终成绩”和“可否毕业”二列数据以“学号”为准复制到表B中对应的“最终成绩”和“可否毕业”二列中,‘不及格’和‘不予毕业’还是以红色显示。
2、“实缴学费”数据由“大一缴费”加“大二缴费”加“大三缴费”获得,“欠缴学费”数据由“应缴学费”减“大一缴费”加“大二缴费”加“大三缴费”获得。
3、如果“实缴学费”数据等于或者大于“应缴学费”,则“缴费状况”中显示‘缴清学费’  ,如果“实缴学费”数据小于“应缴学费”,则“缴费状况”中显示‘欠缴学费’  。
4、如果“缴费状况”中显示‘缴清学费’  ,并且“最终成绩”中显示‘准予毕业’  ,则“可否发毕业证”中显示‘准予发证’ 。如果“缴费状况”中显示‘欠缴学费’  ,即使“最终成绩”中显示‘准予毕业’  ,在“可否发毕业证”中也只能显示‘不予发证’  。如果“缴费状况”中显示‘缴清学费’  ,但“最终成绩”中显示‘不予毕业’  ,在“可否发毕业证”中也只能显示‘不予发证’  。
5、‘欠缴学费’  、‘不予发证’  数据用黄色显示  。
6、“学号”列和“姓名”列最后一行显示记录数,缴费各列下显示合计值。(如果这一条不好实现,可暂不考虑)
7、要达到的效果参见表C  。

 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:缴费问题.rar


--  作者:lsy
--  发布时间:2014/4/4 14:58:00
--  

先赞一下楼主提问的水平:

 

有说明,有资料,有参照。


--  作者:aygp
--  发布时间:2014/4/4 15:04:00
--  
重要更正: 表A中的“最终成绩”列不复制到表B
--  作者:黄训良
--  发布时间:2014/4/4 15:06:00
--  

请参考这个例子,加一个判断条件(学费缴清)就可以了!

http://www.foxtable.com/bbs/dispbbs.asp?boardid=2&Id=48733


--  作者:aygp
--  发布时间:2014/4/4 15:07:00
--  
1、表A中的“可否毕业”列数据以“学号”为参照复制到表B中对应的“可否毕业”列中,‘不予毕业’还是以红色显示。
--  作者:aygp
--  发布时间:2014/4/4 15:31:00
--  
重要说明:


1、表A中的“可否毕业”列中的‘准予毕业’和‘不予毕业’数据以“学号”为参照复制到表B中对应的“可否毕业”列中,‘不予毕业’还是以红色显示,空值不复制。

--  作者:有点甜
--  发布时间:2014/4/4 15:56:00
--  

 填充代码

 

DataTables("表B").DeleteFor("学号 is null")
For Each r As Row In Tables("表B").Rows
    Dim fdr As DataRow = DataTables("表A").Find("学号 = \'" & r("学号") & "\' and 可否毕业 Is not null")
    If fdr IsNot Nothing Then
        r("可否毕业") = fdr("可否毕业")
    End If
    r("实缴学费") = r("大一缴费") + r("大二缴费") + r("大三缴费")
    r("欠缴学费") = r("应缴学费") - r("实缴学费")
    If r("欠缴学费") <= 0 Then
        r("缴费状况") = "缴清学费"
    Else
        r("缴费状况") = "欠缴学费"
    End If
    If r("欠缴学费") <= 0 AndAlso r("可否毕业") = "予准毕业" Then
        r("可否发毕业证") = "准予发证"
    Else
        r("可否发毕业证") = "不予发证"
    End If
Next

Dim nr As Row = Tables("表B").AddNew
nr("姓名") = Tables("表B").Compute("count(_Identify)") - 1
nr("大一缴费") = Tables("表B").Compute("sum(大一缴费)")
nr("大二缴费") = Tables("表B").Compute("sum(大二缴费)")
nr("大三缴费") = Tables("表B").Compute("sum(大三缴费)")

 

 

 drawcell代码

 

If e.Col.Name = "可否毕业" AndAlso e.Text = "不予毕业" Then
    e.Table.DataTable.AddUserStyle("红", Color.Red, Color.black)
    e.Style = "红"
Else If e.Col.Name = "缴费状况" OrElse  e.Col.Name = "可否发毕业证"  Then
    e.Table.DataTable.AddUserStyle("黄", Color.Yellow, Color.black)
    If e.Row("欠缴学费") > 0 Then
        e.style = "黄"
    End If
    If e.Row(e.Col.Name) > "不予发证" Then
        e.style = "黄"
    End If
End If


--  作者:aygp
--  发布时间:2014/4/4 16:21:00
--  
有点甜老师好!
以上代码在执行时,有点问题:1、在录入缴费确认后,“可否发毕业证”全部显示黄色的‘不予发证’  ,并且界面不可操作,几秒钟自动退出。请有点甜老师再检查一下,谢了!

--  作者:有点甜
--  发布时间:2014/4/4 16:27:00
--  
以下是引用aygp在2014-4-4 16:21:00的发言:
有点甜老师好!
以上代码在执行时,有点问题:1、在录入缴费确认后,“可否发毕业证”全部显示黄色的‘不予发证’  ,并且界面不可操作,几秒钟自动退出。请有点甜老师再检查一下,谢了!

 

第一段的填充代码,是应该做一个按钮去执行的。也就是说,你录入完数据以后,再点击按钮得到结果。


--  作者:有点甜
--  发布时间:2014/4/4 16:28:00
--  
 如果要在录入缴费的时候立马得到结果,需要编写datacolchanged代码,适当的修改代码才行。