以文本方式查看主题

-  Foxtable(狐表)  (http://www.foxtable.com/bbs/index.asp)
--  专家坐堂  (http://www.foxtable.com/bbs/list.asp?boardid=2)
----  求教2个复制问题  (http://www.foxtable.com/bbs/dispbbs.asp?boardid=2&id=1222)

--  作者:老有所乐
--  发布时间:2008/11/24 7:42:00
--  求教2个复制问题
1,要求在“上报教育局成绩表”中用按钮将“教师任课表”中任课老师按年级、班级和语文、数学等不同科目老师的姓名填入到“上报教育局成绩表”的[教师姓名]列对应的行中。
2,要求在“学生各学科成绩单”中用按钮将“学生各科成绩表”中各科成绩班级的前5名的名次、姓名和成绩一次性的复制到“学生各学科成绩单”中对应的列中。窗口中按单科复制已经做出,现需要一次性全部复制代码。谢谢!
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:管理项目4.table


--  作者:czy
--  发布时间:2008/11/24 12:22:00
--  
这样行吗?
1、
 

Dim dr As DataRow = DataTables("任课老师表").Find("[年级] = \'" & e.Datarow("年级") & "\' And [班级] = \'" & e.Datarow("班级") & "\'" )

e.DataRow(e.DataCol.Name) = dr(e.datarow("学科"))


--  作者:老有所乐
--  发布时间:2008/11/24 12:51:00
--  
谢C版主,试了不行,错误提示“Datarow 不是controlEventArgs的成员”。
--  作者:czy
--  发布时间:2008/11/24 13:18:00
--  
呵呵,这是计算代码,用我那个代码替换你原来的计算代码,然后重算一下此列即可。
--  作者:老有所乐
--  发布时间:2008/11/24 13:27:00
--  
计算代码完全准确,谢谢!第二个问题可能难度较大。
--  作者:老有所乐
--  发布时间:2008/11/24 16:39:00
--  

各位高手,第二个问题是否有办法?


--  作者:czy
--  发布时间:2008/11/24 22:00:00
--  
就你现在文件中的结构,第二个问题对我来说非常之难,以我目前的能力没办法帮你解决。
--  作者:老有所乐
--  发布时间:2008/11/24 22:21:00
--  
C版主帮人非常认真诚恳,非常感激!没问题,我再改变一下结构。
--  作者:ybil
--  发布时间:2008/11/24 23:04:00
--  

Dim i,i1,i2,i3,i4 as Integer
Dim Ta,Ta1 As Table
Ta  = Tables("学生各学科前5名成绩单")
Ta1 = Tables("学生各科成绩表")
Dim Ls As String() = {"数学","英语","政治","历史","地理","生物","物理"}
datatables("学生各学科前5名成绩单").datarows.clear()
dim f As New Filler
f.SourceTable = DataTables("学生各科成绩表")
f.SourceCols = "班级,年级,语文班级排名,姓名,语文"
f.DataTable = DataTables("学生各学科前5名成绩单")
f.DataCols = "班级,年级,语文_名次,语文_姓名,语文_成绩"
f.Filter="[语文班级排名]<=5"
f.Fill() \'填充
Ta.Sort = "年级,班级"

For i1  = 0 To Ls.Length-1
  Ta1.Filter = "[" & Ls(i1) & "班级排名] <=5"
  i = Ta.Rows.count-1
  i2 = Ta1.Rows.count-1
  If i < i2 Then
     Ta.Addnew(i2-i1)
  End if
  i3 = Math.Max(i1,i2)
  For i4 = 0 to i3
     Ta.Rows(i4)(Ls(i1) & "_名次") = Ta1.Rows(i4)(Ls(i1) & "班级排名")
     Ta.Rows(i4)(Ls(i1) & "_姓名") = Ta1.Rows(i4)("姓名")
     Ta.Rows(i4)(Ls(i1) & "_成绩") = Ta1.Rows(i4)(Ls(i1))
  Next
Next

Dim Ft As String
For Each dc As DataCol In DataTables("学生各学科前5名成绩单").DataCols
  Ft = Ft & " and " & dc.Name & " Is Null"
Next
DataTables("学生各学科前5名成绩单").DeleteFor(Ft.SubString(5))


--  作者:老有所乐
--  发布时间:2008/11/24 23:27:00
--  
谢ybil先生!高手!