HTML> LOVE
บทนำระบบ
ศึกษาปัญหา
ศึกษาความเป็นไปได้
ศึกษาระบบเดิม
ออกแบบระบบใหม่
พัฒนาระบบ
ติดตั้ง
บำรุงรักษา
โปรแกรมเมนู
โปรแกรมงานหลัก
โปรแกรมแสดงข้อมูล
โปรแกรมปรับปรุงข้อมูล
โปรแกรมเกี่ยวกับรายงาน
โปรแกรมเกี่ยวกับระบบ
//การสรุปยอดขายสินค้าตามเดือนและปี
procedure ports01
ans=1
do while ans=1
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 customer
   sele 2; use product
   sele 3; use saledet
   sele 4; use sale
   op=alert("เลือกผลลัพธ์ของรายงาน",{"จอภาพ","เครื่องพิมพ์","ยกเลิก"})
   if op=1
      pg=19
      setr=8
   elseif op=2
     @ 10,15 say "กรุณาใส่เดือนและปีที่ต้องการ :"
     pg=45
     setr=8
     set device to printer
   else
     close all
     return
   endif
   r=setr
   page=1
   sum=0
   set century on
   _month="  "
   _year="    "
   @ 2,66 say "page :"+ltrim(str(page))
  set color to b/gr,/w
   @ 2,10 say "รายงานสรุปการขายประจำเดือน :" get _month
   @ 2,43 say "ปี :" get _year
   read
   @ 2,39 say _month
   @ 2,48 say _year
   @ 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 month(date_sale)=val(_month) .and.;
    year(date_sale)=val(_year)
    if !found()
    @ 5,2 clear to 19,77
    @ 11,10 to 13,65
    @ 12,15 say "ไม่ปรากฎเดือนที่ขายสินค้า"+_month+ "ในแฟ้มข้อมูล"
      inkey(0);exit
    endif
    do while found()
      tot=0
      _saleid=saleid
      _custid=custid
      @ r,2 say ltrim(str(saleid))
      sele 1
      locate for custid=_custid
      if found()
        @ r,7 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,49 say price
        endif
        sele 3
        @ r,65 say ltrim(str(quant))
        tot=_price*quant
        sum=sum+tot
        @ r,69 say tot pict "99,999.99"
        skip
        r++
        locate rest for saleid=_saleid
        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 กลับเมนูหลัก***"
        endif
      enddo
      r--
      sele 4
      skip;r++
      locate rest for month(date_sale)=val(_month);
      .and. year(date_sale)=val(_year)
     enddo
      @ r,2 say repl("*",75)
      @ r+1,37 say "รวมยอดขายในเดือนนี้ ="
      @ r+1,66 say sum pict "9,999,999.99"
      set device to screen
      enddo
        @ 22,5 clear to 22,75
        @ 22,10 say "คุณต้องการทำต่อหรือไม่"
        @ 22,40 prompt "[Yes]"
        @ 22,50 prompt "[No]"
      menu to ans
      if ans=2
       close all
      return
      endif
  enddo
