以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  [求助]如何调入当月最小编号的记录  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=1290)

--  作者:mr725
--  发布时间:2008/12/1 14:07:00
--  [求助]如何调入当月最小编号的记录
想在‘调用’表的子窗口中的按钮中,调入‘订单’表中与‘调用’表中月份相同的最小编号的记录,代码不会(多个条件就晕了)
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:test.table


--  作者:czy
--  发布时间:2008/12/1 14:32:00
--  
你所指的当月是指系统当前月份?
--  作者:狐狸爸爸
--  发布时间:2008/12/1 14:43:00
--  

呵呵,越是初学的人,越将自己的系统搞得复杂。

    \'本月第一天
    Dim StartDate AS date = New Date(Date.Today.Year,Date.Today.Month,1)
    \'本月最后一天
    Dim EndDate AS Date = New Date(Date.Today.Year,Date.Today.Month,Date.DaysInMonth(Date.Today.Year,Date.Today.Month))


--  作者:mr725
--  发布时间:2008/12/1 15:08:00
--  
以下是引用czy在2008-12-1 14:32:00的发言:
你所指的当月是指系统当前月份?

中午网络有点问题! 我指的的当月是‘调用’表中日期列所在的月份,
即:想从订单表中调入的记录:
如‘调用’表日期列含一月时:把订单表中一月份的最小编号是 1 的记录调入到‘调用’表,
如‘调用’表日期列含二月时:把订单表中二月份的最小编号是 30 的记录调入到‘调用’表。
当然,调入前都要把‘调用’表中原有的记录删除。上面的 1 和 30 都不是固定的。

[此贴子已经被作者于2008-12-1 15:32:19编辑过]

--  作者:mr725
--  发布时间:2008/12/1 15:24:00
--  
下面是调入最小编号的代码,我就不会加入一个时间(月份的)条件:
        If MainTable.Name = "调用"
            Dim f As New Filler
            f.SourceTable = DataTables("订单") \'指定数据来源
            f.SourceCols = "产品,单价,折扣,数量,日期,已付款,编号,型号" \'指定数据来源列
            f.DataTable = DataTables("调用") \'指定数据接收表
            f.DataCols = "产品,单价,折扣,数量,日期,已付款,编号,型号" \'指定数据接收列
            f.Filter = "[编号] = " & DataTables("订单").Compute("min(编号)")
            DataTables("调用").DataRows.Clear() \'清除原来的数据
            f.Fill() \'填充数据
        End If

--  作者:czy
--  发布时间:2008/12/1 15:27:00
--  
我觉得应该要订单表中增加一个月的表达式列,表达式代码帮助中有,如:
SUBSTRING(Convert([日期],\'System.String\'),6,IIF(SUBSTRING(Convert([日期],\'System.String\'),7,1) = \'-\',1,2))

然后将楼上的代码改成:

Dim de As Date  = Tables("调用").Current("日期")
Dim Month As Integer = de.Month
Dim Min As Integer = DataTables("订单").Compute("Min(编号)","月 = \'" & Month & "\'")
DataTables("调用").DataRows.Clear()
If MainTable.Name = "调用"
    Dim f As New Filler
    f.SourceTable = DataTables("订单")
    f.SourceCols = "产品,单价,折扣,数量,日期,已付款,编号,型号"
    f.DataTable = DataTables("调用")
    f.DataCols = "产品,单价,折扣,数量,日期,已付款,编号,型号"
    f.Filter = "[编号] = \'" & Min & "\' And [月] = \'" & Month & "\'"
    f.Fill()
End If

--  作者:ybil
--  发布时间:2008/12/1 15:27:00
--  
\'\'\'
If MainTable.Name = "调用"
     Dim Dt1,Dt2 As DataTable
     Dim T1,T2 As String
     Dim Y,M,n As Short
     Dim D1,D2,D3 As Date
     D1= Date.Today
     Y = D1.year
     M = D1.Month
     D2= New Date(Y,M,1)
     D3= New Date(Y,M,Date.DaysInMonth(Y,M))
     Dt1 = DataTables("订单")
     Dt2 = DataTables("调用")
     T1 = "产品,单价,折扣,数量,日期,已付款,编号,型号"
     T2 = "日期 >=\'" & D2 & "\'And 日期 <=\'" & D3 & "\'"
     n = Dt1.Compute("Min(编号)",T2) 
     T2 = T2 & " And 编号 = " & n
       
     Dim f As New Filler
     f.SourceTable = Dt1
     f.SourceCols = T1
     f.DataTable = Dt2  
     f.DataCols  = T1
     f.Filter = T2 
     Dt2.DataRows.Clear()
     f.Fill()
End If

--  作者:狐狸爸爸
--  发布时间:2008/12/1 15:29:00
--  

    Dim Year As  Integer = 2008
    Dim Month As integer = 2
    Dim StartDate AS date = New Date(Year, Month, 1) 
    Dim EndDate AS Date = New Date(Year, Month, Date.DaysInMonth(Year, Month))
   If MainTable.Name = "调用"
            Dim f As New Filler
            f.SourceTable = DataTables("订单") \'指定数据来源
            f.SourceCols = "产品,单价,折扣,数量,日期,已付款,编号,型号" \'指定数据来源列
            f.DataTable = DataTables("调用") \'指定数据接收表
            f.DataCols = "产品,单价,折扣,数量,日期,已付款,编号,型号" \'指定数据接收列
            f.Filter = "[编号] = " & DataTables("订单").Compute("min(编号)","[日期] >= #" & StartDate & "# And [日期]<= #" & EndDate & "#")
            DataTables("调用").DataRows.Clear() \'清除原来的数据
            f.Fill() \'填充数据
        End If
--  作者:mr725
--  发布时间:2008/12/1 15:29:00
--  
以下是引用狐狸爸爸在2008-12-1 14:43:00的发言:

呵呵,越是初学的人,越将自己的系统搞得复杂。

    \'本月第一天
    Dim StartDate AS date = New Date(Date.Today.Year,Date.Today.Month,1)
    \'本月最后一天
    Dim EndDate AS Date = New Date(Date.Today.Year,Date.Today.Month,Date.DaysInMonth(Date.Today.Year,Date.Today.Month))

哈哈,狐爸,某月的第一天和最后一天可能都没有记录的,不过收藏您给的代码了。~


--  作者:mr725
--  发布时间:2008/12/1 15:39:00
--  
重新上转一个文件吧,一楼的文件只有1月份,现将编号30以后的月份改为2。
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:testa.table

如果调用表没有内容,请在子窗口中点调入最后一条按钮
[此贴子已经被作者于2008-12-1 15:47:01编辑过]