有关开发我的进销存应用的一系列问题?可能需要较长时间!但分数可观!(200分)

G

gwbasic

Unregistered / Unconfirmed
GUEST, unregistred user!
对于 pmis_2000 谈到的问题,
我很赞成oceanwave的意见,用户是不可能打开一张几千条记录的表单进行查看,
所以在一些数据的查询中,我总是把查询的结果控制在小于100条数据,
如果找不到,让他重新修改条件,因为你不太可能手动去查找上千条的记录
 
G

gwbasic

Unregistered / Unconfirmed
GUEST, unregistred user!
对于表单的合并,我也不太赞成,除非这两张表单的结构在以后也保证是一成不变的,
否则修改起来就相当困难,
所以一类表单,还是用一个数据表表示
 
P

pmis_2000

Unregistered / Unconfirmed
GUEST, unregistred user!
对于oceanwave,gwbasic的意见我也赞同,但是从李维的多层次开发的那本书中有过一个
例子,可以对大数据集进行查询,但是我一个客户他要求这样做呢?,
并且在他的基本资料表中有4万多笔资料,他要查询其中的一笔,我应怎么做呢??

谢谢!!,请兄弟们的指导!!!!
 
G

gwbasic

Unregistered / Unconfirmed
GUEST, unregistred user!
4万条数据,他要找一记录,用SQL语句查询,
Select **** from *** where ****
让用户填上条件,如果结果大于100条,只传回100条,并且告诉用户可能还有数据,
让他修正条件,再去查询,如果你一下子返回4万条,那么,速度肯定会很慢,如果多用户
同时查询,那是不同容忍的,所以我做的查询,全部用SQL查询做,因为他是在服务器上
完成的,传送的只是查询的结果,速度会比较快
 
P

pmis_2000

Unregistered / Unconfirmed
GUEST, unregistred user!
但是,他要先让所有的资料示在DBGRID中啊,然后再通过查询在DBGRID中定位此记录。
 
G

gwbasic

Unregistered / Unconfirmed
GUEST, unregistred user!
干嘛非要在DBGrid中显示呢?4万条记录,用户能看完吗,放在里面还不是浪费资源,
还有就是定位,我从来就没用过,因为采用就一功能,就必须传回所有数据,速度太慢

但如果对于1千条以下的记录,还是可以的,但是4万条,绝对不行,只能用TQuery查询
除非这个数据库就在本地,就一个用户使用
 
G

gwbasic

Unregistered / Unconfirmed
GUEST, unregistred user!
关于现金流和物流,由于一开始没设计到,所以是完全分开的,
但渐渐的认为这是很合理的,
如果有一张进货单,入库了,那么要付款,
就由采购人员开出一张请款单,请款单上抓出进货单上的原料,数量,采购单价等,
再填上实际付款的金额.完成请款,
过帐时,在进货单上做记号,下次请款的时候就无法再抓到数据,不再重复请款
并且同时产生财务上使用的记帐凭证等,然后再由财务主管签字,流入出纳,
再去付款,(现在就是在做这一部分,由于没学过会计,所以对于一些流程,还是相当模糊的)
如果谁做过这方面的系统,请多多请教,如果有空,我会将这些流程贴出来,让大家一起讨论,
同时向各位讨教,
 
G

gwbasic

Unregistered / Unconfirmed
GUEST, unregistred user!
oceanwave说得真是很精彩
流程图我也看了,画的很详细,一般的进销存,如果做到这样,已经很不错了.
我用过的管家婆,比这些差多了.
我也在做进销存,单位里用的是VB,自已在家里用delphi,
单位里的现在已经做基本做到了物流的管理,跟oceanwave画的差不多,
现在在做现金的,涉及到许多财务上的知识,感觉比物流繁多了,
而且一开始设计时也没考虑到要做财务,所以,修改的地方很多.
单位里的进销存还是使用了库存明细表,因为关系到库存的表单很多,
并且数据量也很大,如果靠查询,会显得速度很慢,并且要考虑到每张表的进出,
至于库存的异动,一般在是在单据过帐时,如果在每张单据保存时,很容易数据出错.
还有为了保证数据的正确性,同样也做了一个功能,根据单据上查询出来的数据,
与库存明细表做比较,如果出错,及时更正.一开始,系统建立时的错误还是很多的,
现在已经没有了.

