以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.com/bbs/index.asp)
--  专家坐堂  (http://foxtable.com/bbs/list.asp?boardid=2)
----  [求助] 数值比较问题  (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=90240)

--  作者:wumingrong1
--  发布时间:2016/9/8 11:13:00
--  [求助] 数值比较问题

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

在 DataColChanged 中写有以下命令:

If e.DataCol.Name = "工单处理时限" Or e.DataCol.Name = "工单处理时长" Or e.DataCol.Name = "工单申请延期"   Then \'如果更改的是 ***列 和 ***列   
If e.DataRow("工单申请延期") = "已申请延期" Then

   e.DataRow("工单是否超时") = "工单已申请延期"
Else
If e.DataRow("工单申请延期") = "未申请延期"  Then

If e.DataRow("工单处理时长") > e.DataRow("工单处理时限") Then

   e.DataRow("工单是否超时") = "工单处理已超时"
Else

If e.DataRow("工单处理时长") <= e.DataRow("工单处理时限") Then

   e.DataRow("工单是否超时") = "工单处理未超时"

End If
End If
End If
End If
End If


--  作者:有点蓝
--  发布时间:2016/9/8 11:29:00
--  
把列类型改为整型。字符比较是按位比较的


--  作者:wumingrong1
--  发布时间:2016/9/8 11:45:00
--  

【列表项目4】为字符型、【工单处理时限】为{双精度小数型}拓展类型为{时段};该怎么修改以下命令才能将【字符型】转换成【时段型】

 

Dim dr2 As DataRow
If e.DataCol.Name = "业务类型" Or e.DataCol.Name = "电路级别" Or e.DataCol.Name = "业务保障级别" Or e.DataCol.Name = "业务是否全阻"  Then 

  dr2 = DataTables("移动线路室列表项目表").Find("[表名] = \'集客故障工单处理表\' And [列名] = \'工单处理时限\'  And [列表项目1] = \'" & e.DataRow("电路级别") & "\'  and [列表项目2] = \'" & e.DataRow("业务保障级别") & "\'  and [列表项目3] = \'" & e.DataRow("业务是否全阻") & "\' ")
    If dr2 IsNot Nothing Then \'如果找到了同名的产品行,也就是dr不是Nothing
        e.DataRow("工单处理时限") = dr2("列表项目4")
    Else
        e.DataRow("工单处理时限") = ""
     
    End If
End If

[此贴子已经被作者于2016/9/8 11:45:31编辑过]

--  作者:有点蓝
--  发布时间:2016/9/8 14:22:00
--  
参考:http://www.foxtable.com/webhelp/scr/1513.htm
--  作者:wumingrong1
--  发布时间:2016/9/15 15:33:00
--  

以下命令中【通知提醒时间】【通知代维单位时间】为日期时间型、【列表项目3】为字符型(值格式为:3600);

 

 Dim dr2 As DataRow
 dr2 = DataTables("惠州多项列表项目表").Find("[表名] = \'抢修整治迁改表\' And [列名] = \'申请区域\'  And [列表项目1] = \'" & e.DataRow("申请区域") & "\'  ")
 If dr2 IsNot Nothing Then 

 dr("通知提醒时间") = dr("通知代维单位时间") + dr2("列表项目3")

 Else
 dr("通知提醒时间") = Nothing

end if

 

执行结果弹出错误提示:

 

.NET Framework 版本:2.0.50727.5485
Foxtable 版本:2016.7.29.1
错误所在事件:表,抢修整治迁改表,DataColChanged
详细错误信息:
调用的目标发生了异常。
从字符串“2016/9/15 15:31:003000”到类型“Date”的转换无效。

[此贴子已经被作者于2016/9/15 15:34:50编辑过]

--  作者:狐狸爸爸
--  发布时间:2016/9/15 17:47:00
--  

3600分钟?
3600秒?
 
Dim dr2 As DataRow
dr2 = DataTables("惠州多项列表项目表").Find("[表名] = \'抢修整治迁改表\' And [列名] = \'申请区域\'  And [列表项目1] = \'" & e.DataRow("申请区域") & "\'  ")
If dr2 IsNot Nothing Then       
    dr("通知提醒时间") = dr("通知代维单位时间").AddSeconds(dr2("列表项目3"))
Else
    dr("通知提醒时间") = Nothing
end if

参考:
 
http://www.foxtable.com/webhelp/scr/1337.htm


 

[此贴子已经被作者于2016/9/15 17:49:31编辑过]

--  作者:wumingrong1
--  发布时间:2016/9/15 19:07:00
--  

如果【列表项目2】=3000秒、那么3000/3600= 0.833333;如果我想把0.83333转换成50分钟、该怎么处理?

 

If e.Form.Controls("列表项目2").Text <> "" Then
e.Form.Controls("TextBox1").Text = e.Form.Controls("列表项目2").Text /3600
Else
e.Form.Controls("TextBox1").Text =""
End If


--  作者:狐狸爸爸
--  发布时间:2016/9/15 19:57:00
--  
一分钟是60秒。
 
3000/60 = 50

--  作者:ljh29206
--  发布时间:2016/9/15 20:08:00
--  
狐爸 不用过中秋哇 , 晚上8点 还在值班! ,太敬业了!
[此贴子已经被作者于2016/9/15 20:08:42编辑过]

--  作者:wumingrong1
--  发布时间:2016/11/30 15:18:00
--  

 

我想做一个比对按钮;功能是:同一个表中【日期】列【2016-11-15】的数据与【2016-11-10】的数据中的【名称】列进行比较、如果相同就在【是否存量】列标“是”、否则就标“否”。我的按钮命令该怎么写?

 

日期                       名称           是否存量

 

2016-11-10             A

2016-11-10             B

2016-11-10             C

 

2016-11-15             A                   

2016-11-15             B             

2016-11-15             D             

[此贴子已经被作者于2016/11/30 15:24:52编辑过]