Visual FoxPro 6 Accounting, Inventory & Payroll Integrated Software PRG files Developed by Me in 1996

PRG files in Original Script.

ACCTCODE.PRG

  • Date: 12-Feb-2017
  • Program: AcctCode.PRG
  • Program to replace AcctCode Field with C1+C2+C3 code
  • and Replace chart field with chart description

CLEAR
CLOSE ALL

SET TALK OFF
SET SAFE OFF
SET CONFIRM OFF

CLEAR
@ 20, 40 SAY “Running INDEXALL.PRG” FONT “Times New Roman”,26
DO INDEXALL.PRG

CLEAR
@ 20, 40 SAY “Running acctcode.PRG – ldgrcode.dbf updates” FONT “Times New Roman”,26

USE ldgrcode EXCL

SCAN

MPC1 = REPLICATE('0',2-LEN(LTRIM(STR(c1))))+LTRIM(STR(c1))
MPC2 = REPLICATE('0',2-LEN(LTRIM(STR(c2))))+LTRIM(STR(c2))
MPC3 = REPLICATE('0',3-LEN(LTRIM(STR(c3))))+LTRIM(STR(c3))
REPLACE acctcode WITH MPC1+"-"+MPC2+"-"+MPC3

DO CASE
    CASE c1 >= 10 AND c1 <= 19
        REPLACE chart WITH "Capital / Equity"
    CASE c1 >= 20 AND c1 <= 29
        REPLACE chart WITH "Long Term Liabilities"
    CASE c1 >= 30 AND c1 <= 39
        REPLACE chart WITH "Current Liabilities"
    CASE c1 >= 40 AND c1 <= 49
        REPLACE chart WITH "Long Term Assets"
    CASE c1 >= 50 AND c1 <= 59
        REPLACE chart WITH "Current Assets"
    CASE c1 >= 60 AND c1 <= 69
        REPLACE chart WITH "Sales / Revenues"
    CASE c1 >= 70 AND c1 <= 79
        REPLACE chart WITH "Cost of Sales"
    CASE c1 >= 80 AND c1 <= 89
        REPLACE chart WITH "Expenses"
    CASE c1 >= 90 AND c1 <= 99
        REPLACE chart WITH "Appropriations"

OTHERWISE
    REPLACE chart WITH "Not Applicable"
ENDCASE

ENDSCAN

INDEX ON acctcode TAG acctcode
INDEX ON chart TAG chart
USE


CLEAR
CLOSE ALL

CLEAR
@ 20, 40 SAY “Running acctcode.PRG – tran.dbf updates” FONT “Times New Roman”,26

USE tran EXCL

SCAN

MPC1 = REPLICATE('0',2-LEN(LTRIM(STR(c1))))+LTRIM(STR(c1))
MPC2 = REPLICATE('0',2-LEN(LTRIM(STR(c2))))+LTRIM(STR(c2))
MPC3 = REPLICATE('0',3-LEN(LTRIM(STR(c3))))+LTRIM(STR(c3))
REPLACE acctcode WITH MPC1+"-"+MPC2+"-"+MPC3

DO CASE
    CASE c1 >= 10 AND c1 <= 19
        REPLACE chart WITH "Capital / Equity"
    CASE c1 >= 20 AND c1 <= 29
        REPLACE chart WITH "Long Term Liabilities"
    CASE c1 >= 30 AND c1 <= 39
        REPLACE chart WITH "Current Liabilities"
    CASE c1 >= 40 AND c1 <= 49
        REPLACE chart WITH "Long Term Assets"
    CASE c1 >= 50 AND c1 <= 59
        REPLACE chart WITH "Current Assets"
    CASE c1 >= 60 AND c1 <= 69
        REPLACE chart WITH "Sales / Revenues"
    CASE c1 >= 70 AND c1 <= 79
        REPLACE chart WITH "Cost of Sales"
    CASE c1 >= 80 AND c1 <= 89
        REPLACE chart WITH "Expenses"
    CASE c1 >= 90 AND c1 <= 99
        REPLACE chart WITH "Appropriations"

OTHERWISE
    REPLACE chart WITH "Not Applicable"
ENDCASE

ENDSCAN

INDEX ON acctcode TAG acctcode
INDEX ON chart TAG chart
USE
USE ldgrcode EXCL
INDEX ON acctcode TAG acctcode
USE

SELECT 1
USE tran ORDER acctcode

SELECT 2
USE ldgrcode ORDER acctcode

SELECT 1
SET RELATION TO acctcode INTO ldgrcode ADDITIVE

REPL ALL title WITH ldgrcode.title

CLEAR
CLOSE ALL


CLEAR
CLOSE ALL

CLEAR
@ 20, 40 SAY “Running acctcode.PRG – master.dbf updates” FONT “Times New Roman”,26

USE master EXCL

SCAN

MPC1 = REPLICATE('0',2-LEN(LTRIM(STR(c1))))+LTRIM(STR(c1))
MPC2 = REPLICATE('0',2-LEN(LTRIM(STR(c2))))+LTRIM(STR(c2))
MPC3 = REPLICATE('0',3-LEN(LTRIM(STR(c3))))+LTRIM(STR(c3))
REPLACE acctcode WITH MPC1+"-"+MPC2+"-"+MPC3

DO CASE
    CASE c1 >= 10 AND c1 <= 19
        REPLACE chart WITH "Capital / Equity"
    CASE c1 >= 20 AND c1 <= 29
        REPLACE chart WITH "Long Term Liabilities"
    CASE c1 >= 30 AND c1 <= 39
        REPLACE chart WITH "Current Liabilities"
    CASE c1 >= 40 AND c1 <= 49
        REPLACE chart WITH "Long Term Assets"
    CASE c1 >= 50 AND c1 <= 59
        REPLACE chart WITH "Current Assets"
    CASE c1 >= 60 AND c1 <= 69
        REPLACE chart WITH "Sales / Revenues"
    CASE c1 >= 70 AND c1 <= 79
        REPLACE chart WITH "Cost of Sales"
    CASE c1 >= 80 AND c1 <= 89
        REPLACE chart WITH "Expenses"
    CASE c1 >= 90 AND c1 <= 99
        REPLACE chart WITH "Appropriations"

OTHERWISE
    REPLACE chart WITH "Not Applicable"
ENDCASE

ENDSCAN

INDEX ON acctcode TAG acctcode
INDEX ON chart TAG chart
USE

USE ldgrcode EXCL
INDEX ON acctcode TAG acctcode
USE

SELECT 1
USE master ORDER acctcode

SELECT 2
USE ldgrcode ORDER acctcode

SELECT 1
SET RELATION TO acctcode INTO ldgrcode ADDITIVE

REPL ALL title WITH ldgrcode.title

CLEAR
CLOSE ALL


  • Tran-key VchNo field type Character 5-12-12345

CLEAR
CLOSE ALL

CLEAR
@ 20, 40 SAY “Running acctcode.PRG – tran-key.dbf updates” FONT “Times New Roman”,26

USE tran-key EXCL

SCAN

MVCH1 = REPLICATE('0',1-LEN(LTRIM(STR(vch_type))))+LTRIM(STR(vch_type))
MVCH2 = REPLICATE('0',2-LEN(LTRIM(STR(vch_no1))))+LTRIM(STR(vch_no1))
MVCH3 = REPLICATE('0',5-LEN(LTRIM(STR(vch_no2))))+LTRIM(STR(vch_no2))
REPLACE VchNo WITH MVCH1+"-"+MVCH2+"-"+MVCH3

