Rss & SiteMap

Foxtable(狐表) http://www.foxtable.com

新一代数据库软件,完美融合Access、Foxpro、Excel、vb.net之优势,人人都能掌握的快速软件开发工具!
共10 条记录, 每页显示 10 条, 页签: [1]
[浏览完整版]

标题:[求助]易表的单元格公式在狐表中如何转换?

1楼
t_fs 发表于:2008/12/2 14:38:00
     正式版出炉在即,我在考虑原来用易表开发系统如何向狐表转化及转化的工作难度。现有一个问题即原易表中用单元格公式实现的计算,在狐表中如何变通的问题?请高手帮助一下,看看能否用狐表实现?其难易程度如何?谢谢了!
     
    说明:先求(一)原材料小计       (等于编号从06加到16的金额数值)
                  (二)车间费用小计    (等于编号从19加到21的金额数值)
           后计算(三)铸钢件成本         (等于编号05加上18的金额数值)  

详见下面的抓图:

图片点击可在新窗口打开查看此主题相关图片如下:tt截图.bmp
图片点击可在新窗口打开查看
2楼
狐狸爸爸 发表于:2008/12/2 15:02:00
tables("表名").Rows(x)("列名") = 值。
3楼
ybil 发表于:2008/12/2 15:29:00

'''
if e.datacol.name = "金额" then
            dim sum1,sum2 as Double
            dim dt as DataTable = e.DataTable
            dim dr1,dr2,dr3 as DataRow
            dr1= dt.Find("[编号]= '03'")
            dr2= dt.Find("[编号]= '05'")
            dr3= dt.Find("[编号]= '18'")

            sum1 = dt .Compute("Sum(金额)","[编号] In('06','07','08','09','10','11','12','13','14','15','16')")
            sum2 = dt .Compute("Sum(金额)","[编号] In('19','20','21')")
 
            dr1("金额") = sum1+sum2
            dr2("金额") = sum1
            dr3("金额") = sum2
End if

4楼
狐狸爸爸 发表于:2008/12/2 15:32:00

呵呵,点将,In如果改为between,可能会更简洁。

5楼
ybil 发表于:2008/12/2 15:34:00
以下是引用狐狸爸爸在2008-12-2 15:32:00的发言:

呵呵,点将,In如果改为between,可能会更简洁。

哦,谢谢指点

6楼
狐狸爸爸 发表于:2008/12/2 15:37:00
以下是引用ybil在2008-12-2 15:34:00的发言:

哦,谢谢指点


惭愧,是我搞错了,表达式不支持Between.

我脑子里出现的是SQL语句的语法。
图片点击可在新窗口打开查看

7楼
t_fs 发表于:2008/12/2 16:04:00
     狐爸未明白我的意思。
     具体算法是在狐表中金额定位是通过编码来指定的。其算法我已基本测试成功,如下:(假设编号为数值型)

Dim Sum As Double  =  DataTables("表A").Compute("Sum(金额)","[编号] >= 6 and [编号] <= 16" )
tables("表A").Rows(1)("金额") = sum
Dim Sum1 As Double  =  DataTables("表A").Compute("Sum(金额)","[编号] >=19 and [编号] <=21" )
tables("表A").Rows(12)("金额") = sum1
tables("表A").Rows(0)("金额") = sum+sum1

    我现在想问题一下,如将金额值的写入也改成按编号定位,即将下列三行代码:
tables("表A").Rows(1)("金额") = sum               ‘改成编码=5 定位后再写入金额值
tables("表A").Rows(12)("金额") = sum1           ‘改成编码=18定位后再写入金额值
tables("表A").Rows(0)("金额") = sum+sum1     ‘改成编码=3定位后再写入金额值

   即这三行不用行数指定,而编码来指定写入位置应如何写呢?即假定不论行数如何变化,只要编码不变,公式即永远成立!即把rows()中的1、12、0换成编码=5、18、3.

   谢谢!

8楼
t_fs 发表于:2008/12/2 16:19:00
    谢谢! Ybil已经解决了这个问题! 如果编码列改成数值型的话,用

Dim Sum As Double  =  DataTables("表A").Compute("Sum(金额)","[编号] >= 6 and [编号] <= 16" )

还是比较简单的。若是字符型的话

Dim Sum As Double  =  DataTables("表A").Compute("Sum(金额)","[编号] >= '06'  and [编号] <= '16' " )

好象也是正确的吧?
 
    学会了用  dr1= dt.Find("[编号]= '03'")    dr1("金额") = sum1+sum2    这二个组合经常用得到!
9楼
狐狸爸爸 发表于:2008/12/2 16:34:00

呵呵,帮助中有啊

10楼
hbfnmxb 发表于:2008/12/4 7:55:00
不错,学习了。
共10 条记录, 每页显示 10 条, 页签: [1]

Copyright © 2000 - 2018 foxtable.com Tel: 4000-810-820 粤ICP备11091905号

Powered By Dvbbs Version 8.3.0
Processed in .03516 s, 2 queries.