บทนำระบบ
ศึกษาปัญหา
ศึกษาความเป็นไปได้
ศึกษาระบบเดิม
ออกแบบระบบใหม่
พัฒนาระบบ
ติดตั้ง
บำรุงรักษา
โปรแกรมเมนู
โปรแกรมงานหลัก
โปรแกรมแสดงข้อมูล
โปรแกรมปรับปรุงข้อมูล
โปรแกรมเกี่ยวกับรายงานสรุป
โปรแกรมเกี่ยวกับระบบ
//รายงานสินค้าถึงจุดสั่งซื้อ
procedure buy
set color to w/bg+
cls
set color to w/b
@ 1,2 clear to 3,77
set color to w/gr
@5,2 clear to 19,77
set color to w/rb+
@ 21,2 clear to 23,77
  use product
  op=alert("เลือกผลลัพธ์ของรายงาน",{"จอภาพ","เครื่องพิมพ์","ยกเลิก"})
  if op=1
   pg=19
   setr=8
  elseif op=2
    pg=45
    setr=8
    set device to printer
  else
    close all
    return
  endif
  r=setr
  page=1
  @ 2,29 say "รายงานสินค้าที่ถึงจุดสั่งซื้อ"
  @ 2,66 say "page :"+ltrim(str(page))
  @ 5,2 say repl("*",76)
  @ 6,2 say rtrim("ลำดับ")
  @ 6,8 say rtrim("รหัสสินค้า")
  @ 6,20 say rtrim("ชื่อสินค้า")
  @ 6,38 say rtrim("ราคาทุน")
  @ 6,47 say rtrim("ราคาขาย")
  @ 6,57 say rtrim("จำนวน")
  @ 6,67 say rtrim("reorder")
  @ 7,2 say repl("*",76)
  count to cnt for quantity<=reorder
    if cnt>0
     go top; i=1
     do while !eof()
       if quantity<=reorder
       @ r,3 say ltrim(str(i))
       @ r,7 say ltrim(str(proid))
       @ r,16 say proname
       @ r,40 say ltrim(str(cost))
       @ r,50 say ltrim(str(price))
       @ r,58 say ltrim(str(quantity))
       @ r,68 say ltrim(str(reorder))
       i++;r++
       if r=pg
             if op=1
                  @ 22,25 say "**** กด enter ดูหน้าต่อไป****"
                  inkey(0)
                   @ 8,2 clear to 19,77
                    page++
                   @ 2,66 say "page :"+ltrim(str(page))
              else
                   eject
              endif
                r=setr
          else
               @ 22,25 say "*** กด enter to menu ****"
          endif
       endif
             skip
             enddo
     else
         @ 6,2 clear to 19,79
         @ 9,15 to 11,60
         @ 10,20 say "ไม่มีสินค้าใดถึงจุดสั่งซื้อ"
     endif
       inkey(0)
       close all
       return
//===========================
//รายงานสินค้าที่เหลือไม่ถึง10%ที่ถึงจุดสั่งซื้อ
procedure buy2
set color to w/bg+
cls
set color to w/b
@ 1,2 clear to 3,77
set color to w/gr
@5,2 clear to 19,77
set color to w/rb+
@ 21,2 clear to 23,77
  use product
  op=alert("เลือกผลลัพธ์ของรายงาน",{"จอภาพ","เครื่องพิมพ์","ยกเลิก"})
  if op=1
   pg=19
   setr=8
  elseif op=2
    @ 10,20 say "input date of sale :"
    pg=45
    setr=8
    set device to printer
  else
    close all
    return
  endif
  r=setr
  page=1
  @ 2,29 say "รายงานสินค้าที่เหลือไม่ถึง10%จะถึงจุดสั่งซื้อ"
  @ 2,66 say "page :"+ltrim(str(page))
  @ 5,2 say repl("*",76)
  @ 6,2 say rtrim("ลำดับ")
  @ 6,8 say rtrim("รหัสสินค้า")
  @ 6,20 say rtrim("ชื่อสินค้า")
  @ 6,38 say rtrim("ราคาทุน")
  @ 6,47 say rtrim("ราคาขาย")
  @ 6,57 say rtrim("จำนวน")
  @ 6,67 say rtrim("reorder")
  @ 7,2 say repl("*",76)
  count to cnt for quantity 0
     go top; i=1
     do while !eof()
       if quantity pay < receivab->total
goto top
do while !eof()

   _datepay=date_pay
   _datesale=date_sale
   _saleid=saleid
   _total=total
   _pay=pay
   _custid = custid
         sele customer
         locate for custid = _custid
         if found()
           @ r,2 say ltrim(str(custid))
           @ r,10 say rtrim(custname)
         endif
         if r=pg
                if op=1
                     @ 22,25 say "**** กด enter ดูหน้าต่อไป****"
                     inkey(0)
                      @ 8,2 clear to 19,77
                       page++
                      @ 2,66 say "page :"+ltrim(str(page))
                 else
                      eject
                 endif
                 r=setr
         else
                 @ 22,25 clear to 22,75
                 @ 22,25 say "*** กด enter to menu ****"
         endif
         @ r,25 say _datesale
         @ r,35 say _datepay
         @ r,44 say _total pict "999,999.99"
         @ r,56 say _pay pict "999,999.99"
              _less=_total-_pay
              sum1=sum1+_less
              sum2=sum2+_total
              sum3=sum3+_pay
         @ r,68 say _less pict "99,999.99"
    sele receivab
    r++
    skip
