/////////////////////////////////////////////////////////////////////
// XBROWSE
/////////////////////////////////////////////////////////////////////
#command @ <row>, <col> XBROWSE <name> ;
[ <dummy01: OF, PARENT> <parent> ] ;
[ OBJ <obj> ] ;
[ WIDTH <w> ] ;
[ HEIGHT <h> ] ;
[ HEADERS <headers> ] ;
[ WIDTHS <widths> ] ;
[ WORKAREA <workarea> ] ;
[ FIELDS <Fields> ] ;
[ INPUTMASK <Picture> ] ;
[ VALUE <value> ] ;
[ FONT <fontname> ] ;
[ SIZE <fontsize> ] ;
[ <bold: BOLD> ] ;
[ <italic: ITALIC> ] ;
[ <underline: UNDERLINE> ] ;
[ <strikeout: STRIKEOUT> ] ;
[ TOOLTIP <tooltip> ] ;
[ BACKCOLOR <backcolor> ] ;
[ DYNAMICBACKCOLOR <dynamicbackcolor> ] ;
[ DYNAMICFORECOLOR <dynamicforecolor> ] ;
[ FONTCOLOR <fontcolor> ] ;
[ <dummy02: ONGOTFOCUS, ON GOTFOCUS> <gotfocus> ] ;
[ <dummy03: ONCHANGE, ON CHANGE> <change> ] ;
[ <dummy04: ONLOSTFOCUS, ON LOSTFOCUS> <lostfocus> ] ;
[ <dummy05: ONDBLCLICK, ON DBLCLICK> <dblclick> ] ;
[ <dummy06: ACTION, ONCLICK, ON CLICK> <click> ] ;
[ <edit: EDIT> ] ;
[ <inplace: INPLACE> ] ;
[ <append: APPEND> ] ;
[ <dummy07: ONHEADCLICK, ON HEADCLICK> <aHeadClick> ] ;
[ <dummy08: WHEN, COLUMNWHEN> <aWhenFields> ] ;
[ <dummy20: VALID, COLUMNVALID> <aValidFields> ] ;
[ VALIDMESSAGES <aValidMessages> ] ;
[ READONLY <aReadOnly> ] ;
[ <lock: LOCK> ] ;
[ <delete: DELETE> ] ;
[ <style: NOLINES> ] ;
[ IMAGE <aImage> ] ;
[ JUSTIFY <aJust> ] ;
[ <novscroll: NOVSCROLL> ] ;
[ HELPID <helpid> ] ;
[ <break: BREAK> ] ;
[ <rtl: RTL> ] ;
[ <dummy09: ONAPPEND, ON APPEND> <onappend> ] ;
[ <dummy10: ONEDITCELL, ON EDITCELL> <editcell> ] ;
[ COLUMNCONTROLS <editcontrols> ] ;
[ REPLACEFIELD <replacefields> ] ;
[ SUBCLASS <subclass> ] ;
[ <reccount: RECCOUNT> ] ;
[ COLUMNINFO <columninfo> ] ;
[ <noshowheaders: NOHEADERS> ] ;
[ <dummy11: ONENTER, ON ENTER> <enter> ] ;
[ <disabled: DISABLED> ] ;
[ <notabstop: NOTABSTOP> ] ;
[ <invisible: INVISIBLE> ] ;
[ <descending: DESCENDING> ] ;
[ DELETEWHEN <bWhenDel> ] ;
[ DELETEMSG <DelMsg> ] ;
[ <dummy12: ONDELETE, ON DELETE> <onDelete> ] ;
[ HEADERIMAGES <aHeaderImages> ] ;
[ IMAGESALIGN <aImgAlign> ] ;
[ <fullmove: FULLMOVE> ] ;
[ SELECTEDCOLORS <aSelectedColors> ] ;
[ EDITKEYS <aEditKeys> ] ;
[ <bffr: DOUBLEBUFFER, SINGLEBUFFER> ] ;
[ <focus: NOFOCUSRECT, FOCUSRECT> ] ;
[ <plm: PAINTLEFTMARGIN> ] ;
[ <fixedcols: FIXEDCOLS> ] ;
[ <dummy13: ONABORTEDIT, ON ABORTEDIT> <abortedit> ] ;
[ <fixedwidths: FIXEDWIDTHS> ] ;
[ <blocks: FIXEDBLOCKS, DYNAMICBLOCKS> ] ;
[ BEFORECOLMOVE <bBefMov> ] ;
[ AFTERCOLMOVE <bAftMov> ] ;
[ BEFORECOLSIZE <bBefSiz> ] ;
[ AFTERCOLSIZE <bAftSiz> ] ;
[ BEFOREAUTOFIT <bBefAut> ] ;
[ <excel: EDITLIKEEXCEL> ] ;
[ <buts: USEBUTTONS> ] ;
[ <nodelmsg: NODELETEMSG> ] ;
[ <edtctrls: FIXEDCONTROLS, DYNAMICCONTROLS> ] ;
[ <noshowempty: NOSHOWEMPTYROW> ] ;
[ <upcol: UPDATECOLORS> ] ;
[ <dummy14: ONHEADRCLICK, ON HEADRCLICK> <bheadrclick> ] ;
[ <nomodal: NOMODALEDIT> ] ;
[ <bycell: NAVIGATEBYCELL> ] ;
[ <extdbl: EXTDBLCLICK> ] ;
[ <silent: SILENT> ] ;
[ <alta: ENABLEALTA, DISABLEALTA> ] ;
[ <noshow: NOSHOWALWAYS> ] ;
[ <dummy15: ONRCLICK, ON RCLICK> <rclick> ] ;
[ <checkboxes: CHECKBOXES> ] ;
[ <dummy16: ONCHECKCHANGE, ON CHECKCHANGE> <checkchange> ] ;
[ <dummy17: ONROWREFRESH, ON ROWREFRESH> <rowrefresh> ] ;
[ DEFAULTVALUES <aDefVal> ] ;
[ <dummy19: ONEDITCELLEND, ON EDITCELLEND> <editend> ] ;
[ <efv: EDITFIRSTVISIBLE> ] ;
[ <dummy20: ONBEFOREEDITCELL, ON BEFOREEDITCELL> <beforedit> ] ;
=> ;
[ <obj> := ] _OOHG_SelectSubClass( IIF( <.bycell.>, TXBrowseByCell(), ;
TXBrowse() ), [ <subclass>() ] ):Define( <(name)>, <(parent)>, ;
<col>, <row>, <w>, <h>, <headers>, <widths>, <Fields>, ;
<(workarea)>, <value>, <.delete.>, <.lock.>, <.novscroll.>, ;
<.append.>, <{onappend}>, <replacefields>, <fontname>, <fontsize>, ;
<tooltip>, <{change}>, <{dblclick}>, <aHeadClick>, <{gotfocus}>, ;
<{lostfocus}>, <.style.>, <aImage>, <aJust>, <.break.>, <helpid>, ;
<.bold.>, <.italic.>, <.underline.>, <.strikeout.>, <.edit.>, ;
<backcolor>, <fontcolor>, <dynamicbackcolor>, <dynamicforecolor>, ;
<Picture>, <.rtl.>, <.inplace.>, <editcontrols>, <aReadOnly>, ;
<aValidFields>, <aValidMessages>, <{editcell}>, <aWhenFields>, ;
<.reccount.>, <columninfo>, ! <.noshowheaders.>, <{enter}>, ;
<.disabled.>, <.notabstop.>, <.invisible.>, <.descending.>, ;
<{bWhenDel}>, <DelMsg>, <{onDelete}>, <aHeaderImages>, ;
<aImgAlign>, <.fullmove.>, <aSelectedColors>, <aEditKeys>, ;
IIF( upper( #<bffr> ) == "DOUBLEBUFFER", .T., ;
IIF( upper( #<bffr> ) == "SINGLEBUFFER", .F., .T. ) ), ;
IIF( upper( #<focus> ) == "NOFOCUSRECT", .F., ;
IIF( upper( #<focus> ) == "FOCUSRECT", .T., NIL ) ), ;
<.plm.>, <.fixedcols.>, <{abortedit}>, <{click}>, <.fixedwidths.>, ;
IIF( upper( #<blocks> ) == "FIXEDBLOCKS", .T., ;
IIF( upper( #<blocks> ) == "DYNAMICBLOCKS", .F., NIL ) ), ;
<{bBefMov}>, <{bAftMov}>, <{bBefSiz}>, <{bAftSiz}>, <{bBefAut}>, ;
<.excel.>, <.buts.>, <.nodelmsg.>, ;
IIF( upper( #<edtctrls> ) == "FIXEDCONTROLS", .T., ;
IIF( upper( #<edtctrls> ) == "DYNAMICCONTROLS", .F., NIL ) ), ;
<.noshowempty.>, <.upcol.>, <{bheadrclick}>, <.nomodal.>, ;
<.extdbl.>, <.silent.>, ! Upper( #<alta> ) == "DISABLEALTA", ;
<.noshow.>, <{rclick}>, <.checkboxes.>, <{checkchange}>, ;
<{rowrefresh}>, <aDefVal>, <{editend}>, ! <.efv.>, <{beforedit}> )
Related commands and functions:
*** Standard syntax:
SET XBROWSEFIXEDBLOCKS ON
SET XBROWSEFIXEDBLOCKS OFF
SET XBROWSEFIXEDCONTROLS ON
SET XBROWSEFIXEDCONTROLS OFF
*** Alternative syntax:
SetXBrowseFixedBlocks( .T. )
SetXBrowseFixedBlocks( .F. )
SetXBrowseFixedControls( .T. )
SetXBrowseFixedControls( .F. )
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:
XBROWSE_JTFY_LEFT
XBROWSE_JTFY_RIGHT
XBROWSE_JTFY_CENTER
XBROWSE_JTFY_JUSTIFYMASK
Placement of headers images:
HEADER_IMG_AT_LEFT
HEADER_IMG_AT_RIGHT
COLUMNCONTROLS syntax:
{'TEXTBOX', cType, cPicture, cFunction, nOnFocusPos, lButtons, aImages, lLikeExcel, cEditKey, lNoModal}
{'TEXTBOXACTION', cType, cPicture, cFunction, nOnFocusPos, aImages, lLikeExcel, cEditKey, lNoModal, bAction, bAction2}
{'MEMO', cTitle, lCleanCRLF, nWidth, nHeight, lSize, lNoHScroll}
{'DATEPICKER', lUpDown, lShowNone, lButtons, aImages, lNoModal}
{'COMBOBOX', aItems, aValues, cRetValType, lButtons, aImages, lNoModal}
{'COMBOBOXTEXT', aItems, lIncremental, lWinSize, lButtons, aImages, lNoModal}
{'SPINNER', nRangeMin, nRangeMax, lButtons, aImages, lNoModal}
{'CHECKBOX', cTrue, cFalse, lButtons, aImages, lNoModal}
{'IMAGELIST', lButtons, aImages, lNoModal}
{'IMAGEDATA', oData, lButtons, aImages, lNoModal}
{'LCOMBOBOX', cTrue, cFalse, lButtons, aImages, lNoModal}