Foxtable(狐表)用户栏目专家坐堂 → [求助]请大侠进一步,简单语句逻辑捋顺了!{求优化方案}


  共有4749人关注过本帖树形打印复制链接

主题:[求助]请大侠进一步,简单语句逻辑捋顺了!{求优化方案}

帅哥哟,离线,有人找我吗?
foxbable_saber
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:婴狐 帖子:58 积分:431 威望:0 精华:0 注册:2015/4/16 17:25:00
[求助]请大侠进一步,简单语句逻辑捋顺了!{求优化方案}  发帖心情 Post By:2015/4/16 19:12:00 [只看该作者]

两个列变动在第三列显示判断结果,“两列更新数值有1个为空为空,旧数值有一个为空为空,都空为空,都不为空时“两列更新同输入“aaa”时显示“同类同”;两列更新相同但不都不是“aaa”时显示“异类同;两列不同时且都不是“aaa”时显示“差异”;前1列为“aaa”时显示顺差,后一列为“aaa”时表示逆差,其它“意有异常”?? 例如:客服给了一大概一轮廓如下(我再瞎编填补一下)! 

Select Case e.DataCol.name
    Case "第一列","第二列"
        
        If e.DataRow.isnull("第一列") OrElse e.DataRow.isnull("第二列") Then
            e.DataRow("第三列")=Nothing
        Else
            If e.DataRow("第一列")=e.DataRow("第二列") And e.DataRow("第一列")="aaa" And e.DataRow("第二列")="aaa" Then
                e.DataRow("第三列")="同类同"
            Else
                If e.DataRow("第一列")<>"aaa" And e.DataRow("第二列")<>"aaa" And e.DataRow("第一列")=e.DataRow("第二列") Then
                    e.DataRow("第三列")="异类同"
                Else
                    If e.DataRow("第一列") <> e.DataRow("第二列") And e.DataRow("第一列")<>"aaa"  And e.DataRow("第二列")<>"aaa" Then
                        e.DataRow("第三列")="异类"
                    Else
                        If e.DataRow("第一列")="aaa" And e.DataRow("第二列")<>"aaa" Then
                            e.DataRow("第三列")="顺差"
                        Else
                            If e.DataRow("第一列")<>"aaa" And e.DataRow("第二列")="aaa" Then
                                e.DataRow("第三列")="逆差"
                            Else
                                e.DataRow("第三列")="注意异常请检查"
                            End If
                        End If
                    End If
                End If
            End If
        End If
End Select
[此贴子已经被作者于2015/4/16 23:14:15编辑过]

 回到顶部
帅哥哟,离线,有人找我吗?
狐狸爸爸
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:管理员 帖子:47497 积分:251403 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By:2015/4/16 20:16:00 [只看该作者]

看不懂你的描述,最好用一个图片或表格来列出各种情况,自己的需求,自己最清楚,自己捋不清楚,别人更看明白。

 回到顶部
帅哥哟,离线,有人找我吗?
foxbable_saber
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:婴狐 帖子:58 积分:431 威望:0 精华:0 注册:2015/4/16 17:25:00
  发帖心情 Post By:2015/4/16 22:16:00 [只看该作者]

我觉得我说的还算明白吧?不知道前辈能看到附件图片不能?

望指导不知道怎么贴图就当附件上传了!
图片点击可在新窗口打开查看此主题相关图片如下:11111.jpg
图片点击可在新窗口打开查看

 回到顶部
帅哥哟,离线,有人找我吗?
foxbable_saber
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:婴狐 帖子:58 积分:431 威望:0 精华:0 注册:2015/4/16 17:25:00
  发帖心情 Post By:2015/4/16 22:35:00 [只看该作者]

您好~~~如下书写有没有“优化方案”?谢谢
望指点,望指正!
我这个表里,这个只是一个小步骤判断。会不会将来影响速度?