DO CASE

    CASE vch_type = 1
        REPLACE type WITH "Cash Receipt"
    CASE vch_type = 2
        REPLACE type WITH "Cash Payment"
    CASE vch_type = 3
        REPLACE type WITH "Bank Receipt"
    CASE vch_type = 4
        REPLACE type WITH "Bank Payment"
    CASE vch_type = 5
        REPLACE type WITH "Journal"
    CASE vch_type = 6
        REPLACE type WITH "Sales"
    CASE vch_type = 7
        REPLACE type WITH "Purchase"

OTHERWISE
    REPLACE type WITH "Not Applicable"
ENDCASE

ENDSCAN

INDEX ON VchNo TAG VchNo
INDEX ON Type TAG type
USE


  • Tran VchNo field type Character 5-12-12345

CLEAR
CLOSE ALL

CLEAR
@ 20, 40 SAY “Running acctcode.PRG – tran.dbf updates” FONT “Times New Roman”,26

USE tran EXCL

SCAN

MVCH1 = REPLICATE('0',1-LEN(LTRIM(STR(vch_type))))+LTRIM(STR(vch_type))
MVCH2 = REPLICATE('0',2-LEN(LTRIM(STR(vch_no1))))+LTRIM(STR(vch_no1))
MVCH3 = REPLICATE('0',5-LEN(LTRIM(STR(vch_no2))))+LTRIM(STR(vch_no2))
REPLACE VchNo WITH MVCH1+"-"+MVCH2+"-"+MVCH3

DO CASE

    CASE vch_type = 1
        REPLACE type WITH "Cash Receipt"
    CASE vch_type = 2
        REPLACE type WITH "Cash Payment"
    CASE vch_type = 3
        REPLACE type WITH "Bank Receipt"
    CASE vch_type = 4
        REPLACE type WITH "Bank Payment"
    CASE vch_type = 5
        REPLACE type WITH "Journal"
    CASE vch_type = 6
        REPLACE type WITH "Sales"
    CASE vch_type = 7
        REPLACE type WITH "Purchase"

OTHERWISE
    REPLACE type WITH "Not Applicable"
ENDCASE

ENDSCAN

INDEX ON VchNo TAG VchNo
INDEX ON Type TAG type
USE


  • Master VchNo field type Character 5-12-12345

CLEAR
CLOSE ALL

CLEAR
@ 20, 40 SAY “Running acctcode.PRG – master.dbf updates” FONT “Times New Roman”,26

USE master EXCL

SCAN

MVCH1 = REPLICATE('0',1-LEN(LTRIM(STR(vch_type))))+LTRIM(STR(vch_type))
MVCH2 = REPLICATE('0',2-LEN(LTRIM(STR(vch_no1))))+LTRIM(STR(vch_no1))
MVCH3 = REPLICATE('0',5-LEN(LTRIM(STR(vch_no2))))+LTRIM(STR(vch_no2))
REPLACE VchNo WITH MVCH1+"-"+MVCH2+"-"+MVCH3

DO CASE

    CASE vch_type = 1
        REPLACE type WITH "Cash Receipt"
    CASE vch_type = 2
        REPLACE type WITH "Cash Payment"
    CASE vch_type = 3
        REPLACE type WITH "Bank Receipt"
    CASE vch_type = 4
        REPLACE type WITH "Bank Payment"
    CASE vch_type = 5
        REPLACE type WITH "Journal"
    CASE vch_type = 6
        REPLACE type WITH "Sales"
    CASE vch_type = 7
        REPLACE type WITH "Purchase"

OTHERWISE
    REPLACE type WITH "Not Applicable"
ENDCASE

ENDSCAN

INDEX ON VchNo TAG VchNo
INDEX ON Type TAG type
USE


  • This Update: 12-Feb-2017
  • Prepare ChartOfAccts.XLS

CLEAR
@ 20, 40 SAY “Running acctcode.PRG – XLS files” FONT “Times New Roman”,26

SELECT Acctcode,;
Title,;
Ldgr_bal,;
Status,;
Chart,;
LEFT(AcctCode,1) AS “ChrtNo”;
FROM LdgrCode.dbf;
ORDER BY AcctCode;
INTO DBF ChartOfAccts.dbf

CLOSE ALL

USE ChartOfAccts.dbf EXCL
INDEX ON AcctCode TAG AcctCode
SET ORDER TO AcctCode
COPY TO XLS\ChartOfAccts.XLS TYPE XLS
USE

CLOSE ALL

SELECT Acctcode,;
Title,;
SUM(Ldgr_bal) AS “Total”,;
Status,;
Chart,;
LEFT(AcctCode,1) AS “ChrtNo”,;
LEFT(AcctCode,2) AS “C1”;
FROM LdgrCode.dbf;
ORDER BY AcctCode;
GROUP BY ldgrcode.c1;
INTO DBF SumLevel_1.dbf

USE SumLevel_1.dbf EXCL
INDEX ON AcctCode TAG AcctCode
SET ORDER TO AcctCode
COPY TO XLS\SumLevel_1.XLS TYPE XLS
USE


CLEAR
CLEAR ALL
CLOSE ALL

CLEAR
@ 20, 40 SAY “Running acctcode.PRG – Chart_L2.dbf updates” FONT “Times New Roman”,26

SELECT C1,C2,TITLE FROM LDGRCODE INTO DBF CHART_L2.DBF WHERE C3=0 ORDER BY C1,C2
SELECT CHART_L2
USE

SELECT 1
USE CHART_L2 EXCL
INDEX ON STR(C1,2)+STR(C2,2) TAG ACL2

CLEAR
CLEAR ALL
CLOSE ALL

ASKPW.PRG

  • PROGRAM : ASKPW.PRG
  • WRITTEN BY AMJAD IZHAR
  • LAST REVISED ON 03-04-2001
    *————————————

SET TALK OFF
PUBLIC pass,mm1,Permit
CLEAR

pass=SPACE(9)
mm1=space(9)
Permit = Space(2)

DEFINE WINDOW upper FROM 0,0 TO 22,78 NONE
ACTIVATE WINDOW upper
@ 1,1 SAY “Password:”

DEFINE WINDOW inwin FROM 2,0 TO 10,20 NONE
DEFINE WINDOW hidewin FROM 2,0 TO 8,20 NONE
ACTIVATE WINDOW hidewin NOSHOW
HIDE WINDOW hidewin IN WINDOW inwin

@ 1,1 GET pass PICT “@!”
READ COLOR 1,1

USE Usr

LOCATE FOR usrcode = mMenu

DO back

DO CASE

CASE pass <> mm1

    CLEAR WINDOWS

    *FOR a = 1 TO 4
    *   SET BELL TO 300,1
    *   ?? CHR(7)
    *   SET BELL TO
    *   DO ACSSDEN

        Permit = "OK"

    *ENDFOR

CASE pass = mm1
        Permit = "OK"

ENDCASE

CLEAR WINDOWS
DEACTIVATE WINDOW upper
DEACTIVATE WINDOW inwin
DEACTIVATE WINDOW hidewin


PROCEDURE AcssDen



  • ÖÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ·
  • º º
  • º 07/23/96 ACSSDEN.SPR 13:13:49 º
  • º º
  • ÇÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄĶ
  • º º
  • º Author’s Name º
  • º º
  • º Copyright (c) 1996 Company Name º
  • º Address º
  • º City, Zip º
  • º º
  • º Description: º
  • º This program was automatically generated by GENSCRN. º
  • º º
  • ÓÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄĽ

