Home

AreaList Pro manual - e-Node

image

Contents

1. Oo Property List i lt p eList Variable1 9 5 Mx g hr Y Objects a Example 1 Type AreaListPro p This is Example 1 from the Reference Manual loading an array from a 4D List and Onjecr Name atente ay displaying it using the AL_AddColumn command Variable Name eList Y Es Plug in List w 451 h 105 Advanced Properties Edit AreaList Pro v9 2 y Coordinates Sizing e Node SA 2011 2012 37 80 488 185 451 105 100 150 200 250 300 350 400 450 500 550 Example 1 Loading an array from a 4D list Q Tutorial The AreaList Pro area Object Method handles all the formatting and events Case of Form event On Load initialize the AreaList Pro object LIST TO ARRAY City State aCityState copy the list into an array error AL_AddColumn eList gt aCityState display array in AreaList Pro object DEMO_Default eList general display settings vitem aCityState 1 Form event On Plug in Area respond to user action If AL_GetAreaLongProperty eList ALP Area AlpEvent AL Single click event I single click on a row or up down arrow keys row zAL GetAreaLongProperty eList ALP Area SelRow get the row selected I OR row zAL GetAreaLongProperty eList ALP Area ClickedRow row the user clicked AL SetAreaLongProperty eList ALP Area SelRow 1 row 1 selected vitem aCityState row get the valu
2. _ Use data size for row height 3 4 5 6 7 8 9 Choose a table from the Table popup menu Choose a field from the Field popup menu Add some more columns Your list is now ready to use Select the column that you want to assign a field to Enter the column header into the Header Text field Click the OK button when you have added all the columns you need You can find a detailed explanation of the Advanced Properties dialog here Using the Advanced Properties Dialog e Getting Started with AreaList Pro Working with AreaList Pro Commands and Functions You can use the commands and functions to configure every aspect of an AreaList Pro area and to get information about an area The commands and functions are grouped into themes according to the aspect of the area that they affect such as Rows Columns Sorting Drag and Drop etc When to use the Commands and Functions All AreaList Pro commands and functions need to be passed a reference to the area on which they will act Since AreaList Pro areas are initialised in the On Load phase of a layout the commands must be called during this phase or afterwards if you try to call any AreaList Pro commands before the form has been loaded you ll get an error message because 4D does not recognise the area reference If you do not issue any AreaList Pro commands in the On Load phase and you haven t chosen any fields or arrays in the Advanced
3. ALP Column FtrStyleU fstU underline ALP Column FtrTextColor ftcl textColor ALP_Column_FtrVertAlign fval valign ALP_Column_FtrWrap fwrp wrap ALP_Column_HdrBackColor hbcl backColor ALP_Column_HdrBaseLineShift hbls baseLineShift ALP Column HdrFontName hfnm font ALP Column HdrHorAlign hhal halign ALP Column HdrHorizontalScale hhos hScale ALP Column HdrLineSpacing hlis lineSpacing ALP Column HdrRotation hrot rotation ALP Column HarSize hsiz size ALP Column HdrStyleB hstB bold ALP Column HarStyleF hstF qdStyle ALP Column HarStylel hstl italic ALP Column HdrStyleS hstS strike through ALP Column HdrStyleU hstU underline ALP Column HdrTextColor htcl textColor ALP Column HdrVertAlign hval valign ALP Column HdrWrap hwrp wrap ALP Column HeaderText htxt headerText ALP Column HorAlign halg halign ALP Column HorizontalScale hors hScale ALP Column ID id id ALP Column Indexed idx datalndexed ALP Column Kind kind ALP Column Length len dataSize ALP Column LineSpacing lisp lineSpacing ALP Column Locked lock locked ALP Column PopupArray entp entryPopup ALP Column PopupArrayKind entP kind ALP Column PopupMap entM entryMap ALP Column PopupMenu entm ALP Column PopupName entN entryPopupName ALP Column Reveal reve ALP Column Rotation rotd rotation ALP Column ScrollTo scto ALP Column Size size size ALP Column SortDirection sord sort ALP_Column_Source src source ALP_Column_StyleB styB bold ALP_Column_StyleF styF qdStyle ALP_Co
4. 184 187 ALP Cell HorizontalScale 185 ALP_Cell_LefticonFlagS 160 ALP_Cell_LefticonID 159 160 ALP Cell RightlconID oo oo o 159 ALP Cell Rotation l co 187 ALP_Cell_TextColor 00005 186 ALP_Cell_VertAlign 00000 2 eee 186 ACP Cell XML c zur EX bees oes 185 ALP_Column_Attributed ALP_Column_CalcHeight ALP_Column_DisplayControl 135 139 164 ALP_Column_Enterable 136 137 138 150 164 175 ALP_Column_EntryControl 134 ALP Column FontName 42 ALP_Column_Format 60 150 ALP_Column_HdrFontName 42 ALP Column HdrRotation 177 ALP Column HdrSize 0 40 42 Q Index ALP_Column_HdrStyleB 42 150 ALP Column HeaderText ALP_Column_HorAlign 0045 ALP_Column_PopupArray ALP_Column_PopupMap 163 164 ALP_Column_PopupMenu 139 163 ALP Column Size 000 000 000 42 ALP_Column_StyleB 42 150 ALP Column Visible 37 175 ALP Column Width ALP Column Wrap selle Alpha channel 200200000055 ALP Object Columns ALP_Object_FieldS o o ooooooo ALP Object Grid 64 106 150 151 ALP Object Hierarch
5. AL SetDrgOpts AL SetAreaLongProperty ALP Area DragOptionKey ALP Area DragRowMultiple ALP Area DragRowOnto ALP Area DragScroll Mapping Old Commands to the AreaList Pro v9 API Old commands AL SetDrgSrc ia Mapping Old Commands to the AreaList Pro v9 API New Commands and Properties AL_SetAreaTextProperty ALP_Area_DragSrcRowCodes ALP_Area_DragSrcColCodes ALP_Area_DragSrcCellCodes AL_SetDropDst AL_SetAreaTextProperty ALP_Drop_DragDstCodes AL_SetDropDst AL_SetAreaTextProperty ALP_Drop_DragDstCodes Instead of x arguments join them using AL_SetObjects ALP_Object_DragDstRowCodes using array AL_SetDropOpts AL_SetAreaLongProperty ALP_Drop_DragAcceptLine ALP_Drop_DragAcceptColumn AL_SetEditedText AL_SetAreaTextProperty ALP_Area_EntryText ALP_Area_EntrySelectedText AL_SetEditMenuCallback AL_SetAreaTextProperty ALP_Area_CallbackMethMenu AL_SetEnterable AL_SetColumnLongProperty ALP_Column_Enterable AL_SetColumnPtrProperty or AL_SetColumnTextProperty ALP_Column_PopupArray AL_SetColumnTextProperty ALP_Column_PopupMenu Menu is 4D s menu AL_SetEntryCtls AL_SetColumnLongProperty ALP_Column_EntryControl AL_SetEntryOpts AL_SetAreaLongProperty ALP Area IgnoreSoftDeselect ALP Area EntryClick ALP Area SelClick defaults to 3 instead of 2 when legacy AL SetEntryOpts is ca
6. AQF Sort Options A Select columns to sort HEE cancel Eco To add a column to the sort list double click it drag and drop it into the right hand area or select it and click the right arrow After the user has completed a sort you can find out which columns were sorted by calling the ALP_Area_SortList option of AL_GetAreaTextProperty for example event AL_GetAreaLongProperty Self gt ALP_Area_AlpEvent Case of Sevent AL Sort editor event sorted AL_GetAreaTextProperty Self ALP Area SortList End case sorted now contains a comma separated list of the columns that the user sorted If a negative number is shown that column was sorted in descending order Button labels The ALP Area SortOK and ALP Area SortCancel properties can be used to override the default values for the Sort and Cancel buttons It either one of these is empty not set then AreaList Pro will load the button labels from the ALP xIf file located in the localized subfolder of the Resources folder in the AreaList Pro bundle depending on the languages available as XLF See AreaList Pro Area Sort Properties in the Properties by Theme section Sorting Programming The AreaList Pro User Interface 77 Taking control of the Sort It is possible for the developer to hijack a user sort and take control of it Why would you want to do that Here s an example In your AreaList Pro area you have
7. Specific column color with alternate row coloring tested an area with alternate row coloring wanted a column with a different color but there is no blending between the column custom color and the alternate row color Only the rows with the standard i e white color get the custom column color while the alternate colored rows remain untouched Here is the code used for testing AL SetColumnTextProperty area 3 ALP Column BackColor C2C2C2 color for column 3 AL SetAreaTextProperty area ALP Area AltRowColor F2F2F2 color for altrow AL SetAreaLongProperty area ALP Area AltRowOptions 15 bit 3 mix colors When you paint 10096 white on a black surface you will get white In other words the alternate row color needs some transparency non 100 opacity AL SetAreaTextProperty Sarea ALP_Area_AltRowColor 80E2E2E2 5096 opacity Setting a multi styled column We have a text field that has styled text cannot get AreaList Pro to display it without the style characters have added AL SetColumnLongProperty eaRecList0 ALP Column Attributed 1 and it still displayed the style characters Use the real column number not zero e g AL SetColumnLongProperty eaRecList j4 ALP Column Attributed 1 Column zero is used as default for newly created columns in any area Column 2 is used for all columns in the specified area We don t recommend using AL SetColumnLongPropert
8. ALP Area DragSrcCol v long int Source area column ALP Area DragSrcColCodes v viv text Drag source column codes The format is a list of codes separated by ALP Area DragSrcRow v long int Source area row only if AreaList Pro is dropped on AreaList Pro ALP Area DragSrcRowCodes Y v v text Drag source row codes The format is a list of codes separated by AreaList Pro Area Properties AreaList Pro Area DropArea Properties AreaList Pro Drop Areas are obsolete and are included for backwards compatibility For more information about using Drag and Drop see the Drag and Drop section Q o Properties by Theme Constant Get Set Per Type Default Min Max Comments AReaList Pro Area DropArea Properties ALP Drop DragAcceptColumn Y Y wv bool true 1 Accept column drag when source does not have ALP Area DragSrcColCodes set OBSOLETE use Drag codes instead ALP Drop DragAcceptLine viwviwv bool true 1 Accept line drag when source does not have ALP Area DragSrcRowCodes set OBSOLETE use Drag codes instead ALP Drop DragDstCodes viviwv text Drag destination codes The format is a list of codes separated by ALP Drop DragProcessID v long int 4D s process ID of this area ALP Drop DragSrcArea v long int The dropped AreaList Pro area ALP Drop Kind v v text Object kind DropArea ALP Drop Name v text area name from design ALP Drop XML viv text Full description of the
9. Baseline shift ALP Cell ClearStyle n a Clear the style of this cell The area redraws automatically ALP Cell Flags long int Bit mask of set features Properties not set are inherited from the row settings then the column settings The following flags indicate what style options have been set at the cell level 2 font name 4 font size 8 font style 16 text color 32 background color 64 horizontal alignment 128 vertical alignment 256 wrap 512 rotation 1024 baseline shift 2048 horizontal scale 4096 line spacing Maintained by AreaList Pro and should not normally be changed You can clear the flag if you want to force AreaList Pro to abandon cell specific settings ALP_Cell_FontName sS sS text Font name ALP Cell HorAlign long int Horizontal alignment 0 default 1 left 2 center 3 right 4 justify 5 full justify ALP Cell HorizontalScale ALP Cell LineSpacing real real 1 0 0 1 100 10 Horizontal scale Line spacing ALP Cell Rotation real 360 360 Rotation of text ALP Cell Size real 128 Font size ALP Cell StyleB bool Font style bold ALP Cell StyleF SI SIS RESIS SISISI SISIS SISISIS SIS long int Font style using 4D style constants e g Bold Italic etc ALP Cell Stylel bool Font style italic ALP Cell StyleU bool Font style underline
10. Drag and drop properties What is the use of the ALP Area DragLine property ALP Area DragLine is used when the source referenced area does not have the ALP Area DragSrcRowCodes property set This is also true for ALP Drop DragAcceptLine with the destination area It is useless if you call ALP Area DragSrcRowCodes to set the matching codes between source and destination Drag will only be allowed to a matching destination The option key values to ALP Area DragLine 1 3 with option 4 6 without option can be set using ALP Area DragOptionKey Using ALP Area DragSrcRowCodes makes it consistent with ALP Area DragSrcColCodes which in turn makes ALP Drop DragAcceptColumn obsolete and ALP Area DragSrcCellCodes RR SSS SSS SSS 5858585858585 i Drag and Drop Q Appendix II Troubleshooting and FAQs 271 Drag and drop and compatibility mode Drag within the area will not work unless the compatibility is turned on Check the AreaList Pro object properties on the 4D form it has to be draggable droppable In compatibility mode the area is draggable droppable even if it is not marked as such on the 4D form previous AreaList Pro versions ignored this setting Be aware that Drop has to be handled On Drop not just after the drag ended and drop is not yet known to AreaList Pro as opposed to previous versions Reordering after dragging a row within one area Drag within the
11. Example Let s suppose that we want to set the width for the first column in an AreaList Pro area called ProductList to 200 You could use either AL SetColumnLongProperty or AL SetColumnPtrProperty AL SetColumnLongProperty ProductList 1 ALP Column Width 200 or W 200 err AL_SetColumnPtrProperty ProductList 1 ALP_Column_Width gt W Conversely we can find out what the current setting is by using the associated GET commands W 0 W AL_GetColumnLongProperty ProductList 1 ALP_Column_Width or W 0 err AL_GetColumnPtrProperty ProductList 1 ALP_Column_Width gt W Properties Each command theme has its own set of properties that can be used to get or set various aspects of the area and for each property a 4D constant has been defined You ll find a complete reference in the Properties by Theme section See the Tutorial section below to learn more about getting started with AreaList Pro Command Descriptions and Syntax AreaList Pro has its own collection of commands and functions that you use to control your AreaList Pro areas to find out what actions the user has taken and to do whatever processing is needed as a result of those actions For example if the user drags a row from one AreaList Pro area to another it s up to you to use the commands to do whatever is required with the dropped row Commands The commands are organised into themes which relate to a particular part of the AreaList Pr
12. Property Values Constants and XML Names Q Appendix Codes AreaList Pro Edit Menu Constants Constant Value AL Edit Menu Undo Bit 0 AL Edit Menu Redo Bit 1 AL Edit Menu Cut Bit 2 AL Edit Menu Copy Bit 3 4 5 6 AL Edit Menu Paste Bit AL Edit Menu Clear Bit AL Edit Menu Select All Bit AL Edit Menu Entry Bit 15 AL Edit Menu Setup Bit 16 AL Edit Menu Handled Bit 17 AL Edit Menu Undo Mask 1 AL Edit Menu Redo Mask 2 AL Edit Menu Cut Mask 4 AL Edit Menu Copy Mask 8 AL Edit Menu Paste Mask 16 AL Edit Menu Clear Mask 32 AL Edit Menu Select All Mask 64 AL Edit Menu All Items Mask 127 AL Edit Menu Entry Mask 32768 AL Edit Menu Setup Mask 65536 AL Edit Menu Handled Mask 131072 EE AreaList Pro Edit Menu Constants Q Appendix Il Troubleshooting and FAQs 266 Appendix Il Troubleshooting and FAQs Here are some usual questions received by our technical support You can find more on the AreaList Pro forum AL Register returns zero In AreaList Pro previous versions AL Register used to return 1 when registered Now it returns O With AreaList Pro version 9 zero means no error for all commands Now the plugin is correctly activated if the result code is zero See AL Register Alternately to AL Register you can place a plain text file into your 4D Licenses folder or use the Demo mode dia
13. Set a specific Property for an area The properties that can be set with this command are listed in the AreaList Pro Area Properties section This version of AL_SetAreaProperty allows you to write generic code that uses a Pointer to any type of variable Example To show the sort editor showSortEditor 1 Serror AL_SetAreaPtrProperty area ALP_Area_ShowSortEditor gt showSortEditor Area Q Command Reference AL SetAreaRealProperty AreaRef L Property T Value R Parameter Type Description gt AreaRef longint Reference of AreaList Pro object on layout gt Property text The property to set gt Value real The value to set the property with a real number Set a specific Property for an area The properties that can be set with this command are the ones of type real listed in the AreaList Pro Area Properties section Example To set the horizontal indent padding for the header row to 4 points AL SetAreaRealProperty area ALP Area HdrlndentH 4 AL SetAreaTextProperty AreaRef L Property T Value T Parameter Type Description gt AreaRef longint Reference of AreaList Pro object on layout Property text The property to set gt Value text The value to set the property with text Set a specific Property for an area The properties that can be set with this command are the ones of type text listed in the AreaList Pro Area Properties section Example You c
14. Sorting Areas can be sorted either by clicking in a column header or by invoking the AreaList Pro sort editor If the user clicks in a column header the area is sorted in ascending order on that column if he clicks again the column will be sorted in descending order If he wants to sort on more than one column he can use the sort editor The developer can control many aspects of sorting including disabling the sort option entirely and hijacking the user sort if he wants to handle it in a certain way When a column has been sorted a triangle sort indicator appears in the header Ascending Order Sort Descending Order Sort ma St N amp Last Name Adam Green Yogen Dalal Alan Bonadio William Woodward When both ALP Area HeaderMode and ALP Area ShowSortlndicator properties are not zero the v8 sort order button is displayed above the vertical scrollbar On Windows Vista 7 and 8 value 2 to ALP Area ShowSortlndicator draws the sort non native triangle to the right not on top Events Sorting a Programming The AreaList Pro User Interface The Sort Editor If you want your users to be able to use the sort editor you must first enable it by calling AL_SetAreaL ongProperty with the ALP_Area_AllowSortEditor option for example AL_SetAreaLongProperty area ALP_Area_AllowSortEditor 1 To activate the Sort Editor the user cmd clicks in the column header The Sort Editor window then opens
15. 4 v15SelRowCallback 5 Example15UpdateVariables The EntryCallback15 method also called during On Load updates the other variables through properties v15ClickedCell AL_GetAreaLongProperty eList ALP_Area_ClickedCell v15ClickedCellColFromCell AL_GetColumnLongProperty eList v15ClickedCell ALP_Column_FromCell v15ClickedCol AL_GetAreaLongProperty eList ALP Area ClickedCol v15ClickedRow AL_GetAreaLongProperty eList ALP Area ClickedRow v15SelCol AL_GetAreaLongProperty eList ALP Area SelCol v15SelRow AL_GetAreaLongProperty eList ALP Area SelRow v15RollOverCol AL_GetAreaLongProperty eList ALP Area RollOverCol v15RollOverRow zAL GetAreaLongProperty eList ALP Area RollOverRow v15RollOverCell AL_GetAreaLongProperty eList ALP Area RollOverCell v15RollOverCellColFromCell AL_GetColumnLongProperty eList v15RollOverCell ALP_Column_FromCell CALL PROCESS Frontmost process update displayed variables SSS SS SSS SSS SSS SSS SSS ed Example 15 Cell coordinates properties Programming The AreaList Pro User Interface Programming the AreaList Pro User Interface Entering Data Initiating Data Entry Data entry using typed characters may be initiated in an AreaList Pro cell by three methods m User click single or double with or without modifiers or click and hold m Return or Tab keys with or without shift from the previous or next shift enterable cell in the AreaList Pro area m Pr
16. 83 Switching modes Make sure that you do not switch modes when calling either the compatibility mode ALP Area NumXXXLines properties or the v9 native ALP XXX Wrap properties For example if you are setting the ALP Column Wrap property and if you want to use variable row height AL SetAreaLongProperty SeList ALP Area NumRowLines 0 variable row height AL SetAreaLongProperty SeList ALP Area NumHdrLines O variable header height AL SetAreaLongProperty SeList ALP Area NumFtrLines O variable footer height if applicable AL SetColumnLongProperty S eList j4 ALP Column CalcHeight 1 the above line is meant to calculate each row header footer height using this column s data Calling either old AL SetRowOpts or AL SetColOpts instead would set the compatibility mode on which would subsequently make ALP Column Wrap ignored Text Styling AreaList Pro gives you many options for styling text within the following objects m cells m columns m column footers m column headers m rows You can set the following attributes m font m font size m font style bold italic underline m uppercase m rotation m color m wrapping see above m alignment m horizontal scaling m line spacing m baseline shift m dynamic row height m automatic text truncation ellipsis Text Styling 84 Programming The AreaList Pro User Interface The following tables describe which properties you can u
17. Area properties Use these properties with commands in the Area theme Constant Get Set Per Type Default Min Max Comments ALP Area AltRowColor v v Vv color ZFFEEEEEE Alternate row color default is light gray ALP Area AltRowOptions Yiv wv long 0 0 15 Alternate row coloring options int bit 0 1 enable 0 disable bit 1 1 applyALP_Area_AltRowColor to even rows 0 apply to odd rows bit 2 1 alt color applies to empty space below the last row if any bit 3 O default use the existing color when defined at cell or row level instead of alternate color for alternate rows column color is ignored 1 mix the alternate color with the existing color set for the cell row column in this order ALP_Area_ColDivColor v SK S color FF808080 Column divider color default is gray ALP Area MiscColor2 v wv v color FFEEEEEE Area color below the vertical scrollbar OBSOLETE this area is not customizable in AreaList Pro v9 the scrollbar is drawn and it is bigger than in 8 x In AreaList Pro v9 this color is used as the background color before drawing anything the whole AreaList Pro area is erased using this color Default is light gray ALP Area MiscColor3 v v V color 4FFEEEEEE Area color left of the horizontal scrollbar Default is light gray ALP Area MiscColor4 v v wv color ZFFEEEEEE Area color right of the horizontal scrollbar Default is light gray ALP Are
18. AreaList Pro User Manual O Version 9 9 30 rue de la a Repaso Que sse Car Ne e ne WWW Q 2 Contents About AreaList Pro 12 What is AreaList Pro and what can I do with it llli 12 Technical src ears A Bieta A Ghee tee ae eee eee aa Be 12 Compatibility Information sise derra ios aa dana dation donai eee 12 Technical Supporte ie i e E gh ES qs 12 Installation 13 Installing the plugin esse ER Re ee noae ERRANT Nude dE uere ed aad EE 13 Using AreaList Pro in Demo mode i s 2 aciei diaa RR eR nmm kr ren 13 Lic erBlligi nus ums de mug me Emir e duse mios dar dub eot rirsde sb mb edid anos adit arab mue deme od 14 D pio PC ECC pce 14 Pres Updates occ etc aed cake hres ae ea ee Ropa bt recede ne beeeesd te ddr 14 License typeS 65234644 Mews sds eae ede ed Gens eR eee eee ed wad S RR RE ene ee 15 Registering your AreaList Pro License llle tetet dauie neta ea 16 QUICK Gas MAU 2 46 ooa otha pense pro Mu bE Aug eit eue AUS ed e OER dq dei big DE 16 The Demo mode dialog su ae nee ales saps en Ri Ios dk iens ee ca ts n e I RR DR De c 16 Registering Server licenses 0oooooococooo nt t iiad i iE EE SEEN EEE EEE Eai giet 18 Using a TEXTING csc ee eee n PER Rm bar EUR E PRESB oe Reg bee eee qe E ENE 19 Using AL RegISIEr aut i oup ate Dess EE A Bee ee he Solo d RE esr E d ie air gee 20 Combining Methods vidi ag ure Rote a ate e ieu ad t teary hated 20 Online regislTRllDli suo ee mPRP
19. Product Type Description Chocolate Dark Chocolate 2 50 Better for you dark chocolate has b E Chocolate Milk Chocolate 2 75 Made with full fat organic milk z Chocolate White chocolate 2 50 The chocolate purist might argue th Nuts Nuts 2 25 An assortment of peanuts cashew n gt Chocolate Nuts gt Toffee Hierarchical List Style In the second example the data has been organised into hierarchical lists You can click on a triangle to expand a list for example Type Name Description Chocolate Dark Chocolate Better for you dark chocolate has b Milk Chocolate Made with full fat organic milk White chocolate The chocolate purist might argue th Cashew Nuts Roasted and salted cashew nuts in lt Nuts An assortment of peanuts cashew r Je E Hierarchical Lists Q Advanced Topics 154 How to create a Hierarchical List Hierarchical lists consist of normal AreaList Pro columns from arrays or fields plus two additional arrays which specify the hierarchy level and the expansion status of each row Hierarchy Level The hierarchy level is an integer where the top level 0 and successive levels are 1 more So in a three level hierarchy you ll have level numbers 0 1 and 2 Expansion status The expansion status is either 1 or 0 0 means collapsed closed and 1 means expanded Here is a simple example to illustrate the way the two additional arr
20. Some callback methods are actually functions and they return a value m The callback set by ALP Area CallbackMethOnEvent returns a longint so 0 must be declared as a longint If the returned value is 0 no further code will be executed on event neither object method nor form method m The callback set by ALP Area CallbackMethEntryEnd returns either True or False if it returns False rejected the user will not be allowed to leave the cell This enables you to do all kinds of data validation m The callback set by ALP Area CallbackMethPopup returns either True or False if it returns True click handled AreaList Pro won t display its own popup m The callback set by ALP Area CallbackMethMenu returns a longint If the returned value is O AreaList Pro will process the Edit menu action otherwise the callback has overridden this processing AL Edit Menu Handled Mask Callback Parameters o Using the Callback Methods Event Property ALP Area CallbackMethOnEvent Parameters C LONGINT 1 AreaList Pro Pro object reference C LONGINT 2 AreaList Pro event C LONGINT 3 event modifier unused now may be used later for passing additional info about the event C LONGINT 4 column last clicked column C LONGINT 5 row last clicked row C LONGINT 6 modifiers C LONGINT 0 object method and form method will not be executed if O Area selected Property ALP Area CallbackMet
21. The third column in the example is an enterable date field State City Date Level AK Fairbanks 0 AL Mobile 10 03 02 0 gt AR Fayetteville 31 03 02 0 b AZ Phoenix 12 05 02 0 b CA Los Angeles 23 06 02 0 If you enter a complete date this will be accepted as is as long as it is a valid date But if you enter a number in one to 8 digits it will be converted to a date as shown in the following table In these examples the current system date is July 21st 2011 S Result e ue Mapped to E G French OS US UK os os 1 D 5 2011 07 05 07 05 2011 05 07 2011 2 DD 31 2011 07 31 07 31 2011 31 07 2011 3 DDM 131 2011 01 13 13 01 2011 01 13 2011 4 DDMM 1301 2011 01 13 13 01 2011 01 13 2011 5 DDMMY 13015 2005 01 13 01 13 2005 13 01 2005 6 DDMMYY 130112 2012 01 13 01 13 2012 13 01 2012 8 DDMMYYYY 13012012 2012 01 13 01 13 2012 13 01 2012 If you enter values directly double click in the 3rd column in a date cell and if the value you enter is not in standard date format the alpEdit_DateEntry method is called via the ExitEntry callback method The callback method is installed in the On Load phase of the AreaList Pro object on the form AL SetAreaTextProperty Self gt ALP_Area_CallbackMethEntryEnd ExitCallbackDate The ExitCallbackDate method will be invoked when data entry in a cell in the Date column ends After the callback method has done its calculations the resulting date is poked into the s
22. Vertical alignment 0 7 default 1 top 2 7 center 3 bottom ALP Row Wrap v v v bool Wrap long lines AreaList Pro Row Properties Properties by Theme 225 AreaList Pro Gell Properties Use these constants with commands in the commands in the Cells command theme AL GetCellLongProperty AL GetCellPtrProperty AL GetCellRealProperty AL GetCellTextProperty AL SetCellLongProperty AL SetCellPtrProperty AL SetCellRealProperty AL SetCellTextProperty If the Row Number is 2 the property will be applied to all rows displaying data from 1 to ALP Area Rows for the specified Column Number If the Column Number is 2 the property will be applied to all columns in the area from 1 to ALP Area Columns for the specified Row Number If both the Row Number and Column Number are 2 the property will be applied to all cells in the area For example to clear all special formatting for all cells AL SetCellLongProperty area 2 2 ALP Cell ClearStyle 0 To clear all special formatting for cells in column 3 AL SetCellLongProperty area 2 3 ALP Cell ClearStyle 0 To clear all special formatting for cells in row 3 AL SetCellLongProperty area 3 2 ALP Cell ClearStyle 0 AreaList Pro Cell Properties Cell General Properties 226 Properties by Theme Constant Get Set Per Type Default
23. amp FF000000 Header font color Default is black ALP Column HdrVertAlign v v wv long 2 0 3 Header vertical alignment int 0 default 1 top 2 center 3 bottom ALP_Column_HdrWrap v v Y bool false 0 Wrap long lines in header AreaList Pro Column Properties Column Footer Style Properties 220 Properties by Theme Constant Get Set Per Type Default Min Max Comments Column Footer Style Properties ALP_Column_FtrBackColor v vw V color HOOFFFFFF Background color Default is transparent no color ALP_Column_FtrBaseLineShift Y Y Y real 0 100 256 Footer baseline shift ALP Column FtrFontName v v V text Verdana on Footer font name Windows Lucida Grande on MacOS ALP Column FtrHorAlign v wv V long 0 0 5 Footer horizontal alignment int 0 default 1 left 2 7 center 3 7 right 4 justify 5 full justify ALP Column FtrHorizontalScale Y Y Y real 1 0 1 100 Footer horizontal scale ALP Column FtrLineSpacing v v V real 1 0 1 10 Footer line spacing ALP Column FtrRotation v v V real 0 360 360 Rotation of text in footer ALP Column FtrSize v v V real 12 on 4 128 Footer font size Windows 13 on MacOS ALP Column FtrStyleB v v Y bool false 0 Footer font style bold ALP Column FtrStyleF v v wv long 0 0 7 Footer font style using 4D style constants int
24. collapse this row and all its children all children will be invisible and collapsed ALP Row Expand vv bool Show children of this row If any child was not collapsed more levels will be visible ALP Row ExpandAll v bool Deep expand show children of this row and all children all children will be visible and fully expanded ALP Row Level v long int Returns the level associated with this row set using ALP Object Hierarchy ALP Row Parent v long int Returns the immediate parent of this row zero if this row is at the top level ALP Row Visible v bool Returns whether this row is visible all parents of this row are expanded This has nothing to do with real visibility on screen but with the expanded state of all parents Object Properties This property is used with commands in the Objects theme Constant Get Set Array Type Comments ALP Object Hierarchy long int Hierarchy level expanded 2D or two arrays you can call AL SetObjects with a 2 dimensional array or AL SetObjects2 with two arrays Hierarchical Lists Q Advanced Topics 158 Pictures Images can be displayed as icons in cells and in headers and footers and they can be set either on the left or the right of the cell The pictures can be stored in variables fields or the 4D picture library Various settings can be applied to an icon through the use of flags for example scaling offset from the border etc Formatting picture columns
25. 1 is modified element not valid 0 False tell AreaList Pro it is invalid this forces the user to re enter it BEEP provide user feedback ALERT ArrayNames 2 gt vRow is not a valid state abbreviation Please re enter Else 0 True tell AreaList Pro entry is valid End if Else 0 True tell AreaList Pro entry is valid End if End if 2 Tell AreaList Pro when to call the callback method This uses the ALP Area CallbackMethEntryEnd property of AL SetAreaTextProperty AL SetAreaTextProperty eList ALP Area CallbackMethEntryEnd ExitCallback Example 7 Using a callback method to check data entry validity Q Tutorial Example 8 Using both an Entry and Exit callback Entry callbacks can be used to control what happens when a cell is entered In this example we want to skip disallow data entry in the first column if the corresponding State is CA 1 The Entry Callback method C_LONGINT 1 AreaList Pro object reference C_LONGINT 2 entry cause C_LONGINT 3 only useful when fields are being displayed vRow AL_GetAreaLongProperty 1 ALP_Area_EntryRow find out which cell vCol AL_GetAreaLongProperty 1 ALP_Area_EntryColumn ARRAY POINTER ArrayNames 0 Serror AL_GetObjects 1 ALP_Object_Columns ArrayNames If vCol 1 city If SArrayNames 2 gt vRow CA pointer to second column array state AL SetAreaLongProperty 1 ALP Area EntrySkip 1 End if End if 2 Tell Are
26. AreaList Pro uses constants for picture alignment They are identical to previous AreaList Pro versions Constant Value AL Truncated upper left 0 AL Truncated centered 1 AL Scaled to fit 2 AL Scaled proportional 3 4 AL Scaled prop centered For instance to set the format of a picture column to be scaled to fit prop centered use AL SetColumnTextProperty area columnlndex ALP Column Format 4 m format 0 is Truncated the picture is always aligned e g if the picture is bigger you should see the right side of the picture for a right aligned picture m format 1 is Truncated centered the picture is always centered which is the same as format 0 with horizontal and vertical alignment set to centered 2 m format 2 is Scaled to fit it always covers the full cell there is nothing to align m format 3 is Scaled proportionally if the picture is smaller than the cell after scaling the picture it will be aligned m format 4 is Scaled proportionally centered the picture is always scaled and centered which is the same as format 3 with horizontal and vertical alignments set to centered 2 In addition m if the value set for ALP Column Format is not specified or out of range it will be interpreted as 0 m formats 1 and 4 are always centered format 2 fills the whole rectangle m only formats 0 and 3 will use the justification if any was set with one of the alignmen
27. Getting Started with AreaList Pro Obsolete Commands If you are using any of the following commands you will need to remove them from your code Old Command How to replace it AL DoWinResize Obsolete AL DragMgrAvail No longer relevant always true AL GetAdvProps Unsupported AL GetHeaderOptions Unsupported AL GetSortEditorParams Use the ALP Area SortTitle property in the ALP Area theme to get the sort editor title and ALP_ Area SortPrompt to set the prompt The other options are not supported See the Sorting topic for more information about sorting AL InsertArrays Replace with AL AddColumn using a pointer to the array AL InsertFields Replace with AL AddColumn using a pointer to the field AL SetArrays Replace with AL AddColumn using a pointer to the array AL SetCellFrame No equivalent in the new API but the old command will continue to work as before The call sets properties ALP Cell XXXBorderOffset ALP Cell XXXBorderWidth and ALP Cell XXXBorderColor where XXX is Top Left Bottom Right for all the cells in a rectangle It is the same as calling AL SetCellBorder in a loop AL SetHeaderlcon Unsupported AL SetHeaderOptions Unsupported AL SetPictEscape Unsupported AL SetSortEditorParams Use the ALP Area SortTitle property in the ALP Area theme to set the sort editor title The other options are not supported See the Sorting topic for more information about sorting AL SetS
28. Note boolean values are passed or returned as longints where 1 true and 0 false For example the ALP_AreaHideHeaders property has two options 1 to hide the headers and 0 to display them AL SetAreaLongProperty AreaRef ALP Area HideHeaders 0 Header will be displayed You can find complete descriptions of the commands along with examples in the Command Reference section and descriptions of all the properties in the Properties by Theme section This section includes details of how to use each property the Type column tells you what type of data it requires and this is matched to the command variant For example the following snippet shows the details for the ALP Column FtrSize property which you can use to get or set the font size for a column s footer row Constant Get Set Per Type Default Min Max Comments ALP Column FtrSize 12 on Windows 128 Font size 13 on MacOS Note Per stands for Persistent See Properties by Theme The Type is Real so you would use the AL SetColumnRealProperty command to set the footer font size for the second column to 10 AL SetColumnRealProperty 3re3 2 ALP Column FtrSize 10 Note that Boolean properties are called as longints 1 true 0 false Command Descriptions and Syntax e Getting Started with AreaList Pro Functions Functions return a result code when they are called Usually this will be the information you requested such as
29. Row Hierarchy Properties nso ct ces en ac emere ouk sue RR o qoe X eRe a 223 Row Style Properties us ge eso xac p Quent dus pak dh epee kai dUi i eee acm donde lcs 224 AreaList Pro Cell Properties liliis 225 Cell General Properties c ses esee eek eh ee ker kn 226 Cell Style Properties tii gy actos le enar anao Shape und bands ri ea arg a Bees 228 AreaList Pro Object Properties u a erat nd mao a eem a edad Red p gotas a ior ev ie Brat 229 Table of Contents Q 9 Contents Mapping Old Commands to the AreaList Pro v9 API 231 DisplayList 239 About DISplayLISE asp ate ar en ntes amin RA AA RA 239 INCOMPALUDINNGS P m 239 bisplayList COMMANGS criar EE Ean te koe Pee a ORO UR RUN on ee eens Pup Ree god gs 240 Troublesliootlng 5e re RR REG eR p Rae pk eS ee Ae PUER eg Rea RR sch RR 246 Why are one or more of my columns missing lle 246 Why doesn t the command key equivalent work for a button llle 246 Printing with SuperReport Pro 247 FOW IEWOIKS gsc bin Se Re Ox e muse oy euo wo e gor E mean ee E RU lE d Ro a CR RD e bb ab n 247 Command and property usse p eror bee eed Roa ede gene d ov e e RUE 247 Creating thee PON ERR TET 248 Example ER T 248 Custom templates 248 Demonstration database code examples 000 cece eee 249 Print with SuperReport Pro default template 2 0 0 0 elles 249 Print with SuperReport Pro custom template 0 0
30. Selector 0 Count elements were inserted at Row 1 insert Count elements at Row using INSERT IN ARRAY 2 Count elements were deleted at Row 3 delete Count elements at Row using DELETE FROM ARRAY This value informs AreaList Pro that the arrays have been modified Selector 0 or 2 or asks AreaList Pro to modify the arrays Selector 1 or 3 All arrays contained in the area will be processed including hidden columns if any AreaList Pro will adjust the cache and move the row and cell options depending on the current values for ALP Area MoveRowOptions and ALP Area MoveCellOptions Thus AL ModifyArrays is especially useful if you want to insert or delete rows while keeping any options e g formatting that you may have set for specific rows or cells Example The following two examples produce the exact same result in an area displaying two arrays Insert with 4D and inform AreaList Pro INSERT IN ARRAY myArray1 5 3 insert 3 elements at position 5 INSERT IN ARRAY myArray2 5 3 same with the other array AL ModifyArrays area 0 5 3 inform AreaList Pro Ask AreaList Pro to insert AL ModifyArrays area 1 5 3 ask AreaList Pro to insert 3 elements at position 5 in both arrays Rows Q o Command Reference AL SetRowLongProperty AreaRef L Row L Property T Value L Count L Parameter Type Description gt AreaRef longint Reference of AreaList Pro object on layout gt Row longint Numbe
31. SetColumnTextProperty area column ALP Column Format Char 0x2022 as hexa Entering data in AreaList Pro with DisplayList You can use DisplayList to display a custom selection list for data entry in AreaList Pro 1 Make the area enterable AL SetAreaLongProperty area ALP Area EntryClick 3 enterable by cmd double click 2 Set a column to allow entry using popup AL SetColumnLongProperty area column ALP Column Enterable 3 keyboard amp popup 3 Don t set a popup array menu 4 Install callback using ALP Area CallbackEntryPopup AL SetAreaTextProperty area ALP Area CallbackMethPopup Alp PopupCallback entry popup callback 5 Implement the callback Alp PopupCallback this function is called when a cell has popup entry allowed but no popup is defined C BOOLEAN 0 case handled return False if not handled C LONGINT 1 ALP object reference C LONGINT 2 row C LONGINT 3 column C LONGINT 4 data kind C_LONGINT alpEditArea alpEditRow alpEditCol alpDataKind C_LONGINT err alpEditArea 1 alpEditRow 2 alpEditCol 3 alpDataKind 4 SSS SS aaa SSS A Entering Data a Programming The AreaList Pro User Interface Case of SalpDataKind Is date handle date popup use custom date dialog C DATE vDate vDate2 vDate DatePicker Display Dialog We use our own err AL_GetAreaPtrProperty alpEditArea ALP_Area_EntryValue gt vDate2 C_
32. So instead of adding the Price column we can add a calculated column The actual calculation is done in a callback method whose name you pass when you add the column First we create our callback method CalculateDiscountPrice Calback method to calculate discount prices C_LONGINT 1 2 3 5 6 must be declared C POINTER 4 this must be declared SELECTION RANGE TO ARRAY 5 5 6 1 product retail_price price For i 1 6 Case of lt gt DiscLevel 1 lt gt DiscLevel was set when the user logged in 4 gt i Round price i 0 95 2 5 discount lt gt DiscLevel 2 4 gt i Round price i 0 9 2 1096 discount lt gt DiscLevel 3 4 gt i Round price i 0 85 2 1596 discount End case End for Now all we need to do is add the calculated column to our AreaList Pro area err AL_AddCalculatedColumn area ls real CalculateDiscountPrice AL AddColumn AreaRef L DataPointer Z InsertAt L gt result L Parameter Type Description gt AreaRef longint Reference of AreaList Pro object on layout gt DataPointer pointer When in Records mode DataPointer should be a pointer to field When in Arrays mode DataPointer should be a pointer to an array must not be a local array gt InsertAt longint Position at which to insert a column 0 means add to the end result longint Add a column at the specified position InsertAt The column can be either a fiel
33. all other columns have default by type and format used 2 fully can be slow on large arrays ALP_Area_ColDivColor color FF808080 Column divider color default is gray ALP_Area_ColsInGrid long int 1 Number of columns in grid ALP_Area_ColsLocked long int 0 Number of locked columns in grid ALP_Area_ColumnLock bool true 1 Allow column lock by user ALP_Area_ColumnResize SISISI amp S SINISIS OS SISISI amp S IS bool true 1 Allow column resize by user If set to true the column width will also automatically be adjusted when the user double clicks on the column separator in the header ALP Area DrawFrame long int Draw frame 0 none 1 7 black rectangle 2 modern look sunken ALP Area Ftrindent point 3 2 Horizontal and vertical indents for the footer rows in points The first value represents the horizontal indent left and right and the second value is the vertical indent top and bottom ALP Area FtrlndentH real 64 Horizontal indent for the footer rows in points ALP Area FtrindentV real 64 Vertical indent for the footer rows in points ALP Area Hdrlndent point 3 2 Horizontal and vertical indents for the header rows in points The first value represents the horizontal indent left and right and the second value is the vertical indent top and bottom ALP Area HdrlndentH real 64
34. but who cares 2 5 Nuts An assortment of peanuts cashew nuts etc Nuts Supplied in a decorative blue and red tin dum Grid Style They both display the same data but in very different ways Grids Q iii Advanced Topics Terminology We refer to the parts of a grid as line A field or array that has been added to the area equivalent to a column in a list view row The group of lines that are displayed for each record column A column which may contain any number of lines cell The intersection of a column and a line column Name _ Description line Choco line tter for you dark chocolate has beer Shown Dark Chocola healthy qualities How many more ade with full fat organic milk The grid allows you to m Specify how lines are grouped into columns Span data across two or more lines either vertically or horizontally In this example the Description field spans the Type Name and Price lines allowing the text to wrap within its cell m Hide any line m Allow lines to be dragged and dropped m Allow the user to sort on any line When a column is added or removed the grid is destroyed Any column can be made invisible Then m When in compatibility mode the grid is destroyed all columns are made visible and all columns to be hidden are made invisible m When no grid is defined by the user after last destruction it is created automatically from all visib
35. cercar xo men OR Co d eee bees d RUN A OR eS APRA eR 119 S MMA ERR EE RETE TERUEL TU UT 119 Example a 119 Getting Started 4 233 ses Gas A Sek wa ud ero os La a aee s 120 Padding and Dividers 2 zu ya di Rigel ee Sag XR Re RR RD E 120 Custom row highlight ie ete ERR Rr Re E Redde ad eoe d a RR e Rss 123 Empty column background color 1 0 0 0 cee eee 123 Setting the entire area toa single color 22 02 00 00s RR eee CEE eee ee RR PR LR 123 A cede ELS kaa EE ee ee dee da Oak aua Ree ee die aL E ee ae Rd 123 The Advanced Properties Dialog 124 The Advanced Properties Dialog o ooooocooococ mI ee 124 Column Setup Tab xoxo ES Send Prset ee bt ia Bless inte Seius 125 Default Column auos PSD wit iniit bebat polso e Deis tent Minds Be ew oe 125 Apply toall Columns x omne doen bend bt E ed dae bed gehe Y Rape 125 Column Settings eesis ci cde Ee cdeee dda REOR PY RIO b P dou bade de ede eh PX ped ees 125 Gene ral Optlons ios se MS dee bob add dhe bee bed cee 127 Entera Dilly ERE TTL T A T AOR a atone ede T 128 jolie P aUn n ee 24k 129 Dragging us soe Mee o he Eaedem ELE ME E Nu ME ad E aT 130 Source and Destination COdeS ooooooccccc n 131 PREVIEW whith te Rie ee Soe RUP cE ead Baden act A ade glad o dd 132 Table of Contents Q Contents Advanced Topics 133 AME ratte E AAN 133 Data Entry Conttols roza sd rad E A Gu A O a ree e eee 134 Booleans Data Entry scsesee err e
36. err AL_AddColumn area gt arPrice Create the hierarchy level array It is initially 1 element bigger than the current size of the Product arrays because we know that the first row will be the first top level entry in the hierarchy ARRAY LONGINT aiLevel Size of array atType 1 Il Insert an empty element at the beginning of each of the Product arrays INSERT IN ARRAY atType 1 1 INSERT IN ARRAY atName 1 1 INSERT IN ARRAY atDescription 1 1 INSERT IN ARRAY arPrice 1 1 Set up the first row type atType 2 type will tell us when the type changes atType 1 Stype Set the first level topic i 2 Start the loop at the second row Loop through the product arrays inserting elements when the Type changes While i lt Size of array atType If atType i Stype same type as the previous row aiLevel i 1 atType i don t need to redisplay the type Else type atType i reset the type variable INSERT IN ARRAY aiLevel i 1 INSERT IN ARRAY atType i 1 INSERT IN ARRAY atName i 1 INSERT IN ARRAY atDescription i 1 INSERT IN ARRAY arPrice i 1 atType i type this is the level 1 row aiLevel i 0 not strictly necessary as it will default to 0 aiLevel i 1 1 atType i 1 i i 1 End if i i 1 End while Hierarchical Lists Q Advanced Topics 156 Create the expansion status array ARRAY LONGINT aiExpanded Size of array aiLevel 0 not expanded Set
37. gt gt aState 0 Serror AL_AddColumn Self gt gt displayLevel 0 Some formatting AL_SetColumnTextProperty Self gt 1 ALP_Column_HeaderText State City AL_SetColumnTextProperty Self gt 2 ALP_Column_HeaderText Level AL_SetAreaRealProperty Self gt ALP_Area_Hierlndent 20 set hierarchical indentation DEMO Default Self gt general display settings AL SetColumnTextProperty Self 2 3 ALP Column Format 0 specify Level column format Example 12 Using Hierarchical Lists Q Tutorial Set the event callback method AL SetAreaTextProperty Self gt ALP_Area_CallbackMethOnEvent EventCallBack Add some variables to the EventCallBack method C LONGINT 0 object method and form method will not be executed if O C LONGINT 1 AreaList Pro area C LONGINT 2 AreaList Pro event C LONGINT 3 4D event C LONGINT 4 column last clicked column C LONGINT 5 row last clicked row C LONGINT 6 modifiers vEvent 2 vRow 5 vCol 4 vRowOver AL_GetAreaLongProperty 1 ALP_Area_RollOverRow Now for the important part tell AreaList Pro that we want to display these arrays in a hierarchical list error AL_SetObjects2 Self gt ALP_Object_Hierarchy displayLevel expanded The end result looks something like this eoo Example 12 Example 12 This is Example 12 from the Reference Manual which was built to illustrate the hierarchical list display mode Sta
38. order You need to use the results from ALP Object Grid to determine the user rearrangement The same applies to the column widths for example see below Bottom line when the user drags a column to a different place only the grid is changed not the physical column order Column numbers in compatible mode off Q Columns Procedurally moving columns You can procedurally move columns similar to the way the user does it via the interface i e drag columns to reorder them For a simple grid just one row of columns as in AreaList Pro previous versions ARRAY INTEGER columns 0 err AL_GetObjects area ALP Object Grid columns get current column order reorder columns as you want err AL_SetObjects area ALP Object Grid columns set new column order Note in AreaList Pro version 9 compatibility mode off columns are never moved physically only the display order is changed For example after column number 2 is moved before column 1 when the first displayed column is clicked column number 2 is returned Column widths Properties The user will be able to resize columns if ALP Area ColumnResize is set to true 1 Column widths are accessed through the ALP Object ColumnWidth ALP Column Width and ALP Object ColumnWidthUser ALP Column WidthUser properties ALP Object XXX is a batch accessor to a property or a multi valued property ALP Object ColumnWidth and ALP Object Column
39. row 0 is the header Example 3 Using a Popup Callback to create dynamic popups You can use a Popup callback to dynamically change the contents of a column s popup menu Suppose that we have various product types on offer and each type of product comes in different pack sizes We want to present to the user a Pack size popup whose contents depend upon the type of the selected product When the form is loaded we create some arrays and matching popup menu texts one for each product type pack sizes for chocolates ARRAY TEXT atChocsizes 3 atChocsizes 1 40z atChocsizes 2 80z atChocsizes 3 160z tPopChoc 40z 80z 160z pack sizes for nuts ARRAY TEXT atNutsizes 3 atNutsizes 1 60z atNutsizes 2 120z atNutsizes 3 180z tPopNuts 60z 120z 180z Next we tell AreaList Pro that the Pack Size column column no 3 in this example is enterable only by popup AL_SetColumnLongProperty area 3 ALP_Column_Enterable 2 Note we do not attach a popup to that column Examples Then we assign a popup callback method to the area Q o Using the Callback Methods AL_SetAreaTextProperty area ALP_Area_CallbackMethPopup Alp_PopupCallback empty popup callback The callback method A p PopupCallback contains the following code C BOOLEAN 0 Return True if handled False if not handled C LONGINT 1 AreaList Pro object reference C LONGINT 2 row C LONGINT 3 column C LONGINT 4 data t
40. selection mode Hint in read write mode the record will be locked ALP Area SelHighlightMode long int Change the way the selected cells rows are highlighted 0 system highlight color used as background color default 1 invert colors legacy mode 2 blend the system highlight color with 75 alpha 192 ALP Area SelMultiple bool false 0 Allow selection of multiple rows in selection mode rows 0 Ignored if ALP Area SelType is not 0 ALP Area SelNoCtriSelect bool false 0 Disable row selection when control click occurs on unselected row ALP Area SelNoDeselect bool false 0 Disable row selection deselection of other rows when click occurs in already selected row and no modifier keys are held down ALP Area SelNoHighlight bool false 0 Disable row highlight of selected rows in selection mode rows 0 Ignored if ALP Area SelType is not 0 ALP Area SelNoAutoSelect bool false 0 If set to true a click on a popup in an unselected row does not select the row Automatically set to true when compatibility mode is turned on ALP Area SelNone bool false 0 Allow no selection in selection mode rows 0 Ignored if ALP Area SelType is not 0 ALP Area SelPreserve bool false 0 Preserve row selection when sorting 4D s selection of rows if set to true and area is in field mode the row selection will be restored after s
41. the cell the user clicked in or the row that was dragged or the column header that was clicked Their syntax looks like this AL GetAreaLongProperty area L Property T gt result L AreaRef is the AreaList Pro area that the function refers to always a longint Property is a constant representing the property you want to get information about result is the result of the function a longint in this example For example you can use AL GetAreaLongProperty with the ALP Area SelRow option to find out which row the user selected C LONGINT row row zAL GetAreaLongProperty area ALP Area SelRow Copying or dragging from an AreaList Pro Area AreaList Pro supports Edit gt Copy or Dragging from a selection of row or cells to any destination including to an external document such as an Excel type spreadsheet Note make sure that ALP Area DragRowMultiple is set to true when dragging a multiple row selection Properties The contents will be copied as delimited text the field column default separator being TAB and the record row default separator being CR LF These settings can be modified using the ALP Area CopyFieldSep and ALP Area CopyRecordSep properties A field wrapper character can also be used which will be placed both before and after each field set with ALP Area CopyFieldWrapper default is none In addition the ALP Area CopyHiddenCols property default to O false is used to de
42. 1 7 top 2 7 center 3 bottom ALP Column Wrap v v v bool false 0 Wrap long lines in list Row Properties Use these properties with commands in the Rows theme Constant Get Set Per Type Default Min Max Comments ALP Row BaseLineShift vivi iv real 100 256 Baseline shift ALP_Row_ClearStyle v n a Clear the style of this row The area redraws automatically ALP Row FontName viv wv text Font name ALP Row HorAlign v wv x longint 0 5 Horizontal alignment 0 default 1 7 left 2 7 center 3 right 4 justify 5 full justify ALP Row HorizontalScale viviv real 0 1 100 Horizontal scale ALP Row Rotation viviv real 360 360 Rotation of text ALP Row Size viv wv real 4 128 Font size ALP_Row_StyleB vv v bool Font style bold ALP_Row_StyleF vv wv long int 0 7 Font style using 4D style constants e g Bold Italic etc Text Styling e Programming The AreaList Pro User Interface Constant Get Set Per Type Default Min Max Comments ALP Row Stylel viv wv bool Font style italic ALP Row StyleU viv iv bool Font style underlined ALP_Row_TextColor Yiv jv color Font color ALP_Row_VertAlign v wv v long int 0 3 Vertical alignment 0 default 1 top 2 7 center 3 bottom ALP Row Wrap viviv bool Wrap long lines Cell Properties Use these properties with commands in the Cells theme Constant Get Set Per Type
43. 250 707 28 936 30 953 24 692 24 109 24 352 Note that if the number format is too small to hold the number 4D and AreaList Pro will display it as lt lt lt lt lt lt lt lt lt lt lt lt lt lt lt lt lt lt which will interfere with the opening tag character lt if the column is attributed multi styled In the example above using HH as a number format this will be the case for all numbers exceeding 99 999 Make sure that the format used will not cause the number to overflow lest unexpected results might ensue Property Values Constants and XML Names Property Constant Property Value selector Property XML Name ALP Area AllowSortEditor soed allowEditor ALP_Area_AlpEvent evtL ALP Area AltRowColor altc altRowColor ALP Area AltRowOptions alto altRowColorParams ALP Area ArrowsForHierarchy arkh ALP Area AutoResizeColumn SNAP autoResizeColumn ALP Area AutoSnapLastColumn snap autoSnapLastCol ALP Area BottomRow arbt ALP Area CacheSize cacs cacheSize ALP Area CalcAllRows vwAL ALP Area CalendarColors caco ALP Area CalendarLook calo ALP Area CallbackMethDeselect apde deselectCallback ALP Area CallbackMethEntryEnd apef endCallback ALP Area CallbackMethEntryStart apes startCallBack ALP Area CallbackMethMenu apme menuCallback ALP_Area_CallbackMethOnEvent apcb eventCallBack ALP_Area_CallbackM
44. 4D s process ID of the destination area ALP Area DragDstRow longint Destination area row ALP Area DragDstRowCodes text Drag destination row codes ALP Area DragProcessID longint 4D s process ID of the source area ALP Area DragSrcArea longint The dragged AreaList Pro area ALP Area DragSrcCell longint Source area cell ALP Area DragSrcCellCodes text Drag source cell codes ALP Area DragSrcCol longint The source area column ALP Area DragSrcColCodes text Drag source column codes ALP Area DragSrcRow longint Source area row ALP Area DragSrcRowCodes text Drag source row codes Example Suppose we have a form on which there are two AreaList Pro areas ProductList contains a list of products and Selectedltems contains a list of products that have been selected from the list We want to allow users to add products to Selectedltems by dragging rows from ProductList We ve set up the two areas as described above under Setting the object properties Three arrays have been initialised and added to Selectedltems atProductPurch aiQty and arTotal Drag and Drop Q us Advanced Topics When a product is dropped onto Selectedltems we need to add a row to each of the Selectedltems arrays and fill them with the appropriate data if the product hasn t already been selected or update the arrays if it has already been selected In the object method for Selectedltems we call a method called AddProductToOrder Case of Form event On Drop AddProductToOrder
45. AL SetAreaLongProperty area ALP_Area_UseTimeControls 1 Note this property applies to the entire area not individual columns Popup Time Control When you specify a popup time control a little alarm clock icon appears in each cell in the column 0 n Click on the clock to open the popup time selector Choose the hour from the first two columns and the minutes from the third column You can also enter the time manually To specify a popup time control use the by popup option for the ALP Column Enterable property for example to specify a popup time control for column 7 AL SetColumnLongProperty area 7 ALP Column Enterable 2 The entry is ended by a double click on a hour or minute button by the Esc key or a click on another object cancels the entry or by any of the keys used to trigger leaving a cell The Del key will set the time to the Null value 00 00 00 and dismiss the popup Data Entry Controls Q a Advanced Topics Popup Menus To create a popup menu and associate it with a column in your AreaList Pro area you create an array containing the required values and then associate that array with the appropriate column For example lets say we want to provide four options to choose from in a Types column First create the array of values ARRAY TEXT atTypes 4 atTypes 1 Chips atTypes 2 Chocolate atTypes 3 Nuts atTypes 4 Toffees Next tell AreaList Pro tha
46. ALP Area EntryFirstClickMode property determines how the first click is handled upon beginning entry when using numeric date time or text entry See Click action Editing 4D fields Field mode areas allow direct editing of field values The record will be saved automatically by AreaList Pro upon exiting the cell if not disallowed by the entry finished callback method Editing alpha fields with limited length in 4D field properties includes a control that the entered value length does not exceed the defined field length Extra characters won t be accepted The maximum field length value can be retrieved through the ALP Column Length property Entering Data a Programming The AreaList Pro User Interface Cell change properties Entry into an enterable cell can be caused by using the ALP_Area_EntrySkip property from the previous enterable cell Different properties can be used to move the cursor to a specific cell Either AL_SetAreaTextProperty area ALP_Area_EntryGotoCell String row String cell or AL_SetAreaLongProperty area ALP_Area_EntryGotoRow row AL_SetAreaLongProperty area ALP_Area_EntryGotoColumn column or AL_SetAreaLongProperty area ALP_Area_EntryGotoRow row AL SetAreaLongProperty area ALP_Area_EntryGotoGridCell cell which is the same as using the first variant with ALP Area EntryGotoCell Note ALP Area EntryGotoCell and ALP Area EntryGoto
47. ALP Area MinHdrHeight AL SetMiscColor AL SetMiscOpts AL SetAreaLongProperty ALP Area MiscColor1 and ALP Area MiscColor2 are included for compatibilty but they are ignored because they refer to properties that in previous versions customised the look of the area In Version 9 only the native look for each platform is supported so these options are irrelevant ALP Area MiscColor3 ALP Area MiscColor4 Using any color format see Working with Colors areaAboveVertScroll not implemented header is drawn areaBelowVertScroll not implemented scrollbar is drawn Used as background color gt this color is used to erase the area areaLeftOfHorzScroll light gray gt area left from horizontal scrollbar under locked columns areaRightOfHorzScroll light gray gt rectangle right to horizontal scrollbar and below vertical scrollbar AL SetAreaLongProperty ALP Area HideHeaders ALP Area ShowFocus ALP Area ShowFooters postKey and useModernLook are unsupported AL SetMiscRGBColor AL SetAreaLongProperty ALP Area MiscColor1 ALP Area MiscColor2 ALP Area MiscColor3 ALP Area MiscColor4 Using any color format see Working with Colors AL SetPictEscape Unsupported AL SetRGBDividers AL SetAreaLongProperty ALP Area ShowColbDividers ALP Area ColDivColor ALP Area ShowRowbDividers ALP Area RowDivColor Using any color format see Working with Colors AL Se
48. Array Y gt result L Parameter Type Description gt AreaRef longint Reference of AreaList Pro object on layout gt Property text The property to set gt Array array An array containing the values to pass to the function Depending on the property this can be an array of row or column numbers or a two dimensional array of cell coordinates result longint Set a Property for an area You can use either a one or two dimensional array Example Add a number of arrays to an AreaList Pro area ARRAY POINTER aPtr 4 aPtr 1 gt product product_type aPtr 2 gt product product_name aPtr 3 gt product retail_price aPtr 4 gt product description Serr AL_SetObjects area ALP_Object_Columns aPtr DELETE all columns and then add specified pointers effectively replacing all columns Objects Q Command Reference AL SetObjects2 AreaRef L Property T Array1 Y Array2 Y gt result L Parameter Type Description gt AreaRef longint Reference of AreaList Pro object on layout Property text The property to set gt Array array An array containing the values to pass to the function Depending on the property this can be an array of row or column numbers or a two dimensional array of cell coordinates gt Array2 array An array containing the values to pass to the function Depending on the property this can be an array of row or column numbers result l
49. BRI Beh Rae Rue 109 Midden Columns 2 35 2 5 dated ate S Xue BEE AL RN dare aire Sod Rei uini D id a e red Ed 109 Number of hidden COMMONS uoo bd oem edo O ented Bag ad V tare wee Seat 109 Table of Contents Q 6 Contents Gid Cleaning 322 3 5 it ii t Sagas choke ia e a bee dias 109 Calculated col rfins x e Siw chitin a Roe bite fide at bt Mae ied actis 110 Setting a Calculated Column field MOde oooooccoccoooo ee 110 Setting a Calculated Column array mode 1 1 0 ene 110 Setting the Callback Method vce ec ang wa eae ee ee Ron ae n doce eon dc ok edid sou E LUE ee 111 Array mode example 112 Working with Colors 113 opecltying COMO Si eei Rack ecc ila Sr fue x ce NAHE See s Has alae Sena Un Lade e e ar d 113 Color passed in longint valties iere Rd ee nag a eee EGRE AR epe xA 115 Color Optlons x 2 Se E EX E EUR A ai Hoe wc bs Ba EUR e RR aC i i ee Qo A 115 Areapropertles vases edu ra ee CASS WARS SES pe wa eae RERUMS ue RU NO Ben cR 115 Column Properties llli nr 116 ROW Properties ista D tenio DRA hed Mis aii sh bh A Set dabas 116 Cell Properties uu ina Sh oreo islet bi Dh Sh et ees 117 Converting RGB valueS 24 2 42400 pP ERG epe errada ad deed 117 Row Coloring OptlOns 2325 heb etene diua det d Red deeded db et ERE PROPER 118 Combining bits in the Row Options property ss scciredicssricidreed I 118 Combining Alt Row color with Background color llle ee 118 Coloring Cell Sectloris
50. C POINTER 4 pointer to temporary 4D array field mode or sized 4D array array mode C LONGINT 5 first record for which to calculate cell C LONGINT 6 number of cells to calculate in column Callback Parameters Q Using the Callback Methods Properties to use with Callbacks The following Callback properties can be used with the Area and Column command themes Area properties Use these properties with commands in the Area theme Constant ALP_Area_CallbackMethEntryEnd Get Set Per Type text Default Min Max Comments End entry callback function The return value can be used for validation the default value is False ALP_Area_CallbackMethEntryStart text Start entry callback method area action recLoaded ALP_Area_CallbackMethPopup text Popup entry callback method area row column dataType gt bool Handled For popup handling used when a popup is clicked but no popup array menu is defined The callback is called as function return False to invoke internal implementation otherwise use AL SetAreaXXXProperty 1 ALP Area EntryValue value to actually set the new value and return True ALP Area AlpEvent long int Last AreaList Pro event see AreaList Pro Event codes May be used with AreaRef set to zero last event in any area ALP Area CallbackMethDeselect ALP Area CallbackMethMenu ALP Area CallbackMethOnEvent bs text te
51. Cities table ORDER BY Cities Cities State gt Cities City gt copy field values into arrays SELECTION TO ARRAY Cities City aCity Cities State aState Cities CityState aCityState INSERT IN ARRAY enterprise 1 Size of array aState INSERT IN ARRAY numRow 1 Size of array aState For i 1 Size of array aState numRow i i enterprise i Random 2100 i 100 End for Display arrays in the AreaList Pro area error AL_AddColumn Self gt gt aState error AL_AddColumn Self gt gt aState error AL_AddColumn Self gt gt aState error AL_AddColumn Self gt gt aState Serror AL_AddColumn Self gt gt aState Specify the values for the column headers and footers AL_SetColumnTextProperty Self gt 1 ALP_Column_HeaderText State AL_SetColumnTextProperty Self gt 2 ALP_Column_HeaderText City AL_SetColumnTextProperty Self gt 3 ALP_Column_HeaderText Enterprise AL SetColumnTextProperty Self gt 4 ALP_Column_HeaderText numbering AL SetColumnTextProperty Self 2 5 ALP Column HeaderText Cities states AL SetColumnTextProperty Self 2 1 ALP Column FooterText States AL SetColumnTextProperty Self 2 2 ALP Column FooterText Cities AL SetColumnTextProperty Self 2 3 ALP Column FooterText Enterprise AL SetColumnTextProperty Self 2 4 ALP Column FooterText ID AL SetColumnTextProperty Self 2 5 ALP Column FooterText City amp state c n Example 13 G
52. D 4 A click on A will report 3 as the clicked row If the data is sorted on the first column the user will see A 3 B 2 Cc 1 D 4 A click on A will report 3 as the clicked row and because the arrays are untouched the third element is A You can request the internal sort order as follows ARRAY LONGINT alndex 0 err AL_GetObjects area ALP_Area_Sort alndex You will get 3 2 1 4 in alndex In other words if internal sorting is on arrays are not sorted the row order is sorted internally by AreaList Pro If internal sorting is off the arrays are all sorted Why might you want to turn internal sorting on Because it will give improved performance For example let s suppose you have 40 parallel arrays and the user is presented with just 3 of those arrays But because it can be sorted you have to add the rest of the arrays as invisible and AreaList Pro has to sort physically move all data in all 40 arrays You don t have to add all the arrays you can add just one index array and access all the other arrays indirectly When you use this feature you only have to add the 3 displayed arrays the order of the arrays will not change AreaList Pro will sort only the internal index array Note when a hierarchical list is shown internal sorting is always turned on when a sort is performed Sorting e Programming The AreaList Pro User Interface Calculated columns Calculated col
53. Default Min Max Comments ALP Cell BaseLineShift Yv iv real 100 256 Baseline shift ALP_Cell_ClearStyle v n a Clear the style of this cell The area redraws automatically ALP Cell Flags v v x long int Bit mask of set features Properties not set are inherited from the row settings then the column settings The following flags indicate what style options have been set at the cell level 2 font name 4 font size 8 font style 16 text color 32 background color 64 horizontal alignment 128 vertical alignment 256 wrap 512 rotation 1024 baseline shift 2048 horizontal scale 4096 line spacing Maintained by AreaList Pro and should not normally be changed You can clear the flag if you want to force AreaList Pro to abandon cell specific settings ALP_Cell_FontName viviwv text Font name ALP Cell HorAlign v v Vv long int 0 5 Horizontal alignment 0 default 1 left 2 center 3 right 4 justify 5 full justify ALP_Cell_HorizontalScale viviv real 0 1 100 Horizontal scale ALP_Cell_Rotation viv iv real 360 360 Rotation of text ALP_Cell_Size viv iv real 4 128 Font size ALP_Cell_StyleB Yiv ivy bool Font style bold ALP_Cell_StyleF v wv v longint 0 7 Fontstyle using 4D style constants e g Bold Italic etc Text Styling e Programming The AreaList Pro User Interface Constant Get Set Per Type Default Min
54. Description gt line number integer line number to select highlight SetListLine sets the line to be highlighted The list will automatically scroll to display the selected line at the top of the list if possible SetListSelect array Parameter Type Description gt array integer array contains element numbers to select highlight SetListSelect sets the lines to be highlighted The list will be automatically scrolled to display the first selected line at the top of the list if possible If this command is not used then DisplayList will display the arrays with the first line selected SetListSelect can only be used in multiline mode If DisplayList is in single line mode you must use SetListLine DisplayList Commands Q DisplayList GetListButton gt ButtonHit Parameter Type Description gt ButtonHit integer integer button that the user selected GetListButton is used to get the button that the user selected ButtonHit The possible values are Value Button Selected 1 OKButton CancelButton Button3 Button4 Button5 Button6 oor AJ N GetListWidths column1 columnN Parameter Type Description gt column1 N integer width for each column GetListWidths is used to get the widths of the columns after DisplayList has been displayed to allow any user changes to the column widths to be saved for future use Variables must be used as the passed paramet
55. Ee 267 Reveal Propertie Sy ut Seu Ee or ini Bae DiS aly A pter n ie ee Eon AE Rt 267 Calculating the scrollbar and area width llll e 268 Horizontal scrollbar modes i 55864 cewek mmm ee ko d ken emo ss o i n e koe 268 Scrolling to the top is xb Ree oe mE ere Exerc dra ec ka OE Re ee ceased s du e y we Rn s 269 Fixed row height and scroll POSITION 13 2 nasce Bee ee d xx EORR OR Roe RD OR nie Rn 269 Drag and DiOp DL 270 Row dragging in cell selection mode 1 1 llle 270 Dragging a row from another area ll 270 Drag and drop properties emitan a Rae Purse da nica 270 Drag and drop and compatibility mode sssri merar samdir adaa PE IIR 271 Reordering after dragging a row within one area 1 1 eee 271 GAS se ees deed rerea epu eee tee ede be MES oe Peewee see baw doa qoe ee ede eee 272 IJefiniig asoritds s oec eee haps ese ae eye eee ee Se Nees ae ae ean Sena poms E ERO RUE eo 272 Number of columns rowsS in grid auum ease ear ee ae ae no em oed Oe ee SERRE gon A 272 LOSUONG ETT 273 Gri B remrzui eee MEMO 273 elec cT mc 274 Popup MENUS 22 xu Lv De O Vrae Route grade tres apathy Patek 2 274 Editirienu callback idum per ed ERU Mer oS 274 Event Callback Logic 2 kayen RRE Rp eger ge aed e 275 Properties ici Ro plebe A bebe toe A ab 276 Properties setters tVDeS soccer va eee SD Raten be QR SUR RR e ea Kat cce apo doc de E Be d 276 Using the Redraw property xs A eek RU Re ep eee ae D RR EOD ee eee 276
56. Fields gis onk iia uses Seles ce tale EET 283 Hierarchy amays si ees sere br e Mat a RR ceu bed eee wel Sed Swe ees 283 Compatibility Mode cf ose pee cd alot eee ha a Oa EE Sce REE ES EA ak a eae a ge eee A ERS 284 Advanced Properties pve sia seduce ke na a Xp OR IU QURE E EE ee EA Ce a ee Ee eee SCR E 285 Detecting a modified value in popup entry 1 llis I 285 Index 286 Copyrights and Trademarks 296 Table of Contents About AreaList Pro 12 About AreaList Pro What is AreaList Pro and what can I do with it AreaList Pro is a plugin for 4 Dimension which makes it possible for you to create dynamic feature rich scrolling list areas on 4D forms You have a great deal of control over these areas you can control many different options such as m Display either fields or arrays m The appearance of the list properties such as row coloring text styling row and column strokes m What a user can or cannot do for example you may want to allow them to re order the rows in one list but not in another m Dragging and Dropping specify where list items can be dragged and dropped to and from e g from one area to another or within a list or from an external file m Display hierarchical lists and grids m Specify whether data can or cannot be edited m and lots more Technical Details Compatibility Information AreaList Pro version 9 9 is compatible with 4th Dimension v11 v12 v13 v14 and above for both
57. First Name and Last Name columns If a user clicks on the Last Name column header you want to sort the area by Last name and First Name We place the following code in the AreaList Pro object s method event AL_GetAreaLongProperty Self gt ALP_Area_AlpEvent Case of Sevent AL Sort button event user clicked a column header selected AL_GetAreaLongProperty Self gt ALP_Area_SortColumn which column Case of Sselected 2 last name sort 2 1 sort on Last name First name AL_SetAreaTextProperty Self gt ALP_Area_SortList sort Else sort String selected AL_SetAreaTextProperty Self gt ALP_Area_SortList sort sort on the user s column End case End case Note ALP_Area_Sort_Column is always the column number does not contain the sort direction Use ALP_Area_Sort_List if you want to know the direction Setting the sort indicator and sorted column list You can indicate yourself the sorted column s by using either ALP_Area_SortListNS or ALP_Object_SortListNS asking AreaList Pro to set the sorted columns without doing the actual sort AL SetAreaTextProperty Sarea ALP Area SortListNS 1 2 AL SetObjects Sarea ALP Object SortListNS S sortArray Note NS in the constant name stands for No Sort Bypassing the Sort editor Using 4D code You may want to sort the arrays on multiple criteria via code and not using AreaList Pro sort features You can sort the arrays manually an
58. HA Re eco ae M RUE urs eee 99 Popup menu Enti pitan od dedu tote bet Sec ar iln Adi deed ash ated Rs 99 Field Mode parameter 25 2 s Mist ebay a be E 99 Executing a Callback Upon Leaving a Cell o o occcococooo IR 99 Examples io2e2dzw x c e dp pP P denne RHUREPHPRU eM E Epp E RePRPRPIS P CS ERR TObP 101 Examples proa ga ex op rego Mielec ee seme ae dS In etu Ee ee he cu DE ia 101 Example 2 Display a Tooltip 22 2x tree sed eto osx eae ee ee a bold G 102 Example 3 Using a Popup Callback to create dynamic popups iile 102 Columns 105 Compatibility mode iue ger Rec ERG PD RERO ERU ERR AO A XU EMO EUR GP E 105 Gompatible mode oh sis raa x kir eee hue REE E mu Rl KR hen E Rex RD Re ind 105 Compatible mode off ese ue er a uen EK Rae UR Eu BON oe ew recie FURORE Bed 105 Column numbers in compatible mode Off oooocococo eee 106 Modifying column display coo dos dae kote 106 Using Object Property commands ii casa a feet eae 106 Procedurally moving columns 20046252 t danat eek ee e iow E one ne 107 Column Widths 22i ree dat oa Ra x mp UI eL uen Se X ed gh ei ed waned Rab eR e s 107 POPE P ee ae A oe 107 Saving originalSettings maine Boe trc a eee ROS ae Ae sor eS 108 Column wider than the visible area llle RII 108 DisplayiNGACOMMAN WINS sa aint pate seo bie patte eeu eins e gasto Co Gel e pp ee di ues 108 Hiding columns essem de he es e bre t rheR EIER AER
59. Horizontal indent for the header rows in points ALP Area HdrlndentV real 64 Vertical indent for the header rows in points AreaList Pro Area Properties 202 Properties by Theme Constant Get Set Per Type Default MinMax Comments AreaList Pro Area Display Properties ALP_Area_HeaderMode v v v long int 0 0 2 0 native headers 1 plain color rectangles 2 sunken raised color rectangles When both ALP Area HeaderMode and ALP_Area_ ShowSortlndicator properties are not zero the v8 sort order button is displayed above the vertical scrollbar ALP Area HideHeaders v v v bool false 0 Hide headers ALP Area Hierlndent vv v real 16 O 64 Indent increment for every hierarchy level for use with hierarchical lists ALP Area LimitRows viv long int 1 2 1 default 7 display all rows 21 limit the number of rows to display shrink selection Reset to 2 when a column is added or removed ALP Area MinFtrHeight vv v real 0 0 256 Minimum allowable height for the footer row in points ALP Area MinHdrHeight v v Vv real 0 0 256 Minimum allowable height for the header row in points ALP Area MinRowHeight vv v real 0 0 256 Minimum row height in points ALP Area MiscColor1 v v e color HFFEEEEEE Area color above the vertical scrollbar OBSOLETE this area is not customizable in AreaList Pro v9 the header is draw
60. InsertAt gt The column can be either a field in which case you pass a pointer to the field in the DataPointer parameter or an array in which case you pass a pointer to the array in the DataPointer parameter In addition to passing one dimensional arrays you can also pass the first element of a two dimensional array In this case the first dimension relates to columns and the second dimension relates to rows see the example below Example 1 This example adds three columns to an AreaList Pro area referene One or more examples showing err AL_AddColumn area gt product product_code 0 how to use the command err AL_AddColumn area gt product product_name 0 err AL_AddColumn area gt product product_type 0 Using the Command Reference Q Command Reference Name of the command This is what tells AreaList Pro what you want to do the command name must always be entered exactly as shown Parameters Every command requires at least one parameter Most require the first parameter to be the area reference this is the Variable Name that you assigned to the AreaList Pro area that you want the command to affect e Property List 4 Plugin Area product list e Hoe 4 2 tk v 3 Objects Type AreaListPro Object Name product_list Variable Name products y E Plug in Result Functions return a result after they have been called Unless otherwise sp
61. Load from Clipboard Save XML to Clipboard Clear amp Save Cancel OK General Options Q The Advanced Properties Dialog Enterability 128 On the Enterability tab you can specify the entry and selection mode various keyboard entry options and callbacks to use when entering or leaving a cell AreaList Pro Advanced Properties gt AreaList Pro Area 9 7mc4 Plugin Masters 2013 2014 Area Name eDemoALP Column Setup General Options 111174 Advanced Dragging Preview Reported event Keyboard Entry O None _ Allow user to enter Return character _ Display seconds during entry of times _ Single click O Single click __ Display ig entry Double click Single and Double click CO Move selected cols O Command Double click E Single or Double click E key Jonore s _ Shift Double click C Option Double click Control Double click Single click hold _ Ignore soft deselect Callbacks to 4D Methods Method fr Onell O Method for On Cell Exit Save XML to Clipboard Save 4D code to Clipboard Load from Clipboard Clear amp Save Cancel OK Callbacks You can specify a callback method that will execute when an enterable cell is entered or exited Enterability Advanced o The Advanced Properties Dialog The Advance
62. MacOS and Windows including 32 bit and 64 bit servers It requires MacOS 10 5 or higher and Windows XP SP2 or better You do not have to update all your AreaList Pro areas and code immediately Previous versions commands are still here and will work with AreaList Pro version 9 with little or no change in your code See the v8 5 manual for legacy commands documentation as well as the Upgrading from Previous versions section below Technical Support Technical support for AreaList Pro is provided electronically via e mail or our online support reporting system You are encouraged to use the online web forums Items that are new or modified in AreaList Pro version 9 8 are displayed in green characters Items that are new or modified in AreaList Pro version 9 9 are displayed in pink magenta characters What is AreaList Pro and what can do with it Technical Details 13 Installation Installation Installing the plugin AreaList Pro is provided as a bundle for both Windows and MacOS there is just one version for both platforms To install it simply copy the file ALP bundle into your Plugins folder Plugins folders can be located in one of two locations m Inthe 4D application folder 4th Dimension or 4D Server When plugins are installed in this location they will be available to every database that is opened with that application m Nextto the database structure file for your project In this case the plugin will only
63. Min Max Comments Cell General Properties ALP Cell BottomBorderColor Y Y Y color Bottom border color ALP Cell BottomBorderOffset Y Y Y long int Bottom border offset in points ALP Cell BottomBorderWidth Y Y Y long int Bottom border width in points ALP Cell Clear v n a Clear all properties of this cell The area redraws automatically ALP Cell Enterable v v V long int 1 1 5 Enterability 1 use column default not set 0 not enterable 1 by keyboard 2 by popup 3 by keyboard amp popup 4 by popup ignoring menu meta 5 by keyboard amp popup ignoring menu meta ALP Cell FillColor v v V color Color used to fill the border rectangle ALP Cell FormattedValue v text Formatted cell value ALP Cell Invisible viviwv bool false If set to true 1 cell content is made invisible Invisible cells draw nothing except borders and disclosure triangle are implicitly not enterable and are not copied when using Copy or Drag ALP Cell Kind v v text Object kind CellOptions ALP Cell LeftBorderColor v v Vv color Left border color ALP Cell LeftBorderOffset v v V longint Left border offset ALP Cell LeftBorderWidth v v wo longint Left border width ALP_Cell_LeftlconFlags v v V long int Offset width Horizontal position Vertical position Scaling Mask See the section on Icon Flags for more ALP Cell LeftlconID v v Vv longint Left icon ID see AL Setlcon ALP Cell Reveal v n a Reveal make visible
64. Pro User Interface Click hold AreaList Pro also provides the ability to initiate data entry by clicking and holding the mouse button down in the cell where you wish to perform data entry Using this interface users are still able to select rows and or enter cells via single click and double click If you do not wish to initiate data entry using this method set the ALP Area ClickDelay property to 0 AL SetAreaLongProperty area ALP Area ClickDelay 0 Otherwise this property will set the delay in ticks i e 1 60 seconds to hold the click before editing begins Defaut is 30 half a second Setting this property to 2 will use the system s double click time Setting the area reference to 0 will set the default value for all newly created areas Note if the user moves the mouse during the click and hold action AreaList Pro may interpret that as a drag action when AreaList Pro dragging actions are active Summary The table below summarizes all possible values for ALP Area EntryClick and the resulting behaviour for both modes assuming that ALP Area ClickDelay is non zero otherwise click hold will never trigger entry Value Click or double click with optional modifiers Click hold 0 no no 1 single click N A click will instantly trigger editing 2 double click yes 3 command double click yes 4 shift double click yes 5 option double click yes 6 control double click yes 7 no yes Note the
65. Properties dialog nothing will be displayed in the AreaList Pro area on the form You can modify the area by making calls to commands during any other phase or from objects such as buttons and menus on the form or in menu bars The commands can be used completely independently of the Advanced Properties dialog or they can work in conjunction with the options you set therein For example you might select the fields to display in the Advanced Properties dialog and then use some commands to specify different coloring for each row according to some criteria that you specify The maximum number of columns that can be added to an area is 32767 subject to memory limitations Anatomy of an AreaList Pro Command Each command you write must adhere to a specific syntax in order for it to be correctly understood by AreaList Pro Some commands the getters and the pointer variants return a result code these are functions See the Command Reference section for the requirements for each command You can check the result code to find out if a function executed OK or if there was a problem and if so get some information about what that problem was Every command consists of the command name followed by two or more parameters The first parameter is always a reference to the AreaList Pro area For example the AL AddColumn function adds a field or array column to an area err AL_AddColumn area gt table fieldname 1 This function adds a column
66. See the v8 5 manual for legacy commands documentation AreaList Pro version 9 will automatically run in v8 compatibility mode and ALP Area Compatibility is set to 1 when any of the following conditions are met m the area is initialized from the old Advanced Properties m the area is initialized from XML Advanced Properties or from code m you set the ALP Area Compatibility property of AL SetAreaLongProperty to 1 m one of the following commands is used AL SetArraysNam AL InsArraysNam AL SetFields AL InsertFields AL SetRowOpts AL SetColOpts The developer can switch compatibility mode on or off by setting ALP Area Compatibility 1 for on O for off Dc RR F Upgrading from Previous versions of AreaList Pro e Getting Started with AreaList Pro Compatibility Mode Behaviour When running in compatibility mode the following behaviours are different m the ALProEvt variable is created and updated m visibility of columns is modified according to the number of hidden columns m the area is made visible on update event m wrap mode in styles is set depending on the number of row lines m the area is dragable even if it is not set as dragable in the form properties m when a row or column is drag and dropped in the same area it is moved on drag end not on drop m headers on Windows 7 are drawn using pictures eliminates native white Win7 headers m horizontal scrolling is set to
67. Self End case AddProductToOrder project method C LONGINT DropArea SourceRow ProductRow DropArea 1 gt SourceRow AL_GetAreaLongProperty SDropArea ALP_Area_DragSrcRow GOTO SELECTED RECORD product SourceRow ProductRow Find in array atProductPurch product product_name If SProductRow lt 1 APPEND TO ARRAY atProductPurch product product name APPEND TO ARRAY aiQty 1 APPEND TO ARRAY arTotal product retail price Else aiQty ProductRow aiQty ProductRow 1 arTotal ProductRow aiQty ProductRow product retail_price End if AL SetAreaLongProperty DropArea ALP Area ClearCache 2 update the arrays Accepting a Drag from a Non AreaList Pro Object As well as dragging between two AreaList Pro areas you can also drag non AreaList Pro objects to an AreaList Pro area for example some text from another 4D object or a text file Callbacks When dragging to from non AreaList Pro objects you must use a callback method to catch the user action Callback methods are explained in detail elsewhere The processing of the drop event can be handled either in the callback method or in the On Drop event on the AreaList Pro area method Generally it is best to handle the processing in the On Drop form event The ALP_Area_AlpEvent property of AL_GetAreaLongProperty is used to find out which event triggered the callback in this case the AL Object drop event value tells us that something was dropped onto the
68. SortTitle property in the AreaList Pro Area theme to set the sort editor title and ALP Area SortPrompt to set the prompt The other options are not supported AL SetSortOpts AL SetAreaLongProperty ALP Area SortDuring ALP Area UserSort ALP Area AllowSortEditor AL SetAreaTextProperty ALP Area SortPrompt AL SetSpellCheck Not supported AL SetStyle AL SetColumnTextProperty ALP Column FontName AL SetColumnRealProperty ALP Column Size AL SetColumnLongProperty ALP Column StyleF AL SetSubSelect Obsolete AL SetWidths AL SetColumnRealProperty ALP Column Width ALP Column WidthUser AL SetWinLimits Obsolete AL ShowSortEd AL SetAreaLongProperty ALP Area ShowSortEditor AL SkipCell AL SetAreaLongProperty ALP Area EntrySkip AL UpdateArrays 1 AL SetAreaLongProperty ALP Area ClearCache with value 2 2 AL SetAreaLongProperty ALP Area UpdateData with value 0 AL UpdateFields 1 AL SetAreaLongProperty ALP Area ClearCache with value 2 2 AL SetAreaLongProperty ALP Area UpdateData with value 0 Mapping Old Commands to the AreaList Pro v9 API Q DisplayList DisplayList About DisplayList DisplayList is a kind of mini AreaList Pro without any need to use a layout and a plug in area It s an easy to use tool to implement scrolling lists for user interaction It is now fully included with AreaLi
69. a text file Alternately you can place a plain text file into your 4D Licenses folder To open this folder from 4D use the 4D Menu Help gt Update licenses then click the Licenses Folder button PP Licenses Folder Done The text file must be called ALP9 license4Dplugin and be a plain text type file Just paste all your licenses for AreaList Pro v9 x one per line e g MyLicense1 MyLicense2 MyLicense3 Any license type can be included into this document except unlimited single user OEM and Partner licenses Note the Demo mode dialog Register button actually does this create the text file and include the license key or add the license key to the existing document if any Registering your AreaList Pro License Installation 20 Using AL Register 1 Open the On Startup database method 2 Call the AL Register function with your registration key for example result zAL Register YourRegistrationKey result 0 means registration was successful If you have several licenses for different 4D setups you can call AL Register multiple times in a row without further testing See the Example with multiple calls Combining methods When such a file exists in the Licenses folder AreaList Pro will check for valid licenses from this document as a first action before anything else including checking any AL Register command If a valid license is included into the ALP9 license4Dplugin document any ca
70. accept drags from non AreaList Pro objects such as other 4D objects in the same process or a different one and external files For more information see the Drag and Drop topic Object Properties For an AreaList Pro area that you want to drag or drop to from select the appropriate properties in the object s Property List window note that these properties are ignored in compatibility mode y amp Action Method Draggable Automatic Drag Droppable Automatic Drop MI Automatic Scrolling When the user drags something to an AreaList Pro area the area s contents will start to scroll if necessary when the object gets near the AreaList Pro border In AreaList Pro 8 5 this scrolling area was outside the AreaList Pro area in AreaList Pro version 9 it is inside AreaList Pro area The default frame size if 30 points you can change this with the ALP Area DragScroll property of ALP_SetAreaLongProperty Events AL GetLastEvent was added in Areal ist Pro version 8 5 it returns the value of ALPEvt for a given area or for all areas In version 9 this command will only work if you are using AreaList Pro in compatibility mode If you are not using it in compatibility mode and for all future development you should use the ALP Area AlpEvent parameter of AL GetAreaLongProperty to find out what the last event was EE Upgrading from Previous Versions of AreaList Pro e
71. also Entering data in AreaList Pro with DisplayList Edit menu callback How do we setup a callback to trap the Edit menu AL SetAreaTextProperty Sarea ALP Area CallbackMethMenu MyEditMenuFunction Once in the callback method how do we trap for exactly the Copy event when rows are selected and nothing else letting the system handle the rest C_LONGINT 0 1 2 result area event mask If 2 AL Edit Menu Copy Mask amp AL_GetAreaLongProperty 1 ALP_Area_SelType 0 this is a copy operation on selection of row s handle the copy 0 AL Edit Menu Handled Mask End if sss Callbacks Q Appendix Il Troubleshooting and FAQs 275 Event Callback Logic When we moved to AreaList Pro version 8 it was strongly suggested that we change our programming logic to take advantage of the new callback system that was introduced Is this type of centralized management of all callback events no longer recommend and all this code should be put back into the individual AreaList Pro objects You can use what you want both are supported However the two last arguments have been dropped and are no longer supported With version 8 x the AL SetEventCallback command passed 8 parameters to the specified method 1 AreaList Pro Area 2 Event Code 3 Current event from 4D mouse down 1 key down 3 mouse wheel 39 cursor mouse moved 18 4 Last Clicked Column 5 Last Clicked Row 6 Modifier
72. area In order for non AreaList Pro object drag and drop to work the callback method must handle the AL Allow drop event For example C_LONGINT 0 Case of 2 AL Allow drop event 0 1 allow End case Drag and Drop Q Advanced Topics 144 Drag and Drop from an External File Example Let s suppose we want to import some data into a series of arrays by dropping a text file onto an AreaList Pro area We ve saved a spreadsheet that contains information on some new Nuts products as a tab delimited text file Macadamia nuts 50g MAC 001 Nuts Snack sized bag of nuts 2 5 Macadamia nuts 100g MAC 002 Nuts Family sized bag of nuts 4 5 Pecans 50g PEC 001 Nuts Snack sized bag of pecan nuts 3 5 Macadamia nuts 100g PEC 002 Nuts Family sized bag of pecan nuts 5 5 Dry roasted Peanuts 50g PEA 001 Nuts Snack sized bag of salted roasted peanuts 2 5 When this text file is dropped onto a list of products we want to create a new row for each new product and populate the appropriate arrays with the product s details Setting up the Area 1 Create a new AreaList Pro area on your form 2 In the Property List select the Dropable option under the Action topic and the On Drop event 3 Create a callback method AlpEventCallback C_LONGINT 1 0 area 1 Case of 2 AL Allow drop event 0 1 allow End case 4 Assign that callback method to the area Case of Form event On Load AL_SetAreaTe
73. area does not reorder the rows AreaList Pro will automatically reorder the rows i e array elements if all the following conditions are met m drag and drop occurs in the same area m the area is in arrays mode m ALP Area SelType is 0 row selection m ALP Area DragRowOnto is 0 the feedback to the user is insert highlight between rows when using the old API you have to use 0 as the fifth parameter in your call to AL SetDrgOpts m ALP Area DragMultiple or ALP Area SelMultiple is 0 Otherwise your 4D code must process the drag as in the evtDragWithin method from Example 10 FEE Drag and Drop Appendix Il Troubleshooting and FAQs Grids Defining a grid l am calling AL GetObjects area ALP Object Grid columns But when the call runs the columns array is empty and err 0 This is because the grid is not yet defined When no grid is explicitly defined AreaList Pro will create it from all visible columns on demand i e at first update event You can create it simply by filling columns with numbers from 1 to number of columns to be shown m In compatibility mode ALP Area Compatibility number of columns to be shown is determined by the number of columns ALP Area Columns and the number of columns to hide ALP Area CompHideCols m Otherwise it is determined by visible columns i e having ALP Column Visible 1 In compatibility mode visibility of all columns is updated automaticall
74. arrays Initialized from the AreaList Pro Format Defaults group from the ALP xIf file located in the localized subfolder of the Resources folder in the AreaList Pro bundle ALP Area DefFmtlnteger text Default format for Integer arrays Initialized from the AreaList Pro Format Defaults group from the ALP xIf file located in the localized subfolder of the Resources folder in the AreaList Pro bundle AreaList Pro Area Properties Q p Properties by Theme Constant Get Set Per Type Default Min Max Comments AreaList Pro Area Plugin Properties ALP Area DefFmtLong vv text Default format for Long arrays Initialized from the AreaList Pro Format Defaults group from the ALP xIf file located in the localized subfolder of the Resources folder in the AreaList Pro bundle ALP Area DefFmtPicture vv text Default format for Picture arrays Initialized from the AreaList Pro Format Defaults group from the ALP xIf file located in the localized subfolder of the Resources folder in the AreaList Pro bundle ALP Area DefFmtReal vv text Default format for Real arrays Initialized from the AreaList Pro Format Defaults group from the ALP xIf file located in the localized subfolder of the Resources folder in the AreaList Pro bundle ALP Area LastError vv long int Last error in ANY AreaList Pro area ALP Area Path v text Path to the AreaList Pro plugin ALP Area T
75. can use 0 as the Area Reference to accessing the default values for all newly initialized or re initialized areas m AreaRef 0 means access workstation global settings m AreaRef 0 means access this area s settings If you access workstation only properties properties not specific to areas called Plugin properties such as ALP Area TraceOnError or ALP Area Version AreaRef is ignored AreaList Pro Area Properties 197 AreaList Pro Area General Properties Constant Get Set Per Type Default Min Max 198 Properties by Theme Comments ALP_Area_ArrowsForHierarchy AreaList Pro bool Area General false 0 Properti es When hierarchy is displayed left right arrow keys without command key are used to collapse expand nodes not for horizontal scrolling ALP_Area_AutoResizeColumn long int number of columns 0 do nothing 1 ALP_Area_AutoSnapLastColumn otherwise autoresize the column to match the area size if there is enough space left See Column Automatic Resize ALP_Area_AutoSnapLastColumn bool false 0 If set the last visible column will be resized ALP_Column_Width to match the area size if there is enough space left Note this property is the same as ALP_Area_AutoResizeColumn which will be superseded and conversely whichever comes last with the last visible column This property is simply a wrapper to ALP Area Auto
76. checkboxes as in 4D Check box objects accept a third state This third state is an intermediate status which is generally used for display purposes It allows for example indicating that a property is present in a selection of objects but not in each object of the selection 4D Design Reference manual In order for a checkbox to take control of this third state in AreaList Pro you must use a integer or long integer column type values are 0 1 or 2 for the intermediate state and combine two settings with AL SetColumnLongProperty m ALP Column DisplayControl must be set to 0 1 2 or 4 m ALP Column EntryControl is set to 1 Note you can use pictures to display your own checkboxes including three states See Displaying custom checkboxes using pictures from the 4D Picture Library Entering Data a Programming The AreaList Pro User Interface Bullet Password characters You may want to set a text column to a password bullet type display in order to mask the actual characters including while the user enters text in an edited cell as with the old 4D Password font Set the format of a text column to to display bullets instead of the actual values and to use for password type entry as well 49949999 AL SetColumnTextProperty Sarea column ALP Column Format as a string AL SetColumnTextProperty area column ALP Column Format Char 8226 as a decimal value AL
77. column numbers Fixed row height and scroll position Why should the scroll position change when you scroll right to the bottom and don t adjust any rows or change the form height I d have thought under this circumstance it should always be the same value Imagine a set of 10 000 records The initial row height is computed from the column fonts padding and ALP Area MinRowHeight Let s have it at 16 points Multiplied by number of rows it gives us the initial data height in points with small simplification it is the maximum value for the vertical scrollbar AreaList Pro fetches e g 20 rows to be displayed the rows are measured when displayed First row height is 32 two lines the array holding the row height is adjusted the data height and the scrollbar are adjusted accordingly Row 200 height is 64 the height and the scrollbar will be adjusted when the row is made visible this is the time when it is measured Otherwise AreaList Pro would have to fully measure all rows to get correct full data height And this has to be done on every column width change Using variable row height slows down processing don t use it if you don t need it Row cell formatting setting font size on row cell level can also have an impact even though the height is fixed the row height computed from the fonts used by columns default on MacOS is Lucida Grande 13 differs from the row height computed while displaying the rows from the fonts
78. columns ALP Area ScrollColumns 1 m auto selection of an unselected row when clicking a popup icon is disabled ALP Area SelNoAutoSelect 1 What s Changed m Native Look AreaList Pro version 9 does not support themes as previous versions did it uses the workstation s current theme For example to use classic Windows theme you must set it in the Windows system settings Therefore the appearance is always native headers scrollbars highlight color checkboxes and entry widget except when in compatibility mode and Windows 7 headers are from Vista only headers can be drawn the legacy v8 x way using the ALP Area HeaderMode property Note when both ALP Area HeaderMode and ALP Area ShowSortlndicator properties are not zero the v8 sort order button is displayed above the vertical scrollbar On Windows Vista 7 and 8 value 2 to ALP Area ShowSortlndicator draws the sort non native triangle to the right not on top See also Header size and sort indicator in the Troubleshooting FAQ section Upgrading from Previous Versions of AreaList Pro e Getting Started with AreaList Pro New API AreaList Pro version 9 introduces a completely new API which is based on a full list of properties that the developer can get set The previous API is also still available and version 9 is generally compatible with existing version 8 code There are now fewer commands that you use to set and get an area s properties E
79. destination row C LONGINT 5 area reference C_LONGINT Serror i x ARRAY TEXT tmpText_1 0 ARRAY TEXT tmpText_2 0 ARRAY LONGINT aRowsToSelect Size of array 1 gt select dragged rows once moved For i 1 Size of array 2 gt 1 all rows in the area 1 in case drop is below the last row If Si 4 position where to insert the dragged row s For x 1 Size of array 1 gt selected dragged rows APPEND TO ARRAY S tmpText 1 2 2 1 2 9x add city APPEND TO ARRAY S tmpText 2 3 2 1 2 x and state aRowsToSelect x Size of array tmpText 1 this row will be selected End for End if If Si lt Size of array 2 gt amp Find in array 1 gt i 1 current row is not part of the drag selection APPEND TO ARRAY StmpText_1 2 gt i add city APPEND TO ARRAY S tmpText 2 3 2 i and state End if End for COPY ARRAY tmpText_1 2 gt new city array COPY ARRAY tmpText_2 3 gt new state array AL_SetAreaLongProperty 5 ALP_Area_UpdateData 0 update destination area error AL_SetObjects 5 ALP_Object_Selection aRowsToSelect select new rows no need to update text selection is unchanged Example 10 Drag and drop between areas o Tutorial The evtRowsDragged project method both areas after a row s drag and drop between areas C LONGINT 1 source AreaList Pro area C POINTER 2 3 gt source city array gt source state array C POINTER 4 5 gt destina
80. enterability of the cell at coordinates 1 1 Senterable AL_GetCellLongProperty area 1 1 ALP_Cell_Enterable AL GetCellPtrProperty AreaRef L Row L Column L Property T Pointer Z gt result L Parameter Type Description gt AreaRef longint Reference of AreaList Pro object on layout gt Row longint Row number for which to get the property gt Column longint Column number for which to get the property gt Property text The property to get Pointer pointer Pointer to variable to hold the result result longint Get details of a cell s Property using a Pointer The properties that you can get with this command are listed in the AreaList Pro Cell Properties theme Example To find out which font the cell at coordinates 1 4 is currently set in Selectedfont Serror AL_GetCellPtrProperty area 1 4 ALP_Cell_ FontName gt Selectedfont Cells Q Command Reference AL GetCellRealProperty AreaRef L Row L Column L Property T gt result R Parameter Type Description gt AreaRef longint Reference of AreaList Pro object on layout gt Row longint Row number for which to get the property gt Column longint Column number for which to get the property Property text The property to get result real Value of the got property Get details of a cell s real Property The properties that you can get with this command are the ones of type real listed
81. in the Mapping Old Commands to the new API section and a complete description of the new commands in the Command Reference section You can find a description of the new syntax in the Anatomy of an AreaList Pro Command section Controls for Booleans In previous versions of AreaList Pro if you wanted to display checkboxes for Boolean values you had to use a picture Now you can set the display and data entry controls using the ALP Column DisplayControl and ALP Column EntryControl properties of AL SetColumnLongProperty You can also use custom pictures with these properties SSS SSS SSS V p 2 Upgrading from Previous Versions of AreaList Pro e Getting Started with AreaList Pro Drag and Drop In previous versions AreaList Pro used its own drag and drop manager It now uses 4D s drag and drop manager This means that you will need to make a few changes to your drag and drop handling Event Handling If a drag is initiated AreaList Pro receives a drag event But this has nothing to do with the actual drop it could end anywhere e g if the user pressed Esc no drop 4D does not inform AreaList Pro that the drag was not successful When a drop has occurred an On Drop event is fired You should therefore use the ALP Area AlpEvent property of AL GetAreaLongProperty to find out what was dropped Accepting Drops from non AreaList Pro objects AreaList Pro can
82. in the header Example 2 Using a picture from the 4D picture library To display a picture from the 4D Picture Library you simply need to pass the Picture Library ID number AL SetCellLongProperty area 0 3 ALP_Cell_LeftlconID 2072 use picture no 2072 Example 3 Set the header row to a height of 40 points and display an icon in the third column center the icon horizontally and position it at the bottom of the cell C PICTURE pPict QUERY pictures pictures picturename dollar pPict pictures pic Serr zAL Setlcon area 20 pPict AL SetCellLongProperty area 0 3 ALP_Cell_LeftlconID 20 flags AL Icon Flags Horizontal Center AL Icon Flags Vertical Bottom AL SetCellLongProperty area 0 3 ALP_Cell_LeftlconFlags flags Example 4 Set an offset of 5 points from the cell border for column 3 s header AL SetCellLongProperty area 0 3 ALP_Cell_LeftlconFlags 5 Example 5 Display 3 state custom checkboxes from pictures in a long integer column Serr AL_Setlcon area 33 pPictYes set picture for the True value with ID 33 Serr AL_Setlcon area 34 pPictNo set picture for the False value with ID 34 err AL_Setlcon area 35 pPictMaybe set picture for the Mixed value with ID 35 AL SetColumnLongProperty area 3 ALP_Column_EntryControl 1 use three state entry AL SetColumnLongProperty area 3 ALP Column DisplayControl 4 display pictures AL SetColumnTextProperty area 3 ALP_Column_Fo
83. is off When you turn compatibility on it will be used to modify the visibility of columns the grid is not cleared when you modify the value of ALP Area Compatibility and will return their count Note the grid is not cleared either when you modify ALP Area CompHideCols in compatible mode on ALP Area Compatibility 1 Number of hidden columns There is no single accessor to set or get the number of hidden columns in compatibility mode off ALP Area Compatibility 0 The simplest way is to combine ALP Area Columns and ALP Objects HeaderTextNH count AL_GetAreaLongProperty area ALP Area Columns number of columns ARRAY TEXT headers 0 err AL_GetObjects Sarea ALP_Objects_HeaderTextNH headers header text for visible columns NH stands for Not Hidden count count Size of array headers number of hidden columns total minus not hidden Note in AreaList Pro version 9 only in compatibility mode off you can hide any column not only the columns at the end Grid clearing In both compatibility modes on or off the grid is lost cleared when m a column is added m a column is removed m a column s visibility is changed m ALP Area RowslnGrid is set does not have to be changed m ALP Area ColsinGrid is set does not have to be changed m AL SetColOpts is called with a different 5th argument columns to hide note that this call of a v8 x command will turn compati
84. is to use the On Drop form event Specifically AL Row drop event AL Column drop event and AL Cell drop event are reported during On Drop Only in Constant Value callback User action AL Null event 0 No action AL Single click event 1 Single click or up down arrow keys AL Double click event 2 Double click AL Empty Area Single click 3 Single click in an empty part of the area without displayed data AL Empty Area Double click 4 Double click in an empty part of the area without displayed data AL Single Control Click 5 Control click or right mouse click AL Empty Area Control Click 6 Control click or right mouse click in an empty part of the area without displayed data AL Vertical Scroll Event 7 Vertical scroll AL Row drop event 8 Row s dropped to the area AL Column drop event 9 Column s dropped to the area AL Cell drop event 10 Cell s dropped to the area AL Allow drop event 11 v Dropping is allowed during drag and drop from a non AreaList Pro object respond in callback with 0 1 to allow drop AL Hierarchy collapse event 12 A hierarchy level was collapsed AL Hierarchy expand event 13 A hierarchy level was expanded AL Object drop event 14 Something was dropped from a non AreaList Pro object such as a 4D list or variable AL Mouse moved event 18 v Mouse moved including over th
85. m Options O gt use current columns widths 1 gt use automatic width m StyleOptions bit field which style properties should not be overtaken from AreaList Pro see constants in SuperReport Pro Style Features SuperReport Pro v3 manual m Title optional text centered in the header If you want to use your own SuperReport Pro template m Title will replace any text in all text objects named Title in the first header must not be grouped only direct children of the header m in the body section the first table object will be filled with headers columns the table must have exactly one column used as the template for all printed columns Example reportXml AL_SuperReport area 1 SRP Style HasFontName SRP Style HasFontSize My first ALP area printed using SRP The code above means fill the template but don t use the font name and font size defined in AreaList Pro use the one stored in the template default style columns will be auto sized by SuperReport Pro because the fonts are different the AreaList Pro widths must be ignored Then use SuperReport Pro to edit the resulting report save it export it as HTML or print it e g result SR Print reportXml 0 SRP Print DestinationPreview SRP Print AskPageSetup 0 0 Custom templates AreaList Pro s built in SuperReport Pro template is obtained by the ALP Area SRPTableTemplate property which gets the SuperReport Pro template that will be used for
86. menu to find the value title pairs Using this method you can make it hierarchical Example 1 Mapping using 4D s menu mMenu Create menu APPEND MENU ITEM lt gt mMenu Area SET MENU ITEM PARAMETER lt gt mMenu 1 1 APPEND MENU ITEM lt gt mMenu Column SET MENU ITEM PARAMETER lt gt mMenu 2 2 APPEND MENU ITEM lt gt mMenu Row SET MENU ITEM PARAMETER lt gt mMenu 3 3 APPEND MENU ITEM lt gt mMenu Cell SET MENU ITEM PARAMETER lt gt mMenu 4 4 APPEND MENU ITEM lt gt mMenu APPEND MENU ITEM lt gt mMenu AreaObject SET MENU ITEM PARAMETER lt gt mMenu 6 5 APPEND MENU ITEM lt gt mMenu DropArea SET MENU ITEM PARAMETER lt gt mMenu 7 6 AL_SetColumnTextProperty exALP 3 ALP_Column_PopupMenu lt gt mMenu Note mMenu belongs to 4D AreaList Pro does not release it Value Mapping Q Advanced Topics 164 Example 2 Mapping using PopupArray PopupMap First create an array of values ARRAY LONGINT alpopup 7 alpopup 1 1 alpopup 2 2 alpopup 3 3 alpopup 4 4 alpopup 5 0 alpopup 6 5 alpopup 7 6 err AL_SetColumnPtrProperty exALP 3 ALP_Column_PopupArray gt alpopup Next either create the map from an array ARRAY TEXT menu 7 menu 1 Area menu 2 Column menu 3 Row menu 4 Cell menu 5 menu 6 AreaObject menu 7 DropArea Serr AL_SetColumnPtrProperty exALP 3 ALP_Column_PopupMap gt men
87. ongProperty Sarea ALP_Area_CheckData 0 After resizing arrays selection and the data was modified e g showing a new selection AL_SetAreaLongProperty Sarea ALP_Area_UpdateData 0 Upgrading from previous API To map the AreaList Pro v8 x AL_UpdateArrays AL_UpdateFields commands 1 gt AL SetAreaLongProperty area ALP Area ClearCache 2 2 gt AL SetAreaLongProperty area ALP Area UpdateData 0 Data updating Data checking and Cache clearing Q us Cache Management AreaList Pro version 8 refresh commands vs version 9 cache management Version 8 no data caching fields arrays are accessed during the update event to get values to draw Version 9 displayed data are fully cached no access to fields arrays on update if not needed The ALP Area ClearCache property with value 2 is similar to v8 x AL UpdateArrays 1 the cache is cleared new data are fetched The size of the arrays selection should not change however AreaList Pro should survive if it is modified Using ALP Area UpdateData is similar to AL UpdateArrays 2 the cache is cleared data are sorted width of columns is computed Using ALP Area CheckData is something between the two above the cache is not cleared the size of arrays selection is checked no sort is performed column widths are calculated When AreaList Pro has to display data and they are not in the cache they are fetched from arrays fields Only visible
88. ratios alpha channel value m black or 1 10096 OxFF m darkgray or 4 75 0xCO m gray or 2 50 0x80 m lightgray or 3 25 0x40 m white or O or none or or anything else 0 no drawing 0x00 Dc AAA J 3 21 Custom Row Highlight Empty Column Background Color Setting the entire area to a single color Patterns a The Advanced Properties Dialog The Advanced Properties Dialog The Advanced Properties Dialog The Advanced Properties Dialog allows you to configure most aspects of an AreaList Pro area without having to do any programming To use this option 1 Create a new AreaList Pro area on your form 2 Click on the Edit button next to Advanced Properties in the object s Property List window 3 The Advanced Properties window opens AreaList Pro Advanced Properties AreaList Pro Area 9 7mc4 Plugin Masters 2013 2014 Area Name eDemoALP General Options Enterability Advanced Dragging Preview I a Enterability Apply to all Columns Entry allowed via Keyboard only First Name L Use the Default column to set the properties for ast Name all columns r City Entry Filter Edi Then if you wish to have different settings for a
89. row _ After last row Alternate row color Miscellaneous Colors Column 1 Column 2 LJ Clipboard _ Include hidden columns Field delimiter ASCII 009 Record delimiter ASCII 013 Field wrapper ASCII NULL Clear amp Save Cancel OK Advanced Q o The Advanced Properties Dialog Dragging Before you can configure any dragging and dropping with AreaList Pro you must select the Dragable and or Dropable properties in the Action topic of the area s Property List On this tab you describe what kind of drag and drop actions you want to allow E n AreaList Pro Advanced Properties AreaList Pro Area 9 7mc4 Plugin Masters 2013 2014 Area Name eDemoALP Column Setup General Options Enterability Advanced ETT Preview Please refer to the AreaList Pro manual for information on configuring the dragging features Options M Allow multiple row dragging Scroll area size 30 Row drag only with Option key Row dragging Drag between rows Source Codes Columns Cells ees ee ae aa eee ane SS Columns Save XML to Clipboard save 4D code to Clipboard Load from Clipboard Clear amp Save Cancel OK Allow multiple row dragging If this option is not selected only one row can be dragged and dropped If it is selected the user can selected multiple rows to drag a
90. rows are fetched Then the area is drawn So once an area was displayed or the cache was filled because it was required by a call AreaList Pro will not access 4D during the update event Cache clearing or Data updating You may wonder whether clear cache means that we are syncing the plugin to the underlying 4D data arrays fields or that we are clearing AreaList Pro s cache thereby leaving everything blank Cache clearing means that the internal cache is cleared ALP Area ClearCache does just that all data to be displayed are re fetched from 4D ALP Area UpdateData does much much more sort selection arrays compute column widths etc then fill the cache Syncing is performed on demand as described above during an update event or during a call when it is required like ALP Row Reveal or explicitly e g using ALP Area FillCache When ALP Area UpdateData ALP Area CheckData orALP Area FillCache is used the cache is filled with the data The optional parameter is the number of rows to fetch If not specified 1 the number of visible rows as calculated for fixed row height is used Unnecessary updates There is no need to call AL SetAreaLongProperty eList ALP Area UpdateData 2 in the On Load event when configuring the area If the data is already in the cache it will be unnecessarily processed again fetching data sorting measuring For example with a large selection this means that th
91. scrollbar is hidden by AreaList Pro because the area is wide enough to show all columns m 1 automatic shown the scrollbar is shown by AreaList Pro because the area is not wide enough to show all columns m 2 manual always hidden the developer chose to always hide the scrollbar m 3 manual always shown the developer chose to always show the scrollbar Default value is auto hide hide when not needed show otherwise It is actually initialized to 1 which means it will be O or 1 depending on data and area width To always show it set it to 3 To always hide it set it to 2 Scrolling Q Appendix Il Troubleshooting and FAQs 269 Scrolling to the top The following command is generating an error AL SetRowLongProperty alp area 1 ALP Row Reveal 0 The vertical scroll value is set to one 1 but the AreaList Pro object does not have any lines in it Generally when you address an object which does not exist an error is returned for the pointer variant of Get Set and TRACE is executed for other specialized variants not returning any error When you want to reveal row X and that row does not exist it results in an error Try to use row number 0 header see Row Numbering to scroll to the top Also setting the vertical scroll position to zero will work as well AL SetAreaLongProperty Sarea ALP Area ScrollTop 0 Note that ALP Area ScrollTop and ALP Area ScrollLeft use points not row and
92. set starting at Row If you want to set all the rows in one go enter 2 for the Row number Count is ignored Example Set the text color for the footer to black AL_SetRowTextProperty area 1 ALP_Row_TextColor Black row 1 footer Rows Q Command Reference Cells The commands in this theme affect individual cells within the AreaList Pro area The properties that can be used with these commands can be found in the AreaList Pro Cell Properties theme If the Row Number is 2 the property will be applied to all rows displaying data from 1 to ALP Area Rows for the specified Column Number If the Column Number is 2 the property will be applied to all columns in the area from 1 to ALP Area Rows for the specified Row Number See examples in the AreaList Pro Cell Properties section AL GetCellLongProperty AreaRef L Row L Column L Property T gt result L Parameter Type Description gt AreaRef longint Reference of AreaList Pro object on layout gt Row longint Row number for which to get the property gt Column longint Column number for which to get the property gt Property text The property to get result longint Value of the got property Get details of a cell s Property The properties that you can get with this command are the ones of type longint and boolean 1 or 0 listed in the AreaList Pro Cell Properties theme Example To find out the
93. that change to all the existing columns click this button The current Default column settings will be applied to the properties with blue labels for all columns Column Settings Display Choose whether you want to show fields or arrays in the area Main Table If displaying fields select the basic table that the fields will be drawn from Columns This is where you specify the actual columns that will appear in the area To add a new column click on the big sign The display will then change Columns e Column is afield Calculated column O Default Table People A First Name P dot Mod Field Date Entered c 3 City T Header Text Hired 5 Zip Code 6 Country Format 7 Title Footer Text B Birthdate 9 Hired Autosize Hidden Use data size for row height Column is a field calculated if the data for this column will be drawn directly from a field choose the table and field you need to add at least one column with the plus button to display the Table amp Field popup menus Dc Column Setup Tab Q The Advanced Properties Dialog If you want to add a calculated column choose the Calculated column radio button The display changes again m Column is a field e Calculated column Calculated column String Callback method myMethod To use a calculated column you will need to create a cal
94. the AreaList Pro Header on Windows 7 In AreaList Pro version 8 the sort indicator was right from the header text since AreaList Pro version 9 the sort indicator is above the column header text But this wastes some space especially on forms including many AreaList Pro areas m The answer is no when using native headers ALP Area HeaderMode 0 and Aero interface is active Windows theme This is simply the way it is used on Windows 7 m The answer is yes if the Classic Windows theme is used XP pictures are used sorting triangle is at the right side m The answer is yes when using ALP Area HeaderMode 1 or 2 then the sorted column is underlined the order is not directly visible the background color can be set ALP Column HdrBackColor HERE LLL M i Headers a 279 Appendix Il Troubleshooting and FAQs Dynamic row height can t seem to get the dynamic row height feature to work Set ALP Area NumRowLines to 0 AL SetAreaLongProperty area ALP Area NumRowLines 0 When ALP Area NumRowLines is set to O variable row height is determined by columns having the ALP Column CalcHeight property set to true 1 Use ALP Column CalcHeight for the desired column s where you want the row heights to be calculated depending on the cell contents AL SetColumnLongProperty area column ALP Column CalcHeight 1 Row height and header footer height How do ALP Area RowHeightFixed and ALP Ar
95. the hierarchy err AL_SetObjects2 area ALP Object Hierarchy aiLevel aiExpanded Set the column headers AL SetColumnTextProperty area 1 ALP Column HeaderText Type AL SetColumnTextProperty area 2 ALP_Column_HeaderText Name AL SetColumnTextProperty area 3 ALP Column HeaderText Description AL SetColumnTextProperty area 4 ALP Column HeaderText Price I Finally apply some formatting AL SetAreaLongProperty area ALP Area AltRowOptions 1 alternate row background Hierarchical List Properties The following properties are specifically for use with hierarchical lists Area Properties These properties are used with the commands in the Area theme Constant Get Set Per Type Default Min Max Comments ALP Area ArrowsForHierarchy Y Y bool 0 When hierarchy is displayed left right arrow keys without command key are used to collapse expand nodes not for horizontal scrolling ALP Area Hierlndent viviv real 16 0 64 Indent increment for every hierarchy level for use with hierarchical lists E Hierarchical Lists Q Advanced Topics 157 Row Hierarchy Properties These properties are used with commands in the Rows theme Constant Get Set Per Type Default Min Max Comments ALP_Row_Collapse vv bool Collapse this row all children will be invisible ALP Row CollapseAIl v bool Deep collapse
96. to the area AreaList Pro area The column displays data from the table fieldname field and it will be the first column in the area If the column was added successfully Serr will be 0 if not Serr will contain an error number You can check the meanings of the error codes in the Result Codes list Commands that get or set properties for an area all include the property that you want to affect and a value to use to specify an option if it s a setter or to receive the result if it s a getter See the section on Getters and Setters below All AreaList Pro commands are described in the Command Reference section along with examples of how to use them Working with AreaList Pro Commands and Functions e Getting Started with AreaList Pro Debugger In AreaList Pro default mode and interpreted errors will automatically display the 4D debugger window In compiled mode an alert is displayed with the error code the AreaList Pro command the calling 4D method and the property selector used See Using the debugger Getters and Setters Most of the commands are either getters or setters they either get information about a specific property or they set a specific property he Getters and Setters are each available in four variants which allow for the different data types of the properties Longinteger Pointer Real and Text For example if you want to set a property for a column you can use one of the foll
97. two row properties above The default style is None the Column style is used all rows default to column properties give or take alternate row coloring when in effect The row number value 2 has two meanings depending on whether it is used to get the row information or to set a property m if the row number is 2 a settable row property will be applied to all existing rows from 1 to zALP Area Rows m the Empty area below last row 2 value is reported by ALP Area ClickedRow or ALP Area RollOverRow when a click occurs or the pointer is over the area between the last row and the footer horizontal scrollbar bottom of the AreaList Pro area i e the space without data rows AreaList Pro Row Properties 222 Row General Properties 223 Properties by Theme Constant Get Set Per Type Default Min Max Comments Row General Properties ALP Row Clear v n a Clear all properties of this row style is actually the only property ALP Row Height v real area s O 132000 Height of the row in points row height ALP Row Hide vv bool Set to 1 to hide a row ALP Row Kind v v text Object kind Row ALP_Row_Reveal v n a Reveal make visible this row ALP Row RowOffset v real Offset from top ALP Row ScrollTo vv n a If visible scroll the area to position this row on the top AL SetRowLongProperty area row ALP Row ScrollTo Note no propert
98. values in vltem If Si lt Size of array aRows not the last item vltem vltem separator End if End for End if ALP Area AlpEvent End case Example 4 Allow multi row selection Q Tutorial Example 5 Allow data entry via double click In many cases you simply want to display data without allowing it to be modified Sometimes however you may want to allow the user to modify certain data e00 Example 5 Example 5 This is Example 5 from the Reference Manual which was set up as in Example 4 In addition double click was selected to initiate data entry using AL SetAreaLongProperty with ALP Area EntryClick City State Mobile AL 2 Fayetteville AR 0 ute Roger Phoenix AZ y Little Rock AR To enable that you can use the ALP_Area_EntryClick property using the command AL_SetAreaLongProperty AL SetAreaLongProperty eLis ALP Area EntryClick 2 set double click to enter data entry mode E e Example 5 Allow data entry via double click Q Tutorial Example 6 Specifying which columns are enterable In Example 5 we applied the entry by double click property to the entire area But what if you only want certain columns to be enterable eoo Example 6 Example 6 ALP Cell Enterable This is Example 6 from the Reference Manual which was set up as in Example 5 In addition column 1 was set to be non enterable using AL SetCo
99. vvv real 3 O 64 Horizontal indent for the rows in points AreaList Pro Area Properties Constant Get Set Per Type Default Min Max 203 Properties by Theme Comments ALP Area RowlndentV reaList Pro v real 1 Area Display Propert 0 64 ies Vertical indent for the rows in points ALP_Area_RowslnGrid Y long int 1 1 20 Number of rows in grid ALP Area ShowColDividers A v v v Y long int 0 0 2 Show column dividers using ALP_Area_ColDivColor 0 hidden 1 shown 2 draw only the data part not footer separators ALP_Area_ShowFocus s bool true 1 Show focus ring ALP Area ShowFooters bool false 0 Show footers ALP Area ShowHScroll long int Oor 1 Show horizontal scrollbar 0 automatic hidden 1 automatic shown 2 manual always hidden 3 manual always shown Default value is O or 1 depending on data and area width ALP Area ShowRowDividers bool false 0 Show row dividers using ALP Area RowDivColor ALP Area ShowSortlndicator ALP Area ShowVScroll Y long int bool true 1 If 0 no triangle in header mode 0 or no underline header mode gt 0 is drawn When both ALP Area HeaderMode and ALP Area ShowSortlndicator properties are not zero the v8 sort order button is displayed above the vertical scrollbar On W
100. 0 AL_SetRowPtrProperty area 2 ALP_Row_ Size gt fontSize 19 Rows Q Command Reference AL SetRowRealProperty AreaRef L Row L Property T Value R Count L Parameter Type Description gt AreaRef longint Reference of AreaList Pro object on layout gt Row longint Number of the row for which to set the property Property text The property to set gt Value real Value to pass to the function real number gt Count longint Number of rows to set starting at Row optional Set a specific Property for a Row or several rows If the Count parameter is omitted only row number Row will be set Otherwise Count row s will be set starting at Row If you want to set all the rows in one go enter 2 for the Row number Count is ignored Example To rotate 90 the text displayed in row 33 AL SetRowRealProperty area 33 ALP_Row_Rotation 90 AL SetRowTextProperty AreaRef L Row L Property T Value T Count L Parameter Type Description gt AreaRef longint Reference of AreaList Pro object on layout gt Row longint Number of the row for which to set the property Property text The property to set gt Value text Value to pass to the function text gt Count longint Number of rows to set starting at Row optional Set a specific Property for a Row or several rows If the Count parameter is omitted only row number Row will be set Otherwise Count row s will be
101. 00 cee ee ee 249 Editing custom templates 52i ses UE opps Rm LE Sod dacs dad Sed Maida 249 Cache Management 250 Data updating Data checking and Cache clearing ooococcoccccoo eee 250 Thee properties EEUU 250 Examples voice A aspe Se a ee E 250 Upgrading from previous API sssle eem RR Rm A B RR dn e nn A 250 AreaList Pro version 8 refresh commands vs version 9 cache management 251 Cache clearing or Data updating 0 0 00 rh 251 Unnecessary updates 20505 ero ERR s BES Nae Se EE pe Pea we Mowe eS Ee RA REOR 251 Appendix I Codes 252 AreaLbist Pro Error CodeS 24 22 6060 dae bent Mee eet ed al beet bd ci 252 Error 9939 Lt Stucco acidi Su yak dent So dat bs Bat Sot ee 252 Result Godes isis ue RE RR ots RENTE dopage dd se OR Shook edes 252 AreaList Pro Event codes c i sss bo Eae OR e d mu bee ed kd dew ee eee 253 Areabist Pro Text Style Tags vos stc a e Ka ICI 254 Property Values Constants and XML Names sse eee 255 AreaList Pro Edit Menu Constants 1a cem ea ea ame x a eed ee ee d RR E 265 Table of Contents Q 10 Contents Appendix Il Troubleshooting and FAQs 266 AL RegisterretUrms Ze Or garini mentini AAA A ee ee RA RE d d 266 Undefined parameter uox aetna ox aa doled Ck isl os E OR Pee aij Re IE x xc EIS iei 266 Empty titles 4D v11 ci ex Rer Ra Nr eee Rt RE ee 266 AU e A a an 267 Ghost scrollbars yaks tet A t ene uas Ee voe M e DERE E o vu dee
102. 114 Hidden COlWMNS sic Rem bees 37 Hide columns circa Rem 37 Hiding columns 109 198 Hierarchicallist llis 162 Hierarchical List sese 154 Hierarchical liStS 38 195 Hierarchical Lists 59 60 Hierarchical popup menus 138 bl rarchy coi Pepper estare qo 198 283 Hexadecimal 2 22 92 ERE badd Ee xa 113 Hidden columns 2222 RR 36 Hide columns ese eer RR 36 Hiding columns 45 108 197 hierarchical list 22x ex xk de oe ee we 161 Hierarchical List ooo ooooooooo 153 Hierarchical lists 5456008 RR 37 Hierarchical Lists lt 58 59 Hierarchical popup menus 137 Hierarchy es ii rc a ee a 197 282 Hierarchy Level leeren 153 Highlighted text enne eee 97 HLl node 2 mx RR RR 161 Horizontal scaling llle 82 Horizontal scrollbar a 197 Horizontal ScrollinG o 107 l CONOS ici e cR RE CR a 157 161 Images s eR wea Re 157 Inline time control xn s s 136 Installation tette prr eis 12 Internal cache i rones REA 250 Internal Sorting s e ceris 0 20 00 eee ee eee ee 78 Invisible columns ccoo 36 It llC oi eee laor ore Eas 82Field mode 98 Index L License Server solae ke RR RR ERG 20 License types iss do pe REED 13 14 Line breaks doe saet enami t taani 81 Line Ingrid i orb E
103. 2 Underline 4 DisplayList Commands Q DisplayList SetListBehavior MultiLines AllowColumnResize SortColumn PreSort UserSort DisplayPointWidth HideLastColumn SwapCancelOk Parameter Type Description gt MultiLines integer Single or multiple line selection 1 allow user to command click shift click or drag to select multiple lines 0 allow only one line to be selected default gt AllowColumnResize integer User resizable columns 1 allow user to resize columns default 0 prevent user from resizing columns gt SortColumn integer column for presort gt PreSort integer presort off ascending or descending gt UserSort integer allow user to sort gt DisplayPointWidth integer display column widths gt HideLastColumn integer don t display last array passed to DisplayList gt SwapCancelOK integer OK and Cancel buttons are swapped when they are visible SetListBehavior is used to control several DisplayList options Each parameter is an integer SetListColor ForeColor1 ForeColor2 BackColor1 BackColor2 Parameter Type Description gt ForeColor1 string Foreground color from DisplayList s palette ForeColor2 integer Foreground color from 4D s palette gt BackColor1 string Background color from DisplayList s palette gt BackColor2 integer Background color from 4D s palette SetListColor is used to set the foreground and background colors of the list area DisplayList has i
104. 4 Remoteimode 2 20000 ce ce aces aa eee 18 Dora ETT 198 Result Code scree stews ki wer s 166 Reveal atria ai a tart a OR AC d 267 269 Reveal properties ooooooooooooo 267 RGB valles rdum RR 117 RollOVer ies es Hoes Rn rx Er wade eles 67 Rotation text eek Pe e 83 Row coloring OPpti0NS o o ooooo 118 ROW GIVIGGR scada roca 202 Index ROW dragging ee abe rel Rede Sud 270 Row hiding oe 2 rA ERRARE 39 Row in grid srs dise geist gima aa aone Gi 148 Row Numbering 200 209 210 222 S Saving field values ooooooooooo 71 Scaling text e cee itae gesae kie paei 83 JA 199 269 SCFOIIDAE eu rain a 198 268 Ie cep TP 267 SCFOlllhg is esp III ER RE Dr ip 267 269 Selecting TOWS sa aeg empor e Rx ERE RR A 282 Selection lIst s v ee pe RE eo Ss 72 Settels voe eo ee ub X eg wn ER E RE 179 Single userlicense llle 15 Solt deselect soie d he Ss Ryd cases et 101 Sort columrm list 2 eret e 81 Sort order button 0 0 0 0 eee eee 32 Styled text st cued id Hae ee eae ae 38 SuperReport Pro 174 199 247 SUPPOM a Sik kins bani DET 12 T Technical Support cesses en 12 Text Style Tags 38 85 216 254 255 Text Stylilhig a siste ia screw ees 83 Index Q 295 Index TIME 2o ic aio a ad 137 162 Windows theme selle 32 Titmiezconttol gb ed dd br RR RET PERRA 137 Wrapping neis dione bebe Ed
105. 4D formats for dates are numbers and the AreaList Pro format a column text property the date format number must be passed as as string AL SetColumnTextProperty area column ALP Column Format 107 The 4D layout editor has a display property for dates Empty if null This avoids the display of empty dates as 00 00 00 This property can be set with 4D code using the String command by adding 100 Blank if null date to the date format number e g 107 String Blank if null date Internal date short AreaList Pro will honor these settings In addition there is a special AreaList Pro format xxx xxx is the format e g 7 becomes 7 The trailing minus sign means use empty string for null date The following line will do exactly the same as the above example AL SetColumnTextProperty area column ALP Column Format 7 Using the debugger Trace mode When the ALP Area TraceOnError property s bit 0 is set to true in interpreted mode the default if there is an error in a command that does not return an error code and you are using 4D in interpreted mode the 4D debugger window will automatically open with the line immediately following the problem line highlighted E fa r gt i y a AL_Ent_Proc TRACE Command Expression Value a AL_GetAreaLongProperty 0 ALP_Area_LastError 5 AL GetAreaLongProperty 0 5 AL GetAreaLongProperty 5 a AL SetColumnLongProp
106. 8 COMAS RP 175 ROWS ER 179 pl cc EEUU 184 Gu cM 188 UJ RUE 191 Properties by Theme 196 AreaList Pro Area Properties 0 0 00 hh 197 AreaList Pro Area General Properties 0 2 00 eee 198 AreaList Pro Area Copy amp Drag Properties 200 AreaList Pro Area Data Properties ooooccccrrnrcarn ee eee 200 AreaList Pro Area Display Properties 00 cece eee 201 AreaList Pro Area Drag amp Drop Properties llli 204 AreaList Pro Area DropArea Properties 1 2 0 es 206 AreaList Pro Area Entry Properties 22 seus age ego P Ue a Rr a RU ae e deo 207 AreaList Pro Area Event Properties cesce 0 000500 eee be bee e RR a a 209 AreaList Pro Area Plugin Properties 0 0 0 ccc te gnan 211 AreaList Pro Area Selection Properties uran iep ia dia EAE TE 213 AreaList Pro Area Sort Properties euros 00082 phase eek ee ees LA OR Rr ea e ee ee 214 AreaList Pro Column Properties 2 cse te ee nmm Rh dae en ee ee ees eee 215 Column General Properties xoxo sonoradis jasc Bese eck Ba RR Rhe Re E TR See 216 Column Header Style Properties 0 0 eee eee 219 Column Footer Style Prop rties citar done dee ci 220 Column List Style Properties 24 2 ii duse Malad Sei dae aed 221 AreaList Pro Row Properties 0 00 eee 222 Row N mberlrig 2 4 40008 bers dee RE ree RA bh ee eee ede dt Y bee bee ee cee 222 Row General Properties 2 xu taras cmn oe E e Ro Oo Dar eee eae ICI o8 223
107. 82 83 284 Trailing minus sign ille 90 Transparency 113 123 281 ALI e eeta Sree tag hs Sa Bd ene BS Nearness a 266 Two Dimensional ArrayS 170 XML uui onidcesobrarseine Powe eas 12 133 Undefined Value 0 0 0 cee eee 281 Underline re REDDE xen 83 WN eee tees ee tages ae E 70 Update arrays ssl 145 Updates oi cecce irrien RE REID 4p Guia 14 UPPERCASE wa2co chee rent tiua eee dele ee 83 User evehls x eee rre x Lan x Sha ees 253 User s action 0 00000 eee eee 57 58 V V8 compatibility mode 31 Value Mapping sees 163 164 NETSION MT PE 212 Vertical scrollbar llle 198 Visible columrns sm bI 106 Width i5 eae reae a e d oe ae x 199 Widlli iue sica a ie c ThE ce RS 108 WINDOWS T cident ood ak Re Bode ed 278 Index 296 Copyrights and Trademarks Copyrights and Trademarks All trade names referenced in this document are the trademark or registered trademark of their respective holders AreaList Pro is copyright Plugin Masters SAS and exclusively published worldwide by e Node 4th Dimension 4D and 4D Server are trademarks of 4D SAS Windows Excel and Vista are trademarks of Microsoft Corporation Macintosh MacOS and MacOS X are trademarks of Apple Inc Copyrights and Trademarks
108. ALP Cell Value AL SetCellPtrProperty ALP Cell Value AL SetColLock AL SetAreaPtrProperty ALP Area ColsLocked AL SetColOpts AL SetCopyOpts AL SetAreaLongProperty ALP Area ColumnResize ALP Area ResizeDuring ALP Area ColumnLock ALP Area ShowWidths ALP Area DragColumn ALP Area DragAcceptColumn AL SetColumnLongProperty ALP Column Visible for column hiding AL SetAreaLongProperty ALP Area CopyHiddenCols AL SetAreaTextProperty ALP Area CopyFieldSep ALP Area CopyRecordSep ALP Area CopyFieldWrapper Note the v9 API uses Text not single character AL SetDefaultFormat AL SetAreaTextProperty ALP Area DefFmtlnteger ALP Area DefFmtLong ALP Area DefFmtReal ALP Area DefFmtBoolean ALP Area DefFmtDate ALP Area DefFmtPicture AL SetDefaultStyle AL SetColumnTextProperty ALP Column FontName ALP Column Size ALP Column HdrFontName ALP Column FtrFontName AL SetColumnLongProperty ALP Column StyleF ALP Column HdrStyleF ALP Column FtrStyleF AL SetColumnRealProperty ALP Column HdrSize ALP Column FtrSize AL SetDividers AL SetAreaLongProperty ALP Area ShowColDividers ALP Area ColDivColor ALP Area ShowRowDividers ALP Area RowDivColor Using any color format see Working with Colors AL SetDrgDst AL SetAreaTextProperty ALP Area DragDstRowCodes ALP Area DragDstColCodes ALP Area DragDstCellCodes
109. Add the two submenus to the parent menu APPEND MENU ITEM hpopup Chocolate subChoc APPEND MENU ITEM hpopup Nuts subNuts Tell AreaList Pro to apply this menu to column 1 and make it enterable by popup only AL_SetColumnLongProperty area 1 ALP_Column_Enterable 2 AL_SetColumnTextProperty area 1 ALP_Column_PopupMenu hpopup and finally tell AreaList Pro to map the data to the menu titles AL SetColumnLongProperty area 1 ALP_Column_DisplayControl 3 Data Entry Controls Q Advanced Topics 140 Drag and Drop AreaList Pro enables rows columns and cells to be dragged and dropped within an AreaList Pro area or between two areas and for objects to be dragged to AreaList Pro areas from non AreaList Pro objects such as 4D fields and variables and external files You can control which areas can be dragged from or to what options are available e g whether multiple rows can be dragged or not and what happens after a drop Row dragging can be initiated either by alt option clicking on an item cell row or column and dragging it or by simply dragging it depending on how it has been configured When an item is clicked and dragged the cursor will change o If the drag is allowed the cursor will have a plus symbol attached to it when the it hovers over the drop area gt but if the drag is not allowed by the destination object you ll see a no entry sign instead 5 Configuring Drag and Drop In
110. Area_Redraw n a Redraw the area object redraw is immediate AreaList Pro Area Properties Q o Properties by Theme Constant Get Set Per Type Default Min Max Comments AreaList Pro Area General Properties ALP_Area_ScrollColumns Yiv Y bool If set to true horizontal scrolling is done in number of columns not in points Automatically set to true when compatibility is turned on When set to True no visible column will ever be larger that the area width ALP Area ScrollLeft v wv real Horizontal scroll position in points ALP Area ScrollTop Viv real Vertical scroll position in points ALP_Area_Selected v bool Is selected has focus in 4D ALP Area Self v pointer Pointer to the area object C POINTER ptr err AL_GetAreaPtrProperty area ALP_Area_Self gt ptr ALP Area SRPTableTemplate Y text Get the SuperReport Pro template used for report creation stored in Resources Table Report xml as XML ALP Area UserBLOB v v Y BLOB BLOB for free use by developer ALP Area Visible Viv bool Area is visible Set to false 0 before showing another dialog over AreaList Pro or DropArea to hide scrollbars ALP_Area_WindowsClip Viv bool true 1 Area clipping mode on Windows If set to false the area will not be clipped so that other 4D objects can be positioned over the area Set to false 0 in case you want to use FORM SCREENSHOT on Windows May be used with th
111. D datafile using SELECTION TO ARRAY and displaying it using the AL AddColumn command The header has been set using the AL SetColumnTextProperty command City Mobile Fayetteville Little Rock Phoenix Tuscon Petaluma Los Angeles Palm Springs San Diego Hartford Washington Wilmington Ft Lauderdale Miami Orlando Mobile AL Done ALL RECORDS Cities load all records in the Cities table SELECTION TO ARRAY Cities City aCity Cities State aState copy field values into arrays Serror AL_AddColumn eList aCity display array in AreaList Pro object Serror AL_AddColumn eList gt aState display array in AreaList Pro object AL SetColumnTextProperty eList 1 ALP Column HeaderText City first column header AL SetColumnTextProperty eList 2 ALP Column HeaderText State second column header DEMO Default eList general display settings AL SetColumnRealProperty eList 1 ALP Column Width 350 fixed width for column 1 AL SetAreaLongProperty eList ALP Area AutoSnapLastColumn 1 calculate column 2 width to area edge AL SetAreaLongProperty eLis ALP Area SelRow 1 row 1 selected vitem aCity 1 aState 1 We could also have used the AL_SetObject command to add the arrays ALL RECORDS Cities SELECTION TO ARRAY Cities City aCity Cities State aState ARRAY POINTER aPtrCols 2 aPtrCols 1 gt aCity aPtrCols 2 gt aState Serror AL_SetObjects eList ALP Objec
112. Drag Droppable Automatic Drop y Y Events On Load On Unload On Validate On Clicked On Double Clicked On Data Change On Drop On Drag Over On Begin Drag Over DAL JE DODO Doe The area object methods react to On Load and On Drop events Left area Case of Form event On Load initialize the AreaList Pro object ALL RECORDS Cities load all records in the Cities table SELECTION TO ARRAY Cities City aCityLeft Cities State aStateLeft copy field values into arrays Serror AL_AddColumn Self gt gt aCityLeft display array in column 1 Serror AL_AddColumn Self gt gt aStateLeft display array in column 2 dragAreaSetup Self gt AL SetAreaTextProperty Self 2 ALP Area CallbackMethOnEvent EventCallBack10 set event callback AL_SetAreaLongProperty Self gt ALP_Area_SelRow 1 row 1 selected vitemLeft aCityLeft 1 aStateLeft 1 initialize text variable to row 1 values Form event On Drop AlpOnDrop End case The Event callback method EventCallBack10 is a slight variation from EventCallBack09 because we have two areas with a text variable for each If 1 eListLeft left area evtUpdateText gt vltemLeft gt aCityLeft gt aStateL eft Else right area evtUpdateText gt vltemRight gt aCityRight gt aStateRight End if Example 10 Drag and drop between areas Q Tutorial Right area Case of Form event On Load initialize the AreaLis
113. Draggable M Automatic Drag O Droppable M 7 All Themes The Draggable and Droppable options have been selected for both of the AreaList Pro areas so that rows can be dragged and dropped freely between the areas When it is initially opened the area on the left contains a list of cities and states and the area on the right is empty You can move a row or multiple rows from the left area to the right area or conversely or within the same area by holding down the Alt or Option key as you drag it eoo Example 10 Example 10 This is Example 10 from the Reference Manual which was built upon Example 9 Option alt drag row s between areas City l ey State Mobile Fayetteville Little Rock Phoenix o Tuscon Petaluma Los Angeles Palm Springs San Diego Hartford Washington Wilmington Ft Lauderdale Dc a Example 10 Drag and drop between areas o Tutorial When a row is dragged the text areas are updated to display what was dragged and the two areas are updated the dragged row is removed form the source area and added to the destination area Within the same area the rows are moved to the destination To control this the Draggable and Droppable actions are checked in both areas as well as On Load and On Drop events with AreaList Pro v9 x the drag and drop is entirely managed in the destination area object method y amp Action Method Edit Draggable Automatic
114. FORMING LP EIE RUE EE EROR Rue dade EO d RUE QE XE dead xdi abd 277 FONtISSUES x xoa Hace educ Eqs Rp que EE GR REGI ORE GRE IgE A Rees rk 277 Setting the format fora column 1 6 ce eee 277 Displaying Checkmarks lo ios a Rates ihn de hk Mie adu t dd dd 277 Meade otitis ini adh Bice eee eta Sided pee ate has opus ist Enver eet tase CMe eae ee dots 278 Header Foreground Color on Windows 7 0 0 ee ees 278 Header size and sortindicator icsi losses see eee ba bbe eee m d on mn ne 278 Di RP 279 DByriamlc row height 253 mots cara dens eta rs earn die tecti ded don hee eee 279 Row height and header footer height lille 279 COMUN TUE 280 Table of Contents Q 11 Contents Double clicking an enterable column cns reran sameina eee ue 280 Custom column property curar Pasa Ras eda dowd Mead em dr adc Said 280 Column width tooltlps isee aroi eee oh hed Me ene bd ee ur ha Rex E p ed EORR oe 280 Calc lated col mns 2 54 2s nk ERROR RR re EORR ee eek pe ea oe Ee ee ee 281 Specific column color with alternate row coloring lle 281 Setting a m lti styled colum 2 00 20 ne ar eee Rx x kon xd aci e dx ox mcos Ae A 281 Undefined Value Different array sizes lille 281 MeL 282 Selecting rows during the On load event lille 282 Responding to User events eee ae Sete E doe ed ety Sed Beh Gale ee ena 282 lie akGhy sno hls he et eth A E pde Malte See ee oe ee a UE deut te Rad uS Ee 283
115. Formatting Options llle I 65 Example 15 Cell coordinates properties ri geusi snte saara iit ek turma rk trinii 66 Programming the AreaList Pro User Interface 68 Entering Data Dis mI Ed decente a Med Ae oe pagan dupla inert tr doped epo dt 68 Initiating Data Entry LRL a dood Reds Exod egerat Mode Doce E lace 68 Iwo User clickmodes 0 02232 amb Phe eee E oe enh ey bet od d ee E bad oa edd 68 Table of Contents Q 4 Contents Editing 4D felds 2 2 dia a id oie itis kate 69 Cellichange properties iii dd bev de Raon e Sd aout et Purse furis A Paso 70 Undo ValUC 2 204 448 ia Ru kat eh REG OA Kex RE GUERRA UR RA Hg eed Seed RUNE RAE Pd 70 Saving field val es 1224 ssepe ka Rm RR RR bane iU nhac ks bbe bd E Race Ru d de gee eS 71 GHECKDOXES MP 71 Bullet Password Characters carr ra Rx e OR eee ee dne m ul oe 72 Entering data in AreaList Pro with DisplayList le eee 72 Popup entry in specific cells lle I I3 74 Esaviridar ell corsa Son e census eerie A E e users uma eos Renee ae 74 EVBDIS uan detis ete A Rp nodi uo s Bote B Mt oes an ed ap Rente ek 75 SONING ariete oed ere s P a eats db p Matos fetus auc grates R Mae Sa di ata a eee 75 The Som Editor ia vens ee Ch a Se eee ee oe durar aree ua Rape ees 76 Button labels i Cur mE eR Bet ea ed dah evi peel bed See ees 76 Taking controlo FE Sort iiic si eek pia ee ee oP RE eee ee oe D CERT Re Qs 77 Setting the sort indicator and sor
116. GINT 3 only useful when fields are being displayed C LONGINT vCurrCol vCurrRow vCurrRow AL_GetAreaLongProperty 1 ALP Area EntryRow edited cell row vCurrCol AL_GetAreaLongProperty 1 ALP Area EntryColumn edited cell column ARRAY POINTER ArrayNames 0 errorcode AL_GetObjects 1 ALP Object Columns ArrayNames If vCurrCol 1 city If SArrayNames 2 vCurrRow CA pointer to second col array state AL SetAreaLongProperty 1 ALP Area EntrySkip 1 disallow data entry End if End if Using Callback Methods During Data Entry Examples Q Using the Callback Methods 102 Example 2 Display a Tooltip We want to display a Tooltip telling the user whether an area is dragable or dropable First create a callback method Event Callback method C LONGINT 1 2 3 4 5 6 event 2 Case of Sevent AL Mouse moved event Case of 1 ProductList AL_SetAreaTextProperty 1 ALP_Area_ToolTip Drag from this list 1 Selected AL_SetAreaTextProperty 1 ALP_Area_ToolTip Drop onto this list End case End case Set this callback method in the On Load phase of the form method for both areas Case of Form event On Load AL SetAreaTextProperty ProductList ALP Area CallbackMethOnEvent EventCallback AL SetAreaTextProperty Selected ALP Area CallbackMethOnEvent EventCallback End case Note you could also display a tooltip when the mouse is over a column header using 5 0
117. Gc T sendre iota riure SOR SES Re RP EPA RP RPAUE Pu 20 Master KEYS dos cocida A RUE SELES CHEER RE BIOS 20 PIOCESB 20285 oras Gab SERS rr D REqUE S PE 21 VS siu doncs ove ss 604 5655054506052 4056554 55556 508480555058 28 21 eae alinm sesos raja oasis qx Qd esed ded Sheed es dd due 22 Getting Started with AreaList Pro 23 Creating your first AreaList Pro Area ie sare ese kdo a a 23 Advanced Properties or Commards ss osea ees bart d dod sien ded Ronde RR S god das 23 Using the Advanced Properties Dialog 0 0 I 24 Working with AreaList Pro Commands and Functions slee ee 26 When to use the Commands and Functions llle 26 Table of Contents Q 3 Contents Anatomy of an AreaList Pro COMMANO o 26 DEDUGGER CM ii a eet a a a ad ci des 27 Gettersiand Setters sio cus rr pe ea eed Eee oo ee RC dO ced eed e eed 27 PROPCMICS i ira in deed pe nee Rede ed eee a ot PET 28 Command Descriptions and Syntax 0 rn 28 COMMANGS io stew e ead ate AAA eee ath ara See NAAA 28 FUNCIONS e sais r tet pede RE eet ace ud E goad aah aoe neat eas eeu EAE ws aaah pad ene EE 30 Copying er dragging rom am AteaList Pro ABS mus de jacana Saleen a meee ioe iE sacos 30 PRODOFTIe S ui oe eroi bins wh Reo ke Beau dich aei UE E eee lest Ameer seen BUR dioi O 30 uio ec CD rrr 30 Upgrading from Previous versions of AreaList Pro 31 Compatibility Mode es s Rc eee eR ES ee ese owe wee eee E eee 31 What s Changed ccoo ai ii ex Rr
118. GridCell expect the cell number in the grid not the column number If you use AreaList Pro in compatibility mode the columns are physically reordered when moved using Drag amp Drop The cell number corresponds to the column number But when you use native AreaList Pro 9 API mode the columns are not reordered or you defined the grid explicitly and the cell number is not necessarily the same as the column number ALP Area EntryGotoColumn like v8 AL GotoCell searches the first cell displaying the requested column See the Grid section for more information about grids Undo value When data entry is initiated on an AreaList Pro cell the array contents for the element corresponding to that cell are copied to the zero element of the same array Since this element is usually never used it makes a convenient storage place for the data in case you wish to revert to the old value however you should take care not to use this zero array element elsewhere in your code while data entry is in progress Dc SSeS SSS a Entering Data a Programming The AreaList Pro User Interface Saving field values Ifyou set the value with 4D for a field that is displayed in an AreaList Pro area this new value won t be saved You must set the value through AreaList Pro not 4D Instead of MyTable MyField value use AL_SetAreaTextProperty area ALP_Area_EntryValue value set the value or set the field val
119. L Column L Property T Value L Count L Parameter Type Description gt AreaRef longint Reference of AreaList Pro object on layout gt Column longint The number of the column for which to set the property Property text The property to set gt Value longint Value to pass to the property long integer gt Count longint Number of columns to set starting at Column optional Set a specific longint Property for a Column or several columns The properties that you can set with this command are the ones of type longint and boolean 1 or 0 listed in the AreaList Pro Column Properties theme If the Count parameter is omitted only column number Column will be set If you want to set all the columns in one go enter 2 for the Column number Count is ignored Example To set the horizontal alignment for column 1 to center AL SetColumnLongProperty area 1 ALP Column HorAlign 2 AL SetColumnPtrProperty AreaRef L Column L Property T Pointer Z Count L gt result L Parameter Type Description gt AreaRef longint Reference of AreaList Pro object on layout gt Column longint The number of the column for which to set the property gt Property text The property to set gt Pointer pointer Pointer to a variable that holds a value to pass to the function gt Count longint Number of columns to set starting at Column optional result longint Set a speci
120. LONGINT mx my mb GET MOUSE mx my mb win Open form window alpDatePicker Pop up form window mx my DIALOG alpDatePicker CLOSE WINDOW win If OK 1 vDate 00 00 00 err AL_SetAreaPtrProperty alpEditArea ALP_Area_EntryValue gt vDate End if 0 True SalpDataKind Is time handle time popup not implemented use default SalpDataKind Is real real column demo how to use DisplayList C REAL v ARRAY REAL a1 4 a1 1 1 23 a1 2 12 34 a1 3 123 45 a1 4 1234 56 v AL_GetAreaRealProperty SalpEditArea ALP_Area_EntryValue err Find in array a1 v SetListLine Serr SetListSize 0 0 3 SetListSize 200 200 1 err DisplayList a1 If Serr 0 AL_SetAreaRealProperty alpEditArea ALP_Area_EntryValue a1 err Properties Property String err End if 0 True Else not handled use default no values End case Here is the result with the Is real case using DisplayList i e z 3703 7023 Your choice Select an Item 4 938 26 12 34 7 407 402 8641 962 9 876 532 rana 1 Goa Entering Data Programming The AreaList Pro User Interface Popup entry in specific cells You can create an interface where some cells in a column have a popup icon while others do not 1 Make the area enterable AL SetAreaLongProperty area ALP Area EntryClick 3 enterable by cmd double click 2 Make the columns enterable Those which s
121. LP Cell Clear ALP Cell ClearStyle ALP Cell TextColor ALP Cell BackColor Using any color format see Working with Colors AL SetCellEnter AL SetCellLongProperty ALP Cell Clear ALP Cell Enterable Mapping Old Commands to the AreaList Pro v9 API Old commands AL SetCellFrame les Mapping Old Commands to the AreaList Pro v9 API New Commands and Properties No equivalent in the new API AL_SetCellHigh AL_SetAreaTextProperty or AL_SetAreaPtrProperty ALP_Area_EntryHighlight ALP_Area_EntryHighlightS ALP_Area_EntryHighlightE AL_SetCelllcon AL Setlcon AL SetCellLongProperty ALP Cell LeftlconID ALP Cell RightlconID to set the icon ID Using ALP Cell LeftlconFlags and ALP Cell RightlconFlags to set a combined bitfield of horizontal position vertical position and scaling AL SetCellOpts AL SetAreaLongProperty ALP Area SelType ALP Area MoveCellOptions cellMemOptimization is no longer supported AL SetCellRGBColor AL SetCellLongProperty ALP Cell Clear ALP Cell ClearStyle ALP Cell TextColor ALP Cell BackColor Using any color format see Working with Colors AL SetCellSel AL SetObjects ALP Object Selection AL SetCellStyle AL SetCellLongProperty ALP Cell Clear ALP Cell ClearStyle ALP Cell StyleF AL SetCellTextProperty ALP Cell FontName AL SetCellValue AL SetCellTextProperty ALP Cell FormattedValue
122. LP_Area_Columns gt numColumns AL_GetAreaRealProperty AreaRef L Property T gt result R Parameter Type Description gt AreaRef longint Reference of AreaList Pro object on layout gt Property text The property to get result real Value of the got property Get details of an area s Property The properties that can be used with this command are the ones of type real listed in the AreaList Pro Area Properties section Example To find out the current position of the horizontal scroll bar ScrollPos AL_GetAreaRealProperty area ALP Area ScrollLeft Area Q Command Reference AL GetAreaTextProperty AreaRef L Property T gt result T Parameter Type Description gt AreaRef longint Reference of AreaList Pro object on layout gt Property text The property to get result text Value of the got property Get details of an area s Property The properties that can be used with this command are the ones of type text listed in the AreaList Pro Area Properties section Example To get a list of the column numbers in their currently sorted order SortList AL_GetAreaTextProperty area ALP Area SortList AL RemoveColumn AreaRef L Column L Count L gt result L Parameter Type Description gt AreaRef longint Reference of AreaList Pro object on layout gt Column longint Number of the first column to remove gt Count longint Number o
123. Last AreaList Pro event see AreaList Pro Event codes May be used with AreaRef set to zero last event in any area ALP Area CallbackMethDeselect Y Y Y text Area deselected callback method area See the Callbacks topic for more info ALP Area CallbackMethMenu viv wv text Edit menu callback function area event gt long flags See the Callbacks topic for more info See the list of the Edit menu constants ALP_Area_CallbackMethOnEvent Y v wv text Event callback function area alpEvt event4D column row modifiers See the Callbacks topic for more info ALP Area CallbackMethSelect Y ivy text Area selected callback method area ALP_Area_ClickedCell v long int Last clicked grid cell ALP Area ClickedCol v long int Last clicked column ALP Area ClickedRow v long int Last clicked row See Row Numbering ALP Area DoubleClick v bool Last click is double click AreaList Pro Area Properties Constant Get Set Per Type Default Min Max Q p Properties by Theme Comments ALP Area Event long int AreaList Pro Area Event Properties Kind of event 1 mouse down 3 key down 5 auto key 18 mouse moved 21 select 22 deselect 25 scroll 30 undo 31 cut 32 copy 33 paste 34 clear 35 select all 36 redo 39 mouse wheel ALP_Area_EventChar text Char string from keyboard ALP Area EventKey sS text Key code ALP Area EventModifiers long int Event modifi
124. Max Comments ALP Cell Stylel Yv iv bool Font style italic ALP_Cell_StyleU v viv bool Font style underlined ALP Cell TextColor v wv v color Font color ALP Cell VertAlign v v Vv long int 0 3 Vertical alignment 0 7 default 1 top 2 7 center 3 bottom ALP Cell Wrap Yv iv bool Wrap long lines Object Properties Use these properties with commands in the Objects theme Constant Get Set Array Type Comments ALP_Object_FooterText v v text Footer text of all columns ALP Object FooterTextNH v text Footer text of visible columns in grid order ALP Object HeaderText v v text Header text of all columns ALP Object HeaderTextNH v text Header text of visible columns Formatting Column property The format for a given column is set by the ALP Column Format column property In addition you can use the Advanced properties dialog and of course the area s XML description Custom styles 4D s custom styles are identified by the OR sign used as a prefix format name type parameters will be interpreted by AreaLlist Pro for the column display whether set from advanced properties XML or the ALP Column Format property AL SetColumnTextProperty Sarea column ALP Column Format format Note text type formats will only access the styles available in the host database not components Text Styling Formatting e Programming The AreaList Pro User Interface Empty string for null dates Since
125. Object RowSelection records Sort your 4D selection ORDER BY Table Table Field1 gt Table Field2 lt Inform user how the selection is ordered AL SetAreaTextProperty area ALP Area SortListNS 1 3 ordered by first and third columns alternate method the line above is the same as using an array with sort order information ARRAY LONGINT order 2 Sorder 1 21 first column ascending order 2 3 third column descending AL_SetObjects area ALP_Object_SortListNS order end of alternate method nform AreaList Pro of 4D s selection change clear the cache fetch data AL_SetAreaLongProperty Sarea ALP_Area_UpdateData 0 If Size of array records gt 0 will also work if this test is omitted Restore the user s row selection using record numbers err AL_SetObjects area ALP Object RowSelection records Make the selected record visible AL SetRowLongProperty Sarea AL_GetAreaLongProperty area ALP Area SelRow ALP Row Reveal O End if Sorting a Programming The AreaList Pro User Interface Text wrapping Wrapping text in a cell means that long lines will be split on word boundary if possible in a middle of a word otherwise and will continue on the next line if possible Note when word wrapping is enabled and a word does not fit into a column width the word is split e g TEXT can be split into TE XT on next line This text is too long to f
126. P Column DisplayControl property can be set to 4 meaning draw pictures Boolean Integer and Long integer arrays fields can be shown as pictures Set the format ALP Column Format to TruelD FalselD or TruelD FalselD MixedID for 3 state entry as controlled by ALP Column EntryControl 1 means use 3 state same as when drawing native checkboxes If the picture is not present in AreaList Pro s cache has not been set by AL Setlcon AreaList Pro tries to get it from the 4D s picture library If the respective picture ID in the format is not present or is zero nothing will be drawn For example 12345 will draw picture 12345 for True 1 and nothing otherwise and 4321 will draw picture 4321 for False 0 and nothing otherwise Flags Flags can be used to set various properties for the icons such as offset scaling and alignment Icons are loaded from AreaList Pro s picture library a k a picture cache populated with AL Setlcon or from 4D s Picture library with ALP Cell LeftlconID ALP Cell RightlconID The following flags can be used with the ALP Cell LeftlconFlags or ALP Cell RightlconFlags properties Flag Description offset width A number between 0 255 Offset from the cell border in points or icon width depending on the horizontal position See Alignment and offset horizontal position 0 default position left for left icon right for right icon 256 AL Icon Flags Horizontal Left Al
127. P Area EntryGotoRow 173 ALP Area EntryModified 49 ALP Area EntryRow 49 50 100 101 ALP Area EntrySkip 50 101 ALP Area EntryValue o o o oooooooo 65 ALP_Area_FillCache o o o oooo 251 ALP_Area_HdrindentH o o o o ocooo o 174 ALP_Area_HideHeaders 29 42 ALP_Area_Hierlndent 0004 60 ALP_Area_NumHdrLines 42 ALP Area NumRowLines 42 ALP Area RowlndentV 0004 42 ALP_Area_ScrollColumns 32 ALP_Area_Scrollleft 171 ALP_Area_SelMultiple 151 ALP_Area_SelNoAutoSelect 32 ALP_Area_SelRoW oocoooooooooo 30 41 ALP_Area_SelType o ocoocococcocococc 270 ALP_Area_ShowFooters 42 151 ALP_Area_ShowRowDividers 151 ALP_Area_ShowSortEditor 173 ALP_Af a Ort but mists ia 79 ALP_Area_SortColumn 0004 77 ALP_Area_SortLiSt 77 172 ALP_Area_SortPrompt 00 174 Index ALP Area SRPTableTemplate 199 248 ALP Area ToolTip cse ne 102 ALP_Area_UpdateData 250 251 ALP Area UseDateControls 135 ALP Area UseTimeControls 137 ALP Area Visible o o oooooo 267 ALP Cell Enterable 2 2 0040 ee eee ee 184 ALP Cell FontName
128. Pos Here is the resulting display for rows 3 6 mn 000000003 DEF 30123456789 some text ii adi ia 000000004 DEF 40123456789 some gt Ld pane 000000005 DEF 50123456789 some ia Lr 000000006 DEF 60123456789 some a Displaying custom pictures instead of AreaList Pro s native icons AreaList Pro s native icons for popups and hierarchical lists can be replaced with your own custom pictures Setting custom icons This is performed through the AL Setlcon command if the referenced icon is present in AreaList Pro s global picture library cache set by AL Setlcon with area reference 0 it will be used superseding internal icons popups hierarchical list triangles and per area picture library cache set by AL Setlcon with specified area reference Note currently the replacement for internal icons must match the size This will be enhanced in future releases Internal icon IDs and widths Use the following values in the IconID parameter of AL Setlcon in order to use your own pictures m Generic popup on MacOS ID 1 width 5 m Generic popup On Windows ID 1 width 7 m gt Date popup ID 2 width 15 m Time popup ID 3 width 16 m gt HL node right ID 4 width 9 m HL node down ID 5 width 9 AAA Seay Pictures Q Advanced Topics Value Mapping Value Mapping is a way to map one set of values to another for display purposes Suppose that each record in your database has a numeri
129. Property Self gt ALP_Area_DragSrcRow dragSrcCol AL_GetAreaL ongProperty Self gt ALP_Area_DragSrcCol dragType AL_GetAreaLongProperty dragSource ALP Area DragDataType dragDest Self gt ARRAY LONGINT aRows 0 Serror AL_GetObjects dragSource ALP_Object_Selection aRows get the rows selected by user If SdragType 1 selectedObject Row Else selectedObject Column End if Example 10 Drag and drop between areas o Tutorial Case of dragSource Self gt drag within the same area If Self gt eListRight evtDragWithin aRows aCityRight aStateRight dragDstRow Self Else evtDragWithin gt aRows gt aCityLeft gt aStateLeft dragDstRow Self gt End if dragSourcezeListLeft source is left area evtRowsDragged dragSource gt aCityL eft gt aStateLeft gt aCityRight gt aStateRight dragDstRow vitemLeft evtUpdate Text gt vltemRight gt aCityRight gt aStateRight Else source is right area evtRowsDragged dragSource gt aCityRight gt aStateRight gt aCityLeft gt aStateLeft dragDstRow vitemRight evtUpdateText gt vltemLeft gt aCityLeft gt aStateL eft End case End if The evtDragWithin project method updates the left or right area after a row s drag and drop from itself C POINTER 1 the rows dragged by user C_POINTER 2 gt source city array on itself C POINTER 3 gt source state array on itself C LONGINT 4
130. Qs 283 Hierarchy Fields How do you specify the hierarchy level an expansion when the AreaList Pro area is set up using fields Identically to arrays mode m add columns as usual m use ALP Object Hierarchy to set the hierarchy Note there could be a problem with sorting arrays with defined hierarchy can be sorted the arrays are not Sorted in hierarchy mode internal sort index is used fields are always sorted by 4D Hierarchy arrays If use arrays as it says will they automatically stay in sync with the field columns The arrays are used to create a hierarchy hierarchy of objects no flat arrays but they are not used afterwards they are not in sync even in arrays mode When you change the selection or arrays you have to re create the hierarchy You have to maintain the hierarchy information m get the current hierarchy including the expansion m insert the elements into the array AND the hierarchy arrays m set the new hierarchy m notify AreaList Pro of updating the arrays ARRAY INTEGER aLevel 0 ARRAY BOOLEAN aExpanded 0 ARRAY INTEGER or ARRAY LONGINT can be used too err AL_GetObjects2 area ALP_Object_Hierarchy aLevel aExpanded insert the row of interest into the data arrays insert corresponding row into the aLevel and aExpanded err AL_SetObjects2 area ALP_Object_Hierarchy aLevel aExpanded AL_SetAreaL ongProperty area ALP_Area_UpdateData 0 So using arrays ins
131. R a ee eb ee ee Eur ee 134 Display Miya att ate iux Se eae ean ye Roe ae eon 135 Dates 22 0 8 abit NI ede eet a teak ee Bt ee et da 135 Tine n icicesieem E wh U RENE 1 bead teed Pss ese ede Eure EORR EP ERES 137 Popup MENUS pe ro MER dete bebe a dh ree dq dE EP RE hed 138 Drag and DP weee a SORT RUEDA AUR UR cage RU p SOUL RR d T eae eee Rd dg 140 Config ring Drag and DOP s emis ao edem x uon RO e FR ee RR a BOR ec Rc e 140 What happens after a drop hh e 142 Accepting a Drag from a Non AreaList Pro Object 0 00 eee 143 Drag and Drop from an External File Example 0 0000 ete 144 Drag and drop from 4D iur od Stee edo aetema A RE cd gg vo wee Bac 146 GHGS qu C 147 List Style m D Be ee Lae a ew ee eee Kee es 147 Grid Styles D aja baaw do ee ded cae baths da eee a 147 TOtMINGlOGY 2 face E ROC EE ERE he ECHOS Ba AA ee eee 148 Creating a Gd esc Rx pe ee Bae AI REA Se eee RR RA OE ee Re RT 149 Re ordering Rows ina Grid 152 Grid Properties zs seu expen bese ROR note MESES A hace EXPE AREE RI ERR eee 152 hierarchical Lists ioc icy etait debent istae Bisa and ation So oe ded Sys atti dog 153 list Style idunt na bo a in inter oe tees os ete dope 153 Mi rarchicali List Style osa dda Riese bk eed nda da 153 How to create a Hierarchical List 2000 ee eee dma 154 Hierarchical List Properties secos mmm o moe ene ee e 156 xo P A area ceed A A RA ee eee P 158 Formatting picture columns
132. RDER BY Cities Cities State gt Cities City gt SELECTION TO ARRAY Cities City aCity Cities State aState Cities ld_letter aLetterld copy field values into arrays Example 12 Using Hierarchical Lists Q Tutorial The whole presentation is based on hierarchical indentation initiated by the one dimensional array displayLevel that contains the hierarchical level of each item displayed Every father has an original level O that is incremented by 1 for each son grandson etc C_TEXT oldstate oldld ARRAY LONGINT displayLevel 0 For i 1 Size of array aState Case of Soldstate aState i APPEND TO ARRAY StmplistArray aState i APPEND TO ARRAY displayLevel 0 APPEND TO ARRAY tmplistArray aLetter d i APPEND TO ARRAY displayLevel 1 APPEND TO ARRAY StmplistArray aCity i APPEND TO ARRAY displayLevel 2 Soldid aLetterld i APPEND TO ARRAY tmplistArray aLetter d i APPEND TO ARRAY displayLevel 1 APPEND TO ARRAY StmplistArray aCity i APPEND TO ARRAY displayLevel 2 Soldld aL etterld i APPEND TO ARRAY tmplistArray aCity i APPEND TO ARRAY displayLevel 2 End case oldstate aState i oldid aLetterld i End for COPY ARRAY tmplistArray aState Here we expand the CA state content ARRAY LONGINT expanded Size of array tmplistArray expanded 17 1 expanded 18 1 expanded 20 1 expanded 23 1 Display arrays in the AreaList Pro area Serror AL_AddColumn Self
133. ResizeColumn with values 0 1 See Column Automatic Resize ALP Area Compatibility bool depends AreaList Pro 8 x compatibility mode defaut value depends on initialization ALP Area CompHideCols long int Number of columns to hide compatibility mode only See Hiding columns ALP Area DataHeight real Total height of all columns If the value is greaterthan ALP Area ListHeight the vertical scrollbar will be active ALP Area DataWidth real Total width of all columns If the value is greater than ALP Area ListWiadth the horizontal scrollbar will be active ALP Area DontSetCursor bool false 0 When set AreaList Pro will not set the cursor Note the cell entry widget is not affected it maintains the cursor on its own ALP Area IsArea bool Is this an AreaList Pro area ALP Area Kind S text Object kind ALP ALP Area ListHeight real Height of the list area the data area not including the frame scrollbars header and footer ALP Area ListWidth real Width of the list area not including the frame and scrollbars ALP Area MoveCellOptions ALP Area MoveRowOptions s S S bool bool Move cell options with cells on sort Move row options with rows on sort and drag ALP_Area_Name text Name of the area if empty the variable name is initialized from the form variable name in design mode ALP_
134. Row ClearStyle v n a Clear the style of this row The area redraws automatically ALP Row Flags v vw Vv longint Bit mask of set features Properties not set are inherited from the column settings The following flags indicate what style options have been set at the row level 2 font name 4 font size 8 7 font style 16 text color 32 background color 64 horizontal alignment 128 vertical alignment 256 wrap 512 rotation 1024 baseline shift 2048 horizontal scale 4096 line spacing Maintained by AreaList Pro and should not normally be changed You can clear the flag if you want to force AreaList Pro to abandon row specific settings ALP_Row_FontName v vv tex Font name ALP Row HorAlign v v Vv long int 0 5 Horizontal alignment 0 7 default 1 7 left 2 7 center 3 right 4 justify 5 full justify ALP Row HorizontalScale v v Vv real 0 1 100 Horizontal scale ALP Row LineSpacing vv v real 1 0 1 10 Line spacing ALP Row Rotation viv wv real 360 360 Rotation of text ALP Row Size v wv v real 4 128 Font size ALP Row StyleB v v Vv bool Font style bold ALP Row StyleF v Vv V longint 0 7 Fontstyle using 4D style constants e g Bold Italic etc ALP Row Stylel v v Vv bool Font style italic ALP Row StyleU iv v bool Font style underlined ALP Row StyleXML viv text Description of the row style in XML ALP_Row_TextColor v vV Vv color Font color ALP Row VertAlign v v o longint 0 3
135. Sort editor event cio diced iuge is 76 AL_SuperReport 174 247 248 Alternate color row settingS 118 Alternate row coloring 115 201 281 Appearance ss tke Rr Apply to all Columns Area width isis usa a Array sizes Auto hide Automatic Resize Automatic text truncation ellipsis Boolean properties Bool atiS e Sad aide Peo baat pae t ao Boolean vValleS o oooooooo o Button s titles Cache clearing Cache Management Calculated column Calculated Column Calculated Column array mode Calculated Column field mode Calculated columns Index Index 289 Callback ieri rr rc 72 92 Callback parameters LL 92 93 94 Callbacks oooocoooo ooo 133 266 274 Cell coordinates 65 66 67 CheckboXx6S x i oi ee eet xt ae HEU ERR 71 Checktmalks 2 eem RR hme xs 277 Click Action iis badd oe bo ee bene eeds 98 CIickshiold arar et rem ricas bs 69 CliCkimodes eme e cen eame ee 68 Color text sion ex RR RS 83 Column Automatic ResiZe 198 Colu rmn iolor isnt Geist bh Monat Sie 281 Column co ht ei scs rs 171 Column in grid 2000020 o 148 Column number 0 00000 eee ee 70 Column numbers 0005 106 107 Column order o 106 108 COMUNAS es 24 2 202 poe be RR ede RE RE eed 107 Column
136. The example form contains two AreaList Pro areas and four text variables which will display information about the user s actions It also includes two Popup Drop down lists to select the Click event report type and the Click type to trigger entry mode Example 11 This is Example 11 from the Reference Manual which was built to illustrate the use of AL GetAreaLongProperty 0 ALP Area AlpEvent formerly AL GetLastEvent command elistLeft w 235 h 160 eListRight w 235 h 160 AreaList Pro v9 3b1 AreaList Pro v9 3b1 Oe Node SA 2011 2012 e Node SA 2011 2012 Last event left Last event right vLeftEventText vRightEventText Click report E ReportEvent_R B Entry mode EntryMode R B Last event global vGlobalEventText Last Drag amp Drop vDraginfo Done The user s actions are monitored through the user of an On Timer event which is set up in the form method In the On Load phase the timer is set to execute every 10 ticks Case of Form event On Load vGlobalEventText vDragInfo SET TIMER 10 Then in the On Timer form event the user s last action is captured by ALP_Area_AlpEvent with areaRef 0 for all areas and passed to the AlpEventText method for parsing Form event On Timer AlpEventText AL_GetAreaLongProperty 0 ALP_Area_AlpEvent gt vGlobalEventText 1 0 all areas End case The Click report Popup sets the click report type through the ALP_Area_SelC
137. Using any color format see Working with Colors AL GetCellSel AL GetObjects ALP Object Selection AL GetCellStyle AL GetCellValue AL GetCellTextProperty ALP Cell FontName AL GetCellLongProperty ALP Cell StyleF AL GetCellPtrProperty ALP Cell Value AL GetClickedRow AL GetAreaLongProperty ALP Area ClickedRow AL GetColLock AL GetAreaLongProperty ALP Area ColsLocked AL GetColOpts AL GetAreaLongProperty ALP Area ColumnResize ALP Area ResizeDuring ALP Area ColumnLock ALP Area ShowWidths ALP Area DragColumn ALP Area DragAcceptColumn AL GetColumnLongProperty ALP Column Visible for column hiding AL GetColumn AL GetAreaLongProperty ALP Area ClickedCol AL GetCopyOpts AL GetAreaLongProperty ALP Area CopyHiddenCols ALP Area CopyFieldSep ALP Area CopyRecordSep AL GetAreaTextProperty ALP Area CopyFieldWrapper New API uses Text not single character AL GetCurrCell AL GetAreaLongProperty ALP Area EntryRow ALP Area EntryColumn AL GetDragCol AL GetAreaLongProperty ALP Area DragSrcCol ALP Area DragDstCol ALP Area DragDstArea AL GetDragLine AL GetAreaLongProperty ALP Area DragSrcRow ALP Area DragDstRow ALP Area DragDstArea AL GetDrgArea AL GetAreaLongProperty ALP Area DragDstArea ALP Area DragDstProcessID AL GetDrgDstCol AL GetAreaLongProperty ALP Ar
138. Vertical Bottom 159 160 AL Icon Flags Vertical Center 159 AL Icon Flags Vertical Mask 159 AL Icon Flags Vertical TOP 159 Alignment text llle mesia 83 106 191 Index AL ModifyArrays ko eriaren a a nne a 181 AL Mouse moved event 0005 102 AL Object drop event 0004 143 ALPO9 license4Dplugin llle 19 ALP_Area_AllowSortEditor 151 ALP_Area_AlpEvent ALP_Area_AltRowOptions 151 156 ALP_Area_CalendarLook 116 136 211 ALP_Area_CallbackMethEntryEnd 65 92 ALP Area CallbackMethEntryStart 50 101 ALP Area CallbackMethOnEvent 102 144 ALP Area CheckData 250 251 ALP Area ClearCache 145 250 251 ALP Area ClickedRow llle 41 ALP_Area_ColsInGrid 64 150 151 ALP_Area_Columns 171 175 ALP_Area_Compatibility 31 ALP_Area_DragDst rea o o o ooooooo 56 ALP_Area_DragDstRowCodes 141 ALP_Area_DragOptionKey 141 ALP_Area_DragSrcArea 0045 145 ALP_Area_DragSrcRow 143 170 ALP_Area_DragSrcRowCodes 141 ALP_Area_EntryClick 46 151 280 ALP Area EntryColumn 50 100 101 ALP Area EntryFirstClickMode 69 98 207 Index ALP_Area_EntryGotoColumn 173 AL
139. WidthUser are accessors to ALP Column Width and ALP Object ColumnWidthUser For example instead of looping through all columns and asking for ALP Column Width using AL GetColumnLongProperty you declare an array and call AL GetObject with ALP Object ColumnWidath to fill it ALP Object ColumnWidthUser is the width of a column zero means calculate it from the data displayed by this column auto size ALP Object ColumnWidth is the current width of a column It is either equal to ALP Object ColumnWidthUser or calculated from the data if ALP Object ColumnWidthUser is zero auto size ALP Object ColumnWidthUser originally has the value specified by the developer If the user resizes a column it becomes the user specified value which can be zero the user double clicked the separator in the column header In other words these two properties always have the same value except for auto size where ALP Column WidthUser is zero and ALP Column Width is the actual width computed from the data You can use both ALP Column WidthUser and ALP Column Width in the setter which will set both properties and zero will trigger column width recalculation then ALP Column Width will be set and ALP Column WidthUser will be zero Dc H a ed Column numbers in compatible mode off Column widths Q Columns Saving original settings Yo
140. a DefFmtlnteger dfin ALP Area DefFmtLong dflo ALP Area DefFmtPicture dfpi ALP Area DefFmtReal dfre ALP Area DontSetCursor DSCU ALP Area DontSortArrays sono dontSortArrays ALP Area DoubleClick evtD ALP Area DragAcceptColumn ddac acceptColumnDrag ALP Area DragAcceptLine ddal acceptLineDrag ALP Area DragColumn ddco dragColumn ALP Area DragDataType ddDT ALP Area DragDstArea ddDA ALP Area DragDstCell ddDc ALP Area DragDstCellCodes dddc dstCellCodes ALP Area DragDstCol ddDC ALP Area DragDstColCodes dddC dstColCodes ALP Area DragDstProcessID ddDP ALP Area DragDstRow ddDR ALP Area DragDstRowCodes dddR dstRowCode ALP Area DragLine ddin dragLine ALP Area DragOptionKey ddra dragWithOptionKey Property Values Constants and XML Names Property Constant Property Value selector pv Appendix Codes Property XML Name ALP Area DragProcessID ddpn ALP Area DragRowMultiple ddrm multipleRowDrag ALP Area DragRowOnto ddro ontoRow ALP Area DragScroll ddps dragScroll ALP Area DragSrcArea ddSA ALP Area DragSrcCell ddSc ALP Area DragSrcCellCodes ddsc srcCellCodes ALP Area DragSrcCol ddSC ALP Area DragSrcColCodes ddsC srcColCodes ALP Area DragSrcRow ddSR ALP Area DragSrcRowCodes ddsR srcRowC
141. a RowDivColor v v v color 4FF808080 Row divider color default is gray Color Options Constant ALP Area CalendarColors Get Column Properties Use these properties with commands in the Columns theme Constant ALP Column HdrTextColor Get v Set Set Per Per Type text Type color Default Default FFO00000 Min Min Q Working with Colors Max Comments 8 colors separated with to be used by the date calendar popup First 5 colors define object backgrounds active month inactive month selected date current date current selected date Next 2 colors define foreground numbers in active month numbers in inactive month 8 parameter is the popup background color it needs a non zero alpha channel to be set e g FFEQF1FF instead of E9F1FF When not set explicitly default colors depend on ALP Area CalendarLook To restore the default colors as if ALP_Area_ CalendarColors was not set pass an empty text value Default values are OOFFFFDD HOOEEEEEE 00EEAAAA OOFF8888 00FF5555 00000000 00444444 00CCCCCC for the regular default calendar look and FFFFFFFE FFFFFFFE HOOEEEEEE OOFF8888 008F8F8F 00000000 00444444 FFFFFFFC for the alternate Date popup according to ALP_Area_CalendarLook Max Comments Font color Default is black 116 ALP_Column_FtrBackCo
142. a Ru bed dew doa wes we sede aces Gub E vom ak 32 What s NeWeae nia oe ance RR AL To D ERROR NS A eee Ue Jo oin ee IE De d 37 Tutorial 40 Example 1 Loading an array from a 4D list lille 40 Examiple 2 Add header teXt xx sess scd ee een coded ao uon goa odor dusk t ede ed ea eee gods 43 Example 3 Creating arrays from a 4D table llle 44 Example 4 Allow multi row selection 2 ssas eek mno a dae oh RR dp OR E NUR RR RERO E e 45 Example 5 Allow data entry via double click 0 0 llle 46 Example 6 Specifying which columns are enterable 0 0 0 eee 47 Example 7 Using a callback method to check data entry validity 0 0 0 ee eee 48 1 Create the callback Method 2 up Awol nat ii EROR Me ee ea eS eee ee 49 2 Tell AreaList Pro when to call the callback method 2 0 00 eee eee eee 49 Example 8 Using both an Entry and Exit callback 0 2 00 ee 50 1 The Entry Callback method 2 dx eot E a Coe eos ee Rs 50 2 Tell AreaList Pro when to call the callback method 0 0 00 eee eee eee 50 Example 9 Using an Event callback instead of the On Plug in Area event l l sels 51 Example 10 Drag and drop between areas llle 52 Example 11 Determining a user s action llle 57 Example 12 Using Hierarchical Lists opi brace Ron o obest Prada Card M Robur act Curae 59 Example 13 GfildSs ren era paii aa a et Espace See todo eis Bue ee edt oes 62 Example 14 Date
143. aList Pro when to call the callback method AL SetAreaTextProperty eLis ALP Area CallbackMethEntryStart EntryCallback 2 RR Example 8 Using both an Entry and Exit callback Q Tutorial Example 9 Using an Event callback instead of the On Plug in Area event This example shows how a generic event callback project method can be installed to replace the On Plug in Area event This is performed with the AL_SetAreaTextProperty command using the ALP_Area_CallbackMethOnEvent property which instructs AreaList Pro to call the EventCallBack09 project method instead of sending the On Plug in Area event to the object method and form method Case of Form event 0n Load AL SetAreaTextProperty eList ALP_Area_CallbackMethOnEvent EventCallBack09 set event callback End case The EventCallBack09 method checks various AreaList Pro Events to find out what triggered the callback and what to do about it C LONGINT 0 C LONGINT 1 C LONGINT 2 C LONGINT 3 C LONGINT 4 C LONGINT 5 row last clicked row C LONGINT 6 modifiers ARRAY LONGINT aRows 0 Serror AL_GetObjects 1 ALP Object Selection aRows get the rows selected by user evtUpdateText gt vltem gt aCity gt aState event description 0 0 event handled Il object method and form method will not be executed if 0 AreaList Pro area AreaList Pro event 4D event column last click
144. ach command affects just one property for the area making your code much easier to understand and debug The new commands are organised into themes which relate to a particular part of the AreaList Pro area Area Cells Columns Objects Rows and some miscellaneous Utility commands For each theme except Objects and Utility there is a group of four Getter functions and four Setter commands each targeting a different property type For example the Area theme has the following Getters and Setters AL GetAreaLongProperty AL SetAreaLongProperty AL GetAreaPtrProperty AL SetAreaPtrProperty AL GetAreaRealProperty AL SetAreaRealProperty AL GetAreaTextProperty AL SetAreaTextProperty For example the old AreaList Pro command AL SetCopyOpts had four parameters to set copy options for the area m include hidden columns Field separator for Edit menu copy m Record separator for Edit menu copy Field wrapper for Edit menu copy A call to this command would look something like this AL SetCopyOpts area 1 include hidden columns in Edit menu Copy use the default Field and Record delimiters for Edit menu Copy no field wrapper When debugging or modifying the code it s difficult to know what each of those parameters means In the new API this would be replaced with four commands each setting one option For example you could use the AL SetAreaPtrProperty command bTrue True tBlank err AL_SetAreaPtrProp
145. ame as the license file name instead of the serial machine ID e g 123456 ALP9 xyz Passing a master key as the first parameter to AL Register when the plugin has not been previously registered by any of the methods above will result in a connection attempt to e Node s license server as described below Registering your AreaList Pro License Installation Process If the plugin has not been previously registered through online registration text file register button or AL Register with a final key and if AL Register receives a master key in its first parameter it will recognize it a such then 1 Connect to e Node s license server 2 Ask the server if the master key has not been assigned yet or if the master key is designed to generate several final keys if there is any unassigned key up to that number 3 Send the serial information regular licenses or the machine ID merged licenses to the license server 4 If an error is detected such as master key not matching the current setup return an error to AL Register 5 If the master key is valid receive its final key from the license server then register itself writing into the license file Note if a final key has already been issued for this serial machine ID using this master key it is simply resent User interface In addition AL Register second parameter allows optional settings regarding the user interface in the online registration process Display a
146. ame cell with the command Serror AL_SetAreaPtrProperty 1 ALP Area EntryValue date Example 15 Cell coordinates properties Example 15 Cell coordinates properties This example demonstrates the use of all cell coordinates properties Example 15 City Mobile Fayetteville Little Rock Phoenix Tuscon Petaluma Los Angeles Palm Springs San Diego Hartford Washington Wilmington Ft Lauderdale Miami Orlando Atlanta Chicago Baton Rouge Boston Detroit Fayetteville Albuquerque Example 15 State AL AR AR This is Example 15 from the Reference Manual which was built upon Example 9 to illustrate the various cell coordinates properties All cells can be edited ALP Area ClickedCell Column from Clicked Cell ALP Area ClickedCol ALP Area ClickedRow ALP Area SelCol ALP Area SelRow Selected RollOver col callback Selected RollOver row callback ALP Area RollOverCell Column from RollOver Cell ALP Area RollOverCol ALP Area RollOverRow ALP Area EntryCell ALP Area EntryColumn ALP Area EntryRow ALP Area EntryPrevCell ALP Area EntryPrevColumn ALP Area EntryPrevRow ALP Area EntryGridCell Column from Entry Grid Cell ALP Area EntryPrevGridCell Col from Entry Prev Grid Cell Done An entry callback and event callback methods are set AL SetAreaTextProperty eLis ALP Area CallbackMethEntryStart EntryCallback15 set entry callback to project method EntryCallback15 AL SetAreaTextProperty
147. an create your own text prompt for the AreaList Pro sort editor AL SetAreaTextProperty area ALP_Area_SortPrompt My custom prompt message AL_SuperReport AreaRef L Template T Options L StyleOptions L Title T gt result T Parameter Type Description gt AreaRef longint Reference of AreaList Pro object on layout gt Template text XML SuperReport template or full path to a XML template or empty to use AreaList Pro s built in template gt Options longint 0 use current columns widths 1 use automatic width gt StyleOptions longint Style properties that should not be overtaken by AreaList Pro see constants in SuperReport Pro manual Style Features gt Title text Optional text centered in the header result text Fills a SuperReport Pro report with the area information for printing See the Printing with SuperReport Pro section Area Q Command Reference Columns The commands in this theme affect columns within the AreaList Pro area The properties that can be used with these commands can be found in the AreaList Pro Column Properties theme For some of the Column properties mainly style properties you can use 0 as the Column Number to accessing the default values for newly created or re initialized columns If the Column Number is 2 the property will be applied to all existing columns from 1 to ALP_Area_Columns AL GetColumnLongProperty AreaRef L Column L Prop
148. ant can be used in Getter commands Set whether it can be used in Setter commands Per Persistent If a property is persistent it means that the property is saved with the area definition and will be applied when the area is displayed again Type the type of the value Bool boolean value True 1 or False 0 Longint a long integer Real a real number Text an alphanumeric Color the Color type will accept seven methods whether as string values or longint values See Working with colors Cell a string containing both row number and column number separated by a comma row column e g 5 3 is the cell located at the fifth row third column Default the default value that will be used for this property unless you specify otherwise Min the minimum acceptable value where appropriate Max the maximum acceptable value where appropriate Comments a description of the constant and where appropriate a list of allowable options Properties by Theme AreaList Pro Area Properties Use these properties with commands in the Area command theme AL AddCalculatedColumn AL AddColumn AL GetAreaLongProperty AL GetAreaPtrProperty AL GetAreaRealProperty AL GetAreaTextProperty AL SetAreaLongProperty AL SetAreaPtrProperty AL SetAreaRealProperty AL SetAreaTextProperty Properties by Theme For some Area properties pertaining to areas e g ALP Area UseDateControls or ALP Area ClickDelay not global settings you
149. as 1234567 m Merged licenses are used for double clickable applications built with 4D Volume Desktop single user or with 4D Server by means of the 4D Compiler module These licenses are linked to the machine ID single user workstation or server you need to provide the number returned by the Copy or eMail buttons from the plugin demonstration mode alert this number is calculated from the single user or server machine UUID On 4D Server any remote client will return the server number This number is a positive short integer such as 12345 In both cases the demonstration mode dialog will display the proper number according to the current setup regular or merged and the Copy and eMail buttons will use it as well Free updates m Regular licenses A new license will be supplied for free at any time maximum once a year if you change your 4D version or get a new 4D registration key for the same version provided that your previous license match the current public version at exchange time This rule applies whether you are already using the new version or not just specify that you also want a key for the older version as well as the current one when you order an upgrade m Merged licenses These licenses are independent of the 4D version and 4D product number They will remain functional if you upgrade e g from 4D v14 to 4D v15 on the same machine single user workstation or server You ll only need to update a merged license if yo
150. as ProductList and Selectedltems and you want to enable items to be dragged from ProductList and dropped onto Selectedltems You might decide on the access code select To enable row dragging you will need two lines of code AL SetAreaTextProperty ProductList ALP Area DragSrcRowCodes select AL SetAreaTextProperty Selecteditems ALP Area DragDstRowCodes select You can list any number of access codes For example suppose you have four AreaList Pro areas on a form AreaA AreaB AreaC and AreaD You want to allow drag and drop from AreaA to AreaB or C and from AreaD to AreaC but not AreaB 1 Create two access codes dropB and dropC 2 Set the code properties for the four areas as follows AL SetAreaTextProperty reaA ALP Area DragSrcRowCodes dropB dropC AL SetAreaTextProperty reaD ALP Area DragSrcRowCodes dropC AL SetAreaTextProperty reaB ALP Area DragDstRowCodes dropB AL SetAreaTextProperty reaC ALP Area DragDstRowCodes dropC Note that the items in the list of codes are separated by a pipe character dropB dropC You can specify different codes for cells rows and columns That s all you need to do to enable basic drag and drop functionality between two areas with default settings Alt Option key A default setting that you may want to change is the drag with Alt key option The default setting for this is that the user must hold down the Alt or Option key to effect a
151. as a parameter to set colors for rows text etc Note that the 4D function Select RGB Color performs a similar function but without the alpha channel AL Load AreaRef L XML T gt result L Parameter Type Description gt AreaRef longint Reference of AreaList Pro object on layout gt XML text XML data that was saved using the AL Save command result longint 0 if the XML was loaded OK 1 if not Initialize an area from an XML using UTF 8 text that was saved to a text field or variable using the AL Save command Please see the section on XML for more details about saving and loading XML Example This example initialises an AreaList Pro area using settings that were saved into a field in the database err AL_Load area Settings ALP template Utility Q o Command Reference AL Register registrationCode T options L email T gt result L Parameter Type Description registrationCode text Pass the registration key to register your copy of AreaList Pro The key is either linked to the 4D or 4D Server serial number individual licenses to the machine ID merged licenses to the name of the company developer unlimited annual licenses or to the product master keys for Online registration gt options longint An optional longint combining up to 4 bits Bit number Description 0 Force check if this bit is is on true registrationCode is tested regardless of current regist
152. as been dropped ARRAY TEXT 4Dsignatures 0 ARRAY TEXT nativeTypes 0 ARRAY TEXT formatNames 0 GET PASTEBOARD DATA TYPE 4Dsignatures nativeTypes formatNames Note the On Drop event code will work correctly when used in an area s object method but in an event callback the form event is zero and drag amp drop properties from 4D will not function Drag and Drop 146 Q pus Advanced Topics Grids In addition to displaying fields and arrays in a spreadsheet style row and column layout AreaList Pro version 9 also enables you to display your data in grids Think of a grid as a table within a row that s table in the sense of tabular data not a database table This gives you many more ways to present your data As an example compare these two AreaList Pro areas Product Type Price Description Chocolate 3 Dark Chocolate 2 50 Better for you dark chocolate has b Chocolate Milk Chocolate 2 75 Made with full fat organic milk Chocolate White chocolate 2 50 The chocolate purist might argue th Nuts Nuts 2 25 An assortment of peanuts cashew n List Style Description Chocolate Better for you dark chocolate has been shown Dark Chocolate to have healthy qualities How many more 2 5 reasons do you need Chocolate Made with full fat organic milk Milk Chocolate 2 75 Chocolate The chocolate purist might argue that it s not White chocolate really chocolate
153. ate window Open external window 100 100 800 800 Plain form window SuperReport Pro template for AreaList Pro SuperReport open the window for editing srpError SR_LoadReport window tableReportTemplate 0 load the SRP report and display it save the custom template somewhere with the File menu End if closing the window will prompt for save if modified Demonstration database code examples Q he Cache Management Cache Management Understanding how the internal AreaList Pro cache works and how to manage it depending on the area changes performed by the user or programmatically can help optimize your code and know when to refresh displayed data Data updating Data checking and Cache clearing Three properties Calling AL SetAreaLongProperty Sarea ALP_Area_UpdateData 0 is the same as calling AL SetAreaLongProperty Sarea ALP_Area_ClearCache 2 AL_SetAreaLongProperty Sarea ALP_Area_CheckData 0 Examples After row was modified in arrays selection AL_SetAreaLongProperty area ALP_Area_ClearCache row After several rows were modified e g sorted AL_SetAreaLongProperty Sarea ALP_Area_ClearCache 2 or you might call but it is really different in the amount of work done depending on settings AL_SetAreaLongProperty Sarea ALP_Area_UpdateData 0 After resizing arrays selection without modifying the data e g adding removing a row at the end AL_SetAreaL
154. ay a Boolean as Yes or No in column 5 AL_SetColumnLongProperty area 5 ALP_Column_DisplayControl 1 AL SetColumnTextProperty area 5 ALP_Column_Format Yes No Dates There are two options for date controls inline and popup Inline Date Control An inline date control looks like this 03 06 2011 With this type of control the user selects an element of the date ie the day month or year and clicks the up or down arrows to increase or decrease the selected value It will only accept valid dates Inline date controls are specified for an entire area with the ALP Area UseDateControls property of AL SetAreaLongProperty for example AL SetAreaLongProperty area ALP Area UseDateControls 1 Data Entry Controls Q Advanced Topics m Popup Date Control A popup date control appears as a little calendar when the data is being edited 00 00 00 Click on the calendar icon and a calendar opens AA E June 2015 SunMonTue Wed Thu Fri Sat Week tae ae Be se 23 8 9 10 11 12 13 15 16 17 18 19 20 22 23 24 MN 26 27 24 25 26 29 30 1 2 3 4 27 6 7 8 9 10 11 28 To jump to the current date click on the middle button Choose the date you want to insert by clicking or double clicking on it To specify a popup date control use the by popup option of the ALP_Column_Enterable property for example to specify a date popup for column 6 AL SetColumnLongPro
155. ays work Data column 1 Data column 2 Hierarchy level Expansion status Product type Product name array array Chocolate 0 1 Milk chocolate 1 0 Dark chocolate 1 0 Nuts 0 1 Cashews 1 0 Pecans 1 0 The hierarchical list is initiated by calling the AL SetObjects2 command with the ALP Object Hierarchy parameter the hierarchy level array and the expansion status array Serr AL_SetObjects2 area ALP_Object_Hierarchy aiLevel aiExpanded Alternatively you can call AL_SetObjects with a two dimensional array Example In this example we are going to create the hierarchy shown at the beginning of this topic We have a number of product records which each have a Product Type selected Chocolate Nuts etc We will need to 1 Select the records to include 2 Sort them first by Type and then by Product Name EE Hierarchical Lists Q Advanced Topics 3 Build the Hierarchy Level array inserting elements into the arrays for each product type break Select the records sort them and copy them into arrays ALL RECORDS product ORDER BY product product product type product product name SELECTION TO ARRAY product product type atType product product name atName product description atDescription product retail price arPrice Add columns to the AreaList Pro area err AL_AddColumn area gt atType err AL_AddColumn area gt atName err AL_AddColumn area gt atDescription
156. be available to that database On MacOS this means that the Plugins folder must be placed within the database package or folder To open a package ctrl click on the package and choose Show Package Contents from the contextual menu Using AreaList Pro in Demo mode You can use AreaList Pro in Demo mode for 20 minutes after which time it will cease to work When this becomes annoying it s time to buy a license which you can do on our website Licenses are either linked to the 4D product number the workstation or the company name as described below cL C SS 1 Installing the plugin Using AreaList Pro in Demo mode Installation Licensing Like all e Node plug ins AreaList Pro offers several license types There are no such things as MacOS vs Windows or Development vs Deployment For current pricing please see the ordering page on our website Definitions m Regular licenses are used for applications that are opened with 4D Standalone or 4D SQL Desktop or with 4D Server either in interpreted or compiled mode doesn t make a difference regarding plugin licensing These can be either single user or server databases and they are linked to the 4D or 4D Server license you need to provide the number returned by the Copy or eMail buttons from the plugin demonstration mode alert this number is actually the 4D command GET SERIAL INFORMATION first parameter This number is a negative long integer such
157. bility mode on Once the grid has been cleared or if it has not been not defined it is re created from visible columns Hiding columns Grid clearing Columns 110 Calculated columns AreaList Pro columns can be calculated on the fly to display the results of calculations performed in a callback method This feature is available for both field and array modes Setting a Calculated Column field mode The AL AddCalculatedColumn command is used to set up calculated columns in field mode The following table shows the data types that may be displayed in a calculated column in field mode Constant Value Is Alpha Field 0 Is Real Is Text Is Picture Is Date Is Boolean Is Integer Is LongInt O O D B 0O N Is Time For example to display a calculated column of type Real pass Is Real 1 in the DataType parameter and the Calculated Column Callback in the CallbackMethodName parameter Setting a Calculated Column array mode The ALP_Column_Calculated property is used to set up calculated columns in array mode This property can only be set in this mode To make an column calculated use AL_SetColumnLongProperty area column ALP_Column_Calculated 1 AL_SetColumnTextProperty area column ALP_Column_Callback methodName The callback parameters are expected to be declared as area L column L type L ptr W first L count L This callback metho
158. bject Hierarchy HIER ALP Object RowHide rhid ALP Object RowSelection ROWS ALP Object Selection SELC ALP Object Sort SORT ALP Object SortList soli ALP Object SortListNS soLl ALP_Object_Source src ALP Object Type type ALP Object Visible visi Property Values Constants and XML Names Property Constant Property Value selector Q o Appendix Codes Property XML Name ALP Row BackColor belr backColor ALP_Row_BaseLineShift basl baseLineShift ALP_Row_Clear clr ALP Row ClearStyle sclr ALP_Row_Collapse hicr ALP_Row_CollapseAll hica ALP_Row_Expand hier ALP Row ExpandAIl hiea ALP Row Flags flgs features ALP Row FontName fnam font ALP Row Height high height ALP Row Hide rhid ALP Row HorAlign halg halign ALP Row HorizontalScale hors hScale ALP Row Kind kind ALP Row Level hile ALP Row LineSpacing lisp lineSpacing ALP Row Parent hipa ALP Row Reveal reve ALP Row Rotation rotd rotation ALP Row RowOffset roff offset ALP Row ScrollTo scto ALP Row Size size size ALP Row StyleB styB bold ALP Row StyleF styF qdStyle ALP_Row_Stylel styl italic ALP_Row_StyleS styS strike through ALP_Row_StyleU styU underline ALP Row StyleXML Axml ALP_Row_TextColor telr textColor ALP_Row_VertAlign valg valign ALP Row Visible visi ALP Row Wrap wrap wrap ALP Row XML xml ALP Row XML xml xml
159. bject methods are called with the On Load event At this point you can set the initial selection of rows In case you modify the 4D record selection you must inform AreaL ist Pro with ALP Area CheckData or ALP Area UpdateData if the selection was previously not empty and has changed The order is important If you are modifying the 4D selection especially from an empty one you need to inform AreaList Pro and only then can you set the row selection not before If you don t inform AreaList Pro of the change it will detect it automatically on the first update event and show the records but you can t modify the selected rows until AreaList Pro knows that there are any rows at all This is the reason why On Timer is working for you If the selection is not empty before initializing the area it will simply work Responding to user events AreaList Pro does not respond appropriately to user events such as single or double clicks See the Events topic in the Programming the AreaList Pro Interface chapter and refer to the list of event codes I m not getting any Event 2 from ALP_Area_Event when double click This property returns the raw event not the AreaList Pro event For mouse down it is 1 key down is 3 mouse moved is 18 To get what you expect ask for the AreaList Pro event not the general event event AL_GetAreaLongProperty eArea ALP_Area_AlpEvent Events Q Appendix Il Troubleshooting and FA
160. c value stored in a field This numeric value is meaningful to your program but meaningless to a human it would be much more useful for the user to know what those numeric values actually mean One way to handle the problem would be to create a new text array loop through all the records or array elements and populate the text array according to the values found in the numeric array Value mapping is a much more efficient way to handle the situation AreaList Pro needs two sets of values one set of values that are compared to values stored in a field or array and another set of values that are displayed in the column In the case of two arrays stored values are looked up in the array passed in ALP_Column_PopupArray property and displayed values are from the ALP Column PopupMap array In the case of ALP_Column_PopupMenu stored values are looked up in menu item parameters and displayed values are menu titles The column that uses mapping does not need to be enterable by popup The best way to create a value map is using a combination of the ALP_Column_PopupArray and ALP Column PopupMap properties Both properties are persistent and the mapping is done directly in AreaList Pro AreaList Pro creates a 4D menu for the popup which is accessible though ALP Column PopupMenu which is not persistent Another way is to use a developer supplied 4D Menu In this case AreaList Pro has to call 4D to get the elements of the
161. can be triggered by three methods m User click on another part of the AreaList Pro area not on a non focusable 4D object or another window from any application as of version 9 9 The entry will also be ended when a non focusable object is clicked and ALP Area lIgnoreSoftDeselect is set to true see the explanation about Soft deselect m Return or Tab keys with or without shift to the next or previous shift enterable cell in the AreaList Pro area note that the Enter key can be mapped to Return or Tab according to the ALP Area EntryMapEnter property m Programmatically Entering Data a Programming The AreaList Pro User Interface Events In many situations you will want to know what the user did which cell they edited which row they dragged and so on You can get this information by calling the AL GetAreaLongProperty command with the ALP_Area AlpEvent option For example to find out how many columns the user sorted on after opening the AreaList Pro Sort Editor you can use the following code in the area s object method event AL_GetAreaLongProperty Self gt ALP_Area_AlpEvent Case of Sevent AL Sort editor event sorted AL_GetAreaTextProperty Self gt ALP_Area_SortList gets list of sorted column numbers sortcount AL_GetAreaLongProperty Self gt ALP_Area_Sort how many columns were sorted End case You can find a complete list of event codes and their meanings in the AreaList Pro Event codes section
162. ce This gives you the ability to use this callback method for more than one AreaList Pro object The last three parameters are absolutely necessary m The second parameter is the column number This gives you the ability to use this callback method for many columns within a AreaList Pro object m The third parameter is the type of data in the column field type or array type m In field mode the fourth parameter is a pointer to one of the temporary 4D Arrays used internally by AreaList Pro This is where you will load the data to be displayed in the column In array mode this is a declared fully sized 4D array by you as the developer you have to fill the requested elements m The fifth parameter is the number of the first cell that needs to be filled in the column This is the same as the selected number of the row that contains this cell m The sixth parameter is the number of cells rows to be filled in the column You must declare all six parameters 1 to 6 in the calculated column callback If any of these parameters are not declared you will get an error when compiling the database You must use the following declarations in your callback method C LONGINT 1 2 3 5 6 C_POINTER 4 See Calculated Columns for details Calculated Column Callback Q Using the Callback Methods Using Callback Methods During Data Entry Two main callbacks are available to monitor data entry into a cell when entering and exi
163. confirmation dialog hefore step 1 Warning Is it OK to connect to e Node s license server to register AreaList Pro Display an alert at step 4 Alert An error 1 occurred while trying to register AreaList Pro with e Node s license server Display an alert at step 5 Alert AreaList Pro is now successfully registered Registering your AreaList Pro License 21 Installation 22 eMail notification The third parameter to AL Register optional is the developer email to whom the information will be sent if this parameter is used and non empty of course The emailed information includes both the final key issued and the IP address from where it was requested and to where it was sent for registration m When a key is issued Title ALP9 license Bogy License 123456 123456789 abcdefgh issued to 12 34 56 78 m When a key is resent Title ALP9 license Bogy License 123456 123456789 abcdefgh resent to 12 34 56 78 The default mode master key being passed as the only parameter is silent no confirmation no alert no email Registering your AreaList Pro License Getting Started with AreaList Pro 23 Getting Started with AreaList Pro Creating your first AreaList Pro Area It s easy to create your first AreaList Pro list area 1 Create a new form or open an existing one that you want to add a list to 2 Choose Plug in Area from the Plugin Subform Web Area but
164. ct ALP_Area_lgnoreSoftDeselect must be false 0 default value AL Other cell popup action 10 Click on cell popup when cursor not already in cell AL Active cell popup action 11 Click on cell popup when cursor already in cell The callback method is actually a function It must return True for the value entered into the cell to be accepted and False for the value to be rejected If the value is rejected the user will not be allowed to leave the cell When displaying arrays and data entry is initiated in a cell the contents of the array element will be copied into the zero element of the array being displayed in the column Please read the section Undo value for more information When fields are displayed the contents of the field are not copied Thus it is up to you to save the field contents in the entry started callback method if they will be needed for comparison in the entry finished callback method When displaying arrays and the entry finished callback method is executed the array element corresponding to the cell has already been updated with the new value that was entered by the user Thus the zero element which contains the old data and the element representing the current cell can both be used to determine data validity Among the possible situations and responses that may occur are the following m The data is valid Set 0 True to complete data entry for the cell m The data is invalid Copy the old data f
165. d ALP Cell TextColor color Font color ALP Cell VertAlign SISISIS SI SUS 8 SISISIS long int Vertical alignment 0 default 1 top 2 7 center 3 bottom ALP Cell Wrap bool Wrap long lines AreaList Pro Cell Properties Q p Properties by Theme AreaList Pro Object Properties Use these properties with commands in the Objects command theme AL GetObjects AL GetObjects2 AL SetObjects AL SetObjects2 None of these properties can be persistent Constant Get Set Array Type Comments Object Properties ALP Object Columns v v pointer Pointers to data source All columns add columns to the area or get a list of the area s columns ALP Object ColumnWidth v v real Current width of all columns Must use ARRAY REAL ALP Object ColumnWidthUser v v real Width of all columns as defined by the programmer or the user resizes or auto resizes See ALP Column Width and ALP Column WidthUser ALP Object DragDstCellCodes v v text Drag destination cell codes Can be used with DropArea ALP Object DragDstColCodes v v text Drag destination column codes ALP Object DragDstRowCodes v v text Drag destination row codes ALP Object DragSrcCellCodes v v text Drag source cell codes ALP Object DragSrcColCodes v v text Drag source column codes ALP Object DragSrcRowCodes v v text Drag source row codes ALP Object Fields v long int Table fiel
166. d in which case you pass a pointer to the field in the DataPointer parameter or an array in which case you pass a pointer to the array in the DataPointer parameter In addition to passing one dimensional arrays you can also pass the first element of a two dimensional array In this case the first dimension relates to columns and the second dimension relates to rows see the example below Area Q n Command Reference Example 1 This example adds three columns to an AreaList Pro area referenced as area err AL_AddColumn area gt product product_code 0 err AL_AddColumn area gt product product_name 0 err AL_AddColumn area gt product product_type 0 Example 2 Using Two Dimensional Arrays In this example we re going to use a 2 D array to create the columns and rows in the area The first dimension of the array will create the columns and the second dimension creates the rows In other words if the array has 2 in the first dimension and 4 in the second dimension e g anArray 2 4 there will be two columns and four rows The disadvantage of using two dimensional arrays is that every column must be the same data type This example will create an area of n rows n being the number of products and two columns ALL RECORDS product Records Records in selection product ARRAY TEXT ArrayValues 2 Records For i 1 Records ArrayValues 1 i product product_name ArrayValues 2 i product product_cod
167. d Zero means it is not an alpha length limited field ALP Column Locked bool Column is locked ALP Column PopupArray viv wv text Use a pointer to an array array For Get when using an array the array type must match See the Value Mapping example If text is to be used not array elements are separated by Char 3 ASCII ETX To ignore menu meta characters in a row start that row with Char 1 ASCII SOH ALP Column PopupArrayKind Y Y Y long int Type of the popup array 4D constants 5 Is undefined 14 Is real array 15 Is integer array 16 Is longint array 17 Is date array 18 Is text array ALP_Column_PopupMap v v W text text If set the popup will be built from this array array but values will be used from ALP_Column_PopupArray See the Value Mapping example If text is to be used not array elements are separated by Char 3 ASCII ETX To ignore menu meta characters in a row start that row with Char 1 ASCII SOH AreaList Pro Column Properties 217 218 Properties by Theme Constant Get Set Per Type Default Min Max Comments Column General Properties ALP_Column_PopupMenu viv text Associated 4D menu Use Create Menu See the Value Mapping example ALP_Column_PopupName viv iv text Internal used in advanced properties ALP_Column_Reveal viv n a Reveal make visible this column ALP_Column_SortDi
168. d go from left to right and from top to bottom in the grid for example 6 Constant Get Set Per Type Default Min Max Comments ALP Area ColsInGrid v v ow long int 1 1 Number of columns in grid ALP Area ColsLocked v v ow long int 0 0 Number of locked columns in grid ALP Area RowslnGrid v v ow long int 1 1 20 Number of rows in grid ALP Area EntryGotoGridCell viv long int Grid cell number to start entry in cell in grid not column number ALP_Area_EntryGridCell v long int Grid cell number of edited cell ALP Area EntryPrevGridCell v long int Previously edited grid cell number Column Properties These properties are used with commands in the Columns theme Constant Get Set Per Type Default Min Max Comments ALP Column FindCell long int Find the first grid cell number showing data from the column ALP Column FromCell long int Get the column number from the grid cell number Object Properties These properties are used with commands in the Objects theme Constant Get Set Array Type Comments ALP Object FooterTextNH text Footer text of visible columns in grid order ALP Object Grid long int Column numbers Use a 2D array to access colSpan amp rowSpan too Grids Q Advanced Topics Hierarchical Lists Hierarchical lists are an excellent way to display data that is organised into groups and sub groups Consider these two examples p
169. d has the same parameters as a column callback in fields mode but the array is fully sized by you as developer you have to fill the requested elements The type is the actual array type not a field type e g Integer Array instead of Is Integer sss EES Calculated columns Q pu Columns The following table shows the data types that may be displayed in a calculated column in array mode Constant Value Real array 14 Integer array 15 Longlnt array 16 Date array 17 Text array 18 Picture array 19 String array 21 Boolean array 22 Time array v14 32 Setting the Callback Method In field mode use the CallbackMethodName parameter in AL AddCalculatedColumn to set the Calculated Column Callback for a column The ALP Column Callback property can later be used to modify the callback method name on the fly In array mode directly use the ALP Column Callback property In field mode AreaList Pro will dimension the temporary array before invoking the calculated column callback There is no need to do it in the callback itself In array mode the arrays used to place the calculated values must be declared and sized just as the other displayed arrays Field mode example The following is an example of a calculated callback method in field mode It merely calculates an employee s one year anniversary by adding one year to their hire date using the 4D Add to date function CalcColCallback 1 A
170. d numbers of all columns 2D or two arrays ALP Object FooterText v v text Footer text of all columns ALP Object FooterTextNH v text Footer text of visible columns in grid order ALP Object Grid v v long int Column numbers Use a 2D array to access colSpan amp rowSpan too ALP Object HeaderText v v text Header text of all columns ALP Object HeaderTextNH v text Header text of visible columns ALP Object Hierarchy v v long int Hierarchy level expanded 2D or two arrays you can call AL SetObjects with a 2 dimensional array or AL SetObjects2 with two arrays ALP Object RowHide v v bool Set to 1 to hide a row ALP Object RowSelection v v long int When displaying records in row selection mode get record numbers of selected rows set selection using record numbers Note can be time consuming for large selections especially on client server AreaList Pro Object Properties Q fu Properties by Theme Constant Get Set Array Type Comments Object Properties ALP_Object_Selection v v long int Selection 2D or two arrays you can call AL SetObjects with a 2 dimensional array or AL SetObjects2 with two arrays if the selection mode is not row selection ALP Object Sort v long int Sort order to be used with ALP Area DontSortArrays ALP Object SortList v v long int Sort list use negative number for descending order ALP Object SortListNS v v long int Sort list use negative number for descending order Set on
171. d tab enables you to customise the look of your AreaList Pro area by choosing various options such as colors whether to hide or show scroll bars and how to format data when it is copied to the clipboard You can also designate callback methods to run when m The area is selected or deselected m The Edit menu is used m An area event occurs AreaList Pro Area 9 7mc4 Plugin Masters 2013 2014 Arealist Pro Advanced Properties Area Name eDemoALP _ Hide horizontal scrollbar C Use small scrollbar Note the horizontal scrollbar will automatically be hidden if the data displayed fits within the AreaList Pro object Lines and Spacing Number of Header lines 1 Number of Row lines 1 Number of Footerlines 1 Callbacks to 4D Methods Method for area events Method for Edit menu Method for area selection Method for area deselection Column Setup General Options Scroll Bars Dividing Lines _ Hide vertical scrollbar V Show Column divider Column divider color _ Show Row divider Row divider color E V Header pad 3 V Row pad V Footer pad 3 H Header pad H Row pad H Footer pad p L Save XML to Clipboard Save 4D code to Clipboard Load from Clipboard Enterability Advanced Dragging Preview Alernate row coloring V Enable e Even row C Odd
172. d then tell AreaList Pro how it is sorted using MULTI SORT ARRAY and err AL_SetObjects area ALP Object SortListNS SarraysSortOrder This is the same as using v8 AL SetSortedCols Or you can use AL SetAreaTextProperty AL SetAreaTextProperty area ALP Area SortListNS SsortList Sorting a Programming The AreaList Pro User Interface Using AreaList Pro You can directly tell AreaList Pro how to sort using err AL_SetObjects area ALP Object SortListi arraysSortOrder This is the same as using v8 AL SetSort Alternatively you can use AL SetAreaTextProperty ARRAY INTEGER arraysSortOrder 4 SarraysSortOrder 1 7 7 descending on column 7 arraysSortOrder 2 5 ascending on column 5 arraysSortOrder 3 1 SarraysSortOrder 4 14 sortList 7 5 1 14 AL SetAreaTextProperty area ALP Area SortList sortl ist Here is an example where a click on column 7 visible will actually trigger a sort on column 8 invisible yet show the indicator in the clicked column including the sort direction When you set the sort list AreaList Pro simply uses what you provided as long as the column numbers are in the range If the first column to be sorted on is hidden no visible column will be shown as the sort column When you sort the arrays yourself you just need to tell AreaList Pro that it must reload them But when you sort using AreaList Pro you have to specify which column to mark as the sor
173. dified m AL SetColOpts is called with a different fifth argument columns to hide To restore the previous user state you can use AL Save to save the settings and AL Load to restore them Or just use ALP Object Grid at the end of the area initialization Note that ALP Column Visibility and ALP Object Grid are interdependent If you add a column it has to be added to the grid This is the reason why the grid is cleared and later re created from visible columns Similarly if you remove a column it has to be removed from the grid If you make a column visible it has to be added to the grid On the other hand if you explicitly set the grid using AL SetObjects with ALP Object Grid the visibility of columns is modified according to the new grid only the columns in the grid will be set to visible all others will be set to invisible Grid formatting When display an area as a grid and then switch to a template that does not contain a grid the grid formatting remains I ve called AL RemoveColumn eList 2 Removing all columns destroys the grid but does not reset either ALP Area RowslInGrid or ALP_Area_ColsInGrid Just use AL SetAreaLongProperty SeList ALP Area ColsInGrid 1 before adding new columns assuming you have not changed ALP_Area_RowsInGrid Regarding template loading using AL Load should reset all area properties to defaults before loading that template Grids o Appendix Il T
174. drag You can turn this off by setting the ALP Area DragOptionKey property for the source area to False for example AL SetAreaLongProperty ProductList ALP Area DragOptionKey O don t need alt key to drag Compatibility note In compatibility mode the AreaList Pro area is draggable and droppable even if it is not set as draggable or droppablein form properties Drag and Drop Q as Advanced Topics What happens after a drop Of course AreaList Pro has no idea what you want to do with the dropped item It s up to you to catch the drop event and handle it as required To do this put your code into the On Drop form event of the destination area What was dragged You ll need to know where the drag came from and what was dragged which cell row or column so that you can process it accordingly AreaList Pro provides a number of properties that you can use to find the required details Use these properties with the ALP_GetArea commands Property Type Description ALP_Area_DragDataType longint Dragged data 0 unknown non AreaList Pro 1 row s 2 column 3 cell s ALP Area DragDstArea longint Destination area ALP Area DragDstCell longint Destination area cell ALP Area DragDstCellCodes text Drag destination cell codes ALP Area DragDstCol longint Destination area column ALP Area DragDstColCodes text Drag destination column codes ALP Area DragDstProcessID longint
175. drawing and modified according to the number of hidden columns ALP Area CompHideCols m the area is made visible on update event ALP Area Visible m if only one column is to be displayed it will have the width of the area m columns are physically reordered on Drag in single row selection mode the first row is selected during initialization after a sort or on update Compatible mode off If you turn the compatibility mode off setting ALP Area Compatibility to zero m any columns to be hidden have to be maintained m the columns are not reordered the order is defined by the grid setup m you can hide any column not only the columns at the end Dc Compatibility mode 105 Columns 106 Column numbers in compatible mode off The columns are physically reordered and renumbered only in compatibility mode When compatibility mode is off columns are never moved they remain in their creation order even if dragged by the user Modifying column display For example if you drag column 4 and drop it on the first column m the displayed column order will be 4 1 2 3 m the internal order is not changed 1 2 3 4 When you apply any command to a column or a cell in this mode use the original column number Therefore if you change the column order either by dragging the columns in the interface or setting it using err AL_SetObjects area ALP Object Grid colOrderArray then either hiding or show
176. drop area in XML AreaList Pro Area Properties AreaList Pro Area Entry Properties 207 Properties by Theme Constant Get Set Per Type Default Min Max Comments AreaList Pro Area Entry Properties ALP_Area_ClickDelay vv wo long int 30 2 300 Delay to start editing in 1 60 sec 2 use current double click time 0 disable May be used with the area reference set to 0 newly created areas will use this mode ALP_Area_EntryAllowArrows vv v bool false 0 Arrow keys are used to move to next entry cell ALP Area EntryAllowReturn vv v bool false 0 Allow RETURN in text ALP Area EntryAllowSeconds vv v bool false 0 Allow seconds in time entry ALP Area EntryCell v cell Row and grid cell number of current entry row cell ALP Area EntryClick vv v long int 0 0 7 How to start an entry 0 no way even click hold 1 single click 2 double click 3 command double click 4 shift double click 5 option double click 6 control double click 7 click hold only May be used with the area reference set to zero newly created areas will use this mode ALP Area EntryColumn v long int Column number of edited cell ALP Area EntryExit Viv bool Exit the currently edited cell If there is not a cell being entered then ALP_Area_EntryExit will have no effect ALP_Area_EntryFirstClickMode v v Y long int 0 0 3 Determines how the first click is ha
177. e NEXT RECORD product End For For i 1 Size of array ArrayValues err AL_AddColumn 1 gt ArrayValues i 0 End for AL_GetAreaLongProperty AreaRef L Property T gt result L Parameter Type Description gt AreaRef longint Reference of AreaList Pro object on layout gt Property text The property to get result longint Value of the got property Get details of an area s Property The properties that can be used with this command are the ones of type longint and boolean 1 or 0 listed in the AreaList Pro Area Properties section Example After a drag and drop operation you need to find out which row from the source area was dragged SourceRow AL_GetAreaLongProperty DropArea ALP_Area_DragSrcRow Area AL GetAreaPtrProperty AreaRef L Property T Pointer Z gt result L Q Command Reference Parameter Type Description gt AreaRef longint Reference of AreaList Pro object on layout Property text The property to get Pointer pointer Pointer to variable to hold the result the variable must be initialized to the correct type before calling this function result longint Get details of an area s Property The properties that can be used with this command are listed in the AreaList Pro Area Properties section Example To find out the number of columns in an area C_LONGINT numColumns err AL_GetAreaPtrProperty area A
178. e empty column on the right AL Mouse entry unsel row event 101 Entry by mouse action in a previously unselected row AL Sort button event 1 Sort button AL Select all event 2 Edit menu Select All AL Column resize event 3 Column resized AL Column lock event 4 Column lock changed AL Row drag event 5 Row s dragged from the area AL Sort editor event 6 Sort editor AL Column drag event 7 Column s dragged from the area AL Cell drag event 8 Cell s dragged from the area AL Object resize event 9 Object and window resized AL Column click event 10 User clicked on column header automatic sort won t be executed AL Column control click event 11 Control click on column header AL Footer click event 12 Click on column footer AreaList Pro Event codes Q haa Appendix Codes AreaList Pro Text Style Tags If the ALP_Column_Attributed option has been set special tags can also be used in any text contained in an AreaList Pro area to display styled characters Note the tags described below are exacty the same as in SuperReport Pro These tags work just like HTML tags lt tag gt styled text lt tag gt Style Tag Bold lt b gt Italic lt i gt Underline lt u gt or lt ins gt Strike through lt del gt Set font size to points lt s gt Increase font size by quarters 1 4 of current size lt s gt Decrease font size by quarters 1 4 of current size lt s gt Set f
179. e aa da and 90 Getting the lasEertor iii did a ii eae io 91 CompilediMoOde 5 act nidad da in nica 91 Using the Callback Methods 92 Callback Parameters 0 1002 A A erar dara t p EA A AO 92 EVO tpt eke ct htt S ee sud atu dS Ete RR dd See ee gos 93 Table of Contents Q 5 Contents Area Selected mrri 4 Sid me ewe o Sd acp darsi AS ARs oe 93 Area deselected oi niren dens dust Ote trtum ine ae at Puesta Sob tuaque oe 93 Gell entered cerco teed deed Con be a e Gr E ek eee 93 Ig nm 93 POPUP EMI Cr ER 94 Edit menu Action e aeu outer rt xq bono cad ood BUR ic RARUS ut s ae a ae ee i 94 Calculated ColuM xen lupe oen ren ekle RR RH RAE NI Rd ear Ae Sa ein s 94 Properties to use with Callbacks see RR t 95 Areapropertles ka uer pue Lie ees A prec ete eo gear Ein pera RU E RUNG Ere oen s 95 Column Property s sx xti og indere oss ELE a Bed see dela se agro at eae E da an pare ua 96 Setting upa Callback voii roe rue eC ee eon etur eu acte AA fed ete os 96 WainlDgs uer ewe RUE erue e pea edet arse x E aei Rs 96 Calculated Column Callback 4 mE Rc aee m de om or kem ee EW S OR Re eae 97 Using Callback Methods During Data Entry lli 98 Executing a Callback Upon Entering a Cell llle 98 Parameters oos ap REG cea S Eee aS Rack RAG Sm RE Ma a deck LE Ae 98 ilice ACO se erste t br PAL ME M MU RE EAT UE 98 Entry tode xxiv aer wus fee wl Seen E A a MOREE
180. e area reference set to zero newly created areas will use this mode ALP_Area_WindowsText Viv bool false 0 1 change the engine used for drawing on Windows to GDI drawing 0 default use GDI GDI better rendering no transparency no horizontal scaling limited text rotation features GDI allows the three features above but may affect precise rendering on Windows Can be used with existing areas to dynamically switch the drawing engine used on Windows May be used with the area reference set to zero newly created areas will use this mode ALP_Area_XML Viv text Full description of the area in XML ALP_Area_XMLAP v text Advanced properties from design AreaList Pro Area Properties Q a Properties by Theme AreaList Pro Area Copy Drag Properties Constant Get Set Per Type Default Min Max Comments ALP Area CopyFieldSep AreaL ist Pro Y text TAB Area Copy amp Drag Properties Field separator for copy drag operation See Copying or dragging from an AreaList Pro Area ALP Area CopyFieldWrapper Y text One character string The character used to wrap fields when the user copies selected rows to the clipboard This character will be placed both before and after each field If the value is the null empty string then no character will wrap the fields ALP Area CopyHiddenCols Y bool 0 false Using Edit gt Copy or a row dra
181. e g Bold Italic etc ALP Column FtrStylel v v Y bool false 0 Footer font style italic ALP Column FtrStyleU v v W bool false 0 Footer font style underlined ALP Column FtrTextColor v v V color amp FF000000 Footer font color Default is black ALP Column FtrVertAlign v wv wv long 2 0 3 Footer vertical alignment int 0 default 1 top 2 7 center 3 bottom ALP Column FtrWrap v v Y bool false 0 Wrap long lines in footer AreaList Pro Column Properties Column List Style Properties 221 Properties by Theme Constant Get Set Per Type Default Min Max Comments Column List Style Properties ALP_Column_BackColor v v ow color 00FFFFFF Background color Default is transparent no color ALP_Column_BaseLineShift v v V real 0 100 256 Baseline shift ALP Column FontName v vV V text Verdana on List font name Windows Lucida Grande on MacOS ALP Column HorAlign v v V long 0 0 5 List horizontal alignment int 0 default 1 left 2 center 3 right 4 justify 5 full justify 6 align text on the decimal separator used only for real columns for other type of data 6 behaves as 3 ALP Column HorizontalScale Y Y Y real 1 0 1 100 List horizontal scale ALP Column LineSpacing v v Vv real 1 0 1 10 List line spacing ALP Column Rotation v v Vv real 0 360 360 Rotation of text in lis
182. e in that element of the array End if ALP Area AlpEvent End case This is the result when you choose Example 1 from the Examples menu eoo Example 1 D Example 1 This is Example 1 from the Reference Manual loading an array from a 4D List and displaying it using the AL_AddColumn command Albuquerque NM Atlanta GA Baton Rouge LA Boston MA Canton OH Chicago IL Cincinnatti OH Cupertino CA Dallas TX Dennison TX Detroit MI Eugene OR Fayetteville AR Fayetteville NC Ft Lauderdale FL Ft Worth TX Albuquerque NM Done Le s take a look at the commands that were used 1 Loading the arrays On the Object Method for the eList object the following code loads the array and adds it to the AreaList Pro area Case of Form event On Load initialize the AreaList Pro object LIST TO ARRAY City State aCityState copy the list into an array Serror zAL AddColumn eList aCityState display array in AreaList Pro object Example 1 Loading an array from a 4D list Q Tutorial 2 Apply some formatting The DEMO Default project method is called AL_Area 1 1 is received as the area reference AL SetAreaLongProperty 5AL_Area ALP_Area_HideHeaders 0 Header will be displayed AL SetAreaLongProperty AL Area ALP Area ShowFooters 0 Hide footer If IsWindows 71 The IsWindows project method returns True if the platform is Windows Set header pr
183. e of the same size DisplayList will use the largest array s size and not display any arrays of non conforming size Also remember that two dimensional arrays should not be used Why doesn t the command key equivalent work for a button Make sure you passed a button text for the button Also make sure none of the preceding buttons have the same command key Troubleshooting Printing with SuperReport Pro Printing with SuperReport Pro SuperReport Pro is 4D s powerful printing companion It can also be used in conjunction with AreaList Pro version 9 4 and above to print AreaList Pro areas This feature requires SuperReport Pro version 3 x or above How it works AreaList Pro allows printing or saving as HTML through SuperReport Pro v3 It only takes two lines of code to print an AreaList Pro area Additional options are available such as automatic column width and use of SuperReport Pro style properties instead of the existing AreaList Pro area settings AreaList Pro v9 7 and above can print the area footers using SuperReport Pro Pro 3 1 2 or higher You can either use the built in SuperReport Pro template to print an AreaList Pro area on the fly or create your own The AreaList Pro Demonstration database includes a Print with SuperReport Pro button in the AreaList gt Configuration Options dialog It also includes a SuperReport menu allowing printing with the default template or a custom template and editi
184. e same as 1 0 0 0 1 0 100 red 5 3 or 4 part RGBA comma separated long integer type channel values can also be used with one of the text commands Channel values have to be in the range 0 65535 if three values are specified alpha is assumed to be 65535 Note that in this case alpha is at the end e g 65535 0 0 is the same as 65535 0 0 65535 100 red 6 Using the good old 4D 256 color palette Any 4D 256 color palette can be specified as Pxxx where xxx is the palette index in range 1 256 For example AL SetCellTextProperty Sarea row col ALP_Cell_FillColor P2 set the fill color to yellow Specifying Colors Color Options a Working with Colors Color passed in longint values 7 Using a long integer with a longint command e g AL_SetCellLongProperty In this case nothing is assumed about the alpha channel and the alpha value needs to be specified The color can be conveniently written in hexa notation like OXAARRGGBB for example OxFFOOFFOO is 100 green However this number in decimal notation is 16711936 Note that the color picker and 4D RGB commands use longint values for color without the alpha channel This means that the developer must add alpha channel information to the color if he is going to pass a color to AreaList Pro by code for example ALPColor Color OXFF000000 Color Options You can specify colors for the following elements in your AreaList Pro areas
185. e selection will be sorted again However besides this unneeded re processing it should not harm Also when editing an enterable cell you don t have to clear the cache if you don t modify other rows You can safely modify the currently edited row the whole row is re fetched automatically AreaList Pro version 8 refresh commands vs version 9 cache management Cache clearing or Data updating Unnecessary updates Q Appendix Codes Appendix I Codes AreaList Pro Error Codes Error 44 9939 The AreaList Pro plugin was not loaded correctly Please refer to the installation instructions to make sure that you have installed the plugin in the correct place Result Codes All function calls return a longint result code with O meaning that the function executed successfully All other possible error codes are listed below along with their constants Error Number Constant Description 1 ALP Err Generic General error often returned by submodules like XML parser 0 ALP Err OK No error the function call was successful 1 ALP Err CantLoadXML The XML variable could not be loaded 2 ALP Err CantSaveXML The XML variable could not be saved 3 ALP Err InvalidAreaRef You have passed an invalid AreaList Pro area reference to the function 4 ALP Err InvalidObjectRef Invalid object reference was passed to commands that require an object reference 5 ALP Err Inval
186. eList ALP Area CallbackMethOnEvent EventCallBack15 set event callback to project method EventCallBack15 m MM ojo Rh e m N N NN Example 15 Cell coordinates properties Tutorial d Q Tutorial The EntryCallback15 method assigns the Entry coordinates properties values to the matching variables then updates the layout v15EntryCell AL_GetAreaTextProperty eList ALP_Area_EntryCell v15EntryColumn AL_GetAreaLongProperty eList ALP Area EntryColumn v15EntryGridCell AL_GetAreaLongProperty eLis ALP Area EntryGridCell v15EntryGridCellColFromCell AL_GetColumnLongProperty eList v15EntryGridCell ALP Column FromCell v1EntryPrevCell AL_GetAreaTextProperty eList ALP Area EntryPrevCell v15EntryPrevColumn AL_GetAreaLongProperty eList ALP Area EntryPrevColumn v15EntryPrevGridCell AL_GetAreaLongProperty eList ALP Area EntryPrevGridCell v15EntryPrevGridCellColFromCell AL_GetColumnLongProperty eList v15EntryPrevGridCell ALP Column FromCell v15EntryPrevRow AL_GetAreaLongProperty eLis ALP Area EntryPrevRow v15EntryRow AL_GetAreaLongProperty eList ALP Area EntryRow CALL PROCESS Frontmost process update displayed variables Event callbacks receive the last clicked colum and row or rollover colum and row for event 18 mouse moved in parameters 4 and 5 The EntryCallback15 method assigns them to the Selected RollOver col row callback variables for display v15SelColCallback
187. ea DragDstCol AL GetDrgDstRow AL GetAreaLongProperty ALP Area DragDstRow AL GetDrgDstTyp AL GetAreaLongProperty ALP Area DragDataType AL GetDrgSrcCol AL GetAreaLongProperty ALP Area DragSrcCol AL GetDrgSrcRow AL GetAreaLongProperty ALP Area DragSrcRow AL GetEditedText AL GetAreaTextProperty ALP Area EntryText ALP Area EntrySelectedText AL GetFields AL GetColumnLongProperty ALP Column Source AL GetAreaLongProperty ALP Area TablelD AL GetObjects ALP Object Columns using table field format ALP Object Fields Mapping Old Commands to the AreaList Pro v9 API Old commands AL GetFile sd Mapping Old Commands to the AreaList Pro v9 API New Commands and Properties AL GetAreaLongProperty ALP Area TablelD AL GetFooters AL GetColumnTextProperty ALP Column FooterText AL GetAreaLongProperty ALP Column Visible AL GetObjects ALP Object FooterText ALP Object FooterTextNH AL GetFormat AL GetColumnLongProperty ALP Column HorAlign ALP Column HdrHorAlign ALP Column FtrHorAlign ALP Column CalcHeight AL GetFtrStyle AL GetColumnTextProperty ALP Column FtrFontName AL GetColumnRealProperty ALP Column FtrSize AL GetColumnLongProperty ALP Column FtrStyleF AL GetHdrStyle AL GetColumnTextProperty ALP Column HdrFontName AL GetColumnRealProperty ALP Column HarSize AL GetCo
188. ea NumRowLines interact ALP Area RowHeightFixed is deprecated and superseded by ALP Area NumRowLines ALP Area NumHdrLines and ALP Area NumFtrLines The proper way is to set the number of rows to zero setting ALP Area NumRowLines to zero For example row heights are fixed when ALP Area NumRowLines is non zero otherwise the row heigh is determined by columns having ALP Column CalcHeight set to 1 as specified above You can set different values for rows headers and footers e g single line fixed height for data rows but variable multi line header when you change the column width the header height can change ALP Area RowHeightFixed is now emulated as follows Getter ALP_Area_NumRowLines 0 Setter If ALP_Area_RowHeightFixed 1 If ALP_Area_NumRowLines 0 ALP_Area_NumRowLines 1 End if If ALP_Area_NumHdrLines 0 ALP_Area_NumHdrLines 1 End if If ALP_Area_NumFtrLines 0 ALP_Area_NumFtrLines 1 End if Else ALP_Area_NumRowLines 0 ALP_Area_NumHdrLines 0 ALP_Area_NumFtrLines 0 End if Rows Cs Appendix Il Troubleshooting and FAQs Columns Double clicking an enterable column have specified that a column should be enterable but nothing happens when double click it You need to set the entry mode for example AL SetAreaLongProperty area ALP Area EntryClick 2 Custom column property It would be helpful to set my own text ID attribute
189. ecified in the parameter description table the result codes are long integers and have the following meanings Result Code Description 1 Generic error No error the command executed successfully Can t load XML Can t save XML Invalid area reference Invalid object reference Invalid request Invalid array type Invalid nil pointer Invalid pointer type olo NI ao a AJ AIN gt o Invalid array size Can t load record Can t save record eo EE Using the Command Reference Q Command Reference 167 Parameter Descriptions Each command has its own set of parameters and they are each described in the parameter descriptions table The tables comprise three columns Parameter Type and Description Parameter The name of the parameter as shown in the Parameter list Each is preceded by one of two arrows which indicate whether it is a value that you pass to the command or one that the command returns to you gt Area A value that you pass to the command Array A value that is returned by the command Type The type of the parameter Note if your database is running in non Unicode mode text objects are limited to 32k characters Description Information about the parameter Note when calling a plugin command all omitted parameters are initialized to the NULL of the respective types 0 0 0 100 00 00 Command Description An explanation of w
190. ed column oa The evtUpdateText method updates the variable at the bottom of the list C POINTER 1 gt variable C POINTER 2 gt city array C_POINTER 3 gt state array C_LONGINT i 1 gt For i 1 Size of array aRows look at each row selected by user aRows populated by event callback 1 gt 1 gt 2 gt aRows i 3 gt aRows i plug values in the text variable If Si lt Size of array aRows not the last item 1 gt 1 gt separator End if End for EE S M Example 9 Using an Event callback instead of the On Plug in Area event Q Tutorial Example 10 Drag and drop between areas This example demonstrates how dragging rows between AreaList Pro areas and within the same area can be allowed with the Alt Option key There are two AreaList Pro areas and two text areas on the form e Property List b eListDest Variable3 E m in ind rare cabs sienna Manual which was built upon Example 9 f E a g E B 2 h QJ ListDest w 216 h 155 YQ Objects Type AreaListPro AreaList Pro v9 2 AreaList Pro v9 2 Object Name Variable3 Oe Node SA 2011 2012 Oe Node SA 2011 2012 Variable Name eListDest x Plug in gt Coordinates amp Sizing Fi Resizing Options gt SS Entry CU Display c Appearance vitem A a Background and Border Text O P Help e y amp Action Method Edit
191. ed to all existing rows from row 1 to row ALP_Area_Rows Note in addition to header specific and footer specific properties row 0 stands for the header and row 1 stands for the footer This is true for getters as well as setters See Row Numbering AL GetRowLongProperty AreaRef L Row L Property T gt result L Parameter Type Description gt AreaRef longint Reference of AreaList Pro object on layout gt Row longint Number of row for which to get the details gt Property text The property to get result longint Value of the got property Get details of a Row s longint Property Example To get the parent of row 3 in a hierarchical list C LONGINT S parent parent AL_GetRowLongProperty area 3 ALP Row Parent AL GetRowPtrProperty AreaRef L Row L Property T Pointer Z result L Parameter Type Description gt AreaRef longint Reference of AreaList Pro object on layout gt Row longint Number of row for which to get the details gt Property text The property to get gt Pointer pointer Pointer to a variable to hold the result result longint Get details of a Row s Property using a Pointer Example To get the height of row 3 C REAL height err AL_GetRowPtrProperty area 3 ALP_Row_Height gt Sheight Rows Q a Command Reference AL GetRowRealProperty AreaRef L Row L Property T gt result R Parameter T
192. elect clicking on a focusable object moves the focus to that object the AreaList Pro area looses the focus If ALP Area IgnoreSoftDeselect is set to O default value resizing the window even using a splitter will not end the entry and the exit callback method will receive 2 8 Assuming that the entry finished callback allows the value hard deselect will cause the callback if any to run with 257 in field mode the record is stored whereas soft deselect will cause the callback if any to run with 2 8 in field mode the record is not stored In other words soft deselect only makes the area deselected temporarily e g a click on a non focusable checkbox will make it active focus not drawn its object method is executed then the focus is returned to the AreaList Pro area From the user s point of view soft deselect does not deselect the area Note when the ALP Area IgnoreSoftDeselect property is set to true 1 soft deselect is handled as hard deselect Examples Example 1 Let s say that we do not want to allow the State to be modified if it s CA We would create an entry start callback method and initialise it in the On Load event for the AreaList Pro area AL SetAreaTextProperty myALPArea ALP Area CallbackMethEntryStart EntryCallback The EntryCallback method will handle the event when the user clicks into a cell C LONGINT 1 AreaList Pro object reference C LONGINT 2 entry cause C LON
193. elected rows numbers style font and colors then apply the following AL SetRowLongProperty Sarea rowNum ALP Row StyleF styleNum style AL SetRowTextProperty area rowNum ALP Row FontName fontName font AL SetRowTextProperty area rowNum ALP Row TextColor foreGroundColor foreground color AL SetRowTextProperty area rowNum ALP Row BackColor backGroundColor background color Empty column background color When the total width of all columns is lesser than the area s display width and neither ALP Area AutoResizeColumn or ALP Area AutoSnapLastColumn properties are used an empty column will fill the remaining space on the right Its background color will be inherited from the last visible column s property Setting the entire area to a single color Here s how to set the entire AreaList Pro area to a single color including empty rows m Set ALP Area MiscColor2 background ALP Area MiscColor3 space to the left of horizontal scrollbar when columns are locked and ALP Area MiscColor4 space under vertical scrollbar when both scrollbars are shown to the color m Leave the column list background ALP Column BackColor at default HOOFFFFFF transparent otherwise the whole column including empty rows will use that column color if not overridden by row cell color or alternate row coloring Patterns Patterns are no longer supported They are interpreted by AreaList Pro version 9 as transparency
194. ent date current selected date Next 2 colors define foreground numbers in active month numbers in inactive month 8 parameter is the popup background color it needs a non zero alpha channel to be set e g RFFE9F1FF instead of ZE9F1FF When not set explicitly default colors depend on ALP Area CalendarLook To restore the default colors as if ALP Area CalendarColors was not set pass an empty text value Default values are OOFFFFDD HOOEEEEEE 00EEAAAA OOFF8888 00FF5555 00000000 00444444 00CCCCCC for the regular default calendar look and FFFFFFFE HFFFFFFFE HOOEEEEEE 00FF8888 008F8F8F 00000000 00444444 FFFFFFFC for the alternate Date popup according to ALP_Area_CalendarLook ALP_Area_CalendarLook bool false 0 If set AreaList Pro will use an alternate Date popup Windows look When ALP Area CalendarColors is not set explicitly the color scheme is different and the correct one will be used actually the ALP Area CalendarColors value is updated when ALP Area CalendarLook is modified ALP Area Copyright text Copyright of the AreaList Pro plugin ALP Area DefFmtBoolean text Default format for Boolean arrays Initialized from the AreaList Pro Format Defaults group from the ALP xIf file located in the localized subfolder of the Resources folder in the AreaList Pro bundle ALP Area DefFmtDate text Default format for Date
195. ers 256 command 512 shift 1024 caps lock 2048 option 4096 control ALP_Area_EventPosH long int Horizontal mouse position ALP_Area_EventPosV S long int Vertical mouse position ALP Area RollOverCell long int Current cell where the mouse is positioned See Example 15 in the Tutorial section ALP Area RollOverCol S long int Current column where the mouse is positioned ALP Area RollOverRow long int Current row where the mouse is positioned See Row Numbering ALP Area SendEvent long int Set custom event and execute the object method ALP Area AlpEvent will contain this event ALP Area Event will be O Use e g 100 to not confuse your own code with regular AreaList Pro event codes Usable in subforms to CALL SUBFORM CONTAINER ALP Area ToolTip text Tool Tip text To be set from the event callback function AreaList Pro Area Properties AreaList Pro Area Plugin Properties Note the following properties always expect 0 as the area reference the workstation global setting is accessed Constant Get Set Per Type Default Min Max Q pes Properties by Theme Comments ALP Area CalendarColors AreaList Pro Area Plugin Properties text 8 colors separated with to be used by the date calendar popup First 5 colors define object backgrounds active month inactive month selected date curr
196. ers this function will not work with fields GetListWidths must be executed after DisplayList GetListSelect array gt result code Parameter Type Description gt array array list of selected lines result code longint indicates if enough memory was available GetListSelect is used to determine which items were selected by the user when the Multi line option is enabled using SetListBehavior and they have selected multiple lines Each element of the array contains a line number that the user selected when the list was displayed The array must be an integer or longint array For compatibility purposes the result is 1 if everything was OK SetListDone SetListDone is used to inform DisplayList that you are done using it in the current 4D process Use SetListDone when you are done with all of the DisplayList commands in a 4D process to free up the memory used by DisplayList for that process Normally you will call this routine at the end of a process DisplayList Commands Q pe DisplayList Troubleshooting This section lists several common problems and their solutions encountered when working with DisplayList When troubleshooting a problem use all of the tools at your disposal including the 4D debug window Many problems can be quickly resolved by stepping through each line of code and checking the values of variables and arrays Why are one or more of my columns missing Ensure that all arrays ar
197. ersions of the plugin The license key is linked to the developer company name This license allows deployment selling new application licenses updates or subscriptions while the license is valid No new deployment may occur after expiry without a specific license merged or regular End users running deployments sold during the license validity period remain authorized without time limit m OEM This license allows development interpreted mode or deployment interpreted or compiled mode including merged on any number of 4D Servers any number of users 4D Standalone or single user remote merged instances that run your 4D application s It is a yearly license under the exact same terms as the Unlimited Single User license described above except that it also covers server deployments m Unlimited OEM This license is a global OEM license covering any combination of the plug ins published by e Node including AreaList Pro SuperReport Pro PrintList Pro CalendarSet and Internet ToolKit in all configurations m Partner license This license matches 4D s annual Partner subscription and covers all the plug ins published by e Node including AreaList Pro SuperReport Pro PrintList Pro CalendarSet and Internet ToolKit For each product a single registration key allows development interpreted mode or deployment interpreted or compiled mode except merged on all 4D Standalones and 4D Servers 2 users provided by your 4D Partner
198. erty AreaListEnt 0 ALP Column Enterable 1 set all columns to be enterable q AL SetColumnLongProperty AreaListEnt 2 ALP Column Enterable 1 set all columns to be enterable v In this example the command is invalid 5 ALP_Err_InvalidRequest see Error codes Zero as column number is used to set default style properties for newly created columns but enterability is not a property of a style The correct call commented out next line is AL SetColumnLongProperty AreaListEnt 2 ALP Column Enterable 1 2 update all existing columns Dc s wa Formatting Using the debugger Programming The AreaList Pro User Interface 91 Getting the last error The error is retrieved through the ALP Area LastError property which is global to all AreaList Pro areas This last error can be displayed in the debugger window using either one of the following AL GetAreaLongProperty 0 ALP_Area_LastError full syntax AL GetAreaLongProperty 0 shortened syntax AL GetAreaLongProperty short syntax Always use the full syntax in your code if you want to test the error programmatically The short syntax provides a convenient and quick way to type into the debugger window and get the error code Compiled mode In compiled mode if ALP Area TraceOnError property s bit 1 is set to true an alert is displayed with the error code the AreaList Pro command the calling 4D method and the prope
199. erty area ALP_Area_CopyHiddenCols gt bTrue err AL_SetAreaPtrProperty area ALP_Area_CopyFieldSep gt tBlank err AL_SetAreaPtrProperty area ALP_Area_CopyRecordSep gt tBlank err AL_SetAreaPtrProperty area ALP_Area_CopyFieldWrapper gt tBlank Upgrading from Previous Versions of AreaList Pro e Getting Started with AreaList Pro Or you could use the AL SetAreaLongProperty and AL SetAreaTextProperty commands to achieve the same result AL SetAreaLongProperty area ALP Area CopyHiddenCols 1 AL SetAreaTextProperty area ALP Area CopyFieldSep AL SetAreaTextProperty area ALP Area CopyRecordSep AL SetAreaTextProperty area ALP Area CopyFieldWrapper Note that Boolean properties are called as longints 1 true 0 false Don t worry though you will not need to re write all your AreaList code Most of your existing commands will still work the old commands act as wrappers for the new ones In fact you Will still be able to write new code using the old commands but if you want to take advantage of the new features you ll need to use the new commands Some of the old commands are now obsolete or are no longer relevant and should be removed from your code These are listed in the table below along with details about how they should be replaced where appropriate You ll find a complete list of the old commands and information about how they can be replaced with the new ones
200. erty T gt result L Parameter Type Description gt AreaRef longint Reference of AreaList Pro object on layout gt Column longint The column number for which to get the property Property text The property to get result longint Value of the got property Get details of a Column s longint Property The properties that you can get with this command are the ones of type longint and boolean 1 or 0 listed in the AreaList Pro Column Properties theme Example To find out how many columns in an area are invisible columnCount AL_GetAreaLongProperty area ALP Area Columns Invisible 0 For i 1 columnCount If AL_GetColumnLongProperty area i ALP_Column_Visible 0 not visible Invisible Invisible 1 End If End For AL GetColumnPtrProperty AreaRef L Column L Property T Pointer Z gt result L Parameter Type Description gt AreaRef longint Reference of AreaList Pro object on layout gt Column longint The column number for which to get the property gt Property text The property to get Pointer pointer Pointer to variable to hold the result result longint Get details of a Column s Property using a Pointer The properties that you can get with this command are listed in the AreaList Pro Column Properties theme Example To find out the enterability of column 1 C_LONGINT enterable Serr AL_GetColumnPtrProperty area 1 ALP_Column_Ente
201. et with SetListFormats Any 4D supported format for number boolean date time ARRAY LONGINT and string arrays may be used Developer created styles defined in the Design Environment may also be used Be sure to use a string as the second parameter DisplayList Commands SetListHdrStyle FontName Size StyleNumber Q p DisplayList Parameter Type Description gt FontName string Name of font If not called or the specified FontName is not found the headers will be displayed in Geneva 12 point Plain gt Size integer Size of font gt StyleNumber integer Number for style to apply to font A Macintosh font style code By adding the codes together you can combine styles SetListHdrStyle is used to format the DisplayList column headers The numeric codes for StyleNumber are shown below Style Number Plain 0 Bold 1 Italic 2 Underline 4 SetListStyle FontName Size StyleNumber Parameter Type Description gt FontName string Name of font If not called or the specified FontName is not found the headers will be displayed in Geneva 12 point Plain gt Size integer Size of font gt StyleNumber integer Number for style to apply to font A Macintosh font style code By adding the codes together you can combine styles SetListStyle is used to format the DisplayList arrays or list The numeric codes for StyleNumber are shown below Style Number Plain 0 Bold 1 Italic
202. ethPopup appc popupCallback ALP_Area_CallbackMethSelect apse selectCallback ALP_Area_CheckData DATA E H o 8 v AJ AreaList Pro Text Style Tags Property Values Constants and XML Names Property Constant Property Value selector Q pus Appendix Codes Property XML Name ALP Area ClearCache cach ALP Area ClickDelay edel clickHoldDelay ALP Area ClickedCell evcC ALP Area ClickedCol evcc ALP Area ClickedRow evcr ALP Area ColDivColor colc colDividerColor ALP Area ColsInGrid coln colsInGrid ALP Area ColsLocked coll lockedCols ALP Area ColumnLock clck allowColumnLock ALP_Area_ColumnResize cres allowColumnResize ALP_Area_Columns COLS numColumns ALP_Area_Compatibility comp compatibility ALP_Area_CompHideCols cohc hideColumns ALP_Area_CopyFieldSep ecfd copyFieldDelimiter ALP_Area_CopyFieldWrapper ecfw copyFieldWrapper ALP_Area_CopyHiddenCols echc copyHiddenColumns ALP Area CopyOptions ecop copyOptions ALP Area CopyRecordSep ecrd copyRecordDelimiter ALP_Area_Copyright copy ALP_Area_DataHeight Adhi ALP_Area_DataWidth Adwd ALP_Area_DefFmtBoolean dfbo ALP_Area_DefFmtDate dfda ALP Are
203. example let s examine the following AreaList Pro v8 5 command AL SetRowRGBColor area i 1 1 1 lt gt greenbar_red lt gt greenbar_green lt gt greenbar_blue Where m lt gt greenbar_red 244 m lt gt greenbar_green 248 m lt gt greenbar_blue 255 Let s combine them using simple math argb 0xFF000000 greenbar red lt lt 16 greenbar green lt lt 8 greenbar blue We get OxFFF4F8FF Generally to create ARGB color for use with AreaList Pro use argb alpha lt lt 24 red lt lt 16 green lt lt 8 blue which is the same as argb alpha 256 256 256 red 256 256 green 256 blue To create RGB color for use with 4D use rgb red lt lt 16 green lt lt 8 blue which is the same as rgb red 256 256 green 256 blue oe as Color Options Converting RGB values Q n Working with Colors Row Coloring Options Combining hits in the Row Options property Bits 0 1 and 2 are used in combination to manage all possible alternate color row settings The resulting long integer sets the alternate row coloring zebra style options Here are the possible values this is for bit 3 0 add 8 to the values below to set bit 3 to true and combine alternate color with existing colors see below and also ALP Area AltRowOptions m 0 2 4 6 don t use alternate row coloring bit O 0 m 1 use alternate coloring for even ro
204. f columns to remove starting at Column optional result longint Remove one column or several columns from an area If the Count parameter is omitted only column number Column will be removed Otherwise Count column s will be removed starting at Column If you want to remove all the columns in one go enter 2 for the column number Example To remove columns 3 and 4 from area Serr AL_RemoveColumn area 3 2 Area Q Command Reference AL SetAreaLongProperty AreaRef L Property T Value L Parameter Type Description gt AreaRef longint Reference of AreaList Pro object on layout gt Property text The property to set gt Value longint The value to set the property with a long integer Set a specific Property for an area The properties that can be set with this command are the ones of type longint and boolean 1 or 0 listed in the AreaList Pro Area Properties section Example To start data entry in the first row of the second column AL SetAreaLongProperty area ALP Area EntryGotoColumn 2 AL SetAreaLongProperty area ALP Area EntryGotoRow 1 AL SetAreaPtrProperty AreaRef L Property T Pointer Z gt result L Parameter Type Description gt AreaRef longint Reference of AreaList Pro object on layout Property text The property to set gt Pointer pointer Pointer to a variable that holds a value to pass to the function result longint
205. f overview of how to work with both options they are described in detail in other sections of this manual Creating your first AreaList Pro Area Advanced Properties or Commands e Getting Started with AreaList Pro Using the Advanced Properties Dialog We will have a quick overview of the Advanced Properties Dialog here you ll find a detailed explanation of it later in this manual To invoke the Advanced Properties Dialog click on the Edit button next to Advanced Properties in the area s Property List e Property List Plugin Area product list 3 a _ tea G S h dg i f Y UI ECT a a EEEE PA Objects i ind Type AreaListPro Object Name product list Variable Name products Y K Plug in The Advanced Properties Dialog opens Arealist Pro Advanced Properties Arealist Pro Area 9 7mc4 Plugin Masters 2013 2014 Area Name eDemoALP Column Setup General Options Enterability Advanced Dragging Preview ciii Arrays A 2 n terabili e HE Enterability O Default Apply to all Columns Entry allowed via Keyboard only A i First Name Use the Default column to set the properties for 2 a all columns 3 City Entry Filter di Sisto Then if you wish to have different settings for a particular column select that column in the list Popup array 5 Zip Code and set it County You will need to specify the field or array Title
206. fic Property for a Column or several columns using a Pointer to the value you want to set The properties that you can set with this command are listed in the AreaList Pro Column Properties theme If the Count parameter is omitted only column number Column will be set Otherwise Count column s will be set starting at Column If you want to set all the columns in one go enter 2 for the Column number Count is ignored Example To rotate the header text for columns 2 and 3 by 90 rotation 90 err AL_SetColumnPtrProperty area 2 ALP_Column_HdrRotation gt rotation 2 Columns Q n Command Reference AL SetColumnRealProperty AreaRef L Column L Property T Value R f Count L Parameter Type Description gt AreaRef longint Reference of AreaList Pro object on layout gt Column longint The number of the column for which to set the property gt Property text The property to set gt Value pointer Value to pass to the function real number gt Count longint Number of columns to set starting at Column optional Set a specific Property for a Column or several columns The properties that you can set with this command are the ones of type real listed in the AreaList Pro Column Properties theme If the Count parameter is omitted only column number Column will be set Otherwise Count column s will be set starting at Column If you want to set all the columns in one go enter 2 fo
207. fine whether hidden columns must be included or not See AreaList Pro Area Copy amp Drag Properties Headers When the area is set as multiple row selection and headers are visible ALP Area SelType set to 0 or not set ALP Area SelMultiple set to 1 ALP_AreaHideHeaders set to 0 or not set setting ALP Area CopyOptions to true 1 will make the header text to be copied into the pasteboard or dragged to the destination on top of the selected row values EE T L J mw2 Command Descriptions and Syntax Copying or dragging from an AreaList Pro Area e Getting Started with AreaList Pro Upgrading from Previous versions of AreaList Pro AreaList Pro version 9 is compatible with 4 Dimension versions 11 and above To upgrade to AreaList Pro version 9 simply install it as described in the Installation section of this manual replacing your older version Two major differences with previous versions As opposed to v8 x and earlier releases m AL Register returns 0 if registration was successful m The 4D project method Compiler ALP is no longer needed Compatibility Mode You do not have to update all your AreaList Pro areas and code immediately Previous versions commands are still here and will work with AreaList Pro version 9 with little or no change in your code
208. g 86 Programming The AreaList Pro User Interface Constant Get Set Per Type Default Min Max Comments ALP Column HdrStyleU v v v bool false 0 Header font style underlined ALP Column HdrTextColor v vw x color FFO00000 Header font color Default is black ALP Column HdrVertAlign viv v long 2 0 3 Header vertical alignment int 0 default 1 top 2 7 center 3 bottom ALP Column HdrWrap v v v bool false 0 Wrap long lines in header ALP Column FtrBaselLineShift Y Y Y real 0 100 256 Footer baseline shift ALP Column FtrFontName v v tex Verdana on Footer font name Windows Lucida Grande on MacOS ALP Column FtrHorAlign v wv v long 0 0 5 Footer horizontal alignment int 0 default 1 left 2 7 center 3 7 right 4 justify 5 full justify ALP Column trHorizontalScale Y Y Y real 1 0 1 100 Footer horizontal scale ALP_Column_FtrRotation v wv v real 0 360 360 Rotation of text in footer ALP Column FtrSize v wv v real 12 on 4 128 Footer font size Windows 13 on MacOS ALP Column FtrStyleB v v v bool false 0 Footer font style bold ALP_Column_FtrStyleF v v v long 0 0 7 Footer font style using 4D style constants int e g Bold Italic etc ALP_Column_FtrStylel v v v bool false 0 Footer font style italic ALP Column FtrStyleU v v v bool false 0 Footer font style unde
209. g clipboard will contain all columns if set to true ALP Area CopyOptions Y bool 0 false Include the headers in the copied dragged data but only when the headers are not hidden with ALP_Area_HideHeaders ALP_Area_CopyRecordSep Y text CRL F AreaList Pro Area Data Properties Record separator for copy drag operation Constant Get Set Per Type Default Min Max Comments AreaList Pro Area Data Properties ALP_Area_CacheSize v v v longint 1024 128 Cache size in number of rows to cache Can be used with area 0 to access workstation default used for initialization of new areas ALP Area CheckData v Check array selection size and fill the cache with data The number of rows is checked only if explicitly requested with this property ALP Area ClearCache v long int Clear cells cache Set value to row number int text to clear only that row see Row Numbering Set value to 2 to clear all rows ALP Area Columns v Y long int Current number of columns ALP Area FillCache v Fill the data cache AreaList Pro 9 uses a true cache for data at least for the rows on screen This property will invoke the cache filling routine If the number of rows is less than the cache size ALP _ Area CacheSize all rows are loaded into the cache Otherwise 128 rows are loaded Note use only after clearing some all cached rows visible rows are refreshed Happens a
210. gProperty is used with ALP Area EntryModified to detect if the cell was modified and with ALP Area EntryRow to locate the cell row City State Mobile AL sd Fayetteville AR Little Rock AA Phoenix Alert Tuscon VA a a RAE Al Petaluma AA is not a valid state abbreviation Please re enter Los Angeles Palm Springs A San Diego Hartford Washington Wilmington Ft Lauderdale Miami Little Rock AR USAS Done There are two things you need to do to get a callback working create the callback method and tell AreaList Pro when to call it Example 7 Using a callback method to check data entry validity Q Tutorial 1 Create the callback method Our callback method is called ExitCallback C_BOOLEAN 0 data valid return value True or False C_LONGINT 1 AreaList Pro object reference C_LONGINT 2 action terminating data entry for this cell If 2 AL Esc key action escape key will ignore and reset entered data If AL GetAreaLongProperty 1 ALP_Area_EntryModified gt 0 was a cell modified vRow AL_GetAreaLongProperty 1 ALP Area EntryRow find out which row l only the state array col 2 will be checked we don t need to worry about the entered column LIST TO ARRAY State Abbrev aPossStates create a new array of all possible States ARRAY POINTER ArrayNames 0 Serror AL_GetObjects 1 ALP Object Columns ArrayNames If Find in array aPossStates ArrayNames 2 gt vRow
211. getting or setting an area s property where there is an array of values rather than an individual value For example if you wanted to know how many rows were selected in an AreaList Pro area with row selection you would use the ALP Area Select property numberOfRows AL GetAreaLongProperty area ALP Area Select numberOfRows tells you the number of rows that are selected However if you want to know which rows are selected you cannot use AL GetAreaLongProperty The selected rows are not one number they are a set of numbers one for each selected row You can use AL GetObjects with the ALP Object Selection property for example ARRAY LONGINT selectedRows 0 error AL_GetObjects area ALP Object Selection selectedRows After the call the selectedRows array will contain the row numbers that are selected Note that the array is passed directly not as a pointer The properties that can be used with these commands can be found in the AreaList Pro Objects theme AL GetObjects AreaRef L Property T Array Y gt result L Parameter Type Description gt AreaRef longint Reference of AreaList Pro object on layout Property text The property to get Array array An array to hold the result Depending on the property this can be an array of row or column numbers or a two dimensional array of cell coordinates result longint Get details of an area s object Property Example To find out whic
212. h rows have been selected when in multi row selection mode place this code in the AreaList Pro area s Object Method Case of Form event On Plug in Area Case of AL GetAreaLongProperty area ALP_Area_AlpEvent 1 did user click on a row ARRAY LONGINT aRows 0 err AL_GetObjects area ALP Object Selection aRows get selected rows End case End case aRows now contains an element for each selected row containing the row number SSS SS SaaS AAA gt gt 8 Objects Q Command Reference AL GetOhjects2 AreaRef L Property T Array1 Y Array2 Y gt result L Parameter Type Description gt AreaRef longint Reference of AreaList Pro object on layout Property text The property to get Array1 array An array to hold the first array result Array2 array An array to hold the second array result Depending on the property this can be an array of row or column numbers result longint Get details of an area s object Property using two arrays These arrays must be one dimensional The properties that can be used with this command can be found in the AreaList Pro Objects theme Example To get two arrays listing the table and field numbers that have been assigned to the columns in an area ARRAY LONGINT arrayTableNos 0 ARRAY LONGINT arrayFieldNos 0 AL GetObjects2 area ALP Object Fields SarrayTableNos arrayFieldNos AL SetObjects AreaRef L Property T
213. hSelect Parameter C LONGINT 1 AreaList Pro Pro object reference Area deselected Property ALP Area CallbackMethDeselect Parameter C_LONGINT 1 AreaList Pro Pro object reference Cell entered Property ALP Area CallbackMethEntryStart Parameters C LONGINT 1 AreaList Pro object reference C LONGINT 2 entry cause C LONGINT 3 record loaded will only exist when fields are being displayed Cell exited Property ALP Area CallbackMethEntryEnd Parameters C LONGINT 1 AreaList Pro object reference C LONGINT 2 exit cause C BOOLEAN 0 allow cell exit Callback Parameters o Using the Callback Methods Popup entry Property ALP Area CallbackMethPopup Parameters C LONGINT 1 C LONGINT 2 row C LONGINT 3 column C LONGINT 4 data type C BOOLEAN 0 True if handled False if not handled AreaList Pro object reference Edit menu action Property ALP Area CallbackMethMenu Parameters C LONGINT 1 AreaList Pro object reference C LONGINT 2 edit event C LONGINT 0 Compatibility note previous versions used a text 3 parameter This third parameter was used as the return value for Undo string but 4D no longer supports this feature Calculated column Property ALP Column Callback Parameters C LONGINT 1 AreaList Pro object reference C LONGINT 2 column number C LONGINT 3 type of data in this column
214. hat the command does and how to use it Examples One or more examples demonstrating how the command might be used Command Themes The commands are organised into six themes Area Commands that affect the entire AreaList Pro area Columns Commands that affect columns Rows Commands that affect rows Cells Commands that affect individual cells Objects Commands that affect AreaList Pro objects Utility Miscellaneous commands such as AreaList Pro licence registration For each theme there is a set of properties that can be used with that theme s commands You will find a complete list of properties in the Properties by Theme section Using the Command Reference Command Themes Q a Command Reference Area The commands in this theme affect the overall AreaList Pro area The properties that can be used with these commands can be found in the AreaList Pro Area Properties and the AreaList Pro Drop Area themes For some Area properties pertaining to areas e g ALP Area UseDateControls or ALP Area ClickDelay not global settings you can use 0 as the Area Reference to accessing the default values for all newly initialized or re initialized areas m AreaRef 0 means access workstation global settings m AreaRef 0 means access this area s settings If you access workstation only properties properties not specific to areas called Plugin properties such as ALP Area TraceOnError or ALP Area Version A
215. header and format for each column Boolean data display Checkbox without title o B Birthdate Column Width Autosize Hidden _ Use data size for row height qa Header Footer Font Lucida Grande x Size 13 Justification Default S Style Color A plain Bold O italic C Underline Rotation 0 Text mm Background Save XML to Clipboard Save 4D code to Clipboard Load from Clipboard Clear amp Save Cancel OK There are a few choices that you must make in order for your list to work and there are lots of other choices that you can make to configure it The first thing to choose is whether you want to display data from arrays or fields Click on the Display popup menu and choose either Arrays or Fields Using the Advanced Properties Dialog 1 Next you need to specify how many columns your list will comprise and which arrays or fields will populate them Add a column by clicking on the big Plus sign in the Columns area 2 The area to the right of the Columns area changes If you have chosen to display fields it now looks like this Columns 0 Birthdate Hired pon mg uu d w N Getting Started with AreaList Pro e Column is a field _ Calculated column Table People Field Date Entered gt Header Text Hired Format Footer Text Column Width Autosize Hidden
216. hould display popups must be enterable by popup could be with keyboard too all columns enterable with keyboard only AL SetColumnLongProperty area 2 ALP Column Enterable AL Column entry typed only column1 enterable by popup only AL SetColumnLongProperty area column1 ALP Column Enterable AL Column entry popup only column2 enterable by popup only AL SetColumnLongProperty area column2 ALP Column Enterable AL Column entry popup only 3 Make some cells not enterable based on the value For row 1 Size of array myArray If myArray row chair AL SetCellLongProperty Sarea row column1 ALP_Cell_Enterable 0 End if If myArray row table AL_SetCellLongProperty Sarea row column2 ALP_Cell_Enterable 0 End if End for Default for enterability of a cell is 1 which means inherit the column s enterability The cell enterability property ALP_Cell_Enterable can be set to 1 or to any value allowed for column enterability ALP_Column_Enterable m When the column is set to be enterable by popup but a cell is not enterable by popup 07 no entry 1 keyboard only the popup icon is not displayed in the cell but space is reserved for it m Conversely when the column is not set to be enterable by popup the space for the icon is not reserved and the icon is not drawn even if the cell is set to be enterable by popup Leaving a Cell Leaving a cell
217. htlconID vlconID AL SetCellLongProperty area 3 7 ALP Cell RightlconFlags viconOffset vlconFmt vlconHPos viconVPos viconWidth 40 viconHPos AL Icon Flags Horizontal Left AL SetCellLongProperty area 4 7 ALP_Cell_LeftlconID vicon D AL SetCellLongProperty area 4 7 ALP Cell LeftlconFlags viconWidth viconFmt vlconHPos viconVPos viconHPos AL Icon Flags Horizontal Right AL SetCellLongProperty area 4 7 ALP Cell RightlconID vlconlID AL SetCellLongProperty 5 area 4 7 ALP Cell RightlconFlags viconWidth vlconFmt vlconHPos viconVPos Pictures Q e Advanced Topics viconHPos AL Icon Flags Horizontal Center AL SetCellLongProperty area 5 7 ALP Cell LeftlconlD vlconlD AL SetCellLongProperty area 5 7 ALP_Cell_LeftlconFlags vlconWidth viconFmt viconHPos viconVPos AL SetCellLongProperty 3rea 5 7 ALP Cell RightlconID vlconID AL SetCellLongProperty 5 area 5 7 ALP Cell RightlconFlags viconWidth viconFmt vlconHPos viconVPos viconHPos AL Icon Flags Horizontal Right AL SetCellLongProperty area 6 7 ALP_Cell_LeftlconID vicon D AL SetCellLongProperty 2rea 6 7 ALP Cell LeftlconFlags viconWidth viconFmt vlconHPos viconVPos viconHPos AL Icon Flags Horizontal Left AL SetCellLongProperty area 6 7 ALP Cell RightlconID vlconID AL SetCellLongProperty 5 area 6 7 ALP Cell RightlconFlags viconWidth viconFmt viconHPos viconV
218. idRequest There are no objects of the requested type 6 ALP Err InvalidArrayType The wrong type of array was passed 7 ALP Err InvalidNilPointer An invalid pointer was passed ie it does not point to a valid object 8 ALP Err InvalidPointerType AreaList Pro was not able to cast from the internal type to the types of variables passed in pointer parameters Any type can be cast to string Booleans can be cast to number variables 9 ALP_Err_InvalidArraySize This error means that you have passed two or more arrays to the function and they do not all contain the same number of elements 10 ALP_Err_CantLoadRecord When using ALP_Cell_ Value old AL_SetCellValue to modify record record is locked 11 ALP_Err_CantSaveRecord When using ALP_Cell_ Value old AL_SetCellValue to modify record SAVE RECORD failed AreaList Pro Error Codes 252 Q Appendix Codes AreaList Pro Event codes The user s last AreaList Pro related action is stored in the ALP_Area_ALPEvent property You can find out what it was by calling the AL_GetAreaLongProperty command for example event AL_GetAreaL ongProperty area ALP Area AlpEvent area can be null all areas for most properties Events can be captured in the AreaList Pro area s object method or in the Event callback method but some can only be captured in the Event callback method With regards to the drag and drop events where either option is possible the preferred method
219. ies again it s set back to Keyboard Only This is because you are changing it for column Default Default settings are used for newly added columns in Advanced Properties only Enterability is a column property click on the column that you want to set then use the Entry allowed via popup Detecting a modified value in popup entry AL GetCellMod is always returning 1 Modified when you select a drop down menu whether or not you changed the value AL GetCellMod should always return 1 true for popup entry On the other hand ALP Area EntryModified will return 1 only if the entry is modified AL GetCellMod will return 1 when the entry is modified or if popup entry is used This behavior is compatible with AreaList Pro 8 x If you want to find out if the entry was actually modified use modified ZAL GetAreaLongProperty Sarea ALP Area EntryModified Advanced Properties Detecting a modified value in popup entry 2 D CU VERRRERERENENNNEDUDUEEEEE 170 2 states CheckboX oooooo o 134 216 3 states CheckbOX o ooooooo oo 134 216 4D Picture Library 135 216 AD SENG ceci e 18 ADV ii a a ee 266 A age ban aoe ok Paes Come k eae eee 89 A ACCESS COdG ss issue m RESTER EE Ge BEES 54 ACCESS COMO vecino per eO e 140 Advanced Properties 282 285 Advanced Properties Dialog 124 AL_AddCalculatedcolumn 126 AL_AddCalculatedC
220. ign on the left 512 AL Icon Flags Horizontal Center Horizontally centered 768 AL Icon Flags Horizontal Right Align on the right vertical position 0 default position top 1024 AL Icon Flags Vertical Top Align top 2048 AL Icon Flags Vertical Center Vertically centered 3072 AL Icon Flags Vertical Bottom Align bottom scaling O default trimmed Picture is displayed trimmed to row height 4096 AL Icon Flags Scaled Picture is displayed scaled to fit to the height of the row height of the icon is defined by height of the row and picture is proportionally scaled mask AL Icon Flags Horizontal Mask AL Icon Flags Vertical Mask AL Icon Flags Offset Mask Masks are used to extract a partial value from a combined value For example if you want to extract the offset from the value received with a getter you will do flags AL_GetCellLongValue area ALP Cell LeftlconFlags offset flags amp AL Icon Flags Offset Mask EE Pictures 159 Q Advanced Topics 160 Examples Example 1 Get a picture of a dollar sign from a field and display it in the header row for the Price column C_PICTURE pPict QUERY pictures pictures picturename dollar pPict pictures pic err AL_Setlcon area 20 pPict add picture to the AreaList Pro picture library cache with ID 20 AL SetCellLongProperty area 0 3 ALP_Cell_LeftlconID 20 add icon to column 3
221. in the AreaList Pro Cell Properties theme Example To get the horizontal scale of the cell at coordinates 4 2 C REAL scale scale AL_GetCellRealProperty area 4 2 ALP_Cell_HorizontalScale AL_GetCellTextProperty AreaRef L Row L Column L Property T gt result T Parameter Type Description gt AreaRef longint Reference of AreaList Pro object on layout gt Row longint Row number for which to get the property gt Column longint Column number for which to get the property Property text The property to get result text Value of the got property Get details of a cell s text Property The properties that you can get with this command are the ones of type text listed in the AreaList Pro Cell Properties theme Example To get a description of the options in XML of the cell at coordinates 4 2 C_TEXT xml xml AL_GetCellTextProperty area 4 2 ALP_Cell_ XML Cells Q Command Reference AL SetCellLongProperty AreaRef L Row L Column L Property T Value L RowCount L ColumnCount L Parameter Type Description gt AreaRef longint Reference of AreaList Pro object on layout gt Row longint The number of the row for which to set the property gt Column longint The number of the column for which to set the property Property text The property to set gt Value longint Value to pass to the function long integer gt RowCoun
222. indowWidth Integer Width of DisplayList window gt Location Integer Index value for window location SetListSize is used to control the size or location of the window The possible values for Location are Value Window location 0 Centered on screen default 1 Centered in top 4D window 2 At top left of screen 3 At mouse position DisplayList will not allow a window to be displayed larger than the screen being used If the parameters passed will result in a window larger than the screen then the window will be displayed at the maximum possible size to fit on the screen If SetListSize is not called the default size is based on arrays content columns width and buttons and can grow to full main screen Pass a zero 0 for either window size parameter to force auto sizing for that dimension Value 3 at mouse position may be useful when DisplayList is used for popup entry in AreaList Pro SetListWidths column1 columnN Parameter Type Description gt column1 N Integer Width for each displayed column SetListWidths is used to set the point width for one or more columns Each passed parameter corresponds to the array passed in the DisplayList command SetListFormats ColumnNumber Format Parameter Type Description gt ColumnNumber Integer Column to format gt Format string Format to apply to data displayed in ColumnNumber The display format for the contents of a column is s
223. indows Vista 7 and 8 value 2 draws the sort non native triangle to the right not on top Show vertical scrollbar ALP Area ShowWidths Y long int 0 Show column widths and column number column source in a tooltip when the mouse is over a header or any cell and the three main modifier keys are pressed command option shift on MacOS ctrl alt shift on Windows Useful when setting up an area and you want to set the column widths manually 0 don t display the width 1 display cmd option shift down mouse pointer over a header cell 2 display but only in interpreted mode when host DB is compiled same as 0 component can be compiled ALP Area SmallScrollbar Y bool false 0 Use small scrollbars ALP Area TopRow long int The row number of the first possibly partially visible row on screen ALP Area UseEllipsis Y long int AreaList Pro will automatically truncate data and display the standard ellipsis when columns are resized smaller than the displayed data 0 none 1 trailing for left aligned text center otherwise 2 trailing for left aligned text leading for right aligned text center otherwise AreaList Pro Area Properties AreaList Pro Area Drag amp Drop Properties Constant Get Set Per Type Default Min Max 204 Properties by Theme Comments ALP_Area_DragAcceptColumn AreaList Pro Area D
224. indows to draw text Not all fonts contain italic or bold variations and those technologies do not synthesize italic as QuickDraw did For example Geneva on most Macs has only the Regular typeface Arial has Regular Bold Italic and Bold Italic typefaces Setting the format for a column What is the third parameter of the old AL_SetFormat command format mapped to in AreaList Pro version 9 How do we set the physical format for a column such as 0 00 The format is a column property ALP_Column_Format Try this AL_SetColumnTextProperty area column ALP_Column_Format 0 00 See Formatting Displaying checkmarks was using Char 18 in the text with AreaList Pro v8 5 to display a checkmark this no longer works AreaList Pro version 9 uses Unicode and the checkmark at position ASCII 18 is only present in some fonts on Mac Try to use Unicode characters instead SQUARE ROOT 0x221A y CHECK MARK 0x2713 Y HEAVY CHECK MARK 0x2714 Y Formatting Q Appendix Il Troubleshooting and FAQs 278 Headers Header Foreground Color on Windows 7 Does Header Foreground Color work on Windows 7 Do you have a sample This should work regardless of ALP Area HeaderMode AL SetColumnTextProperty area column ALP Column HdrTextColor yellow AL SetColumnLongProperty area column ALP Column HdrTextColor OXFFDDOODD Header size and sort indicator Is there a way to reduce the size of
225. ine long int Allow a line drag when source this area does not have ALP Area DragSrcRowCodes set 0 7 no 1 inside area 2 outside of area 3 both inside and outside of area 4 inside area w o option key 5 outside of area w o option key 6 both inside and outside of area w o option key OBSOLETE use Drag codes instead ALP_Area_DragOptionKey bool false 0 Drag rows using option key ALP Area DragProcessID long int 4D s process ID of this area AreaList Pro Area Properties 205 Properties by Theme Constant Get Set Per Type Default Min Max Comments AreaList Pro Area Drag amp Drop Properties ALP Area DragRowMultiple viv iv bool false 0 Allow multiple rows to be dragged ALP Area DragRowOnto viv iv bool true 1 Show drag feedback True onto a row False between rows ALP_Area_DragScroll v wv xo long int 30 0 30 Size of frame around the AreaList Pro area border where dragging will start area scrolling When the user drags something near the AreaList Pro area border the contents will be scrolled ALP_Area_DragSrcArea v long int The dropped AreaList Pro area Zero if a different object was dropped or AreaList Pro area from another application ALP Area DragSrcCell v long int Source area grid cell ALP Area DragSrcCellCodes Y Y Y text Drag source cell codes The format is a list of codes separated by
226. ing any column that AreaList Pro area will revert to the column order used to initialize the area If you want to hide unhide a column and preserve the column order manipulate the grid not the visibility of a column ALP Column Visibility and ALP Object Grid are interdependent If you add a column it has to be added to the grid That s why the grid is cleared and later re created from visible columns Similarly if you remove a column it has to be removed from the grid If you make a column visible it has to be added to the grid On the other hand if you explicitly set the grid using AL SetObjects with ALP Object Grid the visibility of columns is changed according to the new grid only columns in the grid will be set to visible all others will be set to invisible Further to to restore the previous user state you can use AL Save to save the settings and AL Load to restore them Using Object Property commands AreaList Pro Object Property commands always return information based upon the original definition as opposed to the grid order arrangement The following properties always use the original developer defined column order ALP Object Source ALP Object ColumnWidth ALP Object HeaderText ALP Object FooterText For example if you want to determine the data source of all columns based upon how the user has rearranged the columns the ALP Object Source property will always return the original
227. irst parameter for SetListHeaders sets the header for the first parameter or first column of DisplayList SetListButtons OKtext CancelText PromptText Button3Text Button3C md Button4Text Button4Cmd Button5Text Button5Cmd Button6Text Button6Cmd Parameter Type Description OKText string value to display in OK button CancelText string value to display in Cancel button PromptText string value to display in upper left of the DisplayList window Button3Text string value to display in the third button Button3Cmd string cmd key equivalent for the third button Button4Text string value to display in the fourth button Button4Cmd string cmd key equivalent for the fourth button Button5Text string value to display in the fifth button Button5Cmd string cmd key equivalent for the fifth button Button6Text string value to display in the sixth button Button6Cmd string cmd key equivalent for the sixth button SetListButtons is used to specify the values to display in the buttons and the Prompt message in the upper left of the DisplayList window The button widths will automatically be adjusted so that the values will fit If the values can t be displayed in the size window then the ends of the button values will be truncated DisplayList Commands Q pe DisplayList SetListSize WindowHeight WindowWidth Location Parameter Type Description gt WindowHeight Integer Height of DisplayList window gt W
228. it into the cell This text is too long to f We could set the ALP Area UseEllipsis property on to indicate the overflow This text is too long t m Or we can set wrapping on so that the text fits on several lines This text is too long to fit in a single line Note regardless of the wrapping mode text is always split on CR or LF and will continue on next line if possible In other words explicit line breaks are always honored even with wrapping off Compatibility mode off When ALP Area Compatibility is set to 0 see compatibility mode wrapping is set with the following properties m ALP Column HdrWrap column header m ALP Column Wrap column rows m ALP Column FtrWrap column footer m ALP Row Wrap individual row supersedes column wrapping setting if any m ALP Cell Wrap individual cell supersedes column and row wrapping setting if any For example to wrap long lines in column 4 AL SetColumnLongProperty SeList 4 ALP Column Wrap 1 Compatibility mode on WhenALP Area Compatibility is setto 1ALP XXX Wrap properties are ignored and the ALP Area NumXXXLines properties are used instead m ALP Area NumHdrLines column header m ALP Area NumRowLines column rows m ALP Area NumFtrLines column footer Wrapping will occur whenever the value is different than 1 ALP Area NumXXXLines 0 or gt 1 Text wrapping Programming The AreaList Pro User Interface
229. l The seven methods can be split into two groups color values passed as string values and color values passed as longint values Specifying Colors Q Working with Colors 114 Color values passed as string values 1 Using one of the standard color names red green blue dark red dark blue white gray light gray cyan magenta yellow brown orange dark orange purple black In this case you pass the color name using one of the text commands e g AL_SetCellTextProperty For all above values the alpha is always 100 You can also use transparent which will set the alpha channel to 0 2 Using standard hexadecimal notion with one of the text commands e g OxFFFF0000 is 100 red 3 Using hexadecimal ARGB alpha red green blue notation In this format a leading is used followed by two hexa numbers per channel if less than four channels are specified full alpha OxFF is assumed Note that this is the format used internally by AreaList Pro e g FF0000 is the same as FFFFO000 100 red 4 3 or 4 part RGBA comma separated real type channel values can be used with one of the text commands Channel values have to be in range 0 0 1 0 if three values are specified alpha is assumed to be 1 0 This is simply the percentage for each color and alpha for transparency Note that in this case alpha is at the end This format conversion is triggered by any in the value e g 1 0 0 0 is th
230. lPtrProperty AreaRef Row Column ALP_Cell_Enterable gt Result In some cases there is more than one way to replace the old command Old commands New Commands and Properties _DatePopupArea Unsupported AL_DoWinResize Obsolete AL_DragMgrAvail Not relevant always true AL_DropArea AL_DropArea AL_ExitCell AL_SetAreaLongProperty ALP_Area_EntryExit AL_GetAdvProps Unsupported internal AL_GetAreaBLOB AL_GetAreaPtrProperty ALP_Area_UserBLOB AL_GetAreaName AL_GetAreaTextProperty ALP_Area_Name AL_GetArrayNames AL_GetColumnTextProperty ALP_Column_Source AL_GetAreaLongProperty ALP_Area_TablelD AL GetObjects ALP_Object_Columns Mapping Old Commands to the AreaList Pro v9 API Old commands AL GetCellColor hes Mapping Old Commands to the AreaList Pro v9 API New Commands and Properties AL_GetCellLongProperty ALP_Cell_TextColor ALP_Cell_BackColor using any color format see Working with Colors AL_GetCellEnter AL GetCellLongProperty ALP_Cell_Enterable AL GetCellHigh AL GetAreaTextProperty or AL GetAreaPtrProperty ALP Area EntryHighlight ALP Area EntryHighlightS ALP Area EntryHighlightE AL GetCellMod AL GetAreaLongProperty ALP Area EntryModified AL GetCellOpts AL GetAreaLongProperty ALP Area SelType ALP Area MoveCellOptions AL GetCellRGBColor AL GetCellLongProperty ALP Cell TextColor ALP Cell BackColor
231. lback method to handle the actual calculation Choose the calculated column type and enter the name of your callback method For an example of using a callback method to perform a calculation see the example for the AL AddCalculatedcolumn command If you are displaying arrays enter the name of the array you want to use in this column Note arrays must be declared before the area is displayed Header Text Enter the title for this column Format You can enter a standard 4D formatting mask here For example to display a price with a dollar sign and two decimal places enter the format 0 00 Footer Text Enter some text for the footer row if desired Column Width The default columns width will be as specified in the Default column setting Autosize unless you change it Hidden Select if you want this column to be hidden Use data size for row height Row height will be calculated according to the font size If you are displaying pictures in any column this setting will read Use picture size for row height when that column is selected Style options font size color etc You can select any styling for each column Enterability For each column you can specify whether it will be enterable and by what means e g by keyboard and or popup If you select By Popup you ll need to enter the name of the array with which to populate the popup in the Popup array field Boolean data display Choose how you want Boo
232. le columns m When a grid is defined by the developer it is used and visibility of the columns is modified accordingly If you are familiar with how HTML tables are created a grid works in much the same way in fact grids are stored as HTML in the area s XML data Grids Q Advanced Topics 149 Creating a Grid To create a grid you first add the fields or arrays to the area in the same way as for a list view and then you tell AreaList Pro how to organise those columns into the grid Building the Grid Array The grid array is a two dimensional array that describes how the lines are organised into cells and columns The first dimension of the array must be 3 and the second dimension will be the number of lines x the number of columns The First Dimension The three elements of the first dimension of the array represent 1 Line which data column will be displayed in the line 2 Horizontal span how many horizontally adjacent cells the data can span 3 Vertical span how many vertically adjacent cells the data can span The Second Dimension The second dimension of the array contains the relevant values one element for each line In our example there will be 6 elements in the second dimension 2 columns x 3 lines Type Description Name Price The array declaration therefore will be ARRAY LONGINT aiGrid 3 6 Filling the Array The first dimension of the array contains the column numbers that wi
233. lean data to be displayed check box with title check box without title or radio button Column Setup Tab 126 General Options Q 127 The Advanced Properties Dialog Here you can set various options that will apply to the entire area such as whether column resizing is allowed if the Sort Editor should be available whether headers and footers will be shown and so on AreaList Pro Area 9 7mc4 Plugin Masters 2013 2014 AreaList Pro Advanced Properties Area Name eDemoALP _ Allow no selection single row mode _ Disable row highlight See also Entry Mode and Reported event on the Enterability Options panel Columns M Allow column resize _ Display pixel width _ Resize when data changes _ Auto snap last column Auto resize column M Allow column lack Lock 2 columns Compatibility V ALP 8 x compatibility Hide 0 columns Column Setup Enterability Advanced Dragging Preview Selection Miscellaneous Selection mode Multiple row a Draw frame 3D Frame _ Show focus _ Hide headers __ Show footers M Move row style amp color settings with data M Move cell style amp color settings with data Sorting M Sort on data change 4 Clicks on headers Sort on Click M Enable user sort editor Sort editor title Sort editor prompt Select the columns to sort Save 4D code to Clipboard
234. license No merged applications This is a yearly license expiring on February 1st same date as your 4D Partner licenses Expiration only affects interpreted mode Compiled applications using an obsolete license will never expire Licensing 15 Installation Registering your AreaList Pro License Once you have purchased your license you will receive a registration key This code must be registered each time the database is started There are four ways to register your license m using the Demo mode dialog Register button m though a text file m in your 4D code with a command m through the online registration system Yearly licenses such as Unlimited single user OEM and Partner do not require any serial information or online registration The only way to register these licenses is through the AL Register command Quick and easy way 1 Put the following lines of code into your On Startup database method with the license number that you received and your email address C LONGINT result result AL Register yourLicenseKey 0 youremail something xxx 0 if successful 2 Make sure that the machine where the plugin will be used is connected to the Internet single user workstation or in server mode the first remote client that will connect to the server 3 Install your application 4 You will receive an email with the final key issued and the IP address of the user site If the site has no Internet connection
235. lick property for both areas the value being the selected menu line number minus one Case of Form event On Clicked AL_SetAreaLongProperty eListLeft ALP_Area_SelClick ReportEvent_R 1 AL SetAreaLongProperty eListRight ALP_Area_SelClick ReportEvent_R 1 End case Example 11 Determining a user s action Q Tutorial The Entry mode Popup sets the entry trigger click type through the ALP_Area_EntryClick property for each area the value being the selected menu line number minus one Case of Form event On Clicked we need to set the two areas separately AL SetAreaLongProperty eListLeft ALP Area EntryClick EntryMode R 1 AL SetAreaLongProperty eListRight ALP Area EntryClick EntryMode R 1 End case The AlpEventText method receives the event code and a pointer to the event text variable and returns the appropriate response C LONGINT 1 event code C POINTER 2 to the event description text Case of 1 AL Empty Area Double click 2 gt Double click in an empty part of the area without displayed data 1 AL Double click event 2 gt Double click 1 AL Empty Area Single click 2 gt Single click in an empty part of the area without displayed data etc 120 No event 2 unchanged Else 2 gt Unknown event End case If 120 add the event code 2 gt 2 gt String 1 Char Carriage return End if Every 10 ticks the user s la
236. ll comprise our lines They are filled from left to right and top to bottom aiGrid 1 1 1 Type the 1 column that was added to the area aiGrid 1 2 4 Description the 4 column that was added to the area aiGrid 1 3 2 Name the 2 column that was added to the area aiGrid 1 5 3 Price the 3 column that was added to the area This could be visually represented in this way aiGrid 1 1 aiGrid 1 2 aiGrid 1 3 aiGrid 1 5 The second and third dimensions specify the row and column spans Most of these values will be 1 so we can populate the arrays easily For i 1 6 aiGrid 2 i 1 column span aiGrid 3 i 1 row span End for We want column 2 the description to span 3 lines aiGrid 3 2 3 row span Grids Q a Advanced Topics Creating the Grid Finally we instruct AreaList Pro to create a grid from our two dimensional array AL_SetAreaLongProperty area ALP_Area_ColsInGrid 2 2 columns in the grid err AL_SetObjects area ALP_Object_Grid aiGrid Assign the array to the grid Example To illustrate how this works we ll look at the code that creates the example shown above 1 Find the records we want to display and sort them ALL RECORDS product ORDER BY product product product type product product name 2 Add the four columns to the area ARRAY LONGINT aPtr 4 aPtr 1 gt product product_type aPtr 2 gt product product_na
237. ll is currently being edited ALP Area EntryMapEnter vv v long int 0 0 3 Map Enter key to 0 nothing ignore 1 Tab 2 Return 3 Tab for text fields Return otherwise ALP_Area_EntryModified v bool Currently edited cell value is modified Note when a real number is to be edited the cell is marked as modified if Num String old Value Num currentValue in order to ignore epsilon differences ALP Area EntryPrevCell v cell Row and grid cell number of previous entry row cell ALP Area EntryPrevColumn v long int Previously edited column number ALP Area EntryPrevGridCell v long int Previously edited grid cell number ALP Area EntryPrevRow v long int Previously edited row number ALP Area EntryRow v long int Row number of edited cell ALP Area EntrySelectedText viv text Selected text entry must be in progress ALP_Area_EntrySkip viv bool Skip current cell ALP_Area_EntryText viv text Entry text entry must be in progress ALP_Area_EntryValue viv Current entry value ALP_Area_lgnoreMenuMeta v v wv bool Do not interpret meta characters when building popup menu May be used with the area reference set to 0 newly created areas will use this mode ALP Area IgnoreSoftDeselect v v v boo false 0 Ignore soft deselect treat it as hard deselect See the explanation in the Callbacks chapter May be used with the area reference set to 0 newly created areas will use this mode ALP Area CallbackMethEntryEnd Y Y Y tex End e
238. lled ALP Area EntryAllowReturn ALP Area EntryAllowSeconds ALP Area EntryMapEnter decimalChar useNewPopuplcon are no longer supported decimalChar on Windows is handled automatically new popup icon is always used AL SetEventCallback AL SetAreaTextProperty ALP Area CallbackMethOnEvent AL SetFields AL SetObjects ALP Object Columns using array of pointers AL SetFile AL SetAreaLongProperty ALP Area TablelD AL SetFilter AL SetColumnTextProperty ALP Column Filter AL SetFooters AL SetColumnTextProperty ALP Column FooterText AL SetForeCIr AL SetColumnLongProperty ALP Column TextColor ALP Column HdrTextColor ALP Column FtrTextColor Using any color format see Working with Colors AL SetForeColor AL SetColumnLongProperty ALP Column TextColor ALP Column HdrTextColor ALP Column FtrTextColor Using any color format see Working with Colors AL SetForeRGBColor AL SetColumnLongProperty ALP Column TextColor ALP Column HdrTextColor ALP Column FtrTextColor Using any color format see Working with Colors AL SetFormat AL SetColumnLongProperty ALP Column Format ALP Column HorAlign ALP Column HdrHorAlign ALP Column FtrHorAlign ALP Column CalcHeight AL SetFtrStyle AL SetColumnTextProperty ALP Column FtrFontName AL SetColumnLongProperty ALP Column FtrStyleF AL SetColumnRealProperty ALP Column Ft
239. lls to AL Register will return zero for OK Therefore you can mix modes and use the text file or Register button as well as the command Unlimited single user OEM temporary and Partner licenses can only be entered through the AL Register command Online registration As of version 9 9 AreaList Pro provides an automated solution to register itself using an Internet connection This feature can be helpful whenever you don t want to bother your end user with plugin registration or want to save the time to collect the serial machine ID or any other reason when you want the process to be entirely and automatically managed from the client site It can also be used for your own development tools removing the need to modify your 4D code to include or update registration licenses Note however that the site must have an open outgoing HTTP Internet connection available Master keys The basic principle is that we deliver a non assigned license key called master key which you use in your call to AL Register in your On Startup database method This key will be used to generate valid keys for the plugin and environment called final keys One single master key can generate as many final keys as you need in case you order several licenses of the same kind regular or merged single user licenses or server licenses of the same size A master key looks like a final key except that the second part is the plugin code name s
240. log Register button This is only valid for non unlimited licenses Undefined parameters A compiler runtime error occurs with a message that the parameters are undefined You must define the parameters in the entry started and entry finished callbacks as long integers See the Callbacks topic Empty titles in 4D v11 Button s titles are empty or boolean labels etc with 4D v11 The resources have been transferred to XLIFF files where you can find various default values For example AreaList Pro Format Defaults is a group in ALP xIf file All text strings except Advanced Properties are also set from XLIFF files 4D v11 does not support XLIFF files in plugins copy ALP xlf into your database s Resources AL Register returns zero Undefined parameters Empty titles in 4D v11 Q Appendix Il Troubleshooting and FAQs 267 Scrolling Ghost scrollbars AreaList Pro s scroll bars show up on other pages If an AreaList Pro area is displayed on a form in a window and another form is going to be displayed in the window with DIALOG ADD RECORD or MODIFY RECORD commands or the user switches to a different page in the same form you must inform the AreaList Pro object that another form will be displayed To do this use the ALP_Area_Visible property of AL_SetAreaLongProperty to 1 deactivate the AreaList Pro area 2 hide the scroll bars Note that you will need to call ALP_Area_Vi
241. lor color 00FFFFFF Background color Default is transparent no color ALP_Column_FtrTextColor color FFO00000 Font color Default is black ALP_Column_BackColor color 00FFFFFF Background color Default is transparent no color ALP_Column_TextColor Row Properties color FFO00000 Use these properties with commands in the Rows theme Constant ALP_Row_BackColor Font color Default is black Default Min Max Comments Background color ALP_Row_TextColor Font color Color Options Q Dd Working with Colors Cell Properties Use these properties with commands in the Cells theme Constant Get Set Per Type Default Min Max Comments ALP Cell BottomBorderColor viv wv color Bottom border color ALP Cell FillColor vvv wv color Color used to fill the border rectangle ALP Cell LeftBorderColor Yiv iv color Left border color ALP_Cell_RightBorderColor v wv v color Right border color ALP Cell TopBorderColor v wv wv color Top border color ALP Cell BackColor v wv wv color Background color ALP Cell TextColor vvv color Font color Converting RGB values AreaList Pro colors are very close to the format used by 4D In 4D RGB colors are long integers interpreted as OXOORRGGBB so there are 3 channels each in range 0 255 AreaList Pro uses ARGB OXAARRGGBB 4 channels each in range 0 255 For
242. lumnLongProperty ALP Column HdrStyleF AL GetHeaderOptions Unsupported AL GetHeaders AL GetColumnTextProperty ALP Column HeaderText AL GetColumnLongProperty ALP Column Visible AL GetObjects ALP Object HeaderText ALP Object HeaderTextNH AL GetLastEvent AL GetAreaLongProperty ALP Area AlpEvent AL GetLine AL GetAreaLongProperty ALP Area SelRow AL GetMiscOpts AL GetAreaLongProperty ALP Area HideHeaders ALP Area ShowFocus ALP Area ShowFooters postKey and useModernLook are unsupported AL GetMode AL GetAreaPtrProperty ALP Area TablelD AL GetPictEscape Unsupported AL GetPluginPath AL GetPrevCell AL GetAreaTextProperty ALP Area Path AL GetAreaLongProperty ALP Area EntryPrevRow ALP Area EntryPrevColumn AL GetRowOpts AL GetAreaLongProperty ALP Area SelMultiple ALP Area SelNone ALP Area DragLine ALP Area DragAcceptLine ALP Area MoveRowOptions ALP Area SelNoHighlight AL GetScroll AL GetAreaRealProperty ALP Area ScrollLeft ALP Area ScrollTop Not in rows columns but in points AL GetSelect AL GetObjects ALP Object Selection AL GetSort AL GetAreaTextProperty ALP Area SortList AL GetObjects ALP Object SortList AL GetSortedCols AL GetAreaTextProperty ALP Area SortList AL GetObjects ALP Object SortList AL GetSortEditorParams Unsuppor
243. lumnLongProperty with ALP Column Enterable The cell at row 1 column 2 is also set to be non enterable with City State Mobile AL Fayetteville D Little Rock AR Phoenix AZ Tuscon AZ Fayetteville AR This can be controlled via the ALP Column Enterable property and the associated command AL SetColumnLongProperty AL SetColumnLongProperty eList 1 ALP Column Enterable O set column 1 to be non enterable You can similarly control enterability for individual cells with the AL SetCellLongProperty command AL SetCellLongProperty eList 1 2 ALP Cell Enterable O set the cell at row 1 column 2 to be non enterable Example 6 Specifying which columns are enterable Q Tutorial Example 7 Using a callback method to check data entry validity A callback is a 4D project method which is executed by a plug in AreaList Pro lets you make use of callbacks when entering and exiting an AreaList Pro object See the Callbacks section for more detailed information In this example we are using a callback when an entry in the State column is modified to make that a valid State abbreviation has been entered if it hasn t the user will see an Alert Example 7 iple 7 This is Example 7 from the Reference Manual which was built upon Example 6 In addition a exit cell callback was added to check the validity of entered data using AL SetAreaTextProperty with ALP Area CallbackMethEntryEnd AL GetAreaLon
244. lumn_Stylel styl italic ALP_Column_StyleS styS strike through Property Values Constants and XML Names Property Constant Property Value selector Q os Appendix Codes Property XML Name ALP Column StyleU StyU underline ALP Column TextColor telr textColor ALP_Column_Type type dataType ALP_Column_Uppercase entu uppercase ALP_Column_UserText Utxt userText ALP_Column_VertAlign valg valign ALP_Column_Visible visi visible ALP_Column_Width widt width ALP_Column_WidthUser uwdt userWidth ALP_Column_Wrap wrap wrap ALP_Column_XML xml ALP_Drop_DragAcceptColumn ddac acceptColumnDrag ALP_Drop_DragAcceptLine ddal acceptLineDrag ALP_Drop_DragDstCodes dddc dstCodes ALP Drop DragProcessID ddpn ALP Drop DragSrcArea ddSA ALP Drop Kind kind ALP Drop Name name name ALP Drop XML xml ALP Object Columns COLS ALP Object ColumnWidth widt ALP Object ColumnWidthUser uwdt ALP Object DragDstCellCodes dddc ALP Object DragDstColCodes dddC ALP Object DragDstRowCodes dddR ALP Object DragSrcCellCodes ddsc ALP Object DragSrcColCodes ddsC ALP Object DragSrcRowCodes ddsR ALP Object Fields Xsrc ALP Object FooterText ftxt ALP Object FooterTextNH fTXT ALP Object Grid GRID ALP Object HeaderText htxt ALP Object HeaderTextNH hTXT ALP O
245. ly the sort list do not actually sort the data ALP Object Source v text Data source of all columns ALP Object Type v long int Data type of all columns 4D type constants can be used Note Is Time is returned for longint arrays formatted as time ALP Object Visible v v boolean Visible status of an object e g column pes For AL SetObjects if the array is shorter than the number of columns the remaining columns visible status will not be modified AreaList Pro Cell Properties re Mapping Old Commands to the AreaList Pro v9 API Mapping Old Commands on e AreaList Pro v9 The following table lists all the legacy pre version 9 AreaList Pro commands and describes which new command should be used in place of each one See the v8 5 manual for legacy commands documentation Where appropriate the new commands are shown with the property that should be used Note mapping of colors to the v9 format is supported but patterns are no longer supported They are interpreted by AreaList Pro version 9 as transparency ratios See Patterns The old commands will continue to work other than those which are now obsolete so you don t have to update all your AreaList Pro code although it is recommended that all new or generic code is mapped to the v9 API For example AL_GetCellEnter would be replaced with the new command AL GetCellPtrProperty and the property ALP Cell Enterable C_LONGINT Row Column Result err AL_GetCel
246. me aPtr 3 gt product retail_price aPtr 4 gt product description Serr AL_SetObjects area ALP_Object_Columns aPtr 3 Set the attributes for the columns area column width header text footer text format attributed calculate height enterability bold AL SetColumn area 1 0 Type False False 0 True AL_SetColumn area 2 0 Name False False 0 False AL_SetColumn area 3 0 Price False False 0 False AL SetColumn area 4 300 Description True True 1 False AL_SetColumn method C_LONGINT 1 2 alp column C_REAL 3 width C_TEXT t 4 5 6 header footer format C_BOOLEAN 7 8 10 attributed height bold C LONGINT 9 enterability AL SetColumnRealProperty 1 2 ALP Column Width 3 AL SetColumnTextProperty 1 2 ALP Column HeaderText 4 AL SetColumnTextProperty 1 52 ALP Column Format 6 AL SetColumnLongProperty 1 2 ALP Column Attributed Num 7 AL SetColumnLongProperty 1 2 ALP Column CalcHeight Num 8 AL SetColumnLongProperty 1 2 ALP Column Enterable 9 AL SetColumnLongProperty 1 2 ALP_Column_StyleB Num 10 AL SetColumnLongProperty 1 2 ALP Column HdrStyleB Num 10 Grids Q Advanced Topics 151 4 Create a two dimensional array that describes how the lines are organised into cells and columns ARRAY LONGINT aiGrid 3 6 For i 1 6 aiGrid 2 i 1 column span aiGrid 3 i 1 ro
247. mined by columns having ALP Column CalcHeight 1 This also holds for headers and footers see Rows ALP Column Calculated v v v bool This column is a calculated column Can only be set in array mode use AL AddCalculatedColumn in field mode ALP Column Callback Viv wv tex Callback method for a calculated column area column type ptr first count If the AreaList Pro area displays several calculated columns the callback methods will be called in the column number order ALP Column DisplayControl v v v long int 1 1 4 Display control type 1 7 default formatted value 0 checkbox without title 1 small checkbox without title 2 mini checkbox without title 0 1 and 2 are identical on Windows 3 mapped through ALP Column PopupArray ALP Column PopupMap or ALP Column PopupMenu these 3 properties have to be defined 4 use pictures see Displaying custom checkboxes using pictures from the 4D Picture Library ALP Column Enterable v v v long int 1 0 5 Enterablility 0 not enterable 1 by keyboard 2 by popup 3 by keyboard amp popup 4 by popup ignoring menu meta 5 by keyboard amp popup ignoring menu meta ALP_Column_EntryControl VY v v long int 0 0 2 Entry control depending upon column type boolean or integer long integer For boolean columns 0 checkbox without title 1 checkbox with title 2 radio buttons For integer long integer c
248. mn 1 Row 13 Como 2 Row 13 Com 3 Raw 13 Colin 4 Row 13 Cem 5 Row 13 Cam 6 ow 13 Commn 7 Row 13 Commn B Row 15 Column 1 Row 15 Column 2 Row 15 Column 3 Row 15 Column 4 Row 15 Column 5 Row 15 Column 6 Row 15 Column 7 Row 15 Column 8 Save XML to Clipboard Save 4D code to Clipboard Load from Clipboard Clear amp Save Cancel OK Click OK when you are happy with your settings and your area is ready to use sss Preview Q Advanced Topics 133 Advanced Topics XML Every AreaList Pro setting has an XML name or tag and you can save an area s settings into a field or variable which can then be loaded and applied to any AreaList Pro area In this way you can create AreaList Pro templates which can be used on various layouts or even transferred to other databases See the AL Load and AL Save commands for more information about saving and loading XML This feature can be very useful if you want to distribute AreaList Pro area settings without having to recompile your application simply set up the area the way you want it save the settings to XML and send that XML to another user Note not all defined XML tags are saved only properties that were set to values other than the default values will be included You can find a complete list of XML tags in the Property Values Constants and XML Names section It is also possible to set XML values through
249. more than this It provides the column width its number and its data source The information is displayed in a tooltip whenever the mouse is over a header or any cell and the three main modifier keys are pressed command option shift on MacOS ctrl alt shift on Windows This behavior is triggered by the ALP Area ShowWidths area property which you can set for example according to the user name AL SetAreaLongProperty SeList ALP Area ShowWidths Num userName Administrator Value 1 means display in interpreted and compiled modes value 2 means display in interpreted mode only This is also true with the DisplayList module included into AreaList Pro v9 Hu LM OO M e 1 Column widths Columns 109 Hiding columns Hidden columns ALP Area CompHideCols is used to hide the last x columns x being the property value or know how many columns are currently hidden in the area only in compatibility mode ALP_Area_Compatibility 1 If your last x columns are hidden the value returned by AL GetAreaLongProperty area ALP Area CompHideCols will be zero in compatibility mode off ALP Area Compatibility 0 This property is simply unused in such case but it can be nevertheless set to any positive integer value or zero and it will preserve the value so that you can get it later In this case ALP Area CompHideCols will return a value even though compatibility mode
250. mp dropped in same area it is moved on drag not on drop m the headers on Windows are drawn using pictures eliminates native white Windows 7 headers m the horizontal scrolling is set to columns ALP Area ScrollColumns 1 m auto selection of unselected row on click into a popup icon is disabled ALP Area SelNoAutoSelect 1 m if only one column is to be displayed it will have the width of the area m columns are physically reordered on Drag You can try to simply turn the compatibility mode off set ALP Area Compatibility to zero but it depends on your code if it will work as you expect m noALProEvt use AL GetAreaLongProperty to get ALP Area AlpEvent any columns to be hidden have to be maintained the area has to be made visible if it was hidden explicitly for drag amp drop the area must have the Draggable and or Droppable properties enabled in form during On Drag event column 7 row 5 the column row was not yet moved gt use On Drop event 9 8 m the columns are not reordered the order is defined by the grid setup The rest should work other properties are not reset to default 2c S Compatibility mode Q Appendix Il Troubleshooting and FAQs 285 Advanced Properties just can t get the Entry allowed via popup to stick to anything other than Keyboard Only in the Advanced Properties set it and click the OK button and when open the Advanced Propert
251. n ALP Area MiscColor2 v v e color ZFFEEEEEE Area color below the vertical scrollbar OBSOLETE this area is not customizable in AreaList Pro v9 the scrollbar is drawn and it is bigger than in 8 x In AreaList Pro v9 this color is used as the background color before drawing anything the whole AreaList Pro area is erased using this color Default is light gray ALP Area MiscColor3 vv v color ZFFEEEEEE Area color left of the horizontal scrollbar Default is light gray ALP Area MiscColor4 v wv Y color FFEEEEEE Area color right of the horizontal scrollbar Default is light gray ALP Area NumFtrLines v v v lng int 1 0 64 Number of lines within the footer 0 variable height ALP Area NumHdrLines v v v long int 1 0 64 Number of lines within the header 0 variable height ALP Area NumRowLines v v v lng int 1 O 64 Number of lines within the row 0 variable height ALP Area ResizeDuring v v v bool false 0 ALP Area RowDivColor v v v color FF808080 Row divider color default is gray ALP Area RowHeight v real Initial height of every row ALP Area RowHeightFixed v v v bool true 1 Deprecated superseded by ALP Area NumRowLines ALP Area NumHdrLines ALP Area NumFtrLines with value s 0 ALP Area Rowlndent v v V point 3 1 Horizontal and vertical indents in points The first value represents the horizontal indent left and right and the second value is the vertical indent top and bottom ALP Area RowlndentH
252. nd drop in one action Scroll area size The size of the frame around the AreaList Pro area border where dragging will start area scrolling When the user drags something near the AreaList Pro area border the contents will be scrolled Row drag only with Option key If this is selected a row drag will only be allowed if the Option key is used Row dragging Choose whether drags go between rows or on top of rows in the destination area Dragging a The Advanced Properties Dialog Source and Destination Codes When you want to enable dragging between two AreaList Pro areas you pair them up by specifying Source and Destination codes For example suppose you want to allow rows to dragged from this area the Source You could create a code OKtodrag and add it to the Rows area under Source Codes Source Codes You would then add the same code to the Destination Codes area in the AreaList Pro area that you want to allow dragging TO from this area You can add any number of codes to each option one code per line Drags can take place between AreaList Pro areas on the same form on a different form in the same process or on a form in another process Drags can also take place from non AreaList Pro objects such as 4D fields and external files Once an object has been dragged you will need to handle the Drop event programmatically AreaList Pro doesn t know what you want to do with the data that has been dropped s
253. ndent ALP Area HdrlndentH hrih ALP Area HdrindentV hriv ALP Area HeaderMode hdrm headerMode ALP Area HideHeaders hhid hideHeaders ALP Area Hierlndent hiid indentHierarchy ALP Area IgnoreMenuMeta emet ignoreMenuMeta ALP Area IgnoreSoftDeselect enis ignoreSoftDeselect ALP Area IsArea isEA ALP_Area_Kind kind ALP_Area_LastError empty string ALP_Area_LimitRows limR ALP_Area_ListHeight Alhi ALP_Area_ListWidth Alwd ALP_Area_MinFtrHeight fmin minFooterHeight ALP_Area_MinHdrHeight hmin minHeaderHeight ALP_Area_MinRowHeight rmin minRowHeight ALP Area MiscColor1 mic1 miscColor1 ALP Area MiscColor2 mic2 miscColor2 ALP Area MiscColor3 mic3 miscColor3 ALP Area MiscColor4 mic4 miscColor4 ALP Area MoveCellOptions como moveCellOptions ALP Area MoveRowOptions romo moveRowOptions ALP Area Name name name ALP Area NumFtrLines ftrl footerLines ALP_Area_NumHdrLines hdrl headerLines ALP_Area_NumRowLines rowl rowLines ALP_Area_Path path ALP_Area_Redraw upds ALP_Area_ResizeDuring redu resizeDuring ALP_Area_RollOverCell evIC ALP Area RollOverCol evic ALP_Area_RollOverRow evir ALP_Area_RowDivColor rowc rowDividerColor ALP Area RowHeight rowh ALP Area RowHeightFixed rowf rowHeightFixed ALP Area Rowlndent roin rowIndent ALP Area RowlndentH roih Property Values Constants and XML Names Property C
254. ndent for the header rows in points ALP Area Hierlndent v viv real 16 O 64 Indent increment for every hierarchy level for use with hierarchical lists ALP Area Rowlndent v wv v point 3 1 Horizontal and vertical indents in points The first value represents the horizontal indent left and right and the second value is the vertical indent top and bottom ALP Area RowlndentH v viv real 3 0 64 Horizontal indent for the rows in points ALP Area RowlndentV v viv real 1 O 64 Vertical indent for the rows in points ALP Area UseEllipsis v wv Y longint 0 0 2 AreaList Pro will automatically truncate data and display the standard ellipsis when columns are resized smaller than the displayed data 0 none 1 trailing for left aligned text center otherwise 2 trailing for left aligned text leading for right aligned text center otherwise Text Styling Constant ALP Area WindowsText Get Column Properties Use these properties with commands in the Columns theme Set Per Default Type Min Max 85 Programming The AreaList Pro User Interface Comments 1 change the engine used for drawing on Windows to GDI drawing ignored on Mac 0 default use GDI GDI better rendering no transparency no horizontal scaling limited text rotation features GDI allows the three features above but may affect precise rendering on Windows Can be used wi
255. ndled upon beginning entry when using numeric text entry 0 click is routed to the entry widget default behavior 1 ignore click select all when the value is NULL or the formatted value is empty string numeric date time 2 7 ignore click select all when the value is NOT NULL numeric date time text 3 ignore click always select all same behavior as when tabbing between the fields Note explicit setting of the highlighted text in the Cell entered callback is always honored ALP Area EntryGotoCell viv cell Row and grid cell number to start entry in row cell ALP_Area_EntryGotoColumn viv long int Column number to start entry in first grid cell showing this column will be used ALP_Area_EntryGotoGridCell viv long int Grid cell number to start entry in cell in grid not column number ALP_Area_EntryGotoRow viv long int Row number to start entry in ALP_Area_EntryGridCell v long int Grid cell number of edited cell AreaList Pro Area Properties 208 Properties by Theme Constant Get Set Per Type Default Min Max Comments AreaList Pro Area Entry Properties ALP_Area_EntryHighlight viv range Entry highlight in the form String SstartOfSelection String SendOfSelection ALP_Area_EntryHighlightE viv long int Entry highlight end ALP_Area_EntryHighlightS viv long int Entry highlight start ALP Area EntryInProgress v bool A ce
256. ng creating your own templates Command and property Use the following command to print with SuperReport Pro AL SuperReport AreaRef L Template T Options L StyleOptions L Title T gt result T Parameter Type Description gt AreaRef longint Reference of AreaList Pro object on layout gt Template text XML SuperReport template or full path to a XML template or empty to use AreaList Pro s built in template gt Options longint 0 use current columns widths 1 use automatic width gt StyleOptions longint Style properties that should not be overtaken by AreaList Pro see constants in SuperReport Pro manual Style Features gt Title text Optional text centered in the header result text How it works 247 p Printing with SuperReport Pro Use the following property with AL GetAreaTextProperty to retrieve the default template in XML format Constant Get Set Per Type Default Min Max Comments ALP Area SRPTableTemplate Get the SuperReport Pro template used for report creation stored in Resources Table Report xml as XML Creating the report Creating a XML SuperReport Pro report from an AreaList Pro area is performed by the AL SuperReport command AL SuperReport AreaRef L Template T Options L StyleOptions L Title T gt result T m Template can be a XML template or full path to a XML template or empty to use Areal ist Pro s built in SuperReport Pro template
257. ng int Sorted column number use ALP Area SortList to sort ALP Area SortDuring Yv Y bool false 0 Sets a flag for a permanent sort ie automatically keep the data sorted of it changes ALP Area SortList v viv text Sort list The format is a comma separated list of column numbers Use negative number for descending order ALP Area SortListNS Viv text No sort sort list See Taking control of the sort for more information and an example The format is a comma separated list of column numbers Use negative number for descending order Only sets the sort list does not actually sort the data AreaList Pro Area Properties Constant Get Set Per Type Default Min Max Q po Properties by Theme Comments ALP Area SortOK AreaList Pro Area So v text rt Properties Sort editor OK button label If empty defaults to Sort or its translation from the ALP xIf file located in the localized subfolder of the Resources folder in the AreaList Pro bundle ALP Area SortOnLoad v bool false 0 Sort data on area initialization when loaded from advanced properties or XML ALP Area SortPrompt v text Prompt for sort editor If empty defaults to Select columns to sort or its translation from the ALP xIf file located in the localized subfolder of the Resources folder in the AreaList Pro bundle ALP Area SortTitle v text Title for sort editor If emp
258. ng integer that reports what action mode caused data entry to begin in the cell m the third parameter is a long integer that reports whether the record was loaded or not this parameter only exists when fields are being displayed You must use the following declaration in your callback method C LONGINT 1 2 3 Click action The ALP Area EntryFirstClickMode property determines how the first click is handled upon beginning entry when using numeric date time or text entry m 0 the click is routed to the entry widget and the cursor is placed wherever the click occurs default behavior m 1 ignore click select all when the value is NULL or the formatted value is empty string numeric date time m 2 ignore click select all when the value is NOT NULL numeric date time text m 3 ignore click always select all same behavior as when tabbing between the fields Note explicit setting of the highlighted text in the Cell entered callback is always honored Dc c d Using Callback Methods During Data Entry 98 o Using the Callback Methods Entry mode As stated above the second parameter passed to the callback routine the long integer 2 contains the mode by which data entry began according to the following table Constant Value Entry mode AL Click action 1 Click in Cell AL Tab key action 2 Tab AL Shift Tab key ac
259. ng sort direction colToSort AL_GetAreaLongProperty Self gt ALP_Area_SortList then handle the sorting but for all columns not just for the calculated column s Sorting a Programming The AreaList Pro User Interface Comma separated list vs array If you don t like the idea of a comma separated list of sort columns you can use an array of sort columns In some cases parsing a sort to comma separated values is more complex than parsing to an array ARRAY INTEGER aiSortList 0 err AL_GetObjects area ALP_Object_SortList aiSortList get order ARRAY LONGINT alSortList 2 aiSortList 1 4 aiSortList 2 7 err AL_SetObjects area ALP_Object_SortList aiSortList set order sort data If your columns data are already sorted you can use err AL_SetObjects Sarea ALP_Object_SortListNS aiSortList set order don t sort data Restoring highlighted selection If you want AreaList Pro or a given area to always restore the highlighted selection after a sort in field mode set the ALP Area SelPreserve property to true Otherwise the ALP Object RowSelection property is the way to perform an action in AreaList Pro similar to 4D s GET HIGHLIGHTED RECORDS then HIGHLIGHT RECORDS AreaList Pro uses 4D record IDs though not UserSet or any other set as 4D does Get the currently selected record numbers from the user s row selection ARRAY LONGINT records 0 err AL_GetObjects area ALP
260. ngeles CA Bottom OOFFFFFF Doug Sleeter 65 797Santa Fe NM Left OOFFFFFF Mike Slade 47 057Boston MA pum es Pradeep Singh 49 758Munich 1 Right 0OFFFFFF OK Padding and Dividers The area will look more legible with some padding to move the text away from the cell borders We also set Column Dividers to magenta and Row Dividers to blue Area settings all cells Firstname Lastname Salary City Todd Zipnick 52 230 Phoenix Column color divider Magenta Row color divider Blue Vertical Padding 2 m Background and Fill Now we set a light blue Background and yellow Fill but we only see the Fill since there are not Cell Offsets yet Cell colors Background FF66CCFF Fill FFFFFFOO Coloring Cell Sections Q us Working with Colors E Text Editing We will see our blue Background if we enter a cell for text editing Cell colors Background FF66CCFF Fill FFFFFFOO Cell Offsets Setting Cell Offsets will reveal our Background color ul uj ww Cell colors Background FF66CCFF Fill FFFFFFOO Cell offset Top Bottom Left Right E Borders Let s set our top and left Borders to red 5 points thick Note that right and bottom borders are transparent here since we set their thickness but no color Cell border thickness Top Bottom Left Right ww oun uw Cell border color Top WFFFO0000 Bottom OOFFFFFF Left WFFFO0000 Right 4OOFFFFFF E Trans
261. nniversary O Set calculated status and callback method for column 2 AL SetColumnLongProperty eList 2 ALP Column Calculated 1 AL SetColumnTextProperty eList 2 ALP Column Callback CalcColCallbackArray Now we use the callback as previously to populate the array on the fly CalcColCallbackArray 1 1 Area reference AreaList Pro longint reference 2 Column number 3 Type of array in this column 4 Pointer to the displayed array 5 First row for which to calculate cell 6 Number of cells to calculate in column Declare the parameters C LONGINT 1 2 3 5 6 these must be declared C_POINTER 4 this must be declared C LONGINT i For i 5 5 6 1 4 gt i Add to date aHireDate i 1 0 0 End for Calculated columns Q Working with Colors 113 Working with Colors You can use colors in your AreaList Pro areas in various ways to color text backgrounds calendar elements and so on Specifying Colors Internally all colors in AreaList Pro version 9 use ARGB alpha red green blue each channel using 8 bits 0 255 0x00 0xFF You can use the alpha channel to specify transparency The value should be between 0 255 0x00 OxFF Transparency of 0 means fully transparent invisible color transparency of 255 OxFF means fully opaque color However there are seven ways that you can specify colors in AreaList Pro Where necessary they will be converted to the ARGB mode
262. ntry callback function The return value can be used for validation the default value is False ALP_Area_CallbackMethEntryStart Y Y Y text Start entry callback method area action recLoaded AreaList Pro Area Properties Constant Get Set Per Type Default Min Max 209 Properties by Theme Comments ALP_Area_CallbackMethPopup AreaL ist ProA text rea Entry Properties Popup entry callback method area row column dataType gt bool Handled For popup handling used when a popup is clicked but no popup array menu is defined The callback is called as function return False to invoke internal implementation otherwise use AL SetAreaXXXProperty 1 ALP_Area_EntryValue value to actually set the new value and return True See the example in the Callbacks section ALP Area UseDateControls ALP Area UseTimeControls bool bool AreaList Pro Area Event Properties Use native Date control for date entry Note can t be cleared to zero May be used with the area reference set to 0 newly created areas will use this mode Use native Time control for time entry May be used with the area reference set to 0 newly created areas will use this mode Constant Get Set Per Type Default Min Max Comments AreaList Pro Area Event Properties ALP Area AlpEvent v long int
263. o area Area Cells Columns Objects Rows and some miscellaneous Utility commands For each theme except Objects and Utility there is a group of four Getter functions and four Setter commands each targeting a different property type For example the Area theme has the following Getters and Setters AL_GetAreaLongProperty AL_SetAreaLongProperty AL_GetAreaPtrProperty AL_SetAreaPtrProperty AL_GetAreaRealProperty AL_SetAreaRealProperty AL_GetAreaTextProperty AL_SetAreaTextProperty SSS SS SSS xm J 2 Working with AreaList Pro Commands and Functions Command Descriptions and Syntax e Getting Started with AreaList Pro An AreaList Pro command syntax looks like this AL SetAreaLongProperty AreaRef L Property T Value L AreaRef is the AreaList Pro area that the command refers to and is always a longint Property is a constant representing the thing you want to set or get Some commands accept one property and some accept more Value is the value you want to use with the property In the example shown here the value will always be a longint there are other versions of the commands which require pointers real numbers or text Each parameter is followed by a colon and a letter indicating the type of data required for that parameter longint IR real iT text Y array Z pointer
264. o you must tell it Please refer to the Drag and Drop topic for more detailed information and some examples Dragging Q The Advanced Properties Dialog Preview In the Preview tab you can guess what see a preview of how your area will look For example this preview shows an area in which various options have been selected m the Price column is in blue italics and displays a sign m a popup menu has been associated with the Type column m the New column is displayed as a checkbox AreaList Pro Area 9 7mc4 Plugin Masters 2013 2014 Area Name eDemoALP Column Setup General Options Enterability Advanced Dragging This AreaList Pro object uses the configuration options you ve selected in this dialog The data displayed is obviously not realistic so for final appearances test this form in the Custom menus environment First Name Last Name City State Zip Code Country Title Birthdate Row 1 Column 1 Row 1 Column 2 Row 1 Column 3 Row 1 Column 4 Row 1 Column 5 Row 1 Column amp Row 1 Column 7 Row 1 Column 8 Row 3 Com tow 3 oum 2 Row 3 Column 3 Row 3 Column 4 Row 3 Colum 5 Row 2 Column 6 Row 3 Column 7 Row 3 Column 8 Row S Column Row S Column 2 Row S Coumm3 Row 5 Coumm4 Row 5 Column 5 Row 5 Column 6 Row 5 Column 7 Row S Column 8 Row 7 Colum o o aro a Row 7 Column 8 Row 9 Column 1 Row 9 Column 7 Row 9 Column 8 Row 11 Column 1 Row 11 Column 7 Row 11 Column 8 Row 13 Cot
265. odes ALP Area DrawFrame drfr drawFrame ALP Area EntryAllowArrows ecnr navigateUsingArrows ALP Area EntryAllowReturn ecar allowReturn ALP Area EntryAllowSeconds ects allowSeconds ALP Area EntryCell eceC ALP Area EntryClick eccl entryClick ALP Area EntryColumn ecec ALP Area EntryExit ecex ALP Area EntryFirstClickMode ecch firstClick ALP Area EntryGotoCell ecgC ALP Area EntryGotoColumn ecgc ALP Area EntryGotoGridCell ecgg ALP Area EntryGotoRow ecgr ALP Area EntryGridCell eceg ALP Area EntryHighlight echi ALP Area EntryHighlightE eche ALP Area EntryHighlightS echs ALP Area EntryInProgress ecea ALP Area EntryMapEnter ecme mapEnterKey ALP Area EntryModified ecem ALP Area EntryPrevCell ecpC ALP Area EntryPrevColumn ecpc ALP Area EntryPrevGridCell ecpg ALP Area EntryPrevRow ecpr ALP Area EntryRow ecer ALP Area EntrySelectedText eces ALP Area EntrySkip ecsk ALP Area EntryText ecet ALP Area EntryValue ecev ALP Area Event evtT ALP Area EventChar evtC ALP Area EventKey evtK ALP Area EventModifiers evtM Property Values Constants and XML Names Property Constant ALP Area EventPosH Property Value selector evtH Q s Appendix Codes Property XML Name ALP Area EventPosV evtV ALP Area FillCache data ALP Area Ftrindent frin footerIndent ALP_Area_FtrindentH frih ALP_Area_FtrindentV friv ALP Area Hdrindent hrin headerl
266. ogrammatically Once typed data entry is initiated standard editing functions can be performed on the selected cell including the Edit menu commands Cut Copy Paste Clear Select All and Undo This is true for cells containing pictures also except Select All However due to system limitations only Edit menu shortcuts will work while editing a cell but not the menu itself of which lines will be disabled except for picture columns Text data being edited will always appear left justified regardless of the column s display justification The I Beam pointer can be dragged across the data in the cell to select a portion or all of the data In addition the ALP Area CallbackMethMenu property provides the developer with a complete hook to working with the Edit menu Two user click modes User clicks on a cell can be interpreted in two different ways to trigger entry into a cell Click or double click with optional modifiers Data entry on a given cell could be initiated upon a single click in that cell a double click or a double click along with the option alt ctrl command shift or control key This setting uses the ALP Area EntryClick property If you do not wish to initiate data entry using this method set this property to 0 AL_SetAreaLongProperty area ALP Area EntryClick 0 Setting the area reference to 0 will set the default value for all newly created areas Entering Data e Programming The AreaList
267. olumn 169 197 AL_AddColumn AL Allow drop event 143 144 AL ColorPicker 0 0 0 0 00 ccc eee eee 191 AL Column entry popup only 164 AL Double click event o oo ooo o 58 AL Empty Area Double click 58 AL_GetAreaLongProperty 170 AL_GetAreaPtrProperty 171 AL_GetAreaRealProperty 171 Index AL GetAreaTextProperty 172 AL GetCellLongProperty 184 AL GetCellMod lssllese esee 285 AL_GetCellPtrProperty 184 AL_GetCellRealProperty 184 AL_GetCellTextProperty 185 AL GetColumnLongProperty 175 AL_GetColumnPtrProperty 175 AL_GetColumnRealProperty 176 AL_GetColumnTextProperty 176 AL GetLastEvent surcar 35 AL_GetObjectS o oooo ocoooooo 79 188 AL_GetObjects2 0000000000 o 189 AL_GetRowLongProperty 179 AL_GetRowPtrProperty 004 179 AL GetRowRealProperty 00 180 AL_GetRowTextProperty 0 180 AL Icon Flags Horizontal Center 159 160 161 AL Icon Flags Horizontal Left 159 AL Icon Flags Horizontal Mask 159 AL Icon Flags Horizontal Right 159 AL Icon Flags Offset Mask 159 AL Icon Flags
268. olumns 0 2 states checkbox values 0 1 1 3 states checkbox values 0 1 2 ALP_Column_DisplayControl must be set to 0 1 20r4 inorderto use checkboxes in integer long integer columns AreaList Pro Column Properties Properties by Theme Constant Get Set Per Type Default Min Max Comments Column General Properties ALP_Column_Filter Y text Entry filter ALP_Column_FindCell Y long int Find the first grid cell number showing data from the column ALP_Column_FooterText v text Footer text ALP Column Format v text Format For picture columns 0 the picture will be truncated if necessary and justified to the upper left default 1 the picture will be truncated if necessary and centered in the cell 2 the picture will be scaled to fit the cell 3 the picture will be scaled to fit the cell and remain proportional to its original size 4 the picture will be scaled to fit the cell remain proportional to its original size and centered in the cell ALP Column FromCell long int Get the column number from the grid cell number ALP Column HeaderText v text Header text ALP Column ID Y long int Column number numbered from 1 ALP Column Indexed bool Field is indexed ALP Column Kind v text Object kind Column To access default column font properties use AreaRef and Column set to zero ALP Column Length v long int Size of the alpha fiel
269. ommended that you use the application in Unicode mode For more information see the XML section Column Automatic Resize The ALP Area AutoResizeColumn and ALP Area AutoSnapLastColumn properties can be used to have AreaList Pro automatically resize any given column in an AreaList Pro area defined as horizontally growable in the 4D form editor or simply because you want a specified column to resize and make the last one snap to the right edge of the area without having to calculate its width These properties are also useful when converting AreaList Pro areas from previous versions will slightly modify the area size including width This is due to the way the frames are handled in AreaList Pro v9 m previous versions drew the area frame outside of the plugin area which will never work in composite windows for example m AreaList Pro v9 always draws inside the plugin area so the usable area is smaller 2 points for plain box 4 points for 3D frame m AreaList Pro v9 uses native scrollbar size 15 on Mac previous versions used 16 points if the user sets the scrollbar size to 20 on Windows it will be used m AreaList Pro v9 does not draw separator line between list and vertical scrollbar For example on MacOS current scrollbar size is 15 m for no frame the list is expanded by 2 points relative to Areal ist Pro 8 5 m for single line frame the list size is the same m for 3D frame sunken the list size is shrunken by 2 poin
270. ongProperty Self gt ALP_Area_ClearCache 2 update arrays End if End if End if End if End case 5 To test it load the form and then drop the text file onto the area The On Drop event will execute and the five new products will be added to the area Drag and Drop Q Advanced Topics m Utility The explode function splits a tab delimited line of text into an array llexplode explodes a text string into parts using designated separator character and returns them in an array Il parameters 1 the text string 2 the separation character ASCII value 3 pointer to the array to put the values in Il supports only TEXT arrays array must be declared and zero d first example explode tText 9 gt atVals C TEXT S text C STRING 2 char text 1 char Char 2 Elements 0 While Length text gt 0 pos Position char text If Spos gt 0 value Substring text 1 po0s 1 text Substring text pos 1 Else value text text End if APPEND TO ARRAY 3 gt value End while Drag and drop from 4D You can also use the following code to the On Drop event when accepting a drop from a 4D object DRAG AND DROP PROPERTIES srcObject srcElement srcProcess Note srcObject is Nil if the source 4D object has Automatic Drag enabled srcObject is also Nil if it comes from a different application or 4D instance Then you can use the following code to check what h
271. ongint Set properties for area objects using two arrays Example A good example of the use of this command is for displaying data in a hierarchical list err AL_SetObjects2 area ALP Object Hierarchy aiLevel aiExpanded For a detailed explanation of this see the Hierarchical Lists topic E Objects Q Command Reference Utility AL_DropArea 6AL DropArea is the command used to identify the plug in area to which an AreaList Pro row or column can be dragged but which does not display anything This command will appear in the 4D Object Types popup on a layout Property List It is only used in the object definition for an AL_DropArea object and should never be used as a command in a 4D method AreaListPro AreaListPro is the command used to identify the AreaList Pro plug in area when you create a plug in area object on a layout This command is only used in the object definition for an AreaList Pro object and should never be used as a command in a 4D method AL_ColorPicker ARGBColor L gt result L Parameter Type Description ARGBColor longint The number of the color that was selected result longint 1 if a color was selected 0 if not Invokes the color picker to select a color using the system color palette Note AreaList Pro uses the alpha channel A for transparency See the Working with Colors section The function returns a longint in ARGBColor which you can then use
272. onstant Property Value selector Q s Appendix Codes Property XML Name ALP Area RowlndentV roiv ALP Area Rows ROWS ALP Area RowslnGrid rown rowsInGrid ALP Area ScrollColumns seco scrollColumns ALP_Area_ScrollLeft scri ALP Area ScrollTop sert ALP_Area_SelClick selC selectClick ALP_Area_SelCol selc ALP_Area_Select SELC ALP_Area_Selected sele ALP_Area_Self self ALP_Area_SelGotoRec seLR ALP_Area_SelHighlightMode seld highlightMode ALP_Area_SelMultiple selm multipleRows ALP_Area_SelNoAutoSelect selA noAutoSelect ALP_Area_SelNoCtrlSelect selX noCtriSelect ALP_Area_SelNoDeselect selD noDeselect ALP Area SelNoHighlight selh noHighlight ALP Area SelNone seln allowNoSelection ALP Area SelPreserve SelP preserve ALP Area SelRow selr ALP Area SelSetName seCS ALP Area SelType selt type ALP Area SendEvent seev ALP_Area_ShowColDividers cold showColDivider ALP_Area_ShowFocus focu showFocus ALP_Area_ShowFooters fshw showF ooters ALP_Area_ShowHScroll scrh showHScroll ALP Area ShowRowbDividers rowd showRowDivider ALP Area ShowSortEditor soED ALP Area ShowSortlndicator hdrs showSortindicator ALP Area ShowVScroll scrv showVScroll ALP Area ShowWidths dwdt displayPointWidth ALP Area SmallScrollbar scsm smallScrollbar ALP Area S
273. ont by name lt f font name gt needs to be quoted if the name contains more than one word Set color any format can be used e g c OXFFFF0000 c color name c 1 0 0 0 c P123 c dark orange 4D v12 and above internal format for styled text is stored as lt SPAN STYLE style attributes where the style attributes used by AreaList Pro are m font family m font size m font weight bold normal m font style italic normal m text decoration underline line through none m color RRGGBB It is also possible to set the format as attributed and specify the style attributes using the ALP_Column_Attributed and ALP_Column_Format properties Example for an integer column AL_SetColumnLongProperty area column ALP Column Attributed 1 the column is attributed AL SetColumnTextProperty area column ALP Column Format c blue gt lt c gt lt i gt lt c red gt HH lt c gt lt i gt lt s 1 gt lt c green gt lt b gt ZERO lt b gt lt c gt lt s gt With the above settings m Positive numbers will be displayed in blue roman characters with a plus sign m Negative numbers will be displayed in red italic characters with a minus sign m Zeros will be displayed in green bold font size increased by 25 with the text ZERO AreaList Pro Text Style Tags Q D Appendix Codes Here is the result 16 238 5 526 31 880 21 940 4 137 100 ZERO 27 512 9 330 21
274. opBorderWidth cotw topBorder_width ALP_Cell_Value valu ALP_Cell_VertAlign valg valign ALP_Cell_Wrap wrap wrap ALP_Cell_XML xml ALP_Column_Attributed attr attributed ALP_Column_BackColor belr backColor ALP_Column_BaseLineShift basl baseLineShift ALP_Column_CalcHeight chig autoHeight ALP_Column_Calculated calc calculated ALP_Column_Callback call callback ALP_Column_DisplayControl disp displayControl ALP_Column_Enterable ente enterable ALP_Column_EntryControl entc entryControl ALP_Column_Filter entf filter ALP_Column_FindCell coce ALP_Column_FontName fnam font ALP_Column_FooterText ftxt footerText ALP_Column_Format fmt format ALP_Column_FromCell ceco ALP_Column_FtrBackColor fbcl backColor ALP Column FtrBaseLineShift fbls baseLineShift ALP_Column_FtrFontName ffnm font ALP_Column_FtrHorAlign fhal halign ALP_Column_FtrHorizontalScale fhos hScale ALP_Column_FtrLineSpacing flis lineSpacing ALP_Column_FtrRotation frot rotation ALP_Column_FtrSize fsiz size ALP_Column_FtrStyleB fstB bold ALP Column FtrStyleF fstF qdStyle ALP Column FtrStylel fstl italic ALP Column FtrStyleS fstS strike through Property Values Constants and XML Names Property Constant Property Value selector Q o Appendix Codes Property XML Name
275. operties AL SetColumnTextProperty AL Area 0 ALP Column HdrFontName Tahoma AL SetColumnLongProperty AL Area 0 ALP Column HdrSize 11 Font size AL SetColumnLongProperty AL Area 0 ALP Column HdrStyleB 1 Bold Set column properties AL SetColumnTextProperty AL Area 0 ALP Column FontName Tahoma AL SetColumnLongProperty AL Area 0 ALP Column Size 11 AL SetColumnLongProperty AL Area 0 ALP Column StyleB 0 Else MacOS Set header properties AL SetColumnTextProperty AL Area 0 ALP Column HdrFontName Lucida Grande AL SetColumnLongProperty AL Area 0 ALP Column HdrSize 11 AL SetColumnLongProperty AL Area 0 ALP Column HdrStyleB 1 Set column properties AL SetColumnTextProperty AL Area 0 ALP Column FontName Lucida Grande AL SetColumnLongProperty AL Area 0 ALP Column Size 11 AL SetColumnLongProperty AL_Area 0 ALP_Column_StyleB 0 End if Set the area properties AL SetAreaLongProperty 4L Area ALP Area NumHdrLines 1 Line s in header AL SetAreaLongProperty AL Area ALP Area NumRowLines 1 Line s per row in list AL SetAreaRealProperty AL Area ALP Area RowlndentV 3 Height padding 3 points When you click on a row in the area its contents are displayed in the text area below The On Plug in Area 4D event monitors clicks in the area or up down arrow keys and we can then call AL GetAreaLongProperty with either the ALP Area SelRow or ALP_AreaClickedRow
276. operty area 5 ALP_Column_EntryControl 0 Example 2 To enter the Boolean value in Column 5 via radio buttons New e Yes No First make sure that the column is wide enough to display the radio button labels AL SetColumnRealProperty area 5 ALP_Column_Width 100 Then tell AreaList Pro to use radio buttons AL SetColumnLongProperty area 5 ALP_Column_EntryControl 2 And finally specify the labels for the radio buttons AL SetColumnTextProperty area 5 ALP_Column_Format Yes No Data Entry Controls 135 Q Advanced Topics Display Booleans can be displayed as check boxes in three sizes or as custom pictures or text with the ALP_Column_DisplayControl property of AL_SetColumnLongProperty Constant Get Set Per Type Default Min Max Comments ALP_Column_DisplayControl v v wv longint 1 1 4 Display control type 1 default formatted value 0 checkbox without title small checkbox without title 2 mini checkbox without title 0 1 and 2 are identical on Windows 3 mapped through ALP_Column_PopupArray ALP_Column_PopupMap or ALP_Column_PopupMenu these 3 properties have to be defined 4 use pictures see Displaying custom checkboxes using pictures from the 4D Picture Library Example 1 To display a Boolean as a normal sized checkbox in column 5 AL_SetColumnLongProperty area 5 ALP_Column_DisplayControl 0 Example 2 To displ
277. or cofc fillColor ALP Cell Flags flgs features ALP Cell FontName fnam font ALP Cell FormattedValue valf ALP Cell HorAlign halg halign ALP Cell HorizontalScale hors hScale ALP Cell Invisible visi invisible ALP Cell Kind kind ALP Cell LeftBorderColor colc leftBorder color ALP Cell LeftBorderOffset colo leftBorder offset ALP Cell LeftBorderWidth colw leftBorder width ALP Cell LeftlconFlags colF lefticonFlags ALP Cell LeftlconID coll lefticonID ALP Cell LineSpacing lisp lineSpacing ALP Cell Reveal reve ALP Cell RightBorderColor corc rightBorder_color ALP_Cell_RightBorderOffset coro rightBorder_offset ALP_Cell_RightBorderWidth corw rightBorder_width ALP Cell RightlconFlags corF rightlconFlags Property Values Constants and XML Names Property Constant Property Value selector Q s Appendix Codes Property XML Name ALP Cell RightlconID corl rightlconID ALP Cell Rotation rotd rotation ALP Cell ScrollTo scto ALP_Cell_Size size size ALP Cell StyleB styB bold ALP Cell StyleF styF qdStyle ALP Cell Stylel styl italic ALP Cell StyleS styS strike through ALP Cell StyleU StyU underline ALP Cell TextColor telr textColor ALP Cell TopBorderColor cotc topBorder_color ALP_Cell_TopBorderOffset coto topBorder_offset ALP_Cell_T
278. or if you want to use the plugin license system to help protect your own software copy you can manage the final key registration yourself using one of the following methods The Demo mode dialog Single user and server licenses require that you first send us the relevant information serial or machine ID see Definitions unless you are using the Online registration system This is performed from the demonstration mode dialog The Demo mode dialog is displayed upon the first call to AreaList Pro through a command To trigger this display and enable your users to register without actually calling a command or setting up an area pass an empty string to AL Register and the dialog will show C LONGINT result result AL Register display the dialog Note calling AL Register with any key valid or invalid will not display the dialog Registering your AreaList Pro License 16 e Installation E Retrieving the serial machine information The Demo mode dialog includes all relevant information serial or machine ID see Definitions to obtain your license as well as a Copy button to put this information into your clipboard or a text file an eMail button to email the information to e Node s registration system and a Register button to enter your license key once received E eM Welcome to the demonstration version of AreaList Pro The plugin will be fully functional for 20 minutes www e node net ALP Yo
279. order to facilitate dragging and dropping you need to tell AreaList Pro which area s you want to allow the dragging between and specify various options such as which objects can be dragged rows columns and or cells which areas those objects can be dragged to and from and whether certain keys such as the Alt Option key will have any particular effect Note the following paragraphs about source and destination codes etc hold true only for drag and drop between two AreaList Pro areas Setting the Object Properties The first thing you must do is select the Drag and Drop properties for the AreaList Pro areas 1 Select the source object the AreaList Pro area that you want to enable dragging from 2 In the Action topic of the Property List dialog select the Dragable checkbox y amp Action Method Draggable Automatic Drag Droppable Automatic Drop ME 3 Select the destination object the AreaList Pro area that want to drop to 4 In the Action topic of the Property List dialog select the Dropable checkbox Note that an area can be both dragable and dropable Drag and Drop Q Advanced Topics 141 Access Codes The source of the drag and the target of the drop are designated as drag and drop partners You need to tell AreaList Pro what these partnerships are and to do this you create access codes An access code is simply a text code that you create Let s say you have a layout that contains two AreaList Pro are
280. ort Note can be time consuming for large selections especially on client server ALP Area SelRow long int Selected row AreaList Pro Area Properties 214 Properties by Theme Constant Get Set Per Type Default Min Max Comments AreaList Pro Area Selection Properties ALP_Area_SelType v long int 0 0 2 Selection mode 0 rows 1 7 single cell 2 multiple cells AreaList Pro Area Sort Properties Constant Get Set Per Type Default Min Max Comments AreaList Pro Area Sort Properties ALP Area AllowSortEditor v v v bool false 0 Allow sort editor by user cmd click on header ALP Area DontSortArrays v v v bool false 0 Do not sort arrays Note when set to true arrays are not reordered by the sort Internal array of sort order is maintained See AL GetObjects with property ALP Object Sort See also the Internal Sorting topic ALP Area ShowSortEditor Viv Show sort editor The AL_GetAreaLongProperty getter command returns 1 if the user clicked Sort 0 otherwise ALP_Area_Sort v long int Number of elements in sort list the number of columns that were sorted ALP Area SortCancel ViVviv text Sort editor Cancel button label If empty defaults to Cancel or its translation from the ALP xIf file located in the localized subfolder of the Resources folder in the AreaList Pro bundle ALP Area SortColumn v Y lo
281. ort SORT ALP Area SortCancel soca cancel ALP_Area_SortColumn SOCO sortColumn ALP Area SortDuring sodu sortDuring ALP_Area_SortList soli sortList ALP_Area_SortListNS soLl ALP_Area_SortOK sook ok ALP_Area_SortOnLoad sold sortOnLoad ALP_Area_SortPrompt sopr prompt ALP Area SortTitle soti title Property Values Constants and XML Names Property Constant ALP Area SRPTableReport Property Value selector SRPt Q p Appendix Codes Property XML Name ALP Area TablelD tbid mainTable ALP Area ToolTip tips ALP Area TopRow artp ALP Area TraceOnError TRAC ALP Area UpdateData daup ALP Area UseDateControls endc useDateControls ALP_Area_UseEllipsis elip useEllipsis ALP_Area_UserBLOB usrb userBLOB ALP_Area_UserSort sous userSort ALP Area UseTimeControls entc useTimeControls ALP Area Version vers ALP Area Visible visi ALP Area WindowsClip CLIP ALP Area WindowsText DIEN ALP Area XML xml ALP Area XMLAP Axml ALP_Cell_BackColor belr backColor ALP_Cell_BaseLineShift basl baseLineShift ALP Cell BottomBorderColor cobc bottomBorder color ALP Cell BottomBorderOffset cobo bottomBorder offset ALP Cell _BottomBorderWidth cobw bottomBorder width ALP Cell Clear clr ALP Cell ClearStyle sclr ALP_Cell_Enterable ente enterable ALP Cell FillCol
282. owing commands m AL SetColumnLongProperty m AL SetColumnPtrProperty m AL SetColumnRealProperty m AL SetColumnTextProperty The pointer options e g AL SetColumnPtrProperty allow you to use just one version of the command for getting and setting all the relevant properties you pass a pointer to the variable instead of the actual value Getters some Setters the Pointer variants and some other commands use the following syntax result AL_Command AreaRef value1 value2 property value3 Most setters use the following syntax AL Command AreaRef value1 value2 property value3 Command Part What it is Comments result Result code The code will contain O if the command executed successfully or an error code if it didn t AL Command Command name Tells AreaList Pro what you want to do AreaRef Name of the AreaList Pro area The name you gave the AreaList Pro area in the Object Properties dialog value1 A value to pass to the command Used with the Row Column and Cell commands to pass the column or row number value2 A value to pass to the command Used with the Cell commands to pass the row number property Property A constant representing the specific property you want to get or set value3 Value Tells AreaList Pro exactly how you want to affect the property Dc s Working with AreaList Pro Commands and Functions e Getting Started with AreaList Pro
283. parent Fill AreaList Pro v9 provides full transparency alpha channel support Setting the Fill color to totally transparent beginning with 00 instead of FF 100 opaque would reveal our Background color behind the whole cell Cell colors Background FF66CCFF Fill 00FFFFOO Coloring Cell Sections a Working with Colors E Final Result Let s revert to our opaque yellow Fill and add green right and bottom Borders eoo Cell Settings Area settings all cells Firstname Lastname Salary City Vertical Padding 2 Horizontal Padding 2 Column color divider Magenta Row color divider Blue B Cell colors Background FF66CCFF Fill FFFFFF00 Cell offset Top pos Bottom 5 Left 5 Cell border thickness Top pos Bottom Left Right 5 umi mi ww Cell border color Top FFFFO000 Bottom FFOO8000 Left FFFFOOOO Right FF008000 9 Coloring Cell Sections Q Working with Colors 123 Custom row highlight You can manage the highlight of the selected rows from AreaList Pro yourself beyond what the system offers For example modify the foreground style font and background colors of a row when you click on an row in AreaList Pro disable row hightlighting on form object load event AL SetAreaLongProperty area ALP Area SelNoHighlight 1 On click event loop on each selected row AL GetObjects area ALP Object Selection selectedRows Backup s
284. particular column select that column in the list Popup array Zip Code and set it Country You will need to specify the field or array y Title header and format for each column Boolean data display Checkbox without title Birthdate Column Width Autosize Hidden Ss Use data size for row height List Header Footer Font Lucida Grande Size 13 Justification Default ssl Style Color M Plain _ Bold italic Underline Rotation o Text Background Save XML to Clipboard Save 4D code to Clipboard Load from Clipboard Clear amp Save Cancel OK The Advanced Properties Dialog Q The Advanced Properties Dialog Column Setup Tab Default Column You can use the default column to set up the attributes for new columns you include by clicking the Add button New columns that are added are assigned the settings in the default column This behaviour is true at any time not just the first time that the Advanced Properties dialog is configured If you change the settings for the default column any new columns you add will get the new default settings but existing columns will not be changed To apply the changes to existing columns click the Apply to all Columns button Apply to all Columns Note that most of the objects on this page have their labels shown in blue when the defaut column is selected If you have made a change to your Default column and you want to apply
285. perty area 6 ALP_Column_Enterable 2 Background and foreground colors can be set for all calendar items using the ALP Area CalendarColors property Note on Windows when the window is zoomed the date amp time popups will not resize the window to its normal state The popup windows will be modal and a click outside them will be ignored use ESC to cancel the popup An alternate Windows look popup date control is available on both platforms when the ALP Area CalendarLook property is set to true 1 4 June 2015 Sun Mon Tue Wed Thu Fri 31 1 2 3 4 5 7 8 9 10 11 12 14 15 16 17 18 19 21 22 23 26 28 29 30 3 10 In both cases the entry is ended by a double click on a date or by the Esc key or a click on another object cancels the entry or by any of the keys used to trigger leaving a cell The Del key will set the date to the Null value 100 00 00 and dismiss the popup Data Entry Controls 136 Q Advanced Topics 137 Time As with dates there are two types of control you can use with time data inline and popup Inline Time Control An inline time control looks like this when the data is being edited Select the value you want to change hours or minutes and click the up or down arrows to choose the required value You can also enter the data manually you won t be allowed to enter invalid values To specify a time control use the ALP Area UseTimeControls property for example
286. pions com Silent connection alert if successful alert if failed no email notification C LONGINT result result AL Register Master key 0 2 3 AL Save AreaRef L XML T gt result L Parameter Type Description gt AreaRef longint Reference of AreaList Pro object on layout gt XML text A variable or field to save an area s XML settings into result longint 0 if the XML was saved OK 2 if not Save an area s settings as XML using UTF 8 in a text variable or field Please see the section on XML for more details about saving and loading XML Example Save an AreaList Pro area s settings into a field in the database C_TEXT Settings err AL_Save area Settings SettingsJALP_template Settings Utility Q Command Reference AL Setlcon AreaRef L IconID L IconValue P gt result L Parameter Type Description gt AreaRef longint Reference of AreaList Pro object on layout or O for global workstation settings conID longint ID number assigned by the developer of a picture to add to the AreaList Pro picture library The number must be between 1 and 16777215 gt IconValue picture A picture variable that contains the specified picture If this is empty the picture is removed from the AreaList Pro picture library The picture can be a variable or a 4D field result longint Use this command to add a picture to AreaList Pro s picture library which is ba
287. properties such as ALP Area XML ALP Drop XML ALP Column XML ALP Row XML ALP Row StyleXML or ALP Cell XML Note that the main difference between AL Load and setting the XML directly is in columns setting XML does not clear add columns XML Q Advanced Topics 134 Data Entry Controls For certain types of data you may want to provide special controls for display and or data entry for example for Boolean values you might want to display check boxes for date data entry a popup calendar could be useful for the user and popup menus can be very useful for entering data from a defined set of values AreaList Pro provides the following controls Booleans Data Entry You can choose to display Booleans as check boxes with or without a title or as radio buttons with the ALP_Column_EntryControl property Constant Get Set Per Type Default Min Max Comments ALP_Column_EntryControl v v o long int 0 0 2 Entry control depending upon column type boolean or integer long integer For boolean columns 0 checkbox without title 1 checkbox with title 2 radio buttons For integer long integer columns 0 2 states checkbox values 0 1 1 3 states checkbox values 0 1 2 ALP_Column_DisplayControl must be set to 0 1 20r4 inorder to use checkboxes in integer long integer columns Example 1 To enter the Boolean value in Column 5 via check boxes AL_SetColumnLongPr
288. property to get the selected row number Case of Form event On Plug in Area respond to user action If AL GetAreaLongProperty eLis ALP Area AlpEvent AL Single click event Il single click on a row or up down arrow keys row AL_GetAreaLongProperty eLis ALP Area SelRow get the selected row vitem aCityState row get the value in that element of the array End if Or we could call but it would only react to click not up down arrow selection row AL_GetAreaL ongProperty eList ALP Area ClickedRow get the clicked row Example 1 Loading an array from a 4D list Q Tutorial Example 2 Add header text In Example 1 our AreaList Pro area looked OK but it would look better if there was some text in the header row for example City State Albuquerque NM Atlanta GA Baton Rouge LA Boston MA Canton OH Chicago IL Header row text is added using AL_SetColumnTextProperty with the ALP_Column_HeaderText parameter in the area s Object Method AL SetColumnTextProperty eList 1 ALP Column HeaderText City State E ln 1L LL1LLLi 2 Example 2 Add header text Q Tutorial Example 3 Creating arrays from a 4D table In this example two arrays are loaded from the database added to the AreaList Pro area and displayed with headers eoo Example 3 Example 3 This is Example 3 from the Reference Manual loading an array from a 4
289. psis 2222422599 20RRRRERHG ghd aoe 83 84 203 Empty area below lastrow 222 Empty string for null dates 90 Empty titles zu arp ER Qiu 266 Enterable 0 0 00 cece eee 47 74 Enterable column sese 280 Enter Key a cs dug e d Rubus 84 208 Entry popup callback 0 72 Event callback 0 0000 rot ee eee eee ee 51 Event Callback 107 274 Eventicod S gt oos ni e Osean 253 Events uu ose d E x aoe dos 35 75 253 282 Exit callback susce t RR ee ee 50 Expansion status llle 154 F Field mode ux ra oa eene 99 Fields ceti ERU bia een ER SRM RUE 69 Final keys scere eee ee gii 20 Fixed row height n s xg 269 Flag Simen hee ail ase 159 FONI oe csodat See ee ene nba ede eS CEPS 83 Fontissues seco ee sr RETE 277 gon cm PE 38 FON SIZE cR 83 Fontstyle er eae ie AER 83 Index FOGIET TOW ou Loni oda Mad heehee 222 Format oscri diene deugt bee E 277 Formatting 2 2005 42 89 277 FUNCIONS ics ice oo Sener ieee on ROI NEE 30 G Gid serete ht ame ee E S 272 273 A iE oS eA en ee ee 62 63 271 H Hard deselect br rus ii 101 Header footer height 04 279 Header Foreground Color 278 Header fOW wince See See RE RR E 222 Headers cia decr xa ea Aa C A 30 278 Header size 6 2 0 ee ee 32 278 Header text cc ee etse RE CREER 43 Hexadecimal 1 0 0 0 00 eee eee
290. r of the row for which to set the property Property text The property to set gt Value longint Value to pass to the function long integer gt Count longint Number of rows to set starting at Row optional Set a specific longint Property for a Row or several rows If the Count parameter is omitted only row number Row will be set Otherwise Count row s will be set starting at Row If you want to set all the rows in one go enter 2 for the Row number Count is ignored Example To set the text in rows 2 to 10 to bold underline AL_SetRowLongProperty area 2 ALP_Row_StyleF 5 9 AL_SetRowPtrProperty AreaRef L Row L Property T Pointer Z Count L gt result L Parameter Type Description gt AreaRef longint Reference of AreaList Pro object on layout gt Row longint Number of the row for which to set the property Property text The property to set gt Pointer pointer Pointer to a variable that holds a value to pass to the function gt Count longint Number of rows to set starting at Row optional result longint Set a specific Property for a Row or several rows using a Pointer to the value you want to set If the Count parameter is omitted only row number Row will be set Otherwise Count row s will be set starting at Row If you want to set all the rows in one go enter 2 for the Row number Count is ignored Example To set the font size for row 2 to 20 fontSize 2
291. r supported by 4D for plugin calls so this option is not available What s New Caching of Formatted Values AreaList Pro version 9 caches formatted displayed values When AreaList Pro redraws the screen it does not need to access 4D Column Hiding In previous versions you could only specify which columns to hide at the end of the list of columns Now you can use the ALP Column Visible property of AL SetColumnLongProperty to hide individual columns by making them invisible and use AL GetColumnLongProperty to find out which columns are invisible Individual columns can also be made invisible by selecting the Hidden option on the first page of the Advanced Properties dialog DisplayList The DisplayList plugin is now included with AreaList Pro for backwards compatibility You can find more information about DisplayList in the Advanced Topics section Dynamic Row Height Row height can now be set to dynamically auto size depending upon the contents and styling of the data in the row Grid In previous versions a row displayed the arrays columns in the defined order and arrays at the end could be hidden In AreaList Pro version 9 the columns can also be displayed in a table format in which you control how they are arranged within the AreaList Pro area For Example Type Name Description Price Chocolate Better for you dark chocolate has been shown Dark Chocolate to have healthy qualities How many more 2 5 reasons do
292. r the Column number Count is ignored Example To set the width of columns 2 3 and 4 to 30 points AL SetColumnRealProperty area 2 ALP Column Width 30 3 AL SetColumnTextProperty AreaRef L Column L Property T Value T Count L Parameter Type Description gt AreaRef longint Reference of AreaList Pro object on layout gt Column longint The number of the column for which to set the property Property text The property to set gt Value pointer Value to pass to the function text gt Count longint Number of columns to set starting at Column optional Set a specific text Property for a Column or several columns The properties that you can set with this command are the ones of type text listed in the AreaList Pro Column Properties theme If the Count parameter is omitted only column number Column will be set Otherwise Count column s will be set starting at Column If you want to set all the columns in one go enter 2 for the Column number Count is ignored Example To set the header text for column 1 to Product Name AL SetColumnTextProperty area 1 ALP Column HeaderText Product Name sss Columns Q Command Reference Rows The commands in this theme affect the rows in an AreaList Pro area The properties that can be used with these commands can be found in the AreaList Pro Row Properties theme If the Row Number is 2 properties that can be set will be appli
293. r the user ALP Column XML viv text Full description of the column in XML AreaList Pro Column Properties Column Header Style Properties 219 Properties by Theme Constant Get Set Per Type Default Min Max Comments Column Header Style Properties ALP_Column_HdrBackColor v v V color 00FFFFFF Header background color unused when ALP Area HeaderMode 0 ALP Column HdrBaseLineShift Y Y Y real 0 100 256 Baseline shift ALP Column HdrFontName v v wv tex Verdana on Header font name Windows Lucida Grande on MacOS ALP_Column_HdrHorAlign v v wv long 0 0 5 Header horizontal alignment int 0 7 default 1 7 left 2 7 center 3 right 4 justify 5 full justify ALP Column HdrHorizontalScale Y Y Y real 1 0 1 100 Header horizontal scale ALP Column HdrLineSpacing v v v real 1 0 1 10 Header line spacing ALP Column HdrhRotation v v V real 0 360 360 Rotation of text in header ALP Column HdrSize v v v real 12 on 4 128 Header font size Windows 13 on MacOS ALP Column HdrStyleB v v V bool false 0 Header font style bold ALP Column HdrStyleF v wv V long 0 0 7 Header font style using 4D style constants int e g Bold Italic etc ALP Column HdrStylel v v Y bool false 0 Header font style italic ALP Column HdrStyleU v v V bool false 0 Header font style underlined ALP Column HdrTextColor v v V color
294. rSize AL SetHdrStyle AL SetColumnTextProperty ALP Column HdrFontName AL SetColumnRealProperty ALP Column HdrSize AL SetColumnLongProperty ALP Column HdrStyleF AL SetHeaderlcon Unsupported Mapping Old Commands to the AreaList Pro v9 API Old commands AL SetHeaderOptions ad Mapping Old Commands to the AreaList Pro v9 API New Commands and Properties Unsupported AL SetHeaders AL SetColumnTextProperty ALP Column HeaderText AL SetHeight AL SetAreaLongProperty ALP Area NumH rLines ALP Area NumRowLines ALP Area NumFtrLines instead of Pad use Indent ALP Area Hdrlndent ALP Area Rowlndent ALP Area Ftrindent AL Setlinterface AL SetAreaLongProperty ALP Area UseEllipsis ALP Area IgnoreMenuMeta ALP Area ClickDelay ALP Area UseDateControls ALP Area UseTimeControls Appearance is always native headers scrollbars highlight color checkboxes and entry widget except when in compatibility mode and Win7 headers are from Vista only headers can be drawn the legacy v8 x way using the ALP Area HeaderMode property allowPartialRow is always used useOldDatePopup is ignored new form is used AL SetLine AL SetAreaLongProperty ALP Area SelRow AL SetMainCalls AL SetMinRowHeight AL SetAreaTextProperty ALP Area CallbackMethSelect ALP Area CallbackMethDeselect AL SetAreaRealProperty ALP Area MinRowHeight
295. rable gt enterable Columns Q Command Reference AL GetColumnRealProperty AreaRef L Column L Property T gt result R Parameter Type Description gt AreaRef longint Reference of AreaList Pro object on layout gt Column longint The column number for which to get the property gt Property text The property to get result real Value of the got property Get details of a Column s real Property The properties that you can get with this command are the ones of type real listed in the AreaList Pro Column Properties theme Example To find the current width of column number 2 C_REAL colWidth colWidth AL_GetColumnRealProperty area 2 ALP_Column_Width AL_GetColumnTextProperty AreaRef L Column L Property T gt result T Parameter Type Description gt AreaRef longint Reference of AreaList Pro object on layout gt Column longint The column number for which to get the property gt Property text The property to get result text Value of the got property Get details of a Column s text Property The properties that you can get with this command are the ones of type text listed in the AreaList Pro Column Properties theme Example To get column 3 s header text C TEXT headerText headerText AL_GetColumnTextProperty area 3 ALP Column HeaderText Columns Q Command Reference AL SetColumnLongProperty AreaRef
296. raceOnError vv int 1 0 3 Invoke the 4D debugger in interpreted and or an alert in compiled if a command causes an error and it is a command that does not return an error code bit 0 trace in interpreted values 1 amp 3 bit 1 alert in compiled values 2 amp 3 ALP Area Version v text Version of the AreaList Pro plugin Note that getting this property will not trigger the registration dialog if AreaList Pro is not registered allows to check version before registering AreaList Pro Area Properties AreaList Pro Area Selection Properties Constant Get Set Per Type Default Min Max 213 Properties by Theme Comments AreaList ProA rea Selec tion P roperties ALP Area SelClick long int What to report when the user clicks 0 nothing 1 single and double click reports single click 2 7 report single and double clicks 3 report either single click or double click not both legacy v8 x mode ALP Area SelCol long int Selected column ALP Area SelCreateSet text empty Name of the set to create after selection change by user The area must be in fields mode and row selection mode ALP Area Select long int Number of selected rows cells for multiple row cell selection mode only ALP Area SelGotoRec bool false 0 Load record after selection change using GOTO SELECTED RECORD The area must be in fields mode and row
297. rag amp v v bool false 0 Drop Properties Accept column drag when destination this area does not have ALP Area DragDstColCodes set OBSOLETE use Drag codes instead ALP Area DragAcceptLine bool false 0 Accept line drag when destination this area does not have ALP Area DragDstRowCodes set OBSOLETE use Drag codes instead ALP Area DragColumn long int Allow a column drag when source this area does not have ALP Area DragSrcColCodes set 0 7 no 1 inside area 2 outside of area 3 both inside and outside of area OBSOLETE use Drag codes instead ALP_Area_DragDataType long int Dragged data 0 unknown non AreaList Pro 1 row s 2 column 3 cell s ALP_Area_DragDstArea long int Destination area ALP_Area_DragDstCell sS long int Destination area grid cell ALP Area DragDstCellCodes text Drag destination cell codes The format is a list of codes separated by ALP Area DragDstCol long int Destination area column ALP Area DragDstColCodes text Drag destination column codes The format is a list of codes separated by ALP Area DragDstProcessID S long int 4D s process ID of destination area ALP Area DragDstRow sS long int Destination area row ALP Area DragDstRowCodes text Drag destination row codes The format is a list of codes separated by ALP Area DragL
298. ran ue beris 147 Line spacing xs eR a EA Rn ee 82 lis okanes ace Ges vad end rS RP Gate Be 37 M Machine ID s ii eevee ieee ek ERA ee 18 Mapping erue eee ke 163 Master key ooooccccooo eee 19 Merged Lud parao a gee 17 Merged liCens S none cum cme ace dean ee eae Be 13 Modifiers ecce pe ne RR eee m 67 Multi row selection llle 44 Multi Style xd cacao aser ncn CR s 280 N NeWAPH crr uere ime xam Soc RO eu 32 Null date essi creen 89 Number of columns in grid 271 0 OEM eg feete tow e PAG Gd rp dela RA 14 On DIOP fe eased te Eee ek eee ure Ke 141 142 Index 292 Hierarchy Levels ou nds bade REREIA 154 Highlighted text 000000005 98 TMOG SY io E s RR REF quies RR RUNE 162 Horizontal scaling cerrar wes 83 Horizontal scrollbar lees 198 Horizontal scrolling leen 108 l ICONS ra is Vola a tec adio 158 162 IMAGES eie sede meee eee ee ee QC Kos o 158 Inline time control 2 0 2 0 0 002 137 Installation 220 2 cc4 008008 EIL e i4 13 Internal Cache us ue ceder wenn Pos s 251 Internal Sorting a ei ERE REDE s 79 Invisible columns scutier rot urediti netiis 37 Halle renna bt ME Be e EE 83 L License Server isise ERE pep e 21 License types x udo em mee lare dU T e 14 15 Line breaks em nk RR ERREUR eRe 82 Line in grid 25s dee ke re 148 Linie SPACING ze oor mox aia e es 83 List tea ad A ye hae ip Rd 38 M Machine ID mez
299. ration state If the plugin was not previously registered and the result is O it is registered the same way as if the bit was off or the whole options parameter omitted If the plugin was previously successfully registered a registration error will be returned in result in case registrationCode is invalid but the plugin will remain registered 1 Online registration option confirm connection Is it OK to connect to e Node s license server to register AreaList Pro 2 Online registration option display alert if registration error 3 Online registration option display alert if registered gt email text Online registration option developer email to notify when a license is issued or resent result longint Result code Description 0 OK 1 Beta license has expired 2 Invalid license 3 The license has expired 4 The OEM license has expired 5 The maximum number of users has been exceeded 6 The license is for a different environment e g the licence is for a single user version but you are using it with 4D Server 7 The license is linked to a different 4D license 8 Invalid merged license 9 Only serial ID licenses are allowed in text license files includes Register button and Online registration 10 Unauthorized master key Online registration 11 Can t connect to e Node s license server to perform Online registration 12 No Online registration license available for this ma
300. rea reference AreaList Pro longint reference 2 Column number 3 Type of data in this column 4 Pointer to temporary 4D array 1 5 First record for which to calculate cell 6 Number of cells to calculate in column Declare the parameters C_LONGINT 1 2 3 5 6 these must be declared C POINTER 4 this must be declared C LONGINT i ARRAY DATE aHireDate 0 local array can be used since we only need it here for calculation SELECTION RANGE TO ARRAY 5 5 6 1 Employee Hire Date aHireDate For i 1 6 4 gt i Add to date aHireDate i 1 0 0 End for Calculated columns 112 Columns Array mode example The following is an example of a calculated callback method in array mode using the same simple calculation as above but with 4D arrays being displayed These arrays have been initially declared and included in the AreaList Pro area with either AL AddColumn or AL SetObjects with the ALP Object Columns property for both non calculated arrays and calculated arrays Declare the arrays ARRAY TEXT aName 0 ARRAY DATE aHireDate 0 not displayed but needed for calculation SELECTION TO ARRAY Employee Name aName Employee Hire Date aHireDate ARRAY DATE aAnniversary Size of array aName this is our calculated array must be of same size Arrays to display Serror AL AddColumn eList aName 0 no need to specify colum number error AL AddColumn eList aA
301. reaLongProperty ALP Area AltRowOptions ALP Area AltRowColor Using any color format see Working with Colors AL SetAltRowColor AL SetAreaLongProperty ALP Area AltRowOptions ALP Area AltRowColor Using any color format see Working with Colors AL SetAreaBLOB AL SetAreaPtrProperty ALP Column UserBLOB AL SetAreaName AL SetAreaTextProperty ALP Area Name AL SetArrays AL SetArraysNam Obsolete AL SetObjects ALP Object Columns using array of pointers AL SetBackClr AL SetColumnLongProperty ALP Column BackColor ALP Column FtrBackColor Using any color format see Working with Colors AL SetBackColor AL SetColumnLongProperty ALP Column BackColor ALP Column FtrBackColor Using any color format see Working with Colors AL SetBackRGBColor AL SetColumnLongProperty ALP Column BackColor ALP Column FtrBackColor Using any color format see Working with Colors AL SetCalcCall AL SetColumnTextProperty ALP Column Callback AL SetCallbacks AL SetAreaTextProperty ALP Area CallbackMethEntryStart ALP Area CallbackMethEntryEnd AL SetCellBorder AL SetCellLongProperty ALP Cell Clear ALP Cell XXXBorderOffset ALP Cell XXXBorderWidth ALP Cell XXXBorderColor with XXX being Top Left Bottom Right Using any color format see Working with Colors AL SetCellColor AL SetCellLongProperty A
302. reaRef is ignored AL AddCalculatedColumn AreaRef L DataType L CallbackMethodName T InsertAt L gt result L Parameter Type Description gt AreaRef longint Reference of AreaList Pro object on layout gt DataType longint The array type to use Array Type Constant Value Alpha Is Alpha Field 0 Boolean Is Boolean 6 Date Is Date 4 Integer Is Integer 8 Longint Is Longint 9 Picture Is Picture 3 or 10 Real Is Real 1 Text Is Text 2 Time Is Time 11 Universal date time Mapped to 2 Text gt CallbackMethodName text Name of the method to execute to fill the array The following parameters will automatically be passed to the callback method 1 AreaList Pro area longint 2 column Longint 3 type Longint 4 pointer to temporary 4D array 5 first Longint first record for which to calculate cell 6 count number of cells to calculate in the column InsertAt longint Position at which to insert a column 0 means add to the end result longint Add a calculated column after the last column or at the specified position Note this command is only useful in field mode Area Q Command Reference Example In our database we have retail prices for our products However account holders in different levels receive a discount of between 5 and 15 We want to display the prices with the appropriate discount for the account holder s level
303. rection v Y long int 0 1 1 Current sort direction ALP Column ScrollTo viv n a If visible scroll the area to position this column on the left ALP_Column_Source v v text Data source Array name or MyTable MyField ALP Column Spellcheck v v v bool Not implemented ALP Column Type v Y long int Data type 4D constants 0 Is Alpha Field 1 Is Real 2 Is Text 3 Is Picture 4 Is Date 6 Is Boolean 8 Is Integer 9 Is Longint 11 Is Time ALP_Column_Uppercase v v v bool Make uppercase ALP Column UserText viv wv tex Text for free use by developer XML or other associated to the column ALP Column Visible vv v boo true 1 Column is visible ALP Column Width vv v real 0 O 32000 Column width in points These two values are related and the setter will change both properties at the same time if the value is non zero both properties will have this same value A zero value set to either property means automatic width ALP Column WidthUser will return zero but ALP Column Width will return the actual width calculated from the data When the user sets the value by doing a column resize then again both properties ALP Column WidthUser viv v real 0 O 32000 will be set to the same value But when the user double clicks in the column resize ALP Column WidthUser will be set to zero and ALP Column Width will be calculated from the data ALP Area ColumnResize must be set to true to enable column width changes by the setter o
304. report creation by AL SuperReport stored in Resources TableReport xml as XML tableReportTemplate AL_GetAreaTextProperty 0 ALP_Area_SRPTableTemplate get the built in SRP template from ALP Then in SuperReport Pro you can edit and save your own template anywhere in the data file or a document for future use with AL_SuperReport e g srpError SR_LoadReport window tableReportTemplate 0 load the SRP report and display it save the custom template somewhere with the File menu How it works p Printing with SuperReport Pro Demonstration database code examples Print with SuperReport Pro default template C TEXT reportXml C LONGINT result reportXml AL_SuperReport eArea 0 0 vTitle result SR_Print reportXml 0 SRP_Print_DestinationPreview SRP_Print_AskPageSetup 0 0 Print with SuperReport Pro custom template C_TEXT reportXml path C_LONGINT result path Select document xml xml Select a SRP template for ALP 0 path Document we actually need the full path If Spath reportXml AL_SuperReport eArea path 0 0 vTitle result SR_Print reportXml 0 SRP_Print_DestinationPreview SRP_Print_AskPageSetup 0 0 End if Editing a custom template C_TEXT StableReportTemplate C_LONGINT srpError C_LONGINT window tableReportTemplate AL_GetAreaTextProperty 0 ALP_Area_SRPTableTemplate get the built in SRP template from ALP If StableReportTempl
305. rids o Tutorial Next build 2 dimensional arrays for the grid layout ARRAY INTEGER aiGrid 3 8 For i 1 8 aiGrid 2 i 1 column span aiGrid 3 i 1 row span End for aiGrid 1 1 1 State aiGrid 1 2 3 Enterprise aiGrid 1 4 2 City aiGrid 1 6 4 Numbering aiGrid 1 8 5 City State We want column 1 the state to span 4 lines aiGrid 3 1 4 row span Tell AreaList Pro how many columns to set in the grid and add the grid to the area AL SetAreaLongProperty Self 2 ALP Area ColsInGrid 2 2 columns in a grid Serror AL_SetObjects Self gt ALP_Object_Grid aiGrid add the grid arrays to the area Finally some formatting is done and the EventCallBack method is set as the event callback projet method For a more detailed explanation of how to set up the grid arrays please see the Grids topic 2 11 1 we H 2 Example 14 Date Formatting Options Q Tutorial Example 14 Date Formatting Options This example demonstrates an example of how you can offer a simplified data entry option through the use of callbacks It allows the user to speedily enter date information by typing in some numbers they can enter just one digit for example and the method will complete the date using the current year and month For example if the current date is June 1st 2011 and the user enters 5 it will complete the date as June 5 2011
306. rlined ALP_Column_FtrTextColor Y v wv color FFO00000 Footer font color Default is black ALP_Column_FtrVertAlign v v v long 2 0 3 Footer vertical alignment int 0 default 1 top 2 7 center 3 bottom ALP Column FtrWrap v v v bool false 0 Wrap long lines in footer ALP Column FontName v v e text Verdana on List font name Windows Lucida Grande on MacOS Text Styling 87 Programming The AreaList Pro User Interface Constant Get Set Per Type Default Min Max Comments ALP Column HorAlign v v Y long 0 0 5 List horizontal alignment int 0 default 1 left 2 center 3 right 4 justify 5 full justify ALP_Column_HorizontalScale v v v real 1 0 1 100 List horizontal scale ALP Column Rotation v wv v real 0 360 360 Rotation of text in list ALP Column Size v wv v real 12 on 4 128 List font size Windows 13 on MacOS ALP Column StyleB v v v bool false 0 List font style bold ALP Column StyleF v v v long 0 0 7 List font style using 4D style constants e g int Bold Italic etc ALP_Column_Stylel v v v bool false 0 List font style italic ALP Column StyleU v v Y bool false 0 List font style underlined ALP_Column_TextColor v wv wv color FFO00000 List font color Default is black ALP_Column_VertAlign v v v long 0 0 3 List vertical alignment int 0 default
307. rmat 33 34 35 specify column format Note if AL Setlcon is not called AreaList Pro will look for pictures ID 33 34 and 35 from 4D s picture library Pictures Q Advanced Topics Alignment and offset AreaList Pro uses a specific offset width implementation for icon drawing m Offset When horizontal alignment in ALP Cell XXXIconFlags is zero default position left for left icon right for right icon the low 8 bits offset width of ALP Cell XXXIconFlags are interpreted as the offset i e the distance in points between the text and the icon left or right lt offset gt lt offset gt e Text Text e 0 default position left for left icon right for right icon Width Otherwise the low 8 bits offset width of ALP Cell XXXIconFlags are interpreted as the point width that the icon will use the icon will be aligned in this space lt width gt Text 512 AL Icon Flags Horizontal Center Horizontally centered Example C_LONGINT viconOffset viconHPos vlconVPos vlconFmt viconID vlconWidth viconID 11 viconOffset 3 viconFmt 0 AL Icon Flags Scaled viconHPos 0 default alignment viconVPos AL Icon Flags Vertical Center AL SetCellLongProperty area 3 7 ALP_Cell_LeftlconID vicon D AL SetCellLongProperty area 3 7 ALP Cell LeftlconFlags vlconOffset viconFmt viconHPos viconVPos AL SetCellLongProperty area 3 7 ALP Cell Rig
308. rom the zero element to the array element corresponding to the cell Set 0 True to complete data entry for the cell For example row AL_GetAreaL ongProperty 1 ALP Area EntryRow edited cell row aFname row aFname 0 reset the cell contents to their original state 0 True m The data is invalid Inform the user that the data is invalid Set 0 False to force the user to remain in the cell and enter another value m The data is invalid Inform the user that the data is invalid Modify the cell contents call ALP Area EntryGotoCell to go to the current cell and set 0 True This achieves the same effect as rejecting the entry but allows the cell contents to be modified For example row AL_GetAreaL ongProperty 1 ALP Area EntryRow edited cell row column AL_GetAreaLongProperty 1 ALP Area EntryColumn edited cell column aFname row aFname 0 reset the cell contents to their original state AL SetAreaLongProperty 1 ALP Area EntryGotoRow row go to the same cell AL SetAreaLongProperty 1 ALP Area EntryGotoColumn column 0 True Using Callback Methods During Data Entry Q Using the Callback Methods 101 The AL ExitCell action 7 and AL Cell validate action 8 events depend upon the way the area is deselected m Soft deselect happens when the user selects a menu or clicks on a non focusable object the AreaList Pro area temporarily looses the focus m Hard des
309. roubleshooting and FAQs Callbacks Popup menus The ALP Area CallbackMethPopup property is used when a popup is clicked but no popup array menu is defined How can you click a popup if no popup array menu is defined If a column is enterable by popup and AreaList Pro detects a click on the popup icon 1 AreaList Pro first checks if it has any PopupMenu or PopupArray PopupMap defined If yes AreaList Pro displays the specified menu in case of PopupMenu or builds and displays the menu in case of PopupArray PopupMap 2 If not then AreaList Pro checks if a ALP Area CallbackMethPopup callback method is defined and if yes it calls the method defined in this property This 4D method has the following parameters PopupCallback area L row L column L dataType L gt bool Handled It is up to the developer to write such a 4D method to handle the click you may for example display your own Data Picker dialog Or build a 4D menu and display it with a Hierarchical Popup menu Or do nothing and return false It is also up to the developer to read the current cell value and set a new value as needed 3 If the ALP Area CallbackMethPopup method returns false or is not defined AreaList Pro displays its own popup for columns with date time values it displays predefined DataPicker or TimePicker dialogs For other column types AreaList Pro displays a menu with one dimmed value no items See the example in the Callbacks section See
310. rty used selector see Property Values Constants and XML Names Alert ALP Error 5 Entry point 11 AL SetAreaLongProperty Selector used ecgr Calling method LEXIQUE DLESAISIE DLE IAJOUTTRAD N Using the debugger Q Using the Callback Methods 92 Using the Callback Methods A callback is a 4D project method which is executed by a plug in AreaList Pro lets you make use of callbacks when displaying an AreaList Pro area Callbacks are method types that allow you to react according to a user s actions for example to carry out data validation or to enable disable buttons depending on which options are available There are six actions that can trigger a callback m An AreaList Pro event m AreaList Pro area selected m AreaList Pro area deselected m Cell entered m Cell exited m Popup entry m Edit menu action In addition Calculated Columns use a callback method to perform their calculations in field display or array display mode Callback Parameters All callbacks receive the area long integer reference as their first parameter 1 You must use the following declaration in your callback method C LONGINT 1 Since the long integer 1 parameter contains 4D s representation of the AreaList Pro object it can be used as the first parameter of any AreaList Pro method called Most callback methods receive additional parameters which need to be declared also as documented below
311. s 7 Tip String 8 AreaList Pro Area Name The event callback is now called as area alpEvt event4D column row modifiers This is identical to AreaList Pro 8 5 just the 2 last arguments are not passed To set a tooltip instead of setting 7 to the tooltip text call AL SetAreaTextProperty 1 ALP Area ToolTip tool tip text to show To get the area name instead of using 8 call areaName AL_GetAreaTextProperty 1 ALP Area Name Callbacks p Appendix Il Troubleshooting and FAQs Properties Properties setters types I m confused about long vs real vs text property If you want to get set a property use the long real text or pointer variant depending on the kind of the value you are accessing m any boolean property can be coerced to long real and text m any integer property can be coerced to real and text m any real property can be coerced to text note decimal dot not decimal comma For example let s access a boolean property like ALP Area Visible C_LONGINT err C_BOOLEAN bool C_LONGINT long C REAL real C TEXT text Serr AL_GetAreaPtrProperty Sarea ALP_Area_Visible gt bool long AL_GetAreaL ongProperty Sarea ALP_Area_Visible real AL_GetAreaRealProperty Sarea ALP_Area_Visible text AL_GetAreaTextProperty Sarea ALP_Area_Visible All values are equal Num bool Num text long real Same with setters bool True Serr AL_Se
312. scrollbar and area width How do determine the width of the vertical scrollbar need to calculate the entire width of the AreaList Pro area so can resize the window after changing the columns programmatically There is no accessor for scrollbar width system default is used but you can use these read only properties ALP Area ListWidth ALP Area ListHeight ALP Area DataWidth ALP Area DataHeight List is the Data area of the AreaList Pro area without frame scrollbars headers footers just the data part on screen Data is the actual data size from this the scrollbars are computed For example lets have a small AreaList Pro area on a form ListWidth 200 AreaList Pro object size would be around 220 points DataWidth 250 it is irrelevant how many columns the grid width is measured the horizontal scrollbar will be active data is wider than screen view DataWidth 150 gt the horizontal scrollbar will be inactive So you have to get ALP_Area_ListWidth equal to ALP_Area_DataWidth by resizing the area window Horizontal scrollbar modes In the ALP_Area_ShowHScroll property how is 0 Automatic Not Shown different than Automatic Shown And what is the default value The horizontal scrollbar property has two modes automatic hiding dependent on data with and area width and manual Both modes can have the scrollbar visible shown or hidden not shown m 0 automatic hidden the
313. se to style text in the various objects Area properties Use these properties with commands in the Area theme Constant Get Set Per Type Default Min Max Comments ALP Area EntryAllowReturn v false 0 Allow RETURN in text ALP Area EntryHighlight v Entry highlight in the form String startOfSelection String endOfSelection ALP Area EntryHighlightE v long int Entry highlight end ALP Area EntryHighlightS v long int Entry highlight start ALP Area EntryMapEnter v long int 0 3 Map Enter key to 0 nothing ignore 1 Tab 2 Return 3 Return for text fields Tab otherwise ALP_Area_EntrySelectedText v Selected text entry must be in progress ALP Area EntryText v Entry text entry must be in progress ALP Area Ftrindent v Horizontal and vertical indents for the footer rows in points The first value represents the horizontal indent left and right and the second value is the vertical indent top and bottom ALP Area FtrindentH v 0 64 Horizontal indent for the footer rows in points ALP Area FtrindentV v 0 64 Vertical indent for the footer rows in points ALP Area Hdrlndent v Horizontal and vertical indents for the header rows in points The first value represents the horizontal indent left and right and the second value is the vertical indent top and bottom ALP Area HdrlndentH v 0 64 Horizontal indent for the header rows in points ALP Area HdrlndentV v 0 64 Vertical i
314. set starting at the cell at coordinates Row Column Example To rotate the text in the cells from coordinates 2 1 to coordinates 8 4 by 180 turn them upside down AL SetCellRealProperty area 2 1 ALP_Cell_ Rotation 180 7 4 AL_SetCellTextProperty AreaRef L Row L Column L Property T Value T RowCount L ColumnCount L Parameter Type Description gt AreaRef longint Reference of AreaList Pro object on layout gt Row longint The number of the row for which to set the property gt Column longint The number of the column for which to set the property Property text The property to set gt Value text Value to pass to the function text gt RowCount longint Number of rows to set starting at Row optional gt ColumnCount longint Number of columns to set starting at Column optional Set a specific text Property for a cell or several cells The properties that you can set with this command are the ones of type text listed in the AreaList Pro Cell Properties theme If the Count parameters are omitted only cell at coordinates Row Column will be set Otherwise RowCount x ColumnCount cells will be set starting at the cell at coordinates Row Column Example To set the font for the cell at row 3 column 2 to Arial Black AL SetCellTextProperty area 3 2 ALP_Cell_ FontName Arial Black Cells Q a Command Reference Objects AL SetObjects AL GetObjects are used for
315. set up your area you can specify the callbacks to use on the Enterability and Advanced pages Warnings m Callback methods called during cell editing must not modify underlying data arrays or records i e they must not resize or rebuild the arrays array display or change the current 4D selection field display m You should not call any AreaList Pro commands which change the number of displayed columns their position in the area or their sorted order in a callback method E Setting up a Callback Q Using the Callback Methods 97 Calculated Column Callback A 4D callback may be attached to a specific column When information is needed for this column AreaList Pro will execute the callback to allow you to fill the column with data This allows the displaying of data calculated from one or more fields or arrays as well as any ad hoc data that is desired Parameter Description 1 Reference of AreaList Pro object on layout 2 Column number 3 Type of data in this column field type or array type 4 Pointer to temporary 4D array field mode or an existing sized array array mode 5 First row for which to calculate cell 6 Number of cells to calculate in column The first three parameters are not absolutely necessary to determine how to fill the column They are provided to give you more flexibility in the implementation of the callback method m The first parameter is the area long integer referen
316. sible again to reactivate the area For example AL_SetAreaLongProperty area ALP_Area_Visible 0 hide the area AL_SetAreaLongProperty area ALP_Area_Visible 1 show the area This setting may also be useful on Windows in case you open a dialog in the same window as an AreaList Pro area and the cursor and typed characters do not appear when they are located over or close to the underlying AreaList Pro area coordinates in the calling layout Reveal properties Is the ability to reveal a row column cell implemented Those selectors i e ALP_Row_Reveal etc have a type of n a and when try to use them get an error 5 Is there another way to force the area to scroll so that a particular row column cell is visible Yes it is implemented Reveal properties do not expect any value they are not real properties so you can use any kind of setter with any value there is no getter implemented the result is 5 aka ALP Err InvalidRequest For example the following line will reveal scroll to the row number row AL SetRowLongProperty area row ALP Row Reveal 0 Another way is to set the scrollbars directly see the ALP Area ScrollLeft and ALP Area ScrollTop properties using points not column row numbers Reveal properties can be called in On Load phase only for areas with fixed row height areas Scrolling Q Appendix Il Troubleshooting and FAQs 268 Calculating the
317. sically a picture cache You can use 0 as the AreaRef to set an icon in the global workstation cache or specify a given area You assign a reference number which can then be used in the icon placement and formatting commands Each picture is stored only once but can be used any number of times thus being very efficient with memory usage Note icon IDs 1 to 5 can be used to replace AreaList Pro s native icons for popups and hierarchical lists See Displaying custom pictures instead of AreaList Pro s native icons Example To add a picture from a 4D field to the AreaList Pro picture library and assign it the reference number 100 Serr AL_Setlcon area 100 pictures clock icon For detailed examples of using pictures in your AreaList Pro area see the Pictures topic Utility Properties by Theme 196 Properties by Theme In this section you ll find complete details about each property that can be used with the AreaList Pro commands They are organised into themes according to which group of commands they relate to AreaList Pro Area Properties affect the whole AreaList Pro area AreaList Pro Column Properties affect columns AreaList Pro Row Properties affect rows AreaList Pro Cell Properties affect cells AreaList Pro Object Properties affect various objects used by AreaList Pro The following details are included for each property Constant the name of the property that you type into the command Get whether the const
318. sion changes EE J yrr Registering your AreaList Pro License Installation 19 You may want to register your merged server without having to turn off the database to modify the code We have created a utility database to manage this it s called Get Serial Info and you can download the appropriate version for your 4D version from the e Node server This is possible using any 4D setup on the server machine such as a standard developer single user 4D Keeping your production server alive open the Get Serial Info database with 4D on the same server machine Ignore the demonstration mode dialog if your single user 4D is not registered for the plugin and wait for the next Alert Alert The following information has been copied to your clipboard Key 204998519 User Company e Node Max users 1 4D Local Mode F0011320 build 122395 type O UUID 93A47C40 30A2 5FF4 AC8D DDA872C6A380 Machine ID 114681 A text file is also saved with the same information The last line Machine ID is the number that you need to send in order to receive your merged server registration key You can also check the machine ID in standalone mode or on any remote client with the built client application or in interpreted mode as long as it is running on the same server machine using the following call C_LONGINT machinelD machinelD AL_GetAreaLongProperty 0 mach Using
319. st Pro and backwards compatible except the items listed below We have included a command list for reference purposes See also Entering data in AreaList Pro with DisplayList a a a a Incompatibilities Patterns are no longer supported They are interpreted by AreaList Pro version 9 as transparency ratios See Patterns The font styles Outline Shadow Extended and Condensed are no longer supported ArraySort This was a substitute for MULTI SORT ARRAY before this call was introduced to 4D It must be replaced with MULTI SORT ARRAY c 1 About DisplayList Incompatibilities Q p DisplayList DisplayList Commands DisplayList array1 arrayN gt SelectedLine Parameter Type Description array1 N array array SelectedLine Integer Line selected by user 1 another DIsplayList window is currently displayed in another process 0 user clicked cancel button or no elements were selected 20 line number selected by user DisplayList displays the arrays in the DisplayList window Any formatting commands must be executed prior to DisplayList SetListHeaders header1 headerN Parameter Type Description gt header1 N string Header text to display in each column SetListHeaders is used to specify the value to display in the header for each column It is executed prior to DisplayList and the parameters for the two commands correspond i e the f
320. st action will be sent to the AlpEventText method for analysis and if he has done something this will be reported in the variables displayed on the form The Event callback method EventCallBack11 is a slight variation from EventCallBack10 including a text variable for each area event using the received 2 parameter and the same AlpEventText project method as above If 1 eListLeft left area evtUpdateText gt vltemLeft gt aCityLeft gt aStateLeft AlpEventText 2 gt vLeftEventText vLeftEventText vLeftEventText vltemLeft Else right area evtUpdateText gt vltemRight gt aCityRight gt aStateRight AlpEventText 2 gt vRightEventText vRightEventText vRightEventText vltemRight End if EE A tn Example 11 Determining a user s action Q Tutorial Example 12 Using Hierarchical Lists This example illustrates how to display information in a hierarchical list with AreaList Pro The form contains an AreaList Pro area and fields to display information about the data Example 12 This is Example 12 from the Reference Manual which was built to illustrate the hierarchical list display mode TeList w 448 h 248 AreaList Pro v9 3b1 Oe Node SA 2011 2012 Event Row Column Row over vEvent vRow vCol vRowOver Done In the On Load event on the object method for the AreaList Pro area a set of arrays is created to display the data ALL RECORDS Cities load all records in the Cities table O
321. ster key unknown or all used AL Register is used to register the AreaList Pro plug in for standalone or server use Please see the License Types section for detailed information about the licensing options available for AreaList Pro Utility Q Command Reference Multiple calls to AL_Register are allowed The plug in will be activated if at least one valid key is used and all subsequent calls to AL Register will return O unless the force chek bit is set to true in the options parameter registrationCode You must call AL Register with a valid registration key otherwise AreaList Pro will operate in demonstration mode it will cease to function after 20 minutes In case a master key is used the plugin will attempt a connection to e Node s license server for Online registration options Optional This parameter combines up to 4 bits as described above The default mode registrationCode being a passed as the only parameter is silent no force chek no confirmation no alert no email email Optional The developer email address where to send Online registration information When AL Register is called with an empty string the license dialog will be displayed if AreaList Pro is not registered and the dialog was not yet displayed This allows you to show the registration dialog to your users without effectively calling an AreaList Pro command or displaying an AreaList Pro area Note alternately to AL Register
322. string Use the Copy eMail and Register buttons just as above and your server will be registered for all workstations Note any other workstations previously connected before registration occurred will need to re connect to the server to be functional Registering on 4D Server To directly register the server and all workstations from the server machine itself you need to display the Demo mode dialog on the server Call AL Register with an empty string in the On Server Startup base method C LONGINT result result AL Register display the dialog Use the Copy eMail and Register buttons just as above and your server will be registered for all workstations Note the dialog will automatically be dismissed on the server after one minute in order not to block client connections the server is only available to client workstations once the On Server Startup method has completed Merged licenses notes Both methods can be either used with regular or merged servers and client workstations m Regular licenses are linked to the 4D Server serial information m Merged licenses are linked to the 4D Server machine ID Note merged licenses will keep working if your 4D Server serial information is modified upgrading or 4D Partner yearly updates or if any client workstation hardware is changed It will only need to be updated if the 4D Server hardware is changed or if the plugin itself requires a new key paid upgrades upon major ver
323. t ALP Column Size v v Vv real 12 on 4 128 List font size Windows 13 on MacOS ALP_Column_StyleB v v V bool false 0 List font style bold ALP Column StyleF v v V long 0 0 7 List font style using 4D style constants e g int Bold Italic etc ALP Column Stylel v W V bool false 0 List font style italic ALP_Column_StyleU v v Y bool false 0 List font style underlined ALP_Column_TextColor v v V color FFO00000 List font color Default is black ALP Column VertAlign vv Vv long 0 0 3 List vertical alignment int 0 default 1 top 2 7 center 3 bottom ALP Column Wrap v v Vv bool false 0 Wrap long lines in list AreaList Pro Column Properties AreaList Pro Row Properties Use these constants with commands in the Rows command theme AL GetRowLongProperty AL GetRowPtrProperty AL GetRowRealProperty AL GetRowTextProperty AL SetRowLongProperty AL SetRowPtrProperty AL SetRowRealProperty AL SetRowTextProperty Row Numbering Properties by Theme Row Value Header 0 Body rows 1 to number of rows Footer 1 Empty area below last row 2 The values above are returned by the ALP_Area_ClickedRow and ALP_Area_RollOverRow properties clickedRow AL_GetAreaLongProperty area ALP_Area_ClickedRow last clicked row rowUnder AL_GetArealL ongProperty area ALP Area RollOverRow row currently under the pointer They can also be used to set and get properties except the
324. t Columns aPtrCols Example 3 Creating arrays from a 4D table Tutorial Example 4 Allow multi row selection The default row selection method is single rows In this example we build on Example 3 and enable the selection of multiple rows eoo Example 4 Example 4 This is Example 4 from the Reference Manual The AreaList Pro object has been set to allow multi rows selections using the AL SetAreaLongProperty command with ALP Area SelMultiple City Mobile Fayetteville Little Rock Phoenix Tuscon Petaluma Los Angeles Palm Springs Mobile AL Little Rock AR Los Angeles CA Done In the Object Method for the AreaList Pro area we ve added two commands AL SetAreaLongProperty eLis ALP Area SelMultiple 1 set multi row selection mode With this option selected the user can Ctrl click Windows or Cmd click Mac to select multiple rows Note that the text area lists all the selected rows We use the AL GetObjects function to find out which rows were selected Case of Form event On Plug in Area respond to user action If AL GetAreaLongProperty eLis ALP Area AlpEvent AL Single click event single click on a row or up down arrow keys ARRAY LONGINT aRows 0 Serror AL_GetObjects eList ALP Object Selection aRows get the rows selected by user vltem For i 1 Size of array aRows look at each row selected by user vitem vitem aCity aRows i aState aRows i plug
325. t Pro object ARRAY TEXT aCityRight 0 empty arrays in this area ARRAY TEXT aStateRight O error AL_AddColumn Self gt gt aCityRight display array in column 1 error AL_AddColumn Self gt gt aStateRight display array in column 2 dragAreaSetup Self gt AL SetAreaTextProperty Self 2 ALP Area CallbackMethOnEvent EventCallBack10 set event callback vitemRight Form event On Drop AlpOnDrop End case The dragAreaSetup project method sets headers width etc as well as drag and drop properties AL_SetAreaTextProperty 1 ALP_Area_DragSrcRowCodes drag set source access code AL_SetAreaTextProperty 1 ALP_Area_DragDstRowCodes drag set destination access code AL_SetAreaLongProperty 1 ALP_Area_DragRowMultiple 1 multiple rows dragging AL_SetAreaLongProperty 1 ALP_Area_DragRowOnto 0 Between rows disable On row The AlpOnDrop project method takes care of the whole drag and drop action C_STRING 20 selected Object C_LONGINT error C_LONGINT dragDstRow dragDstCol dragSource dragSrcRow dragSrcCol dragDest dragType dragDstRow AL_GetAreaLongProperty Self gt ALP_Area_DragDstRow dragDstCol AL_GetAreaLongProperty Self gt ALP_Area_DragDstCol dragSource AL_GetAreaL ongProperty Self gt ALP_Area_DragSrcArea 110 if drag is not from AreaList Pro or not from same 4D instance If SdragSource 0 drop from dragSource AreaList Pro area dragSrcRow AL_GetAreaLong
326. t column handle a click into a column header when sorting is set to be bypassed If AL GetAreaLongProperty area ALP Area AlpEvent AL Sort button event amp AL GetAreaLongProperty area ALP Area UserSort AL User sort bypass sort AL_GetAreaLongProperty area ALP Area SortList Case of sort 7 7th column ascending AL SetAreaLongProperty area ALP Area SortList 8 sort on column 8 ascending AL SetAreaLongProperty area ALP Area SortListNS 7 but highlight column 7 header Ssort 7 7th column descending AL SetAreaLongProperty area ALP Area SortList 8 sort on column 8 descending AL SetAreaLongProperty Sarea ALP_Area_SortListNS 7 but highlight column 7 header Else AL SetAreaLongProperty area ALP Area SortList sort sort the clicked column End case End if Sorting a Programming The AreaList Pro User Interface Internal Sorting When you are displaying arrays the default behaviour is for arrays to be physically sorted However you can turn physical sorting off using the ALP_Area_DontSortArrays property for example AL SetAreaLongProperty area ALP Area DontSortArrays 1 This is required it is set internally when displaying a hierarchy the hierarchy can be sorted When ALP Area DontSortArrays is on When the user clicks a row the real row number in your arrays is reported independently from the position on screen Cc 1 B 2 A 3
327. t longint Number of rows to set starting at Row optional gt ColumnCount longint Number of columns to set starting at Column optional Set a specific longint Property for a cell or several cells The properties that you can set with this command are the ones of type longint and boolean 1 or 0 listed in the AreaList Pro Cell Properties theme If the Count parameters are omitted only cell at coordinates Row Column will be set Otherwise RowCount x ColumnCount cells will be set starting at the cell at coordinates Row Column Example To set the vertical alignment to bottom for the cell at coordinates 4 2 AL SetCellLongProperty area 4 2 ALP_Cell_VertAlign 3 AL SetCellPtrProperty AreaRef L Row L Column L Property T Pointer Z RowCount L ColumnCount L gt result L Parameter Type Description gt AreaRef longint Reference of AreaList Pro object on layout gt Row longint The number of the row for which to set the property gt Column longint The number of the column for which to set the property gt Property text The property to set gt Pointer pointer Pointer to a variable that holds a value to pass to the function gt RowCount longint Number of rows to set starting at Row optional gt ColumnCount longint Number of columns to set starting at Column optional result longint Set a specific Property for a cell or several cells using a Pointer to the
328. t properties ALP Column HorAlign ALP Row HorAlign ALP Cell HorAlign ALP Column VertAlign default alignment is top left for these two formats These alignement properties should not be confused with the icon flags see below AL SetCellLongProperty ALP Cell LeftlconFlags AL Icon Flags Scaled is related to pictures icons embedded into a cell in any kind of column not for column data as such j d Pictures Q Advanced Topics Using a picture from a field or variable To display an image stored in a variable or field you call AL Setlcon AL Setlcon accepts the area reference or zero for global workstation settings an image ID which you create and the image The ID must be a positive number between 1 and 16 777 215 You can then use the image ID to set the value of the ALP Cell LeftlconID ALP Cell RightlconlD properties Using a picture from the 4D Picture Library To use a picture from the 4D Picture Library you pass the appropriate 4D Library picture reference to ALP Cell LeftlconID ALP Cell RightlconID The picture will be automatically added to AreaList Pro s picture library cache if not already there Displaying custom checkhoxes using pictures The AL
329. t we want to allow data entry by popup only AL_SetColumnLongProperty area 1 ALP Column Enterable 2 Finally assign the array to the popup AL SetColumnPtrProperty area 1 ALP Column PopupArray atTypes Hierarchical Popup Menus You can also use hierarchical popup menus for example ee AA o Chocolate Nuts gt Nuts 2 ii e kate a Klute A Chocolate E Chocolate 1 White Hierarchical popup menus use 4D menus which you create using the Create menu command As an example we will look at how the example shown above was created Each menu item must have a menu item parameter defined this value will be returned to AreaList Pro and stored in the data when the user selects an item from menu Data Entry Controls Q Advanced Topics First we create three menus the main parent menu and two submenus Chocolate and Nuts hpopup Create menu subChoc Create menu subNuts Create menu Next we populate the two submenus APPEND MENU ITEM subChoc Dark SET MENU ITEM PARAMETER subChoc 1 Dark APPEND MENU ITEM subChoc Milk SET MENU ITEM PARAMETER subChoc 1 Milk APPEND MENU ITEM subChoc White SET MENU ITEM PARAMETER subChoc 1 White APPEND MENU ITEM subNuts Brazil SET MENU ITEM PARAMETER subNuts 1 Brazil APPEND MENU ITEM subNuts Macadamia SET MENU ITEM PARAMETER subNuts 1 Macadamia APPEND MENU ITEM subNuts Mixed SET MENU ITEM PARAMETER subNuts 1 Mixed
330. tAreaPtrProperty Sarea ALP_Area_Visible gt Sbool AL SetAreaLongProperty area ALP_Area_Visible Num bool 1 AL_SetAreaRealProperty Sarea ALP_Area_Visible Num bool 1 AL_SetAreaTextProperty Sarea ALP_Area_Visible String Num bool 1 But for example if you want to set the header text you will not succeed with long or real variants you either have to use the text variant with a text value or the pointer variant with a pointer to a text variable field Using the Redraw property When should use ALP Area Redraw The area is not always redrawn immediately but after it gets an update event from 4D In some situations you may need to have it redrawn immediately AL_SetAreaLongProperty area ALP Area Redraw For example when the user control clicked on an unselected row this row is made selected selection changed but the area is not yet redrawn the callback method is called and or the object method is executed Use the ALP Area Redraw property at this point to redraw the AreaList Pro area before you show a contextual popup e g dynamic pop up menu on the newly selected row Properties Q Appendix II Troubleshooting and FAQs 277 Formatting Font issues When try to set a column font to be Geneva 9 point italicized the font appears non italicized Are there some fonts that do not have the capability of being italicized AreaList Pro v9 uses CoreText on Mac and GDI on W
331. tRowColor AL SetRowLongProperty ALP Row Clear ALP Row ClearStyle ALP Row TextColor ALP Row BackOColor Using any color format see Working with Colors AL SetRowOpts AL SetAreaLongProperty ALP Area SelMultiple ALP Area SelNone ALP Area DragLine ALP Area DragAcceptLine ALP Area MoveRowOptions ALP Area SelNoHighlight Mapping Old Commands to the AreaList Pro v9 API Old commands AL SetRowRGBColor AL SetRowStyle 5 Mapping Old Commands to the AreaList Pro v9 API New Commands and Properties AL SetRowLongProperty ALP Row Clear ALP Row ClearStyle ALP Row TextColor ALP Row BackColor Using any color format see Working with Colors AL SetRowLongProperty ALP Row Clear ALP Row ClearStyle AL SetRowTextProperty ALP Row FontName AL SetRowLongProperty ALP Row StyleF AL SetScroll AL SetAreaLongProperty ALP Area Visible ALP Area ShowVScroll ALP Area ShowHScroll AL SetAreaRealProperty ALP Area ScrollLeft ALP Area ScrollTop AL SetRowLongProperty ALP Row Reveal AL SetSelect AL SetObjects ALP Object Selection AL SetSort AL SetAreaTextProperty ALP Area SortList ALP Area SortListNS AL SetObjects ALP Object SortLis ALP Object SortListNS AL SetSortedCols AL SetAreaPtrProperty ALP Area SortListNS AL SetObjects ALP Object SortLis ALP Object SortListNS AL SetSortEditorParams Use the ALP Area
332. te City Los Angeles Palm Springs Petaluma San Diego Event Row Column Row over 18 17 2 17 ine See the Hierarchical Lists topic for more information about hierarchical lists Example 12 Using Hierarchical Lists Q Tutorial Example 13 Grids Grids offer some interesting formatting possibilities tot he developer Rather than displaying your data in simple rows and columns the cells can be organised into groups for example 800 Example 13 Example 13 This is Example 13 from the Reference Manual which was built to illustrate the Grid mode display Enterprise City numbering Cities states 534 ent Fairbanks ID 1 Fairbanks AK 1 794 ent Mobile ID 2 Mobile AL 1513 ent Fayetteville ID 3 Fayetteville AR 150 ent Little Rock ID 4 Little Rock AR Hide footers Event Row Column Row over The form holds what looks like a perfectly ordinary AreaList Pro area Example 13 This is Example 13 from the Reference Manual which was built to illustrate the Grid mode display eList w 448 h 248 AreaList Pro v9 3b1 e Node SA 2011 2012 Hide footers Event Row Column Row over vEvent vRow vCol vRowOver Done The magic is in the On Load event of the area s object method Example 13 Grids o Tutorial First create the arrays and add them to the AreaList Pro area Compiler reset the arrays ALL RECORDS Cities load all records in the
333. tead of fields is probably a better choice Note arrays used to define the hierarchy are not considered as columns arrays they are used only once to create the hierarchy Hierarchy s Appendix II Troubleshooting and FAQs Compatibility mode My areas are mostly in compatibility mode so add the column property for the columns want to wrap at the end of my configuration as well as set the area to be variable row height and to use the same columns that I m word wrapping as calculated height columns Yet no wrapping takes place Don t use compatibility mode if you want to use some of the new features In compatibility mode e g the wrap mode depends on the number of lines to be shown ALP Area NumHdrLines ALP Area NumRowLines and ALP Area NumFtrLines respectivelly If the number of lines is 1 wrap mode is set to 0 Any wrap mode set explicitly is ignored any means at any level column row or cell When ALP Area Compatibility is set to 1 some behaviors are different m ALProEvt variable is created amp updated m the visibility of columns ALP Column Visible is modified according to the number of hidden columns ALP Area CompHideCols m the area is made visible on update event ALP Area Visible m the wrap mode in styles is set depending on the row lines number m the area is draggable and droppable even if not set as draggable or droppable in form properties m when a row or column is drag a
334. ted AL GetStyle AL GetColumnTextProperty ALP Column FontName AL GetColumnRealProperty ALP Column Size AL GetColumnLongProperty ALP Column StyleF AL GetVersion AL GetAreaTextProperty ALP Area Version Mapping Old Commands to the AreaList Pro v9 API Old commands AL GetWidths 3 Mapping Old Commands to the AreaList Pro v9 API New Commands and Properties AL GetColumnRealProperty ALP Column Width ALP Column WidthUser AL GotoCell AL SetAreaLongProperty ALP Area EntryGotoColumn ALP Area EntryGotoRow AL InsArraysNam AL AddColumn using pointer AL InsertArrays Obsolete replace with AL AddColumn AL InsertFields Obsolete replace with AL AddColumn using pointer AL IsValidArea AL GetAreaLongProperty ALP Area IsArea AL Register AL Register Note that in AreaList Pro v9 this function returns 0 for OK and an integer between 1 and 8 if not OK There is a list of the error codes and their meanings here AL RemoveArrays AL RemoveColumn Note that this will only remove one column at a time supply 2 as the column number to remove all columns in the area AL RemoveFields AL RemoveColumn Note that this will only remove one column at a time supply 2 as the column number to remove all columns in the area AL RestoreData AL Load in XML format AL SaveData AL Save in XML format AL SetAltRowCIr AL SetA
335. ted by these technologies can be used in AreaList Pro In particular GDI does not support non TrueType fonts on some Windows versions Text styling Many options are available to set text styles in headers rows footers or individual cells See the Text Styling topic for more details Transparency You can now specify transparency in RGB colors See the Working with Colors topic for more info Unicode AreaList Pro supports Unicode for display and data entry Note that entry filters do not support Unicode so their functionality is limited to ASCII original 7 bit characters In other words if a filter is specified only printable Unicode characters with code 256 can be entered Value Mapping Now you can map values from fields or arrays to defined parameters in a popup menu For example you can map numeric values in a field to text equivalents For more details see Value Mapping in the Advanced Topics chapter Wrapped Text Text wrapping is now supported using the ALP Column Wrap property of the AL SetColumnLongProperty command See Text wrapping EE Upgrading from Previous Versions of AreaList Pro Getting Started with AreaList Pro XML An area s settings can be saved as XML into a variable or field Note that if 4D is run in non Unicode mode the size of any text is restricted to 32k characters This should normally be enough however it is rec
336. ted column list llle 77 Bypassing the Sorteditor 2 0 ee eee eee eee ee ee ee ern ee ee 77 Internal SONO esas ees ke adh than BE Rees Kee MEE a ape Maw eee A pe Gee 79 Calculated columns jc ulum Remb RR Sec Re be Ne ee ee RR n 80 Comma separated list vs array isses siu Re eee Pa ge Pe eee eae 81 Restoring highlighted Selections 3 cia wk sine ese o Paik Pod ra end 81 Text wrapplngza se peebeeREPRI AR p ehRPER 4 I PP RPRERE dt ele added peenhete bb eben hobo ed PEE ES 82 Compatibility mode off i 22d eR POS RE eb bed ene RE RUE eked bees 82 Compatibility Mode Oll 2 eaves cornea A ARA Os te eee d US eee eee 82 Switching modes x pre toe d Roos ee a ape RUE es ae wade eee Re ee Ee 83 A e da e E i E E S A E aiaa GE EE a ar E a S 83 Area properties s chee rash a RU a e p EE OE See E aR NER RUBROS a eios 84 Column Properties xx xor e aet ee pS Ea a es d ba anb TUUS E RO a ER Cons 85 ROW Propemles a2 very II Vee e wx an RE HE a Re EH iad vey ETE os Roe Rana EE E ae 87 Cell Properties xxx io Ee Eo EE an OR dnt Dae ruere etd E oed eee 88 Object Properties s eere m eee Eee ee Ree qu dee RE eee a 89 Formatting evita ro eei eb um weeshire ge Se le sk am wes el ug 89 COMM PIO PONY a ask iata A xn tae E e M o er ee xls ae ee BUS 89 Custom sys ocurrir roca 89 Empty string for null dat s r sss eee me Ease Ru Roe RO Bees Ree x eR Ae xc e s 90 Using thie debugger rinde EE ce a E IA urge 90 Trace modes iso i io Sh o
337. th Dimension project method called when data entry ends for a cell or when an AreaList Pro popup menu is released for a cell not in typed data entry The entry finished callback method is specified by passing the method name in the ALP Area CallbackMethEntryEnd property If this property is not set then no method will be called AreaList Pro will pass the callback method two parameters The first parameter is a long integer that corresponds to the AreaList Pro object on the layout The second parameter is a long integer that reports what action mode caused data entry to end in the cell You must use the following declarations in your entry finished callback method C LONGINT 1 AreaList Pro object reference C LONGINT 2 exit cause C BOOLEAN 0 allow cell exit Using Callback Methods During Data Entry Q Using the Callback Methods The second parameter passed to the callback routine the long integer 2 contains the mode by which data entry ended according to the following table Constant Value Entry mode AL Click action 1 Click in Cell AL Tab key action 2 Tab AL Shift Tab key action 3 Shift Tab AL Return key action 4 Return AL Shift Return key action 5 Shift Return AL GotoCell action 6 ALP Area EntryGotoCell and variants See Cell change properties AL ExitCell action 7 ALP Area EntryExit or hard deselect AL Cell validate action 8 Deselect the cell soft desele
338. th existing areas to dynamically switch the drawing engine used on Windows May be used with the area reference set to zero newly created areas will use this mode Constant Get Set Per Type Default Min Max Comments ALP Column Attributed v v v bool false 0 Use attributed multi style text 0 no 1 yes See also AreaList Pro Text Style Tags ALP Column FooterText v v v tex Footer text ALP Column HeaderText v v v tex Header text ALP Column Length v long Size of the alpha 4D field int Zero means it is not an alpha length limited field ALP Column Uppercase v wv v bool Make uppercase ALP Column HdrFontName v v text Verdana on Header font name Windows Lucida Grande on MacOS ALP Column HdrHorAlign v v v long 0 0 5 Header horizontal alignment int 0 default 1 7 left 2 7 center 3 7 right 4 justify 5 full justify ALP Column HdrHorizontalScale Y Y Y real 1 0 1 100 Header horizontal scale ALP Column HdrRotation v v v real 0 360 360 Rotation of text in header ALP Column HdrSize v v v real 12 on 4 128 Header font size Windows 13 on MacOS ALP Column HdrStyleB v v v bool false 0 Header font style bold ALP Column HdrStyleF v v v long 0 0 7 Header font style using 4D style constants int e g Bold Italic etc ALP Column HdrStylel v v v bool false 0 Header font style italic Text Stylin
339. that can be set we ll use the AreaList Pro demonstration database AreaList gt Configuration Options then Format gt Cell Settings Coloring Cell Sections Q h Working with Colors Getting started Let s start with no padding no offset no borders no colors Area settings all cells Firstname Lastname Salary City State odd Zipnick 52 230Phoenix AZ n Vertical Padding 0 Bob Yuderman 22 295Paris Horizontal Padding 0 effrey Young 49 687Los Angeles CA Column color divider None E Del Yocam 63 118San Jose CA Row color divider None HB urtis Wright 84 651Las Vegas illiam Woodward 26 602Brussels Cell colors Ron Wong 24 500Boston NY ARE Ron Wolf 25 432Minneapolis MN ELT OOFFFFFF my Wohl 62 771London Fill OOFFFFFF Robert Wiggins 75 296Jerusalem lair Whitmer 27 975Tapei Ta Cell offset oel Weiss 86 803Redmond WA Top 0 Peter Watkins 92 377Portland OR sono 0 ohn Warnock 95 805Milan eorge Voltz 60 843San Jose CA Left 0 teve Vollum 63 119Munich Right 0 Larry Tesler 39 933Santa Fe NM Michael Tchong 24 963Cupertino CA Cell border thickness effrey Tarter 65 115Denver co Top 0 Harry Sweere 60 111Boston MA BORO o Karen Sullivan 61 707Portland OR Michael Stern 28 716Brooklyn NY di Mitch Stein 26 078Portland OR Right 0 herwin Steffin 70 962Cupertino CA Martha Steffen 50 354Tapei Ta Cell border color teven Stansel 24 130San Jose CA Top OOFFFFFF David Smith 23 551Los A
340. this cell ALP Cell RightBorderColor v v V color Right border color ALP Cell RightBorderOffset v v V longint Right border offset in points ALP Cell RightBorderWidth v v V long int Right border width in points ALP Cell RightlconFlags v v V long int Offset width Horizontal position Vertical position Scaling Mask See the section on Icon Flags for more ALP Cell RightlconID v wv V long int Right icon ID see AL_Setlcon AreaList Pro Cell Properties Q p Properties by Theme Constant Get Set Per Type Default Min Max Comments Cell General Properties ALP Cell ScrollTo Viv n a If visible scroll the area to position this cell on the top left ALP_Cell_TopBorderColor viviwv color Top border color ALP Cell TopBorderOffset v v v longint Top border offset in points ALP Cell TopBorderWidth v v Vv longint Top border width in points ALP Cell Value viv Cell value depending on the column type ALP_Cell_XML viv text Full description of the cell options in XML This will return an empty value if no options have been set for the specified cell AreaList Pro Row Properties Cell Style Properties Constant Get Set Per Type Default Min Max 228 Properties by Theme Comments ALP_Cell_BackColor ALP Cell BaseLineShift v v sS sS S Cell Style Properties color real 100 256 Background color
341. ting the cell In addition the popup entry callback will run if there is a popup entry mode allowed but no popup array is defined In such case entry callback is called popup entry callback is called entry exit is called If the popup array map is defined entry callback is called the menu is shown using a dynamic popup menu or the internal Date Time popup entry exit is called See Example 3 Using a Popup Callback to create dynamic popups and Data Entry Controls for popup entry details In addition to altering the array content you can change color and style reject or accept entered data and change the current data entry cell using the AreaList Pro commands listed above You should not call any command which changes the number of displayed arrays their position in the area or their sorted order Executing a Callback Upon Entering a Cell As described above an entry started callback method is a 4th Dimension method called when data entry begins for a cell or an AreaList Pro popup menu is clicked and is specified by passing the method name in the ALP Area CallbackMethEntryStart property If this property is not set then no method will be called Parameters AreaList Pro will pass the callback method two parameters if arrays are being displayed or three parameters if fields are displayed m the first parameter is a long integer that corresponds to the AreaList Pro object on the layout m the second parameter is a lo
342. tion 3 Shift Tab AL Return key action 4 Return AL Shift Return key action 5 Shift Return AL GotoCell action 6 ALP Area EntryGotoCell and variants See Cell change properties AL SkipCell action 9 ALP Area EntrySkip AL Other cell popup action 10 Click on cell popup when cursor not already in cell AL Active cell popup action 11 Click on cell popup when cursor already in cell Popup menu entry The entry callback is also executed whenever a popup menu is clicked but before the menu is actually displayed When this occurs the 2 parameter provided by AreaList Pro will be 10 if the popup was clicked on a cell other than the one actively in data entry Mode 11 will be reported if data entry was already established in the cell for which the popup was clicked Field mode parameter The third parameter only exists when fields are displayed not arrays If the value is 1 then the record was loaded properly and the field contents can be edited If the third parameter is 0 then the record is locked by another process or user If typed data entry is underway and the record can not be loaded then ALP Area EntryGotoCell or ALP Area EntrySkip may be used to continue data entry in another cell If neither of these properties is used then data entry will end If popup data entry is underway and the record can not be loaded then data entry will end Executing a Callback Upon Leaving a Cell As described above an entry finished callback method is a 4
343. tion city array gt destination state array C LONGINT 6 destination row C_LONGINT error C_LONGINT i INSERT IN ARRAY 4 gt 6 Size of array aRows insert rows at the drop destination row INSERT IN ARRAY 5 gt 6 Size of array aRows ARRAY LONGINT aRowsToSelect Size of array aRows select dragged rows in destination area For i Size of array aRows 1 1 Il look backwards at each row selected by user aRows populated by event callback 4 gt 6 1 i 2 gt aRows i city 5 gt 6 1 i 3 gt aRows i state DELETE FROM ARRAY 2 gt aRows i delete source city DELETE FROM ARRAY 3 gt aRows i delete source state aRowsToSelect i 6 1 i End for AL SetAreaLongProperty 1 ALP_Area_UpdateData 0 update source area modified array size eDestination AL_GetAreaLongProperty 1 ALP Area DragDstArea destination area AL SetAreaLongProperty eDestination ALP Area UpdateData 0 update destination area modified array size Serror AL_SetObjects eDestination ALP Object Selection aRowsToSelect select new rows Serror AL_GetObjects eDestination ALP Object Selection aRows get the rows for evtUpdateText 2 F Example 10 Drag and drop between areas Tutorial Example 11 Determining a user s action The AL GetLastEvent function lets you find out exactly what actions the user has taken on an AreaList Pro area This example demonstrates how to use this useful feature
344. to each column so that it can be retrieved later Each column has a property for free use by the developer ALP Column UserText MylD My own custom text id for my column AL SetColumnTextProperty area columnID ALP Column UserText MyID AL GetColumnTextProperty area columnlD ALP Column UserText Column width tooltips An information tooltip is displayed when the modifier keys are pressed even though the ALP Area ShowWidths properties is set to zero This is 4D s tooltip not AreaList Pro s AL SetAreaLongProperty eLis ALP Area ShowWidths 1 AreaList Pro information Mobile Fayetteville c 1 w 350 aCity Little Rock AL SetAreaLongProperty eLis ALP Area ShowWidths 0 4D information Louisville name Variable2 E Miami top 115 left 40 width 450 height 115 variable eList Minneapolis Mobile AL ji F sss Columns Q Appendix II Troubleshooting and FAQs 281 Calculated columns am trying to use AL AddCalculatedColumn in an AreaList Pro area displaying 4D arrays but am getting a ALP Err InvalidPointerType error AL AddCalculatedColumn can be only used to set Calculated columns with AreaList Pro configured to display fields not arrays If you want to use calculated columns with arrays you need to set the ALP Column Calculated property to true 1 and specify the callback method name in the ALP Column Callback property
345. ton in the object bar MO mem Subform Fo Web Area 3 Your cursor will turn into a crosshair Draw a box on the form in the size that you want your list to be This will create a rectangular box named Plugin Area 4 In the Property List window choose AreaListPro from the Type popup menu If the AreaListPro option is not available please refer to the installing the plugin instructions 5 Enter a name for your new area in the Variable Name field in the Property List window 6 Your area will now show the AreaListPro version and copyright information Advanced Properties or Commands You now have a choice You can configure your list by using the easy to use point and click interface offered by the Advanced Properties dialog or you can use the AreaList Pro commands to control the list You can also use a combination of both methods The Advanced Properties dialog doesn t require you to write any code and is suitable for many projects However if you want to have more control over your list you can use the commands You can use both options together you might use the Advanced Properties dialog to do most of the configuration for a list and then apply some commands to add some additional programmable control When you do this the settings specified in the Advanced Properties dialog will be applied when the form is loaded and then the commands will be applied In the following sections we give a brie
346. ts In addition on Windows not only the scrollbars are bigger but the focus is drawn inside the AreaList Pro area Therefore the usable area is smaller by another 2 points If set the last visible column will be resized ALP Column Width to match the area size if there is enough space left When initializing an AreaList Pro area from previous versions advanced properties if all visible columns have a non zero fixed not automatic width and the sum of all column widths is equal to the area width minus 1 minus 16 if the vertical scrollbar is visible and the last column s width after adjustment is at least 5 points this property will be set to true The ALP Row Hide and ALP Object RowHide properties allow hiding of individual rows Calculated columns in array mode Calculated columns are available in both field and array display modes See Calculated Columns Upgrading from Previous Versions of AreaList Pro Tutorial The following examples illustrate how to use AreaList Pro You can find them all in the Examples database Example 1 Loading an array from 40 Tutorial a 4D list In this example a 4D list is loaded into an array and displayed in an AreaList Pro area with some formatting applied When the user clicks on a row its contents are copied into a variable called vitem and displayed below the AreaList Pro area First we create a new AreaList Pro area on a form
347. ts own palette It contains the following colors White Green Black Blue Magenta Yellow Red Gray Cyan Light Gray DisplayList Commands Q As DisplayList SetListHdrColor ForeColor1 ForeColor2 BackColor1 BackColor2 Parameter Type Description ForeColor1 string Foreground color from DisplayList s palette gt ForeColor2 integer Foreground color from 4D s palette gt BackColor1 string Background color from DisplayList s palette gt BackColor2 integer Background color from 4D s palette SetListHdrColor is used to set the colors for the header area SetListDividers ColDividerPattern ColDividerColor1 ColDividerColor2 RowDividerPattern RowDividerColor1 RowDividerColor2 Parameter Type Description gt ColDividerPattern string pattern of the column divider gt ColDividerColor1 string color from DisplayList s palette for the column divider gt ColDividerColor2 integer color from 4D s palette for the column divider RowDividerPattern string pattern of the row divider gt RowDividerColor1 string color from DisplayList s palette for the row divider gt RowDividerColor2 integer color from 4D s palette for the row divider SetListDividers is used to set the pattern and the color of the column and row dividers Patterns are no longer supported They are interpreted by AreaList Pro version 9 as transparency ratios See Patterns SetListLine line number Parameter Type
348. ty defaults to Sort Options or its translation from the ALP xIf file located in the localized subfolder of the Resources folder in the AreaList Pro bundle ALP Area UserSort Y long int AreaList Pro Column Properties Use these constants with commands in the Columns command theme AL GetColumnLongProperty AL GetColumnPtrProperty AL GetColumnRealProperty AL GetColumnTextProperty AL SetColumnLongProperty AL SetColumnPtrProperty AL SetColumnRealProperty AL SetColumnTextProperty Sort by user 0 7 disabled 1 enabled 2 bypassed 3 only indexed fields For some of the Column properties mainly style properties you can use 0 as the Column Number to accessing the default values for newly created or re initialized columns If the Column Number is 2 the property will be applied to all existing columns from 1 to ALP_Area_Columns AreaList Pro Area Properties AreaList Pro Column Properties Q p Properties by Theme Column General Properties Constant Get Set Per Type Default Min Max Comments Column General Properties ALP Column Attributed vv v bool false 0 Uses attributed multi style text 0 no 1 yes See also AreaList Pro Text Style Tags ALP Column CalcHeight v v v bool false 0 Automatically set row height based on data in this column Row heights are fixed when ALP Area NumRowLines is non zero Otherwise the row heigh is deter
349. u or create it from text AL_SetColumnTextProperty exALP 3 ALP_Column_PopupMap Area Char 3 Column Char 3 Row Char 3 Cell Char 3 Char 3 AreaObject Char 3 DropArea Note a 4D menu created by AreaList Pro belongs to AreaList Pro AreaList Pro will release it It is accessible using AL GetColumnTextProperty exALP 3 ALP Column PopupMenu And then just use that menu AL SetColumnLongProperty exALP 3 ALP Column DisplayControl 3 column shows popup values instead of direct values AL SetColumnLongProperty exALP 3 ALP Column Enterable AL Column entry popup only allow entry using popup Value Mapping Q Command Reference 165 Commands by Theme Using the Command Reference Each AreaList Pro command is described in detail in this section Each description contains the following elements Parameters Result AL AddColumn AreaRef L DataPointer Z InsertAt L gt result L Descriptions of the parameters Parameter Type Description gt AreaRef longint Reference of AreaList Pro object on layout gt DataPointer pointer When in Records mode DataPointer should be a pointer to field When in Arrays mode DataPointer should be a pointer to an array must not be a local array gt InsertAt longint Position at which to insert a column 0 means add to the end result longint A description of this command Add a column at the specified position
350. u may want to revert back to the original column widths in case the user does not like their adjustements However is it not possible to get the original width values as were passed to AreaList Pro after the user has adjusted the columns widths You have to get the widths after you initialize the AreaList Pro area and before the user is able to make changes i e in the On Load phase ARRAY REAL alSavedWidths 0 note that we are using a real type array err AL_GetObjects area ALP Object ColumnWidthUser alSavedWidths Then you can eventually reset all widths to the original settings err AL_SetObjects area ALP Object ColumnWidthUser alSavedWidths If the advanced properties are used you can also access their original settings xmlAP AL_GetAreaTextProperty area ALP Area XMLAP and reset the whole AreaList Pro area err AL_Load area xmlAP This will of course reset everything not only column widths Column wider than the visible area If you leave the width setting to 0 the column that holds the text may be wider than the visible area This is a feature You can limit it to the visible width when you switch horizontal scrolling to columns mode AL SetAreaLongProperty SeList ALP Area ScrollColumns 1 Displaying column widths Previous versions used to display column widths in the headers when clicking on a X button located at the area s lower right corner AreaList Pro v9 does
351. ubSelect Obsolete AL SetWinLimits Obsolete delete it Picture Escape Codes Picture escape codes were mostly used to display controls checkboxes when Boolean fields arrays were displayed However AreaList Pro version 9 has the ALP Column DisplayControl property and can display native controls as well as custom pictures in the list so it makes this use of picture escape codes obsolete Pictures The handling of pictures has changed in AreaList Pro version 9 m Icons PICTs and cicn from the resource fork are not supported m The old call AL SetHeaderlcon is not supported m Picture escape codes are not supported m AL_SetCelllcon now only supports pictures from the Picture Library cicn and PICT resources are no longer supported There is a new mechanism for displaying icons images either in a list or in headers The new properties are m ALP Cell LeftlconID m ALP Cell LeftlconFlags m ALP Cell RightlconID m ALP Cell RightlconFlags For more information about using these properties please see the Pictures section Upgrading from Previous Versions of AreaList Pro e Getting Started with AreaList Pro Registering AreaList Pro The AL Register command takes just one parameter and it returns 0 for OK and an integer between 1 and 12 if not OK Mutliple calls are allowed There is a list of the registration error codes and their meanings here Spelling Checker The spelling check function is no longe
352. ue as above but then AL SetAreaLongProperty area ALP_Area_ClearCache row refresh the row Do not forget that from AreaList Pro s side the area is just editing a record in the MyTable table and when it ends editing it saves the edited values into the database This means that you should not change or save any record while edited in AreaList Pro On the other hand if you change data in any non AreaList Pro currently edited table e g related you obviously have to load modify and save the record with 4D Checkboxes Checkboxes can be used to enter and display boolean values In addition the ALP_Column_EntryControl property set to 1 will display checkboxes with title There is one and only one condition for this setting to be used when entry is started for a boolean column not displaying checkboxes ALP_Column_DisplayControl is 1 formatted values and ALP_Column_EntryControl is set to 1 checkbox with title In this case a checkbox control with title is displayed in the cell for entry The title is the True label of ALP_Column_Format or defaults to ALP_Area_DefFmtBoolean if previously set Example AL_SetColumnTextProperty area column ALP_Column_Format Yes No True False AL SetColumnLongProperty area column ALP_Column_DisplayControl 1 formatted AL SetColumnLongProperty area column ALP Column EntryControl 1 checkbox with title You can also set up 3 states
353. umns are not sortable a click in header is ignored if you don t bypass the internal sorting In this case you can get the clicked column sort the selection and then set the actual sort order And yes setting a calculated column as a sorted column is allowed Use ALP Area SortListNS to mark the column as sorted and display the sort indicator in the header Your code might look like this Form event On Plug in Area event AL GetAreaLongProperty Self ALP Area AlpEvent If Sevent AL Sort button event If AL GetAreaLongProperty Self 2 ALP Area ClickedCol 2 Column to sort is 2 AL SetAreaLongProperty Self 2 ALP Area ClearCache 2 Update all rows colToSort AL_GetAreaLongProperty Self gt ALP_Area_SortList If Abs colToSort clickedCol colToSort colToSort Else colToSort 2 End if AL_SetAreaLongProperty Self gt ALP_Area_SortListNS colToSort If colToSort 0 ORDER BY Order Order FieldToSortOn gt Else ORDER BY Order Order FieldToSortOn lt End if End if End if Here is another way make AreaList Pro to bypass the internal sorting by setting ALP_Area_UserSort to AL User sort bypass AL_SetAreaLongProperty Self gt ALP_Area_UserSort AL User sort bypass In this case calculated columns are allowed the click in header is not ignored but you must handle all the sorting yourself When you get the AL Sort button event ask for the clicked column includi
354. ur 4D serial number is 128733272 Coco om C Register Cox E Using the Register button Clicking on this button will display a standard 4D request to enter your registration key A Please enter your registration license key Paste or drag and drop your registration key and if correct the plug in will be registered for all future uses on this workstation AreaList Pro 9 is now registered Note if 4D does not activate the Edit gt Paste menu item click Abort and Register again AA Registering your AreaList Pro License Installation 18 Registering Server licenses Similarly server licenses can be registered from the demonstration mode dialog without having to modify your code and use AL Register which of course you can do with any license type In this case the 4D Licenses folder serial information or machine ID used will only be the 4D Server information not the client workstation s Server licenses can be registered on any client workstation remote mode or on 4D Server itself Registering in Remote mode The server and all workstations can be registered from any single client workstation connected to the server As in Single user mode the Demo mode dialog will be displayed on a client workstation when one of the following conditions are met m Calling an AreaList Pro command other that AL Register with a non empty parameter m Calling AL Register with an empty
355. ur machine or motherboard is replaced a new license will be supplied for free in this case provided that your previous license match the current public version at the exchange time or if you install a paid upgrade of the plugin Note if you are using several concurrent versions of 4D you will need one plugin license for each version Dc iiit SSS Licensing 14 Installation License types m Single user This license allows development interpreted mode or deployment interpreted or compiled mode including merged of applications that are opened with 4D Standalone or 4D SQL Desktop or built with 4D Volume Desktop m Server These licenses allow development interpreted mode or deployment interpreted or compiled mode including merged servers remotes on 4D Server with up to 10 users small server 11 to 20 users medium server or more large server m Unlimited Single User This license allows development interpreted mode or deployment interpreted or compiled mode including merged on any number of 4D Standalone or single user merged applications built with 4D Volume Desktop that run your 4D application s It is a yearly license which expires after the date when it is to be renewed Expiration only affects interpreted mode Compiled applications using an obsolete license will never expire A single license key will unlock all setups on all compatible 4D versions and all v
356. used by row cell To avoid this effect instead of setting a font size to all rows cells apply the style to the columns row height will be correct and it will be faster Scrolling p Appendix II Troubleshooting and FAQs Drag and Drop Row dragging in cell selection mode Row dragging doesn t work Check the selection mode row dragging isn t enabled when an AreaList Pro object is in cell selection mode To set the selection mode use the ALP Area SelType property of AL SetAreaLongProperty for example AL SetAreaLongProperty area ALP Area SelType 0 selection mode rows Dragging a row from another area If you drag a row from another AreaList Pro area and release below the bottom existing row AL GetAreaLongProperty with ALP Area DragDstRow will return the last existing row Is there a simple way to determine that the new row has been dropped below the last existing row so can properly append it to the list rather than inserting above the last existing row This behaviour is compatible with versions 8 x Dragging onto a row means just that drag onto an existing row Yes you can drop a row onto the empty area below the last row you can also drop data into an empty AreaList Pro area without any rows but the last row is reported as the destination You can set the area to insert mode AL SetAreaLongProperty Sarea ALP Area DragRowOnto 0x0 In this case it will work as you expect
357. utomatically on Update event ALP Area Rows v long int Current number of rows ALP Area TablelD vv v longint 0 Main table number Zero when showing arrays gt 0 when showing fields ALP Area UpdateData v Clear cells cache check for selection size change fill cells cache AreaList Pro Area Properties AreaList Pro Area Display Properties Constant Get Set Per Type Default Min Max 201 Properties by Theme Comments AreaList Pro Area Display Propert ies ALP Area AltRowColor v color FFEEEEEE Alternate row color default is light gray ALP_Area_AltRowOptions v long int 0 15 Alternate row coloring options bit 0 1 enable 0 disable bit 1 1 apply ALP_Area_AltRowColor to even rows 0 apply to odd rows bit 2 1 alt color applies to empty space below the last row if any bit 3 O default use the existing color when defined at cell or row level instead of alternate color for alternate rows column color is ignored 1 mix the alternate color with the existing color set for the cell row column in this order ALP_Area_BottomRow long int The row number of the last possibly partially visible row on screen ALP_Area_CalcAllRows long int Calculate column width from all rows 0 no 1 yes AreaList Pro 8 x mode only text longest text no support for attributed text amp pictures widest picture
358. ux ened etx een Rae doo qn eee eee hae eee e 158 Using a picture from a field or variable 1 1 ee 159 Using a picture from the 4D Picture Library llle II 159 Displaying custom checkboxes using pictures leen 159 Flags ett O ER Vae ees oS See eRe unte As 159 Examples ied eV eee Ow Rate Uo ere pT etus ow EER ake e SERE dos Pe Nanc bU 160 Alignment and offset 24s sess a dee Ren ko eee gue x XE Remum Oa er X X E RR E ee Re 161 Displaying custom pictures instead of AreaList Pro s native icons ssl 162 Setting CUSIONVIECONS s s uera tet Ey E Rob Ob IESU bruit 162 intemal icon IDs and VIAS vespa a 162 Value Mapping sess estes 20 cae Kose rD ee RT eS a EE ERE ae RE ERE 163 Example 1 Mapping using 4D s menu slsllel ees 163 Example 2 Mapping using PopupArray PopupMap sssse ees 164 Commands by Theme 165 Table of Contents 7 Q 8 Contents Using the Command Reference 22340 29 9 rs Hee d ob gne Me a Oe aras 165 Name orthe command tii a dee Sha et Med fe o aa Car 166 Parameters 245294844 aed ated cee padded ied Sok bh eee uH OX Rex Ku eee ee 166 E ea Ea E a A E a E E E E E A 166 Parameter Descriptioris s aires kasai at a Us I AOE TEE eee ee 167 Command DESChPUON areires eae g ee AR a B IC CRAS 167 Examples to pa e e oe Gna a ae nein a E OR EE Ru E GEN 167 Command Tliemes uli eR RU Gee hee Re bee ene op ae RE ER EE le eon ee Rex 167 Din T CCP aio Di Gee eng tn heap ane eae 16
359. value you want to set If the Count parameters are omitted only cell at coordinates Row Column will be set Otherwise RowCount x ColumnCount cells will be set starting at the cell at coordinates Row Column Example To set the color of the text in cell 1 3 to blue C_TEXT color color Blue Serr AL_SetCellPtrProperty area 1 3 ALP_Cell_TextColor gt color Note for more information on how to specify colors see the Working with Colors section Cells Qs Command Reference AL SetCellRealProperty AreaRef L Row L Column L Property T Value R RowCount L ColumnCount L Parameter Type Description gt AreaRef longint Reference of AreaList Pro object on layout gt Row longint The number of the row for which to set the property gt Column longint The number of the column for which to set the property gt Property text The property to set gt Value real Value to pass to the function real number gt RowCount longint Number of rows to set starting at Row optional gt ColumnCount longint Number of columns to set starting at Column optional Set a specific Property for a cell or several cells The properties that you can set with this command are the ones of type real listed in the AreaList Pro Cell Properties theme If the Count parameters are omitted only cell at coordinates Row Column will be set Otherwise RowCount x ColumnCount cells will be
360. w span End for aiGrid 1 1 1 column number aiGrid 1 2 4 column number aiGrid 1 3 2 column number aiGrid 1 5 3 column number aiGrid 3 2 3 line span Description spans 3 lines 5 Create the grid AL SetAreaLongProperty area ALP Area ColslInGrid 2 err AL_SetObjects area ALP Object Grid aiGrid 6 Do a bit of formatting AL SetAreaLongProperty area ALP Area AltRowOptions 1 alternate row background zebra style AL SetAreaLongProperty area ALP_Area_ShowFooters 0 don t show footers AL SetAreaLongProperty area ALP Area SelMultiple 1 select multiple rows AL SetAreaLongProperty area ALP Area AllowSortEditor 1 allow sort editor AL SetColumnLongProperty area 4 ALP_Column_Wrap 1 4th column wraps long text AL SetAreaLongProperty area ALP Area ShowRowbDividers 1 show row dividers AL SetAreaLongProperty area ALP Area NumRowLines 0 variable row height AL SetAreaLongProperty area ALP Area EntryClick 2 enterable by double click Grids Q Advanced Topics 152 Re ordering Rows in a Grid You can allow users to re order the rows in a grid using drag and drop but you need to manage the re displaying of the grid after a row has been moved Grid Properties Following is a list of the properties specifically for use with grids Area Properties These properties are used with the commands in the Area theme Grid cell numbers start at 1 an
361. width 00 107 108 280 Column widths 00 107 108 Compatibility css oe eee ee e 12 Compatibility mode 31 35 70 82 83 105 107 109 141 148 198 213 237 271 272 279 284 Compatibility Mode o o oooooo 31 Compilers satya eor uve t tae on deo unes 266 COPYING xc ace ce RR Rm Rex y Re GR em does 30 Custom checkboxes 71 135 216 Index Custom pictures 2 200 162 195 Customsstyles i2 deed teva ein dhe tere ed 89 Data checking 0 0 0 c eee eee 250 Data Enthy i 2200 Da RD Sis hie dees 68 Data entry controls 98 134 Data updating lees 250 Date cue Eb E ER Oe x 162 Date controls iux x ERE XR RR ed x 135 Date Formatting 0 00 eee eee 64 Dates i22cbiiebenir peDpbre ave d Dp RES 90 Debuggef x serere cene Pc RE 90 Decimal separator re Eg 221 Default column sso 125 Demonstration mode siiis sess 16 Display arrays or fields 24 DisplayList 72 98 124 134 239 247 250 252 266 Drag and drop 35 52 53 54 55 56 98 134 140 270 271 Drag and Drop 0 eee eee 270 Drag drop 2i muscis ideas dee 284 Dragging x nz exo Rak eek RR 30 270 Dragging doesn t work 04 270 Dynamic popups lisse 98 102 Dynamic row height 83 266 279 E Index Edit miens ooo uo a E 274 Elli
362. ws bit 0 1 m 3 use alternate coloring for odd rows bits O and 1 1 m 5 use alternate coloring for even rows including empty space below last data row bits O and 2 1 m 7 use alternate coloring for odd rows including empty space below last data row bits O 1 and 2 1 The empty space below last data row refers to the area between the last row and the footer horizontal scrollbar bottom of the AreaList Pro area where a click or a rollover reports 2 using ALP Area ClickedRow or ALP Area RollOverRow See Row Numbering Combining Alt Row color with Background color When bit 3 is set to true 1 in ALP Area AltRowOptions the cell s background color is first set as defined from cell row or column settings in that order then combined with the alternate row color in case this other color is defined See ALP Area AltRowOptions The result for alternate rows will be a blend of both specific and alternate colors 1st Quarter 3 543 197 898 96 877 45 334 496 987 34875 639694 45350 819107 3rd Quarter Row Coloring Options Q p Working with Colors Coloring Cell Sections Summary Here are the various parts of the cell which can be individually set colored Column dividers u Right border Row dividers Bottom border Fill color Left border Background color Example To illustrate the various cell sections
363. xt text Area deselected callback method area Edit menu callback function area event gt long flags See the list of the Edit menu constants Event callback function area alpEvt event4D column row modifiers ALP Area CallbackMethSelect NS sS text Area selected callback method area ALP Area ToolTip EE ene Properties to use with Callbacks text Tool Tip text To be set from the event callback function 96 Q Using the Callback Methods Column Property Use this property with commands in the Columns theme Constant Get Set Per Type Default Min Max Comments Callback method for a calculated column area column type ptr first count If the AreaList Pro area displays several calculated columns the callback methods will be called in the column number order ALP Column Callback Setting up a Callback There are two things you need to do in order to use a callback method 1 Create a method to execute the callback 2 Set the callback method s for the area This is done by calling AL SetAreaTextProperty with one of the callback properties and the name of the callback method For example to set up a callback that will execute when data entry is initiated use the ALP Area CallbackMethEntryStart property AL SetAreaTextProperty myALPArea ALP Area CallbackMethEntryStart EntryCallback If you are using the Advanced Properties dialog to
364. xtProperty ProductList ALP_Area_CallbackMethOnEvent AlpEventCallback End case Drag and Drop Q pu Advanced Topics This code can go either on the object method or in the form method Add some code to the On Drop event section of the AreaList Pro object method Case of Form event On drop DRAG AND DROP PROPERTIES srcObject srcElement srcProcess dragSource AL_GetAreaLongProperty area ALP_Area_DragSrcArea If SdragSource 0 not an AreaList Pro area If Nil SsrcObject external source GET PASTEBOARD DATA com 4d private file url data gets file pathname If OK 1 PLATFORM PROPERTIES platform If Splatform Windows LineDelimit Char 10 Else LineDelimit Char 13 End if path Get file from pasteboard 1 first file FileType Document type path If SFileType txt FileType text SET CHANNEL 10 path open the file While OK 1 file opened OK amp more data to receive RECEIVE PACKET tdata LineDelimit get one row ARRAY TEXT atVals 0 explode idata 9 gt atVals parse the text into the array see below If Size of array atVals 5 APPEND TO ARRAY atName Replace string atVals 1 Char 34 APPEND TO ARRAY atCode atVals 2 APPEND TO ARRAY atType atVals 3 APPEND TO ARRAY atDesc Replace string atVals 4 Char 34 APPEND TO ARRAY arWprice Num atVals 5 End if End while SET CHANNEL 11 close the file SORT ARRAY atName atCode atType atDesc arWprice AL_SetAreaL
365. y 61 154 156 190 ALP Object Selection 51 56 188 ALProEVt ceci cerea reret oe eee dee ed be 284 ALP_Row_FontName 0 180 ALP_Row_Height 179 ALP_Row_HorizontalScale 180 ALP_Row_Parent 00005 179 ALP ROW SIZE s ie b Peak deed 182 ALP Row StyleF ne em 28 ena tee dodge 182 ALP_Row_TextColor 00005 183 AL_Register Index 288 AL RemoveColumn selle 172 AL S8VG buchen eden daria 106 194 AL_SetAreaPtrProperty 0 173 AL SetAreaRealProperty 173 AL_SetAreaTextProperty 174 AL_SetCellLongProperty 185 AL SetCellPtrProperty o ooo o 186 AL_SetCellRealProperty 187 AL SetCellTextProperty 187 AL SetColumnLongProperty 177 AL SetColumnProperty 189 229 AL SetColumnPtrProperty 164 177 AL_SetColumnRealProperty 177 AL SetColumnTextProperty 163 178 AL_Setloon 00200085 159 162 194 AL SetObjects x cure e ce A SUR 189 AL SetObjects2 00 189 229 AL_SetRowLongProperty 181 AL_SetRowPtrProperty 004 182 AL SetRowRealProperty 183 AL_SetRowTextProperty 0 183 AL Sort button event 00000 77 AL
366. y eaRecList O ALP Column Attributed 1 because all columns in all areas created after this call will be multi styled causing unnecessary processing Undefined Value Different array sizes What it this Undefined Value that is displayed at the bottom of some columns Make sure all arrays are evenly sized This means that some arrays are larger than others In this case previous AreaList Pro versions used to show the minimum row count present in all arrays AreaList Pro version 9 uses the maximum number largest array size including invisible columns Smaller arrays will display Undefined Value for any missing items array elements Columns Q Appendix II Troubleshooting and FAQs 282 Events Selecting rows during the On load event When try to select all the rows of an area during the On Load event of an form nothing happens solved it with a timer but this is not OK This may happen if the selection is empty during On Load and is modified afterwards Setting ALP Object Selection won t operate because AreaList Pro has no rows When a Form is displayed m AreaList Pro is called to initialize m If there are valid Advanced Properties AreaList Pro is initialized from them columns are added etc m The number of rows is detected from the current selection this is always done when adding the first column even in arrays mode and not only when Advanced Properties are used m Form and O
367. y during grid creation Number of columns rows in grid I tried ALP Area ColsInGrid but that returned 1 for every area ALP Area ColsinGrid defaults to 1 which means all columns This property returns 1 for every area regardless of the compatibility mode as long as it is not changed explicitly When set ALP Area RowslnGrid AreaList Pro threw an error when passed 1 Default value for ALP Area ColsInGrid is 1 meaning unlimited all columns Default value for ALP Area RowslnGrid is 1 meaning all columns in one row You can t have 1 rows displayed You can safely set it to 1 single row Setting it to zero means use as many rows as needed to show all visible columns in ALP Area ColslnGrid columns But when ALP Area ColsInGrid is 1 at the same time it effectively means use one row for all columns The order of precedence is ALP Area RowslnGrid if the value gt 1 ALP Area ColsInGrid if the value gt 1 otherwise all columns in one row Grids o Appendix II Troubleshooting and FAQs Lost grid I m having a problem when go to restore the columns back to the default arrangement Somehow the grid order is being lost Yes the grid is lost cleared when m a column is added m a column is removed m a column s visibility is modified m ALP Area RowslnGrid is set does not have to be modified m ALP Area ColslnGrid is set does not have to be mo
368. y value is needed ALP Row XML vv text Full description of the row in XML Note XML does not contain Style use ALP Row StyleXML for that Row Hierarchy Properties Constant Get Set Per Type Default Min Max Comments Row Hierarchy Properties ALP Row Collapse Viv bool Collapse this row all children will be invisible ALP_Row_CollapseAll v bool Deep collapse collapse this row and all its children all children will be invisible and collapsed ALP Row Expand v wv bool Show children of this row If any child was not collapsed more levels will be visible ALP Row ExpandAIll v bool Deep expand show children of this row and all children all children will be visible and fully expanded ALP Row Level v long int Returns the level associated with this row set using ALP Object Hierarchy ALP Row Parent v long int Returns the immediate parent of this row zero if this row is at the top level ALP Row Visible v bool Returns whether this row is visible all parents of this row are expanded This has nothing to do with real visibility on Screen but with the expanded state of all parents AreaList Pro Row Properties Row Style Properties 224 Properties by Theme Constant Get Set Per Type Default Min Max Comments Row Style Properties ALP_Row_BackColor v v v color Background color ALP Row BaseLineShift vv W real 100 256 Baseline shift ALP
369. you can place a plain text file into your 4D Licenses folder or use the Demo mode dialog Register button This is only valid for non unlimited licenses Basic example C LONGINT result Sresult AL_ Register YourRegistrationKey Case of result 2 ALERT The AreaList Pro licence is invalid result 3 ALERT The AreaList Pro licence has expired etc End case Example with multiple calls C_LONGINT result ignored in this case Sresult AL_Register Registration key one Sresult AL_Register Registration key two Sresult AL_Register Registration key three etc If Sresult 0 registration failed on all keys ALERT AreaList Pro could not be registered End if Force check example In this example we assume that only Registration key two is valid but you want to check the other keys status C LONGINT result result AL Register Registration key one 1 invalid will return an error the plugin isn t registered result AL Register Registration key two 1 valid will return O the plugin is registered result AL Register Registration key three 1 invalid will return an error the plugin is still registered Utility 193 Q Command Reference Online registration examples Confirm connection alert if successful alert if failed send email notification to developer 4dchampions com C_LONGINT result result AL Register Master key 0 1 2 3 developer 4dcham
370. you need Chocolate Made with full fat organic milk Milk Chocolate 2 75 Chocolate The chocolate purist might argue that it s not White chocolate really chocolate but who cares 2 5 Nuts An assortment of peanuts cashew nuts etc Nuts Supplied in a decorative blue and red tin 2 25 In this example there are four fields Type Name Price and Description displayed in two columns with the data in the second column the Description spanning three rows like an HTML table See the Grid section for more information and instructions on how to use this feature Upgrading from Previous Versions of AreaList Pro e Getting Started with AreaList Pro Hierarchical lists AreaList Pro version 9 is capable of displaying a Finder like hierarchical list This is implemented by setting a level offset to the right and state collapsed or expanded for each row For more details on this feature see the Hierarchical Lists topic Multi styled text AreaList Pro supports the multi styled text feature of 4D v12 When 4D passes multi styled text to AreaList Pro it should be displayed correctly if the ALP Column Attributed option has been set If this option is set special tags can also be used in any text contained in an AreaList Pro area to display styled characters See AreaList Pro Text Style Tags Native drawing of text AreaList Pro uses CoreText on Mac and GDI on Windows Only fonts and font faces suppor
371. ype go True Case of product product_type chocolate pop tPopChoc array gt atChocsizes product product_type nuts pop tPopNuts array gt atNutsizes Else go False End case If go choice Pop up menu pop If Schoice gt 0 AL_SetAreaTextProperty 1 ALP_Area_EntryValue array gt choice 0 True End if End if Examples Q Using the Callback Methods When the user clicks on the Pack Size popup icon he will see this popup if the product type is chocolate Product Type Chocolate Dark Chocolate Chocolate Milk Chocolate Chocolate White chocolate Nuts Cashew Nuts ft This one if it s Nuts Nuts Cashew Nuts TU Nuts Nuts 1 Toffee Walter s Originals 180 and this one if it s Toffee because we forgot to set up the array for Toffee Nuts Cashew Nuts Roasted and salted ci Nuts Nuts An assortment of pez Toffee Walter s Originals b No items in this menu See also Entering data in AreaList Pro with DisplayList Columns Columns This chapter presents various column related topics such as numbering order moving widths columns hiding and setting calculated columns Compatibility mode Here are the compatibility mode differences in AreaList Pro version 9 regarding column behavior Compatible mode on When ALP Area Compatibility is set to 1 m the visibility of columns ALP Column Visible is always reset before
372. ype Description gt AreaRef longint Reference of AreaList Pro object on layout gt Row longint Number of row for which to get the details gt Property text The property to get result real Value of the got property Get details of a Row s real Property Example To get row 2 s horizontal scale C_REAL scale scale AL_GetRowRealProperty area 2 ALP_Row_HorizontalScale AL_GetRowTextProperty AreaRef L Row L Property T gt result T Parameter Type Description gt AreaRef longint Reference of AreaList Pro object on layout gt Row longint Number of row for which to get the details gt Property text The property to get result text Value of the got property Get details of a Row s text Property Example To get the name of the font for row 2 C_TEXT font font AL_GetRowTextProperty area 2 ALP_Row_FontName Rows Q Command Reference AL ModifyArrays AreaRef L Selector L Row L Count L gt result L Parameter Type Description gt AreaRef longint Reference of AreaList Pro object on layout gt Selector longint Action to perform gt Row longint Position where insert or delete occurred or should occur gt Count longint Number of rows to insert or delete starting at Row Insert or delete a number of rows array elements at the specified position or inform AreaList Pro that a number of elements have been inserted or deleted
373. zo eee dead eee dee 19 Index Mapping iii dt Meds 164 Masterkey ci isses pe cea 20 Merged tic bene gae peek gue Xu Reo 18 Merged licenses 220002000055 14 Modiflersie i2 rr ahead bee ee ee ee 68 Multi row selection llle 45 Multi style ci cteed tbe 4b Runde cbe RR 281 N New API asia uc er xor EE Re oe ER S 33 Nullidate circa RE 90 Number of columns in grid 272 0 DEM dr Race ee eae Eurus ee doe 15 On DEOD iine equ iei Mids pond 142 143 Online registration llle sess 20 Onload ue ck pei Re eed ee 282 P Parameter Descriptions 166 Parameters 2 cc eccerGeced ows eed oes 166 266 Partner ii cuc a i os dee 15 Password pecan dae X aspe Ya eee 72 Pattes x5 exe n ER aia UE ee 123 231 Picture libraty csse e RR Ry Rx 195 Pictures ocurre 158 159 160 161 162 Index Popp sce Soo tended Qe or p das 72 162 285 Popup Callback oooo o oo 98 102 Popup date control llle 136 Popup entry in specific cells 74 Popup menus ise Re RR 138 274 POPUPS epo ii pud cet rece BUR mae Rind 195 Popups dynamic coco 102 PRIMUNG 2 rt ees ote ee ere eee ee See 174 Properti s ico err En p es 28 276 Properties setters types 0 276 R col e 276 Refresh commands 000 0000 251 Register cse b ex bb e dies 17 Registering Server licenses 18 Regulaf licenses vicios anlem Pee ees 1

Download Pdf Manuals

image

Related Search

Related Contents

SAUTER flexotron800 V2 Ventilation V3.3    Funzione BLOWER  Technical Record TR-710 COG-95  Philips Daily Collection Coupling unit CRP534  Buffalo Tools CME35 Music Mixer User Manual  Samsung 2233RZ Korisničko uputstvo  Exhibitor Services Manual and Shipping Information  Manual del Operador Copiadora digital  

Copyright © All rights reserved.
Failed to retrieve file