我很希望大家能和我联系,我认为进销存是单据电脑化管理的第一步,
Mrp,Erp才是我们的最终目标.
gwbasic@eastday.com

 
O

oceanwave

Unregistered / Unconfirmed
GUEST, unregistred user!
首先要说明的是,我所说的“物资流”和“现金流”,并不在严格的财务范畴内,但与
财务密切相关,主要是向财务提供数据及报表。加入严格的财务内容是进一步的事情。
现在讲的主要是业务范围和库管范围,而客户与企业的物、钱来往都通过业务范畴与仓库
和财务(主要是企业的资金模块)相互作用,而形成物与钱的来往账。
俗话说得好“磨刀不误砍柴功”,在进入代码编写阶段之前,首先要对整个流程有清晰的认
识,因为业务流程与数据库的设计是息息相关的,不然的话,到后面发现流程理解有问题,
要去改库的话,那就够你痛苦的了。
to pmis_2000:
一般象这种情况,我会去说服客户,也都会成功,因为他实在没有理由可以一次性看完这
几万条记录。并且影响他的使用
 
G

gwbasic

Unregistered / Unconfirmed
GUEST, unregistred user!
关于DataSet是动态建立,还是设计时就建好,
如果你用的是数据敏感控件,在设计时建好比较容易一点,我现在也是这么做的,
但是一些查询,全部是共享二三个TQuery的,这样做的话,速度应该还是可以的,
(数量控制在三四十个)

还有就是不用数据敏感控件,有许多人都不赞成使用数据敏感控件,
有时候,用数据敏感控件,真的很不容易控制,我也多次想放弃,但还是坚持下来了,
毕竟这样做,编程的效率高多了,如果是这样的话,我想当然动态建立就可以了,
在VB里,我全部是手动控制,没采用数据敏感控件,因为VB里的数据敏感控件根本就是不好使
 
G

gwbasic

Unregistered / Unconfirmed
GUEST, unregistred user!
oceanwave,你好,我想问一下你是否采用了数据敏感控件,用于一般的编辑框,是比较容易控制,
对于表格,真的很困难,
还有你一般做进销存,像你的流程图一样的系统,你有没有采用三层,
你用的数据库是什么,是BDE,还是ADO,

我正尝试使用三层,数据库用Interbase,因为我认为对于小企业,已经够了,
但VB中我采用的是SQL Server,SQL Server的确还不错,但Interbase是免费的,
对于一个小的进销存系统,这点很重要,
还有我没用到数据库中的过程,触发器等,因为我认为这样做,对于数据库的移植比较容易
不知你怎么认为,
谢谢
 
O

oceanwave

Unregistered / Unconfirmed
GUEST, unregistred user!
to gwbasic:
我用了,我用的是BDE,原来想用ADO,但ADO枝枝节节的问题,让我屡次放弃。BDE相对稳定
许多。
我一直是做本地的,因为小企业并不需要三层结构,只有中型以上的企业才有这种必要。
当然VB用SQL SERVER最好了,都是M$的东东嘛!
关于用哪种数据库,我想最重要的是你对哪种数据库比较熟悉,当然这种数据库起码要达
到要求。不要频繁地考虑更换数据库。
综上所述,开发商业软件要考虑成本及效率问题,使用的方法、内容与工具都以最适合企业
需要为准(当然也要考虑可升级性)。一个只有三四台机器使用,对数据的访问并不巨大的
软件,就没必要用三层。一方面,收的钱不多,另一方面,设计和维护的工作量大得多。
至于存储过程,我建议在数据量大的时候还是用它,毕竟它的执行效率要高得多,
而触发器,我倒用的少一点儿,我宁可在程序中写代码。
反正啦,我对投入产出比较在意,收多少钱做多少事,呵呵
 
