You are on page 1of 27

Foxpro for MS-DOS - Basic FoxPro 2.

6 Commands

FoxPro is SEMI-RDBMS Unlike other RDBMS systems, in FoxPro each database can contain only one table. Hence, the single table is called as database in this tutorial

In FoxPro, first four characters of any command is enough to execute For e.g.:- crea ==> create 1. TO OPEN A DATABASE: Syn: use <dbname> Ex: use book 2.TO CLOSE THE DATABASE: Use To close the current opened database. Close all To close the all opened database. 3. To CREATE NEW DATABASE: Syn: crea <dbname> create <dbname> Ex: crea book

4. To Modify Structure of the Database: Modify structure (Or) Modi stru 5. To add new records in database Append is used to add the new record. Syn: append [Blank] [From <dbname>] Ex Append Append Blank - To add blank records. Append from first.dbf - To add the records from FIRST.DBF to SECOND.DBF - Same Structure is required for these databases

6. To display the records in the current database Used to display the particular record. Syn: Display [All] [Structure]

[Status] [Memory] Ex: Display Display All Display All Records in page wise. 7. To Display the structure of the database: Display Structure 8. To display the status of the set commands: Display Status 9. To display the status of the system memory variables. Display Memory 10. To view the status bar Set stat on 11. To edit records EDIT - It list all the records one by one for editing. Any one of the record can be edited using 'FOR' as below EDIT FOR empname = "LEELA" EDIT FOR rollno = 103

12. To delete records DELETE - To delete current record DELETE NEXT 4 - To delete next 4 records After using the delete command the records marked with * (asterisk) mark, i.e., marked for deletion. RECALL

- It is used to recover the deleted records. e.g. RECALL RECALL NEXT 4 PACK - To delete the records permanently. It is used after the delete command. BLANK - It can be used to empty the record instead of deleting. 13. To delete all the records in the current database ZAP

14. Navigation with Records


GO or GOTO both do the same things in Foxpro. GO TOP Used to move the record pointer at the first record. GO BOTTOM: Used to move the record point at the last record. Go To go to a particular record Syn:- GO <recordno> Eg:- GO 8 Go to record 8 SKIP - To skip number of records e.g. To skip 3 records - SKIP 3

15. To List the records


LIST - To list the records in screen, not in window It can be used with condition as below: LIST for val(price) > 100

LIST itemname, price+20 - This command lists item name with price rupees 20 added. The changes are applied only to the view, it not saved in database. LIST product, price*2 - price is multiplied with 2.

16. To view the records as manipulatable view


BROWSE - To browse the records BROWSE NOEDIT - To browse the records in read only view, The records can be marked for deletion using Ctrl + T shortcut BROWSE NODELETE - To avoid deleting while browsing the records

17. To display current record number


?RECNO()

18. To display the dbf files in the current directory


DIR

19. Hide or Show heading in list view


SET HEADINGS OFF SET HEADINGS ON

20. Printing
SET PRINT ON - This command sends the out put to printer - To stop this use the command SET PRINT OFF SET PRINTER TO LPT1 - To set the output printing port to LPT1

21. Handling date and date format


To display current system date

?DATE() To set century on to display year in 4 digits. SET CENTURY ON SET CENTURY OFF To set date format dd/mm/yyyy => SET DATE BRIT mm/dd/yyy => SET DATE AMERICA yyyy/mm/dd => SET DATE JAPAN

22. Replace command


To replace the content of the specified field in the database table. i.e., This command can be used to remove the data in the particular field (nullifying / empty a field) e.g. REPLACE fieldname WITH "" - To replace with null value REPLACE fieldname WITH { / / } - To replace the date field with null value

REPLACE ALL QUANTITY WITH 0 - Replaces the data in the quatity fied with 0 in all the records. REPLACE ALL PRICE WITH PRICE+50 - Adds 50 to the price field.

