home *** CD-ROM | disk | FTP | other *** search
/ DOS Wares / doswares.zip / doswares / DATABASE / DBASE5 / CUA_SAMP.ZIP / ACCT_REC.PRG < prev    next >
Encoding:
Text File  |  1994-06-24  |  10.7 KB  |  439 lines

  1. PROCEDURE Acct_Rec
  2.     PRIVATE mFormOpen, lVoid, mDesk, mFormName, mActive, mClass
  3.  
  4.     IF TYPE("Acct.ClassName") # "C"    && Do only if form doesn't already exist
  5.         mFormOpen=.F.
  6.         DEFINE FORM mTemp PROPERTY VISIBLE .F.
  7.         lVoid = mTemp.OPEN()
  8.         mDesk = mTemp.PARENT
  9.         lVoid = mTemp.CLOSE()
  10.  
  11.         mFormName=SPACE(8)
  12.         mActive=mDesk.ActiveControl()
  13.         IF TYPE("mActive.ClassName")="C"
  14.             mClass=mActive.ClassName
  15.             IF mClass="FORM"
  16.                 mFormName=mActive.Name
  17.                 mFormOpen=.T.
  18.             ENDIF
  19.         ENDIF
  20.  
  21.         #include "Acct_Rec.dfm"
  22.         PUBLIC NewRecord
  23.  
  24.         NewRecord = .F.       && Initialize Global to form
  25.  
  26.         Acct.Action = .F.
  27.         lVoid = Acct.Open()
  28.     ELSE
  29.         lVoid = Acct.SetFocus()     && Form exists, make active
  30.     ENDIF
  31. RETURN
  32.  
  33. PROCEDURE OpenAcct
  34.     PRIVATE lAOpen, lCOpen
  35.  
  36.     lAOpen = .T.            && Assume ACCT_REC is open
  37.     lCOpen = .T.            && Assume CUST is open
  38.  
  39.     IF SUBSTR(DBF(),3)<>"ACCT_REC.DBF"
  40.         SELECT SELECT()
  41.         USE Acct_rec ORDER Invoice_No
  42.         lAOpen = .F.        && ACCT_REC was NOT open on startup
  43.     ENDIF
  44.     IF SUBSTR(DBF(),3)<>"CUST.DBF"
  45.         SELECT SELECT()
  46.         USE Cust ORDER Cust_ID ALIAS AcctCust
  47.         lCOpen = .F.        && CUST was NOT open on startup
  48.     ENDIF
  49.  
  50.     This.lAOpen = lAOpen    && save state of lAOpen in form
  51.     This.lCOpen = lCOpen    && save state of lCOpen in form
  52.  
  53.     SEEK(Acct_Rec->Cust_Id)
  54.     Acct.CustName.Text = AcctCust->Customer
  55.  
  56.     SELE Acct_rec
  57.  
  58.     lVoid = This.Refresh()
  59.  
  60.     IF .NOT. mFormOpen
  61.         Main.F1.CloseAll.Enabled=.F.
  62.         Main.S.Srch.Enabled=.T.
  63.         Main.S.Tp.Enabled=.T.
  64.         Main.S.Btm.Enabled=.T.
  65.         Main.S.Pck.Enabled=.F.
  66.         Main.S.Indx.Enabled=.F.
  67.         Main.E.Undo.Enabled=.T.
  68.         Main.E.Save.Enabled=.T.
  69.         Main.V.Frm.Enabled=.F.
  70.         Main.App.Cust.Enabled=.F.
  71.         Main.F1.Bac.Enabled=.F.
  72.         Main.App.Are.Enabled=.F.
  73.         Main.App.Inv.Enabled=.F.
  74.     ENDIF
  75.     Main.App.Acc.Enabled=.F.
  76.  
  77. RETURN
  78.  
  79. ******************
  80. PROCEDURE PrevHand
  81.        IF Form.Modified()
  82.         lVoid = Form.Submit()
  83.        ENDIF
  84.     IF .NOT. BOF()
  85.         SKIP -1
  86.         IF BOF()
  87.           DO ErrorMsg WITH "Top of file!"
  88.         ENDIF
  89.         * Look Up Cust Name
  90.         SELE AcctCust
  91.         SEEK(Acct_rec->Cust_ID)
  92.         Acct.CustName.Text = AcctCust->Customer
  93.         SELE Acct_Rec
  94.  
  95.         * Show user if the record is marked for deletion
  96.         IF DELETED()
  97.            Form.cStatus.Text = "DELETED"
  98.         ELSE
  99.            Form.cStatus.Text = ""
  100.         Endif
  101.  
  102.         lVoid = Form.Refresh()
  103.     ELSE
  104.         DO ErrorMsg WITH "Top of file!"
  105.     ENDIF
  106.     Form.Action = .F.
  107. RETURN
  108. *******************
  109. PROCEDURE SkipHand
  110.     IF Form.Modified()
  111.         lVoid = Form.Submit()
  112.     ENDIF
  113.     IF .NOT. EOF()
  114.         SKIP
  115.         IF CUST_ID=' '
  116.          SKIP -1
  117.          DO ERRORMSG WITH "End of file encountered!"
  118.         ENDIF
  119.         * Look Up Customer Name
  120.         SELE AcctCust
  121.         SEEK(Acct_Rec->Cust_ID)
  122.         Acct.CustName.Text = AcctCust->Customer
  123.  
  124.         SELE Acct_rec
  125.  
  126.         * Show user if the record is marked for deletion
  127.         IF DELETED()
  128.            Form.cStatus.Text = "DELETED"
  129.         ELSE
  130.            Form.cStatus.Text = ""
  131.         Endif
  132.  
  133.         lVoid = Form.refresh()
  134.     ELSE
  135.         DO ErrorMsg WITH "End of file encountered!"
  136.     ENDIF
  137.     Form.Action = .F.
  138. RETURN
  139. ******************
  140. PROCEDURE CloseAcct
  141.     IF This.Action
  142.         lVoid = This.Submit()
  143.     ELSE
  144.         IF This.Modified()
  145.             DO ErrorMsg WITH "Exit Account Rec without saving ..."
  146.         ENDIF
  147.     ENDIF
  148.  
  149.     * Close Tables
  150.  
  151.     IF .NOT. This.lAOpen    && if file was not open when form was created
  152.         USE IN acct_rec     && shut it down
  153.     ENDIF
  154.     IF .NOT. This.lCOpen    && if file was not open when form was created
  155.         USE IN AcctCust     && shut it down
  156.     ENDIF
  157.  
  158.     USE Acct_Rec EXCLUS
  159.     DELE FOR Invoice_No=' '
  160.     COUNT FOR DELETED() TO EmpRec
  161.     IF EmpRec<>0
  162.       PACK
  163.     ENDIF
  164.     USE
  165.  
  166.     LVoid = This.Release()
  167.     mFormOpen=.F.
  168.     DEFINE FORM mTemp PROPERTY VISIBLE .F.
  169.     lVoid = mTemp.OPEN()
  170.     mDesk = mTemp.PARENT
  171.     lVoid = mTemp.CLOSE()
  172.  
  173.     mFormName=SPACE(8)
  174.     mActive=mDesk.ActiveControl()
  175.     IF TYPE("mActive.ClassName")="C"
  176.         mClass=mActive.ClassName
  177.         IF mClass="FORM"
  178.             mFormName=mActive.Name
  179.             mFormOpen=.T.
  180.         ENDIF
  181.     ENDIF
  182.  
  183.     IF .NOT. mFormOpen
  184.         Main.F1.CloseAll.Enabled=.T.
  185.         Main.S.Srch.Enabled=.F.
  186.         Main.S.Tp.Enabled=.F.
  187.         Main.S.Btm.Enabled=.F.
  188.         Main.S.Pck.Enabled=.T.
  189.         Main.S.Indx.Enabled=.T.
  190.         Main.E.Undo.Enabled=.F.
  191.         Main.E.Save.Enabled=.F.
  192.         Main.V.Frm.Enabled=.T.
  193.         Main.App.Cust.Enabled=.T.
  194.         Main.F1.Bac.Enabled=.T.
  195.         Main.App.Are.Enabled=.F.
  196.         Main.App.Inv.Enabled=.T.
  197.     ENDIF
  198.    Main.App.Acc.Enabled=.T.
  199.    Main.App.Are.Enabled = .T.   && Re-enable Area Codes
  200.  
  201. ******************
  202. FUNCTION DupCheck
  203.  
  204.     * Check for Duplicates
  205.  
  206.     If NewRecord
  207.         ? "Checking for Duplicates ..."
  208.         SEEK(This.Value)       && index is on Invoice_ID
  209.         IF FOUND()
  210.             DO ErrorMsg WITH "Duplicate Found, Enter Another ..."+This.Value
  211.             RETURN .F.
  212.         ELSE
  213.             Newrecord = .f.
  214.         ENDIF
  215.     Endif
  216. RETURN .T.
  217.  
  218. ******************
  219. FUNCTION FindPart
  220.     * Generate a form that will can be used by other procedures
  221.     DO GenForm
  222.  
  223.     * Make the user select Ok before moving on, Give focus
  224.     lVoid = Search.sValue.Setfocus()
  225.     lVoid = Search.ReadModal()
  226. RETURN .T.
  227. **********************
  228. PROCEDURE GenForm
  229.     * Define a search form
  230.     DEFINE FORM Search FROM 5,10 TO 11,45 ;
  231.         PROPERTY ;
  232.             Text "Search"
  233.  
  234.     DEFINE TEXT sVal OF Search AT 1,5 ;
  235.         PROPERTY ;
  236.             Text "Inv No :"
  237.     DEFINE ENTRYFIELD Svalue OF Search AT 1,14 ;
  238.         PROPERTY ;
  239.             Width 10
  240.  
  241.     DEFINE PUSHBUTTON sOk OF Search AT 3,12 ;
  242.         PROPERTY ;
  243.             Text "OK",;
  244.                 Default .T. ,;
  245.             Width 10  ,;
  246.             OnClick "CloseMe"
  247. RETURN
  248. ***********************
  249. PROCEDURE CloseMe
  250.     CLEAR
  251.     * Get value user entered before closing form
  252.     SearchFor = Search.Svalue.value
  253.     SearchWidth = Search.Width  && See if size is Less than 50
  254.  
  255.     lVoid = Search.Close()
  256.     * remove from memory
  257.     lVoid = Search.Release()
  258.  
  259.     * Note : If you place this code in the FindLast routine you will
  260.     * have a timing problem where the variable SearchFor has not been
  261.     * Defined before there is a call referencing it.
  262.  
  263.     IF LEN(SearchFor) > 0
  264.         SEEK(TRIM(SearchFor))
  265.         IF FOUND()
  266.             * Look Up Customer Name
  267.             SELE AcctCust
  268.             SEEK(Acct_rec->Cust_Id)
  269.             Acct.CustName.Text = AcctCust->Customer
  270.  
  271.             * Switch back to the Acct_rec
  272.             SELE Acct_rec
  273.             lVoid = acct.Refresh()
  274.         ELSE
  275.             DO Errormsg WITH "Invoice ID Not Found ..."+trim(SearchFor)
  276.         ENDIF
  277.     ENDIF
  278.  
  279.  
  280. RETURN
  281. ******************
  282. PROCEDURE Add_new
  283.     NewRecord = .T.
  284.  
  285.     *Write data to disk
  286.     lvoid = Form.submit()
  287.  
  288.     * Append a record
  289.     APPEND BLANK
  290.  
  291.     * Set the Billing date to today
  292.  
  293.     Acct.DateOfBill.Value = DATE()
  294.  
  295.     *Refresh Screen Data
  296.     lvoid = Form.refresh()
  297. RETURN
  298. *****************
  299. PROCEDURE DelIt && Marks record for deletion
  300.     IF DELETED()
  301.       Form.cStatus.Text = ""
  302.       RECALL
  303.     ELSE
  304.       Form.cStatus.Text = "DELETED"
  305.       DELETE
  306.     ENDIF
  307.  
  308. RETURN
  309. ******************
  310. FUNCTION LookupId
  311.     *
  312.     * Validates user input, by bringing up a browse if we can't find
  313.     *
  314.     PRIVATE This, Form
  315.     lReturn = .F.
  316.     SELECT (This.ALIASNAME)  && Custom Property
  317.     IF SEEK( This.Value )    && Value of the current object
  318.     lReturn = .T.
  319.     ELSE
  320.     DEFINE BROWSE LookUp
  321.     Lookup.Top           =  This.Top + 2
  322.     Lookup.Left          =  This.Left
  323.     Lookup.Key           =  "KeyHand"       && Key handlers for user
  324.     Lookup.OnMouseDblClk =  "KeyHand"       && selection in browse
  325.     Lookup.Sizeable      =  .T.
  326.     Lookup.Moveable      =  .T.
  327.     Lookup.MDI           =  .F.
  328.     Lookup.Width         =  77 - This.Left
  329.     Lookup.Alias         =  This.ALIASNAME
  330.     Lookup.StatusMessage =  [Select the desired value and ] + ;
  331.                 [press Enter to choose it] ;
  332.  
  333.     Lookup.Action        = .F.
  334.  
  335.     lVoid = LookUp.ReadModal()
  336.     IF LookUp.Action
  337.         * Stuff value Field from browse into form, selected by user
  338.         This.Value = acctCust->Cust_ID
  339.         lReturn = .T.
  340.     ELSE
  341.         DO ErrorMsg WITH [Lookup failed: ] + LTRIM( STR( This.Value ) )
  342.     ENDIF
  343.  
  344.     ENDIF
  345.  
  346.     * Bring back main dbf file
  347.     SELECT acct_rec
  348.  
  349. RETURN lReturn
  350. *****************
  351. FUNCTION KeyHand
  352.     IF Event.EventType = 16
  353.     IF Event.KeyValue = 13
  354.         Lookup.Action = .T.
  355.         lVoid = Lookup.Close()
  356.     ENDIF
  357.     ELSE
  358.     IF Event.EventType = 1
  359.         Lookup.Action = .T.
  360.         lVoid = Lookup.Close()
  361.     ENDIF
  362.     ENDIF
  363.  
  364. RETURN .T.
  365.  
  366. *****************
  367. PROCEDURE CanHand
  368.     Form.Action = .F.
  369.     lVoid = Form.Close()
  370. RETURN
  371. *****************
  372. PROCEDURE RePaint
  373.     SELE acct_Rec
  374.     lVoid = acct.Refresh()
  375. RETURN
  376. ******************
  377. PROCEDURE PrintForm
  378.  
  379. DEFINE FORM Prt FROM 5,25 TO 16,50 ;
  380.     PROPERTY ;
  381.         TEXT "Print Form"
  382.  
  383. DEFINE TEXT t1 OF Prt AT 1,1 ;
  384.     PROPERTY ;
  385.         Text "Type :",;
  386.         COLORNORMAL "R/W"
  387.  
  388. DEFINE RADIOBUTTON Rep OF Prt AT 2,1 ;
  389.     PROPERTY ;
  390.         Text "Report",;
  391.         Group .T.,;
  392.         COLORNORMAL "N/W",;
  393.         WIDTH 15
  394.  
  395. DEFINE RADIOBUTTON Lab OF Prt AT 3,1 ;
  396.     PROPERTY ;
  397.         Text "Labels",;
  398.         Group .F.,;
  399.         COLORNORMAL "N+/W",;
  400.         WIDTH 15,;
  401.         ENABLED .F.,;
  402.         TABSTOP .F.
  403.  
  404. DEFINE TEXT T3 OF Prt AT 9,5 ;
  405.     PROPERTY ;
  406.         TEXT "PRINTING ..." ,;
  407.         VISIBLE .F.,;
  408.         WIDTH 15
  409.  
  410. DEFINE PUSHBUTTON P1 OF Prt AT 8,12 ;
  411.     PROPERTY ;
  412.         TEXT "&Ok",;
  413.         ONCLICK "RunRep",;
  414.         Width 10
  415.  
  416. DEFINE PUSHBUTTON P2 OF Prt AT 8,2 ;
  417.     PROPERTY ;
  418.         TEXT "&Cancel",;
  419.         ONCLICK "CanHand",;
  420.         Width 10
  421.  
  422. lVoid = Prt.Open()
  423.  
  424. ******************
  425. PROCEDURE Runrep
  426.  
  427.     * Check for Labels or Reports
  428.     DO CASE
  429.         CASE Form.Rep.Value
  430.              * display to user something is happening
  431.              Form.T3.Visible = .t.
  432.              REPORT FORM acct_Rec TO PRINTER
  433.  
  434.     ENDCASE
  435.     lVoid = Form.Close()
  436.     lVoid = Form.Release()
  437. RETURN
  438.  
  439.