enddo
                @ r,2 say repl("*",75)
                @ r+1,20 say "รวมเงิน"
                @ r+1,41 say sum2 pict "9,999,999.99"
                @ r+1,54 say sum3 pict "9,999,999.99"
                @ r+1,67 say sum1 pict "9,999,999.99"

close all
return
//============================
//รายงานการสั่งซื้อตามรหัสผู้จำหน่าย
procedure supprep
  ans=1
do while ans=1
  sele 1;use supplier
  sele 2;use product
  sele 3;use orderdet
  sele 4;use order
  set color to w/bg+
  cls
  set color to w/b
  @ 1,2 clear to 3,77
  set color to w/gr
  @5,2 clear to 19,77
  set color to w/rb+
  @21,2 clear to 23,77

  op=alert("เลือกผลลัพธ์รายงาน",{"จอภาพ","เครื่องพิมพ์","กลับเมนู"})
  if op=1
   pg=19
   setr=8
  elseif op=2
    @ 10,20 say "กรุณาป้อนข้อมูลรหัสผู้จำหน่าย :"
    pg=45
    setr=8
    set device to printer
  else
    close all
    return
  endif
  r=setr
  page=1
  sum=0
  _suppid="     "
  @ 2,66 say "page : "+ltrim(str(page))
  @2,22 say "รายงานการสั่งซื้อตามรหัสผู้จำหน่ายที่"
  @ 2,50 get _suppid
  read
  @ 2,52 say _suppid
  @ 5,2 say repl("*",75)
  @ 6,2 say rtrim("ชื่อผู้จำหน่าย")
  @ 6,20 say rtrim("รหัสซื้อ")
  @ 6,30 say rtrim("รหัสสินค้า")
  @ 6,40 say rtrim("ชื่อสินค้า")
  @ 6,55 say rtrim("ราคาทุน")
  @ 6,64 say rtrim("จำนวน")
  @ 6,70 say rtrim("รวมเงิน")
  @ 7,2 say repl("*",75)
Sele order
Set filter to order->suppid = val(_suppid)
goto top
do while !eof()
     sele supplier
     locate for suppid=val(_suppid)
     if found()
        @ r,2 say rtrim(suppname)
     else
        @ 5,2 clear to 19,77
        @11,10 to 13,65
        @12,15 say "รหัสผู้จำหน่าย "+_suppid+ "ไม่พบในแฟ้มข้อมูล"
        inkey(0);exit
     endif
     _orderid=order->orderid
     @ r,20 say ltrim(str(_orderid))
     Sele orderdet
     set filter to orderdet->orderid = _orderid
     goto top
     while !eof()
          @r,28 say ltrim(str(proid))
          _proid = proid
          sele product
          goto top
          locate for product->proid = _proid
          if found()
             _cost=cost
             @ r,33 say rtrim(proname)
             @ r,52 say ltrim(str(cost))
          endif
          Select orderdet
          @ r,65 say ltrim(str(pquant))
          tot=0
          tot=_cost*pquant
          sum=sum+tot
          @ r,70 say tot pict "99,999.99"
          if r=pg
            if op=1
               @22,5 say "***enter ดูหน้าต่อไป***"
               inkey(0)
               @8,2 clear to 19,77
               page++
               @ 2,66 say "page :"+ltrim(str(page))
           else
              eject
           endif
           r=setr
         else
           @ 22,25 clear to 22,75
           @22,25 say "*****enter กลับเมนูหลัก***"
        endif
        r++
        sele orderdet
        skip
     enddo
     set filter to
     select order
     skip
enddo
    @ r,2 say repl("*",75)
    @ r+1,50 say "รวมทั้งหมด"
    @ r+1,67 say sum pict "9,999,999.99"
    set device to screen
    inkey(0)
set color to w/bg+
cls
set color to w/b
@ 1,2 clear to 3,77
set color to w/gr
@5,2 clear to 19,77
set color to w/rb+
@ 21,2 clear to 23,77

@ 22,15 say "คุณต้องการดูรายงานต่อไปหรือไม่"
@ 22,55 prompt [Yes]
@22,60 prompt [No]
menu to ans
if ans=2
   return
endif
enddo
close all
inkey(0)
return

//==========================
//รายงานการรับสินค้าตามรหัสผู้จำหน่าย
procedure supprec
  ans=1
  do while ans=1
  sele 1;use supplier
  sele 2;use product
  sele 3;use receidet
  sele 4;use receive
  sele receive
set color to w/bg+
cls
set color to w/b
@ 1,2 clear to 3,77
set color to w/gr
@5,2 clear to 19,77
set color to w/rb+
@ 21,2 clear to 23,77

  op=alert("เลือกผลลัพธ์รายงาน",{"จอภาพ","เครื่องพิมพ์","กลับเมนู"})
  if op=1
   pg=19
   setr=8
  elseif op=2
    @ 10,20 say "กรุณาป้อนข้อมูลรหัสผู้จำหน่าย :"
    pg=45
    setr=8
    set device to printer
  else
    close all
    return
  endif
  r=setr
  page=1
  sum=0
  _suppid="     "
  @ 2,66 say "page : "+ltrim(str(page))
  @2,22 say "รายงานการรับสินค้าตามรหัสผู้จำหน่ายที่"
  @ 2,50 get _suppid
  read
  @ 2,52 say _suppid
  @ 5,2 say repl("*",75)
  @ 6,2 say rtrim("ชื่อผู้จำหน่าย")
  @ 6,20 say rtrim("รหัสซื้อ")
  @ 6,30 say rtrim("รหัสสินค้า")
  @ 6,40 say rtrim("ชื่อสินค้า")
  @ 6,55 say rtrim("ราคาทุน")
  @ 6,64 say rtrim("จำนวน")
  @ 6,70 say rtrim("รวมเงิน")
  @ 7,2 say repl("*",75)