REGION 0

REGIONAL m.currarea, m.talkstat, m.compstat

IF SET(“TALK”) = “ON”
SET TALK OFF
m.talkstat = “ON”
ELSE
m.talkstat = “OFF”
ENDIF
m.compstat = SET(“COMPATIBLE”)
SET COMPATIBLE FOXPLUS

  • ÖÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ·
  • º º
  • º MS-DOS Window definitions º
  • º º
  • ÓÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄĽ
    *
  • ÖÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ·
  • º º
  • º ACSSDEN/MS-DOS Screen Layout º
  • º º
  • ÓÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄĽ
    *

REGION 1

@ 13,33 SAY “Access Denied!” ;
SIZE 1,14, 0

REGION 0

IF m.talkstat = “ON”
SET TALK ON
ENDIF
IF m.compstat = “ON”
SET COMPATIBLE ON
ENDIF

RETURN



PROCEDURE back


*PUBLIC mm1

STORE SUBSTR(pw,1,1) TO ncode1
STORE SUBSTR(pw,2,1) TO ncode2
STORE SUBSTR(pw,3,1) TO ncode3
STORE SUBSTR(pw,4,1) TO ncode4
STORE SUBSTR(pw,5,1) TO ncode5
STORE SUBSTR(pw,6,1) TO ncode6
STORE SUBSTR(pw,7,1) TO ncode7
STORE SUBSTR(pw,8,1) TO ncode8
STORE SUBSTR(pw,9,1) TO ncode9

mm1 = chr(asc(“&ncode1”)+30)+;
chr(asc(“&ncode2”)+28)+;
chr(asc(“&ncode3”)+29)+;
chr(asc(“&ncode4”)+21)+;
chr(asc(“&ncode5”)+19)+;
chr(asc(“&ncode6”)+13)+;
chr(asc(“&ncode7”)+12)+;
chr(asc(“&ncode8”)+18)+;
chr(asc(“&ncode9”)+19)

RETURN

ATDETSHT.PRG

  • Report Program for Employee Detailed Attendence Sheet

SET TALK OFF
SET SAFETY OFF

CLEAR
CLOSE DATA

@ 1,20 SAY “Report: Employee Detailed Attendence Sheet”
@ 2,20 SAY “——————————————“

PUBLIC mMnth,mMcode,mYear,Vp
mMnth = space(10)
mMcode = 0
mYear = 0
Vp = space(1)

SELECT 1
USE attend ORDER empno2
STORE mcode TO mMcode
STORE year TO mYear

SELECT 2
USE employee ORDER empno

SELECT 3
USE salary ORDER empno

SELECT 4
USE ovtime ORDER empno2

SELECT 5
USE deptt ORDER deptcode

SELECT 6
USE salcode ORDER salcode

SELECT 7
USE month ORDER mcode
STORE month.month TO mMnth

SELECT 8
USE artime ORDER empno2

SELECT 1
SET RELATION TO str(deptcode)+str(empno) INTO employee ADDITIVE
SET RELATION TO str(deptcode)+str(empno) INTO salary ADDITIVE
SET RELATION TO str(deptcode)+str(empno) INTO artime ADDITIVE
SET RELATION TO str(deptcode)+str(empno) INTO ovtime ADDITIVE
SET RELATION TO deptcode INTO deptt ADDITIVE
SET RELATION TO mcode INTO month ADDITIVE

SELECT 3
SET RELATION TO salcode INTO salcode ADDITIVE

SELECT 1

DO AskEmpno

@ 12,5 SAY “Report to Printer or View (P/V) ? “
@ ROW(),COL() GET Vp PICT “@!” VALID INLIST(Vp,’P’,’V’);
ERROR “(P)rinter,(V)iew “
READ

DO CASE

CASE Vp = "P"

    REPORT FORM ATDETSHT.FRX TO PRINTER NOEJECT FOR;
     deptcode = mDptCode .and. empno = mEmpNo

CASE Vp = "V"

    REPORT FORM ATDETSHT.FRX PREVIEW FOR;
     deptcode = mDptCode .and. empno = mEmpNo

ENDCASE

CLOSE DATA


PROCEDURE AskEmpno


PUBLIC mDptCode,mEmpNo

mDptCode = 0
mEmpNo = 0

@ 5,5 SAY “Enter Empno for which you want Detailed Attendence Sheet ? “
@ ROW(),COL() GET mDptCode PICT “99” VALID VmDptCode()
@ ROW(),COL() SAY “-“
@ ROW(),COL() GET mEmpNo PICT “999” VALID VmEmpNo()
READ

RETURN



PROCEDURE VmDptCode


SELECT deptt
LOCATE FOR deptcode = mDptCode
IF FOUND()
@ 8,0 TO 8,79 CLEAR
@ 8,5 SAY “Department Name: “
@ ROW(),COL() SAY deptname
SELECT 1
RETURN .T.
ELSE
@ 8,0 TO 8,79 CLEAR
WAIT WINDOW “Deptt.Code Not in File! Try Again” TIMEOUT 1
SELECT 1
RETURN .F.
ENDIF
SELECT 1
RETURN .T.



PROCEDURE VmEmpNo


SELECT 1
LOCATE FOR deptcode = mDptCode AND empno = mEmpNo

DO CASE

CASE FOUND()

    @ 10,0 TO 10,79 CLEAR
    @ 10,5 SAY "Employee Name: "
    @ ROW(),COL() SAY employee.name

CASE NOT FOUND()
    @ 10,0 TO 10,79 CLEAR
    WAIT WINDOW "Employee Code Not in File! Try Again" TIMEOUT 1
    SELECT 1
    _CUROBJ = 1
    RETURN .T.

ENDCASE

SELECT 1

RETURN .T.


ATNDV2.PRG


  • PROGRAM: ATNDV2.PRG
  • Program to paint a brow for attendence register
  • with complete 31 days
  • Programmer: Amjad Izhar
  • This update: 29-Dec-2019

DO mainprog


PROCEDURE mainprog


DO iniset
DO SetVars
DO paintbrow
DO endprog
RETURN



PROCEDURE iniset


CLEAR
*HIDE POPUP mainmenu
SET TALK OFF
SET SAFETY OFF

ON KEY LABEL F1 DO Ord1
ON KEY LABEL F2 DO Ord2
ON KEY LABEL F3 DO Ord3

SET FUNCTION F4 TO
SET FUNCTION F5 TO
SET FUNCTION F6 TO
SET FUNCTION F7 TO
SET FUNCTION F8 TO
SET FUNCTION F9 TO
SET FUNCTION F10 TO
SET FUNCTION F11 TO
SET FUNCTION F12 TO

PUBLIC mMcode,mYear
mMcode = 0
mYear = 0

SELECT 1
USE attend.dbf
SET ORDER TO empno

STORE mcode TO mMcode
STORE year TO mYear

SELECT 2
USE employee.dbf
SET ORDER TO empno

SELECT 3
USE month
SET ORDER TO mcode

SELECT 4
USE ovtime
SET ORDER TO empno

SELECT 5
USE deptt
SET ORDER TO deptcode

SELECT 6
USE salary ORDER empno2

SELECT 7
USE saldtail ORDER empno

SET FILTER TO
SET FILTER TO mcode = mMcode AND year = mYear

SELECT 1
SET RELATION TO str(deptcode)+str(empno) INTO employee ADDITIVE
SET RELATION TO str(deptcode)+str(empno) INTO salary ADDITIVE

