-
- Command line
- Server Settings
- Commands
- Session
- Authentication
- Custom authentication
- External authentication
- Basic authentication
- Folder Security
- Data manipulation
- Read one record
- Read many records
- Write one record
- Delete one record
- Direct Page/DQL
- Page data definition
- Directory listing
- File handling
- Prism lists
- Data Defintions
- Get data definitions
- Create data Definitions
- Update data definitions
- Delete data definitions
- Definition format
- run dql
- run script
- A web page
- Page definition
- DQL pages
- Single file/memo DQL
- Single file/memo Page
- LiveText tags
- Url commands
- Tags
- How data is triggered in a page
- About DataEaseConnect
- checkquery
- callbacksuccess
- clearrecord
- connectonfieldchange
- convertvaltonumber
- decodequery
- deletedata
- deletetdf
- displayerrormsg
- doaction
- ensurequry
- fetchrecord
- fetchrecords
- finddatatype
- findfieldindef
- formdata
- formdefs
- forminit
- forminitdone
- formloaded
- generateid
- getcookied
- getdata
- getelement
- getfield
- getmyhost
- getnumlines
- getrecordcontent
- getrecorddef
- getrecordnofromurl
- gettdf
- gettablefromurl
- istrueval
- login
- logout
- makenewline
- multirecordinit
- newdata
- newtdf
- rundql
- populateoneselect
- selectpopulate
- setcsrfheader
- setelement
- setfield
- singlerecordinit
- stringify
- stripsuffix
- updatedata
- updatetdf
- useisodatetime
- usenumber
- version
- About jsBridge.js
- Action names
- deCheckVersion
- DEOS
- getnumlines
- GetCurrent
- GetValue
- GetVar
- jsAction
- jsActionExt
- jsActionExt2
- jsAddClass
- jsDEOS
- jsDerivation
- jsDerivationDebug
- jsDocumentDelete
- jsDocumentEdit
- jsDocumentOpen
- jsExecDQL
- jsGetActiveDocState
- jsGetVar
- jsGetCurrent
- jsGetDocumentState
- jsGetValue
- jsGetPRISMValue
- jsHide
- jsInt21
- jsLiveText
- jsLog
- jsMemoExecDQL
- jsMenuItem
- jsNewBlankForm
- jsOpenAppCat
- jsPrismDerivation
- runPrismFunction
- jsRefreshDocuments
- jsReorganize
- jsReorganizeAll
- jsRemoveClass
- jsSetFixedValue
- jsSetVarFromField
- jsSetValue
- jsSetVar
- jsSetCurrent
- jsSetWebField
- jsSetWebFieldFromVar
- jsShow
- jsToggle
- jsToggleClass
- makenewline
- SetCurrent
- SetValue
- SetVar
- startdebugger
- About decommon.js
- The loader
- calccaretpos
- decodequery
- generateid
- insertitem
- loadfilelist
- loadfile
- loadinternals
- message
- rundql
- runpage
- savefile
- selectitem
- testdql
- version
- .end
- .form header
- .form trailer
- .items
- assign
- application status
- backup db
- begin transaction
- break
- call menu
- call program
- case
- cluster by
- commit
- connect
- copy all from
- data-entry
- db status
- delete records
- define
- disconnect
- do
- documents
- exec SQL
- else
- end
- enter a record
- error messages off
- error messages on
- exit
- export
- for
- global
- if
- import
- imports
- in
- input using
- install application
- into
- list records
- lock
- lock db
- modify records
- message
- named
- others
- prompt
- query selection
- record entry
- records
- reorganize
- restore db
- rollback
- run procedure
- servers
- temp
- then
- tran off
- tran on
- unclustered
- unlock
- unlock db
- via form
- while
- with
- abs
- acos
- addressof
- ampm
- anylookup
- asin
- atan
- atan2
- ceil
- CHR
- concat
- ConsoleCopy
- ConsoleMemoCopy
- ConsoleShow
- ConsoleWriteToFile
- cos
- cosh
- date
- DatePicker
- day
- DEOS
- DialogOpen
- DialogOpenRelated
- DocumentCloseName
- DoesObjectExist
- ExecDQL
- ExecuteFile
- exp
- FileExecDQL
- firstc
- firstlast
- firstw
- FixedWidth
- floor
- futurevalue
- GetCurrent
- GetVar
- hours
- if
- installment
- jointext
- julian
- lastc
- lastfirst
- lastw
- length
- log
- log10
- lower
- MemoChunk
- MemoCopy
- MemoDecodePair
- MemoExecDQL
- MemoFind
- MemoGetGlobal
- MemoLength
- MemoMemoCopy
- MemoMemoReplace
- MemoReadFromFile
- MemoReplace
- MemoSetGlobal
- MemoStringBetween
- MemoStringFrom
- MemoStringTo
- MemoWordCount
- MemoWriteToFile
- midc
- midw
- minutes
- mod
- month
- OpenForm
- OpenMenu
- OpenProcedure
- OpenReport
- periods
- power
- presentvalue
- proper
- random
- rate
- RefreshForm
- RefreshScreen
- RefreshStatus
- Remote
- Remote authentication
- Remote POP3
- Remote IMAP
- Remote SMTP
- Remote XML
- seconds
- SetColor
- SetCurrent
- SetFocus
- SetLabelText
- SetMemoValue
- SetState
- SetStyle
- SetValue
- SetVar
- sin
- sinh
- spellcurrency
- spelldate
- spellmonth
- spellnumber
- spellweekday
- sqrt
- StringBetween
- StringEscape
- StringFind
- StringFrom
- StringReplace
- StringTo
- tan
- tanh
- textpos
- timeampm
- ToText
- UniqueID
- upper
- Wait
- weekday
- WriteToFile
- year
- yearday
- yearweek
- " (quotation marks)
- () (parentheses)
- + (addition)
- , (comma)
- - (subtraction)
- . (period)
- -- (comment)
- / (division)
- * (multiplication)
- * (asterisk)
- ? (question mark)
- ~ (tilde)
- : (colon)
- := (assignment operator)
- ; (semicolon)
- < (less than)
- <= (less than or equal to)
- = (equals)
- > (greater than)
- >= (greater than or equal to)
- all
- all files
- and
- any
- between
- blank
- count
- count of
- file
- highest of
- in groups
- in groups with group-totals
- in order
- in reverse
- item (Statistical)
- item (Conditional Statistical)
- lock files
- lock nothing
- lock records
- lookup
- lowest of
- max
- mean
- mean of
- min
- not
- number
- numeric string
- or
- pause
- percent
- selected record
- std.dev.
- std.err.
- sum
- sum of
- text
- time
- to
- variance
- window
- @GetDefinition
- . document
- . listcommands
- . listdocuments
- . listdrives
- . listfiles
- . listfunctions
- . listinternals
- . listoperators
- . listrelated
- . listtables
- . object
- . table
- . testdql
- @SetDefinition
- . document
- . object
Insert new element<br>
This document will give you some hints of where to find the code doing the form editing. The code for handling form edit is located in tools/js/dataeaseformedit.js.
Type of element selection
This is done by the this.selectelementtype method and triggered by "t-element-type" class that should sit on the outside of your element or select. When using a element you need to supply an id with 4 parts and for a select you need an id with 3 parts. The parts will be t for prefix type to indicate we are selecting a element type, then the type of element and if you are a toolbar icon and not a select, you add the subtype as well.
Ex. for select id="t-type-field" and then the select will give you the type of field
Ex. for just a element id="t-type-field-choice" will give you a field of type choice
Ex. for switching to select element mode id="t-type-select". This will deselect any element type and switch to select elements in the form mode.
Element selected for insert
You need a type, a subtype and a style to be able to select a template for inserting into the form. When using a 3 part id, the subtype comes from the option in a select, when using an id with 4 parts, the subtype is given by the last part of the id. If using a 5 part id you can also get the default style from the id. If not, the style "default" will be selected. The user can then select other styles from any items in side menu with class="s-style-selectable" set.
The subtype can also trigger extra data for the sidebar menu. The template for the element is in the format id="t-elementtype-subtype-style". If there is no template, we use the default template and add the style after insert. The sidebar menu for styles and setting are added by id="s-type" for the shared data and id="s-type-subtype" for the extra data. This we probably have to extend to merge in elements to get the logical order later on.
Ex. for all labels except for image you get id="s-label" for shared and id="s-label-label" for the rest
Ex. for images you get id="s-label" for shared and id="s-label-image" for the image part.
Inside the sidebar menu, a subgroup might have a list of styles for subgroup. This is added in a list named id="s-type-subtype-tochange-stylelist" with elements that tell what the change should be by their ids.
Ex. when the outer element have id="s-label-outer-class-stylelist" and the s-style-selectable is set on the inner element, a class will be set based on either the text value of the list element or the value of data-valuetoset
Types supported
label All elements the are static on a page on their own. This can be text, headers or images. The limitation for these label elements are that they do not have data. They can be connected to a field by for="fieldname" and used for labels that you can click on to get to the field but except that they are static. field This are any element that are connected to table data delivered from the server. A element like this will trigger a tdf element for editing data type and derivation. Can be all supported data types like text, numstring, integer, fixed, float, time, date, money, bool, choice or memo. button Any element doing gui actions or calling to the server with data or requesting information. Can be action (from dataeaseconnect.js that saves data etc to server), links or custom buttons just doing gui only actions. block This is elements put together of other elements or base elements like record, form or subform. It can also be structural page data like rows, columns, menus, carousels etc. record This is a subform with it's own settings for table or whether it is table view (multi) or single record (single). A inserted subform can not be main as there is only one in a form and that is created with the form. Element selection or add element
The code for either add a new element to the form or select an existing one go trough the same function named this.elementclicked. Here what is happening depend if a tool for insert is selected or the selector tool has been clicked to clear all other tools.
There are two routes here determined by the result of this.checkforinsertaction, if there is no tools selected, the element under hit will be selected instead in this.selectelement.
Style and class change from sidebar
There are two scenarios you do changes to an element from the sidebar settings, when selected a element for insert and when selecting a element in the form. In both cases, all changes done go trough this.dostylefieldchanged that is a value change element set on all elements in the sidebar that use auto update. In the other direction most of the interaction for loading values will go by the this.setdefaultsidedefs that will use the id of the element in the sidebar to read values for the element.