以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  [求助]高速合并时系统自动关闭  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=46500)

--  作者:wumingrong1
--  发布时间:2014/2/24 21:04:00
--  [求助]高速合并时系统自动关闭
 我使用系统的 高速合并 功能对EXL表格进行合并;但是我的系统中有一列是 “日期时间”列、列格式为DateTime;这种情况下一合并系统就会自动关闭;请问是什么原因、怎么处理?

  我觉得问题应该出在这个 类型为  “日期时间” 这一列上  

--  作者:有点甜
--  发布时间:2014/2/24 21:09:00
--  
呃,你是否在表里设置了事件和代码?贴出你的代码看看。
--  作者:wumingrong1
--  发布时间:2014/2/24 21:18:00
--  

设备端口应用台帐表_PrepareEdit

 

e.Cancel = True

 

设备端口应用台帐表_DataColChanged

 

\'1

If e.DataCol.Name = "设备_板件槽位" Or e.DataCol.Name = "设备_板件端子" Then \'如果更改的是 ***列 和 ***列

    If e.DataRow.IsNull("设备_板件槽位") AndAlso e.DataRow.IsNull("设备_板件端子") Then \'判断 ***列 和 ***列 是否为空

        e.DataRow("设备_槽位端子") = Nothing \'如果为空,则清除 &&&列内容

    Else

        \'否则按以下公式进行处理

        e.DataRow("设备_槽位端子") = e.DataRow("设备_板件槽位") +" -- "+ e.DataRow("设备_板件端子")

    End If

End If

 

 

\'2

If e.DataCol.Name = "出线_ODF_ODF盘1" Or e.DataCol.Name = "出线_ODF_ODF端子1" Or e.DataCol.Name = "出线_ODF_ODF盘2" Or e.DataCol.Name = "出线_ODF_ODF端子2" Then \'如果更改的是 ***列 和 ***列

    If e.DataRow.IsNull("出线_ODF_ODF盘1") AndAlso e.DataRow.IsNull("出线_ODF_ODF端子1") AndAlso e.DataRow.IsNull("出线_ODF_ODF盘2") AndAlso e.DataRow.IsNull("出线_ODF_ODF端子2") Then \'判断 ***列 和 ***列 是否为空

        e.DataRow("出线_ODF_ODF盘端子") = Nothing \'如果为空,则清除 &&&列内容

    Else

        \'否则按以下公式进行处理

        e.DataRow("出线_ODF_ODF盘端子") = e.DataRow("出线_ODF_ODF盘1") +" "+ e.DataRow("出线_ODF_ODF端子1") +" / "+ e.DataRow("出线_ODF_ODF盘2") +" "+ e.DataRow("出线_ODF_ODF端子2")

    End If

End If

 

 

\'3

If e.DataCol.Name = "出线_DDF_DDF模块" Or e.DataCol.Name = "出线_DDF_DDF2M" Then \'如果更改的是 ***列 和 ***列

    If e.DataRow.IsNull("出线_DDF_DDF模块") AndAlso e.DataRow.IsNull("出线_DDF_DDF2M") Then \'判断 ***列 和 ***列 是否为空

        e.DataRow("出线_DDF_DDF模块2M") = Nothing \'如果为空,则清除 &&&列内容

    Else

        \'否则按以下公式进行处理

        e.DataRow("出线_DDF_DDF模块2M") = e.DataRow("出线_DDF_DDF模块") +" 2M*"+ e.DataRow("出线_DDF_DDF2M")

    End If

End If

 

\'4

If e.DataCol.Name = "设备_设备厂家" Or e.DataCol.Name = "设备_设备名称" Or e.DataCol.Name = "设备_设备型号" Then \'如果更改的是 ***列 和 ***列

    If e.DataRow.IsNull("设备_设备厂家") AndAlso e.DataRow.IsNull("设备_设备名称") AndAlso e.DataRow.IsNull("设备_设备型号") Then \'判断 ***列 和 ***列 是否为空

        e.DataRow("设备_厂家设备型号") = Nothing \'如果为空,则清除 &&&列内容

    Else

        \'否则按以下公式进行处理

        e.DataRow("设备_厂家设备型号") = e.DataRow("设备_设备厂家") +" "+ e.DataRow("设备_设备名称") +" "+ e.DataRow("设备_设备型号")

    End If

End If

 

 

\'5

e.DataRow("操作人员") = _Username

e.DataRow("操作时间") = Date.now

 

设备端口应用台帐表_BeforeSelRangeChange

 

If e.Table.RowSel < 0 OrElse e.Table.ColSel < 0 Then

    Return

End If

If e.Table.Current IsNot Nothing Then

    If e.Table.Current.DataRow.RowState <> DataRowState.Unchanged Then \'如果当前行已经修改过

        e.Cancel = True

        MessageBox.Show("请先保存对当前行的修改", "提示", MessageBoxButtons.OK, MessageBoxIcon.Question)

    End If

End If

 

设备端口应用台帐表_Click

 

If e.Col.Name = "设备_厂家设备型号" Then \'点击某单元格时

    e.Table.AutoSizeRow(e.Row.Index) \'自动调整行宽

End If

 

设备端口应用台帐表_PositionChanged

 

If Forms("设备端口应用台帐表主窗口").Opened() \'如果 ***窗口已经打开

 

Dim t As Table = Tables("设备端口应用台帐表主窗口_Table2") \'某窗口的某控件内容

With Tables("设备端口应用台帐表") \'显示某关联表内容

    If .Current Is Nothing Then

        t.Filter = "False"

    Else

     t.Filter = "业务名称 = \'" & .Current("业务名称") & "\'" \'条件是 ***=***

 End If

 

End With

End If


--  作者:wumingrong1
--  发布时间:2014/2/24 21:21:00
--  

设备端口应用台帐表

 

机房名称() ----> 字符型(100)

业务名称() ----> 字符型(50)

设备_厂家设备型号() ----> 字符型(100)

设备_槽位端子() ----> 字符型(100)

备注() ----> 字符型(16)

操作人员() ----> 字符型(16)

操作时间() ----> 日期型 


--  作者:有点甜
--  发布时间:2014/2/24 21:26:00
--  
应该是这段代码的问题,你加一个判断

\'5

e.DataRow("操作人员") = _Username

e.DataRow("操作时间") = Date.now


改成

if e.datacol.name <> "操作人员" andalso e.datacol.name <> "操作时间" then

    e.DataRow("操作人员") = _Username

    e.DataRow("操作时间") = Date.now

end if

--  作者:wumingrong1
--  发布时间:2014/2/24 21:34:00
--  
OK啦,谢谢!!!