SET RELATION TO str(deptcode)+str(empno)+str(mcode)+str(year);
INTO saldtail ADDITIVE

SET RELATION TO mcode INTO month ADDITIVE
SET RELATION TO str(deptcode)+str(empno)+str(mcode)+str(year) INTO ovtime ADDITIVE
SET RELATION TO deptcode INTO deptt ADDITIVE

goto top

RETURN



PROCEDURE SetVars


PUBLIC CurFld
CurFld = space(3)
RETURN



PROCEDURE paintbrow


PUBLIC Pal

*@ 0,0,40,120 BOX

DEFINE WINDOW b FROM 0,0 TO 24,79

mrecord = RECNO()

SCAN
Pal = d1+d2+d3+d4+d5+d6+d7+d8+d9+d10+d11+d12+d13+d14+d15+;
d16+d17+d18+d19+d20+d21+d22+d23+d24+d25+d26+d27+d28+;
d29+d30+d31

REPLACE present WITH OCCURS(“P”,Pal)
REPLACE absent WITH OCCURS(“A”,Pal)
REPLACE leave WITH OCCURS(“L”,Pal)
REPLACE late WITH OCCURS(“T”,Pal)
ENDSCAN

GOTO mrecord

BROWS FIELDS;
Eno = str(deptcode,2)+”-“+;
str(empno,3)+”³”;
:R :H = “Code” :W=.F.,;
employee.name :18 :R :W=.F.,;
L1 = “³” :1 :R :H = “” :W=.F.,D1:H=”1 “:P=”@!”:V=UP(),;
D2:H=”2 “:P=”@!”:V=UP(),D3:H=”3 “:P=”@!”:V=UP(),;
D4:H=”4 “:P=”@!”:V=UP(),D5:H=”5 “:P=”@!”:V=UP(),;
D6:H=”6 “:P=”@!”:V=UP(),D7:H=”7 “:P=”@!”:V=UP(),;
D8:H=”8 “:P=”@!”:V=UP(),D9:H=”9 “:P=”@!”:V=UP(),;
D10:H=”10″:P=”@!”:V=UP(),D11:H=”11″:P=”@!”:V=UP(),;
D12:H=”12″:P=”@!”:V=UP(),D13:H=”13″:P=”@!”:V=UP(),;
D14:H=”14″:P=”@!”:V=UP(),D15:H=”15″:P=”@!”:V=UP();
WINDOW b;
NOAPPEND NODELETE

BROWS FIELDS;
Eno = str(deptcode,2)+”-“+;
str(empno,3)+”³”;
:R :H = “Code” :W=.F.,;
employee.name :16 :R:W=.F.,;
L1 = “³” :1 :R :H = “”:W=.F.,;
D16:H=”16″:P=”@!”:V=UP(),D17:H=”17″:P=”@!”:V=UP(),;
D18:H=”18″:P=”@!”:V=UP(),D19:H=”19″:P=”@!”:V=UP(),;
D20:H=”20″:P=”@!”:V=UP(),D21:H=”21″:P=”@!”:V=UP(),;
D22:H=”22″:P=”@!”:V=UP(),D23:H=”23″:P=”@!”:V=UP(),;
D24:H=”24″:P=”@!”:V=UP(),D25:H=”25″:P=”@!”:V=UP(),;
D26:H=”26″:P=”@!”:V=UP(),;
D27:H=”27″:P=”@!”:V=UP(),;
D28:H=”28″:P=”@!”:V=UP(),;
D29:H=”29″:P=”@!”:V=UP(),;
D30:H=”30″:P=”@!”:V=UP(),;
D31:H=”31″:P=”@!”:V=UP();
WINDOW b;
NOAPPEND NODELETE

ON KEY
SET INDEX TO attend.cdx
SET ORDER TO empno

RETURN



PROCEDURE below && Browse When clause


@ 22,2 SAY deptcode
@ 22,4 SAY “-“
@ 22,5 SAY empno PICT “@L”

*@ 22,9 SAY employee.salutation+”.”
@ 22,12 SAY employee.name
@ 22,35 SAY deptt.deptname

@ 23,9 SAY “P=”
@ 23,11 SAY present
@ 23,15 SAY “A=”
@ 23,17 SAY absent
@ 23,21 SAY “L=”
@ 23,23 SAY leave
@ 23,27 SAY “T=”
@ 23,29 SAY late

IF ovtime.totalot <> 0
@ 23,35 SAY “Tot.OT=”
@ 23,42 SAY ovtime.totalot
ELSE
@ 23,32 TO 23,48 CLEAR

ENDIF

@ 22,60 SAY ALLTRIM(month.month)+”,”+ALLTRIM(STR(attend.year));
COLOR GR+/B

@ 23,60 SAY “Payable Days: “
@ ROW(),COL() SAY pbldays

@ 24,9 SAY “F1=Attendence Wise F2=Emp.No Wise F3=Name Wise”

RETURN .T.



PROCEDURE Up


STORE VARREAD() TO CurFld

IF INLIST(&CurFld,’P’,’A’,’L’,’T’,’ ‘,’F’,’H’) = .F.
WAIT WINDOW “(P)resent,(A)bsent,(L)eave,La(T)e” TIMEOUT 3
RETURN .F.
ENDIF

Pal = d1+d2+d3+d4+d5+d6+d7+d8+d9+d10+d11+d12+d13+d14+d15+;
d16+d17+d18+d19+d20+d21+d22+d23+d24+d25+d26+d27+d28+;
d29+d30+d31

REPLACE present WITH OCCURS(“P”,Pal)
REPLACE absent WITH OCCURS(“A”,Pal)
REPLACE leave WITH OCCURS(“L”,Pal)
REPLACE late WITH OCCURS(“T”,Pal)

PUBLIC mPblDysS,mPblDysW,mPblDysP
mPblDysS = 0
mPblDysW = 0
mPblDysP = 0

IF present <> 0
mPblDysS = month.mdays-absent
mPblDysW = present+late
mPblDysP = month.mdays-absent
ENDIF

DO CASE
CASE salary.mpay AND NOT employee.probation

REPLACE pbldays WITH mPblDysS

CASE salary.mpay AND employee.probation

REPLACE pbldays WITH mPblDysP

CASE salary.mpay = .f. ;
AND salary.wrdaily = .f. AND NOT employee.probation;
AND NOT EMPTY(salary.dwratem)

REPLACE pbldays WITH mPblDysS

CASE salary.mpay = .f. ;
AND salary.wrdaily = .f. AND employee.probation;
AND NOT EMPTY(salary.dwratem)

REPLACE pbldays WITH mPblDysP

OTHERWISE

REPLACE pbldays WITH mPblDysW

ENDCASE

REPLACE saldtail.days WITH pbldays

RETURN .T.



PROCEDURE Ord1


STORE RECNO() TO mRecord
WAIT WINDOW “Changing Order to Attendence Wise” TIMEOUT 1
SET INDEX TO attend.cdx
SET ORDER TO empno
KEYBOARD ‘{PGUP}’
KEYBOARD ‘{PGUP}’
GOTO mRecord

RETURN



PROCEDURE Ord2


STORE RECNO() TO mRecord
WAIT WINDOW “Changing Order to Emp. No. Wise” TIMEOUT 1
SET INDEX TO attend.cdx
SET ORDER TO empno2
KEYBOARD ‘{PGUP}’
KEYBOARD ‘{PGUP}’
GOTO mRecord

