⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 进销存.zrg

📁 掌机使用Zzbase语言的各种的关于各种电力规约如645
💻 ZRG
📖 第 1 页 / 共 4 页
字号:
 ***数据库:共五个数据库
***定单库: order.dbf ; 客户库:customer.dbf ;
***职工库:employe.dbf; 商品A库: product1.dbf ; 流水库 :seller.dbf

DEFINE  DATABASE A
   定单ID      :N,5
   客户A_ID    :C,4
   雇员A_ID    :C,3
   日期        :C,10
   商品ID      :C,13
   批发数量    :N,5
   批发金额    :N,10,2
   批发毛利    :N,10,2
   采购数量    :N,5
   采购金额    :N,10,2
ENDDEF

DEFINE  DATABASE B
   客户B_ID    :C,4
   客户姓名    :C,8
   职务        :C,26
   地址B       :C,20
   电话B       :N,12
ENDDEF

DEFINE  DATABASE C
    雇员C_ID    :C,3
    雇员姓名    :C,8
    身份证号    :C,18
    电话C       :N,12
    零售总额    :N,12,2
ENDDEF

**与条码库配合
DEFINE  DATABASE D
    商品A_ID  :C,13
    商品名称A :C,13
    零售单价A :N,10,2
    零售总量A :N,5
    毛利润A   :N,10,2
    现库存量A :N,5
    库存总额A :N,11,2
    备注A     :C,20
ENDDEF

DEFINE  DATABASE E
    流水号   :N,10
    零售日期 :C,8
    收款员ID :C,3
    商品条码 :C,13
    零售数量 :N,4
    小计     :N,10,2
ENDDEF

DEFINE  VAR
  AnyKey          :C,1
  AnyKey1         :C,2
  主菜单          :C,16[3]
  伴随数组        :C,64[3]
  
  演示菜单        :C,16[6]
  演示数组        :C,64[6]
  
  管理菜单        :C,16[2]
  管理数组        :C,64[2]
  
  码型菜单        :C,16[6]
  码型数组        :C,64[6]
  
  通讯菜单        :C,16[2]
  通讯数组        :C,64[2]
  
  库名菜单        :C,16[5]
  库名数组        :C,64[5]
  
  统计菜单        :C,16[4]
  统计数组        :C,64[4]
  
  添库菜单        :C,16[2]
  添库数组        :C,64[2]
  
  进货菜单        :C,16[2]
  进货数组        :C,64[2]
  
  校对菜单        :C,16[2]
  校对数组        :C,64[2]
  nMenuChoice     : N,1,0
  nCMenuChoice    : N,1,0
  
  cKey            :C,1
  ZGBH            :C,3
  XSL             :N,5
  JQH             :C,8
  XSZE            :N,10,2
  PFZE            :N,10,2
  KCZE            :N,11,2
  BZH             :C,20
  C1              :C,200
  i               :N,3
  n               :N,2
  DBH             :N,5
  DHHM            :N,12
  CGSL            :N,5
  CGJE            :N,10,2
  PFSL            :N,5
  PFJE            :N,10,2
  ZHDJ            :N,10,2
  PJJ             :N,9,2
  MLR             :N,10,2
  PFJ             :N,9,2 
  SPMC            :C,13
  SPID            :C,13
  PWD             :C,4
  LSH             :N,5
  SKYH            :C,3
  KHID            :C,4
  DDID            :N,5
  XKCL            :C,5
  sSysVar         :C,12
  sSysVar1        :C,12
  sSysVar2        :C,12
  sSysVar3        :C,12
  sSysVar4        :C,12
  nReturn         :N,1,0
  BarCode         :C,13
  BarBuf          :C,13
  BarCodeL        :C,13
  CURR_REC        :N,4
  TYPE            :C,10
  XH              :N,5
  High            :N,5
  Mid             :N,5
  Low             :N,5
  RecN            :N,5 
  BufN            :N,3
  cInput1         :C,13
  TEMP            :N,10,2
  TEMP1           :N,5
  TEMP2           :N,10,2    
  TEMP3           :C,13
  TEMP4           :N,11,2
  TEMP5           :N,5
  TEMP6           :N,5
  TEMP7           :N,10,2
  TEMP8           :N,5
  TEMP9           :N,10,2
  TEMP10          :N,10,2
  TEMP11          :N,5
  TEMP12          :N,11,2
  TEMP13          :N,11,2
  TEMP14          :N,5
  编号A           :C,13
  编号B           :C,13
  商品编号        :C,13 
  条码标志        :C,3
  条码类型        :N,3
