以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.com/bbs/index.asp)
--  专家坐堂  (http://foxtable.com/bbs/list.asp?boardid=2)
----  填充代码  (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=5685)

--  作者:wqc360
--  发布时间:2009/12/28 23:01:00
--  填充代码
窗口年月输入2009年11月,点填充,达到表A房间号填到表A新增行房间号,窗口控件年月填充到表A新增行年月(条件是不重复房间号和窗口控件年月),2009年10月本月读数填充到2009年11月上月读数一次类推。
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:管理项目5.table

[此贴子已经被作者于2009-12-28 23:01:59编辑过]

--  作者:czy
--  发布时间:2009/12/28 23:42:00
--  
Dim Fjs As List(Of String) = DataTables("表A").GetUniqueValues("", "房间号")
For Each Fj As String In Fjs
    Dim dr1 As DataRow = DataTables("表A").Find("房间号 = \'" & Fj & "\'","_Identify Desc")
    Dim dr2 As DataRow = DataTables("表A").AddNew()
    dr2("年月") = e.Form.Controls("TextBox1").Value
    dr2("房间号") = Fj
    dr2("上月读数") = dr1("本月读数")
Next

--  作者:wqc360
--  发布时间:2009/12/28 23:52:00
--  
不对,只能填充一行的年月列,并提示出错
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:管理项目5.table


--  作者:czy
--  发布时间:2009/12/28 23:57:00
--  
出错的原因留着你自己找,解决办法好好想想。
--  作者:czy
--  发布时间:2009/12/29 0:17:00
--  
没想出办法?

改这句:

Dim Fjs As List(Of String) = DataTables("表A").GetUniqueValues("房间号 Is Not Null", "房间号")
--  作者:wqc360
--  发布时间:2009/12/29 1:34:00
--  
Dim Fjs As List(Of String) = DataTables("表A").GetUniqueValues("", "房间号")
For Each Fj As String In Fjs
    Dim dr1 As DataRow = DataTables("表A").Find("房间号 = \'" & Fj & "\'","_Identify Desc")
    Dim dr2 As DataRow = DataTables("表A").AddNew(1)
    dr2("年月") = e.Form.Controls("TextBox1").Value
    dr2("房间号") = Fj
    dr2("上月读数") = dr1("本月读数")
Next
我瞎猫碰耗子,加了一个1,可填充了,但是与C版上面一样的效果,还是有一点不对,同月可反复填充,应同房间号同月只能有一条数据,麻烦C版明天再帮忙看看,今晚早点休息,晚安
--  作者:czy
--  发布时间:2009/12/29 10:20:00
--  
自己做个判断呀。

Dim Exergue As String = e.Form.Controls("TextBox1").Value
Dim r As DataRow = DataTables("表A").Find("年月 = \'" & Exergue & "\'")
If r IsNot Nothing Then
    MessageBox.Show("表中已存在 " & Exergue,"提示",MessageBoxButtons.Ok,MessageBoxIcon.Information)
    Return
End If
Dim Fjs As List(Of String) = DataTables("表A").GetUniqueValues("房间号 Is Not Null", "房间号")
For Each Fj As String In Fjs
    Dim dr1 As DataRow = DataTables("表A").Find("房间号 = \'" & Fj & "\'","_Identify Desc")
    Dim dr2 As DataRow = DataTables("表A").AddNew()
    dr2("年月") = Exergue
    dr2("房间号") = Fj
    dr2("上月读数") = dr1("本月读数")
Next

--  作者:wqc360
--  发布时间:2009/12/29 11:45:00
--  
谢谢了,搞定
--  作者:mr725
--  发布时间:2009/12/29 12:18:00
--  
以下是引用wqc360在2009-12-29 11:45:00的发言:
谢谢了,搞定

如果输入 2009年09月  试一试?


--  作者:wqc360
--  发布时间:2009/12/29 12:44:00
--  
因为是以Identify作为取数的,只要是不同的年月,肯定填充最后的记录,这样可以了。还有就是指定窗口文本来源,不能输入,来源数据每个月都要填写,只要不重复就行,往前往后没法选择