财务104班第1组实验六

更新时间:2023-11-09 17:48:01 阅读量: 教育文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

管理信息系统实验报告

组别:第 一 组

组 长:杨阳

组 员:李丹,李云,李斯丹,李兆鹏,许文君,刘杰玲

实验六、库存管理子系统分析实验 一、实验目的: 熟练运行“库存管理子系统” 二、实验设备、软件: 1、计算机微机工作站; 2、管理信息系统教学软件——库存管理子系统 三、实验原理: 1.功能结构 数据录入 数据查询 报表输出 代码维护 源程序 2.程序算法 SET TALK OFF SET DELETE OFF SET DATE ANSI SET CENT ON STOR 1 TO JJLAST

DO WHIL .T.

CLOS DATA CLEA TYPE CLEA TYPE ON KEY

IF NOT WEXIST(\ IF SYSM(1)>641

DEFI WIND CPMAINZ AT 0,0 SIZE 31.056,99.875 TITL \产品库存管理系统\;

FONT \宋体\ELSE

DEFI WIND CPMAINZ AT 0,0 SIZE 25.056,84.875 TITL \产品库存管理系统\;

FONT \宋体\ENDI

MOVE WINDOW CPMAINZ CENTER

ENDI

ACTI WIND CPMAINZ NOSHOW

III=IIF(SYSM(1)>641,0,-0.5)

@ III+1.5,8.125 GET _ZYHOXZ PICT \宋体\

IF III=0

ELSE

@ 7.333,24.750 SAY \产品库存管理系统\宋体\@ 19.278,36.125 SAY \作者:仲秋雁 张玉红\宋体\DO DISMIT WITH [ ],III &&ENABLE THE MESSAGE OF MMAIN_MENU _ZYHOXZ=0

@ 8.5,23.750 SAY \产品库存管理系统\宋体\@ 15.878,32.125 SAY \作者:仲秋雁 张玉红\宋体\

ENDI

ACTI WIND CPMAINZ

READ CYCL MODA OBJE JJLAST

IF (LAST()=27 AND _ZYHOXZ<1) OR _ZYHOXZ=5

EXIT

ENDI

DO DISMIT WITH [COLO 3/7*],III && DISABLE THE MESSAGE OF MMAIN_MENU JJLAST=_ZYHOXZ

DO SUBMENU WITH _ZYHOXZ CLOS DATA CLEA TYPE

ENDD

RELE WIND CPMAINZ CLOS DATA ALL ON ERRO ON KEY RETU ********** PROC DISMIT ********** PARA MYCOLO,AIROW

@ AIROW+1.5,08.225 SAY \数据录入\宋体\@ AIROW+1.5,22.575 SAY \数据查询\宋体\@ AIROW+1.5,36.750 SAY \报表输出\宋体\@ AIROW+1.5,51.000 SAY \代码维护\宋体\@ AIROW+1.5,65.375 SAY \结束本例\宋体\RETU **********

PROC SUBMENU ********** PARA MIMO DO CASE

CASE MIMO=1

PITE=[\\<1 入库数据录入;\\<2 销售数据录入;\\<3 数据初始化 ;\\<0 退出本选择单]

CASE MIMO=2

PITE=[\\<1 每笔入库数据查询;\\<2 每笔销售数据查询;\\<3 出库入库数据查询;\\<4 产品库存数据查询;\\<0 退出本操作选择单]

CASE MIMO=3

PITE=[\\<1 统计报表计算;\\<2 生产销售月表;\\<3 月收发存总表;\\<0 退出本选择单]

CASE MIMO=4

PITE=[\\<1 增加糖果品种;\\<2 删除糖果品种;\\<3 修改代码表 ;\\<0 退出本选择单] ENDC DO WHIL .T. _ZYHIN=0

CLOS DATA ALL IMO=IIF(MIMO=2,5,4) IF NOT WEXIST(\

DEFI WIND ZSUBM AT 0,0 SIZE 13,26+4*(IMO-4) FONT \宋体\SYST COLOR 0/7*

FLOA

选项\

TITL SUBS([数据录入数据查询报表输出代码维护],(MIMO-1)*8+1,8)+\操作

MOVE WIND ZSUBM CENT

ENDI

ACTI WIND ZSUBM cho1=0 IF IMO=4

@ 1.5,4 GET cho1 FUNC \\FONT \宋体\SIZE 1.6,18,1.2 DEFA IMO

ELSE

@ 1,4 GET cho1 FUNC \宋体\

ENDI

READ MODA CYCL OBJE IMO _ZYHIN=cho1

IF (LAST()=27 AND _ZYHIN=0) OR CHO1=IMO EXIT ELSE

IF IMO=4

@ 1.5,4 GET Ucho1 FUNC \\FONT \宋体\SIZE 1.6,18,1.2 DEFA

IMO DISA

ELSE

@ 1,4 GET Ucho1 FUNC \\FONT \宋体\SIZE 1.6,22,0.7 DEFA

IMO DISA

ENDI CLEA GETS

DO SUBPAC WITH MIMO*10+CHO1 IF LAST()=27

CLEA TYPE _ZYHIN=.F.

ENDI

ENDI

ENDD

CLOS DATA ALL RELE WIND ZSUBM RETU *********** PROC SUBPAC *********** PARA DONUM DO CASE

ELSE

IF U_NUM>1

SET FILT TO CPDM=UUSR

UUATC=XZCPNA()

ENDI ENDI

CASE BETW(ASC(UUSR),65,122) && By ZJM

UUSR=UPPE(UUSR) SELE 2

USE CPDM ALIA CPDM

COUN ALL TO U_NUM FOR ALLT(ZJM)=UUSR IF U_NUM=1

LOCA ALL FOR ALLT(ZJM)=UUSR

UUATC=[@]+ALLT(CPDM.CPDM)+[@]+ALLT(CPDM.CPMC)+[@]+ALLT(CPDM.DW)+[@]; +ALLT(CPDM.LB)+[@]+LTRI(STR(RECN(\

ELSE

IF U_NUM>1

SET FILT TO ZJM=UUSR

UUATC=XZCPNA()

ENDI ENDI

CASE ASC(UUSR)>158 && By CPMC

SELE 2

USE CPDM ALIA CPDM

COUN ALL TO U_NUM FOR ALLT(CPMC)=UUSR IF U_NUM=1

LOCA ALL FOR ALLT(CPMC)=UUSR

UUATC=[@]+ALLT(CPDM.CPDM)+[@]+ALLT(CPDM.CPMC)+[@]+ALLT(CPDM.DW)+[@]; +ALLT(CPDM.LB)+[@]+LTRI(STR(RECN(\

ELSE

IF U_NUM>1

SET FILT TO CPMC=UUSR

UUATC=XZCPNA()

ENDI ENDI

OTHE

SELE 1

REPL SRNR WITH CPMC RETU .T.

ENDC SELE 2 USE SELE 1

IF UUATC=[**CANC**] REPL SRNR WITH CPDM RETU .T. ENDI

REPL CPDM WITH CPJM(1,UUATC),CPMC WITH CPJM(2,UUATC),; DW WITH CPJM(3,UUATC),LB WITH CPJM(4,UUATC) REPL SRNR WITH CPMC RETU .T.

********** PROC ZYHUP ********** IF RECN()=1 RETU ENDI

PRIV ARINI,BRSJ

SCAT TO ARINI SKIP -1 SCAT TO BRSJ GATH FROM ARINI SKIP

GATH FROM BRSJ SKIP -1 RETU

********** PROC ZYHDN ********** IF RECN()=RECC() RETU ENDI

PRIV ARINI,BRSJ SCAT TO ARINI SKIP

SCAT TO BRSJ GATH FROM ARINI SKIP -1 GATH FROM BRSJ SKIP RETU ******** PROC SAVEINSJ ******** SELE 1

IF SRTYPE=[入库]

USE cprk

ELSE

USE cpXS

ENDI

APPE FROM cpsjsr USE CPSJSR

SORT ON CPDM TO $0 USE $0

REPL ALL rksl with rksl-(lssl+pfsl) TOTA ON CPDM TO $KC FIEL RKSL USE

ERAS $0.DBF CLOS DATA ALL SELE 1 USE $KC SELE 2 USE CPKC

IF RECC()=0 APPE BLAN

REPL RQ WITH URQ1 ELSE

LOCA ALL FOR RQ>=URQ1 IF !FOUN() GO BOTT

SCAT TO UUKCREC

APPE BLAN

GATH FROM UUKCREC REPL RQ WITH URQ1

ELSE

IF RQ>URQ1 IF RECN()>1 SKIP -1

SCAT TO UUKCREC APPE BLAN

GATH FROM UUKCREC REPL RQ WITH URQ1 ELSE

INSE BLAN BEFO REPL RQ WITH URQ1 ENDI ENDI

ENDI ENDIF SELE 2

LOCA ALL FOR RQ=URQ1 FOR UI=1 TO RECC(1)

SELE 1 GO UI

UZD=[CP]+ALLT(CPDM) SELE 2

REPLACE &UZD WITH &UZD+A.rksl

NEXT

CLOS DATA ALL USE CPKC

SORT ON RQ TO $KC ZAP

APPE FROM $KC USE

ERAS $KC.DBF

SELE 1 USE CPHZA

APPE FROM cprdata APPE FROM cpsjsr

REPL ALL HZMK WITH DTOC(RQ,1)+CPDM INDE ON HZMK TO $SY

TOTA ON HZMK TO $SUM FIEL RKSL,LSSL,PFSL ZAP

USE CPRDATA INDE CPRDATA ZAP

APPE FROM $SUM REIN SELE 2 USE CPKC

LOCA ALL FOR RQ=URQ1 SELE 1

SET FILT TO RQ=URQ1 GO TOP

DO WHIL !EOF(1)

SELE 1

UZD=[CP]+ALLT(CPDM) REPL KCSL WITH B.&UZD SKIP

ENDD

CLOS DATA ALL ERAS $SY.DBF ERAS $SUM.DBF USE cpsjsr ZAP

USE RETU ********* PROC ZCP21 ********* PARA SRTYPE CLOS DATA ALL

STOR DATE() TO URQ1,URQ2 IF SRTYPE<>[库存]

DO GETRQ WITH 1,URQ1,URQ2

ELSE

USE CPKC IF RECC()<0.5 CLOS DATA ALL RETU ENDI USE

AAQQ=1

DO ZYHWA_SE WITH [哪一日库存],[],3,AAQQ,-10,-10,[\\<1 最近的;\\<2 其它日] IF AAQQ=1 USE CPKC GO BOTT URQ1=RQ USE ELSE USE

DO GETRQ WITH 1,URQ1,URQ2 IF EMPT(URQ1)

CLOS DATA RETU

ENDI

ENDI

USE CPKC ALIA KC LOCA ALL FOR RQ>=URQ1 IF !FOUN() GO BOTT ELSE

IF RQ>URQ1

SKIP IIF(RECN()>1,-1,0) ENDI ENDI DO KCSJMADE CLOS DATA ALL

ENDI

IF EMPT(URQ1) RETU ENDI SELE 2

USE cpdm ORDE cpdm SELECT 1

UUDATAF=IIF(SRTYPE=[入库],[CPRK],; IIF(SRTYPE=[销售],[cpxs],;

IIF(SRTYPE=[出入库],[CPRDATA],[$DRKC]))) USE \

SET RELA TO cpdm INTO B IF SRTYPE<>[库存]

LOCA ALL FOR rq=URQ1 IF !FOUN() CLOS DATA ALL

DO ZYHWA_SE WITH [\\1],[没有]+DTOC(URQ1)+[日的]+SRTYPE+[明细数据。按任意键返回??],1

RETU ENDI

ENDI

UUCOL=IIF(SRTYPE=[入库],48,; IIF(SRTYPE=[销售],59,; IIF(SRTYPE=[出入库],68,48)))

DEFI WIND cxwind AT 0,0 SIZE 18,UUCOL ;

FONT \宋体\数据查询\MOVE WIND cxwind CENT IF SRTYPE<>[库存]

SET FILT TO rq=URQ1

ENDI DO CASE

CASE SRTYPE=[入库]

BROW FIEL RQ:11:H=[入库日期],cpdm:5:H=\代码\产品名称\

rksl:10:P=[@Z]:H=\入库数量\

TITL DTOC(urq1)+\每笔入库数据查询\ CASE SRTYPE=[销售]

BROW FIEL RQ:11:H=[销售日期],cpdm:5:H=\代码\产品名称\

lssl:10:P=[@Z]:H=\零售数量 \批发数量 \NODE NOAP ;

TITL DTOC(urq1)+\每笔销售数据查询\ CASE SRTYPE=[出入库]

BROW FIEL RQ:11:H=[发生日期],cpdm:5:H=\代码\产品名称\

rksl:10:P=[@Z]:H=\入库数量\零售数量 \批发数量 \

bbb=lssl+pfsl:10:P=[@Z]:h=[总销售量] ; NOED NODE NOAP FONT \宋体\

TITL DTOC(urq1)+\日出入库汇总数据查询\ CASE SRTYPE=[库存]

BROW FIEL RQ:11:H=[库存日期],cpdm:5:H=\代码\产品名称\

KCsl:10:P=[@Z]:H=\库存数量\ TITL DTOC(urq1)+\库存数据查询\ENDC

CLOSE DATA ALL RELE WIND Cxwind RETU

************* PROC KCSJMADE ************* SELE KC SELE 2 USE CPRDATA

COPY STRU TO $DRKC FIEL RQ,CPDM,KCSL USE $DRKC

FOR UI=1 TO FCOU(1)

SELE KC UZD=FIEL(UI)

IF LEFT(UZD+[ ],2)=[CP] AND BETW(SUBS(UZD+[UUUU],3,2),[01],[99]) SELE 2 APPE BLAN

REPL RQ WITH A.RQ,CPDM WITH SUBS(UZD,3,2),KCSL WITH A.&UZD ENDI

NEXT SELE 2 USE SELE KC RETU

本文来源:https://www.bwwdw.com/article/46cv.html

Top