do while !eof() .and. op!=3
  locate for suppid=val(_suppid)
sele supplier
  locate for suppid=val(_suppid)
  if found()
     @ r,2 say rtrim(suppname)
  else
     @ 5,2 clear to 19,77
     @11,10 to 13,65
     @12,15 say "รหัสผู้จำหน่าย "+_suppid+ "ไม่พบในแฟ้มข้อมูล"
     inkey(0);exit
  endif
  do while found()
    tot=0
    sele receive
    _recid=recid
    @ r,20 say ltrim(str(_recid))
    sele receidet
       locate for recid=_recid
       do while found()
          _proid=proid
          @r,28 say ltrim(str(proid))
          sele product
          locate for proid=_proid
          if found()
             _cost=cost
             @ r,33 say rtrim(proname)
             @ r,52 say ltrim(str(cost))
          endif
          sele receidet
          @ r,65 say ltrim(str(rquant))
          tot=_cost*rquant
          sum=sum+tot
          @ r,70 say tot pict "99,999.99"
          skip
          r++
          locate rest for recid=_recid
          if r=pg
            if op=1
               @22,5 say "***enter ดูหน้าต่อไป***"
               inkey(0)
               @8,2 clear to 19,77
               page++
               @ 2,66 say "page :"+ltrim(str(page))
           else
              eject
           endif
           r=setr
         else
           @ 22,25 clear to 22,75
           @22,25 say "*****enter กลับเมนูหลัก***"
        endif
      enddo
      r--
      sele receive
      skip;r++
      locate rest for suppid=val(_suppid)
    enddo
    if eof()
    @ r,2 say repl("*",75)
    @ r+1,50 say "รวมทั้งหมด"
    @ r+1,67 say sum pict "9,999,999.99"
    set device to screen
    inkey(0)
  endif
enddo
set color to w/bg+
cls
set color to w/b
@ 1,2 clear to 3,77
set color to w/gr
@5,2 clear to 19,77
set color to w/rb+
@ 21,2 clear to 23,77

@ 22,15 say "คุณต้องการดูรายงานต่อไปหรือไม่"
@ 22,55 prompt [Yes]
@22,60 prompt [No]
menu to ans
if ans=2
   return
endif
enddo
close all
inkey(0)
return
//=========================
//รายงานการขายตามรหัสพนักงาน
procedure empsale
  ans=1
  do while ans=1
  sele 1;use employee
  sele 2;use product
  sele 3;use saledet
  sele 4;use sale
set color to w/bg+
cls
set color to w/b
@ 1,2 clear to 3,77
set color to w/gr
@5,2 clear to 19,77
set color to w/rb+
@ 21,2 clear to 23,77

  op=alert("เลือกผลลัพธ์รายงาน",{"จอภาพ","เครื่องพิมพ์","กลับเมนู"})
  if op=1
   pg=19
   setr=8
  elseif op=2
    @ 10,20 say "กรุณาป้อนข้อมูลรหัสพนักงาน :"
    pg=45
    setr=8
    set device to printer
  else
    close all
    return
  endif
  r=setr
  page=1
  sum=0
  _empid="     "
  @ 2,66 say "page : "+ltrim(str(page))
  @2,22 say "รายงานการขายตามรหัสพนักงานที่"
  @ 2,50 get _empid
  read
  @ 2,52 say _empid
  @ 5,2 say repl("*",75)
  @ 6,2 say rtrim("ชื่อพนักงาน")
  @ 6,20 say rtrim("รหัสซื้อ")
  @ 6,30 say rtrim("รหัสสินค้า")
  @ 6,40 say rtrim("ชื่อสินค้า")
  @ 6,55 say rtrim("ราคาทุน")
  @ 6,64 say rtrim("จำนวน")
  @ 6,70 say rtrim("รวมเงิน")
  @ 7,2 say repl("*",75)
do while !eof() .and. op!=3
  locate for empid=val(_empid)
sele 1
  locate for empid=val(_empid)
  if found()
     @ r,2 say rtrim(empname)
  else
     @ 5,2 clear to 19,77
     @11,10 to 13,65
     @12,15 say "รหัสพนักงาน "+_empid+ "ไม่พบในแฟ้มข้อมูล"
     inkey(0);exit
  endif
  do while found()
    tot=0
    sele 4
    _saleid=saleid
    @ r,20 say ltrim(str(_saleid))
    sele 3
       locate for saleid=_saleid
       do while found()
          _proid=proid
          @r,28 say ltrim(str(proid))
          sele 2
          locate for proid=_proid
          if found()
             _cost=cost
             @ r,33 say rtrim(proname)
             @ r,52 say ltrim(str(cost))
          endif
          sele 3
          @ r,65 say ltrim(str(quant))
          tot=_cost*quant
          sum=sum+tot
          @ r,70 say tot pict "99,999.99"
          skip
          r++
          locate rest for saleid=_saleid
          if r=pg
            if op=1
               @22,5 say "***enter ดูหน้าต่อไป***"
               inkey(0)
               @8,2 clear to 19,77
               page++
               @ 2,66 say "page :"+ltrim(str(page))
           else
              eject
           endif
           r=setr
         else
           @ 22,25 clear to 22,75
           @22,25 say "*****enter กลับเมนูหลัก***"
        endif
      enddo
      r--
      sele 4
      skip;r++
      locate rest for empid=val(_empid)
    enddo
    if eof()
    @ r,2 say repl("*",75)
    @ r+1,50 say "รวมทั้งหมด"
    @ r+1,67 say sum pict "9,999,999.99"
    set device to screen
    inkey(0)
  endif
