风雨十年,感恩同行
查看: 559|回复: 0

用帆软finereport 10.0设计的简易出入库系统,附件源代码

[复制链接]

该用户从未签到

发表于 2019-4-12 15:59:05 | 显示全部楼层 |阅读模式
一般用程序入门都做出入库,进销存之类的,一旦掌握了进出剩余的做法,其他程序只需要在此基础上扩展即可!
+ L, X. `% D7 h3 R# d2 i
& I& y6 `0 s5 y. |4 ]
一.描述:: l3 d8 E/ a2 v: v. Z- @; ~; l
希望在工作的时候,库管可以通过fr能进行仓库管理,因为管理简单,逻辑上就不复杂,但里面涉及很多的知识点和技巧,整套系统需要设计的是:出入库人员,产品单,入库单,出库单,以及库存明细报表

9 ]' B, y& }0 F  T0 ]+ s, h% k) |
2 G4 M/ ~1 x8 d0 E  U, T# Y% ]
二:分类:报表应用>>报表典型应用>>简易出入库系统
& T+ M  |9 v  }9 c8 m+ g0 [' v& u, R. \6 T. c/ ]. C6 q; a
三.实现步骤:# M+ |& z! t- e4 F+ @2 ?5 s4 i. I! K
1.建立数据库,本表涉及4个数据表,如图一" t2 g6 S: K' c! ^
1.png
3 n3 o1 s4 K* K* U7 M
图一
" z0 W9 I  T+ J, U) M3 `1 U0 W
用户表,产品列表,入库表,出库表(出库表和入库表字段一样,图一只是展示出入库表,需要再建一个出库表)4个表
" q2 A# ]( X1 V" f
2.新建员工表和产品表,这个需要填报,两个表比较简单,具体步骤就不详细介绍了,主要运用到模版--报表填报属性,把字段和单元格关联即可,如图二,图三

& q9 ~7 e1 u' s! d" q
2.png
$ P/ V1 ^& B3 Z, U: G2 I
图二
& n1 S5 D& @- v& e0 t
  o: u, l6 r4 g! W
3.png

+ ]! y6 v' y1 n
图三
& y! L9 ]1 q- g' {0 J
产品表效果如图四,产品表做了两块:一个是填报,一个是报表展示,当点击提交按钮后会刷新页面出现产品列表!
这里的知识点可以看之前写的这篇教程:http://bbs.fanruan.com/thread-69750-1-2.html
. V/ v  C7 E, j

9 V6 v- y! ]% \& p" K$ [! w6 x
4.png