close all
inkey(0)
return
//===========================
//การสรุปยอดสั่งซื้อสินค้าตามเดือนและปี
procedure ports06
ans=1
do while ans=1
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 product
   sele 3; use orderdet
   sele 4; use order
   op=alert("เลือกผลลัพธ์ของรายงาน",{"จอภาพ","เครื่องพิมพ์","ยกเลิก"})
   if op=1
      pg=19
      setr=8
   elseif op=2
     @ 10,15 say "กรุณาใส่เดือนและปีที่ต้องการ :"
     pg=45
     setr=8
     set device to printer
   else
     close all
     return
   endif
   r=setr
   page=1
   sum=0
   _month="  "
   _year=space(4)
   @ 2,66 say "page :"+ltrim(str(page))
  set color to b/gr,/w
   @ 2,10 say "รายงานสรุปการสั่งซื้อประจำเดือน " get _month
   @ 2,43 say " ปี :" get _year
   read
   @ 2,37 say _month
   @ 2,48 say _year
   @ 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 month(date_order)=val(_month) .and. year(date_order)=val(_year)
    if !found()
    @ 5,2 clear to 19,77
    @ 11,10 to 13,65
    @ 12,15 say "ไม่ปรากฎเดือนที่สั่งซื้อสินค้า"+_month+ "ในแฟ้มข้อมูล"
      inkey(0);exit
    endif
    do while found()
      tot=0
      _orderid=orderid
      _suppid=suppid
      @ r,2 say ltrim(str(suppid))
      sele 1
      locate for suppid=_suppid
      if found()
        @ r,7 say rtrim(suppname)
      else
        @ r,8 say "ลูกค้าขาจร"
      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()
           _price=price
           @ r,32 say rtrim(proname)
           @ r,49 say price
        endif
        sele 3
        @ r,65 say ltrim(str(pquant))
        tot=_price*pquant
        sum=sum+tot
        @ r,69 say tot pict "99,999.99"
        skip
        r++
        locate rest for orderid=_orderid
        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 กลับเมนูหลัก***"
        endif
      enddo
      r--
      sele 4
      skip;r++
      locate rest for month(date_order)=val(_month).and. year (date_order)=val(_year)
     enddo
      @ r,2 say repl("*",75)
      @ r+1,37 say "รวมยอดสั่งซื้อในเดือนนี้ ="
      @ r+1,66 say sum pict "9,999,999.99"
      set device to screen
      enddo
        @ 22,5 clear to 22,75
        @ 22,10 say "คุณต้องการทำต่อหรือไม่"
        @ 22,40 prompt "[yes]"
        @ 22,50 prompt "[no]"
      menu to ans
      if ans=2
       close all
      return
      endif
  enddo
close all
inkey(0)
return
//============================
//การสรุปยอดการรับสินค้าตามเดือนและปี
procedure ports11
ans=1
do while ans=1
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 product
   sele 3; use receidet
   sele 4; use receive
   op=alert("เลือกผลลัพธ์ของรายงาน",{"จอภาพ","เครื่องพิมพ์","ยกเลิก"})
   if op=1
      pg=19
      setr=8
   elseif op=2
     @ 10,15 say "กรุณาใส่เดือนและปีที่ต้องการ : "
     pg=45
     setr=8
     set device to printer
   else
     close all
     return
   endif
   r=setr
   page=1
   sum=0
   set century on
   _month="  "
   _year="    "
   @ 2,66 say "page :"+ltrim(str(page))
  set color to b/gr,/w
   @ 2,10 say "รายงานสรุปการรับประจำเดือน :" get _month
   @ 2,43 say "ปี :" get _year
   read
   @ 2,39 say _month
   @ 2,48 say _year
   @ 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 month(date_rec)=val(_month) .and.;
    year(date_rec)=val(_year)
    if !found()
    @ 5,2 clear to 19,77
    @ 11,10 to 13,65
    @ 12,15 say "ไม่ปรากฎเดือนที่ขายสินค้า"+_month+ "ในแฟ้มข้อมูล"
      inkey(0);exit
    endif
    do while found()
      tot=0
      _recid=recid
      _suppid=suppid
      @ r,2 say ltrim(str(recid))
      sele supplier
      locate for suppid=_suppid
      if found()
        @ r,7 say rtrim(suppname)
      else
        @ r,8 say "ลูกค้าขาจร"
      endif
      sele receidet
      locate for recid=_recid
      do while found()
        _proid=proid
        @r,27 say ltrim(str(proid))
        sele product
        locate for proid=_proid
        if found()
           _price=price
           @ r,32 say rtrim(proname)
           @ r,49 say price
        endif
        sele receidet
        @ r,65 say ltrim(str(rquant))
        tot=_price*rquant
        sum=sum+tot
        @ r,69 say tot pict "99,999.99"
        skip
        r++
        locate rest for recid=_recid
        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 กลับเมนูหลัก***"
        endif
      enddo
      r--
      sele 4
      skip;r++
      locate rest for month(date_rec)=val(_month);
      .and. year(date_rec)=val(_year)
     enddo
      @ r,2 say repl("*",75)
      @ r+1,37 say "รวมยอดขายในเดือนนี้ ="
      @ r+1,66 say sum pict "9,999,999.99"
      set device to screen
      enddo
        @ 22,5 clear to 22,75
        @ 22,10 say "คุณต้องการทำต่อหรือไม่"
        @ 22,40 prompt "[Yes]"
        @ 22,50 prompt "[No]"
      menu to ans
      if ans=2
       close all
      return
      endif
  enddo
