以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  [求助]如何根据规定自动生成工作日程表  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=959)

--  作者:lxl
--  发布时间:2008/10/23 13:53:00
--  
 

DataTables("免疫安排表").DataRows.Clear

For Each r1 As Row In Tables("进鸡记录").Rows

    Dim BirthDay As Date = r1("日期")

    For Each r2 As Row In Tables("免疫程序").Rows

        Dim r As Row = Tables("免疫安排表").AddNew

        r("日期") = BirthDay.AddDays(r2("日龄"))

        r("栏舍号") = r1("栏舍号")

        r("日龄") = r2("日龄")

        r("疫苗名称") = r2("疫苗名称")

        r("接种方法") = r2("接种方法")

        r("剂量") = r2("剂量")

    Next

Next

思路是这样的。实际使用的时候不用清空免疫安排表,再全部生成安排。
可以只生成没有的日程安排。

--  作者:lxl
--  发布时间:2008/10/23 14:47:00
--  
感觉这样设计好一点。
“进鸡记录”最后的逻辑列选中或取消,在安排表都会自动增减记录
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:管理项目1.table


--  作者:gdtgl
--  发布时间:2008/10/23 17:21:00
--  
图片点击可在新窗口打开查看 强,用foxtable好熟练啊....
--  作者:gdtgl
--  发布时间:2008/10/23 19:37:00
--  

1,将免疫程序表中的空白行删掉...
2,合并模式...查看代码

With Tables("免疫安排表")
    .Redraw = False
    .MergeMode = MergeModeEnum.Standard
    .MergeCols.Clear()
    .MergeCols.Add("日期")
    .MergeSort = "日期"
    .AllowMerge = True
    .Redraw = True
End With

[此贴子已经被作者于2008-10-23 19:52:46编辑过]

--  作者:gdtgl
--  发布时间:2008/10/23 22:01:00
--  
1,免疫安排表生成空行因为在于免疫程序表有空行。。。。


2.
 

DataTables("免疫安排表").DataRows.Clear

For Each r1 As Row In Tables("进鸡记录").Rows

    Dim BirthDay As Date = r1("日期")

    For Each r2 As Row In Tables("免疫程序").Rows

        Dim r As Row = Tables("免疫安排表").AddNew

        r("日期") = BirthDay.AddDays(r2("日龄"))

        r("栏舍号") = r1("栏舍号")

        r("日龄") = r2("日龄")

        r("疫苗名称") = r2("疫苗名称")

        r("接种方法") = r2("接种方法")

        r("剂量") = r2("剂量")

    Next

Next


With Tables("免疫安排表")
    .Redraw = False
    .MergeMode = MergeModeEnum.Standard
    .MergeCols.Clear()
    .MergeCols.Add("日期")
    .MergeSort = "日期"
    .AllowMerge = True
    .Redraw = True
End With
[此贴子已经被作者于2008-10-23 22:01:28编辑过]

--  作者:gdtgl
--  发布时间:2008/10/23 22:04:00
--  
图片点击可在新窗口打开查看自已做的表的名字都不知的。。。
--  作者:lxl
--  发布时间:2008/10/23 22:13:00
--  
以下是引用liuruihua在2008-10-23 21:27:00的发言:
我的意思是在自动生成免疫安排表时不生空行(即疫苗名称、接种方法等都为空的行),不用手工去删除。
另外,所查看到的代码应在什么事件中?

只要"免疫程序"表中没有空行就不会在新表中产生空行.或者在2楼第4行代码下面加上: If r2("日龄") Is Nothing Then Continue For

我还是建议用3楼的文件:
如果只是因为报表的话,3楼的方案一样能生成报表.现在的Excel报表就能打印关联表内容.
如果是想直观的在表中显示的话,3楼的方案一样通过增加表达式能实现相同的效果,效率还高很多很多:

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


--  作者:lxl
--  发布时间:2008/10/24 7:27:00
--  
以下是引用liuruihua在2008-10-23 23:03:00的发言:
谢谢两位的热心解答,明白了空行产生的原因,但3楼的文件在更改“栏舍号”或“日期”列的数据后,免疫安排表中的栏舍号或日期并没有相应的改变,不知是啥原因?


最后的逻辑列"免疫安排"
取消选中之后,再选中就好了.