Home
        AreaList Pro manual - e-Node
         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
 
 
    
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