RETURN



PROCEDURE Ord3


STORE RECNO() TO mRecord
WAIT WINDOW “Changing Order to Name Wise” TIMEOUT 1

INDEX ON employee.name TO atname.idx
SET INDEX TO atname.idx

KEYBOARD ‘{PGUP}’
KEYBOARD ‘{PGUP}’
GOTO mRecord

RETURN



PROCEDURE endprog


CLEAR
CLOSE DATABASES
CLEAR WINDOWS
*SHOW POPUP mainmenu

IF _DOS
RESTORE SCREEN FROM backgrnd
ENDIF

RETURN


ATNDV3.PRG

  • This update: 22-Sep-2017

clear
@ 0,0,21,79 BOX
DEFINE WINDOW bratnd FROM 1,1 TO 20,78

SET VIEW TO attend

BROWS FIELDS;
Ename = employee.name :H = “Employee Name”,;
L1 = “³” :1 :R :H = “”,;
D1 :H = “1 “,;
D2 :H = “2 “,;
D3 :H = “3 “,;
D4 :H = “4 “,;
D5 :H = “5 “,;
D6 :H = “6 “,;
D7 :H = “7 “,;
D8 :H = “8 “,;
D9 :H = “9 “,;
D10 :H = “10”,;
D11 :H = “11”,;
D12 :H = “12”,;
D13 :H = “13”,;
D14 :H = “14”,;
D15 :H = “15”,;
D16 :H = “16”,;
D17 :H = “17”,;
D18 :H = “18”,;
D19 :H = “19”,;
D20 :H = “20”,;
D21 :H = “21”,;
D22 :H = “22”,;
D23 :H = “23”,;
D24 :H = “24”,;
D25 :H = “25”,;
D26 :H = “26”,;
D27 :H = “27”,;
D28 :H = “28”,;
D29 :H = “29”,;
D30 :H = “30”,;
D31 :H = “31”;
WINDOW bratnd;
WHEN below();
TITLE “Daily Attendence Register”;
NOAPPEND NOEDIT

CLEAR ALL
CLEAR
CANCEL

RETURN

PROCEDURE below

@ 22,2 SAY deptcode
@ 22,4 SAY “-“
@ 22,5 SAY empno PICT “@L”

@ 22,9 SAY employee.salutation+”.”
@ 22,12 SAY employee.name
@ 22,35 SAY deptt.deptname

RETURN

ATNDVIEW.PRG

  • this update: 22-Sep-2017

clear
DEFINE WINDOW fullview FROM 0,0 TO 24,79
SET VIEW TO attend

BROWS FIELDS;
Ename = employee.name :H = “Employee Name”,;
L1 = “³” :1 :R :H = “”,;
D1;
WINDOW fullview;
TITLE “Daily Attendence Register”

ATSHEET.PRG

CLOSE DATA

CLEA
SET TALK OFF
SET SAFETY OFF

SELECT 1
USE attend ORDER empno

SELECT 2
USE employee ORDER empno

SELECT 3
USE ovtime ORDER empno3

SELECT 4
USE artime ORDER empno2

SELECT 5
USE deptt ORDER deptcode

SELECT 6
USE month ORDER mcode

SELECT 1
SET RELATION TO str(deptcode)+str(empno) INTO employee ADDITIVE
SET RELATION TO str(deptcode)+str(atord)+str(empno) INTO ovtime ADDITIVE
SET RELATION TO str(deptcode)+str(empno) INTO artime ADDITIVE
SET RELATION TO deptcode INTO deptt ADDITIVE
SET RELATION TO mcode INTO month ADDITIVE

CLEAR

PUBLIC Vp
Vp = space(1)

@ 11,19 SAY “Report to Printer or View (P/V) ? “
@ ROW(),COL() GET Vp PICT “@!” VALID INLIST(Vp,’P’,’V’);
ERROR “(P)rinter,(V)iew “
READ

DO CASE

CASE Vp = "P"

    ??? CHR(15)
    ??? CHR(15)

    REPORT FORM ATsheet.FRX TO PRINTER NOEJECT

CASE Vp = "V"

    REPORT FORM ATsheet.FRX PREVIEW

ENDCASE

CLEAR
CLOSE DATA

ATSHEET2.PRG

  • This Update: 22-Sep-2017

CLOSE DATA
CLEA
SET TALK OFF
SET SAFETY OFF

SELECT 1
USE attend ORDER empno

SELECT 2
USE employee ORDER empno

SELECT 3
USE ovtime ORDER empno3

SELECT 4
USE artime ORDER empno2

SELECT 5
USE deptt ORDER deptcode

SELECT 6
USE month ORDER mcode

SELECT 1
SET RELATION TO str(deptcode)+str(empno) INTO employee ADDITIVE
SET RELATION TO str(deptcode)+str(atord)+str(empno) INTO ovtime ADDITIVE
SET RELATION TO str(deptcode)+str(empno) INTO artime ADDITIVE
SET RELATION TO deptcode INTO deptt ADDITIVE
SET RELATION TO mcode INTO month ADDITIVE

CLEAR

PUBLIC Vp
Vp = space(1)

@ 11,19 SAY “Report to Printer or View (P/V) ? “
@ ROW(),COL() GET Vp PICT “@!” VALID INLIST(Vp,’P’,’V’);
ERROR “(P)rinter,(V)iew “
READ

DO CASE

CASE Vp = "P"

    ??? CHR(15)
    ??? CHR(15)

    REPORT FORM ATsheet2.FRX TO PRINTER NOEJECT

CASE Vp = "V"

    REPORT FORM ATsheet2.FRX PREVIEW

ENDCASE

CLEAR
CLOSE DATA

ATSHEET3.PRG

CLOSE DATA
CLEA
SET TALK OFF
SET SAFETY OFF

SELECT 1
USE attend ORDER empno

SELECT 2
USE employee ORDER empno

SELECT 3
USE ovtime ORDER empno3

SELECT 4
USE artime ORDER empno2

SELECT 5
USE deptt ORDER deptcode

SELECT 6
USE month ORDER mcode

SELECT 1
SET RELATION TO str(deptcode)+str(empno) INTO employee ADDITIVE
SET RELATION TO str(deptcode)+str(atord)+str(empno) INTO ovtime ADDITIVE
SET RELATION TO str(deptcode)+str(empno) INTO artime ADDITIVE
SET RELATION TO deptcode INTO deptt ADDITIVE
SET RELATION TO mcode INTO month ADDITIVE

CLEAR

PUBLIC Vp
Vp = space(1)

@ 11,19 SAY “Report to Printer or View (P/V) ? “
@ ROW(),COL() GET Vp PICT “@!” VALID INLIST(Vp,’P’,’V’);
ERROR “(P)rinter,(V)iew “
READ

DO CASE

CASE Vp = "P"

    ??? CHR(15)
    ??? CHR(15)

    REPORT FORM ATsheet3.FRX TO PRINTER NOEJECT

CASE Vp = "V"

    REPORT FORM ATsheet3.FRX PREVIEW

ENDCASE

CLEAR
CLOSE DATA

ATSHEET4.PRG

CLOSE DATA
CLEA
SET TALK OFF
SET SAFETY OFF

SELECT 1
USE attend ORDER empno

SELECT 2
USE employee ORDER empno

SELECT 3
USE ovtime ORDER empno3

SELECT 4
USE artime ORDER empno2

SELECT 5
USE deptt ORDER deptcode

SELECT 6
USE month ORDER mcode

