以文本方式查看主题 - Foxtable(狐表) (http://foxtable.com/bbs/index.asp) -- 专家坐堂 (http://foxtable.com/bbs/list.asp?boardid=2) ---- 后台新增 (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=110410) |
-- 作者:刘林 -- 发布时间:2017/12/2 11:29:00 -- 后台新增 老师为提高保存速度,我用sqladdnew 保存后加载,但我感觉用户体验不好,能不能新增一行后就加载所新增的当前行 |
-- 作者:有点蓝 -- 发布时间:2017/12/2 11:31:00 -- 参考:http://www.foxtable.com/webhelp/scr/1933.htm |
-- 作者:刘林 -- 发布时间:2017/12/2 12:06:00 -- If js.Contains("教务主任") Then Dim njdh As String Dim bjdh As String Dim dt As Table = Tables("初中报名_table2") If dt.Rows.count>0 Dim p As WinForm.ProgressBar p = e.Form.Controls("ProgressBar1") p.Maximum = dt.Rows.Count \'设置最大值 p.Minimum = 0 \'设置最小值 p.Value = 0 \'设置当前值 Dim dwmc As String = _usergroup Dim com4 As String = e.Form.Controls("combobox4").text If com4 > "" Dim Cols1() As String = {"学校名称","年级","班级","学生姓名","学生ID","身份证件号","学籍号","班级"} Dim Cols2() As String = {"单位名称","年级代码","班级","姓名","学生ID","身份证件号","学籍号","班级全称"} Dim su As Integer = 0 Dim dr2 As DataRow For Each dr1 As Row In dt.Rows Dim Filter As String = "" If dr1.IsNull("身份证件号") Then filter = "身份证件号 is Null and 姓名 = \'" & dr1("学生姓名") & "\' and 班级全称=\'" & dr1("班级") & "\'" Else filter = "身份证件号 = \'" & dr1("身份证件号") & "\' and 姓名 = \'" & dr1("学生姓名") & "\' and 班级全称= \'" & dr1("班级") & "\'" End If dr2 = DataTables("成绩").Find(filter) If dr2 Is Nothing Then dr2 = DataTables("成绩").sqlAddNew() For i As Integer = 0 To Cols1.Length -1 Select Case i Case 0 dr2(Cols2(i)) = dr1(Cols1(i)) Case 1 dr2(Cols2(i)) = trim(str(val(dr1(Cols1(i)).Substring(4,2)+3))) njdh =trim(str(val(dr1(Cols1(i)).Substring(4,2)+3))) Case 3,4,5,6 dr2(Cols2(i)) = dr1(Cols1(i)) Case 7 dr2(Cols2(i)) = dr1(Cols1(i)) Dim c() As Char = {"级", "班"} Dim str As String = dr1(Cols1(i)) If str > "" Then Dim s1() As String = str.Split(c) If s1.length >= 2 AndAlso s1(0).length >= 6 Then bjdh= s1(1) .PadLeft(2,"0") End If End If End Select Next dr2("考试名称") = com4 dr2("免统审核") = False dr2("学段")="初中" Dim dr As DataRow dr = DataTables("学校信息").Find("单位全称 = \'" & _usergroup & "\'and 学段 = \'初中\'" ) If dr IsNot Nothing dr2("学校")= dr("单位") dr2("学校代码")= dr("学校代码") dr2("类别") = dr("类别") Dim year As String = trim(com4.Substring(0,2)) Dim v As Integer = cint(year) Dim ji As String = com4.Substring(2,1) Dim j As Integer If ji = "春" j = 0 End If If ji = "秋" j = 1 End If dr2("年级") = trim(str(v - val(trim(njdh)) + j +9)) dr2("学校班级") = dr("学校班级用简称") & trim(str(v - val(trim(njdh)) + j +9)) & "." & bjdh End If dr2.save Dim id As Integer = DataTables("成绩").Compute("Max(_Identify)") Dim Filter1 As String = "[_Identify] > " & id DataTables("成绩").AppendLoad(Filter1) DataTables("成绩").load su = su +1 p.Value = su Next \' Dim sux As String = "本次新增或修改报名学生共计" & su & "人" \' MessageBox.show(sux,"导入总计",MessageBoxButtons.OK) \' DataTables("成绩").loadfilter = "考试名称 =\'"& com4 &"\' and 单位名称 = \'"& _usergroup &"\' And 学段 =\'初中\'" \'DataTables("成绩").load p.Value = 0 Dim dt2 As Table = Tables("初中报名_table1") e.Form.Controls("Label2").text = "初中考号表" & su & "个学生名单" Dim lbl1 As WinForm.Label = e.Form.Controls("Label1") Dim lbl2 As WinForm.Label = e.Form.Controls("Label2") If e.Form.Controls("table1").width > lbl1.Width lbl1.Left = (e.Form.Controls("table1").width - lbl1.Width ) / 2 End If If e.Form.Controls("table2").width > lbl2.Width lbl2.Left = (e.Form.Controls("table2").width - lbl2.Width ) / 2 End If Else MessageBox.show("考试名称不能为空","提示",MessageBoxButtons.OK) End If Else MessageBox.show("你没有选择好要报考的学生,请选择好参考学生学生","提示",MessageBoxButtons.OK) End If Else MessageBox.show("业务主管方可办理","提示",MessageBoxButtons.OK) End If Dim dt1 As DataTable = DataTables("成绩") Dim cb1 As WinForm.ComboBox = e.form.Controls("ComboBox1") cb1.ComboList =" |" & dt1.GetComboListString("年级") 老师,用这个方式为什么要死机呢,是什么原因,该怎样写,我的想法是后台新增一条就加载一条 |
-- 作者:有点蓝 -- 发布时间:2017/12/2 12:20:00 -- 如果循环的次数多,使用sqladdnew 后台逐条新增,比在窗口编辑完毕然后一起保存(datatable.save)的效率还要低得多多多 |
-- 作者:刘林 -- 发布时间:2017/12/2 12:36:00 -- 我测试了更快,因为用datatable.save,记录少还好办,越多保存时间会几何倍增,用addnew是单条记录时间一定,现在就是想仿addnew效果,增加一条当前表就多显示一行 |
-- 作者:有点蓝 -- 发布时间:2017/12/2 14:13:00 -- Dim id As Integer = DataTables("成绩").Compute("Max(_Identify)") Dim Filter1 As String = "[_Identify] > " & id DataTables("成绩").AppendLoad(Filter1) DataTables("成绩").load 改为 DataTables("成绩").AppendLoad(filter)
|