以文本方式查看主题

-  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=127061)

--  作者:kmzb56
--  发布时间:2018/11/4 14:51:00
--  日志功能设计不起
  想在派车记录表下情的子表上显示每次修改记录。达到每次修改可以增加一条记录,并记录修改情况的目的,但实际不行,可以增加,但是子表记录上不显示任何内容,请问是什么原因?

If e.DataCol.Name <> "备注" Then
    Tables("派车记录表.货单跟踪").Addnew()
    Dim R As Row=Tables("货单跟踪").Current()
    R("情况说明") &=vbcrlf  & user.name & "于"   & Date.now    & e.OldValue & "修改为"   & e.NewValue

End If


把    Dim R As Row=Tables("货单跟踪").Current() 改成    Dim R As Row=Tables("派车记录表.货单跟踪").Current() 也不行。请问什么原因?

--  作者:y2287958
--  发布时间:2018/11/4 16:23:00
--  
只要一改动就新增一条记录,子表得多少条记录啊,这样设计不合理吧
--  作者:有点甜
--  发布时间:2018/11/4 19:54:00
--  

改成

 

If e.DataCol.Name <> "备注" Then   
    Dim R As Row = Tables("派车记录表.货单跟踪").Addnew()
    R("情况说明") &=vbcrlf  & user.name & "于"   & Date.now    & e.OldValue & "修改为"   & e.NewValue

End If

--  作者:kmzb56
--  发布时间:2018/11/21 10:06:00
--  
以下是引用有点甜在2018/11/4 19:54:00的发言:

改成

 

If e.DataCol.Name <> "备注" Then   
    Dim R As Row = Tables("派车记录表.货单跟踪").Addnew()
    R("情况说明") &=vbcrlf  & user.name & "于"   & Date.now    & e.OldValue & "修改为"   & e.NewValue

End If


这个方法试了,这个情况说明下就是不显示内容,看了代码好像又没有错,不知为啥,是不是我在窗口上的原因,另外有时移到这个表格上点击会出现内容,有时又不会。




If e.DataCol.Name <> "备注" Then   
Dim R As Row =Tables("派车记录表.货单跟踪").Addnew()
R("情况说明") & =vbcrlf & user.name & "于" & Date.now  & e.OldValue & "修改为"  & e.NewValue
End If



好像没有哪里有错嘛?请帮我看一下。谢谢!

[此贴子已经被作者于2018/11/21 10:10:13编辑过]

--  作者:有点甜
--  发布时间:2018/11/21 10:10:00
--  

 

把行拉高,应该能看到内容。代码没问题。


--  作者:kmzb56
--  发布时间:2018/11/21 10:13:00
--  
以下是引用有点甜在2018/11/21 10:10:00的发言:

 

把行拉高,应该能看到内容。代码没问题。



是的,是行高的问题,花了我好多时间,请问在窗口上怎么设置行高呀?


--  作者:有点甜
--  发布时间:2018/11/21 10:14:00
--  

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

 


--  作者:kmzb56
--  发布时间:2019/3/19 10:49:00
--  
请帮我看这个代码:以前是正常的,记录只是修改过的行的旧值和新现,现在不知为啥,新增时他就会把大部分的新增行单元判断为修改的。但又不是把所有的新增行判断成这种,这种要怎么避免这种情况。

If e.DataRow.RowState=DataRowState.Modified
If e.DataCol.Name <> "备注" And e.DataCol.Name<> "承运人应结算"  And e.DataCol.Name<> "单车成本" Then
  Dim R As Row =Tables("派车记录表.货单跟踪").Addnew()
  R("情况说明") & =vbcrlf & user.name & "于" & Date.now   & "把列" & e.DataCol.name     & e.OldValue & "修改为"  & e.NewValue
End If
End If


--  作者:kmzb56
--  发布时间:2019/3/19 11:14:00
--  
我找到原因,是因为我在定时器这里改了一下:

CurrentTable.FinishEditing
CurrentTable.save
Dim pcid As Integer = DataTables("派车记录表").Compute("Max(_Identify)")
Dim Filter As String = "[_Identify] > " & pcid
DataTables("派车记录表").AppendLoad(Filter, False)
DataTables("派车记录表").loadpage = 0
是因为我加了两行  
CurrentTable.FinishEditing
CurrentTable.save    因为我想及时加载新数据,请问这种怎么改 让记录的表真正记录修改的数据单元。

--  作者:kmzb56
--  发布时间:2019/3/19 11:51:00
--  
试了,把前两段代码暂时不行,但是把计划暂停可以。没弄懂。

[此贴子已经被作者于2019/3/19 11:56:13编辑过]