Select Case e.DataCol.name
    Case "第一列","第二列"
        
        If e.DataRow.isnull("第一列") OrElse e.DataRow.isnull("第二列") Then
            e.DataRow("第三列")=Nothing
        Else
            If e.DataRow("第一列")=e.DataRow("第二列") And e.DataRow("第一列")="aaa" And e.DataRow("第二列")="aaa" Then
                e.DataRow("第三列")="同类同"
            Else
                If e.DataRow("第一列")<>"aaa" And e.DataRow("第二列")<>"aaa" And e.DataRow("第一列")=e.DataRow("第二列") Then
                    e.DataRow("第三列")="异类同"
                Else
                    If e.DataRow("第一列") <> e.DataRow("第二列") And e.DataRow("第一列")<>"aaa"  And e.DataRow("第二列")<>"aaa" Then
                        e.DataRow("第三列")="异类"
                    Else
                        If e.DataRow("第一列")="aaa" And e.DataRow("第二列")<>"aaa" Then
                            e.DataRow("第三列")="顺差"
                        Else
                            If e.DataRow("第一列")<>"aaa" And e.DataRow("第二列")="aaa" Then
                                e.DataRow("第三列")="逆差"
                            Else
                                e.DataRow("第三列")="注意异常请检查"
                            End If
                        End If
                    End If
                End If
            End If
        End If
End Select

 回到顶部
帅哥哟,离线,有人找我吗?
狐狸爸爸
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:管理员 帖子:47497 积分:251403 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By:2015/4/17 9:23:00 [只看该作者]

if 语句本身可以多分支的:


Select Case e.DataCol.name
    Case "第一列","第二列"
        If e.DataRow.isnull("第一列") OrElse e.DataRow.isnull("第二列") Then
            e.DataRow("第三列")=Nothing
        ElseIf e.DataRow("第一列")=e.DataRow("第二列") And e.DataRow("第一列")="aaa" And e.DataRow("第二列")="aaa" Then
            e.DataRow("第三列")="同类同"
        ElseIf e.DataRow("第一列")<>"aaa" And e.DataRow("第二列")<>"aaa" And e.DataRow("第一列")=e.DataRow("第二列") Then
            e.DataRow("第三列")="异类同"
        ElseIf e.DataRow("第一列") <> e.DataRow("第二列") And e.DataRow("第一列")<>"aaa"  And e.DataRow("第二列")<>"aaa" Then
            e.DataRow("第三列")="异类"
        ElseIf e.DataRow("第一列")="aaa" And e.DataRow("第二列")<>"aaa" Then
            e.DataRow("第三列")="顺差"
        ElseIf e.DataRow("第一列")<>"aaa" And e.DataRow("第二列")="aaa" Then
            e.DataRow("第三列")="逆差"
        Else
            e.DataRow("第三列")="注意异常请检查"
        End If
End Select

 回到顶部
帅哥哟,离线,有人找我吗?
foxbable_saber
  6楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:婴狐 帖子:58 积分:431 威望:0 精华:0 注册:2015/4/16 17:25:00
  发帖心情 Post By:2015/4/17 10:36:00 [只看该作者]

哦哦哦,您这个看起来规整多了!(逻辑思路有点乱,大概需求如下)


语句框架问题:
1、请问:如果一张表内,由于“第一列”的变化,会首先影响后面列是否运算(或运算开关作用),影响后面(”第二列“、“第三列”变化后第四列显示结果) ..."N+1列"随之变动,

按说应该(不知道写的对不对) 
        全表各列都涉及 ” if e.DataRow ("第一列") = nothing Then 
                             e.datarow("N+1")=nothing

或者                    “if e.DataRow.IsNull(”第一列“) and  e.DataRow.IsNull(”第N列“)Then
                             e.datarow("N+1")=nothing
且“第一列+第二列+第三列”综合变动影响第四列;“第一列+第四列+第五列“综合影响“第七列”....