enddo
set color to w/bg+
cls
set color to w/b
@ 1,2 clear to 3,77
set color to w/gr
@5,2 clear to 19,77
set color to w/rb+
@ 21,2 clear to 23,77

@ 22,15 say "คุณต้องการดูรายงานต่อไปหรือไม่"
@ 22,55 prompt [Yes]
@22,60 prompt [No]
menu to ans
if ans=2
   return
endif
enddo
close all
inkey(0)
return
//==========================
//รายงานการขายตามรหัสลูกค้า
procedure custsale
  ans=1
  do while ans=1
  sele 1;use customer
  sele 2;use product
  sele 3;use saledet
  sele 4;use sale
set color to w/bg+
cls
set color to w/b
@ 1,2 clear to 3,77
set color to w/gr
@5,2 clear to 19,77
set color to w/rb+
@ 21,2 clear to 23,77

  op=alert("เลือกผลลัพธ์รายงาน",{"จอภาพ","เครื่องพิมพ์","กลับเมนู"})
  if op=1
   pg=19
   setr=8
  elseif op=2
    @ 10,20 say "กรุณาป้อนข้อมูลรหัสลูกค้า :"
    pg=45
    setr=8
    set device to printer
  else
    close all
    return
  endif
  r=setr
  page=1
  sum=0
  _custid="       "
  @ 2,66 say "page : "+ltrim(str(page))
  @2,22 say "รายงานการขายตามรหัสลูกค้า"
  @ 2,50 get _custid
  read
  @ 2,52 say _custid
  @ 5,2 say repl("*",75)
  @ 6,2 say rtrim("ชื่อลูกค้า")
  @ 6,20 say rtrim("รหัสซื้อ")
  @ 6,30 say rtrim("รหัสสินค้า")
  @ 6,40 say rtrim("ชื่อสินค้า")
  @ 6,55 say rtrim("ราคาทุน")
  @ 6,64 say rtrim("จำนวน")
  @ 6,70 say rtrim("รวมเงิน")
  @ 7,2 say repl("*",75)
do while !eof() .and. op!=3
  locate for custid=val(_custid)
sele 1
  locate for custid=val(_custid)
  if found()
     @ r,2 say rtrim(custname)
  else
     @ 5,2 clear to 19,77
     @11,10 to 13,65
     @12,15 say "รหัสพนักงาน "+_custid+ "ไม่พบในแฟ้มข้อมูล"
     inkey(0);exit
  endif
  do while found()
    tot=0
    sele 4
    _saleid=saleid
    @ r,20 say ltrim(str(_saleid))
    sele 3
       locate for saleid=_saleid
       do while found()
          _proid=proid
          @r,28 say ltrim(str(proid))
          sele 2
          locate for proid=_proid
          if found()
             _cost=cost
             @ r,33 say rtrim(proname)
             @ r,52 say ltrim(str(cost))
          endif
          sele 3
          @ r,65 say ltrim(str(quant))
          tot=_cost*quant
          sum=sum+tot
          @ r,70 say tot pict "99,999.99"
          skip
          r++
          locate rest for saleid=_saleid
          if r=pg
            if op=1
               @22,5 say "***enter ดูหน้าต่อไป***"
               inkey(0)
               @8,2 clear to 19,77
               page++
               @ 2,66 say "page :"+ltrim(str(page))
           else
              eject
           endif
           r=setr
         else
           @ 22,25 clear to 22,75
           @22,25 say "*****enter กลับเมนูหลัก***"
        endif
      enddo
      r--
      sele 4
      skip;r++
      locate rest for custid=val(_custid)
    enddo
    if eof()
    @ r,2 say repl("*",75)
    @ r+1,50 say "รวมทั้งหมด"
    @ r+1,67 say sum pict "9,999,999.99"
    set device to screen
    inkey(0)
  endif
enddo
set color to w/bg+
cls
set color to w/b
@ 1,2 clear to 3,77
set color to w/gr
@5,2 clear to 19,77
set color to w/rb+
@ 21,2 clear to 23,77

@ 22,15 say "คุณต้องการดูรายงานต่อไปหรือไม่"
@ 22,55 prompt [Yes]
@22,60 prompt [No]
menu to ans
if ans=2
   return
endif
enddo
close all
inkey(0)
return
//==========================
//รายงานการขายประจำวัน
procedure sales
  ans=1
  do while ans=1
  sele 1;use customer
  sele 2;use product
  sele 3;use saledet
  sele 4;use sale
