Foxtable(狐表)用户栏目专家坐堂 → 航线判断问题


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

主题:航线判断问题

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


加好友 发短信
等级:幼狐 帖子:71 积分:757 威望:0 精华:0 注册:2017/5/31 20:05:00
航线判断问题  发帖心情 Post By:2017/9/1 22:02:00 [只看该作者]

请老师注意,因为本论坛过滤的词汇包含“过.夜”(中间没“.”)所以所有涉及该词的,中间都加了个“.”

 

根据控件“航段”的数据来判断从“航点表”中提取航班的特点判断:“过.夜”和“国际”

航点表如下

 


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

窗口设计如下: 

 


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

运行后如下:

 

需要达到的要求:

1自动识别是否是国际航班,如果是自动勾选国际,并将通往城市自动填入“国际名”的文本框中。

判定方式将“航段”文本框中的每一个字分开,分别对照“航点表”中简称,根据简称识别“国际”字段是否为“true”如果为“true”,则为国际(勾选国际),并将“航点表”中“城市”字段的内容填入“国际名”的文本框中。

2自动识别是否是过.夜航班,如果是自动勾选“过.夜”并将过.夜城市自动填入“过.夜名”的文本框中

判定方式:将“航段”文本框中的最后一个字(即右边第一个字)提取,对照“航点表”中简称查询,“过.夜”字段是否为“true”,如果是则为过.夜航班(勾选过.夜),并将“航点表”中“城市”字段的内容填入“过.夜名”的文本框中。

3国际和过.夜同时判断。

 

目前该窗口中“afterload”事件有如下代码:

Dim r As Row  = Tables("出库窗口_航班查询表").current
Dim aqy As WinForm.ComboBox = Forms("出库窗口").Controls("安全员")

e.form.controls("日期").value = r("日期")
e.form.controls("航班号").value = r("航班号")
e.form.controls("航段").value = r("航段") '航段字段获取
e.form.controls("预达时间").value = r("降落")
e.Form.Controls("领取人").value = aqy.Value

Dim lyr As WinForm.TextBox = e.Form.Controls("领取人")
Dim hz As DataRow = DataTables("护照").find("姓名='" & lyr.Value & "'")
If hz IsNot Nothing Then
     e.form.controls("护照号发").text = hz("护照号")
End If

Dim hps As DataRow = DataTables("红皮书").find("姓名='" & lyr.Value & "'")
If hps IsNot Nothing Then
     e.form.controls("红皮书发").text = hps("有效期")
End If

Dim ps As DataRow = DataTables("黄皮书").find("姓名='" & lyr.Value & "'")
If ps IsNot Nothing Then
     e.form.controls("黄皮书发").text = ps("有效期")
End If

 

 

请问如何增加。。如有改动,请老师予以标红。。。

 

[此贴子已经被作者于2017/9/1 22:26:49编辑过]

 回到顶部
帅哥,在线噢!
有点蓝
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:111414 积分:567146 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2017/9/1 22:34:00 [只看该作者]

请上传实例测试

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


加好友 发短信
等级:幼狐 帖子:71 积分:757 威望:0 精华:0 注册:2017/5/31 20:05:00
  发帖心情 Post By:2017/9/1 22:42:00 [只看该作者]

 

[此贴子已经被作者于2017/9/1 23:23:27编辑过]

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


加好友 发短信
等级:幼狐 帖子:71 积分:757 威望:0 精华:0 注册:2017/5/31 20:05:00
  发帖心情 Post By:2017/9/1 22:43:00 [只看该作者]

已经上传,,
以下是引用有点蓝在2017/9/1 22:34:00的发言:
请上传实例测试


 回到顶部
帅哥,在线噢!
有点蓝
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:111414 积分:567146 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2017/9/1 22:59:00 [只看该作者]

参考:

Dim str As String = "郑晋郑春郑" 'r("航段")
Dim lst As new List(of String)
For i  As Integer = 0 To str.Length - 1
    If lst.Contains(str(i)) = False Then lst.Add(str(i))
Next

Dim cbostring As String = DataTables("航点表").GetComboListString("城市","简称 in ('" & String.Join("','",lst.ToArray) & "') and 国际 = true")
If cbostring > "" Then
    e.form.controls("国际").Checked = True
    e.form.controls("国际名").Text = cbostring 
End If

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


加好友 发短信
等级:幼狐 帖子:71 积分:757 威望:0 精华:0 注册:2017/5/31 20:05:00
  发帖心情 Post By:2017/9/1 23:05:00 [只看该作者]

老师,代码写在哪里?
afterload么?
 
还有代码,有些看不懂,能否注释一下。。???
以下是引用有点蓝在2017/9/1 22:59:00的发言:
参考:

Dim str As String = "郑晋郑春郑" 'r("航段")
Dim lst As new List(of String)
For i  As Integer = 0 To str.Length - 1
    If lst.Contains(str(i)) = False Then lst.Add(str(i))
Next

Dim cbostring As String = DataTables("航点表").GetComboListString("城市","简称 in ('" & String.Join("','",lst.ToArray) & "') and 国际 = true")
If cbostring > "" Then
    e.form.controls("国际").Checked = True
    e.form.controls("国际名").Text = cbostring 
End If


 回到顶部
帅哥,在线噢!
有点蓝
  7楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:111414 积分:567146 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2017/9/1 23:12:00 [只看该作者]

afterload,或者航段控件赋值后

Dim str As String = r("航段")
Dim lst As new List(of String)
For i  As Integer = 0 To str.Length - 1
    If lst.Contains(str(i)) = False Then lst.Add(str(i)) ‘城市简称拆分到集合’
Next
msgbox("简称 in ('" & String.Join("','",lst.ToArray) & "') and 国际 = true") 弹出内容自己看效果
Dim cbostring As String = DataTables("航点表").GetComboListString("城市","简称 in ('" & String.Join("','",lst.ToArray) & "') and 国际 = true")
If cbostring > "" Then
msgbox(cbostring)
    e.form.controls("国际").Checked = True
    e.form.controls("国际名").Text = cbostring 
End If







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


加好友 发短信
等级:幼狐 帖子:71 积分:757 威望:0 精华:0 注册:2017/5/31 20:05:00
  发帖心情 Post By:2017/9/2 23:28:00 [只看该作者]

老师,这个是国际航班判定的。
请问老师过.夜的该怎么判定呢?
以下是引用有点蓝在2017/9/1 23:12:00的发言:
afterload,或者航段控件赋值后

Dim str As String = r("航段")
Dim lst As new List(of String)
For i  As Integer = 0 To str.Length - 1
    If lst.Contains(str(i)) = False Then lst.Add(str(i)) ‘城市简称拆分到集合’
Next
msgbox("简称 in ('" & String.Join("','",lst.ToArray) & "') and 国际 = true") 弹出内容自己看效果
Dim cbostring As String = DataTables("航点表").GetComboListString("城市","简称 in ('" & String.Join("','",lst.ToArray) & "') and 国际 = true")
If cbostring > "" Then
msgbox(cbostring)
    e.form.controls("国际").Checked = True
    e.form.controls("国际名").Text = cbostring 
End If







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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2017/9/3 11:59:00 [只看该作者]

同样这样查,如

 

Dim abc As String = DataTables("航点表").GetComboListString("城市","简称 in ('" & String.Join("','",lst.ToArray) & "') and 过.夜 = true")


 回到顶部