那么优化框架如何搭建,每段标准开头会如何写???(从1楼试题来"扩展"写的话)

例如
Select Case e.DataCol.name
 case "第一列"(这列需要如何的限制范围?例如:这列  
                                                  if e.NewValue Isnot Nothing then
                                                     e.datarow(第1、2、3、4、...才计算)  '这样解释对么? e.DataRow(第1、2、3、4、5...).Locked = False
                                                  else
                                                     e.datarow(第1、2、3、4、...N+1) = Nothing  
case “第二列”
case“第n列”
End Select
Select Case e.DataCol.name
 case "第一列(首要判断列)",“第二(涉及其中一段)“,“第三列(涉及其中一段)”,”第四列(根据1、2、3列变化后显示结果列)“(这里需要怎样的“循环逻辑语句“?及不冲突上面独立”第一列“语句?又带用到这里做逻辑判断操作用?)
Select Case e.DataCol.name
    Case "第一列","第二列","第三列"
        If e.DataRow.isnull("第一列") then  '或者有什么其它写法?
        e.DataRow("第四列")= Nothing
        else
        If e.DataRow.isnull("第二列") OrElse e.DataRow.isnull("第三列") Then
            e.DataRow("第四列")=Nothing
        ElseIf e.DataRow("第二列")=e.DataRow("第三列") And e.DataRow("第二列")="aaa" And e.DataRow("第三列")="aaa" Then
            e.DataRow("第四列")="同类同"
        ElseIf e.DataRow("第二列")<>"aaa" And e.DataRow("第三列")<>"aaa" And e.DataRow("第二列")=e.DataRow("第三列") Then
            e.DataRow("第四列")="异同类"
        ElseIf e.DataRow("第二列") <> e.DataRow("第三列") And e.DataRow("第二列")<>"aaa"  And e.DataRow("第三列")<>"aaa" Then
            e.DataRow("第四列")="差异"
        ElseIf e.DataRow("第二列")="aaa" And e.DataRow("第三列")<>"aaa" Then
            e.DataRow("第四列")="顺差"
        ElseIf e.DataRow("第二列")<>"aaa" And e.DataRow("第三列")="aaa" Then
            e.DataRow("第四列")="逆差"
        Else
            e.DataRow("第四列")="异常错误"
        End If
End Select
[此贴子已经被作者于2015/4/17 11:32:17编辑过]

 回到顶部
帅哥哟,离线,有人找我吗?
Bin
  7楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:贵宾 帖子:35433 积分:178524 威望:0 精华:3 注册:2013/3/30 16:36:00
  发帖心情 Post By:2015/4/17 11:33:00 [只看该作者]

SystemReady = False
Select Case e.DataCol.name
    Case "第一列","第二列","第三列"
        If e.DataRow.isnull("第一列") then
        e.DataRow("第四列")= Nothing
        else
        If e.DataRow.isnull("第二列") OrElse e.DataRow.isnull("第三列") Then
            e.DataRow("第四列")=Nothing
        ElseIf e.DataRow("第二列")=e.DataRow("第三列") And e.DataRow("第二列")="aaa" And e.DataRow("第三列")="aaa" Then
            e.DataRow("第四列")="同类同"
        ElseIf e.DataRow("第二列")<>"aaa" And e.DataRow("第三列")<>"aaa" And e.DataRow("第二列")=e.DataRow("第三列") Then
            e.DataRow("第四列")="异同类"
        ElseIf e.DataRow("第二列") <> e.DataRow("第三列") And e.DataRow("第二列")<>"aaa"  And e.DataRow("第三列")<>"aaa" Then
            e.DataRow("第四列")="差异"
        ElseIf e.DataRow("第二列")="aaa" And e.DataRow("第三列")<>"aaa" Then
            e.DataRow("第四列")="顺差"
        ElseIf e.DataRow("第二列")<>"aaa" And e.DataRow("第三列")="aaa" Then
            e.DataRow("第四列")="逆差"
        Else
            e.DataRow("第四列")="异常错误"
        End If
End Select
SystemReady = True

这个意思?

 回到顶部
帅哥哟,离线,有人找我吗?
foxbable_saber
  8楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:婴狐 帖子:58 积分:431 威望:0 精华:0 注册:2015/4/16 17:25:00
  发帖心情 Post By:2015/4/19 19:28:00 [只看该作者]

请大神给捋捋顺顺...优化优化!
1、整体效果如下图!

图片点击可在新窗口打开查看此主题相关图片如下:无标题.jpg
图片点击可在新窗口打开查看

2、问题:“原始地能否使”,“目的地能否使”部分 真不知道怎么书写语句! 
原来“易表”里可用 
if([原始地能力单]="",“异常”,if([原始地能力单]="无效地址",“异常”,......,Instr([筛币种],[货币能力表]))))
现在如何书写???