set color to w/bg+
cls
set color to w/b
@ 1,2 clear to 3,77
set color to w/gr
@5,2 clear to 19,77
set color to w/rb+
@ 21,2 clear to 23,77

  op=alert("เลือกผลลัพธ์รายงาน",{"จอภาพ","เครื่องพิมพ์","กลับเมนู"})
  if op=1
   pg=19
   setr=8
  elseif op=2
    @ 10,20 say "input date of sale :"
    pg=45
    setr=8
    set device to printer
  else
    close all
    return
  endif
  r=setr
  page=1
  sum=0
  set century on
  _date=ctod("  /  /     ")
  @ 2,66 say "page : "+ltrim(str(page))
  @2,22 say "รายงานการขาย"
  set color to b/gr,/w
  @ 2,34 say "ประจำวันที่" get _date
  read
  @ 2,46 say _date
  @ 5,2 say repl("*",75)
  @6,2 say rtrim("รหัสขาย")
  @6,12 say rtrim("ชื่อลูกค้า")
  @6,25 say rtrim("รหัสสินค้า")
  @6,39 say rtrim("ชื่อสินค้า")
  @6,56 say rtrim("ราคา")
  @6,62 say rtrim("จำนวนเงิน")
  @6,70 say rtrim("รวมเงิน")
  @7,2 say repl("*",75)
do while !eof() .and. op!=3
  locate for date_sale = _date
  if !found()
     @ 5,2 clear to 19,77
     @11,10 to 13,65
     @12,15 say "ไม่ปรากฎวันที่ขายสินค้า "+dtoc(_date)+ "ในแฟ้มข้อมูล"
     inkey(0);exit
  endif
  do while found()
    tot=0
    _saleid=saleid
    _custid=custid
    @ r,3 say ltrim(str(saleid))
    sele 1
    locate for custid=_custid
    if found()
       @ r,8 say rtrim(custname)
    else
       @r,8 say "ลูกค้าขาจร"
       endif
       sele 3
       locate for saleid=_saleid
       do while found()
          _proid=proid
          @r,27 say ltrim(str(proid))
          sele 2
          locate for proid=_proid
          if found()
             _price=price
             @ r,32 say rtrim(proname)
             @ r,50 say price
          endif
          sele 3
          @ r,65 say ltrim(str(quant))
          tot=_price*quant
          sum=sum+tot
          @ r,68 say tot pict "99,999.99"
          skip
          r++
          locate rest for saleid=_saleid
          if r=pg
            if op=1
               @22,5 say "***enter ดูหน้าต่อไป***"
               inkey(0)
               @8,2 clear to 19,77
               page++
               @ 2,66 say "page :"+ltrim(str(page))
           else
              eject
           endif
           r=setr
         else
           @ 22,25 clear to 22,75
           @22,25 say "*****enter กลับเมนูหลัก***"
        endif
      enddo
      r--
      sele 4
      skip;r++
      locate rest for date_sale=_date
    enddo
    if eof()
    @ r,2 say repl("*",75)
    @ r+1,50 say "total"
    @ r+1,67 say sum pict "9,999,999.99"
    set device to screen
    inkey(0)
  endif
enddo
set color to w/bg+
cls
set color to w/b
@ 1,2 clear to 3,77
set color to w/gr
@5,2 clear to 19,77
set color to w/rb+
@ 21,2 clear to 23,77

@ 22,15 say "คุณต้องการดูรายงานต่อไปหรือไม่"
@ 22,55 prompt [Yes]
@22,60 prompt [No]
menu to ans
if ans=2
   close all
   return
endif
enddo
inkey(0)
return
//=============================
//รายงานการสั่งซื้อประจำวัน
procedure orders
  ans=1
  do while ans=1
  sele 1;use supplier
  sele 2;use product
  sele 3;use orderdet
  sele 4;use order
set color to w/bg+
cls
set color to w/b
@ 1,2 clear to 3,77
set color to w/gr
@5,2 clear to 19,77
set color to w/rb+
@ 21,2 clear to 23,77

  op=alert("เลือกผลลัพธ์รายงาน",{"จอภาพ","เครื่องพิมพ์","กลับเมนู"})
  if op=1
   pg=19
   setr=8
  elseif op=2
    @ 10,20 say "input date of order :"
    pg=45
    setr=8
    set device to printer
  else
    close all
    return
  endif
  r=setr
  page=1
  sum=0
  set century on
  _date=ctod("   ")
  @ 2,66 say "page : "+ltrim(str(page))
  @2,22 say "รายงานการสั่งซื้อ"
  set color to b/gr,/w

  @ 2,40 say "ประจำวันที่" get _date
  read
  @ 2,52 say _date
  @ 5,2 say repl("*",76)
  @6,2 say rtrim("รหัส")
  @6,10 say rtrim("ชื่อผู้จำหน่าย")
  @6,26 say rtrim("รหัสสินค้า")
  @6,40 say rtrim("ชื่อสินค้า")
  @6,55 say rtrim("ราคาทุน")
  @6,64 say rtrim("จำนวนเงิน")
  @6,73 say rtrim("รวมเงิน")
  @7,2 say repl("*",76)
