///////////////////////////////////////////////////////////////////// // BROWSE ///////////////////////////////////////////////////////////////////// This control uses a grid to show data taken from the records of a DBF. Control creation: *** Standard syntax: @ nRow, nCol BROWSE Name ; [ OBJ Obj ; ] [ <OF, PARENT> Parent ; ] [ WIDTH nWidth ; ] [ HEIGHT nHeight ; ] [ HEADERS aHeaders ; ] [ WIDTHS aWidths ; ] [ WORKAREA cWorkarea ; ] [ FIELDS aFields ; ] [ INPUTMASK aPicture ; ] [ VALUE nValue ; ] [ FONT cFontName ; ] [ SIZE nFontSize ; ] [ BOLD ; ] [ ITALIC ; ] [ UNDERLINE ; ] [ STRIKEOUT ; ] [ TOOLTIP cTooltip ; ] [ BACKCOLOR uBackColor ; ] [ DYNAMICBACKCOLOR uDynamicBackColor ; ] [ DYNAMICFORECOLOR uDynamicForeColor ; ] [ FONTCOLOR uFontColor ; ] [ <ONGOTFOCUS, ON GOTFOCUS> bOnGotFocus ; ] [ <ONCHANGE, ON CHANGE> bOnChange ; ] [ <ONLOSTFOCUS, ON LOSTFOCUS> bOnLostFocus ; ] [ <ONDBLCLICK, ON DBLCLICK> bOnDblClick ; ] [ <ACTION, ONCLICK, ON CLICK> bOnClick ; ] [ EDIT ; ] [ INPLACE ; ] [ APPEND ; ] [ <ONHEADCLICK, ON HEADCLICK> aHeadClick ; ] [ <WHEN, COLUMNWHEN> aWhenFields ; ] [ VALID aValid ; ] [ VALIDMESSAGES aValidMessages ; ] [ READONLY aReadonly ; ] [ LOCK ; ] [ DELETE ; ] [ NOLINES ; ] [ IMAGE aImage ; ] [ JUSTIFY aJust ; ] [ NOVSCROLL ; ] [ HELPID nHelpId ; ] [ BREAK ; ] [ RTL ; ] [ <ONAPPEND, ON APPEND> bOnAppend ; ] [ <ONEDITCELL, ON EDITCELL> bOnEditCell ; ] [ <ONBEFOREEDITCELL, ON BEFOREEDITCELL> bOnBeforEditCell ; ] [ COLUMNCONTROLS aEditControls ; ] [ REPLACEFIELD aReplaceFields ; ] [ SUBCLASS Subclass ] [ RECCOUNT ; ] [ COLUMNINFO aColumnInfo ; ] [ NOHEADERS ; ] [ <ONENTER, ON ENTER> bOnEnter ; ] [ DISABLED ; ] [ NOTABSTOP ; ] [ INVISIBLE ; ] [ DESCENDING ; ] [ DELETEWHEN bDelWhen ; ] [ DELETEMSG cDelMsg ; ] [ <ONDELETE, ON DELETE> bOnDelete ; ] [ HEADERIMAGES aHeaderImage ; ] [ IMAGESALIGN aHeaderImageAlign ; ] [ FULLMOVE ; ] [ SELECTEDCOLORS aSelectedColors ; ] [ EDITKEYS aEditKeys ; ] [ <FORCEREFRESH, NOREFRESH> ; ] [ <DOUBLEBUFFER, SINGLEBUFFER> ; ] [ <NOFOCUSRECT, FOCUSRECT> ; ] [ PAINTLEFTMARGIN ; ] [ <SYNCHRONIZED, UNSYNCHRONIZED> ; ] [ FIXEDCOLS ; ] [ NODELETEMSG ; ] [ UPDATEALL ; ] [ <ONABORTEDIT, ON ABORTEDIT> bOnAbortedit ; ] [ FIXEDWIDTHS ; ] [ <FIXEDBLOCKS, DYNAMICBLOCKS> ; ] [ BEFORECOLMOVE bBeforeColMove ; ] [ AFTERCOLMOVE bAfterColMove ; ] [ BEFORECOLSIZE bBeforeColSize ; ] [ AFTERCOLSIZE bAfterColSize ; ] [ BEFOREAUTOFIT bBeforeAutofit ; ] [ EDITLIKEEXCEL ; ] [ USEBUTTONS ; ] [ UPDATECOLORS ; ] [ <FIXEDCONTROLS, DYNAMICCONTROLS> ; ] [ <ONHEADRCLICK, ON HEADRCLICK> bHeadRClick ; ] [ EXTDBLCLICK ] [ NOMODALEDIT ; ] [ SILENT ; ] [ <ENABLEALTA, DISABLEALTA> ; ] [ NOSHOWALWAYS ; ] [ <NONEUNSELS, IGNORENONE> ; ] [ cbe: CHANGEBEFOREEDIT ; ] [ <ONRCLICK, ON RCLICK> bOnRClick ; ] [ CHECKBOXES ; ] [ <ONCHECKCHANGE, ON CHECKCHANGE> bOnCheck ; ] [ <ONROWREFRESH, ON ROWREFRESH> bOnRowRefresh ; ] [ DEFAULTVALUES aDefaultValues ; ] [ <ONEDITCELLEND, ON EDITCELLEND> bOnEditEnd ; ] [ EDITFIRSTVISIBLE ; ] [ NAVIGATEBYCELL ; ] *** Alternative syntax: DEFINE BROWSE Name [ PARENT Parent ] [ OBJECT Obj ] [ ROW nRow ] [ COL nCol ] [ WIDTH nWidth ] [ HEIGHT nHeight ] [ HEADERS aHeaders ] [ WIDTHS aWidths ] [ FIELDS aFields ] [ VALUE nValue ] [ FONTNAME cFontName ] [ FONTSIZE nFontSize ] [ TOOLTIP cTooltip ] [ <ONCHANGE, ON CHANGE> bOnChange ] [ <ONDBLCLICK, ON DBLCLICK> bOnDblClick ] [ <ONHEADCLICK, ON HEADCLICK> aHeadClick ] [ <ONGOTFOCUS, ON GOTFOCUS> bOnGotFocus ] [ <ONLOSTFOCUS, ON LOSTFOCUS> bOnLostFocus ] [ WORKAREA cWorkarea ] [ ALLOWDELETE <.T., .F.> ] [ NOLINES <.T., .F.> ] [ IMAGE aimage ] [ JUSTIFY ajust ] [ HELPID helpid ] [ FONTBOLD <.T., .F.> ] [ FONTITALIC <.T., .F.> ] [ FONTUNDERLINE <.T., .F.> ] [ FONTSTRIKEOUT <.T., .F.> ] [ SETBREAK <.T., .F.> ] [ BACKCOLOR backcolor ] [ FONTCOLOR fontcolor ] [ LOCK <.T., .F.> ] [ INPLACEEDIT <.T., .F.> ] [ <VSCROLLBAR, NOVSCROLLBAR> <.T., .F.> ] [ ALLOWAPPEND <.T., .F.> ] [ READONLY aReadonly ] [ VALID aValid ] [ VALIDMESSAGES aValidMessages ] [ ALLOWEDIT <.T., .F.> ] [ DYNAMICBACKCOLOR uDynamicBackColor ] [ <WHEN, COLUMNWHEN> aWhenFields ] [ DYNAMICFORECOLOR uDynamicForeColor ] [ INPUTMASK aPicture ] [ RTL <.T., .F.> ] [ <ONAPPEND, ON APPEND> bOnAppend ] [ <ONEDITCELL, ON EDITCELL> bOnEditCell ] [ <ONBEFOREEDITCELL, ON BEFOREEDITCELL> bOnBeforEditCell ] [ COLUMNCONTROLS aEditControls ] [ REPLACEFIELD aReplaceFields ] [ RECCOUNT <.T., .F.> ] [ COLUMNINFO aColumnInfo ] [ SHOWHEADERS <.T., .F.> ] [ <ONENTER, ON ENTER> bOnEnter ] [ <ENABLE, DISABLED> <.T., .F.> ] [ TABSTOP <.T., .F.> ] [ <VISIBLE, INVISIBLE> <.T., .F.> ] [ DESCENDING <.T., .F.> ] [ DELETEWHEN bDelWhen ] [ DELETEMSG cDelMsg ] [ <ONDELETE, ON DELETE> bOnDelete ] [ HEADERIMAGES aHeaderImage ] [ IMAGESALIGN aHeaderImageAlign ] [ FULLMOVE <.T., .F.> ] [ SELECTEDCOLORS aSelectedColors ] [ EDITKEYS aEditKeys ] [ <FORCEREFRESH, NOREFRESH> <.T., .F.> ] [ <DOUBLEBUFFER, SINGLEBUFFER> <.T., .F.> ] [ <FOCUSRECT, NOFOCUSRECT> <.T., .F.> ] [ PAINTLEFTMARGIN <.T., .F.> ] [ <SYNCHRONIZED, UNSYNCHRONIZED> <.T., .F.> ] [ FIXEDCOLS <.T., .F.> ] [ NODELETEMSG <.T., .F.> ] [ UPDATEALL <.T., .F.> ] [ <ONABORTEDIT, ON ABORTEDIT> bOnAbortedit ] [ <ACTION, ONCLICK, ON CLICK> bOnClick ] [ FIXEDWIDTHS <.T., .F.> ] [ <DYNAMICBLOCKS, FIXEDBLOCKS> <.T., .F.> ] [ BEFORECOLMOVE bBeforeColMove ] [ AFTERCOLMOVE bAfterColMove ] [ BEFORECOLSIZE bBeforeColSize ] [ AFTERCOLSIZE bAfterColSize ] [ BEFOREAUTOFIT bBeforeAutofit ] [ EDITLIKEEXCEL <.T., .F.> ] [ USEBUTTONS <.T., .F.> ] [ UPDATECOLORS <.T., .F.> ] [ <FIXEDCONTROLS, DYNAMICCONTROLS> <.T., .F.> ] [ <ONHEADRCLICK, ON HEADRCLICK> bHeadRClick ] [ EXTDBLCLICK <.T., .F.> ] [ NOMODALEDIT <.T., .F.> ] [ SILENT <.T., .F.> ] [ <ENABLEALTA, DISABLEALTA> <.T., .F.> ] [ NOSHOWALWAYS <.T., .F.> ] [ <NONEUNSELS, IGNORENONE> <.T., .F.> ] [ CHANGEBEFOREEDIT <.T., .F.> ] [ <ONRCLICK, ON RCLICK> bOnRClick ] [ CHECKBOXES <.T., .F.> ] [ <ONCHECKCHANGE, ON CHECKCHANGE> bOnCheck ] [ <ONROWREFRESH, ON ROWREFRESH> bOnRowRefresh ] [ DEFAULTVALUES aDefaultValues ] [ <ONEDITCELLEND, ON EDITCELLEND> bOnEditEnd ] [ EDITFIRSTVISIBLE <.T., .F.> ] [ NAVIGATEBYCELL <.T., .F.> ] [ SUBCLASS Subclass ] END BROWSE *** OOP Syntax: [ Obj := ] TOBrowse():Define( ControlName, [ ParentForm ], [ nCol ], [ nRow ], [ nWidth ], [ nHeight ], [ aHeaders ], ; [ aWidths ], [ aFields ], [ nValue ], [ cFontName ], [ nFontSize ], [ cTooltip ], ; [ bOnChange ], [ bOnDblClick ], [ aHeadClick ], [ bOnGotFocus ], ; [ bOnLostFocus ], [ cWorkArea ], [ lAllowDelete ], [ lNoLines ], [ aImage ], ; [ aJust ], [ nHelpId ], [ lBold ], [ lItalic ], [ lUnderline ], ; [ lStrikeout ], [ lBreak ], [ uBackColor ], [ uFontColor ], [ lLock ], ; [ lInPlace ], [ lNoVScroll ], [ lAllowAppend ], [ aReadonly ], ; [ aValid ], [ aValidMessages ], [ lAllowEdit ], [ uDynamicBackColor ], ; [ aWhenFields ], [ uDynamicForecolor ], [ aPicture ], [ lRtl ], ; [ bOnAppend ], [ bOnEditCell ], [ aEditControls ], [ aReplaceFields ], ; [ lRecCount ], [ aColumnInfo ], [ lHasHeaders ], [ bOnEnter ], ; [ lDisabled ], [ lNoTabStop ], [ lInvisible ], [ lDescending ], ; [ bDelWhen ], [ cDelMsg ], [ bOnDelete ], [ aHeaderImage ], ; [ aHeaderImageAlign ], [ lFullMove ], [ aSelectedColors ], [ aEditKeys ], ; [ uRefresh ], [ lDblBffr ], [ lFocusRect ], [ lPLM ], [ lSync ], [ lFixedCols ], ; [ lNoDelMsg ], [ lUpdateAll ], [ bOnAbortedit ], [ bOnClick ], [ lFixedWidths ], ; [ lFixedBlocks ], [ bBeforeColMove ], [ bAfterColMove ], [ bBeforeColSize ], ; [ bAfterColSize ], [ bBeforeAutofit ], [ lLikeExcel ], [ lButtons ], [ lUpdCols ], ; [ lFixedCtrls ], [ bHeadRClick ], [ lExtDbl ], [ lNoModal ], [ lSilent ], [ lAltA ], ; [ lNoShowAlways ], [ lNone ], [ lCBE ], [ bOnRClick ], [ lCheckBoxes ], [ bOnCheck ], ; [ bOnRowRefresh ], [ aDefaultValues ], [ bOnEditEnd ], [ lAtFirst ], [ bOnBeforEditCell ] ) To define a BROWSE with NAVIGATEBYCELL clause replace TOBrowse() with TOBrowseByCell(). Related commands and functions : *** Standard syntax: SET BROWSEFIXEDBLOCKS OFF SET BROWSEFIXEDBLOCKS ON SET BROWSEFIXEDCONTROLS OFF SET BROWSEFIXEDCONTROLS ON SET BROWSESYNC OFF SET BROWSESYNC ON *** Alternative syntax: SetBrowseFixedBlocks( .F. ) SetBrowseFixedBlocks( .T. ) SetBrowseFixedControls( .F. ) SetBrowseFixedControls( .T. ) SetBrowseSync( .F. ) SetBrowseSync( .T. ) Auxiliary variables: During the execution of the VALID codeblocks, an auxiliary memvar containing the value entered by the user is available for validation purposes. This memvar name has the following syntaxes: a) MemVar.AreaName.FieldName b) MemVarAreaNameFieldName For example, if a a column shows field TEST->NUMBER, inside the VALID codeblock you can use the memvar "Memvar.Test.Number" or "MemvarTestNumber" to access and validate the valued entered by de user. Column justification constants: BROWSE_JTFY_LEFT BROWSE_JTFY_RIGHT BROWSE_JTFY_CENTER Refresh constants: REFRESH_FORCE REFRESH_NO REFRESH_DEFAULT Notes on clauses: 1. PROGID identifies an ActiveX control. See Active Template Library. 2. OBJ and OBJECT set a reference to the control into the variable Obj. When using OBJECT, the variable must be previously declared. When using OBJ, if the variable does not exist, it's assumed PRIVATE. 3. PARENT declares which window is the parent (owner) of the control. Can be ommited only when used inside a DEFINE WINDOW / END WINDOW structure. 4. ROW and COL define the position of the control inside the parent's client area. 5. WIDTH and HEIGHT define the dimension of the control. 6. TABSTOP and NOTABSTOP specify if the control can/can't be focused using TAB key. Default is TABSTOP. 7. DISABLED specifies that the control can't receive mouse clicks and key presses. Default is ENABLED. 8. SUBCLASS indicates that the control must be an instance of the specified class, instead of the default TActiveX class. 9. VISIBLE and INVISIBLE specify if the control must be visible/hidden when created. Default is VISIBLE. Notes on parameters: 1. nRow, nCol, nWidth and nHeight must be numbers. 2. Name and Parent must be valid identifiers enclosed or not within quotes. 3. cProgID must be a string containig a GUID, a ProgID or an URL. 4. Obj and Subclass must be valid identifiers not enclosed within quotes. 5. cName and cParent must be strings containing valid identifiers. 6. lNoTabstop, lDisabled and lInvisible must be .T. or .F.