close all
inkey(0)
return
//====================================
//การสรุปยอดการขายสินค้าตามพนักงานขายตามเดือน
procedure ports02
ans=1
do while ans=1
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 product
   sele 2; use saledet
   sele 3; use sale
   sele 4; use employee
   op=alert("เลือกผลลัพธ์ของรายงาน",{"จอภาพ","เครื่องพิมพ์","ยกเลิก"})
   if op=1
      pg=19
      setr=8
   elseif op=2
     @ 10,15 say "กรุณาใส่เดือนที่ต้องการ :"
     pg=45
     setr=8
     set device to printer
   else
     close all
     return
   endif
   r=setr
   page=1
   sum=0
   set century on
   _month="  "
   _year=space(4)
   @ 2,66 say "page :"+ltrim(str(page))
  set color to b/gr,/w
   @ 2,10 say "รายงานสรุปยอดขายของพนักงานในเดือนที่" get _month
   @ 2,49 say " ปี  :" get _year
   read
   @ 2,46 say _month
   @ 2,52 say _year
   @ 5,2 say repl("*",75)
@ 6,3 say rtrim ("ชื่อพนักงาน ")
@ 6,16 say rtrim ("รหัสสินค้า ")
@ 6,28 say rtrim ("ชื่อสินค้า")
@ 6,45 say rtrim ("ราคา")
@ 6,50 say rtrim ("จำนวน")
@ 6,58 say rtrim ("รวมเงิน ")
@ 6,67 say rtrim ("รวมยอดขาย ")
@ 7,2 say repl ("*",75)
sele 3
locate for month(date_sale)=val(_month) .and. year(date_sale)=val(_year)
    if !found()
    @ 5,2 clear to 19,77
    @ 11,10 to 13,65
    @ 12,15 say "ในเดือนที่"+_month+ "ไม่มีการขาย"
      exit
    endif
    _tquant=0;sum=0;tot=0
    do while !eof()
     sele 4
      _empid=empid
      @ r,2 say rtrim(empname)
      sele 3
locate for empid=_empid .and. month(date_sale)=val(_month);
 .and. year(date_sale)=val(_year)
      _tquant=0
      do while found()
        _saleid=saleid
        sele 2
      locate for saleid=_saleid
      do while found()
        @r+1,19 say ltrim(str(proid))
        _proid=proid;_quant=quant
        sele 1
        locate for proid=_proid
        if found()
           @ r+1,24 say proname
           @ r+1,40 say price pict "999,999.99"
           @ r+1,52 say ltrim(str(_quant))
        sum=price*_quant
           @ r+1,55 say sum pict "999,999.99"
           _tquant=_tquant+sum

        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 กลับเมนูหลัก***"
        endif

      sele 2;skip;r++
      locate rest for saleid=_saleid
     enddo
    @ r,65 say _tquant pict "9,999,999.99"
      sele 3
      skip
      locate rest for empid=_empid .and. month(date_sale)=val(_month);
      .and. year(date_sale)=val(_year)
     enddo
    @ r,65 say _tquant pict "9,999,999.99"
    tot=tot+_tquant
    sele 4
    skip
   enddo
      @ r,2 clear to r,77
      @ r,66 say "=================="
      @ r+1,40 say "รวมขายได้ทั้งหมด"
      @ r+1,65 say tot pict "9,999,999.99"
      @ r+2,66 say "_____________"
      @ 22,5 clear to 22,75
      @ 22,10 say "คุณต้องการทำต่อหรือไม่"
      @ 22,40 prompt "[Yes]"
      @ 22,50 prompt "[No]"
      menu to ans
      if ans=2
       close all
      return
      endif
  enddo
