以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.com/bbs/index.asp)
--  专家坐堂  (http://foxtable.com/bbs/list.asp?boardid=2)
----  不知道哪里错了  (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=78469)

--  作者:sf020cf
--  发布时间:2015/12/9 18:01:00
--  不知道哪里错了

在应付款项窗口单击计算运费 有时候不报错 有时候报 and运算符前缺少操作数 条件应该都满足啊 运费跟点费我删掉之后 计算也报错 (就算不报错)计算结果也不对

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


--  作者:大红袍
--  发布时间:2015/12/9 18:08:00
--  

Dim dt As DataTable = DataTables("应付款项")
Dim p As WinForm.ProgressBar
p = e.Form.Controls("ProgressBar1")
Dim filter As String = Tables("应付款项").Filter
filter = iif(filter>"", filter, "1=1")
Dim arys As List(of String()) = dt.GetValues( "司机|车牌|出车日期", "出车日期 is not null and 运费 is null and 点费 is null and " & filter)
If arys.count > 0 Then
    p.Visible = True
    p.Maximum =  arys.Count - 1 \'设置最大值
    p.Minimum = 0 \'设置最小值
    p.Value = 0 \'设置当前值
End If

Dim idx As Integer = 0
DataTables("应付款项").StopRedraw

For Each ary() As String In  arys
    idx += 1
    p.Value = idx \'加在这里
    Dim fil As String = "司机 = \'" & ary(0) & "\' and 车牌 = \'" & ary(1) & "\' and 出车日期 = #" & ary(2) & "#"
    Dim drs As List(of DataRow) = dt.Select(fil)
    For Each dr As DataRow In drs
        If DataTables("价目表").DataCols.Contains("车型_" & dr("车型")) Then
            Dim jdrs As List(of DataRow) = DataTables("价目表").Select("项目 like \'%" & dr("项目") & "%\' and 城市 like \'%" & dr("城市") & "%\'")
            For Each jdr As DataRow In jdrs
                If dr("地点") Like "*" & jdr("地点") & "*" Then
                    dr("运费") = jdr("车型_" & dr("车型"))
                    Exit For
                End If
            Next
        End If
    Next
   
    drs = dt.Select(fil, "运费 desc")
    For i As Integer = 0 To drs.Count - 1
       
        Select Case drs(i)("车型")
            Case "9M6"
                drs(i)("点费") = 80
            Case "6M2","6M8","7M6"
                drs(i)("点费") = 60
            Case "4M5","4M2"
                drs(i)("点费") = 30
        End Select
       
        If i = 0 Then
            drs(i)("点费") = Nothing
        Else
            drs(i)("运费") = Nothing
        End If
    Next
    For Each str As String In dt.GetValues("送货地址", fil )
        drs = dt.Select(fil & " and 送货地址 = \'" & str & "\'")
        For i As Integer = 0 To drs.Count - 1
            If i > 0 Then
                drs(i)("点费") = Nothing
            End If
        Next
    Next
Next
DataTables("应付款项").ResumeRedraw
p.Visible = False


--  作者:sf020cf
--  发布时间:2015/12/10 11:37:00
--  

 Dim jdrs As List(of DataRow) = DataTables("价目表").Select("项目 like \'%" & dr("项目") & "%\' and 城市 like \'%" & dr("城市") & "%\'")

项目 like \'%" & dr("项目") & "%\'  在价目表中 项目这一列 我是这样写的 麦德龙|三星|李锦记   怎样加 .split("|")


--  作者:大红袍
--  发布时间:2015/12/10 11:40:00
--  

没必要加|啊,项目基本唯一啊

 

 Dim jdrs As List(of DataRow) = DataTables("价目表").Select("(\'|\' + 项目 + \'|\') like \'%|" & dr("项目") & "|%\' and 城市 like \'%" & dr("城市") & "%\'")


--  作者:sf020cf
--  发布时间:2015/12/10 11:54:00
--  

表"应付款项"的项目行是唯一的 价目表的项目行是这样的:三星|麦德龙|李锦记 要注明|让系统识别吗

不知道是我电脑问题还是什么 同一段代码在不同表属性里的功能为什么不一样

If ridx > 0 Then
    If  math.abs(e.OldRange.TopRow - e.OldRange.BottomRow) >= 1 Then
        If e.OldRange.BottomRow >= e.Table.Rows.count Then Return
        For i As Integer = e.OldRange.TopRow To e.OldRange.BottomRow
            e.Table.Rows(i).Checked = False
        Next
       
        For i As Integer = e.Table.TopPosition To e.Table.BottomPosition
            e.Table.Rows(i).Checked = True
        Next
    End If
End If

四张表用到这个功能 三张表没实现 一张正常

AfterSelRangeChange

事件
--  作者:大红袍
--  发布时间:2015/12/10 11:56:00
--  

你去看看afterOpenProject的代码,每个表,都要绑定事件的。


--  作者:大红袍
--  发布时间:2015/12/10 11:56:00
--  

Dim t As Table= Tables("配载订单")
addhandler t.grid.MouseEnterCell, addressof MouseLeaveCell
addhandler t.grid.MouseLeaveCell, addressof MouseEnterCell

 

t = Tables("另一个表")
addhandler t.grid.MouseEnterCell, addressof MouseLeaveCell
addhandler t.grid.MouseLeaveCell, addressof MouseEnterCell


--  作者:sf020cf
--  发布时间:2015/12/10 13:28:00
--  
绑了 就是不行 现在是这样 先要按住左键拖到要复选的行 然后再在行前的复选框点一次 才能勾选所选行
--  作者:大红袍
--  发布时间:2015/12/10 14:21:00
--  
不可能有问题,做例子上来。
--  作者:大红袍
--  发布时间:2015/12/10 14:25:00
--  

我测试没问题啊,框选可以勾选啊,不行就做例子上来