以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.com/bbs/index.asp)
--  专家坐堂  (http://foxtable.com/bbs/list.asp?boardid=2)
----  [求助]按钮代码(已解决)  (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=13329)

--  作者:yyzlxc
--  发布时间:2011/10/9 9:00:00
--  [求助]按钮代码(已解决)

一设备管理项目,设备目录表分别与设备折旧表和设备借用表通过设备编号关联。
当新购置一台设备时,需分别在三张表输入数值基本相同的一行数据。
设想通过一段按钮代码,在另外两张表各新增一行,并将设备管理表新增行(310004)的相关数据复制到另外两张表的对应列。
(需判断,如另外两张表已存在该设备编号时,按钮代码就不再运行,防止重复复制。)
以上功能用什么方法可以实现,请各位老师指教,谢谢!!

 

 


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

[此贴子已经被作者于2011-10-9 14:53:49编辑过]

--  作者:狐狸爸爸
--  发布时间:2011/10/9 10:03:00
--  

做一个复制行的按钮,将表A选定行复制到表B

 

dim r1 as Row = Tables("表A").Current

if 表B存在对应行 Then

  Return

Else

    Dim nms() As String  = {"列1","列2","列3"}

    Dim r2 as row  = Tables("表B").Addnew()

    For each nm as string in nms

        r2(nm) = r1(nm)

    next

end If

 

 


--  作者:yyzlxc
--  发布时间:2011/10/9 10:18:00
--  

谢谢狐爸老师的回复,请教这一条如何用代码实现,列标题为设备编号。

 

If 表B存在对应行 Then


--  作者:狐狸爸爸
--  发布时间:2011/10/9 10:21:00
--  

参考:
 
http://www.foxtable.com/help/topics/0396.htm

 
Dim r1 as Row = Tables("表A").Current
if DataTables("表B").Find("设备编号 = \'" & r1("设备编号") & "\'") IsNot Nothing then
    Return
end if


--  作者:yyzlxc
--  发布时间:2011/10/9 10:36:00
--  

代码通过,谢谢狐爸老师!!


--  作者:狐狸爸爸
--  发布时间:2011/10/9 10:46:00
--  
不客气,建议复习两遍帮助,因为你算是老鸟了,解决不了这种问题是不应该的。
--  作者:yyzlxc
--  发布时间:2011/10/9 13:07:00
--  

经狐爸老师的指点,完成按钮的部分代码,可一次复制到两张表(代码如下)。

 

Dim r1 As Row = Tables("设备目录").Current
If DataTables("设备折旧").Find("设备编号 = \'" & r1("设备编号") & "\'") IsNot Nothing Then
    Return
Else
    Dim nms() As String  = {"设备编号","产权单位"}
    Dim mms() As String  = {"设备编号","产权单位","使用单位"}
    Dim r2 As Row  = Tables("设备折旧").Addnew()
    Dim r3 As Row  = Tables("设备借用").Addnew()
    For Each nm As String In nms
        r2(nm) = r1(nm)
    Next
    For Each mm As String In mms
        r3(mm) = r1(mm)
    Next
End If

 

现在碰到新问题:

1、需要将设备目录表的购置日期分别复制到两张表的启用日期和借用日期,由于列标题不同,如何复制过去?

2、需要在设备折旧表的来源列,填入“购置”,如何通过代码自动完成?

要求在同一段按钮代码中完成。还请各位老师帮助指教,谢谢!!


--  作者:狐狸爸爸
--  发布时间:2011/10/9 14:37:00
--  

Dim r1 As Row = Tables("设备目录").Current
If DataTables("设备折旧").Find("设备编号 = \'" & r1("设备编号") & "\'") IsNot Nothing Then
    Return
Else
    Dim nms() As String  = {"设备编号","产权单位"}
    Dim r2 As Row  = Tables("设备折旧").Addnew()
    Dim r3 As Row  = Tables("设备借用").Addnew()
    For Each nm As String In nms
        r2(nm) = r1(nm)
        r3(nm) = r1(nm)
    Next
    r2("启用日期") = r1("购置日期")
    r3("借用日期") = r1("购置日期")
    r3("来源") = "购置"
End If

[此贴子已经被作者于2011-10-9 14:59:56编辑过]

--  作者:lihe60
--  发布时间:2011/10/9 14:49:00
--  
以下是引用狐狸爸爸在2011-10-9 10:46:00的发言:
不客气,建议复习两遍帮助,因为你算是老鸟了,解决不了这种问题是不应该的。

贺老师也说我是老狐狸,但有时也提出了一些幼稚的问题。


--  作者:yyzlxc
--  发布时间:2011/10/9 14:53:00
--  
谢谢狐爸老师,问题全部解决,又学了一招,再次衷心感谢!!