4 k/ t0 i, t8 H/ c( r3 p$ R% C
图四
我们可以对添加的产品名做校验,如果名称重复弹窗警告,方法:右键点击产品名称下面的控件单元格B3,控件设置事件编辑,写入js代码,如图四一
, [" j4 q5 c0 ~8 x3 h+ t$ X
5.png
图四一
显示效果如图四二
6.png
图四二
2 P! u! I3 p, X9 @
3:入库单制作,如图五

" _: L. J$ V0 i5 V) p* ~
本帖隐藏的内容
7.png
3 _1 U5 l2 n+ ~. h$ C, m/ I0 {
图五
[/free]
+ _8 [! }; x* S9 o+ ?- c8 m* S
- J. f+ o, ?5 \4 G; U0 x
入库单依然分两块,一个是入库单填报,一块是当提交入库后可以及时产看到现在入库明细表
) ]% ]% Q+ `( ]7 s7 F# b2 v
如何设计表单填报和上面一样,需要留意的知识点有以下几个:

" k/ E! j, L/ i+ F1 @$ \
(1).入库金额可以像EXCEL一样直接在单元格填入乘法公式

; x9 t& |0 m, e: ^$ Z8 O
(2).产品名称在入库表中只是数字,引用的是产品表里的id,如何让他显示产品名称下拉列表,这里需要一个技巧,我们需要右击此单元格,选择控件设置-数据字典,如图六设置
) R( Z  u9 a. m0 X& M/ L0 ]
8.png

4 o3 e+ Q( d. }- l4 U8 ~  Y3 i
图六

4 S: e; m# {6 z
这样我们点击下拉列表时就会出现所有的产品名称而不是产品编码,当我们选定产品名称后,发现在单元格中竟然还是产品编码,这时我们需要做另一个设置,如图七设置
3 V2 ]8 u& U0 H& T# m( t
9 j/ d& O+ H! N
9.png
/ N! g% N. S5 A
图七
) c. w% C2 C, p5 X! k$ V
设置完后,发现下拉选择产品名称后,单元格也是显示的产品名称,相关的技巧应用于入库人字段!通过以上的设置,入库单就做好了

+ D& h9 o% K/ L& {: |, Y: w
4:出库单制作,效果如图八
& r/ |/ f. N9 `: I9 S8 R# q4 m
10.png
/ i+ `2 p& n  o, X4 ]
图八

7 G0 g! d' a$ d9 t6 R' `" b! O
出库单里面也有产品名称和出库人两个下拉列表,设置方法和入库单中的产品名称和入库人的方法一样
+ ~  S+ p; r6 V0 U3 V
除此以外还有两个知识点:

  E( h( X7 h& ?) Z; r
(1).当我们选择产品名称时如何实时显示出现有库存数量,我们需要如图九设置

/ n) o/ I: @7 d( T! Z8 o! }. [
11.png
8 c# U4 i2 g$ q  j% o
图九
' h  s, s/ }) [+ K' J3 R
  • =if(len(A3) = 0, "", SQL("glgg", "select product_shu from glgg_product where id=" + A3, 1,1))8 U' w/ ]7 V! y$ U3 T: m7 z

7 D7 n2 R8 S7 G8 e0 I& a0 Y5 Q[color=rgb(51, 102, 153) !important]复制代码
9 I& f* b& q" {* S/ Q! R+ W
( B* u& e- W' ?" o

& c' \4 P- W! x( Z/ a% l- w) t$ G
公式解释:如果产品名称长度为0的时候,现有库存数量为空,否则查询相应产品的数量把他的产品数量显示在这个单元格中。

4 f4 {! ~+ P1 f- q' v7 ~
(2).如果填报人员填报失误,填报的出库数量大于现有库存的数量,那整个系统就不好了,如何设定校验呢?右击单元格---控件设置--事件编辑如图十:
4 ^5 ~5 }1 K; J9 h4 e
12.png
, y6 P& H" D/ S. k+ X0 a
图十
$ \, O4 i$ A$ h. a
相关代码在图十中有注释,比较简单

; \* s/ @! `" G' m
通过以上步骤出库单就做好了

$ M+ M+ R  n) L8 g2 S
5:制作库存产品明细报表

# W5 |* A+ x" t* e7 o6 l1 p& L& p
(1).建立入库表数据集,建立出库表数据集,建立产品表数据集,如图11
" C* T' H2 s# v
13.png

6 t8 `# H8 V5 f% K9 n% [* d4 {
图11

, S" u( s5 U1 e9 U# e3 u
(2).填充字段,产品信息里面填产品信息里的字段,入库填入库表的字段,出库填出库表的字段,如图12

) a  h) e/ H& U, u# l
  v$ C! M8 T0 ?2 E& L