SELECT 1
SET RELATION TO str(deptcode)+str(empno) INTO employee ADDITIVE
SET RELATION TO str(deptcode)+str(atord)+str(empno) INTO ovtime ADDITIVE
SET RELATION TO str(deptcode)+str(empno) INTO artime ADDITIVE
SET RELATION TO deptcode INTO deptt ADDITIVE
SET RELATION TO mcode INTO month ADDITIVE

CLEAR

PUBLIC Vp
Vp = space(1)

@ 11,19 SAY “Report to Printer or View (P/V) ? “
@ ROW(),COL() GET Vp PICT “@!” VALID INLIST(Vp,’P’,’V’);
ERROR “(P)rinter,(V)iew “
READ

DO CASE

CASE Vp = "P"

    REPORT FORM ATsheet4.FRX TO PRINTER NOEJECT

CASE Vp = "V"

    REPORT FORM ATsheet4.FRX PREVIEW

ENDCASE

CLEAR
CLOSE DATA

BACKGRND.PRG

  • ÖÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ·
  • º º
  • º 11/18/95 BACKGRND.SPR 17:42:11 º
  • º º
  • ÇÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄĶ
  • º º
  • º Author’s Name º
  • º º
  • º Copyright (c) 1995 Company Name º
  • º Address º
  • º City, Zip º
  • º º
  • º Description: º
  • º This program was automatically generated by GENSCRN. º
  • º º
  • ÓÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄĽ

REGION 0

REGIONAL m.currarea, m.talkstat, m.compstat

IF SET(“TALK”) = “ON”
SET TALK OFF
m.talkstat = “ON”
ELSE
m.talkstat = “OFF”
ENDIF
m.compstat = SET(“COMPATIBLE”)
SET COMPATIBLE FOXPLUS

  • ÖÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ·
  • º º
  • º MS-DOS Window definitions º
  • º º
  • ÓÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄĽ
    *
  • ÖÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ·
  • º º
  • º BACKGRND/MS-DOS Screen Layout º
  • º º
  • ÓÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄĽ
    *

REGION 1

@ 24,77 SAY “°°°” ;
SIZE 1,3, 0
@ 1,0 SAY “°°” ;
SIZE 1,2, 0
@ 1,2 SAY “°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°” ;
SIZE 1,75, 0
@ 2,0 SAY “°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°” ;
SIZE 1,58, 0
@ 3,0 SAY “°°” ;
SIZE 1,2, 0
@ 3,2 SAY “°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°” ;
SIZE 1,75, 0
@ 4,0 SAY “°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°” ;
SIZE 1,58, 0
@ 5,0 SAY “°°” ;
SIZE 1,2, 0
@ 5,2 SAY “°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°” ;
SIZE 1,75, 0
@ 6,0 SAY “°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°” ;
SIZE 1,58, 0
@ 7,0 SAY “°°” ;
SIZE 1,2, 0
@ 7,2 SAY “°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°” ;
SIZE 1,75, 0
@ 8,0 SAY “°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°” ;
SIZE 1,58, 0
@ 9,0 SAY “°°” ;
SIZE 1,2, 0
@ 9,2 SAY “°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°” ;
SIZE 1,75, 0
@ 10,0 SAY “°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°” ;
SIZE 1,58, 0
@ 11,0 SAY “°°” ;
SIZE 1,2, 0
@ 11,2 SAY “°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°” ;
SIZE 1,75, 0
@ 12,0 SAY “°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°” ;
SIZE 1,58, 0
@ 13,0 SAY “°°” ;
SIZE 1,2, 0
@ 13,2 SAY “°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°” ;
SIZE 1,75, 0
@ 14,0 SAY “°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°” ;
SIZE 1,58, 0
@ 15,0 SAY “°°” ;
SIZE 1,2, 0
@ 15,2 SAY “°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°” ;
SIZE 1,75, 0
@ 16,0 SAY “°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°” ;
SIZE 1,58, 0
@ 17,0 SAY “°°” ;
SIZE 1,2, 0
@ 17,2 SAY “°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°” ;
SIZE 1,75, 0
@ 18,0 SAY “°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°” ;
SIZE 1,58, 0
@ 19,0 SAY “°°” ;
SIZE 1,2, 0
@ 19,2 SAY “°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°” ;
SIZE 1,75, 0
@ 0,58 SAY “°°°°°°°°°°°°°°°°°°°” ;
SIZE 1,19, 0
@ 2,58 SAY “°°°°°°°°°°°°°°°°°°°” ;
SIZE 1,19, 0
@ 4,58 SAY “°°°°°°°°°°°°°°°°°°°” ;
SIZE 1,19, 0
@ 6,58 SAY “°°°°°°°°°°°°°°°°°°°” ;
SIZE 1,19, 0
@ 8,58 SAY “°°°°°°°°°°°°°°°°°°°” ;
SIZE 1,19, 0
@ 10,58 SAY “°°°°°°°°°°°°°°°°°°°” ;
SIZE 1,19, 0
@ 12,58 SAY “°°°°°°°°°°°°°°°°°°°” ;
SIZE 1,19, 0
@ 14,58 SAY “°°°°°°°°°°°°°°°°°°°” ;
SIZE 1,19, 0
@ 16,58 SAY “°°°°°°°°°°°°°°°°°°°” ;
SIZE 1,19, 0
@ 18,58 SAY “°°°°°°°°°°°°°°°°°°°” ;
SIZE 1,19, 0
@ 20,0 SAY “°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°” ;
SIZE 1,77, 0
@ 21,0 SAY “°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°” ;
SIZE 1,77, 0
@ 22,0 SAY “°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°” ;
SIZE 1,77, 0
@ 23,1 SAY “°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°” ;
SIZE 1,77, 0
@ 0,77 SAY “°°°” ;
SIZE 1,3, 0
@ 1,77 SAY “°°°” ;
SIZE 1,3, 0
@ 2,77 SAY “°°°” ;
SIZE 1,3, 0
@ 3,77 SAY “°°°” ;
SIZE 1,3, 0
@ 4,77 SAY “°°°” ;
SIZE 1,3, 0
@ 5,77 SAY “°°°” ;
SIZE 1,3, 0
@ 6,77 SAY “°°°” ;
SIZE 1,3, 0
@ 7,77 SAY “°°°” ;
SIZE 1,3, 0
@ 8,77 SAY “°°°” ;
SIZE 1,3, 0
@ 9,77 SAY “°°°” ;
SIZE 1,3, 0
@ 10,77 SAY “°°°” ;
SIZE 1,3, 0
@ 11,77 SAY “°°°” ;
SIZE 1,3, 0
@ 12,77 SAY “°°°” ;
SIZE 1,3, 0
@ 13,77 SAY “°°°” ;
SIZE 1,3, 0
@ 14,77 SAY “°°°” ;
SIZE 1,3, 0
@ 15,77 SAY “°°°” ;
SIZE 1,3, 0
@ 16,77 SAY “°°°” ;
SIZE 1,3, 0
@ 17,77 SAY “°°°” ;
SIZE 1,3, 0
@ 18,77 SAY “°°°” ;
SIZE 1,3, 0
@ 19,77 SAY “°°°” ;
SIZE 1,3, 0
@ 20,77 SAY “°°°” ;
SIZE 1,3, 0
@ 21,77 SAY “°°°” ;
SIZE 1,3, 0
@ 22,77 SAY “°°°” ;
SIZE 1,3, 0
@ 23,77 SAY “°°°” ;
SIZE 1,3, 0
@ 22,22 SAY “Designed & Developed by Amjad Izhar” ;
SIZE 1,35, 0
@ 0,4 SAY “°°°°°°°°°°°° P°°° A°°° Y°°° R°°° O°°° L°°° L°°°°°°°°°°°°°°°°°°°°°°°°°°°°” ;
SIZE 1,72, 0
@ 0,0 SAY “°°” ;
SIZE 1,2, 0
@ 0,2 SAY “°°” ;
SIZE 1,2, 0
@ 24,0 SAY “°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°” ;
SIZE 1,77, 0
@ 23,0 SAY “°” ;
SIZE 1,1, 0