3、您给总体优化并规划一下语句框架结构,谢谢!语句基本都是 套说明 自己理解写得,有不科学实用之处望指教!

4、有的语句我想从变量模式变成取“固定列字符”搜寻跨表相等列名,然后有符合的返回相应值。
例如1:
Dim dr As DataRow
dr = DataTables("转换表").Find("[畸形地区码] = '" & e.NewValue & "'")
上面代码怎么转成“不用变量就跨表寻找某个字段,如果有,就赋值相应列的值?
易表句型: FindText("转换表","币种三字码","币种的名称", "=", [筛币种])

然后怎么从判断结果的不同,去用字符做“索引”字段?
易表句型:
【落地能力单】
if([原始地]="PEK","全能",
if([原始地转标地]<>"",FindText("地区货币能力表","货币能力表","地区三字码","=",[原始地转标地]),
FindText("地区货币能力表","货币能力表","地区三字码","=",[原始地])))

If e.DataCol.Name = "原始地" Then
    If e.NewValue Is Nothing Then
        e.DataRow("原始地转标地") = Nothing
    Else
        Dim dr As DataRow
        dr = DataTables("转换表").Find("[畸形地区码] = '" & e.NewValue & "'")
        If dr IsNot Nothing Then
            e.DataRow("原始地转标地") = dr("标准地区码")
        Else
            e.DataRow("原始地转标地") = Nothing
        End If
    End If
End If

If e.DataCol.Name = "目的地" Then
    If e.NewValue Is Nothing Then
        e.DataRow("目的地转标地") = Nothing
    Else
        Dim dr As DataRow
        dr = DataTables("转换表").Find("[畸形地区码] = '" & e.NewValue & "'")
        If dr IsNot Nothing Then
            e.DataRow("目的地转标地") = dr("标准地区码")
        Else
            e.DataRow("目的地转标地") = Nothing
        End If
    End If
End If

If e.DataCol.Name = "现币种" Then
    If e.NewValue Is Nothing Then
        e.DataRow("筛币种") = Nothing
    Else
        Dim dr As DataRow
        dr = DataTables("转换表").Find("[币种的名称] = '" & e.NewValue & "'")
        If dr IsNot Nothing Then
            e.DataRow("筛币种") = dr("币种三字码")
        Else
            e.DataRow("筛币种")= "币种异常或错误"
        End If
    End If
End If

