以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  请教代码  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=24137)

--  作者:szp2012
--  发布时间:2012/10/4 16:20:00
--  请教代码

请教代码:

 

Dim drs As List(Of DataRow)

drs = e.DataTable.Select(" e.DataRow.IsNull  = True And [销售数量] > 0 ")

Dim dr As DataRow

 

Dim dr1 As DataRow

dr1 = DataTables("上月应收").Find("经手人= \'" & dr1("业务员") & "\'")

  Dim p As Double =  dr1("本月平均运费")

  dr1("平均运费")= p

 For Each dr In drs

Dim q As Double = dr("销售毛利")/ dr("销售数量") - 60

Dim h As Double = dr("销售毛利")/ dr("销售数量") - 60 -p

If dr("销售毛利") > 0  Then

    If dr("销售类型") = "自提" Then

      If q > 1  Then

        dr("毛利") = q*dr("销售数量")*4/1000

      Else q < = 1  Then

        dr("毛利")= dr("销售数量")*1

      End If

    Else dr("销售类型") = "送货" Then

      If h> 1  Then

        dr("毛利") = h*dr("销售数量")*4/1000

      Else  dr("销售毛利")/dr("销售数量")-60-p<= 0  Then

      dr("毛利")= dr("销售数量")

      End If

 

     

    End If

Else  dr("销售毛利") < = 0  Then

 

   dr("毛利")= dr("销售数量")

 

End If

Next

见附件销售表中datacolchanged事件中,总是显示出错,请指正

销售表导入后,自动算出每行业务员毛利(即每吨提成,销售表中“毛利”列)

1.“冲销单号”列有数字或“销售数量”列为负数的行是退货和单据冲销,不予计算

2."销售毛利"列为负数,即亏损,直接按每吨1元计入“毛利”列   毛利= 销售数量*1

3.“销售毛利列”为正数分:(吨毛利=销售毛利/销售数量-60-P(注意,销售类型为自提,p=0,销售类型为送货,P为每个业务员当月平均吨运费,运费金额/运输重量(运费表有明细))分下列情况

 

1)“销售类型”列 “自提”  

 

   1))销售毛利/销售数量-60(注:每吨60元固定费用)>1 时    毛利=吨毛利*销售数量*4/100

 

2))   销售毛利/销售数量-60(注:每吨60元固定费用)<=1 时 毛利=销售数量*1

2)“销售类型”列 “送货” 

  1))销售毛利/销售数量-60-p(注:每吨60元固定费用)>1 时    毛利=吨毛利*销售数量*4/100

 

2))   销售毛利/销售数量-60-p(注:每吨60元固定费用)<=1 时 毛利=销售数量*1


 

 下载信息  [文件大小:   下载次数: ]
点击浏览该文件:管理项目4.zip

[此贴子已经被作者于2012-10-4 17:16:55编辑过]

--  作者:y2287958
--  发布时间:2012/10/4 16:33:00
--  
不好意思,俺生性愚昧,未看懂您的意思。
--  作者:szp2012
--  发布时间:2012/10/4 17:13:00
--  

 

[此贴子已经被作者于2012-10-4 17:17:18编辑过]

--  作者:y2287958
--  发布时间:2012/10/4 19:42:00
--  
这个用表达式就可以的
不必要用代码的

--  作者:czy
--  发布时间:2012/10/4 19:50:00
--  

一楼代码问题太多了,e.DataRow.IsNull  = True,这里应该要判断具体的字段

Else q < = 1  Then应该是ElseIf q < = 1  Then


--  作者:szp2012
--  发布时间:2012/10/4 20:46:00
--  

按上述改过,还是不行,窗口销售按钮导入,出现

 

Exception has been thrown by the target of an invocation.

 

 

.NET Framework 版本:2.0.50727.42
Foxtable 版本:2012.9.27.1
错误所在事件:表,销售,DataColChanged
详细错误信息:
System.Reflection.TargetInvocationException: Exception has been thrown by the target of an invocation. ---> System.NullReferenceException: Object reference not set to an instance of an object.
   at UserCode.DataColChanged(DataColEventArgs e)
   --- End of inner exception stack trace ---
   at System.RuntimeMethodHandle._InvokeMethodFast(Object target, Object[] arguments, SignatureStruct& sig, MethodAttributes methodAttributes, RuntimeTypeHandle typeOwner)
   at System.RuntimeMethodHandle.InvokeMethodFast(Object target, Object[] arguments, Signature sig, MethodAttributes methodAttributes, RuntimeTypeHandle typeOwner)
   at System.Reflection.RuntimeMethodInfo.Invoke(Object obj, BindingFlags invokeAttr, Binder binder, Object[] parameters, CultureInfo culture, Boolean skipVisibilityChecks)
   at System.Reflection.RuntimeMethodInfo.Invoke(Object obj, BindingFlags invokeAttr, Binder binder, Object[] parameters, CultureInfo culture)
   at Foxtable.DataTable.Oll0OOOO0lO0ll1l0Ol010O1(Object O001O1, DataColumnChangeEventArgs O)


--  作者:szp2012
--  发布时间:2012/10/5 12:55:00
--  

解决

[此贴子已经被作者于2012-10-5 13:01:36编辑过]