老师,我把代码改了下,红色标注的是需要达到的结果,目前就是计划领用刀具这个表统计时有点分不清表达,被搅晕了(1、根据以下条件(蓝色),先在计划领用刀具表中查找是否有对应的刀具清单,如果有,再统计加工状态这一列是否有空值,没有空值,刀具状态则为已还刀,如果有空值,并且工序状态为进行中时,刀具状态则为进行中?2、另外一个就是根据蓝色字体的条件,先查找计划领用刀具表中查找是否有对应的清单,如果没有,则按刀具状态按要求显示;3、另外一个就是根据蓝色字体的条件,先查找计划领用刀具表中查找是否有对应的清单,如果有,按照加工状态统计中没有空值,则按刀具状态按要求显示;)。请帮忙看看,谢谢
If e.DataRow("刀具状态") <> "已还刀" AndAlso e.DataRow("使用设备") Like "*ZK*" Then
Dim Filter12 As String = "[成品编码] = '" & e.DataRow("成品编码") & "' and [加工工序] = '" & e.DataRow("加工工序") & "'and [使用设备] = '" & e.DataRow("使用设备") & "' and [生产批次] = '" & e.DataRow("生产批次") & "'"'
1、If DataTables("计划领用刀具").SQLCompute("count(加工状态)", Filter12) > 0 Then (解释:如果《计划领用刀具》的加工状态这列没有空值,那当前窗口表中的“刀具状态” = “已还刀”
e.DataRow("刀具状态") = "已还刀"
ElseIf DataTables("计划领用刀具").SQLCompute("count(加工状态)", Filter12) < 0 AndAlso e.DataRow("工序状态") = "进行中" Then(解释:如果《计划领用刀具》的加工状态这列有空值,并且当前窗口表中的工序状态列为”进行中“,那当前窗口表中的“刀具状态” = “进行中”
e.DataRow("刀具状态") = "进行中"
ElseIf e.DataRow("已排产数") <> 0 AndAlso e.DataRow("合格品") = 0 AndAlso DataTables("计划领用刀具").SQLCompute("count(加工状态)", Filter12) = Nothing Then(解释:如果《计划领用刀具》的没有对应的刀具明细,并且当前窗口表中的已排产数列不等于于零和合格品列等于0,那当前窗口表中的“刀具状态” = “待配刀”
e.DataRow("刀具状态") = "待配刀"
ElseIf e.DataRow("待加工数") = e.DataRow("计划数量") AndAlso DataTables("计划领用刀具").SQLCompute("count(加工状态)", Filter12) = Nothing Then
e.DataRow("刀具状态") = "未加工" (解释:如果《计划领用刀具》的没有这个批次的的相关刀具信息,并且当前窗口表中的待加工数等于计划数量,那当前窗口表中的“刀具状态” = “未加工”
ElseIf DataTables("计划领用刀具").SQLCompute("count(加工状态)", Filter12) < 0 AndAlso e.DataRow(" 工序状态") = "已完工" Then(解释:如果《计划领用刀具》的加工状态这列有空值,并且当前窗口表中的工序状态列为”已完工“,那当前窗口表中的“刀具状态” = “待还刀”
e.DataRow("刀具状态") = "待还刀"
End If
End If