以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.com/bbs/index.asp)
--  专家坐堂  (http://foxtable.com/bbs/list.asp?boardid=2)
----  RowNum重新赋值的问题  (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=158128)

--  作者:suliao9641
--  发布时间:2020/11/9 13:12:00
--  RowNum重新赋值的问题

图片点击可在新窗口打开查看此主题相关图片如下:qq图片20201109130744.png
图片点击可在新窗口打开查看


Dim drs As List(of DataRow) = DataTables(eform.name & "_Table1").Select("","[RowNum]")
For i As Integer = 0 To drs.Count - 1
    drs(i).BaseRow("RowNum") = i
Next

表格行通过上移和下移改变了顺序。保存时需要RowNum列顺序和左边一致。
这个代码修改无效,请问还有什么其他方法。

--  作者:有点蓝
--  发布时间:2020/11/9 13:57:00
--  
行号列是没有什么业务意义的,没有必要设置一致。

除非只是单机使用,并且每次都加载全部的数据,表格(包括窗口表)也每次都显示全部的数据(不做筛选、不排序)。否则其它列顺序值永远都不可能和行号列的顺序值一致的

--  作者:suliao9641
--  发布时间:2020/11/9 14:31:00
--  
现在的问题是,通过表格行通过上移和下移改变了顺序。等于我这个前台修改表格行顺序看起来正常满足要求。打印报表的时候数据排列还是未改动,行顺序调整实际上无效
--  作者:suliao9641
--  发布时间:2020/11/9 14:32:00
--  
If Tables(eForm.name & "_Table1").Rows.Count>0 Then
    Tables(eForm.name & "_Table1").Current.Move(Tables(eForm.name & "_Table1").Position - 1)
End If

这个是上移行代码

--  作者:有点蓝
--  发布时间:2020/11/9 14:36:00
--  
怎么做的打印报表?execl模板?专业报表?这些都有自己处理顺序的模式,和界面顺序基本没有关系
--  作者:suliao9641
--  发布时间:2020/11/9 14:56:00
--  
execl模板。这个跟打印顺序没关系。我只是手动调整行。并不是根据列排序。随机调整,我如果前台格式调整好了。打印的时候后台数据就不跟我需要的格式同步。
是要解决这个问题。简单的办法就是"RowNum"重新赋值。好像无法实现。还有什么变通的方法



--  作者:有点蓝
--  发布时间:2020/11/9 15:03:00
--  
要遍历table,而不是datatable

For i As Integer = 0 To Tables(e.form.name & "_Table1").rows.Count - 1
    Tables(e.form.name & "_Table1").rows(i)("RowNum") = i
Next

--  作者:suliao9641
--  发布时间:2020/11/9 15:57:00
--  
谢谢版主。新建一排序列,保存时用代码赋值。打印模板排序列升序。完美解决我要的效果。

另一个问题。
就是我在窗口子表输入数字,让后点保存。这个数字保存不下来。如果我输入完了以后,鼠标在其他格子里点一下,那么保存才正常。

这个焦点问题怎弄


--  作者:有点蓝
--  发布时间:2020/11/9 16:02:00
--  
结束编辑:

Tables("A").FinishEditing
Tables("A").save