ENDDEF

PROCEDURE 条码演示
       DO WHILE .T.
	  CLEAR
	* SET INTENSITY ON
	  @ 0,0 SAY "-- 商品进销存微机 --"
       *  SET INTENSITY OFF
	  演示菜单[1]="1-商品零售"
	  演示菜单[2]="2-商品管理"
	  演示菜单[3]="3-条码查询"
	  演示菜单[4]="4-条码统计"
	  演示菜单[5]="5-添加记录"
	  演示菜单[6]="6-显示条码"
	  演示数组[1]="扫描条码后,只输入销售数量即可完成操作;库存随之减少,并累计毛利..."
	  演示数组[2]="批发和采购订单的录入,库存随之变化;可累计批发毛利..."
	  演示数组[3]="通过扫描商品条码,可完成各库相应的数据查询..."
	  演示数组[4]="通过扫描商品条码,可完成销售和批发等统计工作..."
	  演示数组[5]="这里只能在客户库和雇员库尾追加新记录..."
	  演示数组[6]="只显示一下条码,无其他操作..."
	  @2,5 MENU 演示菜单,6,6
	  @2,2 MENU 演示数组,6
	  @9,0 SAY "注:按帮助键,有简介!"
	  READ MENU TO nCMenuChoice
	  DO CASE
	     CASE nCMenuChoice=1
	          Do 商品销售
             CASE nCMenuChoice=2
	          Do 商品管理
	     CASE nCMenuChoice=3
	          Do 条码查询
	     CASE nCMenuChoice=4
	          Do 条码统计
	     CASE nCMenuChoice=5
	          Do 添加记录 
	     CASE nCMenuChoice=6
	          Do 显示条码   
	     OTHERWISE
	         EXIT
	  ENDCASE
       ENDDO
    RETURN
ENDPRO

PROCEDURE 商品销售
   IF 条码标志="COM"
      CLEAR
      @ 2,2 SAY "现在是红外通讯口"
      @ 3,2 SAY "请返回...."
      WAIT""
      RETURN
   ENDIF
 * BarCode="800001" 缺省
   DO WHILE .T.
      CLEAR
      @ 0,1 SAY "-- 零 售 状 态 --"
      @ 2,2 SAY "请扫描商品条码..."
      @ 4,3 GET BarCode
      READ
      n=lastkey()
      if n=24
         return
      endif
      DO CASE
          CASE LEN(BarCode)<>0
                 IF LEN(BarCode)<=13
                    DO 零售一库
                 ELSE
                    LOOP
                 ENDIF 
           CASE LEN(BarCode)>=13
               CLEAR              
               @ 3,0 SAY "错误: 无此功能键!"
               SOUND 15,1
               WAIT ""
         ENDCASE
      ENDDO
   RETURN
ENDPRO


PROCEDURE 显示条码
     CLEAR
     @0,0 say " 显示读入的条码...  "
     DO WHILE .T.  
        C1=""
        @row(),0 GET C1
        read
        if LEN(C1)<>0
           sound 21, 1
           do case
              case row()=1
                   clear 1 
              case row()=2
                   clear 2
              case row()=3
                   clear 3
              case row()=4
                   clear 4
              case row()=5
                   clear 5
              case row()=6
                   clear 6
              case row()=7
                   clear 7
              case row()=8
                   clear 8
              case row()=9
                   clear 9
           endcase
           ? left(C1,1)+right(C1,len(C1)-1)
             if row()=0 
                @ 1,0
                clear 1
              endif   
           endif
        n=lastkey()
        if n=24
           return
        endif
      ENDDO
   RETURN