Z

zheng

Unregistered / Unconfirmed
GUEST, unregistred user!
to oceanwave:
好像没有回答我的问题:
>难道用:
> Select Sum(进货单.商品数量),Sum(销售单退货.商品数量),Sum(销售单.商品数量),
>Sum(进货单退货.商品数量),Sum(赠送单.商品数量),Sum(XXXXX),....... From 表1,2....
>Where .....
>注:“商品数量”字段是每张相关单据里,商品从表与该当关联的商品总量。每张单据(每条记录)
> 对应商品从表的多条记录。
>这样的查询去取得所有相关单据里的商品数量去得到库存吗?太多表了吧?
 
O

oceanwave

Unregistered / Unconfirmed
GUEST, unregistred user!
我上面已经回答过了呀,是有关查询优化的,你可以看看,表不多的,顶多七八个表而已
不要害怕,呵呵[:D]
 
Z

zheng

Unregistered / Unconfirmed
GUEST, unregistred user!
to oceanwave:
优化是要优化,但你是肯定我的上面的想法?
 
Z

zheng

Unregistered / Unconfirmed
GUEST, unregistred user!
现在已确定进货单、销售单等要分开建表不合并。但由于我是采用:
进货单(或销售单等)作为主表,进货单商品作为从表,进行关联的。
那么不论是进货单表或销售单表还是其它以主表形式与“商品表”
进行关联的表,他们所用到的“商品表”的结构都相同的,这样“商品表”
这个作为从表的表是否可以共享(合并),也即是多个单据表的都以唯一
一个“商品表”作为“商品明细表”?
 
Z

zheng

Unregistered / Unconfirmed
GUEST, unregistred user!
两位能否提供你们的进销存软件程序(不是代码,是执行文件)如果不方便,
能否提供你们知道并觉得与你们说的思想或流程比较接近的可下载的贡献软件
的名称?最好不要太简单或太复杂!我可以通过操作该软件更加深对进销存
的机理的理解,曾经下载过几个,包括管家婆,但都觉得不太好。
 
Z

zheng

Unregistered / Unconfirmed
GUEST, unregistred user!
上面"新"三个问题请大家一并作答!
 
G

gwbasic

Unregistered / Unconfirmed
GUEST, unregistred user!
1. 我还是认为采用库存明细比较合理,因为用到现有库存的地方很都,如果你每次都靠查询
速度肯定是个问题
2.既然主表不合并,我看从表也就不用合并了,这样对于以后的升级留下一定的空间
但如果你的库存是采用查询的话,合并起来,比较好容易实现,
最好所有关系到库存的"商品明细表",都放在一起,再把不同地方放在另外一张表中.
这样,查询可能会更快一点. 我现在是没采用查询,所以,表单都没合并.
3.软件我是没有,因为要么是公司里正在用的,这个系统太大了,再说公司也不容许呀!
自已编的软件又太小,同管家婆差不多,所以是没有
但管家婆软件作为简单的进销存软件还是有参考价值的.
但也有些不足:
进货流程: 采购定单,验收单,入库单
(管家婆只采用了一张入库单)
销货流程: 销货定单,理货单,出货单
(管家婆也只采用了一张出货单)
另外,管家婆的报表很少,当然,报表是要结合实际的,通用型的进销存软件当然就会不足了.
还有一般的进销存,如果只关系到物,还是比较简单的,一旦连上钱,就不好办了.
 
Z

zheng

Unregistered / Unconfirmed
GUEST, unregistred user!
[red]请各位到加分的帖:http://www.delphibbs.com/delphibbs/dispq.asp?lid=671074登记![/red]
 

Similar threads

D
回复
0
查看
784
DelphiTeacher的专栏
D
D
回复
0
查看
737
DelphiTeacher的专栏
D
D
回复
0
查看
727
DelphiTeacher的专栏
D
S
回复
0
查看
3K
SUNSTONE的Delphi笔记
S
顶部