close all
inkey(0)
return
//===============================
//การสรุปยอดการสั่งซื้อสินค้าตามพนักงานขายตามเดือน
procedure ports12
ans=1
do while ans=1
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 product
   sele 2; use orderdet
   sele 3; use order
   sele 4; use employee
   op=alert("เลือกผลลัพธ์ของรายงาน",{"จอภาพ","เครื่องพิมพ์","ยกเลิก"})
   if op=1
      pg=19
      setr=8
   elseif op=2
     @ 10,15 say "กรุณาใส่เดือนที่ต้องการ :"
     pg=45
     setr=8
     set device to printer
   else
     close all
     return
   endif
   r=setr
   page=1
   sum=0
   set century on
   _month="  "
   _year=space(4)
   @ 2,66 say "page :"+ltrim(str(page))
  set color to b/gr,/w
   @ 2,10 say "รายงานสรุปยอดสั่งซื้อของพนักงานในเดือนที่" get _month
   @ 2,49 say " ปี  :" get _year
   read
   @ 2,46 say _month
   @ 2,52 say _year
   @ 5,2 say repl("*",75)
@ 6,3 say rtrim ("ชื่อพนักงาน ")
@ 6,16 say rtrim ("รหัสสินค้า ")
@ 6,28 say rtrim ("ชื่อสินค้า")
@ 6,45 say rtrim ("ราคา")
@ 6,50 say rtrim ("จำนวน")
@ 6,58 say rtrim ("รวมเงิน ")
@ 6,67 say rtrim ("รวมยอดขาย ")
@ 7,2 say repl ("*",75)
sele 3
locate for month(date_order)=val(_month) .and. year(date_order)=val(_year)
    if !found()
    @ 5,2 clear to 19,77
    @ 11,10 to 13,65
    @ 12,15 say "ในเดือนที่"+_month+ "ไม่มีการขาย"
      exit
    endif
    _tquant=0;sum=0;tot=0
    do while !eof()
     sele employee
      _empid=empid
      @ r,2 say rtrim(empname)
      sele order
locate for empid=_empid .and. month(date_order)=val(_month);
 .and. year(date_order)=val(_year)
      _tquant=0
      do while found()
        _orderid=orderid
        sele orderdet
      locate for orderid=_orderid
      do while found()
        @r+1,19 say ltrim(str(proid))
        _proid=proid;_quant=pquant
        sele product
        locate for proid=_proid
        if found()
           @ r+1,24 say proname
           @ r+1,40 say price pict "999,999.99"
           @ r+1,52 say ltrim(str(_quant))
        sum=price*_quant
           @ r+1,55 say sum pict "999,999.99"
           _tquant=_tquant+sum

        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 กลับเมนูหลัก***"
        endif

      sele 2;skip;r++
      locate rest for orderid=_orderid
     enddo
    @ r,65 say _tquant pict "9,999,999.99"
      sele 3
      skip
      locate rest for empid=_empid .and. month(date_order)=val(_month);
      .and. year(date_order)=val(_year)
     enddo
    @ r,65 say _tquant pict "9,999,999.99"
    tot=tot+_tquant
    sele 4
    skip
   enddo
      @ r,2 clear to r,77
      @ r,66 say "=================="
      @ r+1,40 say "รวมขายได้ทั้งหมด"
      @ r+1,65 say tot pict "9,999,999.99"
      @ r+2,66 say "_____________"
      @ 22,5 clear to 22,75
      @ 22,10 say "คุณต้องการทำต่อหรือไม่"
      @ 22,40 prompt "[Yes]"
      @ 22,50 prompt "[No]"
      menu to ans
      if ans=2
       close all
      return
      endif
  enddo