ENDPRO

PROCEDURE 商品管理
     CLEAR
     DO WHILE .T.
	CLEAR
     *  SET INTENSITY ON
	@ 0,1 SAY "-- 超市商品管理 --"
     *	SET INTENSITY OFF
	管理菜单[1]="1-批发业务"
	管理菜单[2]="2-采购业务"
	
        管理数组[1]="5位订单编号自动添加,即可开始输入批发订单,并校对订单"
	管理数组[2]="5位订单编号自动添加,即可开始输入采购订单,老货和新货应分开录入和校对"
	@2,5 MENU 管理菜单,2,2
	@2,5 MENU 管理数组,2
	@5,0 SAY "注:先按上下键选择,再按确认键执行功能!!"
	READ MENU TO nCMenuChoice
	DO CASE
	   CASE nCMenuChoice=1
		Do 批发销售
           CASE nCMenuChoice=2
		DO 进货业务
	   OTHERWISE
		EXIT
	ENDCASE
     ENDDO
   RETURN
ENDPRO

PROCEDURE 校对进货
    CLEAR
     DO WHILE .T.
	CLEAR
	SET INTENSITY ON
	@ 0,1 SAY "-- 校对商品录入 --"
	SET INTENSITY OFF
	校对菜单[1]="1-原有商品校对"
	校对菜单[2]="2-校对新进商品"
        校对数组[1]="校对原库存商品的采购"
	校对数组[2]="这里是对第一次进货录入的校对"
	@2,2 MENU 校对菜单,2,2
	@2,2 MENU 校对数组,2
	@6,0 SAY "注:请按上下键进行选择,再按确认键执行!!"
	READ MENU TO nCMenuChoice
	DO CASE
	   CASE nCMenuChoice=1
		Do 校对原进货
           CASE nCMenuChoice=2
		DO 校对新进货
	   OTHERWISE
		EXIT
	ENDCASE
     ENDDO
 RETURN
ENDPRO


PROCEDURE 批发销售
    Clear
    XSL=0
    MLR=0.00
    PFJ=0.00
    PJJ=0.00
    XKCL=""
    TEMP3=""
    SELECT A
    @0,2 Say "-- 批 发 销 售 --"
    @2,0 Say "当前记录号:"+Str(Recno(),5)
    @3,0 Say "新记录序号:"+Str(Reccount()+1,5)
    @5,0 say "订单已定位到:"
    @5,col()+1 say Reccount()+1
    @7,0 Say "注:按确认键输入订单内容;其它键可返回!"
    Wait "" To cKey
    If Asc(cKey)<>13
       Return
    Endif
    Clear 2
    XH=Reccount()
    GO XH
    DDID=定单ID+1
  
    Append Blank
    @2,0 Say "订单ID:" 
    @2,col()+1 say DDID
    @3,0 Say "客户A_ID:" Get 客户A_ID 
    @4,0 Say "雇员A_ID:" Get 雇员A_ID   
    @5,0 Say "商品ID:" Get SPID 
    @6,0 Say "批发数量:" Get XSL
    @7,0 Say "批发价格:" Get PFJ
    Read
    if len(SPID)=0
       clear
       @ 2,2 say "输入无效,重输!!!"
       wait""
       return
    endif      
    PFZE=XSL*PFJ
    ZGBH=雇员A_ID
    replace 定单ID  with DDID, 客户A_ID with 客户A_ID ,雇员A_ID with 雇员A_ID 
    replace 日期 with DATE(), 商品ID with SPID 
    replace 批发数量 with XSL, 批发金额 with PFZE
    
    SELECT D
    GO TOP
    
    locate for VAL(商品A_ID)=VAL(SPID) .and. (.not.eof( ))
             SOUND 21,4
             IF eof() .or. 现库存量A<XSL
                clear
                @ 1,2 say "商品库更新出错!..."
                @ 2,2 say "条码有误?!..."
                @ 3,2 say "库存量不足?!..."
                wait ""
                SELECT A
                GO BOTTOM
                replace 批发数量 with 0, 批发金额 with 0.00
                RETURN
             ELSE
                CURR_REC=recno()
                GO CURR_REC
                PJJ=round(库存总额A/现库存量A,1)
                KCZE=PJJ*XSL
                MLR=(PFJ-PJJ)*XSL
                
                XKCL=STR(现库存量A,5)
                nReturn=WRITESYSVAR(53,XKCL)
                
                TEMP3=STR(库存总额A,11)
                n=WRITESYSVAR(54,TEMP3)
                
                replace 现库存量A with val(XKCL)-XSL
                replace 库存总额A with val(TEMP3)-KCZE
                               
             ENDIF 
             SELECT A
             GO BOTTOM
             replace 批发毛利 with MLR
             
        DO  校对批发                  
   RETURN