do while !eof() .and. op!=3
  locate for date_order = _date
  if !found()
     @ 5,2 clear to 19,77
     @11,10 to 13,65
     @12,15 say "ไม่ปรากฎวันที่สั่งซื้อสินค้า "+dtoc(_date)+ "ในแฟ้มข้อมูล"
     inkey(0);exit
  endif
  do while found()
    tot=0
    _orderid=orderid
    _suppid=suppid
    @ r,2 say ltrim(str(orderid))
    sele 1
    locate for suppid=_suppid
    if found()
       @ r,7 say rtrim(suppname)
       endif
       sele 3
       locate for orderid=_orderid
       do while found()
          _proid=proid
          @r,27 say ltrim(str(proid))
          sele 2
          locate for proid=_proid
          if found()
             _cost=cost
             @ r,33 say rtrim(proname)
             @ r,50 say cost
          endif
          sele 3
          @ r,65 say ltrim(str(pquant))
          tot=_cost*pquant
          sum=sum+tot
          @ r,70 say tot pict "999,999.99"
          skip
          r++
          locate rest for orderid=_orderid
          if r=pg
            if op=1
               @22,5 say "***enter ดูหน้าต่อไป***"
               inkey(0)
               @8,2 clear to 19,77
               page++
               @ 2,66 say "page :"+ltrim(str(page))
           else
              eject
           endif
           r=setr
         else
           @ 22,25 clear to 22,75
           @22,25 say "*****enter กลับเมนูหลัก***"
        endif
      enddo
      r--
      sele 4
      skip;r++
      locate rest for date_order =_date
    enddo
    if eof()
    @ r,2 say repl("*",75)
    @ r+1,50 say "total"
    @ r+1,67 say sum pict "999,999.99"
    set device to screen
    inkey(0)
  endif
enddo
set color to w/bg+
cls
set color to w/b
@ 1,2 clear to 3,77
set color to w/gr
@5,2 clear to 19,77
set color to w/rb+
@ 21,2 clear to 23,77

@ 22,15 say "คุณต้องการดูรายงานต่อไปหรือไม่"
@ 22,55 prompt [yes]
@22,60 prompt [no]
menu to ans
if ans=2
   return
endif
enddo
inkey(0)
return
//===========================
//รายงานการับประจำวัน
procedure drec
  ans=1
  do while ans=1
  sele 1;use order
  sele 2;use product
  sele 3;use receidet
  sele 4;use receive
  sele 5;use supplier
set color to w/bg+
cls
set color to w/b
@ 1,2 clear to 3,77
set color to w/gr
@5,2 clear to 19,77
set color to w/rb+
@ 21,2 clear to 23,77
sele receive
  op=alert("เลือกผลลัพธ์รายงาน",{"จอภาพ","เครื่องพิมพ์","กลับเมนู"})
  if op=1
   pg=19
   setr=8
  elseif op=2
    @ 10,20 say "input date of recive :"
    pg=45
    setr=8
    set device to printer
  else
    close all
    return
  endif
  r=setr
  page=1
  sum=0
  set century on
  _date=ctod("   ")
  @ 2,66 say "page : "+ltrim(str(page))
  @2,22 say "รายงานการรับสินค้า"
  set color to b/gr,/w

  @ 2,40 say "ประจำวันที่" get _date
  read
  @ 2,52 say _date
  @ 5,2 say repl("*",76)
  @6,2 say rtrim("รหัส")
  @6,10 say rtrim("ชื่อพนักงาน")
  @6,24 say rtrim("รหัสสินค้า")
  @6,38 say rtrim("ชื่อสินค้า")
  @6,53 say rtrim("ราคาทุน")
  @6,62 say rtrim("จำนวน")
  @6,65 say rtrim("รวมเงิน")
  @7,2 say repl("*",76)
do while !eof() .and. op!=3
  locate for date_rec = _date
  if !found()
     @ 5,2 clear to 19,77
     @11,10 to 13,65
     @12,15 say "ไม่ปรากฎวันที่รับสินค้า "+dtoc(_date)+ "ในแฟ้มข้อมูล"
     inkey(0);exit
  endif
  do while found()
    tot=0
    _recid=recid
    _suppid=suppid
    @ r,2 say ltrim(str(recid))
    sele order
  locate for suppid=_suppid
    if found()
       @ r,8 say rtrim(supplier->suppname)
       endif
       sele receidet
       locate for recid=_recid
       do while found()
          _proid=proid
          @r,24 say ltrim(str(proid))
          sele product
          locate for proid=_proid
          if found()
             _cost=cost
             @ r,35 say rtrim(proname)
             @ r,47 say cost
          endif
          sele receidet
          @ r,60 say ltrim(str(rquant))
          tot=_cost*rquant
          sum=sum+tot
          @ r,66 say tot pict "99,999.99"
          skip
          r++
          locate rest for recid=_recid
          if r=pg
            if op=1
               @22,5 say "***enter ดูหน้าต่อไป***"
               inkey(0)
               @8,2 clear to 19,77
               page++
               @ 2,66 say "page :"+ltrim(str(page))
           else
              eject
           endif
           r=setr
         else
           @ 22,25 clear to 22,75
           @22,25 say "*****enter กลับเมนูหลัก***"
        endif
      enddo
      r--
      sele receive
      skip;r++
      locate rest for date_rec =_date
    enddo
    if eof()
    @ r,2 say repl("*",75)
    @ r+1,50 say "total"
    @ r+1,67 say sum pict "999,999.99"
    set device to screen
    inkey(0)
  endif
enddo
set color to w/bg+
cls
set color to w/b
@ 1,2 clear to 3,77
set color to w/gr
@5,2 clear to 19,77
set color to w/rb+
@ 21,2 clear to 23,77