close all
inkey(0)
return
//===============================
//การสรุปยอดการรับสินค้าตามพนักงานขายตามเดือน
procedure ports13
ans=1
do while ans=1
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 product
   sele 2; use receidet
   sele 3; use receive
   sele 4; use employee
   op=alert("เลือกผลลัพธ์ของรายงาน",{"จอภาพ","เครื่องพิมพ์","ยกเลิก"})
   if op=1
      pg=19
      setr=8
   elseif op=2
     @ 10,15 say "กรุณาใส่เดือนที่ต้องการ :"
     pg=45
     setr=8
     set device to printer
   else
     close all
     return
   endif
   r=setr
   page=1
   sum=0
   set century on
   _month="  "
   _year=space(4)
   @ 2,66 say "page :"+ltrim(str(page))
  set color to b/gr,/w
   @ 2,10 say "รายงานสรุปยอดรับสินค้าของพนักงานในเดือนที่" get _month
   @ 2,49 say " ปี  :" get _year
   read
   @ 2,46 say _month
   @ 2,52 say _year
   @ 5,2 say repl("*",75)
@ 6,3 say rtrim ("ชื่อพนักงาน ")
@ 6,16 say rtrim ("รหัสสินค้า ")
@ 6,28 say rtrim ("ชื่อสินค้า")
@ 6,45 say rtrim ("ราคา")
@ 6,50 say rtrim ("จำนวน")
@ 6,58 say rtrim ("รวมเงิน ")
@ 6,67 say rtrim ("รวมยอดขาย ")
@ 7,2 say repl ("*",75)
sele receive
locate for month(date_rec)=val(_month) .and. year(date_rec)=val(_year)
    if !found()
    @ 5,2 clear to 19,77
    @ 11,10 to 13,65
    @ 12,15 say "ในเดือนที่"+_month+ "ไม่มีการขาย"
      exit
    endif
    _tquant=0;sum=0;tot=0
    do while !eof()
     sele employee
      _empid=empid
      @ r,2 say rtrim(empname)
      sele receive
locate for empid=_empid .and. month(date_rec)=val(_month);
 .and. year(date_rec)=val(_year)
      _tquant=0
      do while found()
        _recid=recid
        sele receidet
      locate for recid=_recid
      do while found()
        @r+1,19 say ltrim(str(proid))
        _proid=proid;_quant=rquant
        sele product
        locate for proid=_proid
        if found()
           @ r+1,24 say proname
           @ r+1,40 say price pict "999,999.99"
           @ r+1,52 say ltrim(str(_quant))
        sum=price*_quant
           @ r+1,55 say sum pict "999,999.99"
           _tquant=_tquant+sum

        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 กลับเมนูหลัก***"
        endif

      sele receidet;skip;r++
      locate rest for recid=_recid
     enddo
    @ r,65 say _tquant pict "9,999,999.99"
      sele receive
      skip
      locate rest for empid=_empid .and. month(date_rec)=val(_month);
      .and. year(date_rec)=val(_year)
     enddo
    @ r,65 say _tquant pict "9,999,999.99"
    tot=tot+_tquant
    sele 4
    skip
   enddo
      @ r,2 clear to r,77
      @ r,66 say "=================="
      @ r+1,40 say "รวมขายได้ทั้งหมด"
      @ r+1,65 say tot pict "9,999,999.99"
      @ r+2,66 say "_____________"
      @ 22,5 clear to 22,75
      @ 22,10 say "คุณต้องการทำต่อหรือไม่"
      @ 22,40 prompt "[Yes]"
      @ 22,50 prompt "[No]"
      menu to ans
      if ans=2
       close all
      return
      endif
  enddo