ENDPRO

PROCEDURE 校对批发 
      SELECT a
      XH=Reccount()
      TEMP1=0
      TEMP4=0.00
      IF XH<>Reccount()
         clear
         @2,2 say "记录序号有误!..."
         @3,2 say "返回重输!!!"
         WAIT""
         RETURN
      ELSE   
         GO XH
         DDID=定单ID
      ENDIF  
      SELECT D
      GO TOP
      locate for VAL(商品A_ID)=VAL(SPID) .and. (.not.eof( ))
      IF eof()
         clear
         SOUND 21,4
         @ 1,3 say "商品库定位出错!..."
         @ 2,3 say "或条码有误!..."
         wait ""
         RETURN
      ELSE
         CURR_REC=recno()
         GO CURR_REC
         SPMC=商品名称A
      ENDIF 
      CLEAR
      @0,1 Say "-- 校对批发订单 --"   
      @1,0 Say "订单ID:"  
      @1,col() SAY DDID
      @2,0 Say "客户ID:"
      @2,col() SAY 客户A_ID 
      @3,0 Say "采购员:" 
      @3,col()SAY 雇员C_ID   
      @4,0 Say "商品ID:"
      @4,col() SAY 商品ID 
      @5,0 Say "批发数量:" 
      @5,col()+1 say XSL
      @6,0 Say "批发价格:" 
      @6,col()+1 say PFJ
      @7,0 say "批发金额:"
      @7,COL()+1 say XSL*PFJ
      @8,0 say "本单毛利:"
      @8,col() say MLR
      @9,0 say "回车确认,有误按退出!"
      Wait "" To cKey
      IF Asc(cKey)=13 
         RETURN
      ELSE  
         SELECT A                     
         XH=Reccount()
         GO XH
         DDID=定单ID  
     ENDIF   
       Clear 
       @0,1 Say "-- 重写批发订单 --"
       @2,0 Say "订单ID:" 
       @2,col()+1 say DDID
       @3,0 Say "客户ID:" Get 客户A_ID 
       @4,0 Say "雇员ID:" Get 雇员A_ID   
       @5,0 Say "商品ID:" Get 商品ID  
       @6,0 Say "批发数量:" Get XSL
       @7,0 Say "批发价格:" Get PFJ
       Read
       PFZE=XSL*PFJ
       replace 定单ID  with DDID, 客户A_ID with 客户A_ID ,雇员A_ID with 雇员A_ID 
       replace 日期 with DATE(), 商品ID with 商品ID  
       replace 批发数量 with XSL, 批发金额 with PFZE
    
       SELECT D
       GO TOP
        locate for VAL(商品ID)=VAL(商品A_ID) .and. (.not.eof( ))
        SOUND 21,4
        IF eof()
           clear
           @ 1,3 say "商品库更新出错!..."
           @ 2,3 say "条码有误!..."
           wait ""
           SELECT A                     
           XH=Reccount()
           GO XH
           replace 批发数量 with 0, 批发金额 with 0.00

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -