以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  [求助]档案编号的生成问题  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=17331)

--  作者:weller2
--  发布时间:2012/3/9 22:48:00
--  [求助]档案编号的生成问题

请问这样的档案编号能否自动生成(因新手,编程暂不强,使用指南的知识可否实现?)

 

    档案编号根据数据表目录树的内容对应生成,假如目录树项目有 广东-广州  广东-佛山、海南-海口、海南-三亚,广东对应编号为GD,海南对应编号为HN,广州对应0A,佛山对应0B,海口0A,三亚0B。如果我现在选了广东广州,对应编号为GD0A+广州第几次出现,如GD0A00001,GDGD0A00002,其它类推后有:GD0B00001,GD0B00002,NH0A00001。

 

 

 

一开始发错了在视频教学区,不好意思,现重发。


--  作者:程兴刚
--  发布时间:2012/3/9 22:57:00
--  

可以,因为您的目录树数据存在于表中,既然目录树有广东-广州,广东-佛山,那么您就有身份、地区等字段,在增加一个地区的对应编号字段,身份的对应编号可以用getpy求得,这样就可以自动生成编码了,参考:聚合函数的Count:计数

 

 


--  作者:weller2
--  发布时间:2012/3/9 23:27:00
--  

我做了个问题件,能按要求处理一下吗?

 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:档案编号求解.table


--  作者:czy
--  发布时间:2012/3/10 0:37:00
--  

表A,DataColChanged事件。

 

If e.DataCol.Name = "第二列" OrElse e.DataCol.Name = "第三列" Then
    Dim dr As DataRow = e.DataRow
    If dr.IsNull("第二列") OrElse dr.IsNull("第三列")
        dr("第四列") = Nothing
    Else
        Dim dr1 As DataRow = DataTables("表B").Find("第一列 = \'" & dr("第二列") & "\' And 第二列 = \'" & dr("第三列") & "\'")
        If dr1 IsNot Nothing Then \'如果找到的话
            Dim n As Integer = e.DataTable.Compute("Count(第二列)","第二列 = \'" & dr("第二列") & "\' And 第三列 = \'" & dr("第三列") & "\'")
            dr("第四列") = GetPY(dr1("第一列"),True) & GetPY(dr1("第二列"),True) & Format(n,"000")
        End If
    End If
End If


--  作者:czy
--  发布时间:2012/3/10 0:38:00
--  

另外将数据来源列改成:第一列|第二列

将数据接收列改成:第二列|第三列


--  作者:weller2
--  发布时间:2012/3/10 20:06:00
--  

谢了,代码好像基本能实现,基础不好,还要点时间消化吸收一下,希望之后能自己优化一下。


--  作者:程兴刚
--  发布时间:2012/3/10 21:45:00
--  
呵呵,等您能优化C版的代码的时候,您就是超高手了!