close all
inkey(0)
return
//===============================
//การสรุปการขายเงินสด
procedure ports04
ans="y"
do while ans="y" .or. ans="Y"
   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

   total=0
   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
   _status=1
   @ 2,30 say "รายงานสรุปการขายสินค้าเงินสด"
   @ 5,3 say repl("*",75)
   @ 6,3 say rtrim ("รหัสขาย ")
   @ 6,12 say rtrim ("ชื่อลูกค้า ")
   @ 6,23 say rtrim ("รหัสสินค้า")
   @ 6,35 say rtrim("ชื่อสินค้า")
   @ 6,47 say rtrim ("ราคา")
   @ 6,55 say rtrim ("จำนวน")
   @ 6,69 say rtrim ("รวม ")
   @ 7,3 say repl ("*",75)
  do while !eof().and. opt!=3
  if lastkey()=27
    return
  endif
  use sale
  goto top
  locate for salestatus =_status
    if !found()
    @ 5,2 clear to 19,77
    @ 12,20 say "**ไม่พบการขายสินค้าเป็นเงินสด กรุณาป้อนข้อมูลใหม่**"
     inkey(0)
      exit
    endif
    do while found()
      tot = 0
      _id_sale = saleid
      _id_cust=custid
      @ r,6 say ltrim(str(saleid))
      sele 1
        locate for custid=_id_cust
          if found()
           @ r,12 say rtrim(custname)
         else
           @ r,12 say "ลูกค้าขาจร"
         endif
         sele 3
         locate for saleid=_id_sale
        do while found()
          _id_pro=proid
          @ r,22 say ltrim(str(proid))
          sele 2
          locate for proid =_id_pro
          if found()
            _price=price
            @ r,29 say rtrim(proname)
            @ r,43 say price
            endif
            sele 3
             @ r,57 say ltrim(str(quant))
             tot=_price*quant
             sum1=sum1+tot
             total=sum1+total
             @ r,65 say sum1 pict "9,999,999"
             skip
             r++
             locate rest for saleid= _id_sale
           if r=pg
             if opt=1
                @ 22,2 clear to 22,77
                @ 22,25 say "*** กด enter ดูหน้าต่อไป***"
                if lastkey()=27
                   return
                endif
                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 salestatus =_status
          enddo
         if eof()
             @ r,4 say repl("=",70)
             @ r+1,40 say "รวมขายได้ทั้งหมด"
             @ r+1,65 say total pict "9,999,999"
             set device to screen
             inkey(0)
         endif
         enddo
            @ 20,2 clear to 22,77
            ans=" "
            @ 22,15 say "คุณต้องการทำต่อหรือไม่ [y/n]"
            @ 22,40 get ans
            read
         if lastkey() = 27
            return
         endif
        if ans="Y" .or. ans="y"
            close all
            do ports04
        else
            close all
            return
        endif
  enddo
inkey(0)
return
//=================================
//การสรุปการขายเงินเชื่อ
procedure ports05
ans="y"
do while ans="y" .or. ans="Y"
   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

   total=0
   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
   sum2=0
   _status=2
   @ 2,30 say "รายงานสรุปการขายสินค้าเงินเชื่อ"
   @ 5,3 say repl("*",71)
   @ 6,3 say rtrim ("รหัสขาย ")
   @ 6,12 say rtrim ("ชื่อลูกค้า ")
   @ 6,23 say rtrim ("รหัสสินค้า")
   @ 6,35 say rtrim("ชื่อสินค้า")
   @ 6,47 say rtrim ("ราคา")
   @ 6,55 say rtrim ("จำนวน")
   @ 6,69 say rtrim ("รวม ")
   @ 7,3 say repl ("*",71)
  do while !eof().and. opt!=3
  if lastkey() =27
    return
 endif
   locate for salestatus =_status
    if !found()
    @ 5,2 clear to 19,77
    @ 12,20 say "**ไม่พบการขายสินค้าเป็นเงินเชื่อ กรุณาป้อนข้อมูลใหม่**"
     inkey(0)
      exit
    endif
    do while found()
      tot = 0
      _id_sale = saleid
      _id_cust=custid
      @ r,6 say ltrim(str(saleid))
      sele 1
        locate for custid=_id_cust
          if found()
           @ r,12 say rtrim(custname)
         endif
         sele 3
         locate for saleid=_id_sale
        do while found()
          _id_pro=proid
          @ r,22 say ltrim(str(proid))
          sele 2
          locate for proid =_id_pro
          if found()
           _price=price
          @ r,29 say rtrim(proname)
          @ r,43 say price
          endif
          sele 3
           @ r,57 say ltrim(str(quant))
           tot=_price*quant
           sum2=sum2+tot
           total=sum2+total
           @ r,65 say sum2 pict "9,999,99"
           skip
           r++
           locate rest for saleid= _id_sale
           if r=pg
             if opt=1
            @ 22,2 clear to 22,77
            @ 22,25 say "*** กด enter ดูหน้าต่อไป***"
            if lastkey()=27
               return
            endif
            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 salestatus =_status
          enddo
         if eof()
           @ r,4 say repl("=",70)
           @ r+1,40 say "รวมขายได้ทั้งหมด"
           @ r+1,65 say total pict "99,999,99"
           set device to screen
           inkey(0)
            endif
          enddo
          @ 20,2 clear to 22,77
          ans="   "
          @ 22,15 say "คุณต้องการทำต่อหรือไม่ [y / n]:"
          @ 22,40 get ans
         read
          if lastkey() = 27
         return
         endif
        if ans="Y" .or. ans="y"
        close all
           do ports05
        else
        close all
        return
      endif
  enddo
