Files
five/examples/dbedit_main.prg
Charles KWON OhJun 59568f3301 Five v0.9 — Harbour + Go fusion language
- Compiler: PP → Lexer → Parser → Analyzer → Gengo pipeline
- Parser: 232/236 (98%) Harbour compatibility, registry-based dispatch
- RTL: 351 Harbour-compatible functions
- RDD: DBF/NTX/CDX engines with Rushmore bitmap optimization
- Go Interop: IMPORT + pkg.Func() + obj:Method() with FastPath (15M calls/sec)
- HB_FUNC API: Full Harbour C API compatible Go bridge
- Concurrency: SPAWN/LAUNCH/GOROUTINE, <-, WATCH, PARALLEL FOR, ASYNC/AWAIT
- Extensions: Multi-return, DEFER, Slice, f-string, Nil-safe ?:, CONST
- Macro Compiler: Runtime AST parsing and evaluation
- Debugger: TUI debugger with source display, breakpoints, stepping
- FRB: Native + Pcode dual mode runtime binary
- Tests: 13 packages ALL PASS

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-31 09:41:50 +09:00

70 lines
1.7 KiB
Plaintext

// dbEdit using compiled TBrowse — no ? output before browse
FUNCTION Main()
LOCAL oBrowse, oCol, nKey
USE "dbf/customer"
oBrowse := TBrowseDB(1, 0, 22, 79)
oCol := TBColumnNew("ID", {|| FieldGet(1)})
oBrowse:addColumn(oCol)
oCol := TBColumnNew("FIRST", {|| FieldGet(2)})
oBrowse:addColumn(oCol)
oCol := TBColumnNew("LAST", {|| FieldGet(3)})
oBrowse:addColumn(oCol)
oCol := TBColumnNew("STREET", {|| FieldGet(4)})
oBrowse:addColumn(oCol)
oCol := TBColumnNew("CITY", {|| FieldGet(5)})
oBrowse:addColumn(oCol)
oCol := TBColumnNew("STATE", {|| FieldGet(6)})
oBrowse:addColumn(oCol)
oCol := TBColumnNew("ZIP", {|| FieldGet(7)})
oBrowse:addColumn(oCol)
oCol := TBColumnNew("HIREDATE", {|| FieldGet(8)})
oBrowse:addColumn(oCol)
oCol := TBColumnNew("MARRIED", {|| FieldGet(9)})
oBrowse:addColumn(oCol)
oCol := TBColumnNew("AGE", {|| FieldGet(10)})
oBrowse:addColumn(oCol)
oCol := TBColumnNew("SALARY", {|| FieldGet(11)})
oBrowse:addColumn(oCol)
oCol := TBColumnNew("NOTES", {|| FieldGet(12)})
oBrowse:addColumn(oCol)
CLS
SetCursor(0)
SetPos(0, 0)
DevOut("customer.dbf - 500 records - ESC to quit")
DO WHILE .T.
oBrowse:forceStable()
nKey := Inkey(0)
DO CASE
CASE nKey = 5
oBrowse:up()
CASE nKey = 24
oBrowse:down()
CASE nKey = 19
oBrowse:left()
CASE nKey = 4
oBrowse:right()
CASE nKey = 18
oBrowse:pageUp()
CASE nKey = 3
oBrowse:pageDown()
CASE nKey = 1
oBrowse:goTop()
CASE nKey = 6
oBrowse:goBottom()
CASE nKey = 27
EXIT
ENDCASE
ENDDO
CLS
SetCursor(1)
USE
RETURN NIL