23. Blank
To blank some or all the fields in the current record. BLANK - To blank all the fields in the current record BLANK FIELDS <field1>, <field> - To blank specified fields in the current record PROGRAM A Program is a set of instructions used to achieve the desired output. To create new program or to edit the existing one. MODI COMM OR MODIFY COMMAND <PRGRAM_NAME> NOTE command If ignore the particular line or command, NOTE can be used at the beginning of that line. Comment Line To add comments to the right of the Programming code , use && Clear All Command This command is used to closes all databases files and releases all active memory variables, arrays menus or popup. Input / Output command ? | ?? | ??? [expr1?] ? ?? - To print the expression in new line - To print the expression in the same line

??? - The Output will going to the printer Example: ? "Hellow!" Sample Program NOTE prg for just print something on the screen Clear && To Clear the Screen or previous outputs

?"Welcome" ?"Hellow!"

?? " World...!" ??? "Thank you

Writing Programs * FoxPro has powerful built-in editor for writing and editing.

* It can be invoked from the command window by using the MODIFY COMMAND. Syntax: MODIFY COMMAND <prenames> Example: Modify Command journal (This program will automatically save with the extension .PRG)

Press CTRL + W - To save and close the program window Executing Program Programs can be executed by DO command. Syntax: DO <prgname> Example: Do journal When compile the executed file the FoxPro creates an object code program with .FXP extension. If there are any errors, creates a file an .ERR extension. INPUT command It is used to accept Numeric input from the user and store it into a memory variable. Syntax: INPUT [<char exp>] TO <memvar> Example: Store 0 to eno INPUT ? Eno ACCEPT command It is used to accept character input from the user and store it into a memory variable. Syntax: ACCEPT [<char exp>] TO <memvar> Example: Store space (15) to NAM "Enter your Enrollment No : " TO eno

ACCEPT "Enter the Name: " to NAM ? "Entered name: NAM Example 2 clear SET TALK OFF Accept "Enter your nane :" to nam Input "enter your Age : " to age Accept " enter your city :" to cit Accept "Enter your Mail id : " to mail ? "******************************************" ? "NAME :: " ,nam ? "AGE ? "CITY :: " ,age :: " ,cit

? "MAIL ID:: " ,mail ? "******************************************"

Setting/restoring the environment Every FoxPro program includes all commands required to establish the working environment and restore it to its prior state before the program terminates execution. This is achieved by issuing some set. Set notify on/off Enables the display of certain system messages. Set talk window Directors the display of system messages to an user-defined window instead of the system window. Sets notify should be ON. Set deleted on/off Processes records marked for deletion. Input and output in foxpro As we already know that data can be entered into tables through the APPEND/BROWSE commands. Data entry for tables can also be done through programs. There arises a need to display and accept information in a formatted way. The @say command is used to place data at a particular screen location and to display data stored in fields or memory variables. The @get commands is used to retrieve data. Displaying data

@say command: Syntax: @<Row, columns>SAY<expr> [Function<exprC1>] [Picture<expr2>] [size<exprn],<exprn2>] [font<exprC3>[,<exprN3]] [STYLE, exprC4>] Example:@2, 10 say hello welcome to FoxPro Syntax: Input @row,column | say <char_exp> get <mem_var> Output @row ,column | say <char_exp> get <mem_var>

Clear @row, column to row, column clear Clear all

Ex @5, 5 clear to 20, 20

Box Command @row1, column1 to row2, column 2 Picture clause PICTURE clause is used to control of display or the information to be accepted. @..SAY...GETS PICTURE CODES: A 9 N # X L Allows only alphabets Allows only digits, signs for numeric data Allows Letters and Digits Allows Only Digits, Blanks and Signs Allows any Character Allows any Logical Data T, t, F, f, Y, y, N, n

Y ! * , . -

Allows Only Y, y, N, n Converts letters into uppercase. Displays asterisk in place of leading zeros. Display the comma Display the decimal Point.