@ 22,15 say "คุณต้องการดูรายงานต่อไปหรือไม่"
@ 22,55 prompt [yes]
@22,60 prompt [no]
menu to ans
if ans=2
   return
endif
enddo
inkey(0)
return
//===========================
//รายงานเจ้าหนี้ที่ค้างชำระเงิน
procedure pay1
set color to w/bg+
cls
set color to w/b
@ 1,2 clear to 3,77
set color to w/gr
@5,2 clear to 19,77
set color to w/rb+
@ 21,2 clear to 23,77

sele 1; use supplier
sele 2; use payable
sele 3; use receive
  op=alert("เลือกผลลัพธ์ของรายงาน",{"จอภาพ","เครื่องพิมพ์","ยกเลิก"})
  if op=1
   pg=19
   setr=8
  elseif op=2
    pg=45
    setr=8
    set device to printer
  else
    close all
    return
  endif
  r=setr
page=1
sum1=0
sum2=0
sum3=0
set century on
today=date()
@ 2,66 say "PAGE :"+ltrim(str(page))
@ 2,28 say "รายงานเจ้าหนี้ที่ค้างชำระ"
@ 5,2 say repl("*",76)
@ 6,2 say rtrim("รหัส")
@ 6,11 say rtrim("ชื่อผู้จำหน่าย")
@ 6,28 say rtrim("วันรับสินค้า")
@ 6,37 say rtrim("วันที่ชำระ")
@ 6,48 say rtrim("ยอดรวม")
@ 6,55 say rtrim("ยอดชำระ")
@ 6,68 say rtrim("ยอดค้าง")
@ 7,2 say repl("_",76)

sele payable
set filter to payable->pay_less < payable->pay_money
goto top
do while !eof()

   _datepaid=date_paid
   _daterec=receive->date_rec
   _recid=recid
   _paymoney=pay_money
   _payless=pay_less
   _suppid = suppid
         sele supplier
         locate for suppid = _suppid
         if found()
           @ r,2 say ltrim(str(suppid))
           @ r,10 say rtrim(suppname)
         endif
         if r=pg
                if op=1
                     @ 22,25 say "**** กด enter ดูหน้าต่อไป****"
                     inkey(0)
                      @ 8,2 clear to 19,77
                       page++
                      @ 2,66 say "page :"+ltrim(str(page))
                 else
                      eject
                 endif
                 r=setr
         else
                 @ 22,25 clear to 22,75
                 @ 22,25 say "*** กด enter to menu ****"
         endif
         @ r,25 say _daterec
         @ r,35 say _datepaid
         @ r,44 say _paymoney pict "999,999.99"
         @ r,56 say _payless pict "999,999.99"
              _less=_paymoney-_payless
              sum1=sum1+_less
              sum2=sum2+_paymoney
              sum3=sum3+_payless
         @ r,68 say _less pict "99,999.99"
    sele payable
    r++
    skip
enddo
                @ r,2 say repl("*",75)
                @ r+1,20 say "รวมเงิน"
                @ r+1,41 say sum2 pict "9,999,999.99"
                @ r+1,54 say sum3 pict "9,999,999.99"
                @ r+1,67 say sum1 pict "9,999,999.99"

close all
return
//=====================
//รายงานการสั่งซื้อตามรหัสพนักงาน
procedure emprep
  ans=1
  do while ans=1
  sele 1;use employee
  sele 2;use product
  sele 3;use orderdet
  sele 4;use order
  sele order
set color to w/bg+
cls
set color to w/b
@ 1,2 clear to 3,77
set color to w/gr
@5,2 clear to 19,77
set color to w/rb+
@ 21,2 clear to 23,77

  op=alert("เลือกผลลัพธ์รายงาน",{"จอภาพ","เครื่องพิมพ์","กลับเมนู"})
  if op=1
   pg=19
   setr=8
  elseif op=2
    @ 10,20 say "กรุณาป้อนข้อมูลรหัสพนักงาน :"
    pg=45
    setr=8
    set device to printer
  else
    close all
    return
  endif
  r=setr
  page=1
  sum=0
  _empid="     "
  @ 2,66 say "page : "+ltrim(str(page))
  @2,22 say "รายงานการสั่งซื้อตามรหัสพนักงานที่"
  @ 2,50 get _empid
  read
  @ 2,52 say _empid
  @ 5,2 say repl("*",75)
  @ 6,2 say rtrim("ชื่อพนักงาน")
  @ 6,20 say rtrim("รหัสซื้อ")
  @ 6,30 say rtrim("รหัสสินค้า")
  @ 6,40 say rtrim("ชื่อสินค้า")
  @ 6,55 say rtrim("ราคาทุน")
  @ 6,64 say rtrim("จำนวน")
  @ 6,70 say rtrim("รวมเงิน")
  @ 7,2 say repl("*",75)