Select Case e.DataCol.name
    Case "原始地","目的地"
        If e.DataRow.isnull("原始地") OrElse e.DataRow.isnull("目的地") Then
            e.DataRow("分析") = Nothing
        ElseIf e.DataRow("原始地")=e.DataRow("目的地") And e.DataRow("原始地")="PEK" And e.DataRow("目的地")="PEK"  Then
            e.DataRow("分析")="未曾旅游"
        ElseIf e.DataRow("原始地")<>"PEK" And e.DataRow("目的地")<>"PEK" And e.DataRow("原始地")=e.DataRow("目的地") Then
            e.DataRow("分析")="旅游驻留"
        ElseIf e.DataRow("原始地") <> e.DataRow("目的地") And e.DataRow("原始地")<>"PEK"  And e.DataRow("目的地")<>"PEK" Then
            e.DataRow("分析")="旅游途中"
        ElseIf e.DataRow("原始地")="PEK" And e.DataRow("目的地")<>"PEK" Then
            e.DataRow("分析")="出京中"
        ElseIf e.DataRow("原始地")<>"PEK" And e.DataRow("目的地")="PEK" Then
            e.DataRow("分析")="回京中"
        Else
            e.DataRow("分析")="异常请检查"
        End If
End Select

*******************************************************************************88
 ’以下字段感觉不太顺,但是自己调不好!
如果在易表中我想如下表示语句:
[原始币种能力]列进行判断取值
if([原始地]="",“”,
if([起代转标]<>"",FindText("地区货币能力表","货币能力表","地区三字码","=",[原始地转标地]),
FindText("地区货币能力表","货币能力表","地区三字码","=",[原始地])))

Select Case e.DataCol.name         ’狐表里只能这样,感觉不通顺有瑕疵!
    Case "原始地","原始地转标地"
        If e.DataRow.IsNull("原始地") Then
            e.DataRow("原始地币种能力") = Nothing
        ElseIf e.DataRow("原始地转标地") <> Nothing Then
            Dim mz As DataRow
            mz = DataTables("地区货币能力表").Find("[地区三字码] = '" & e.NewValue & "'")
            If mz IsNot Nothing Then
                e.DataRow("原始地币种能力") = mz("货币能力表")
            End If
        ElseIf e.DataRow.IsNull("原始地转标地") Then
            Dim lz As DataRow = DataTables("地区货币能力表").Find("[地区三字码] = '" & e.NewValue & "'")
            If lz IsNot Nothing Then
                e.DataRow("原始地币种能力") = lz("货币能力表")
Else
e.DataRow("原始地币种能力")="无效地址"
            End If
        End If
        
    Case "目的地","目的地转标地"
        If e.DataRow.IsNull("目的地") Then
            e.DataRow("目的地币种能力") = Nothing
        ElseIf e.DataRow("目的地转标地") <> Nothing Then
            Dim mz As DataRow
            mz = DataTables("地区货币能力表").Find("[地区三字码] = '" & e.NewValue & "'")
            If mz IsNot Nothing Then
                e.DataRow("目的地币种能力") = mz("货币能力表")
            End If
        ElseIf e.DataRow.IsNull("目的地转标地") Then
            Dim lz As DataRow = DataTables("地区货币能力表").Find("[地区三字码] = '" & e.NewValue & "'")
            If lz IsNot Nothing Then
                e.DataRow("目的地币种能力") = lz("货币能力表")
Else
e.DataRow("目的地币种能力")="无效地址"
            End If
        End If
End Select
**********************************************************************************
【原始地能否使】【目的地能否使】字段不知道怎么写!如下是’易表‘里我能写出的,换到’弧表‘不知道怎么表达??(希望优化,或内部语句直接运算后,节省分列数量提高效率。)
单列出一个字段【原始地能否筛选】对[筛币种]:[起飞能力单]进行比对是否包含筛币种字符:
if([原始地币种能力]="","",
if([原始地币种能力]="无效地址","新地点",
,Instr([筛币种],[原始地币种能力])))) ‘如果包含,那么有“数值>=0”
再单列出【是否需要兑换】列对上一字段判断,得出最终结果
if([原始地能否筛选]="新地点","是",
if([原始地能否筛选]>="0","否",
"是"))
*************************************************************************************