REGION 0

IF m.talkstat = “ON”
SET TALK ON
ENDIF
IF m.compstat = “ON”
SET COMPATIBLE ON
ENDIF

BACKGRWN.PRG

  • *
  • *
  • * 09/03/96 BACKGRWN.SPR 12:44:18
  • *
  • *
  • *
  • * Author’s Name
  • *
  • * Copyright (c) 1996 Company Name
  • * Address
  • * City, Zip
  • *
  • * Description:
  • * This program was automatically generated by GENSCRN.
  • *
  • *

REGION 0

REGIONAL m.currarea, m.talkstat, m.compstat

IF SET(“TALK”) = “ON”
SET TALK OFF
m.talkstat = “ON”
ELSE
m.talkstat = “OFF”
ENDIF
m.compstat = SET(“COMPATIBLE”)
SET COMPATIBLE FOXPLUS

m.rborder = SET(“READBORDER”)
SET READBORDER ON

m.currarea = SELECT()

  • *
  • *
  • * Windows Window definitions
  • *
  • *
    *

IF _DOS
MODIFY WINDOW SCREEN ;
AT 0.000, 0.000 ;
SIZE 30.769,125.000 ;
FONT “MS Sans Serif”, 8 ;
NOFLOAT ;
NOCLOSE ;
NOMINIMIZE ;
FILL FILE LOCFILE(“REDBRICK.BMP”,”BMP|ICO|PCT|ICN”, ;
“Where is redbrick?”)
ENDIF

CLEAR

  • *
  • *
  • * BACKGRWN/Windows Screen Layout
  • *
  • *
    *

REGION 1

IF _DOS
@ 27.308,2.000 SAY (LOCFILE(“copyrite.bmp”,”BMP|ICO|PCT|ICN”, “Where is copyrite?” )) BITMAP ;
SIZE 1.615,4.200 ;
STYLE “T”
ENDIF

DO top IN tbl_proc.PRG
DO bot IN tbl_proc.PRG

@ 11,58 SAY “P A Y R O L L – M A I N M E N U” FONT ‘FoxFont’,11
@ 37,141 SAY “P a y r o l l” FONT “Times New Roman”, 14 STYLE “BIT”

*@ 25.769,6.800 SAY “Designed & Developed By: Amjad Izhar. amjad18@yahoo.com” ;

  • FONT “Busorama Md BT”, 10 ;
  • STYLE “BT” ;
  • COLOR RGB(0,255,0,,,,)

*@ 27.462,7.000 SAY “Dada Industries. 2015-16” ;

  • FONT “Photina”, 12 ;
  • STYLE “BT” ;
  • COLOR RGB(255,255,0,,,,)

SELECT (m.currarea)

REGION 0

SET READBORDER &rborder

IF m.talkstat = “ON”
SET TALK ON
ENDIF
IF m.compstat = “ON”
SET COMPATIBLE ON
ENDIF

BACKUP.PRG

!PKZIP DBFS.ZIP *.DBF
!PKZIP CDX.ZIP *.CDX
!PKZIP FPT.ZIP *.FPT
!PKZIP PRGS.ZIP *.PRG

BHM_PROC.PRG


  • PROGRAM: BHM_PROC.PRG
  • Author: Amjad Izhar
  • Budget Heads Maintenance
  • Revised Again On : 18-01-2001

  • 1 – Budget Heads ….. Creation budg_ent
  • 2 – Budget Heads ….. Printing/Display budg_prt

  • 1 – Budget Heads ….. Creation budg_ent *

PROCEDURE budg_ent


CLEAR
CLOSE ALL
SET CONFIRM OFF

IF _DOS
SET COLOR TO 7/1
ENDIF

SELECT 1
USE ldgrcode ORDER ac1

SELECT 3
USE chart ORDER crt

STORE 0 TO MC1, MC2, MC3
DO WHILE .T.
CLEAR
DO top IN tbl_proc.prg

IF _DOS
SET COLOR TO +7/1
ENDIF

@ 6, 25 SAY ‘Budget Maintenance Entry ‘

IF _DOS
SET COLOR TO 7/1
ENDIF

@ 23, 1 TO 23, 79
SELECT 1

IF _DOS
SET COLOR TO 7/1
ENDIF

@ 24, 51 SAY ‘Press Ctrl Q To Quit ‘
@ 8, 8 SAY ‘Ledger Head Code ‘

IF _DOS
SET COLOR TO /w
ENDIF

@ 8, 30 SAY ‘ – – ‘
@ 8, 30 GET MC1 PICTURE ‘@z 99’

IF _DOS
SET COLOR TO 7/1
ENDIF

READ
IF READKEY()=12
CLEAR
CLOSE ALL
SET CONFIRM OFF
RETURN
ENDIF
@ 24, 50 CLEAR TO 24, 78
IF MC1=0
LOOP
ENDIF
SELECT 3
SET FILTER TO MC1>=FR.and.MC1<=TO GOTO TOP IF MC1>=FR.and.MC1<=TO
SEEK STR(FR,2)+STR(TO,2)
IF FOUND()
MCH= CHART
ENDIF
ENDIF
SET FILTER TO
SELECT 1
IF MC1<10
@ 24, 1 SAY ‘Code C1 less than 10 not allowed.’
WAIT ”
@ 24, 1
LOOP
ENDIF

IF _DOS
SET COLOR TO *+7/1
ENDIF

@ 8, 50 SAY MCH

IF _DOS
SET COLOR TO 7/1
ENDIF

IF MC1>99.and.MC1<100

IF _DOS
SET COLOR TO *+7/1
ENDIF

  @ 8, 50 SAY 'Not Defined Head      '

IF _DOS
SET COLOR TO 7/1
ENDIF

ENDIF
MPC1= REPLICATE(‘0’,2-LEN(LTRIM(STR(MC1))))+LTRIM(STR(MC1))

IF _DOS
SET COLOR TO /w
ENDIF

@ 8, 30 SAY MPC1
@ 8, 33 GET MC2 PICTURE ‘@z 99’
READ
MPC2= REPLICATE(‘0’,2-LEN(LTRIM(STR(MC2))))+LTRIM(STR(MC2))
@ 8, 33 SAY MPC2
@ 8, 36 GET MC3 PICTURE ‘@z 999’
READ
MPC3= REPLICATE(‘0’,3-LEN(LTRIM(STR(MC3))))+LTRIM(STR(MC3))
@ 8, 36 SAY MPC3

IF _DOS
SET COLOR TO 7/1
ENDIF

