以文本方式查看主题 - Foxtable(狐表) (http://foxtable.net/bbs/index.asp) -- 专家坐堂 (http://foxtable.net/bbs/list.asp?boardid=2) ---- [求助]数据导入和录入冲突 (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=85862) |
||||
-- 作者:yuyoufei11 -- 发布时间:2016/6/4 0:54:00 -- [求助]数据导入和录入冲突 求大神解答: 此主题相关图片如下:主窗口.png 这是主窗口的三个按钮。订单导入按钮的代码是: 此主题相关图片如下:导入代码.png 这个录入按钮代码: 此主题相关图片如下:订单录入按钮代码.png |
||||
-- 作者:yuyoufei11 -- 发布时间:2016/6/4 1:02:00 -- 这个是订单明细表DataColChanged代码; 此主题相关图片如下:datacolchanged代码.png 我是通过录入按钮复制订单明细表的数据到纸片整理表,同时也通过订单导入按钮导入数据到订单明细表,在通过表事件复制到纸片整理表。 这个代码要怎么改,改哪里????
|
||||
-- 作者:yuyoufei11 -- 发布时间:2016/6/4 1:03:00 -- 最后一个图错了 此主题相关图片如下:问题.png |
||||
-- 作者:Hyphen -- 发布时间:2016/6/4 9:33:00 -- 没看懂到底要做什么? 在订单录入代码中都用Addnew,当然会增加一行
|
||||
-- 作者:yuyoufei11 -- 发布时间:2016/6/4 13:24:00 -- 不用Addnew的话代码怎么写,我目的是,导入的和单个通过窗口录入的都可以复制到纸片整理表里去而且双方不冲突 |
||||
-- 作者:Hyphen -- 发布时间:2016/6/4 14:19:00 -- 上例子,说一下操作逻辑 |
||||
-- 作者:yuyoufei11 -- 发布时间:2016/6/4 15:45:00 -- 大神帮忙看看
|
||||
-- 作者:Hyphen -- 发布时间:2016/6/4 16:58:00 -- Dim htdh As WinForm.TextBox = e.Form.Controls("合同单号") \'Dim zxdm As WinForm.TextBox = e.Form.Controls("纸箱代码") \'Dim xxms As WinForm.TextBox = e.Form.Controls("箱型描述") \'If htdh.value="" Or zxdm.value="" Or xxms.value=""Then \'Dim ddsl As WinForm.Label = e.Form.Controls("订单数量") If htdh.value=""Then MessageBox.Show("请完善订单信息!","警告",MessageBoxButtons.OK,MessageBoxIcon.Warning) Return Else If MessageBox.Show("是否保存?","确认",MessageBoxButtons.OKCancel,MessageBoxIcon.Question) = DialogResult.OK Then If Tables("订单明细").Current("是否订片") = False Then Dim nma() As String = {"编号","材质","客户单位","楞型","纸片供应商","箱_长","箱_宽","箱_高","箱型","组合方式","数量"} Dim nmb() As String = {"生产单号","纸片材质","纸箱客户","纸片楞型","供应厂商","箱_长","箱_宽","箱_高","箱_型","箱_组","箱_数"} Dim dr As DataRow = DataTables("纸片整理").Find("生产单号 = \'" & Tables("订单明细").Current("编号") & "\'") If dr Is Nothing Then dr = DataTables("纸片整理").AddNew End If For i As Integer = 0 To nma.Length - 1 dr(nmb(i)) = Tables("订单明细").Current(nma(i)) Next End If For Each dt As DataTable In DataTables dt.Save() Next systemready = False Tables("订单明细").AddNew() systemready = True End If End If
|
||||
-- 作者:yuyoufei11 -- 发布时间:2016/6/4 21:11:00 -- systemready是什么意思 |
||||
-- 作者:lzzhx -- 发布时间:2016/6/4 21:20:00 -- 暂停执行事件代码 暂停所有事件 Foxtable有一个逻辑型的系统变量,将其设置为False,将停止执行所有事件代码,将其设置为True,将恢复执行所有事件代码,就像一个事件“开关”。 SystemReady = False 如果在执行上述代码的过程中发生错误退出,那么SystemReady将始终为False,系统进入锁死状态,不会执行任何事件代码,单击菜单按钮也不会有反应。 所以比较安全的编码方式为: SystemReady = False 暂停单个事件 如果要暂停单个事件的执行,那么SystemReady是无能为力的。 1、首先我们在全局代码中定义一个Public变量,假定变量名为pause: Public pause As Boolean 2、然后在某事件的开始位置添加一段代码: \'判断是否执行事件: 3、现在我们就可以为此事件设计开关了: 关闭此事件的代码为: pause = True 开启此事件的代码为: pause = False |