inkey(0)
return
//=====================
//รายงานสินค้าที่ยอดขาย 10 อันดับแรก
procedure ports08
set cursor off
cls
set date format to "dd/mm/yyyy"
opt=alert("เลือกผลลัพธ์ของรายงาน",{"จอภาพ","เครื่องพิมพ์"})
use saledet
sort on quant/d to tmr
use tmr; copy to saledet

use saledet
if opt=1
       pg=15
       setr=6
  else
   pg=20
   setr=1
   proid=0
    set device to printer
    endif
    set color to w+/b
cls
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

        @ 2,4 say "วัน/เดือน/ปี:"+dtoc(date())
        @ 2,53 say time()
        @ 5,25 say "รายงานข้อมูลยอดขายสินค้า 10 อันดับ"
        @ 7,15 say "ลำดับ"
        @ 7,30 say "รหัสสินค้า"
        @ 7,55 say "ยอดขาย"
        @ 6,2 say repl("^",75)
        n=0
        r=0
        r++
        n++
        ln=8
        for i=1 to 10
   while i<=10
       @ln,6 say str(i)
       @ln,30 say ltrim(str(proid))
       @ln++,50 say quant
       skip
       i++
       continue
   if r=pg
     if opt=1
        inkey(0)
     else
        eject
     endif
     r=setr
   endif
  end
end
inkey(0)
cls
//============================
//สรุปยอดสินค้าค้างสต๊อก
procedure ports07
save screen to scr
set date format to "dd/mm/yyyy"
opt=alert("เลือกผลลัพธ์ของรายงาน",{"จอภาพ","เครื่องพิมพ์"})
use product
if opt=1
 setr=7
  else
   pg=20
   setr=1
    set device to printer
    endif
set color to w+/b
cls
t=1
     @ 2,4 say "วัน/เดือน/ปี:"+dtoc(date())
     @ 2,45 say time()
     @ 2,65 say "หน้า:"+ltrim(str(t))
    @ 3,25 say " รายงานข้อมูลสินค้าค้างสต็อก"
    @ 4,8 say "ลำดับ"
    @ 4,14 say "รหัส"
    @ 4,25 say "ชื่อ"
    @ 4,53 say "ราคาขาย"
    @ 4,65 say "จำนวน"
    @ 4,73 say "จุดสั่ง "
    @ 5,2 say repl("^",77)
r=setr
i=0
n=0
while !eof() .and. opt!=3
i++
r++
n++
?n,'',proid,'',proname,str(cost),str(quantity),str(reorder)
skip
 if n=15
   if opt=1
     inkey(0)
   @ 6,8 clear to 21,68
   i=1
   t++
     else
      eject
   endif
   r=setr
  endif
end
set device to screen
inkey(0)
restore screen from scr
cls
return
//==================================