以文本方式查看主题 - 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 -- [求助]如何调入当月最小编号的记录 想在‘调用’表的子窗口中的按钮中,调入‘订单’表中与‘调用’表中月份相同的最小编号的记录,代码不会(多个条件就晕了)
|
||||
-- 作者:czy -- 发布时间:2008/12/1 14:32:00 -- 你所指的当月是指系统当前月份? |
||||
-- 作者:狐狸爸爸 -- 发布时间:2008/12/1 14:43:00 -- 呵呵,越是初学的人,越将自己的系统搞得复杂。 |
||||
-- 作者:mr725 -- 发布时间:2008/12/1 15:08:00 -- 以下是引用czy在2008-12-1 14:32:00的发言:
你所指的当月是指系统当前月份? 中午网络有点问题! 我指的的当月是‘调用’表中日期列所在的月份, [此贴子已经被作者于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的发言:
呵呵,越是初学的人,越将自己的系统搞得复杂。 哈哈,狐爸,某月的第一天和最后一天可能都没有记录的,不过收藏您给的代码了。~ |
||||
-- 作者:mr725 -- 发布时间:2008/12/1 15:39:00 -- 重新上转一个文件吧,一楼的文件只有1月份,现将编号30以后的月份改为2。
如果调用表没有内容,请在子窗口中点调入最后一条按钮 [此贴子已经被作者于2008-12-1 15:47:01编辑过]
|