Foxtable(狐表)用户栏目专家坐堂 → 关于复制粘贴数据


  共有95人关注过本帖树形打印复制链接

主题:关于复制粘贴数据

帅哥哟,离线,有人找我吗?
syst
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:幼狐 帖子:130 积分:987 威望:0 精华:0 注册:2020/2/13 22:59:00
关于复制粘贴数据  发帖心情 Post By:2025/3/27 17:19:00 [只看该作者]

图片点击可在新窗口打开查看

蓝老师,最近老是遇到一个问题
在excel表格复制产品编号到窗口表的时候,偶尔会报这个错误;通过快捷键ctrl+V复制;
有时候是提示下面图片的样式
图片点击可在新窗口打开查看

退出来重新登录又没事;出现以后就是一个大红色的叉叉;

另外发现好像虽然禁止了复制粘贴,只要不禁止编辑,还是可以通过快捷键进行粘贴数据的,有什么办法能够禁止粘贴数据进来么?
谢谢!

 回到顶部
帅哥,在线噢!
有点蓝
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:113098 积分:575901 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2025/3/27 17:36:00 [只看该作者]

设置一下:http://www.foxtable.com/webhelp/topics/1515.htm

表格有什么事件代码和表达式计算?

 回到顶部
帅哥哟,离线,有人找我吗?
syst
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:幼狐 帖子:130 积分:987 威望:0 精华:0 注册:2020/2/13 22:59:00
  发帖心情 Post By:2025/3/27 18:02:00 [只看该作者]

'///自动填入产品信息///
If e.DataCol.Name = "商品编号" Then
    
    If e.DataRow.IsNull("仓储编号") Then
        
        If e.NewValue Is Nothing Then 
            e.DataRow("销售单价") = Nothing
        End If
        
    Else
        
        Dim dr As DataRow
        
        dr = DataTables("仓储明细").sqlFind("[商品编号] = '" & e.DataRow("商品编号") & "'and [仓储编号]='" & e.DataRow("仓储编号") & "'")
        If dr IsNot Nothing Then 
            e.DataRow("销售单价") = dr("公开售价")
            e.DataRow("产品名称") = dr("商品名称")
            e.DataRow("规格型号") = dr("规格型号")
            e.DataRow("单位") = dr("单位")
            e.DataRow("销售单价") = dr("公开售价")
        Else
            MessageBox.Show("请检查当前仓库是否存在该产品名称")
            '          
        End If
    End If
End If

'///对出库信息进行记录///
Select Case e.DataCol.Name
    Case "出库1"
        If e.newvalue Is Nothing And e.oldvalue Is Nothing Then
            
            e.DataRow("出库时间1") = Nothing
        Else
            e.DataRow("出库时间1") = Date.today()
        End If
        
    Case "出库2"
        If e.newvalue Is Nothing And e.oldvalue Is Nothing Then
            
            e.DataRow("出库时间2") = Nothing
        Else
            e.DataRow("出库时间2") = Date.today()
        End If
        
    Case "出库3"
        If e.newvalue Is Nothing And e.oldvalue Is Nothing Then
            
            e.DataRow("出库时间3") = Nothing
        Else
            e.DataRow("出库时间3") = Date.today()
        End If
        
    Case "出库4"
        If e.newvalue Is Nothing And e.oldvalue Is Nothing Then
            
            e.DataRow("出库时间4") = Nothing
        Else
            e.DataRow("出库时间4") = Date.today()
        End If
        
    Case "出库5"
        If e.newvalue Is Nothing And e.oldvalue Is Nothing Then
            
            e.DataRow("出库时间5") = Nothing
        Else
            e.DataRow("出库时间5") = Date.today()
        End If
        
End Select

'///从父表提取相关信息///
Select Case e.DataCol.Name
    Case "商品编号" 
        Dim pr As DataRow = e.DataRow.GetParentRow("销售子任务")
        If pr IsNot Nothing Then
            e.DataRow("客户") = pr("客户")
        End If
        Dim pr1 As DataRow = e.DataRow.GetParentRow("销售任务")
        If pr1 IsNot Nothing Then
            e.DataRow("业务年度") = pr1("业务年度")
            e.DataRow("销售类型") = pr1("销售类型")
            e.DataRow("任务类别") = pr1("任务类别")
        End If
        
End Select

'///动态生成合计金额的表达式///
Select Case e.DataCol.Name
    Case "数量", "销售单价"
        
        DataTables("销售任务").DataCols("合计金额").Expression = "IsNull(Sum(Child(销售_子任务).合计金额),0)"
        
End Select

'///计算库存以及虚拟库存///
Select Case e.DataCol.Name
    Case "数量"
        If e.NewValue < 0 Then
            e.DataRow("性质") = "退货"
        Else
            e.DataRow("性质") = Nothing
        End If 
        Dim dr As DataRow
        dr = DataTables("仓储明细").SQLFind("[商品编号] = '" & e.DataRow("商品编号") & "'and [仓储编号]='" & e.DataRow("仓储编号") & "'")
        If dr IsNot Nothing Then
            
            dr("虚拟库存") = dr("虚拟库存") - e.NewValue + e.OldValue
            dr.Save()
        End If
        
    Case "出库1", "出库2", "出库3", "出库4", "出库5"
        Dim dr1 As DataRow
        dr1 = DataTables("仓储明细").SQLFind("[商品编号] = '" & e.DataRow("商品编号") & "'and [仓储编号]='" & e.DataRow("仓储编号") & "'")
        If dr1 IsNot Nothing Then
            
            dr1("库存") = dr1("库存") - e.NewValue + e.OldValue
            dr1.Save()
        End If 
        
End Select

e.DataTable.Save()

有一些事件代码以及动态生成一些表达式

但是跟粘贴这个编号触发的好像没有发现什么 值是 null的
[此贴子已经被作者于2025/3/27 18:05:44编辑过]

 回到顶部
帅哥哟,离线,有人找我吗?
syst
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:幼狐 帖子:130 积分:987 威望:0 精华:0 注册:2020/2/13 22:59:00
  发帖心情 Post By:2025/3/27 18:09:00 [只看该作者]

        For Each dt9 As DataTable In DataTables
        dt9.AllowClipBoard = False
    Next

关于那个复制,已经在项目的afteropenproject 事件里面设置过了

还是能够把别的数据直接通过快捷键粘贴进去;

 回到顶部
帅哥,在线噢!
有点蓝
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:113098 积分:575901 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2025/3/27 20:25:00 [只看该作者]

把这些事件代码去掉,在复制粘贴有没有问题?

正常afteropenproject 事件里面设置过针对的是主表,如果窗口表是sqltable,或者动态绑定的,是无效的,需要在绑定后重新设置过

 回到顶部
帅哥哟,离线,有人找我吗?
syst
  6楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:幼狐 帖子:130 积分:987 威望:0 精华:0 注册:2020/2/13 22:59:00
  发帖心情 Post By:2025/3/27 22:00:00 [只看该作者]

他不是每次粘贴都有问题,
就是偶尔会出现,大部分时间都是正常的;

 回到顶部
帅哥,在线噢!
有点蓝
  7楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:113098 积分:575901 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2025/3/27 22:21:00 [只看该作者]

那要多测试找出规律。找出粘贴什么列的数据会有问题

 回到顶部