Select Case e.DataCol.name
Case "原始地能否使用","目的地能否使用"
If e.DataRow.IsNull("原始地能否使用") OrElse e.DataRow.IsNull("目的地能否使用") Then
e.DataRow("需换钱否") = False
ElseIf e.DataRow("原始地能否使用")="是" And e.DataRow("目的地能否使用")="是" Then
e.DataRow("需换钱否") = False
ElseIf e.DataRow("原始地能否使用")="否" And e.DataRow("目的地能否使用")="否" Then
e.DataRow("需换钱否") = True
ElseIf e.DataRow("原始地能否使用")="是" And e.DataRow("目的地能否使用")="否" Then
e.DataRow("需换钱否") = True
ElseIf e.DataRow("原始地能否使用")="否" And e.DataRow("目的地能否使用")="是" Then
e.DataRow("需换钱否") = True
Else
e.DataRow("需换钱否") = False
End If
End Select
[此贴子已经被作者于2015/4/19 22:19:08编辑过]

 回到顶部
帅哥哟,离线,有人找我吗?
foxbable_saber
  9楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:婴狐 帖子:58 积分:431 威望:0 精华:0 注册:2015/4/16 17:25:00
  发帖心情 Post By:2015/4/19 22:18:00 [只看该作者]


图片点击可在新窗口打开查看此主题相关图片如下:无标题.jpg
图片点击可在新窗口打开查看


If e.DataCol.Name = "原始地" Then
    If e.NewValue Is Nothing Then
        e.DataRow("原始地转标地") = Nothing
    Else
        Dim dr As DataRow
        dr = DataTables("转换表").Find("[畸形地区码] = '" & e.NewValue & "'")
        If dr IsNot Nothing Then
            e.DataRow("原始地转标地") = dr("标准地区码")
        Else
            e.DataRow("原始地转标地") = Nothing
        End If
    End If
End If

If e.DataCol.Name = "目的地" Then
    If e.NewValue Is Nothing Then
        e.DataRow("目的地转标地") = Nothing
    Else
        Dim dr As DataRow
        dr = DataTables("转换表").Find("[畸形地区码] = '" & e.NewValue & "'")
        If dr IsNot Nothing Then
            e.DataRow("目的地转标地") = dr("标准地区码")
        Else
            e.DataRow("目的地转标地") = Nothing
        End If
    End If
End If

If e.DataCol.Name = "现币种" Then
    If e.NewValue Is Nothing Then
        e.DataRow("筛币种") = Nothing
    Else
        Dim dr As DataRow
        dr = DataTables("转换表").Find("[币种的名称] = '" & e.NewValue & "'")
        If dr IsNot Nothing Then
            e.DataRow("筛币种") = dr("币种三字码")
        Else
            e.DataRow("筛币种")= "币种异常或错误"
        End If
    End If
End If

Select Case e.DataCol.name
    Case "原始地","目的地"
        If e.DataRow.isnull("原始地") OrElse e.DataRow.isnull("目的地") Then
            e.DataRow("分析") = Nothing
        ElseIf e.DataRow("原始地")=e.DataRow("目的地") And e.DataRow("原始地")="PEK" And e.DataRow("目的地")="PEK"  Then
            e.DataRow("分析")="未曾旅游"
        ElseIf e.DataRow("原始地")<>"PEK" And e.DataRow("目的地")<>"PEK" And e.DataRow("原始地")=e.DataRow("目的地") Then
            e.DataRow("分析")="旅游驻留"
        ElseIf e.DataRow("原始地") <> e.DataRow("目的地") And e.DataRow("原始地")<>"PEK"  And e.DataRow("目的地")<>"PEK" Then
            e.DataRow("分析")="旅游途中"
        ElseIf e.DataRow("原始地")="PEK" And e.DataRow("目的地")<>"PEK" Then
            e.DataRow("分析")="出京中"
        ElseIf e.DataRow("原始地")<>"PEK" And e.DataRow("目的地")="PEK" Then
            e.DataRow("分析")="回京中"
        Else
            e.DataRow("分析")="异常请检查"
        End If
End Select

