以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  [求助]代码有问题,请帮助  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=53991)

--  作者:utcxray
--  发布时间:2014/7/19 15:24:00
--  [求助]代码有问题,请帮助
代码有问题,请帮助

以下代码实现采购单价的统一性。

If e.DataCol.Name = "型号" Then \'如果内容发生变动的是型号
    If e.NewValue Is Nothing Then \'如果新值是空白,也就是型号列的内容为空
        e.DataRow("
单价") = Nothing \'那么清空此行单价列的内容
   
Else
        Dim
dr As DataRow
       
\'
否则在采购明细表查找同名的产品行,将找到的行赋值给变量dr
        dr = DataTables("
采购明细").Find("[型号] = \'" & e.NewValue & "\'")
        If
dr IsNot Nothing Then \'
如果找到了同名的产品行,也就是dr不是Nothing
            e.DataRow("
单价") = dr("单价")
        End
If
    End
If
End
If

‘以下代码实现如有价格变动,确保系统能正确区分同一产品不同时期的价格差异,并提示用户确认。

If e.Col.Name = "单价" Then \'如果正在输入的是单价列

    If e.Text > "" Then \'如果已经输入内容

        Dim v As Double = Val(e.Text)

        If v < > dr("单价")  Then \'将输入的内容与以往同名产品价格做比较。

            MessageBox.Show("此价格与历往价格有差异,确定要修改,请在价格较低的型号后加“特价”两字,否则系统将无法区分!", "警告", MessageBoxButtons.OK, MessageBoxIcon.Information)

            e.Cancel = True \'则取消输入

Dim wz As Integer
Dim
dr As DataRow
dr = DataTables("
采购明细表").Find("[型号] = \'" & e.Table.Current("型号") & "\'")
If
dr IsNot Nothing Then
    wz = Tables("
型号").FindRow(dr)
    If wz >= 0 Then
        Tables
("
型号").Position = wz
    End If
End
If

 

..       End If

    End If

End If



 


--  作者:utcxray
--  发布时间:2014/7/19 17:24:00
--  
请高手指点,急
--  作者:pyh6918
--  发布时间:2014/7/19 22:03:00
--  

e.Text

好象没这个E参数


--  作者:有点甜
--  发布时间:2014/7/20 9:51:00
--  
 代码提示什么错?具体什么问题?请用例子说明。
--  作者:utcxray
--  发布时间:2014/7/21 9:34:00
--  
如图
图片点击可在新窗口打开查看此主题相关图片如下:未命名.jpg
图片点击可在新窗口打开查看

--  作者:Bin
--  发布时间:2014/7/21 9:35:00
--  
只要在DrawCell事件才有e.text

你要判断的是 e.newValue

--  作者:有点甜
--  发布时间:2014/7/21 9:36:00
--  

If e.Text > "" Then \'如果已经输入内容

改成

If e.DataRow.IsNull("单价") = False Then


--  作者:utcxray
--  发布时间:2014/7/21 9:38:00
--  
不好意思,因是周末,大家都忙,我急也忘了贴图
--  作者:utcxray
--  发布时间:2014/7/21 9:44:00
--  
谢谢,有点甜,我的意思是如果输入型号,则单价从采购明细表中查找填入,保持单价的一致性,但如果我要修改单价,就要判断修改后的单价与系统中原有的价格是否一致。你能将此语句给我吗
--  作者:有点甜
--  发布时间:2014/7/21 9:50:00
--  

下面代码写到Datacolchanging事件

 

If e.DataCol.Name = "单价" Then \'如果正在输入的是单价列
    If e.newvalue IsNot Nothing Then \'如果已经输入内容

        Dim dr As DataRow = DataTables("采购明细").Find("[型号] = \'" & e.Datarow("型号") & "\'")
        Dim v As Double = Val(e.newValue)
        If v <> dr("单价")  Then \'将输入的内容与以往同名产品价格做比较.
            MessageBox.Show("此价格与历往价格有差异,确定要修改,请在价格较低的型号后加"特价"两字,否则系统将无法区分!", "警告", MessageBoxButtons.OK, MessageBoxIcon.Information)           
            e.Cancel = True \'则取消输入
        End If
    End If
End If

[此贴子已经被作者于2014-7-21 9:49:55编辑过]