|
发表于 11-11-2005 10:58 AM
|
显示全部楼层
原帖由 flashang 于 8-11-2005 07:38 PM 发表
如果你的 control source 是一個 table.field, 而 field type 是 float / number (n, m), 會自動只接受數字和小數點.
我是想在不设定几位小数点的前提下,所以应该怎样做? |
|
|
|
|
|
|
|
发表于 12-11-2005 02:49 AM
|
显示全部楼层
原帖由 tstan135 于 11-11-2005 10:58 AM 发表
我是想在不设定几位小数点的前提下,所以应该怎样做?
好奇怪的問法.
1. 如果你不確定你能接受幾位小數點, 你的計算, rounding , 儲存會有隱藏的問題
2. 如果不设定几位小数点, user 又如何知道該輸入甚麼? 限制是多少 ?
不如說說你想做些甚麼, 看看有沒有其他的解決的方法. |
|
|
|
|
|
|
|
发表于 13-11-2005 10:31 AM
|
显示全部楼层
原帖由 tstan135 于 11-11-2005 10:58 AM 发表
我是想在不设定几位小数点的前提下,所以应该怎样做?
自己动手写个solution吧, 不要老是靠VFP的功能
在user 输入时候, 用character的type, 然后在valid event 那里用做validation, 当user 输入的不是号码或者不是 "." , 就不能让它lost focus
当需要做calculation 时候, 再用val()把它转为numeric |
|
|
|
|
|
|
|
发表于 13-11-2005 11:55 AM
|
显示全部楼层
原帖由 weisely 于 13-11-2005 10:31 AM 发表
自己动手写个solution吧, 不要老是靠VFP的功能
在user 输入时候, 用character的type, 然后在valid event 那里用做validation, 当user 输入的不是号码或者不是 "." , 就不能让它lost focus
当 ...
這樣似乎很多餘...
直接硬性規定使用 9999999999.9999 不就可以了嗎 ?
難道你真的有那麼多位數的 整數 / 小數 ?? !! |
|
|
|
|
|
|
|
发表于 13-11-2005 12:51 PM
|
显示全部楼层
台湾的编程界历史,某软件开发商为某银行开发整套系统,因没设定好小数点而导致银行损失被告上法庭而败诉赔了很多钱。
我自己也曾因此小数点问题,导致用户诸多不便,幸好还可道歉了事。
尤其是发单 Billing 系统,
Quantity 2 位小数点 x Cost 2 位小数点 = Amount 4 位小数点
Amount 一定要 Round up 至 2 位小数点 才 sum total,不然有时 total 的数目不对。
还有一个是发薪 Payroll 也是。
所以我严重劝告 tstan135,吸取前人的教训。 |
|
|
|
|
|
|
|
发表于 14-11-2005 12:47 AM
|
显示全部楼层
就好比每样东西的 Cost 都不一样。有些是2位小数点,有些是3位小数点,有些是4位小数点。。。。。。
如果我们硬性规定 InputMask = 999999.9999 ,不是不可以,但显示出来的东西不就像:
2.0000
5.0000
8.9800
3.4500
4.5680
1.2457
通常我们都是以2位小数点来写价钱的,只有特别的情况下才会有2位以上的小数点。如果每个价钱都显示那么多小数点你们不会觉得怪怪的吗?
所以我是想在有必要时才显示2位以上的小数点(后面的0就不必显示了)。就像:
2.00
5.00
8.98
3.45
4.568
1.2457
其实我就是想过 weisely 的方法,但当要把character type 转为 numeric 时就有困难。因为我不知道那个是几位数,所以用 val() 就会自动进位,那样显示时和计算时就会出错。
至于白日梦,谢谢您的提醒!在计算 Total amount 时,我自然会把它定在2位小数点的啦。 |
|
|
|
|
|
|
|
发表于 14-11-2005 09:34 AM
|
显示全部楼层
我做过油棕园丘成本会计软件,老板及会计主任要求设定 cost 2 位小数点。
库存成本 stock item's average cost 则为 4 位小数点。
我还是强调那句∶
Amount 一定 Round up 为 2 位小数点才总结。 |
|
|
|
|
|
|
|
发表于 14-11-2005 02:15 PM
|
显示全部楼层
因为cost是由supplier给的,所以不是由我这一方说几位数就几位数的。
不过还是非常感谢白日梦的提醒。 |
|
|
|
|
|
|
|
发表于 15-11-2005 08:10 PM
|
显示全部楼层
tstan : 在val()之前, 先用set decimal to 应该就能解决应用val() 时不懂几位数的问题 |
|
|
|
|
|
|
|
发表于 17-11-2005 10:55 AM
|
显示全部楼层
原帖由 tstan135 于 14-11-2005 02:15 PM 发表
因为cost是由supplier给的,所以不是由我这一方说几位数就几位数的。
不过还是非常感谢白日梦的提醒。
会计主任同事教我一个方法,cost 是用公式计算出来的,没有 field,小数点的无尽的。
记录 stock movement (in & out) 资料库设计是如下,
ref c(10)
item c(6)
particular c(40)
qty n(10,2)
amt n(10,2) <- 不用 currency field,此举是为了防止相加总和时出错
当 stock in 情形下,
cost = iif(amt=0,0,amt/qty)
当 stock out 情形下,
! all figure must refer to same item and todate
average cost = (stock-in amt - stock-out amt) / (stock-in qty - stock-out qty)
处理库存时有两输入法则,一种是以 Billing 系统,另一种是 Stock Card 般。 |
|
|
|
|
|
|
|
发表于 17-11-2005 08:58 PM
|
显示全部楼层
原帖由 白日梦 于 17-11-2005 10:55 AM 发表
会计主任同事教我一个方法,cost 是用公式计算出来的,没有 field,小数点的无尽的。
记录 stock movement (in & out) 资料库设计是如下,
ref c(10)
item c(6)
particular c(40)
qty n(10,2)
amt ...
通常average cost 都是用这种method算出来的.
但是不是每一间公司都用average cost的吧, 有的用last purchased, 有的用Fixed Cost, 有的用FIFO. |
|
|
|
|
|
|
|
发表于 18-11-2005 11:36 AM
|
显示全部楼层
据 LCCI 教科书里算存货的成本有4种。
1. Average Cost
2. First In First Out (FIFO)
3. Last In First Out (LIFO)
4. Last Purchase Price
1,2 和 4 的方法我都用过。
对于买入价时常相差不大的通常都用 Average Cost,比如 Petrol 零售 1.58 ~ 1.68 之间,建议售价维持 1.70
编写会计软件时,我背后就有 2 个人支撑我有关会计各方面的知识及经验,一个是我太太,另一位是我同事也是会计主任。
编程时遇到瓶颈,我也是有一位前辈和我并肩作战突破困境,所以这么多贵人帮我什么难题都迎伐而解。 |
|
|
|
|
|
|
|
发表于 6-12-2005 02:02 AM
|
显示全部楼层
请问怎样才能从已经Set Filter 的资料中,直接再一次Set Filter 呢? |
|
|
|
|
|
|
|
发表于 6-12-2005 09:21 AM
|
显示全部楼层
SET FILTER TO
SET FILTER TO date < DATE()
lFilter1 = FILTER()
? lFilter1
lFilter1 = lFilter1 + " .and. date > CTOD('^2001/01/01')"
? lFilter1
SET FILTER TO &lFilter1
? FILTER() |
|
|
|
|
|
|
|
发表于 6-12-2005 03:22 PM
|
显示全部楼层
请问要如何才能更改 Messagebox 里的颜色? |
|
|
|
|
|
|
|
发表于 6-12-2005 06:44 PM
|
显示全部楼层
|
|
|
|
|
|
|
发表于 7-12-2005 01:34 PM
|
显示全部楼层
跟随视窗系统,只可以在 Desktop Properties -> Appearance Tab 里改。
VFP 里不能换 MessageBox 颜色,除了自制 Form。 |
|
|
|
|
|
|
|
发表于 7-12-2005 08:00 PM
|
显示全部楼层
是的, 要如何换wait window 的font 和background呢 ? 好象也不能够吧 |
|
|
|
|
|
|
|
发表于 7-12-2005 11:25 PM
|
显示全部楼层
原帖由 weisely 于 7-12-2005 08:00 PM 发表
是的, 要如何换wait window 的font 和background呢 ? 好象也不能够吧
多看看 help file 吧
DEFINE WINDOW win1 AT 1, 1 to 3, 80 FONT 'Arial', 10 STYLE 'BIU' COLOR GR+/B
ACTIVATE WINDOW WIN1
WAIT 'This is a test' |
|
|
|
|
|
|
|
发表于 8-12-2005 08:42 PM
|
显示全部楼层
原帖由 flashang 于 7-12-2005 11:25 PM 发表
多看看 help file 吧
DEFINE WINDOW win1 AT 1, 1 to 3, 80 FONT 'Arial', 10 STYLE 'BIU' COLOR GR+/B
ACTIVATE WINDOW WIN1
WAIT 'This is a test'
这个方法有用过, 可是就是嫌那个win1 的window框框太难看了.
如果wait window 的message是个variable, 就不知道 win1 应该有多长, 才能够和message 的长度配合
我很喜欢在Loading 报表的时候, 用wait window 来告诉用户系统正在处理那一条record. |
|
|
|
|
|
|
| |
本周最热论坛帖子
|