*******************************************************************************88
 ’以下字段感觉不太顺,但是自己调不好!
如果在易表中我想如下表示语句:
[原始币种能力]列进行判断取值
if([原始地]="",“”,
if([起代转标]<>"",FindText("地区货币能力表","货币能力表","地区三字码","=",[原始地转标地]),
FindText("地区货币能力表","货币能力表","地区三字码","=",[原始地])))

Select Case e.DataCol.name         ’狐表里只能这样,感觉不通顺有瑕疵!
    Case "原始地","原始地转标地"
        If e.DataRow.IsNull("原始地") Then
            e.DataRow("原始地币种能力") = Nothing
        ElseIf e.DataRow("原始地转标地") <> Nothing Then
            Dim mz As DataRow
            mz = DataTables("地区货币能力表").Find("[地区三字码] = '" & e.NewValue & "'")
            If mz IsNot Nothing Then
                e.DataRow("原始地币种能力") = mz("货币能力表")
            End If
        ElseIf e.DataRow.IsNull("原始地转标地") Then
            Dim lz As DataRow = DataTables("地区货币能力表").Find("[地区三字码] = '" & e.NewValue & "'")
            If lz IsNot Nothing Then
                e.DataRow("原始地币种能力") = lz("货币能力表")
Else
e.DataRow("原始地币种能力")="无效地址"
            End If
        End If
        
    Case "目的地","目的地转标地"
        If e.DataRow.IsNull("目的地") Then
            e.DataRow("目的地币种能力") = Nothing
        ElseIf e.DataRow("目的地转标地") <> Nothing Then
            Dim mz As DataRow
            mz = DataTables("地区货币能力表").Find("[地区三字码] = '" & e.NewValue & "'")
            If mz IsNot Nothing Then
                e.DataRow("目的地币种能力") = mz("货币能力表")
            End If
        ElseIf e.DataRow.IsNull("目的地转标地") Then
            Dim lz As DataRow = DataTables("地区货币能力表").Find("[地区三字码] = '" & e.NewValue & "'")
            If lz IsNot Nothing Then
                e.DataRow("目的地币种能力") = lz("货币能力表")
Else
e.DataRow("目的地币种能力")="无效地址"
            End If
        End If
End Select
**********************************************************************************
【原始地能否使】【目的地能否使】字段不知道怎么写!如下是’易表‘里我能写出的,换到’弧表‘不知道怎么表达??(希望优化,或内部语句直接运算后,节省分列数量提高效率。)
单列出一个字段【原始地能否筛选】对[筛币种]:[起飞能力单]进行比对是否包含筛币种字符:
if([原始地币种能力]="","",
if([原始地币种能力]="无效地址","新地点",
,Instr([筛币种],[原始地币种能力])))) ‘如果包含,那么有“数值>=0”
再单列出【是否需要兑换】列对上一字段判断,得出最终结果
if([原始地能否筛选]="新地点","是",
if([原始地能否筛选]>="0","否",
"是"))
*************************************************************************************

Select Case e.DataCol.name
Case "原始地能否使用","目的地能否使用"
If e.DataRow.IsNull("原始地能否使用") OrElse e.DataRow.IsNull("目的地能否使用") Then
e.DataRow("需换钱否") = False
ElseIf e.DataRow("原始地能否使用")="是" And e.DataRow("目的地能否使用")="是" Then
e.DataRow("需换钱否") = False
ElseIf e.DataRow("原始地能否使用")="否" And e.DataRow("目的地能否使用")="否" Then
e.DataRow("需换钱否") = True
ElseIf e.DataRow("原始地能否使用")="是" And e.DataRow("目的地能否使用")="否" Then
e.DataRow("需换钱否") = True
ElseIf e.DataRow("原始地能否使用")="否" And e.DataRow("目的地能否使用")="是" Then
e.DataRow("需换钱否") = True
Else
e.DataRow("需换钱否") = False
End If
End Select

 回到顶部