News in version
TreeGrid Gantt chart SpreadSheet Examples Documentation Download Development Licensing Prices References Contacts Buy Try it free
Live examples
Grids and tree grids

Complex grid - the first one Complex grid - RTL mode Large table with paging Large table without paging Multiline & images - books Positions and spanning Photo album - images PivotTable - 2D grouping Schools - list and ratings File and directory browser Extended JavaScript API Sharing & synchronization 1 000 000 rows, 1 000 cols

Sheets

Microsoft Excel sheet TreeGrid sheet TreeGrid sheet - RTL mode

Gantt and bar charts

Gantt & Network chart Gantt & Network chart - RTL Simple Gantt chart Big Gantt chart - 1000 rows Gantt chart tree by grouping Resources usage chart Run chart - bar chart Grouping bars - run groups Joined boxes and containers Line chart and XY charts

Live grid tutorials
Basic (rows and columns)

1. Basic grid 2. Rows 3. Columns 4. Default rows, columns 5. Rows manipulation 6. Rows identification

Cells (types, formats, edit)

1. Edits - inputs & multiline 2. Combos & checkboxes 3. Html, links, imgs, buttons 4. Space buttons & tabs 5. Permissions & validation 6. Cell CSS style & color 7. Conditional formatting 8. Custom controls & editing 9. Events & custom dialogs 10. Column & row spanning 11. Dynamic cell spanning

Tree (rows, columns, groups)

1. Row tree 2. Column tree 3. Grouping rows to tree

Sorting rows

1. Sorting rows

Filter and search

1. Filtering rows 2. Filtering in tree 3. Search & advanced filters

Dragging

1. Dragging rows 2. Dragging between grids 3. Dragging external tag

Paging (rows, tree, columns)

1. Client root paging 2. Client child paging 3. Client column paging 4. All client paging 5. Adding pages dynamically 6. Server root paging 7. Server child paging 8. All server paging

Master and detail

1. Nested detail simple 2. Nested detail tables 3. Master detail simple 4. Master detail tables 5. Master detail more tables 6. Master detail in tree 7. Master detail trees 8. Nested detail nested deep 9. Nested detail server paging

Calculations (cell formulas)

1. Calculated columns 2. Calculated rows 3. Calculation order 4. Calculated rows in tree 5. Calculation order in tree 6. Calculated attributes 7. Editable calculated cells

Live Sheet tutorials
Sheet features

1. Row and column Index 2. Auto size (auto adding pages) 3. Row&column manipulation 4. Cell manipulation 5. Cell style 6. Editable formulas (ids) 7. Editable formulas (indexes) 8. Cell format 9. Outside edit 10. Auto tree

Live Gantt tutorials
Main bar (Gantt chart)

1. Main bar 2. Discrete main bar 3. Main bar plans 4. Summary tasks

Run bar (Bar chart)

1. Run array definition 2. Run JSON definition 3. Run summary definition 4. Run drag 5. Run groups & API 6. Run bar as task 7. Run box as task 8. Network diagram 9. Run join and drag 10. Run external drag 11. 2 fixed levels containers

Flags and points

1. Flags 2. Points

Display, zoom, paging

1. Header & background 2. Zoom 3. Paging 4. Synchronizing more Gantts

Dependencies & scheduling

1. Constraints 2. Dependencies 3. Schedule tasks 4. Critical path

Calendars

1. Calendars exclude

Resources

1. Resources 2. Availability

7. Editable formulas - relative references

Entering formulas into cells using relative or absolute cell references by row and column index

  • Definition


    To permit entering formula into cell set <Cfg

    FormulaEditing

    ='1'/>.
    To restrict entering the formula to particular column, row or cell set its attribute FormulaCanEdit='0'.
  • The formula can be entered if started by '

    =

    '. The formula prefix character can be changed by <Lang><Format FormulaPrefix='='/></Lang>.
  • Relative references


    This example uses relative references by row index and column index. It is set by <Cfg> attribute

    FormulaRelative

    ='1'.
    In the formulas there can be addressed any the grid cell as column Index + row Index. The order can be changed by <Cfg> FormulaNames attribute.
    • The row and columns change their index whenever they or previous items are moved, deleted or added.
      All formulas (both absolute and relative) are updated accordingly after any Index change to refer still the same original rows and columns.
    • If relative formula is copied, it changes for the difference between indexes in old and new location. So the relative formula (without $) refers the new destination location.
      If absolute formula is copied, it never changes. So the absolute formula (with $) refers the original location.
    • If formula is moved (both absolute and relative), it changes for the difference between indexes in old and new location.
      But it does not change if all the source (referred) cells were moved too.
    • If formula references range(s), only the range bounds are absolutely defined and the range always contains rows and columns actually placed between the range bounds.
  • Operators


    Default operators use standard C++/JavaScript syntax: +, -, *, /, ! (not), % (modulo), & (bit AND), | (bit OR), ^ (bit XOR), && (logical and), || (logical OR), <<, >> (bit shift), == (equals), != (not equals), <= (less or equal), >= (greater or equal), < (less), > (greater).
    There are added more operators: = (equals), <> (not equals), ?: (condition three arguments as "condition?result_true:result_false").
    Priority of operators is the same as in JavaScript and cannot be changed. Always you can use ( ).
    There are defined constants: pi (3.14), ln2 (ln(2)), ln10 (ln(10)), log2e (log2(e)), log10e (log10(e)), sqrt2 (sqrt(2)), sqrt1_2 (1/sqrt(2)).
    All the operators and constants are defined in <Lang><FormulaFunctions operators/><Lang>, it is possible to modify, add or delete the operators and constants.
  • Functions


    There can be used also these aggregate functions:

    sum

    ,

    sumsq

    ,

    count

    ,

    counta

    ,

    countblank

    ,

    max

    ,

    min

    ,

    product

    .
    The functions accept as parameters value constants (e.g. 100), single cell reference (e.g. A1) or cell range reference (e.g. A1:B4).
    In the range the bounds are separated by colon '

    :

    '. The range separator can be changed by <Lang><Format FormulaRangeSeparator=':'/></Lang>.
    The functions accept more parameters separated by comma '

    ,

    '. The parameter separator can be changed by <Lang><Format FormulaValueSeparator=','/></Lang>.
    There are also defined standard JavaScript mathematical functions: abs(x), round(x), ceil(x), floor(x), exp(x), log(x), pow(x,y), sqrt(x), sin(x), cos(x), tan(x), asin(x), acos(x), atan(x,y).
    There are also defined date functions: date(year,month,day,hour,minute,second), date(date,format), time(hour,minute,second), time (time,format), now(), today(), year(date), month(date), day(date), weekday(date),weeknum(date), hour(date), minute(date), second(date).
    And one formatting function: text(value,format,type) to convert date or number to string.
    All the functions are defined in <Lang><FormulaFunctions/><Lang>, it is possible to rename, add or delete the functions.