以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  整单转抄功能  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=86657)

--  作者:woshiabc
--  发布时间:2016/6/22 17:10:00
--  整单转抄功能
转抄主表的某张单(下面有3条明细),再修改新的主表编号,(明细也一起转抄过去),请问要怎样操作?
比如说001这张单有3条明细,我对001进行转抄,点击转抄按钮弹出对话框显示修改单号(点击确定修改成001a),然后001的明细也相应转抄成001a

--  作者:rjh4078
--  发布时间:2016/6/22 17:29:00
--  

就是一个简单的赋值啊

新增一行 将当前行的各列值赋过去  并且修改单号

明细表也是一样 通过获取当前行的子行集合 用一个循环赋值过去

如果不会上例子


--  作者:大红袍
--  发布时间:2016/6/22 17:43:00
--  

 直接勾选不就行了?

 

http://www.foxtable.com/help/topics/1644.htm

 


--  作者:woshiabc
--  发布时间:2016/6/23 11:10:00
--  

 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:管理项目2.foxdb

例子在窗口1的转抄按钮

 


 


--  作者:rjh4078
--  发布时间:2016/6/23 11:12:00
--  
呃  版本有点高  发个商业版的吧
--  作者:大红袍
--  发布时间:2016/6/23 11:23:00
--  
Dim t As Table = Tables("窗口1_Table2")
Dim t2 As Table = Tables("窗口1_Table1")
Dim Val As String = t2.Current("报价单编号")
If InputValue(Val, "修改", "请输入要修改的编号:") Then
    t.DataTable.ReplaceFor("报价单编号", val, "报价单编号=\'" & t2.Current("报价单编号") & "\'")
    t2.Current("报价单编号") = val
   
    With t2
        If .Current Is Nothing Then
            t.Filter = "False"
        Else
            t.Filter = "报价单编号 = \'" & .Current("报价单编号") & "\'"
        End If
    End With
End If

--  作者:woshiabc
--  发布时间:2016/6/23 11:40:00
--  

你好,可能有点误会我的意思。我是想要转抄一张新单,而不是单单修改原来的报价单编号

比如001这张单,点击转抄后生成一张新单001a,但是不覆盖原来的报价单

最后结果是存在001和001a这两张单,只是报价单编号没有重复

[此贴子已经被作者于2016/6/23 11:42:55编辑过]

--  作者:大红袍
--  发布时间:2016/6/23 11:51:00
--  
Dim t As Table = Tables("窗口1_Table2")
Dim t2 As Table = Tables("窗口1_Table1")
Dim Val As String = t2.Current("报价单编号")
If InputValue(Val, "修改", "请输入要修改的编号:") Then
    For Each dr As DataRow In t.DataTable.Select("报价单编号=\'" & t2.Current("报价单编号") & "\'")
        Dim ndr As Row = t.addnew
        ndr("报价单编号") = val
        ndr("QTY") = dr("QTY")
        ndr("T") = dr("T")
    Next
    Dim nr As Row = t2.AddNew
    nr("报价单编号") = val
    nr("英镑港币汇率") = t2.Current("英镑港币汇率")
    t.Filter = "报价单编号 = \'" & val & "\'"
End If

--  作者:woshiabc
--  发布时间:2016/6/23 13:52:00
--  
你好,要是报价明细那里字段有20个,都需要转抄成一样,要怎样修改代码?难道所有字段都要重新写一遍?有没有更好的方法?
--  作者:大红袍
--  发布时间:2016/6/23 15:26:00
--  

Dim t As Table = Tables("窗口1_Table2")
Dim t2 As Table = Tables("窗口1_Table1")
Dim Val As String = t2.Current("报价单编号")
If InputValue(Val, "修改", "请输入要修改的编号:") Then
    For Each dr As DataRow In t.DataTable.Select("报价单编号=\'" & t2.Current("报价单编号") & "\'")
        Dim ndr As Row = t.addnew
For Each c As Col in t.Cols

ndr(c.name) = dr(c.name)

Next

        ndr("报价单编号") = val
    Next
    Dim nr As Row = t2.AddNew
    nr("报价单编号") = val
    nr("英镑港币汇率") = t2.Current("英镑港币汇率")
    t.Filter = "报价单编号 = \'" & val & "\'"
End If