-
- Preview browser
- Page designer
- DQL editor
- Application wide settings
- Security settings
- Page caching module
- Modules
- Snippets
- Actions
- Context editor
- Task editor
- Scheduler editor
- Search engine editor
- Web server console
- Site layout editor
- Template editor
- Robots editor
- Style definitions
- Database manipulation
- Table designer
- Transfer editor
- Reporter
- Deployment module
- Deployment server settings
- Debugger
- .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
- Rules for queries
- * (asterisk)
- ? (question mark)
- ~ (tilde)
- and
- or
- not
- ( ) (parentheses)
- Debug querys
- Livetext tags
- xdg3 query
- Sessions
- Pagination
- Free text search
- Intro on fields
- Text
- Hidden
- Date
- Dropdown
- List
- Checkbox
- Radio button
- Text edit
- Redactor (richtext)
- CKEditor
- TinyMCE
- Intro
- hasPrismConnection
- doAction
- doDerivation
- doMenuItem
- doPrismDerivation
- setFormField
- runPrismFunction
- @GetDefinition
- . document
- . listcommands
- . listdocuments
- . listdrives
- . listfiles
- . listfunctions
- . listinternals
- . listoperators
- . listrelated
- . listtables
- . object
- . table
- . testdql
- @SetDefinition
- . document
- . object
- Extra modules intro
- python
- Qt
- wkhtmltopdf
- PySide
- PyXCC
- django
- Apache
- LightTPD
- nginx
- pywin32
- flup
- cssutils
- Pillow
- psutil
- mysqldb
- psycopg2
- pyodbc
- python_dateutil
- requests
- suds-ews
- setuptools
- Whoosh
- wmi
- django-send
- bootstrap
- bootstrapmultiselect
- jquery
- jqueryui
- ckedit
- tinymce
- redactor
- JavaScript EU VAT Number Validation
- feedparser
- beautifulsoup
- appsdir
- six
- pycparser
- pyOpenSSL
- cryptography
- cffi
- enum34
- pyasn1
- idna
- ipaddress
- PyYAML
- coverage
- coveralls
- docopt
- mock
- funcsigs
- pbr
- nose
- paypalrestsdk
- paypal
- libcurl
- 7zipcpp
- cef
- cpp-jwt
Debug app in PyDev
PyDev is a free python development environment that is created as a plugin for Eclipse. You have to have this up and running before doing any steps for using it to debug a DG3 web application.
Setup of PyDev for a DG3 application
Open your Eclipse with PyDev plugin and select the folder where your DG3 application resides. You should find them in DG3Apps under Documents. Then switch to the PyDev perspective. It you want it to be the default, you can go into Window->Preferences->General->Perspectives and make it default
First of all you need to set up the python environment. This is done under Windows->Preferences. Then expand PyDev->Interpreters and select Python Interpreter. What you need to do here is to add the python that comes installed with DG3. To do that select New, and Browse in the next dialog, then loacate your DG3 installation (usually at C:\Program Files (x86)\DG3) and select the python.exe, then ok three times to get bet to Python Interpreters page. Here you should add New Folder on libraries. Again you will have to browse for the DG3 installation in program files and select the DE4Web folder inside the DG3 application folder. When you are back in Python Interpreters, you can press OK and your setup is done for this DG3 application. Then it will take a while to set up your environment.
Next you will need to create a PyDev project by selecting File->New->PyDev Project. In the Dialog give the project the name web and keep all other as default and press Finish. You should now see a tree with files in the PyDev Package explorer. The web folder holds the setup and all views for pages that you did not put in a folder. The other views for the pages can be found in the respective folder. The page templates are all in the templates in a similar structure except that all page_detail templates for pages without a folder is added to the root folder. You will also fin the manage.py file used for starting the application server and some extras like dg3extratags , db.db and all the static files in the static folder.
The last step before you can start debugging is to add a python run debug configuration. This is done in Run->Debug Configuration. Create a new Python Run and name it web. Select web project and manage.py as Main Module. Then switch to Arguments tab and add runserver 0.0.0.0:8080 --noreload to the Program arguments box. This is it, you will now be able to run the DG3 application in the debugger and open the it in the web browser on port 8080. You should see that the application start successfully in the console, and to stop it you have to kill it with the read stop button on top of the console. If it did not start, you probaly missed out on adding folder to the python interpreter in the previous step. You can set breakpoints in any of the py files. To test a particular page, first find the folder name you gave the project and then open views.py. In this file each page has a function named the same as the page. Just add a beak point at the top of the function and load the page in the browser. This should trigger the debugger.
If you get an error has occurred with heading Path for project must have only one segment as header, you have found a irritating bug in PyDev. There is a work around. Simply right click manage.py file in you packet explorer and select Run as->Python run. It will just list a few lines of messages in the Console and now you can select Run->Debug configuration and select the newly created Python run project and rename and edit it with the same information as described in the previous section.