home *** CD-ROM | disk | FTP | other *** search
- ******************************************************************************
- * PROGRAM: Orders.mnu
- *
- * WRITTEN BY: Borland Samples Group
- *
- * DATE: 12/93
- *
- * UPDATED: 6/95
- *
- * REVISION: $Revision: 1.58 $
- *
- * VERSION: Visual dBASE
- *
- * DESCRIPTION: This is a menu file used by Orders.wfm for
- * performing simple tasks. It allows adding and deleting
- * records, searching for a value in the order field of the
- * current table viewed, and exiting the form in view.
- *
- * PARAMETERS: FormObj -- the form to which this menu will belong.
- *
- * CALLS: None
- *
- * USAGE: form.menuFile = "Orders.mnu"
- *
- *******************************************************************************
- #include <Messdlg.h>
-
- ** END HEADER -- do not remove this line*
- * Generated on 05/06/94
- *
- Parameter FormObj
- NEW ORDERS(FormObj,"Root")
- CLASS ORDERS(FormObj,Name) OF MENUBAR(FormObj,Name)
- this.Text = ""
- this.OnInit = {;set procedure to &_dbwinhome.samples\Sampproc.prg}
-
- DEFINE MENU FILE OF THIS;
- PROPERTY;
- Text "&File"
-
- DEFINE MENU EXIT OF THIS.FILE;
- PROPERTY;
- OnClick CLASS::EXIT_ONCLICK,;
- Text "E&xit",;
- StatusMessage "Leave Orders form."
-
- DEFINE MENU ORDER OF THIS;
- PROPERTY;
- Text "&Order"
-
- DEFINE MENU VIEWEDIT OF THIS.ORDER;
- PROPERTY;
- OnClick CLASS::VIEWEDITONCLICK,;
- Text "&Edit",;
- Shortcut "Ctrl-E",;
- StatusMessage "Edit data."
-
- DEFINE MENU SEPARATOR1 OF THIS.ORDER;
- PROPERTY;
- Separator .T.,;
- Text ""
-
- DEFINE MENU ADD OF THIS.ORDER;
- PROPERTY;
- OnClick CLASS::ADDONCLICK,;
- Text "&Add",;
- Enabled .T.,;
- Shortcut "Ctrl-A",;
- StatusMessage "Add a new order."
-
- DEFINE MENU DELETE OF THIS.ORDER;
- PROPERTY;
- OnClick CLASS::DELETEONCLICK,;
- Text "&Delete",;
- Enabled .F.,;
- Shortcut "Ctrl-D",;
- StatusMessage "Delete the current order."
-
- DEFINE MENU SEPARATOR2 OF THIS.ORDER;
- PROPERTY;
- Separator .T.,;
- Text ""
-
- DEFINE MENU SEARCH OF THIS.ORDER;
- PROPERTY;
- OnClick CLASS::SEARCHONCLICK,;
- Text "&Search ...",;
- Shortcut "Ctrl-S",;
- StatusMessage "Search for an order."
-
- DEFINE MENU SEPARATOR3 OF THIS.ORDER;
- PROPERTY;
- Separator .T.,;
- Text ""
-
- DEFINE MENU CURRENT_CUSTOMER OF THIS.ORDER;
- PROPERTY;
- OnClick CLASS::CURRENTCUSTOMERONCLICK,;
- Text "Custo&mer ...",;
- Shortcut "Ctrl-M",;
- StatusMessage "View detailed information about the current customer."
-
-
- DEFINE MENU REPORT OF THIS;
- PROPERTY;
- Text "&Report"
-
- DEFINE MENU ORDERSREPORT OF THIS.REPORT;
- PROPERTY;
- OnClick {;create session ;set lock off ;report form orders},;
- Text "&Invoices",;
- Shortcut "Ctrl-I"
-
-
-
-
- ****************************************************************************
- procedure SearchOnClick
-
- * Bring up Search.wfm.
- ****************************************************************************
- private searchForm, searchItem, saveRec, saveFilt
-
- if reccount() = 0 && If table is empty, don't search
- InformationMessage("This table is empty.", "Oops")
- else
- form.CheckChanged(.T.)
- set procedure to &_dbwinhome.samples\Search.wfm additive
- searchForm = new SearchForm()
- searchForm.keyName = "Order Number" && Indicator of key expression
- searchForm.formatting = "9999" && format specific to this key
- searchForm.mdi = .F.
- searchItem = searchForm.Readmodal()
- if type("searchItem") = "O" .and. searchItem.id <> 0
- && If search wasn't cancelled
- saveRec = recno() && save current record in case seek is
- && unsuccessful
- if order() = "ORDER_NO" && When run from Orders.wfm
- seek searchForm.value
- else && When run from Custord.wfm
- locate for order_no = searchForm.value
- endif
- if .not. found()
- InformationMessage(FormatStr("Order %1 \n Was not Found.",;
- searchForm.value),;
- "Info")
- if saveRec <= reccount() && If weren't at eof(), go to saveRec
- go saveRec
- else
- go bottom
- endif
- endif
- endif
-
- searchForm.Release()
- close procedure &_dbwinhome.samples\Search.wfm
- endif
-
-
- ****************************************************************************
- procedure DeleteOnClick
-
- * Delete current record.
- ****************************************************************************
-
- if ConfirmationMessage("Are you sure you want to delete this order?",;
- "Confirm") = YES
- delete && DELETED is ON, so deleted records are still there until
- && a PACK is executed
- commit()
- form.changesMade = .F.
- begintrans()
- if type("form.nextOrderButton") <> "U" && (orders.wfm)
- form.prevOrderButton.OnClick() && Move to prev record
- else
- form.vcrPrevButton.OnClick() && (custord.wfm)
- endif
- endif
-
- ****************************************************************************
- procedure AddOnClick
-
- * Add new record.
- ****************************************************************************
- private addForm, newOrder, saleDateField, orderNoField, custNoField, custNo,;
- inEditMode, integrityInEffect
-
- form.CheckChanged(.T.)
- if ConfirmationMessage("Are you sure you want to add an order?",;
- "Confirmation") = YES
-
-
- orderNoField = field(1) && Customer_n field
- custNoField = field(2) && Order_no field
- saleDateField = field(3) && Sale_date field
-
- if type("form.parentCustomerForm") <> "U"
- custNo = form.customer_n
- else
- custNo = customer->customer_n && Save customer no
- endif
-
-
- * If running from Custord.wfm, use form.curPage.inEditMode,
- * otherwise, if from customer.wfm/orders.wfm, use form.inEditMode
- if type("form.curPage") <> "U"
- inEditMode = form.curPage.inEditMode
- integrityInEffect = .T. && Table integrity rules are used
- else
- inEditMode = form.inEditMode
- integrityInEffect = .F.
- endif
-
- if .not. inEditMode
- form.ViewEdit() && Make sure record is editable
- else if type("form.childBrowse") <> "U" && If calling from Customer/Orders
- form.childBrowse.setFocus()
- endif
- form.changesMade = .T.
- form.previousRecord = recno()
- append blank
- orderNoField = field(1)
- newOrder = str(val(form.maxOrder) + 1,4)
- replace &orderNoField with newOrder && Assign new order number
- if .not. integrityInEffect
- replace &custNoField with custNo && Integrity causes this automatically
- endif
- replace &saleDateField with date() && Default sale date is today
- form.maxOrder = newOrder
- refresh
- select lineitem
- append blank
- refresh
- select orders
- endif
-
-
- ****************************************************************************
- procedure CurrentCustomerOnclick
- ****************************************************************************
-
- form.CheckChanged(.T.)
- if type("form.parentCustomerForm") = "U"
- if type ("form.childCustomerForm") = "U"
- form.StartCustomerForm()
- form.CallShowCustomer(orders->customer_n)
- else
- form.CallShowCustomer(orders->customer_n)
- form.childCustomerForm.open()
- form.childCustomerForm.windowState = 0
- form.childCustomerForm.setFocus()
- endif
- else
- form.parentCustomerForm.setFocus()
- endif
-
-
- ***************************************************************************
- procedure ViewEditOnClick
- ****************************************************************************
-
- form.ViewEdit()
-
- ****************************************************************************
- procedure Exit_OnClick
- ****************************************************************************
-
- if type ("form.parentCustomerForm") <> "U"
- * Release parent form, which releases this child
- form.parentCustomerForm.Release()
- else
- form.Release()
- endif
-
-
- ENDCLASS
-
-
-
-