佳礼资讯网

 找回密码
 注册

ADVERTISEMENT

楼主: maybird_2

Visual FoxPro 的疑难杂症

[复制链接]
发表于 11-11-2005 10:58 AM | 显示全部楼层
原帖由 flashang 于 8-11-2005 07:38 PM 发表


如果你的 control source 是一個 table.field, 而 field type 是 float / number (n, m), 會自動只接受數字和小數點.

我是想在不设定几位小数点的前提下,所以应该怎样做?
回复

使用道具 举报


ADVERTISEMENT

发表于 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位小数点的啦。
回复

使用道具 举报

Follow Us
发表于 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给的,所以不是由我这一方说几位数就几位数的。
不过还是非常感谢白日梦的提醒。
回复

使用道具 举报


ADVERTISEMENT

发表于 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 | 显示全部楼层

应该没得改的吧!
回复

使用道具 举报


ADVERTISEMENT

发表于 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.
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

 

ADVERTISEMENT



ADVERTISEMENT



ADVERTISEMENT

ADVERTISEMENT


版权所有 © 1996-2023 Cari Internet Sdn Bhd (483575-W)|IPSERVERONE 提供云主机|广告刊登|关于我们|私隐权|免控|投诉|联络|脸书|佳礼资讯网

GMT+8, 20-10-2024 03:09 AM , Processed in 0.107888 second(s), 19 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表