Function Clause You can include the function clause, the picture clause or both to control how<expr> is displayed or printed. A function clause affects the entire expression. It contains only the following function code. Function code & Purpose B Left justifies numeric data within the display region. Example: Clear Store 2750 to num @5,20 say num @6,20 say num function B C Cr is displayed after a positive number to indicate a credit. Can be used with numeric data only. Example:Clear Store 15432.00 to amt @5,20 say amt @6,20 say amt function c D Uses the current set DATE format. Example:Clear Store 230801 to num Store foxproprograming to tit @5,20 say num function D @6,20 say tit function D E Edits date type data as British date Example:Clear Store 230904 to num @6,20 say num function E T Trim leading and trailing blanks from<expr>

Example:Clear @5,20 fox to tit @6,20 say tit function T X DB is displayed after negative numbers to indicate a debit. used only with numberic data. Example:Clear Store -15432.00 to amt @5,20 say amt @6,20 say amt function X Z <expr> is displayed as all blanks if its numeric value is 0. used only with numeric data. Example: Clear Store o to amt @5,20 say amt @6,20 say amt function z ( Encloses negative numbers in parentheses. Used only with numeric data. Example:Clear Store 755 to amt @5,20 say amt @6,20 say amt function ( ! Converts alphabetic characters to upper-case used with character data-only Example:Clear Store foxpro programming to tit @6,20 say tit function ! ^ Displays numeric data using scientific notation. Used with numeric data only. Example:Clear Store 75815 to amt @6,20 say amt function ^

$ Displays data in currently format. the currency symbol appears before or after the field value depending on the current setting of set currency. used with numeric data only. Example:Clear Store 75815 to amt @6,20 say amt function $ Picture expression can include the following characters:X Allows any character. Y Allows logical Y, y, N and n only. Converts y and n to Y and N, respectively. ! Displays the current currency symbol specified by set currency. By default, the symbol is placed immediately before or after the field. * Asterisks are displayed in front of the numeric value. Use with a dollar sign $ for check protection. . A decimal point specifies the decimal point position. , A comma is used to specifies digits to the left of the decimal point. Control Structures IF statement If Condition is True Executed and then False Not Executed. Syntax If (condition) then Statement-1 End if Example clear mark =0 @5,5 say " Enter the Mark : " get mark RANGE 0,100 Read If mark >=40 Then @10,10 say " You have PASS" Endif If.else.endif:The commands between if..end if will be executed only if condition is satisfied, otherwise the next

statement is executed. For every if there must be an end if. Every is matched with the nearest unmatched if. Syntax:If<condition> <Command sequence-1> Else <Command sequence-2> End if Command sequence 1 will be executed if a condition is true, if condition is false command sequence-2 will be executed. Control falls to the next statement in either case, if program I still in execution. Example 2 clear Store 0 to x,y @5, 5 say " Enter the First value: " get x @7,5 say " Enter the Second value: " get y Read IF x > y Then @10, 10 say str(x) + is Greater than + ltrim (str(y)) Else @10, 10 say str(x) + " is lesser than " + ltrim (str(y)) Endif Example 3 clear Store space(1) to x,ch @5, 5 say " Enter any Alphabet: " get x Read ch =chr(asc(x) +32) && To convert Upper into Lower IF ch="a" .or. ch="e" .or. ch="i" .or. ch="o" .or. ch="u" then @10,10 say ch + " is a VOWEL " Else @10,10 say ch + " is a CONSONANT" Endif

NESTED IF: (IF within IF) clear store 0 to x,y,z @5,5 say " Enter No1 : " get x @7,5 say " Enter No2 : " get y @9,5 say " Enter No3 : " get z Read If x > y then IF x>z then @ 15,5 say " X is Greater than y and z" Else @15,5 say "X is Greater than Y and Lesser than Z" Endif Else IF Y>Z then @ 15,5 say " Y is Greater than X and Z" Else @15,5 say "Y is Greater than X but not Z" Endif Endif DO CASE Case Commands are used to check for a specified condition Syntax: DO Case Case <variable> = <value> Statement -1 Case <variable> = <value> Statement -2 Otheriwse Statement -3 End Case Example: clear store 0 to day

@5,5 say " Enter any number from 1 to 7 " get day Read DO CASE case day = 1 @10,10 say "SUNDAY" case day = 2 @10,10 say "MONDAY" case day = 3 @10,10 say "TUESDAY" case day = 4 @10,10 say "WEDNESDAY" case day = 5 @10,10 say "THURSDAY" case day = 6 @10,10 say "FRIDAY" case day = 7 @10,10 say "SATURDAY" OTHERWISE @10,10 SAy "Invalid Input"

EndCase FOR LOOP


To repeatedly execute a series of lines in a Program. The lines of code b/w FOR and ENDOFR will be executed until the memory final condition specified. variable is equal to the

Default STEP value is 1.

Syntax FOR <memvar> = <initial value> TO <final value> STEP <no> ................ ................ ENDFOR Example: 1 CLEAR FOR I = 1 TO 10

?I EndFor Example: 2 To print the EVEN nos from 2 to 50 CLEAR FOR I = 2 TO 50 STEP 2 ?I EndFor

Creating menu in Foxpro for DOS


Posted on: 12 February 2012

By: Karthikeyan

This is an example of simple navigation menu programming in Foxpro 2.6


1. set talk off 2. set stat off 3. set scor off 4. set cent on 5. set date brit 6. do whil .t. 7. clea 8. @5,20 to 19,45 doub 9. @6,25 say "MAIN MENU" 10. @7,21 to 7,44 doub 11. k=0 12. @ 9,25 prompt "DATA ENTRY" 13. @11,25 prompt "REPORT PRINTING" 14. @13,25 prompt "PROCESS" 15. @15,25 prompt "EXIT" 16. @17,25 prompt "QUIT to SYSTEM" 17. menu to k 18. do case 19. case k=1 20. do dataent 21. case k=2 22. do repoprn 23. case k=3 24. * do proces 25. case k=4 26. exit 27. case k=5 28. clos all 29. clea all 30. quit 31. otherwise 32. loop 33. endcase 34. enddo

35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45. 46. 47. 48. 49. 50. 51. 52. 53. 54. 55. 56. 57. 58. 59. 60. 61. 62. 63. 64. 65. 66. 67. 68. 69. 70. 71. 72. 73. 74. 75. 76. 77. 78. 79. 80. 81. 82. 83. 84. 85. 86. 87. 88. 89. 90. 91.

clos all clea all

proce dataent do whil .t. clea @5,20 to 19,55 doub @6,30 say "DATA ENTRY MENU" @7,21 to 7,54 k1=0 @ 9,25 prompt "1. STUDENT" @11,25 prompt "2. STAFF" @13,25 prompt "3. FEES " @15,25 prompt "4. COURSES" @17,25 prompt "RETURN TO MAINMENU" menu to k1 do case case k1=1 do stud case k1=2 do staff case k1=3 do fees case k1=4 do course case k1=5 exit otherwise loop endcase enddo clos all return proce repoprn do whil .t. clea @5,20 to 19,55 doub @6,30 say "REPORT MENU" @7,21 to 7,54 k1=0 @ 9,25 prompt "Report 1" @11,25 prompt "Report 2" @13,25 prompt "Report 3" @15,25 prompt "Report 4" @17,25 prompt "Return to Mainmenu" menu to k2 do case case k2=1 do fmainprn case k2=2 do fothrprn case k2=3 do mainprn case k2=4

92. 93. 94. 95. 96. 97. 98. 99. 100.

do othrprn case k2=5 exit otherwise loop endcase enddo clos all return

Simple Journal Entry program


Posted on: 28 September 2009

By: Karthikeyan 1. CLEA 2. clea all 3. set talk off 4. use jour1 5. reply = "y" 6. GO BOTTOM 7. DO WHILE UPPER(REPLY) = "Y" 8. STORE 0 TO CRE, DEB 9. STORE SPACE(10) TO P1, P2 10. STORE SPACE(15) TO NR 11. STORE CTOD(" / / ") TO DATE1 12. @4,10 SAY [DATE :] GET DATE1 13. @6,10 SAY [PARTICULAR1 :] GET P1 14. @6,45 SAY [DEBIT :] GET DEB 15. @8,10 SAY [PARTICULAR2 :] GET P2 16. @8,45 SAY [CREDIT :] GET CRE 17. @12,10 SAY [NARRATION :] GET NR 18. READ 19. APPEND BLANK 20. @18,10 SAY [DO U CONTINUE(Y/N)?] GET REPLY 21. READ 22. REPL DATE WITH DATE1 23. REPL PART1 WITH P1 24. REPL PART2 WITH P2 25. REPL NAR WITH NR 26. REPL DEBIT WITH DEB 27. REPL CREDIT WITH CRE 28. ENDDO 29. CLEAR 30. SET DEVI TO SCRE 31. SET PRINT ON 32. SET PRIN TO RESUME1.OUT 33. @2,30 SAY "JOURNAL ENTRIES" 34. @3,0 SAY REPLICATE ("-",75) 35. @4,5 SAY "DATE" 36. @4,18 SAY "PARTICULARS" 37. @4,48 SAY "DEBIT" 38. @4,58 SAY "CREDIT" 39. @5,0 SAY REPLICATE ("-",75) 40. GO TOP 41. 42. ROW = 6 43. DO WHILE .NOT. EOF() 44. @ROW,6 SAY DATE 45. @ROW,19 SAY PART1 +[ DR] 46. @ROW+1,19 SAY [TO ]+PART2

47. 48. 49. 50. 51. 52. 53. 54. 55. 56. 57. 58. 59. 60. 61.

@ROW+2,19 SAY [ (BEING ] +NAR+ [)] @ROW,45 SAY DEBIT @ROW+1, 55 SAY CREDIT IF ROW >18 WAIT "" @6,0 CLEAR ROW = 6 ELSE ROW = ROW + 3 ENDIF SKIP ENDDO SET DEVI TO SCRE SET PRIN TO SET PRIN OFF

Simple Ledger creation & Posting Program


Posted on: 28 September 2009

By: Karthikeyan 1. clear 2. clea all 3. set talk off 4. use jour1 5. store space(15) to acname 6. store 0 to r,p, ds, cs, br, bl, mamt 7. @10,10 say "Account Name" get acname 8. read 9. clear 10. set devi to scre 11. set print on 12. set print to ledger.out 13. @2,2 say replicate("-",75) 14. @3,3 say "Date" 15. @3,13 say "Particulars" 16. @3,28 say "Amount" 17. @3,41 say "Date" 18. @3,52 say "Particulars" 19. @3,67 say "Amount" 20. @4,2 say replicate("-",75) 21. @5,28 say [Ledger for ] + alltrim(acname) 22. @6,28 say "-------------------" 23. r = 7 24. p = 7 25. do while .not. eof() 26. scan for upper(part1) = upper(alltrim(acname)) 27. @r,2 say date 28. @r,11 say "To " + part2 29. @r,26 say credit

30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45. 46. 47. 48. 49. 50. 51. 52. 53. 54. 55. 56. 57. 58. 59. 60. 61. 62. 63. 64. 65. 66. 67. 68. 69. 70. 71. 72. 73. 74.

ds = ds + credit r = r+1 endscan scan for upper(part2) = upper(alltrim(acname)) @p,40 say date @p,50 say "By " + part1 @p,65 say debit cs = cs + debit p = p+1 endscan enddo if p>r br = p else br = r endif if cs > ds bl = cs - ds mamt = cs @r+1,11 say "To bal b/d" @r+1,26 say bl @br+5,50 say "By Bal c/d" @br+5,65 say bl else bl = ds - cs mamt = ds @p+1, 50 say "By bal c/d" @p+1, 66 say bl @br+5,11 say "To Bal b/d" @br+5,26 say bl endif @br+2,26 say "------------" @br+2,66 say "------------" @br+3,26 say mamt @br+3,66 say mamt @br+4,26 say "------------" @br+4,66 say "------------" @br+6,2 say replicate("-",75) set devi to scre set print to set print off return

Trial Balance Program


Posted on: 28 September 2009

By: Karthikeyan

1. clear 2. clear all 3. set talk off 4. store space(1) to reply 5. @3,5 say "Do you continue?" get reply 6. read 7. use trial.dbf 8. store space(20) to p 9. store 0 to cr, db, sno 10. do while upper(reply)="Y" 11. clear 12. @4,10 say [SlNo] get sno 13. @6,10 say [Particular] get p 14. @8,10 say [Debit] get db 15. @10,10 say [Credit] get cr 16. read 17. append blank 18. repl slno with sno 19. repl part with p 20. repl debit with db 21. repl credit with cr 22. @18,10 say [Do continue?] get reply 23. read 24. clear 25. enddo 26. set print on 27. set print to trial.out 28. @2,30 say "Trial Balance" 29. @3,2 say replicate("-",75) 30. @4,2 say "S.No." 31. @4,13 say "A/c Name" 32. @4,28 say "Debit Rs" 33. @4,42 say "Credit Rs" 34. @5,1 say repl("-",75) 35. 36. store 0 to cs, ds, sus, l 37. l = 6 38. do while .not. eof() 39. @l,2 say SLNO 40. @l,7 say part 41. @l,22 say debit 42. @l,35 say credit 43. if l >18 44. wait "" 45. @6,0 clear 46. l = 6 47. else 48. l = l + 1 49. endif 50. cs = cs + credit 51. ds = ds + debit 52. skip 53. enddo

54. 55. 56. 57. 58. 59. 60. 61. 62. 63. 64. 65. 66. 67. 68. 69. 70. 71. 72. 73. 74. 75. 76.

if cs > ds sus = cs - ds @l,7 say "Suspense A/c" @l,22 say sus else if ds > cs sus = ds - cs cs = ds @l,7 say "Suspense A/c" @l,35 say sus endif endif @l+1,21 @l+1,34 @l+3,21 @l+3,34 @l+2,22 @l+2,35 say say say say say say "---------------" "---------------" "---------------" "---------------" cs cs

set print off set print to return

Balance Sheet Program


1. clea 2. clear all 3. set talk off 4. @1,15 say "Trading A/c for the Year Ended" 5. @2,2 say replicate("-",75) 6. @3,7 say "Particulars" 7. @3,45 say "Particulars" 8. @4,2 say repl("-",75) 9. store 0 to opst, pur, purret, tpur, tdeb, wage, wout, twage, carin 10. @5,2 say "To Opening stock" 11. @5,30 get opst 12. @6,2 say "To purchase" 13. @6,20 get pur 14. @7,4 say "Purchase Ret." 15. @7,20 get purret 16. read 17. tpur = pur - purret 18. @7,30 say tpur 19. @8,2 say "To wages" 20. @8,20 get wage 21. @9,4 say "Out.wages" 22. @9,20 get wout 23. read 24. twage = wage + wout 25. @9,30 say twage 26. @10,2 say "To carriage inwards" 27. @10,30 get carin 28. read 29. tdeb = opst + tpur + twage + carin 30.

31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45. 46. 47. 48. 49. 50. 51. 52. 53. 54. 55. 56. 57. 58. 59. 60. 61. 62. 63. 64. 65. 66. 67. 68. 69. 70. 71. 72. 73. 74. 75. 76. 77. 78. 79. 80. 81. 82. 83. 84. 85. 86. 87.

store 0 to sale, saleret, tsale, clstock, tcr @5,40 @5,58 @6,40 @6,58 read tsale @6,68 @7,40 @7,68 read tcr = say get say get "By Sales" sale "(-)Sales Return" saleret

= sale - saleret say tsale say "By Closing Stock:" get clstock clstock + tsale

store 0 to grpro, grloss, gramt grpro = tcr - tdeb if grpro < 0 grloss = abs(grpro) grpro = 0 @11,40 say "By Gross Loss:" @11,68 say grloss gramt = tdeb else @11,2 say "To Gross Profit:" @11,30 say grpro gramt = tcr endif @12,2 say repl("-",75) @13,30 say gramt @13,68 say gramt @14,2 say repl("-",75) wait"" clear * Profit & Loss Account * @1,15 say "Profit & Loss A/c for the Year Ended" @2,2 say replicate("-",75) @3,7 say "Particulars" @3,45 say "Particulars" @4,2 say repl("-",75) if grloss = 0 @5,40 say "By Gross Profit B/D" @5,68 say grpro else @5,2 say "To Gross Loss b/d" @5,30 say grloss endif store 0 to sal, osal, tsal, rent, adv, pcr, pdb @6,2 say "To Salaries" @6,20 get sal @7,3 say "(+)Out.Salary" @7,20 get osal read tsal = sal + osal @7,30 say tsal @8,2 say "To Rent"

88. 89. 90. 91. 92. 93. 94. 95. 96. 97. 98. 99. 100. 101. 102. 103. 104. 105. 106. 107. 108. 109. 110. 111. 112. 113. 114. 115. 116. 117. 118. 119. 120. 121. 122. 123. 124. 125. 126. 127. 128. 129. 130. 131. 132. 133. 134. 135. 136. 137. 138. 139. 140. 141. 142. 143. 144.

@8,30 get rent @9,2 say "To Advertise" @9,30 get adv read pdb = adv + rent + tsal + grloss store 0 to dis, odb, ndb, debts, netpro, pamt, netloss @6,40 say "By Disc. Receiv" @6,68 get dis @7,40 say "By Old debts" @7,58 get odb @8,40 say "(-) New debts" @8,58 get ndb read debts = odb - ndb @8,68 say debts pcr = debts + dis + grpro netpro = pcr - pdb if netpro > 0 pamt = pcr @10,2 say "To Net profit" @10,30 say netpro else netloss = pdb - pcr pamt = pdb @10,42 say "To Net Loss:" @10,68 say netloss endif @11,2 say repl("-",75) @12,30 say pamt @12,68 say pamt @13,2 say repl("-",75) wait window clear **Balance Sheet** store 0 to ass, land, cashb, cashh, rsrv, cap, aint @2,25 say "Balance sheet for the year Ended" @3,2 say repl("-",75) @4,3 say "Liablities Amount" @4,48 say "Assets Amount" @5,2 say repl("-",75) @6,2 say "Capital" @6,20 get cap @7,2 say "Add. Int" @7,20 get aint read if netpro > 0 @8,2 say "(+)Net pro" @8,20 say netpro cap = cap + aint + netpro else @8,2 say "(-)Net Loss:" @8,20 say netloss cap = cap + aint - netloss endif @8,30 say cap

145. 146. 147. 148. 149. 150. 151. 152. 153. 154. 155. 156. 157. 158. 159. 160. 161. 162.

@9,2 say "Reserve Fund" @9,30 get rsrv read liab = rsrv + cap @6,48 say "Cash in Hand:" @6,68 get cashh @7,48 say "Cash at Bank:" @7,68 get cashb @8,48 say "Land:" @8,68 get land ass = land + cashb + cashh @10,2 say repl("-",75) @11,30 say liab @11,68 say ass @12,2 say repl("-",75) wait window return