do while !eof() .and. op!=3
sele employee
  locate for empid=val(_empid)
  if found()
     @ r,2 say rtrim(empname)
  else
     @ 5,2 clear to 19,77
     @11,10 to 13,65
     @12,15 say "รหัสพนักงาน "+_empid+ "ไม่พบในแฟ้มข้อมูล"
     inkey(0);exit
  endif
  do while found()
    tot=0
        sele order
        _orderid=orderid
        @ r,20 say ltrim(str(_orderid))
    sele orderdet
       locate for orderid=_orderid
       do while found()
          _proid=proid
          @r,28 say ltrim(str(proid))
          sele product
          locate for proid=_proid
          if found()
             _cost=cost
             @ r,33 say rtrim(proname)
             @ r,52 say ltrim(str(cost))
          endif
          sele orderdet
          @ r,65 say ltrim(str(pquant))
          tot=_cost*pquant
          sum=sum+tot
          @ r,70 say tot pict "99,999.99"
          skip
          r++
          locate rest for orderid=_orderid
          if r=pg
            if op=1
               @22,5 say "***enter ดูหน้าต่อไป***"
               inkey(0)
               @8,2 clear to 19,77
               page++
               @ 2,66 say "page :"+ltrim(str(page))
           else
              eject
           endif
           r=setr
         else
           @ 22,25 clear to 22,75
           @22,25 say "*****enter กลับเมนูหลัก***"
        endif
      enddo
      r--
      sele order
      skip;r++
      locate rest for empid=val(_empid)
    enddo
    if eof()
    @ r,2 say repl("*",75)
    @ r+1,50 say "รวมทั้งหมด"
    @ r+1,67 say sum pict "9,999,999.99"
    set device to screen
    inkey(0)
  endif
enddo
set color to w/bg+
cls
set color to w/b
@ 1,2 clear to 3,77
set color to w/gr
@5,2 clear to 19,77
set color to w/rb+
@ 21,2 clear to 23,77

@ 22,15 say "คุณต้องการดูรายงานต่อไปหรือไม่"
@ 22,55 prompt [Yes]
@22,60 prompt [No]
menu to ans
if ans=2
   return
endif
enddo
close all
inkey(0)
return
//==============================
//รายงานการรรับตามรหัสพนักงาน
procedure emprec
  ans=1
  do while ans=1
  sele 1;use employee
  sele 2;use product
  sele 3;use receidet
  sele 4;use receive
  sele receive
set color to w/bg+
cls
set color to w/b
@ 1,2 clear to 3,77
set color to w/gr
@5,2 clear to 19,77
set color to w/rb+
@ 21,2 clear to 23,77

  op=alert("เลือกผลลัพธ์รายงาน",{"จอภาพ","เครื่องพิมพ์","กลับเมนู"})
  if op=1
   pg=19
   setr=8
  elseif op=2
    @ 10,20 say "กรุณาป้อนข้อมูลรหัสพนักงาน :"
    pg=45
    setr=8
    set device to printer
  else
    close all
    return
  endif
  r=setr
  page=1
  sum=0
  _empid="     "
  @ 2,66 say "page : "+ltrim(str(page))
  @2,22 say "รายงานการรับตามรหัสพนักงานที่"
  @ 2,50 get _empid
  read
  @ 2,52 say _empid
  @ 5,2 say repl("*",75)
  @ 6,2 say rtrim("ชื่อพนักงาน")
  @ 6,20 say rtrim("รหัสซื้อ")
  @ 6,30 say rtrim("รหัสสินค้า")
  @ 6,40 say rtrim("ชื่อสินค้า")
  @ 6,55 say rtrim("ราคาทุน")
  @ 6,64 say rtrim("จำนวน")
  @ 6,70 say rtrim("รวมเงิน")
  @ 7,2 say repl("*",75)
do while !eof() .and. op!=3
sele employee
  locate for empid=val(_empid)
  if found()
     @ r,2 say rtrim(empname)
  else
     @ 5,2 clear to 19,77
     @11,10 to 13,65
     @12,15 say "รหัสพนักงาน "+_empid+ "ไม่พบในแฟ้มข้อมูล"
     inkey(0);exit
  endif
  do while found()
    tot=0
        sele receive
        _recid=recid
        @ r,20 say ltrim(str(_recid))
    sele receidet
       locate for recid=_recid
       do while found()
          _proid=proid
          @r,28 say ltrim(str(proid))
          sele product
          locate for proid=_proid
          if found()
             _cost=cost
             @ r,33 say rtrim(proname)
             @ r,52 say ltrim(str(cost))
          endif
          sele receidet
          @ r,65 say ltrim(str(rquant))
          tot=_cost*rquant
          sum=sum+tot
          @ r,70 say tot pict "99,999.99"
          skip
          r++
          locate rest for recid=_recid
          if r=pg
            if op=1
               @22,5 say "***enter ดูหน้าต่อไป***"
               inkey(0)
               @8,2 clear to 19,77
               page++
               @ 2,66 say "page :"+ltrim(str(page))
           else
              eject
           endif
           r=setr
         else
           @ 22,25 clear to 22,75
           @22,25 say "*****enter กลับเมนูหลัก***"
        endif
      enddo
      r--
      sele receive
      skip;r++
      locate rest for empid=val(_empid)
    enddo
    if eof()
    @ r,2 say repl("*",75)
    @ r+1,50 say "รวมทั้งหมด"
    @ r+1,67 say sum pict "9,999,999.99"
    set device to screen
    inkey(0)
  endif
enddo
set color to w/bg+
cls
set color to w/b
@ 1,2 clear to 3,77
set color to w/gr
@5,2 clear to 19,77
set color to w/rb+
@ 21,2 clear to 23,77

@ 22,15 say "คุณต้องการดูรายงานต่อไปหรือไม่"
@ 22,55 prompt [Yes]
@22,60 prompt [No]
menu to ans
if ans=2
   return
endif
enddo
close all
inkey(0)
return
//==============================
1