14.png
1 T( [' @) `4 H, d. U: S' J$ g( T
图12
: Y" V& s8 c) E2 T% t3 B  P
(3).在K4单元格填入公式:=sum(G4) - sum(J4),计算出库存数量

, Z% J+ \( p( ?
(4).以上只是普通的操作,接下来需要做定义,我们如何让入库和出库列表显示的和产品名称一致呢,这些要做过滤,举例:在入库-时间,双击D4单元格,点击过滤,如图13,让pid等于单元格A4,因为出入库的pid就是引用的产品表中的id,出库和入库方法一致
+ B1 h( C/ u9 T  g7 I  x4 d. z% P
15.png

$ ~# D" `) m# s& M# u' s, G; G$ ~
图13
: p" M7 v* y7 e# O5 @4 u
(5).做到以上步骤,预览看一下,发现报表凌乱,不像excel那样可以按照自己想想的那样让相同的内容合并单元格,这就需要我们进一步的美化我们的报表,而且要有扎实的基本功能够很好的理解分组,列表,扩展单元格这些基础知识。
- c* w! T$ o( A/ D
我们需要对B4,C4单元格设置扩展方向--不扩展,如图14,这样产品名称和产品单位会自动合并单元格
9 j7 [2 f& N' t4 X: j
16.png
  k" X$ F/ K/ [
图14
5 I; Z# ^' R: R. c
之后对D4和H4单元格扩展方向--纵向,左父格自定义A4,如图15
5 b# o$ Y( ^! |7 {- l  ~/ Y" w0 `$ u
17.png

/ }8 n$ D1 U9 G! F
图15
6 U1 [3 ]7 L1 Z2 x- f; E* I
最后一个是K4单元格,需要设置单元格扩展方向-不扩展,左父格自定义A4。
& L) E' p+ G+ [% E5 Z0 Y
最终的效果,如图16,一张复杂的有美感的报表就生成了。
5 u: N! F' _8 w
18.png
5 E4 o$ H2 X& B( b: |9 k
图16
+ P3 ]- I! C: l( p2 y
本来到此就结束了,但很遗憾,如果这么简单,那就不是系统了!
! l8 R- t4 O/ B: J( A
6.我们是需要有库存数量的,通过报表我们计算出入库总量和出库总量,之后计算出现有的库存总量,这个库存总量是变化的,是需要实时写入到数据库中的,只有写入数据库中,当我们出库的时候,库存数才能正确显示。如何实现呢?
# K! A" [: |" Z+ U1 T$ L. m
我们需要给库存数量K4单元格加一个数字控件,之后选择模版--报表填报属性,添加字段,id值一定选择单元格组[A4],这样填报的时候才会把属于此单元格组的数量正确的更新数据库里的值!如图17

. R6 _( j1 g" `6 Y) T
19.png
& g9 x$ R: z% g5 \6 O2 a
图17
" a9 @- K$ h( ^
这样设置后,我们打开这个报表时就可以提交,让其库存数量实时填入数据表的字段,但我们不能每次都手动提交,这就需要打开决策系统--管理系统--定时调度,添加一个定时任务,让系统每隔一段时间就自动提交,当然你要选择需要定时填报的报表,如图18,19设置
$ B) w3 f  Q' A: Y. ?
20.png
图185 R2 p. ?+ U7 b# g/ V
( Q: v! H) M3 _& R* C- N3 [2 H) ^
21.png

7 S. |8 t+ V) d图19
& a  O) Q' k6 F$ u. M* X0 w. ?8 M, h8 {( I) H0 D2 C
每隔时间可以自己设定,如果操作频繁可以设定每1分钟执行一次,这样服务器压力大点!通过以上步骤,整个系统就完成了!中间过程并不简单,需要细心并且对基础掌握的很好才行!希望大家通过这个教程都能自己做出符合自己公司情况的出入库管理系统!

7 e5 L. m8 ~: T* _0 f5 v" q
+ K9 C5 R. l. ^$ |3 g4 K0 ~用帆软finereport 10.0设计的简易出入库系统,附件源代码
' |: k6 e/ S% x, ?$ _* u7 ]2 |7 N5 @ 用帆软finereport 10.0设计的简易出入库系统,附件源代码.rar (66.79 KB, 下载次数: 45)

相关技术服务需求,请联系管理员和客服QQ:2753533861或QQ:619920289
您需要登录后才可以回帖 登录 | 用户注册

本版积分规则

帖子推荐:
客服咨询

QQ:2753533861

服务时间 9:00-22:00

金蝶用友易助管家婆深度服务
快速回复 返回顶部 返回列表