IF READKEY()=12
CLOSE DATA
CLEAR
RETURN
ENDIF
SELECT 1
STORE STR(MC1,2)+STR(MC2,2)+STR(MC3,3) TO MLCODE
SEEK MLCODE
IF .not. FOUND()
@ 24, 15 SAY ‘This Code Does Not Exist — Please Re-try ‘
WAIT ”
@ 24, 8 CLEAR TO 24, 63
LOOP
ENDIF
IF MC3=0
@ 12, 1 CLEAR TO 22, 79
@ 12, 8 SAY ‘ Note:- Three zeros at the end of the ledger code’
@ 13, 8 SAY ‘ will make it a consolidation head i.e you’
@ 14, 8 SAY ‘ will not be able to Post Transactions’
@ 15, 8 SAY ‘ directly into this head.’
@ 16, 8 SAY ‘ Hit any key to continue ……….’
WAIT ”
CLEAR
LOOP
ENDIF
@ 10, 8 SAY ‘Title of Ledger Head ‘ GET TITLE
CLEAR GETS
IF SR_NO>1
@ 14, 17 SAY ‘Transactions already exist for this ‘
@ 15, 17 SAY ‘Ledger Head therefore you can only ‘
@ 16, 17 SAY ‘make changes in the Title and cannot ‘
@ 17, 17 SAY ‘make changes in the Budget Amount ‘
WAIT ”
CLEAR
LOOP
ENDIF
IF SR_NO=1.and.C3<>0
@ 12, 8 SAY ‘Budget Amount Rs. ‘ GET BUDGET PICTURE ‘999999999.99’
READ
ENDIF
Q= ‘ ‘
DO WHILE .not. Q$’YN’
@ 24, 25 SAY ‘More Data Entry – Y/N’ GET Q FUNCTION ‘!’
READ
ENDDO
IF Q=’N’
CLEAR
CLOSE ALL
SET CONFIRM OFF
RETURN
ENDIF
MC3= MC3+1
ENDDO

RETURN



  • 2 – Budget Heads ….. Printing/Display budg_prt *

PROCEDURE budg_prt


CLEAR
CLOSE ALL
USE ldgrcode ORDER ac1

IF RECCOUNT()=0
CLEAR
@ 12, 12 SAY ‘No Ledger Heads Exist in Data File – Press any key to return to menu …. ‘
WAIT ”
CLEAR
CLOSE ALL
RETURN
ENDIF
P= ‘ ‘
DO WHILE .not. P$’PSQ’
@ 23, 45 SAY ‘Printer/Screen/Quit – P/S/Q ‘ GET P FUNCTION ‘!’
READ
ENDDO
IF P=’Q’
CLOSE ALL
CLEAR
RETURN
ENDIF
IF P=’S’
CLEAR
SET PRINTER OFF
SET DEVICE TO SCREEN
ELSE
CLEAR
PANS= ‘ ‘
do PRNCHK in tbl_proc
IF PANS=’Q’
CLOSE ALL
CLEAR
RETURN
ENDIF
@ 11, 20 SAY ‘Please wait … Printing in progress ‘
SET PRINTER ON
SET DEVICE TO PRINTER
ENDIF
HEADING= .T.
PAGE= 0
DO WHILE .not. EOF()
IF HEADING
L= 3
PAGE= PAGE+1
IF P=’P’
DO top_prt1 IN tbl_proc.prg
@ 3, 15 SAY CHR(18)
@ 3, 33 SAY ‘BUDGET HEADS’
@ 4, 32 SAY ‘————–‘
@ 4, 65 SAY ‘Page -‘
@ 4, 71 SAY PAGE PICTURE ’99’
L= L+1
ELSE
DO screen IN tbl_proc.prg
@ 3, 30 SAY ‘BUDGET HEADS’
L= L+1
@ L, 30 SAY ‘————– Page – ‘
@ L, 70 SAY PAGE PICTURE ‘999’
ENDIF
L= L+2
@ L, 7 SAY ‘Code’
@ L, 28 SAY ‘Title’
@ L, 52 SAY ‘Budget’
L= L+1
@ L, 5 SAY REPLICATE(‘-‘,72)
HEADING= .F.
ENDIF
IF C3=0
SKIP
LOOP
ENDIF
IF BUDGET=0
SKIP
LOOP
ENDIF
L= L+1
IF C2=0.and.C3=0.and.RIGHT(STR(C1),1)=’0′
L= L+1
MPC1= REPLICATE(‘0’,2-LEN(LTRIM(STR(C1))))+LTRIM(STR(C1))
@ L, 5 SAY MPC1
@ L, 7 SAY ‘-‘
MPC2= REPLICATE(‘0’,2-LEN(LTRIM(STR(C2))))+LTRIM(STR(C2))
@ L, 8 SAY MPC2
@ L, 10 SAY ‘-‘
MPC3= REPLICATE(‘0’,3-LEN(LTRIM(STR(C3))))+LTRIM(STR(C3))
@ L, 11 SAY MPC3
@ L, 20 SAY TITLE
MLEN= LEN(RTRIM(TITLE))
L= L+1
@ L, 5 SAY REPLICATE(‘-‘,15+MLEN)
ENDIF
IF C3=0.and.RIGHT(STR(C1),1)<>’0′
L= L+1
MPC1= REPLICATE(‘0’,2-LEN(LTRIM(STR(C1))))+LTRIM(STR(C1))
@ L, 5 SAY MPC1
@ L, 7 SAY ‘-‘
MPC2= REPLICATE(‘0’,2-LEN(LTRIM(STR(C2))))+LTRIM(STR(C2))
@ L, 8 SAY MPC2
@ L, 10 SAY ‘-‘
MPC3= REPLICATE(‘0’,3-LEN(LTRIM(STR(C3))))+LTRIM(STR(C3))
@ L, 11 SAY MPC3
@ L, 20 SAY TITLE
ELSE
IF C3<>0
MPC1= REPLICATE(‘0’,2-LEN(LTRIM(STR(C1))))+LTRIM(STR(C1))
@ L, 8 SAY MPC1
@ L, 10 SAY ‘-‘
MPC2= REPLICATE(‘0’,2-LEN(LTRIM(STR(C2))))+LTRIM(STR(C2))
@ L, 11 SAY MPC2
@ L, 13 SAY ‘-‘
MPC3= REPLICATE(‘0’,3-LEN(LTRIM(STR(C3))))+LTRIM(STR(C3))
@ L, 14 SAY MPC3
@ L, 20 SAY TITLE
ENDIF
ENDIF
@ L, 45 SAY BUDGET PICTURE ‘999,999,999.99’
SKIP
IF EOF()
IF P=’P’
EJECT
SET PRINTER OFF
SET DEVICE TO SCREEN
ENDIF
ENDIF
IF P=’S’
IF L>21
@ 24, 15 SAY ”
XYZ= ‘ ‘
DO WHILE .not. XYZ$’CQ’
SET CONFIRM OFF
@ 24, 55 SAY ‘Continue/Quit – C/Q ‘ GET XYZ FUNCTION ‘!’
READ
ENDDO
IF XYZ=’Q’
CLEAR
CLOSE ALL
RETURN
ENDIF
CLEAR
L= 3
HEADING= .T.
ENDIF
ENDIF
IF P=’P’
IF L>56
EJECT
L= 3
HEADING= .T.
ENDIF
ENDIF
ENDDO
IF P=’S’
@ 24, 7 SAY ‘End of Screen Printing – Press any key to return to menu…. ‘
WAIT ”
ELSE
EJECT
SET PRINTER OFF
SET DEVICE TO SCREEN
ENDIF
CLOSE ALL

RETURN



Discover more from Amjad Izhar Blog

Subscribe to get the latest posts sent to your email.

Comments

Leave a comment