-
Notifications
You must be signed in to change notification settings - Fork 10
/
Copy pathChangelog.txt
632 lines (491 loc) · 33 KB
/
Changelog.txt
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
--------------------------------------------------------------------------------------------------
Changelog file : OTIS, Open Table InSpector
Author : Hans Marc (Belgium)
First version : 22-06-2020
Last version : 1.50 b01
Latest update : 26-02-2024
--------------------------------------------------------------------------------------------------
First of all : THANKS for all your positive remarks, suggestions and bug reports.
26/02/2024 : OTIS V1.50 b01 (released)
---------------------------------------
Modif : Update Otis_manual.pdf
New : 'Table inspector'
New menu 'Export -> csv' to export a table to a csv file.
Why not to Excel will you ask me !
1. You can, without any problem, open csv files with Excel.
2. Most solutions depends on Excel that must be installed on the same system. Not always the case.
3. Speed is very very slow with Ole solutions.
Some tests, on my notebook, with a AMD 7480cpu and 32GB.
65.000 records took 33 sec., which i consider a lot of time for a small table.
4.5 million records took more than 10 min. Far to slow for me.
You can imagine the time it will take in a network environment.
4. Played around with some xlsx libs but neither of them improved (to small) speed.
Below some timing values to compare with when exporting to csv on my system :
4.5 million records in 33sec.
65000 records in 2.5sec.
I think that is fast....
New : 'Table inspector'
The codepage used to open a table is also displayed in the title.
New 'Index manager'
1. Total number of index / tags is displayed in the tbrowse header.
2. New menu to 'Modify' a existing index.
You CANNOT change the "FILENAME" and "TAG NAME" because if you do, it will be considered as a "new" index / tag.
ALL INDEX / TAGS WILL BE RE-CREATED TO KEEP 'TAG NAMES' AND 'ORDER NUMBERS' SYNCHRONISED.
Complete rebuild of all tags is necessary because Harbour behaves as follows. The already existing
modified tag (unique, ascending, descending, key, for) is removed and appended as a new tag after the
others tags even if you did not change the tag name.
Ex. index 1,2,3,4, you modify index 2, index 3,4 shift up and become 2,3 and old index2 with the same old tagname becomes index 4.
Result, synchro between the tag names and the order numbers is lost. This out of synchro could create a lot of problems
if your are using in your program order numbers ordsetfocus(2) and not tag names ordsetfocus(tagname).
NEW : 'General'
(BUG) The 'Codepage' combobox value used to open dbf tables was never integrated. (sorry forgot it until today).
Also corrected to 'append' a table, the codepage of the current opened table is used.
Also corrected when a table was saved into another table.
You have to set the correct codepage before opening a table.
NEW : 'General'
Implementation of different colors for even/odd lines in all Tbrowse() controls.
You can change colors in the 'set_theme()' function.
Modif : 'Table inspector'
The main Otis window 'Dataset Manager' is no longer shown if you double click on a dbf file in explorer.
Only the 'Inspector' will be shown. It is much more easier to switch with alt-tab between windows if you
have multiple dbf opened with Otis by hidding the main window.
The main window (dataset manager) is, of course, still shown if you start Otis.exe directly.
Modif : 'Table inspector'
Redesign and reorganisation of the top menu buttons in a more logical order and position.
The small button '?' on the right of the 'Index Combobox' is removed.
You get the same info for all index files as before with button 'Order info (x)' on the left.
Modif : 'Manual'
Updated manual with some corrections and comments.
Modif : 'General'
Some 'setfocus' improvements to go back to a previous window when the current window is closed.
Modif : 'Structure Editor'
Only if you are modifying the structure of the current opened table in the inspector.
A warning message is displayed if you delete a field in the structure that is used in a order
KEY or FOR expression because this can and will cause problems when you reopen the table with AUTOPEN set.
Otis asks also a confirmation before deleting a field.
BUG : 'Table inspector'
Discovered somes problems when you changed to structure of a dbf and saved it to the SAME name.
(see previous remarks for version OTIS V1.30 b01 )
Otis() quitted with errors because the tbrowse() was not correctly refreshed.
Changed some things to solve this problem.
01/09/2023 : OTIS V1.40 b01 (released)
----------------------------
New : 'Table Inspector'
'F2' shortcut key toggles the 'Allow Edit' checkbox.
Why F2, because it is a standard windows key and used in some other window programs like Excel.
New : 'Table Inspector'
'F5' shortcut key to refresh the tbrowse table.
Added the function key 'F5' to refresh the tbrowse and a new button (labeled F5) to the right of the index combobox.
Why, suppose you open a table with Otis. Another program modifies this table, add, delete records, etc.
In the previous version the display was not refreshed with those new/deleted records if you clicked on the Inspector window.
You had to use close and reopen the table or use ctrl-Home, ctrl-pgdwn, ctrl-pgup, etc. to refresh the display.
*
The F5 key can also be used to refresh the tBrowse because another pc on a network could have modified the table.
Why F5, because it is a standard windows key and used in a lot of other window programs, explorer, internet browsers, ...etc.
Modif : 'Table Inspector'
A split of buttons 'Search/Repl'.
The first one 'Search' is meanly used to search in a specific or all fields but can also be used to replace data
in only one field or all fields at the same time but is somewhat slower than the second 'Repl.' button
The second button 'Repl.' can only replace data in one field at a time but has some other options like :
replace data in a field with a value OR a expression, scope, for and while.
Modif : 'Table Inspector'
When you change the 'SHOW DELETED' checkbox a message was displayed to warn you that this
is a global program setting and changing it could influence the running program.
This message is no longer shown when you are in 'standalone' mode.
This is logical because changing this setting does only influence tables that are fully under your control.
Modif : 'Table Inspector'
'Set Filter'
The tbrowse table display was sometimes disturbed if you set/reset a filter.
The table sometimes splitted in two parts on the screen in function of the filter and the cursor position.
dbsetfilter() is replaced with a dedicated tbrowse function, browse:FilterData().
This function makes use of dbsetfilter() but refreshes also a lot of tbrowse internal vars and refreshes
the display correctly.
BUG : 'Structure Editor'
Bug exists since the previous version 1.30 b01, sorry.
When a NEW table was created in the structure editor starting with a empty table than a dbf file was created
without the 'Field' definition section.
Cause, a empty array was passed to DBCreate().
Remarque, strange that dbcreate() accept this situation and does not throw a error message or a run time error.
01/04/2022 : OTIS V1.30 b01 (released)
----------------------------
New : 'Inspector'
Add button 'Struct.Editor'. This permits to change the structure of the opened table.
The "Struct.Editor" is FILLED with the structure of the opened table.
You can save the structure to a new table,
or
to the same table name that is currently open in the "Inspector".
In that case the current opened table will be closed, renamed to *.bak, a new table is created with
the same name as the original one and data will be appended from the old table.
Memo files .dbf, .fpt and .smt are also recreated and filled with the original data.
All 'cdx' index tags are recreated and updated if the table and index file have the same name.
Permits thus a runtime/life structure modification/update of a table that was opened in the 'Inspector'.
New : 'Structure Editor'
Added a new help button with 'Table size limits' info.
Remember there is already a 'Field types' help screen.
Inspired by a forum article https://groups.google.com/g/harbour-users/c/6OMr1jztPME from Ivanil.
Modif : 'Structure Editor'
Changed handling buttons "Save As" and "Cancel" to "Save As" and "Quit'
The handling when closing the editor was not correct and modifications of a structure where lost and not saved.
This permits also to use 'Save as" multiple times before 'Quit' if you want to save the
same structure with different filenames.
Remark: 'Structure Editor'
1. A empty structure is opened if you start the 'Struct.Editor' from de 'Dataset manager'.
2. If you start it from the 'Inspector' than the structure editor will be filled with the current opened table.
When you save the new structure into a file with the same name than all data is append into the new structure.
3. The Editor can NOT be used when in 'Plugin mode'.
This to prevent that you modify a structure that is opened by your running program and also in a 'Ghost' area in Otis.
New : Auto REOPEN a table in 'Exclusive' mode when you execute a operation like, pack/zap/..., that needs this mode.
This is only the case if a table was previously opened in 'Shared' mode and if you open a table
in command line mode or file double click mode.
*
A 'impossible' message is displayed if you try to execute a function like pack/zap/reindex/insert/...etc
on a table that was opened in SHARED mode. Remember those functions needs EXCLUSIVE mode.
Otis asks if you want to try to reopen the table in EXCLUSIVE mode and if succesfull execute pack/zap/...
All table properties are restored in the browse table, recno(), filter, ordfocus, ...
Remember that you can define in the settings menu how files are opened shared/exclusive in command line mode.
Modif : 'Dataset'
Improved error trapping when loading/adding a table in a dataset.
You get a detailed warning when AutoOpen is enabled and when a unknown function
or variable is used in a index expression.
Modif : 'Dataset'
A getfile() window is opened if you click on the 'Inspector" button when there are no tables in the dataset.
The selected file or selected files will be added to the dataset.
(Before we displayed a message telling you that there were no tables in the dataset.)
Modif : Invalid filelocking value/scheme.
A error message is displayed if a invalid filelocking scheme is defined in the ini file (manually)
The default scheme, type 4 (DB_DBFLOCK_HB32), will be used.
Modif : Github synchronisation with modifications made by Grigory Filatov in Minigui V21.05 update 3, date 17-06-21.
Code cleaning to prevent warnings with hbmk2 -w2 option.
Bug : 'Inspector'
1. Program error if 'Paste' button was used before 'Copy' button.
2. Screen refresh of the table (tbrowse) was not always correct when a filter was cleared.
3. After changing index order the 'Vert Scrollbar' position and size was not adjusted.
09/05/2021 : OTIS V1.22 b01
----------------------------
Bug : 'Structure Editor'
Small bug when loading a existing table with extended fields.
All type of fields that exists with different length, ex. I1, I2, I3, ..., where misinterpreted.
They all loaded with type 'I1'. The same for type 'V'.
The same happend when a field was modified.
06/05/2021 : OTIS V1.21 b01
----------------------------
New : 'Structure Editor'
Extended field types are integrated.
Suggestion by DFPRO (Daniele), see https://groups.google.com/g/minigui-forum/c/3obQ4K8Zg60
I am not sure that all types are implemented because documentation is difficult to find and
there are sometimes differences between them. Ex. Blob, Picture fields, ...etc.
Details field types see below or click on the '? Field Types' button when you edit, insert or append a field.
Source, see sample in C:\MiniGUI\SAMPLES\BASIC\ExFldTps
Standard field types
----------------------
Code Type Width Description
----- ---------- ----------------- ---------------------------------------------------------------
C Character 1...65534 Character
N Numeric 1...32 Numeric
D Date 8,3,4 Date, 8 standard, 3 and 4 extended
L Logical 1 Logical
M Memo 4 or 10 Memo, 10 standard, 4 extended
Extended field types
----------------------
Code Type Width Description
----- ---------- ----------------- ---------------------------------------------------------------
+ AutoInc 4 Auto increment
= ModTime 8 Last modified date & time of this record
^ RowVers 8 Row version number, modification count of this record
@ DayTime 8 Date & Time
T Time 4 Only time (use @ for Date and Time)
I Integer 1, 2,3, 4 or 8 Signed Integer
V Variant 3, 4, 6...254 Variable type Field
Y Currency 8 Converted to a 64 bit integer (I) with implied 4 decimal
B Double 8 Floating point / 64 bit binary
ATTENTION : There is probably a bug in the rdd driver but i am not sure !!!
When you create a field of type 'Y-Currency' it is converted by dbcreate() to a 'Integer 8 with 4 decimals'.
When you try to modify or save new data in it a runtime error 'DBFCDX 1021 data width' error appears.
This error appears also in sample C:\MiniGUI\SAMPLES\BASIC\ExFldTps.
No time to investigate so no solution for the moment.
New : 'Structure Editor'
Added, 'Enter' key is the same as the 'Apply' button.
It is no longer necessary to click with the mouse on the 'Apply' button for each new
or modified field and thus much easier to enter a serie of new field.
New : 'Settings'
New setting, LOCKING SCHEME, 0...6.
A new menu button '? Lock schemes' with info is available.
Only used when in 'Standalone' mode. In 'plugin' (.lib) mode your program settings ar used.
Modif : 'General'
The alias name in the Dataset is no longer suffixed with the area number when in 'StandAlone' mode.
Ex. table name is 'Invoice.dbf', the alias name will also be 'Invoice' and no longer 'Invoice_1'.
Asked by 'Ash'.
Exception, in the following cases the alias WILL be suffixed with the area number to prevent conflicts.
1. It could be that you want to compare 2 or more files with the same name but in a different folders.
2. you open the same file 2 or more times (non exclusive) to inspect data in different records.
Simply, if you open a file with a name that is already used as Alias than the 2nd, 3th, ...,
one will be suffixed with the area number. We need all the time a unique alias name.
Modif : 'General'
The OTIS_DS.DBF structure has changed.
The field 'FILENAME' containing the path and filename is updated from 50 chars to 250 chars.
Remark, the old file is not updated automatically.
Modif : 'General'
Some error trapping improvements when opening files.
ex. Dos Error 32, error message is expanded with text 'file is probably readonly'
Bug : 'General'
If a table is opened by double clicking on it a 'DOS Error 3' message
was displayed when spaces are used in the path name.
01-03-2021 : OTIS V1.20 b01
----------------------------
Bug : LetoDbf RDD
The tree structure in the leto_get_file() function was not always correctly displayed
when you had a lot of subfolders.
New : 'Settings'
Two new checkboxes for the 'Command line' mode.
There is a checkbox for 'Autopen' mode and another for 'Exclusive' open mode.
Remark, these settings are only used if you open Otis with a table name on the command line
or when double clicking a table in Windows Explorer.
Modif : It often happens that you want inspect a table when you are in windows Explorer
by double clicking on a file.
To speed up interaction we now open the 'Table Inspector' automatically if you double
click on a file and we quit Otis without asking to save settings and the dataset.
This saves a few mouse clicks and speeds up the inspection.
Before the table was added to the Dataset and you needed to click in the 'Inspector' button
to open it. Otis asked you also when you quit the program if you wanted to save the dataset.
Bug : Double click on a table in windows "Explorer".
Otis could not open a table if the file name contained characters
that are not allowed in a 'Alias' name, ex. "-#%&{}<>*?/*!@" + "'" + '"'
All these characters are removed to obtain a valid 'alias' name.
Modif : 'Dataset Manager'
Refresh number of records of a table after a ZAP or a PACK in the 'Inspector'.
Added : 'Table Inspector'
Added a speed button 'Dataset mng' to return back to the Dataset Manager just above the 'Quit' button.
Added : 'Table Inspector'
Added in "Order selection combobox" the order 'TAG' name just before the KEY and FOR clause.
Modif : 'Table Inspector'
'Append file' added '*.*' as filemask for getfile() function.
Before only *.dbf files were available.
Modif : 'Table Inspector'
To improve the user interface i added some 'setfocus' instructions to set focus back to
the browse table after using a option or menu.
New : 'Index wizard'
'NEW INDEX' added options UNIQUE, ASCENDING / DESCENDING
New : 'Index info window'
Added UNIQUE, ASCENDING / DESCENDING status in the index info table.
Added the same options in the csv and prg export functions.
Modif : FOR, WHILE and EXPRESSION clause cleanup
Mostly, by habit, we hit the 'enter' key after introducing a expression.
Otis displayed a error message, 'Invalid expression', when executing them.
Sometimes my hair (the few that are still there) went 'grey' because i did
not understand or see where i made a failure. The problem was that you can
not see those trailing 'crlf' pairs.
*
Now Otis removes 'crlf' pairs and white space before evaluating them.
This has as side effect that you can thus, for readability reasons,
split those expressions in multiple lines.
Modif : 'Structure Editor'
'Load structure' could not open a file if the activ rdd was 'LETO'.
Otis will use 'DBFCDX' by default if the current rdd is 'LETO'.
Modif : 'Structure Editor'
Added '*.*' as filemask when saving a new table.
BUG : Correction to prevent that a field definition without a NAME could be created / inserted.
Modif : Change cursor to cursorwait() when the Dbeval() function is called for certain operations.
By this way you can see that a operation on a table is running specially on very large tables.
01-08-2020 : OTIS V1.10 b04
----------------------------
Bug : 'First start of Otis.exe'
1.There is no dataset table file Otis_ds.dbf if you start Otis for the first time in a folder.
Load a dbf in the dataset.
Exit the program. Otis asks if you want to save the changed dataset.
Otis exits with a error if you confirm because there is no dataset table.
This table is now created when you start Otis.
Before it was only created if you used menus 'save' or 'load' a dataset.
2.If you start Otis from a different location (see bug v1.10 b03)
and you start Otis for the first time than the name of the dataset
table OTIS_DS.DBF did not use hb_dirbase or any other path.
This could result in a Dos error 5 because Otis tried to create the dataset
table in the current folder.
Bug : 'LetoDbf'
saving a table in the 'Inspector' didn't function when the letoDbf rdd was used.
01-08-2020 : OTIS V1.10 b03
----------------------------
Bug : You get multiple runtime errors if you run Otis.exe from a different location
if you right clicked, by example, on a table file to 'open' it.
Reason, Otis used getcurrentfolder() for the location of the ini file.
We now use hb_dirbase().
Suggestion proposed by Mario (mhsabado).
New : Connexion info LetoDbf rdd
Added server mode info with LETO_GETSERVERMODE()
New : Otis as default windows program to open tables in explorer.
Default rdd driver is always DBXCDX.
New : Command line option :
Otis table1.dbf, table2.dbf, table3.dbf, ...etc.
or
Otis table1.dbf table2.dbf table3.dbf ...etc
will add all the specified tables to a new dataset.
Modif : 'LetoDbf server'
Click 'Add table' with LetoDbf rdd activated.
Some letoDbf servers return a 'Undefined' variable with the leto_directory() function.
We still are searching for the reason.
It happens when we scan the 'root' directory to build a tree for the filepicker form.
code : aDir := leto_directory("\*.*", "D")
if valtype(aDir) == "U"
....
Otis displays a message if this happens and longer quits with a error.
No subdirectories will be displayed in the "tree" control.
If you see this message please tell me what your server configuration is.
22-07-2020 : OTIS V1.10 b02
----------------------------
Bug : 'Otis.ini file'
Otis quits with a error after update because some new ini vars were not yet defined in the ini file.
Sorry.
New : Menu 'Settings'
Added a 'Test conn. Leto' button to test the connexion with a LetoDbf server.
17-07-2020 : OTIS V1.10 b01
----------------------------
New : 'Otis manual.pdf' included in zip file.
New : Added rdd driver LETODBF from Elchs (https://github.com/elchs/LetoDBf). (fork from Alexander Kresin LETODB.)
This is really a excellent client server solution. Thanks Elchs.
Modif : 'Otis Dataset Manager'
The RDD driver name is also saved in the dataset for each individual opened table.
It is possible to use tables with a different RDD in the same dataset.
ex. local files with RDD DBFCDX and LetoDBf files with RDD LETO.
Modif : 'Plugin mode'
A lot of modifications for "Plugin mode" of Otis.lib.
Please read included document 'Otis manual.pdf'.
Some remarks in it are very important.
New : 'Otis Dataset Manager'
Settings menu.
Used to define area numbers and LetoDbf server settings.
New : 'Otis Dataset Manager'
Update of columns 'F' filelock status,
'F' file is locked or loaded in excl. mode
'R' a record is locked.
'R+' multiple records are locked.
Bug : 'Otis Dataset Manager'
Otis exits with a error when you hit menu 'Remove Index' when there where no tables opened.
Bug : 'Otis Dataset Manager'
The table OTIS.DS.DBF could not be opened if another RDD was set than DBFCDX.
We now use the VIA clause to open this table.
New : Some warning messages.
New : REQUEST of all functions mentioned below. They could be used in a index expression.
ABS, ALLTRIM, AT, CHR, CTOD, CDOW, CMONTH, DATE, DAY, DELETED, DESCEND, DTOC, DTOS, DOW, ;
EMPTY, I2BIN, L2BIN, LEFT, LEN, LOWER, LTRIM, MAX, MIN, MONTH, OS, PAD, PADC, ;
PADL, PADR, RAT, RECNO, RIGHT, ROUND, RTRIM, SPACE, STOD, STR, STRZERO, ;
SUBSTR, REPLICATE, TIME, TRANSFORM, TRIM, UPPER, VAL, VALTYPE, YEAR,;
SOUNDEX
New : All known codepages in Harbour are included now in Otis simply by including the file "hbextcdp.ch".
Suggestion from 'Ivo Fritz Hasse' who asked to add "PT850".
New : Added RDD "SIXCDX".
Complete list of rdds loaded, "DBFCDX", "DBFNTX", "DBFNSX", "SIXCDX".
Modif : Otis program icon has been changed. Much better i think.
Modif : 'Table Inspector'
Otis show now the number of orders that are opened in the upper left label 'Orders (xx)'.
No longer necessary to open the combobox to see how many orders are opened.
Modif : 'Table Inspector'
'Delete key' could already be used to Delete/Recall a record but
from this version this feature is only enabled if the checkbox 'Allow Edit' is checked.
Corr. : 'Table Inspector'
Scope button and checkbox are disabled if there is no order/index selected.
Corr. : 'Table Inspector'
The order combobox was not updated correctly when a new order tag was created.
Modif : 'Table Properties'
Table Info text is reordered and some info is added, ex. used RDD driver.
Corr. : 'Index Manager'
New index, the tag name can maximum be 10 characters.
Corr. : 'Index Manager'
If one of the expressions failed a error message was displayed but afterwards
Otis tried nevertheless to create the new order.
29-06-2020 : OTIS V1.00 b06
----------------------------
New : Otis main screen
Added option 'AutoOpen' orderbag files.
Attention only for CDX and NSX orderbag files. DBFNTX does not support this behaviour.
This checkbox will be 'checked' automatically if you choose DBFCDX or DBFNSX
and 'unchecked' if you choose DBFNTX.
Suggestion from 'Ash S'.
New : 'Structure editor'
Added a new button to clear the structure list.
New : 'Table Inspector'
Define a 'ORDER SCOPE' for the current activated order.
A scope can be set for each order individually.
You can enable / disable it with the scope checkbox.
When you want to clear a scope you have to reopen the scope editor form and use the 'Clear' button.
When you change the order the scope for this order is restored and if it not empty the scope checkbox will be
checked if there is a scope or unchecked if the scope is empty. A message is also displayed to remember
you that a scope is set and that maybe not all records are displayed.
ATTENTION : If you defined a scope but you change the checkbox to unchecked to temporary display all records
without a scope, the scope will be lost if you change the order.
REMARK : All scopes for all orders stay actif even if you close the 'Inspector' for a table.
Thus when you reopen the 'Table Inspector' for the same table all scopes are restored.
Suggestion from 'Ash S'.
New : 'Table Inspector'
A new checkbox 'FILELOCK' to place a file width lock until you uncheck it.
This filelock is not released by copy past, append insert or any other operations.
This can be usefull to prevent other instances to modify your table when you want to
execute multiple operations for updating / modifying the table.
Thus "while" and "between" your operations another instance can not modify the table.
This option is automatically checked if the option EXCLUSIVE mode is checked.
and can NOT be unchecked if the file was loaded in EXCLUSIVE mode.
The filelock is released when you close the table inspector for the table.
Remark : if a file is opened in shared mode (non exclusive) and even if this
option is not activated a recordlock or filelock and unlock will be placed automatically
before and after each operation like copy/paste/delete/recall, ...etc.
The only difference is that when this option is 'checked' that the file stays
all the time 'locked' until you uncheck it.
New : 'Table Inspector'
New menus UP / DOWN.
Permits to push down or pull up a record to the next or previous physical record position.
It does a physical record swap. Only allowed when no order is actif.
Modif : 'Table Inspector'
Some menus have been repositionned to regroup record and file width operations.
Modif : 'Table Inspector'
The Copy / Paste menus copies and paste only data for visible columns (thus fields).
This permits to copy only certain fields from one record to another.
Uncheck 'Hide Columns' if all data from a record has to be copied / pasted.
Modif : Otis main screen
Menu 'Table properties' has moved up, it is now just below menu 'Table Inspector'
I think it has a better place there.
Modif : 'Table Inspector' sub menu 'Index Manager'
When you create a new order, the filename is automatically filled with a full path filename.
It takes the name of the orderbag file that is selected in the index info table so you can easily
add a new tag to it.
If there are no orders at all and you want to create the first one, than the orderbag name
is the same as the table name so you can open it later on with the 'AutoOpen' feature.
BUG : 'Structure editor'
1. click 'Modify' or double click on a field name to modify a properties of a field
2. change a property like type, len but don't change the fieldname
3. Otis refused to save the modifications with error message "Fieldname exists already".
26-06-2020 : OTIS V1.00 b05
----------------------------
New : 'Table Properties'
Added a button to copy the structure to the clipboard.
Asked by 'Paul Schlicher'.
Modif : 'Structure Editor'
added (*.* All files) when you want to load
the structure of a existing dbf table. For the same reason as below.
Some users change the extension '.dbf' to by example '.dat'.
Bug : Otis exits with a error when we tried to load a dataset selected in the
most used combobox list that DID NOT EXIST ANYMORE.
25-06-2020 : OTIS V1.00 b04
----------------------------
Modif : Some users rename there ".DBF" to another extension ex. ".DAT"
Otis no longer verifies if the extension is ".DBF".
Any file can be loaded know.
I use error trapping everywhere with "Try and Catch" so if
a non dbf file is loaded a error message will be displayed.
Asked by 'Daniele Federico'.
Modif : Also added (*.* All files) when you want to load a index file.
By default Otis proposes the extension of the default RDD driver in use.
Attention, you can not load by example a .ntx file if you set DBFCDX
as default driver. A error message will be displayed in that case.
25-06-2020 : OTIS V1.00 b03
----------------------------
Added : Function DESCEND() is added as a EXTERNAL.
This function is sometimes used in a index KEY expression.
Otis refused to open the index file.
Problem reported by 'Marcelo Brigatti'.
23-06-2020 : OTIS V1.00 b02
----------------------------
Added : RDD driver selection combobox :
DBFCDX, DBFNTX, DBFNSX
22-06-2020 : OTIS V1.00 b01
----------------------------
First public release.
31/03/2020 : Developpement started on 31/03/2020 while
the world was fighting the Corona virus.