forked from Riverside-Software/pugchallenge2019
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathwDataDigger.w
13717 lines (10828 loc) · 449 KB
/
wDataDigger.w
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
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
&ANALYZE-SUSPEND _VERSION-NUMBER UIB_v9r12 GUI
&ANALYZE-RESUME
/* Connected Databases
*/
&Scoped-define WINDOW-NAME C-Win
&ANALYZE-SUSPEND _UIB-CODE-BLOCK _CUSTOM _DEFINITIONS C-Win
/*
* Main program for DataDigger
*/
/* Parameter tells if we are in read-only mode */
&IF "{&uib_is_running}" = "" &THEN
DEFINE INPUT PARAMETER plReadOnlyDigger AS LOGICAL NO-UNDO.
&ELSE
DEFINE VARIABLE plReadOnlyDigger AS LOGICAL INITIAL FALSE NO-UNDO.
&ENDIF
CREATE WIDGET-POOL.
/* *************************** Definitions ************************** */
/* Buildnr, temp-tables and forward defs */
{ DataDigger.i }
{ resizable_dict.i } /* thanks to Sebastien Lacroix */
/* Constants for page numbers */
&GLOBAL-DEFINE PAGE-TABLES 1
&GLOBAL-DEFINE PAGE-FAVOURITES 2
&GLOBAL-DEFINE PAGE-FIELDS 3
&GLOBAL-DEFINE PAGE-INDEXES 4
/* Constants for arrows in hint frame */
&GLOBAL-DEFINE ARROW-NONE 0
&GLOBAL-DEFINE ARROW-LEFT-UP 1
&GLOBAL-DEFINE ARROW-RIGHT-UP 2
&GLOBAL-DEFINE ARROW-RIGHT-DOWN 3
&GLOBAL-DEFINE ARROW-LEFT-DOWN 4
/* TT for the generic timer OCX */
DEFINE TEMP-TABLE ttTimer NO-UNDO RCODE-INFORMATION
FIELD cProc AS CHARACTER
FIELD iTime AS INTEGER
FIELD tNext AS DATETIME
INDEX idxNext IS PRIMARY tNext
INDEX idxProc cProc.
/* TT for showing record in a new window */
DEFINE TEMP-TABLE ttView NO-UNDO RCODE-INFORMATION
FIELD iHor AS INTEGER
FIELD iVer AS INTEGER
FIELD cValue AS CHARACTER FORMAT 'x(20)'
.
/* TT to save widths of columns for ttView */
DEFINE TEMP-TABLE ttColumnWidth NO-UNDO RCODE-INFORMATION
FIELD iHor AS INTEGER
FIELD iWidth AS INTEGER
.
/* TT for fonts, used in checkFonts */
DEFINE TEMP-TABLE ttFont NO-UNDO RCODE-INFORMATION
FIELD iFontNr AS INTEGER
FIELD cFontName AS CHARACTER
.
/* TT for sorting combo box */
DEFINE TEMP-TABLE ttItem NO-UNDO RCODE-INFORMATION
FIELD cItem AS CHARACTER
INDEX iPrim IS PRIMARY cItem
.
DEFINE TEMP-TABLE ttColumnHandle NO-UNDO RCODE-INFORMATION
FIELD hBrowse AS HANDLE
FIELD hColumn AS HANDLE
FIELD cColumn AS CHARACTER
INDEX iPrim IS PRIMARY hBrowse
.
/* Local Variable Definitions --- */
DEFINE VARIABLE glReadOnlyDigger AS LOGICAL NO-UNDO. /* org value of plReadOnlyDigger */
DEFINE VARIABLE ghFieldMenu AS HANDLE NO-UNDO. /* Popup menu on brFields */
DEFINE VARIABLE gcCurrentTable AS CHARACTER NO-UNDO.
DEFINE VARIABLE gcCurrentDatabase AS CHARACTER NO-UNDO.
DEFINE VARIABLE gcFieldFilterHandles AS CHARACTER NO-UNDO. /* To save Handles to the filter widgets */
DEFINE VARIABLE gcFieldFilterList AS CHARACTER NO-UNDO.
DEFINE VARIABLE gcDataBrowseColumnNames AS CHARACTER NO-UNDO.
DEFINE VARIABLE gcDataBrowseColumns AS CHARACTER NO-UNDO.
DEFINE VARIABLE gcQueryEditorState AS CHARACTER NO-UNDO.
DEFINE VARIABLE ghDataBrowse AS HANDLE NO-UNDO.
DEFINE VARIABLE ghDataBuffer AS HANDLE NO-UNDO.
DEFINE VARIABLE ghDataQuery AS HANDLE NO-UNDO.
DEFINE VARIABLE ghTableQuery AS HANDLE NO-UNDO.
DEFINE VARIABLE ghTableBuffer AS HANDLE NO-UNDO.
DEFINE VARIABLE ghLockTable AS HANDLE NO-UNDO.
DEFINE VARIABLE ghFieldBrowse AS HANDLE NO-UNDO.
DEFINE VARIABLE ghLastFilterField AS HANDLE NO-UNDO.
DEFINE VARIABLE ghLastIndexFilter AS HANDLE NO-UNDO.
DEFINE VARIABLE giCurrentPage AS INTEGER NO-UNDO. /* 1=fields 2=indexes */
DEFINE VARIABLE giQueryPointer AS INTEGER NO-UNDO.
DEFINE VARIABLE glRowEditActive AS LOGICAL NO-UNDO.
DEFINE VARIABLE glFormatChanged AS LOGICAL NO-UNDO. /* When user changes a format */
DEFINE VARIABLE glHintCancelled AS LOGICAL NO-UNDO. /* When user presses ESC during hint */
DEFINE VARIABLE giMaxQueryTime AS INTEGER NO-UNDO.
DEFINE VARIABLE gcRecordMode AS CHARACTER NO-UNDO.
DEFINE VARIABLE giDataOddRowColor AS INTEGER NO-UNDO EXTENT 2.
DEFINE VARIABLE giDataEvenRowColor AS INTEGER NO-UNDO EXTENT 2.
DEFINE VARIABLE giDefaultFont AS INTEGER NO-UNDO.
DEFINE VARIABLE giFixedFont AS INTEGER NO-UNDO.
DEFINE VARIABLE giMaxColumns AS INTEGER NO-UNDO.
DEFINE VARIABLE giMaxExtent AS INTEGER NO-UNDO.
DEFINE VARIABLE giMaxFilterHistory AS INTEGER NO-UNDO.
DEFINE VARIABLE glDebugMode AS LOGICAL NO-UNDO INITIAL FALSE.
DEFINE VARIABLE giLastDataColumnX AS INTEGER NO-UNDO.
DEFINE VARIABLE glShowFavourites AS LOGICAL NO-UNDO. /* show table list of Favourite tables */
DEFINE VARIABLE glUseTimer AS LOGICAL NO-UNDO. /* use PSTimer? */
DEFINE VARIABLE glShowTour AS LOGICAL NO-UNDO. /* to override 'ShowHints=no' setting */
DEFINE VARIABLE gcPreviousValues AS CHARACTER NO-UNDO. /* used in DataRowDisplay for row coloring */
DEFINE VARIABLE glUseEvenRowColorSet AS LOGICAL NO-UNDO. /* used in DataRowDisplay for row coloring */
/* Vars to keep the values for the colors */
DEFINE VARIABLE giColorFieldFilterFG AS INTEGER NO-UNDO.
DEFINE VARIABLE giColorFieldFilterBG AS INTEGER NO-UNDO.
DEFINE VARIABLE giColorPrimIndexFG AS INTEGER NO-UNDO.
DEFINE VARIABLE giColorPrimIndexBG AS INTEGER NO-UNDO.
DEFINE VARIABLE giColorCustomFormatFG AS INTEGER NO-UNDO.
DEFINE VARIABLE giColorCustomFormatBG AS INTEGER NO-UNDO.
DEFINE VARIABLE giColorCustomOrderFG AS INTEGER NO-UNDO.
DEFINE VARIABLE giColorCustomOrderBG AS INTEGER NO-UNDO.
DEFINE VARIABLE giColorIndexInactivFG AS INTEGER NO-UNDO.
DEFINE VARIABLE giColorIndexInactiveBG AS INTEGER NO-UNDO.
DEFINE VARIABLE giColorFavouriteTableFG AS INTEGER NO-UNDO.
DEFINE VARIABLE giColorFavouriteTableBG AS INTEGER NO-UNDO.
DEFINE VARIABLE glUseColorsFavouriteTable AS LOGICAL NO-UNDO.
/* Procedure used in update check */
PROCEDURE URLDownloadToFileA EXTERNAL "URLMON.DLL" :
DEFINE INPUT PARAMETER pCaller AS LONG.
DEFINE INPUT PARAMETER szURL AS CHARACTER.
DEFINE INPUT PARAMETER szFilename AS CHARACTER.
DEFINE INPUT PARAMETER dwReserved AS LONG.
DEFINE INPUT PARAMETER lpfnCB AS LONG.
END PROCEDURE. /* URLDownloadToFileA */
/* _UIB-CODE-BLOCK-END */
&ANALYZE-RESUME
&ANALYZE-SUSPEND _UIB-PREPROCESSOR-BLOCK
/* ******************** Preprocessor Definitions ******************** */
&Scoped-define PROCEDURE-TYPE Window
&Scoped-define DB-AWARE no
/* Name of designated FRAME-NAME and/or first browse and/or first query */
&Scoped-define FRAME-NAME frMain
&Scoped-define BROWSE-NAME brFields
/* Internal Tables (found by Frame, Query & Browse Queries) */
&Scoped-define INTERNAL-TABLES ttField ttIndex ttTable
/* Definitions for BROWSE brFields */
&Scoped-define FIELDS-IN-QUERY-brFields ttField.lShow ttField.iOrder ttField.cFieldName (IF ttField.iExtent > 0 THEN SUBSTITUTE('&1[&2]', ttField.cDataType, ttField.iExtent) ELSE ttField.cDataType ) @ ttField.cDataType ttField.cFormat ttField.cLabel /* Extra fields as per v19 */ ttField.cInitial ttField.cColLabel ttField.lMandatory ttField.iExtent ttField.iDecimals ttField.iFieldRpos ttField.cValExp ttField.cValMsg ttField.cHelp ttField.cDesc ttField.cViewAs
&Scoped-define ENABLED-FIELDS-IN-QUERY-brFields ttField.lShow ttField.cFormat
&Scoped-define ENABLED-TABLES-IN-QUERY-brFields ttField
&Scoped-define FIRST-ENABLED-TABLE-IN-QUERY-brFields ttField
&Scoped-define SELF-NAME brFields
&Scoped-define QUERY-STRING-brFields FOR EACH ttField
&Scoped-define OPEN-QUERY-brFields OPEN QUERY {&SELF-NAME} FOR EACH ttField.
&Scoped-define TABLES-IN-QUERY-brFields ttField
&Scoped-define FIRST-TABLE-IN-QUERY-brFields ttField
/* Definitions for BROWSE brIndexes */
&Scoped-define FIELDS-IN-QUERY-brIndexes ttIndex.cIndexName ttIndex.cIndexFlags ttIndex.cIndexFields
&Scoped-define ENABLED-FIELDS-IN-QUERY-brIndexes
&Scoped-define SELF-NAME brIndexes
&Scoped-define QUERY-STRING-brIndexes FOR EACH ttIndex
&Scoped-define OPEN-QUERY-brIndexes OPEN QUERY {&SELF-NAME} FOR EACH ttIndex.
&Scoped-define TABLES-IN-QUERY-brIndexes ttIndex
&Scoped-define FIRST-TABLE-IN-QUERY-brIndexes ttIndex
/* Definitions for BROWSE brTables */
&Scoped-define FIELDS-IN-QUERY-brTables ttTable.cTableName ttTable.cDatabase ttTable.iNumQueries
&Scoped-define ENABLED-FIELDS-IN-QUERY-brTables
&Scoped-define SELF-NAME brTables
&Scoped-define QUERY-STRING-brTables FOR EACH ttTable
&Scoped-define OPEN-QUERY-brTables OPEN QUERY {&SELF-NAME} FOR EACH ttTable.
&Scoped-define TABLES-IN-QUERY-brTables ttTable
&Scoped-define FIRST-TABLE-IN-QUERY-brTables ttTable
/* Definitions for FRAME frMain */
&Scoped-define OPEN-BROWSERS-IN-QUERY-frMain ~
~{&OPEN-QUERY-brFields}~
~{&OPEN-QUERY-brIndexes}
/* Standard List Definitions */
&Scoped-Define ENABLED-OBJECTS rctQuery rctEdit fiTableFilter ~
btnClearTableFilter cbDatabaseFilter tgSelAll fiIndexNameFilter ~
fiFlagsFilter fiFieldsFilter btnClearIndexFilter brTables brFields ~
brIndexes tgDebugMode fiTableDesc cbFavouriteGroup ficWhere btnTableFilter ~
btnFavourite btnAddFavGroup btnWhere btnQueries btnView btnTools ~
btnTabTables btnClear btnClearFieldFilter btnClipboard btnMoveBottom ~
btnMoveDown btnMoveTop btnMoveUp btnReset btnTabFavourites btnTabFields ~
btnTabIndexes btnNextQuery btnPrevQuery btnDump btnLoad btnDelete ~
btnResizeVer btnClone btnAdd btnEdit fiFeedback
&Scoped-Define DISPLAYED-OBJECTS fiTableFilter cbDatabaseFilter tgSelAll ~
fiIndexNameFilter fiFlagsFilter fiFieldsFilter fiTableDesc cbFavouriteGroup ~
ficWhere fiFeedback
/* Custom List Definitions */
/* List-1,List-2,List-3,List-4,List-5,List-6 */
&Scoped-define List-1 btnBegins rctQueryButtons cbAndOr cbFields cbOperator ~
ficValue btnInsert btnOr btnAnd btnBracket btnContains btnEq btnGT btnLT ~
btnMatches btnNE btnQt btnToday
&Scoped-define List-2 rcFieldFilter tgSelAll brFields btnClearFieldFilter ~
btnMoveBottom btnMoveDown btnMoveTop btnMoveUp btnReset
&Scoped-define List-3 rcIndexFilter fiIndexNameFilter fiFlagsFilter ~
fiFieldsFilter btnClearIndexFilter brIndexes
/* _UIB-PREPROCESSOR-BLOCK-END */
&ANALYZE-RESUME
/* ************************ Function Prototypes ********************** */
&ANALYZE-SUSPEND _UIB-CODE-BLOCK _FUNCTION-FORWARD createMenu C-Win
FUNCTION createMenu RETURNS HANDLE
( phParent AS HANDLE ) FORWARD.
/* _UIB-CODE-BLOCK-END */
&ANALYZE-RESUME
&ANALYZE-SUSPEND _UIB-CODE-BLOCK _FUNCTION-FORWARD createMenuItem C-Win
FUNCTION createMenuItem RETURNS HANDLE
( phMenu AS HANDLE
, pcType AS CHARACTER
, pcLabel AS CHARACTER
, pcName AS CHARACTER
) FORWARD.
/* _UIB-CODE-BLOCK-END */
&ANALYZE-RESUME
&ANALYZE-SUSPEND _UIB-CODE-BLOCK _FUNCTION-FORWARD FilterModified C-Win
FUNCTION FilterModified RETURNS LOGICAL
( phFilterField AS HANDLE
, plModified AS LOGICAL ) FORWARD.
/* _UIB-CODE-BLOCK-END */
&ANALYZE-RESUME
&ANALYZE-SUSPEND _UIB-CODE-BLOCK _FUNCTION-FORWARD getActiveQueryEditor C-Win
FUNCTION getActiveQueryEditor RETURNS HANDLE
( /* parameter-definitions */ ) FORWARD.
/* _UIB-CODE-BLOCK-END */
&ANALYZE-RESUME
&ANALYZE-SUSPEND _UIB-CODE-BLOCK _FUNCTION-FORWARD getDroppedFiles C-Win
FUNCTION getDroppedFiles RETURNS CHARACTER
( phDropTarget AS HANDLE ) FORWARD.
/* _UIB-CODE-BLOCK-END */
&ANALYZE-RESUME
&ANALYZE-SUSPEND _UIB-CODE-BLOCK _FUNCTION-FORWARD getFieldList C-Win
FUNCTION getFieldList RETURNS CHARACTER
( pcSortBy AS CHARACTER ) FORWARD.
/* _UIB-CODE-BLOCK-END */
&ANALYZE-RESUME
&ANALYZE-SUSPEND _UIB-CODE-BLOCK _FUNCTION-FORWARD getMatchesValue C-Win
FUNCTION getMatchesValue RETURNS CHARACTER
( phFilterField AS HANDLE ) FORWARD.
/* _UIB-CODE-BLOCK-END */
&ANALYZE-RESUME
&ANALYZE-SUSPEND _UIB-CODE-BLOCK _FUNCTION-FORWARD getQueryFromFields C-Win
FUNCTION getQueryFromFields RETURNS CHARACTER
( INPUT pcFieldList AS CHARACTER ) FORWARD.
/* _UIB-CODE-BLOCK-END */
&ANALYZE-RESUME
&ANALYZE-SUSPEND _UIB-CODE-BLOCK _FUNCTION-FORWARD getSafeFormat C-Win
FUNCTION getSafeFormat RETURNS CHARACTER
( pcFormat AS CHARACTER
, pcDataType AS CHARACTER ) FORWARD.
/* _UIB-CODE-BLOCK-END */
&ANALYZE-RESUME
&ANALYZE-SUSPEND _UIB-CODE-BLOCK _FUNCTION-FORWARD getSelectedFields C-Win
FUNCTION getSelectedFields RETURNS CHARACTER
( /* parameter-definitions */ ) FORWARD.
/* _UIB-CODE-BLOCK-END */
&ANALYZE-RESUME
&ANALYZE-SUSPEND _UIB-CODE-BLOCK _FUNCTION-FORWARD getSelectedText C-Win
FUNCTION getSelectedText RETURNS CHARACTER
( INPUT hWidget AS HANDLE ) FORWARD.
/* _UIB-CODE-BLOCK-END */
&ANALYZE-RESUME
&ANALYZE-SUSPEND _UIB-CODE-BLOCK _FUNCTION-FORWARD killMenu C-Win
FUNCTION killMenu RETURNS LOGICAL
( phMenu AS HANDLE ) FORWARD.
/* _UIB-CODE-BLOCK-END */
&ANALYZE-RESUME
&ANALYZE-SUSPEND _UIB-CODE-BLOCK _FUNCTION-FORWARD saveSelectedFields C-Win
FUNCTION saveSelectedFields RETURNS CHARACTER
( /* parameter-definitions */ ) FORWARD.
/* _UIB-CODE-BLOCK-END */
&ANALYZE-RESUME
&ANALYZE-SUSPEND _UIB-CODE-BLOCK _FUNCTION-FORWARD setDebugMode C-Win
FUNCTION setDebugMode RETURNS LOGICAL
( plDebugMode AS LOGICAL ) FORWARD.
/* _UIB-CODE-BLOCK-END */
&ANALYZE-RESUME
&ANALYZE-SUSPEND _UIB-CODE-BLOCK _FUNCTION-FORWARD setFilterFieldColor C-Win
FUNCTION setFilterFieldColor RETURNS LOGICAL
( phWidget AS HANDLE ) FORWARD.
/* _UIB-CODE-BLOCK-END */
&ANALYZE-RESUME
&ANALYZE-SUSPEND _UIB-CODE-BLOCK _FUNCTION-FORWARD setQuery C-Win
FUNCTION setQuery RETURNS LOGICAL
( piPointerChange AS INTEGER ) FORWARD.
/* _UIB-CODE-BLOCK-END */
&ANALYZE-RESUME
&ANALYZE-SUSPEND _UIB-CODE-BLOCK _FUNCTION-FORWARD setQueryEditor C-Win
FUNCTION setQueryEditor RETURNS LOGICAL
( pcQueryEditorState AS CHARACTER ) FORWARD.
/* _UIB-CODE-BLOCK-END */
&ANALYZE-RESUME
&ANALYZE-SUSPEND _UIB-CODE-BLOCK _FUNCTION-FORWARD setRegistry C-Win
FUNCTION setRegistry RETURNS CHARACTER
( pcSection AS CHARACTER
, pcKey AS CHARACTER
, pcValue AS CHARACTER
) FORWARD.
/* _UIB-CODE-BLOCK-END */
&ANALYZE-RESUME
&ANALYZE-SUSPEND _UIB-CODE-BLOCK _FUNCTION-FORWARD setUpdatePanel C-Win
FUNCTION setUpdatePanel RETURNS LOGICAL
( INPUT pcMode AS CHARACTER ) FORWARD.
/* _UIB-CODE-BLOCK-END */
&ANALYZE-RESUME
&ANALYZE-SUSPEND _UIB-CODE-BLOCK _FUNCTION-FORWARD setWindowFreeze C-Win
FUNCTION setWindowFreeze RETURNS LOGICAL
( plWindowsLocked AS LOGICAL ) FORWARD.
/* _UIB-CODE-BLOCK-END */
&ANALYZE-RESUME
&ANALYZE-SUSPEND _UIB-CODE-BLOCK _FUNCTION-FORWARD trimList C-Win
FUNCTION trimList RETURNS CHARACTER
( pcList AS CHARACTER
, pcSep AS CHARACTER
, piItems AS INTEGER
) FORWARD.
/* _UIB-CODE-BLOCK-END */
&ANALYZE-RESUME
/* *********************** Control Definitions ********************** */
/* Define the widget handle for the window */
DEFINE VAR C-Win AS WIDGET-HANDLE NO-UNDO.
/* Menu Definitions */
DEFINE MENU POPUP-MENU-btnView
MENU-ITEM m_View_as_text LABEL "View as TEXT"
MENU-ITEM m_View_as_HTML LABEL "View as HTML"
MENU-ITEM m_View_as_Excel LABEL "View as Excel" .
/* Definitions of handles for OCX Containers */
DEFINE VARIABLE CtrlFrame AS WIDGET-HANDLE NO-UNDO.
DEFINE VARIABLE chCtrlFrame AS COMPONENT-HANDLE NO-UNDO.
/* Definitions of the field level widgets */
DEFINE BUTTON btnClearDataFilter NO-FOCUS FLAT-BUTTON
LABEL "C"
SIZE-PIXELS 20 BY 21 TOOLTIP "clear all filters #(SHIFT-DEL)".
DEFINE BUTTON btnDataSort NO-FOCUS FLAT-BUTTON
LABEL "S"
SIZE-PIXELS 15 BY 21 TOOLTIP "set sorting".
DEFINE VARIABLE fiNumRecords AS CHARACTER FORMAT "X(256)":U
VIEW-AS TEXT
SIZE-PIXELS 90 BY 13 TOOLTIP "nr of results of the query, double click to fetch all records" NO-UNDO.
DEFINE VARIABLE fiNumSelected AS CHARACTER FORMAT "X(256)":U
VIEW-AS TEXT
SIZE-PIXELS 29 BY 13 TOOLTIP "nr of selected rows" NO-UNDO.
DEFINE RECTANGLE rctData
EDGE-PIXELS 2 GRAPHIC-EDGE NO-FILL
SIZE-PIXELS 785 BY 205
BGCOLOR 17 .
DEFINE RECTANGLE rctDataFilter
EDGE-PIXELS 2 GRAPHIC-EDGE
SIZE-PIXELS 783 BY 28
BGCOLOR 12 .
DEFINE BUTTON btGotIt
LABEL "I &Got it"
SIZE-PIXELS 75 BY 24.
DEFINE VARIABLE edHint AS CHARACTER
VIEW-AS EDITOR NO-BOX
SIZE-PIXELS 175 BY 80
BGCOLOR 14 FGCOLOR 9 FONT 4 NO-UNDO.
DEFINE IMAGE imgArrow
FILENAME "adeicon/blank":U TRANSPARENT
SIZE-PIXELS 32 BY 32.
DEFINE BUTTON btnAdd NO-FOCUS FLAT-BUTTON
LABEL "&Add"
SIZE-PIXELS 25 BY 23 TOOLTIP "add a record #(INS)".
DEFINE BUTTON btnAddFavGroup NO-FOCUS FLAT-BUTTON
LABEL "+"
SIZE-PIXELS 17 BY 21 TOOLTIP "add favourites group".
DEFINE BUTTON btnClear NO-FOCUS FLAT-BUTTON
LABEL "&C"
SIZE-PIXELS 20 BY 23 TOOLTIP "clear the where field #(SHIFT-DEL)".
DEFINE BUTTON btnClearFieldFilter NO-FOCUS FLAT-BUTTON
LABEL "C"
CONTEXT-HELP-ID 280
SIZE-PIXELS 20 BY 21 TOOLTIP "clear all filters #(SHIFT-DEL)".
DEFINE BUTTON btnClearIndexFilter
LABEL "C"
CONTEXT-HELP-ID 960
SIZE-PIXELS 20 BY 21 TOOLTIP "clear all filters #(SHIFT-DEL)".
DEFINE BUTTON btnClearTableFilter NO-FOCUS FLAT-BUTTON
LABEL "C"
CONTEXT-HELP-ID 950
SIZE-PIXELS 20 BY 19 TOOLTIP "clear all filters #(SHIFT-DEL)".
DEFINE BUTTON btnClipboard NO-FOCUS FLAT-BUTTON
LABEL "Cp"
SIZE-PIXELS 20 BY 23 TOOLTIP "copy the expression to the clipboard #(CTRL-C)".
DEFINE BUTTON btnClone NO-FOCUS FLAT-BUTTON
LABEL "Cl&one"
SIZE-PIXELS 25 BY 23 TOOLTIP "clone focused record and edit #(ALT-O)".
DEFINE BUTTON btnDelete NO-FOCUS FLAT-BUTTON
LABEL "Del"
SIZE-PIXELS 25 BY 23 TOOLTIP "delete the selected records #(DEL)".
DEFINE BUTTON btnDump NO-FOCUS FLAT-BUTTON
LABEL "&Save"
SIZE-PIXELS 25 BY 23 TOOLTIP "save data to disk #(CTRL-S)".
DEFINE BUTTON btnEdit NO-FOCUS FLAT-BUTTON
LABEL "&Edit"
SIZE-PIXELS 25 BY 23 TOOLTIP "edit the selected records #(ALT-E)".
DEFINE BUTTON btnFavourite NO-FOCUS FLAT-BUTTON
LABEL "F"
SIZE-PIXELS 19 BY 21 TOOLTIP "toggle as favourite".
DEFINE BUTTON btnLoad NO-FOCUS FLAT-BUTTON
LABEL "&Load"
SIZE-PIXELS 25 BY 23 TOOLTIP "load data #(CTRL-L)".
DEFINE BUTTON btnMoveBottom NO-FOCUS FLAT-BUTTON
LABEL "Btm"
SIZE-PIXELS 23 BY 23 TOOLTIP "move selected field to bottom #(CTRL-SHIFT-DOWN)".
DEFINE BUTTON btnMoveDown NO-FOCUS FLAT-BUTTON
LABEL "Dn"
SIZE-PIXELS 23 BY 23 TOOLTIP "move selected field down #(CTRL-DOWN)".
DEFINE BUTTON btnMoveTop NO-FOCUS FLAT-BUTTON
LABEL "Top"
SIZE-PIXELS 23 BY 23 TOOLTIP "move selected field to top #(CTRL-SHIFT-UP)".
DEFINE BUTTON btnMoveUp NO-FOCUS FLAT-BUTTON
LABEL "Up"
SIZE-PIXELS 23 BY 23 TOOLTIP "move selected field up #(CTRL-UP)".
DEFINE BUTTON btnNextQuery NO-FOCUS FLAT-BUTTON
LABEL "->"
SIZE-PIXELS 20 BY 23 TOOLTIP "next query".
DEFINE BUTTON btnPrevQuery NO-FOCUS FLAT-BUTTON
LABEL "<-"
SIZE-PIXELS 20 BY 23 TOOLTIP "previous query".
DEFINE BUTTON btnQueries NO-FOCUS FLAT-BUTTON
LABEL "&PQ"
SIZE-PIXELS 20 BY 23 TOOLTIP "previous queries #(CTRL-SHIFT-P)".
DEFINE BUTTON btnReset NO-FOCUS FLAT-BUTTON
LABEL "R"
SIZE-PIXELS 23 BY 23 TOOLTIP "reset default ordering #(CTRL-SHIFT-HOME)".
DEFINE BUTTON btnResizeVer NO-FOCUS FLAT-BUTTON
LABEL "||||||||||||||||||||||||||"
SIZE 156 BY .24 TOOLTIP "drag me up, Scotty (and down)".
DEFINE BUTTON btnTabFavourites NO-FOCUS FLAT-BUTTON
LABEL "Fav"
CONTEXT-HELP-ID 270
SIZE-PIXELS 23 BY 77 TOOLTIP "show favorites #(CTRL-2)".
DEFINE BUTTON btnTabFields NO-FOCUS FLAT-BUTTON
LABEL "Fld"
CONTEXT-HELP-ID 270
SIZE-PIXELS 23 BY 77 TOOLTIP "show fields #(CTRL-3)".
DEFINE BUTTON btnTabIndexes NO-FOCUS FLAT-BUTTON
LABEL "Idx"
CONTEXT-HELP-ID 270
SIZE-PIXELS 23 BY 77 TOOLTIP "show indexes #(CTRL-4)".
DEFINE BUTTON btnTableFilter NO-FOCUS FLAT-BUTTON
LABEL "Y"
CONTEXT-HELP-ID 950
SIZE-PIXELS 20 BY 19 TOOLTIP "press arrow-down for extra filter options #(CTRL-DOWN)".
DEFINE BUTTON btnTabTables NO-FOCUS FLAT-BUTTON
LABEL "Tbl"
CONTEXT-HELP-ID 270
SIZE-PIXELS 23 BY 77 TOOLTIP "show tables #(CTRL-1)".
DEFINE BUTTON btnTools NO-FOCUS FLAT-BUTTON
LABEL "Tools"
SIZE-PIXELS 30 BY 30 TOOLTIP "tools and settings #(CTRL-T) = jump to #(CTRL-SHIFT-T) = show/hide".
DEFINE BUTTON btnView NO-FOCUS FLAT-BUTTON
LABEL "&View"
SIZE-PIXELS 25 BY 23 TOOLTIP "view selected records #(SHIFT-ENTER) #right click to set type of view".
DEFINE BUTTON btnViewData NO-FOCUS FLAT-BUTTON
LABEL "->"
SIZE-PIXELS 20 BY 23 TOOLTIP "execute the query #(CTRL-ENTER)".
DEFINE BUTTON btnWhere NO-FOCUS FLAT-BUTTON
LABEL "&Where"
SIZE-PIXELS 20 BY 23 TOOLTIP "show expanded query editor #(ALT-DOWN)".
DEFINE VARIABLE cbDatabaseFilter AS CHARACTER FORMAT "X(256)":U
CONTEXT-HELP-ID 950
VIEW-AS COMBO-BOX SORT INNER-LINES 15
LIST-ITEMS "Item 1"
DROP-DOWN-LIST
SIZE-PIXELS 59 BY 21 TOOLTIP "filter on database" NO-UNDO.
DEFINE VARIABLE cbFavouriteGroup AS CHARACTER FORMAT "X(256)":U
VIEW-AS COMBO-BOX SORT INNER-LINES 10
DROP-DOWN-LIST
SIZE-PIXELS 155 BY 21 NO-UNDO.
DEFINE VARIABLE ficWhere AS CHARACTER
CONTEXT-HELP-ID 110
VIEW-AS EDITOR NO-WORD-WRAP
SIZE-PIXELS 595 BY 21 TOOLTIP "query on your table #(CTRL-CURSOR-DOWN)"
FONT 2 NO-UNDO.
DEFINE VARIABLE fiFeedback AS CHARACTER FORMAT "X(256)":U INITIAL "Got a question or feedback?"
VIEW-AS TEXT
SIZE-PIXELS 204 BY 13 TOOLTIP "click me!"
FGCOLOR 7 NO-UNDO.
DEFINE VARIABLE fiFieldsFilter AS CHARACTER FORMAT "X(256)":U INITIAL "Fields"
CONTEXT-HELP-ID 960
VIEW-AS FILL-IN
SIZE-PIXELS 140 BY 21 TOOLTIP "filter indexes on used fields"
FGCOLOR 7 NO-UNDO.
DEFINE VARIABLE fiFlagsFilter AS CHARACTER FORMAT "X(256)":U INITIAL "Flags"
CONTEXT-HELP-ID 960
VIEW-AS FILL-IN
SIZE-PIXELS 55 BY 21 TOOLTIP "filter indexes on index flags"
FGCOLOR 7 NO-UNDO.
DEFINE VARIABLE fiIndexNameFilter AS CHARACTER FORMAT "X(256)":U INITIAL "Index Name"
CONTEXT-HELP-ID 960
VIEW-AS FILL-IN
SIZE-PIXELS 75 BY 21 TOOLTIP "filter indexes on name"
FGCOLOR 7 NO-UNDO.
DEFINE VARIABLE fiTableDesc AS CHARACTER FORMAT "X(256)":U
VIEW-AS FILL-IN
SIZE-PIXELS 188 BY 21 NO-UNDO.
DEFINE VARIABLE fiTableFilter AS CHARACTER FORMAT "X(256)":U INITIAL "Table filter"
CONTEXT-HELP-ID 950
VIEW-AS FILL-IN
SIZE-PIXELS 70 BY 21 TOOLTIP "filter on table names #(ALT-T)"
FGCOLOR 7 NO-UNDO.
DEFINE VARIABLE fiWarning AS CHARACTER FORMAT "X(256)":U
VIEW-AS FILL-IN
SIZE-PIXELS 45 BY 21
BGCOLOR 14 FGCOLOR 12 NO-UNDO.
DEFINE RECTANGLE rcFieldFilter
EDGE-PIXELS 2 GRAPHIC-EDGE
SIZE-PIXELS 466 BY 237
BGCOLOR 12 FGCOLOR 12 .
DEFINE RECTANGLE rcIndexFilter
EDGE-PIXELS 2 GRAPHIC-EDGE
SIZE-PIXELS 315 BY 141
BGCOLOR 12 FGCOLOR 12 .
DEFINE RECTANGLE rcTableFilter
EDGE-PIXELS 2 GRAPHIC-EDGE
SIZE-PIXELS 240 BY 236
BGCOLOR 12 .
DEFINE RECTANGLE rctEdit
EDGE-PIXELS 2 GRAPHIC-EDGE NO-FILL
SIZE-PIXELS 265 BY 35.
DEFINE RECTANGLE rctQuery
EDGE-PIXELS 2 GRAPHIC-EDGE NO-FILL
SIZE-PIXELS 789 BY 290
BGCOLOR 17 .
DEFINE VARIABLE tgDebugMode AS LOGICAL INITIAL yes
LABEL ""
VIEW-AS TOGGLE-BOX
SIZE-PIXELS 15 BY 13 TOOLTIP "disable timers (for debugging)".
DEFINE VARIABLE tgSelAll AS LOGICAL INITIAL yes
LABEL ""
CONTEXT-HELP-ID 280
VIEW-AS TOGGLE-BOX
SIZE-PIXELS 14 BY 15 TOOLTIP "toggle to (de)select all fields" NO-UNDO.
DEFINE BUTTON btnAbout
LABEL "Info"
SIZE-PIXELS 30 BY 30 TOOLTIP "about the DataDigger #(CTRL-SHIFT-B)".
DEFINE BUTTON btnAbout-txt NO-FOCUS FLAT-BUTTON
LABEL "A&bout"
SIZE-PIXELS 100 BY 30 TOOLTIP "about the DataDigger #(CTRL-SHIFT-B)".
DEFINE BUTTON btnConnections
LABEL "&Con"
SIZE-PIXELS 30 BY 30 TOOLTIP "connections #(CTRL-SHIFT-C)".
DEFINE BUTTON btnConnections-txt NO-FOCUS FLAT-BUTTON
LABEL "&Connections"
SIZE-PIXELS 100 BY 30 TOOLTIP "connections #(CTRL-SHIFT-C)".
DEFINE BUTTON btnDataAdmin
LABEL "&ADM"
SIZE-PIXELS 30 BY 30 TOOLTIP "Data Administration #(CTRL-SHIFT-A)".
DEFINE BUTTON btnDataAdmin-txt NO-FOCUS FLAT-BUTTON
LABEL "Data &Admin"
SIZE-PIXELS 100 BY 30 TOOLTIP "Data Administration #(CTRL-SHIFT-A)".
DEFINE BUTTON btnDataDigger
LABEL "DD"
SIZE-PIXELS 30 BY 30 TOOLTIP "start a new DataDigger window #(CTRL-SHIFT-N)".
DEFINE BUTTON btnDataDigger-txt NO-FOCUS FLAT-BUTTON
LABEL "&New Window"
SIZE-PIXELS 100 BY 30 TOOLTIP "start a new DataDigger window #(CTRL-SHIFT-N)".
DEFINE BUTTON btnDict
LABEL "&DD"
SIZE-PIXELS 30 BY 30 TOOLTIP "start the Data Dictionary #(CTRL-SHIFT-D)".
DEFINE BUTTON btnDict-txt NO-FOCUS FLAT-BUTTON
LABEL "Data &Dictionary"
SIZE-PIXELS 100 BY 30 TOOLTIP "start the Data Dictionary #(CTRL-SHIFT-D)".
DEFINE BUTTON btnEditor
LABEL "&Ed"
SIZE-PIXELS 30 BY 30 TOOLTIP "start a Procedure Editor #(CTRL-SHIFT-E)".
DEFINE BUTTON btnEditor-txt NO-FOCUS FLAT-BUTTON
LABEL "&Editor"
SIZE-PIXELS 100 BY 30 TOOLTIP "start a Procedure Editor #(CTRL-SHIFT-E)".
DEFINE BUTTON btnExpand NO-FOCUS FLAT-BUTTON
LABEL "< >"
SIZE-PIXELS 30 BY 30 TOOLTIP "expand or collapse the toolbar #(CTRL-ALT-T)".
DEFINE BUTTON btnExpand-txt NO-FOCUS FLAT-BUTTON
LABEL "Expand/Collapse"
SIZE-PIXELS 100 BY 30 TOOLTIP "expand or collapse the toolbar #(CTRL-ALT-T)".
DEFINE BUTTON btnHelp
LABEL "Help"
SIZE-PIXELS 30 BY 30 TOOLTIP "show quick intro #(CTRL-SHIFT-W)".
DEFINE BUTTON btnHelp-txt NO-FOCUS FLAT-BUTTON
LABEL "&Welcome"
SIZE-PIXELS 100 BY 30 TOOLTIP "show quick intro #(CTRL-SHIFT-W)".
DEFINE BUTTON btnQueries-3
LABEL "&PQ"
SIZE-PIXELS 30 BY 30 TOOLTIP "previous queries #(CTRL-SHIFT-P)".
DEFINE BUTTON btnQueries-txt NO-FOCUS FLAT-BUTTON
LABEL "&Previous Queries"
SIZE-PIXELS 100 BY 30 TOOLTIP "previous queries #(CTRL-SHIFT-P)".
DEFINE BUTTON btnQueryTester
LABEL "&Q"
SIZE-PIXELS 30 BY 30 TOOLTIP "start MCF's Query Tester #(CTRL-SHIFT-Q)".
DEFINE BUTTON btnQueryTester-txt NO-FOCUS FLAT-BUTTON
LABEL "&Query Tester"
SIZE-PIXELS 100 BY 30 TOOLTIP "start MCF's Query Tester #(CTRL-SHIFT-Q)".
DEFINE BUTTON btnSettings
LABEL "&Set"
SIZE-PIXELS 30 BY 30 TOOLTIP "edit your settings file #(CTRL-SHIFT-S)".
DEFINE BUTTON btnSettings-txt NO-FOCUS FLAT-BUTTON
LABEL "&Settings"
SIZE-PIXELS 100 BY 30 TOOLTIP "edit your settings file #(CTRL-SHIFT-S)".
DEFINE BUTTON btnTools-2 NO-FOCUS FLAT-BUTTON
LABEL "Tools"
SIZE-PIXELS 30 BY 30 TOOLTIP "tools and settings #(CTRL-T) = jump to #(CTRL-SHIFT-T) = show/hide".
DEFINE BUTTON btnTools-txt NO-FOCUS FLAT-BUTTON
LABEL "Show / Hide"
SIZE-PIXELS 100 BY 30 TOOLTIP "show or hide the toolbar".
DEFINE BUTTON btnAnd NO-FOCUS
LABEL "and"
CONTEXT-HELP-ID 1050
SIZE-PIXELS 40 BY 21 TOOLTIP "insert this text into the where field".
DEFINE BUTTON btnBegins NO-FOCUS
LABEL "begins"
CONTEXT-HELP-ID 1050
SIZE-PIXELS 80 BY 21 TOOLTIP "insert this text into the where field".
DEFINE BUTTON btnBracket NO-FOCUS
LABEL "()"
CONTEXT-HELP-ID 1050
SIZE-PIXELS 40 BY 21 TOOLTIP "insert this text into the where field"
FONT 0.
DEFINE BUTTON btnCancel-2 DEFAULT
LABEL "Cancel"
CONTEXT-HELP-ID 1050
SIZE-PIXELS 75 BY 24
BGCOLOR 8 .
DEFINE BUTTON btnClear-2
LABEL "&C"
CONTEXT-HELP-ID 1050
SIZE-PIXELS 20 BY 23 TOOLTIP "clear the where field".
DEFINE BUTTON btnClipboard-2
LABEL "Cp"
CONTEXT-HELP-ID 1050
SIZE-PIXELS 20 BY 23 TOOLTIP "copy the expression to the clipboard".
DEFINE BUTTON btnContains NO-FOCUS
LABEL "contains"
CONTEXT-HELP-ID 1050
SIZE-PIXELS 80 BY 21 TOOLTIP "insert this text into the where field".
DEFINE BUTTON btnEq NO-FOCUS
LABEL "="
CONTEXT-HELP-ID 1050
SIZE-PIXELS 40 BY 21 TOOLTIP "insert this text into the where field".
DEFINE BUTTON btnGT NO-FOCUS
LABEL ">"
CONTEXT-HELP-ID 1050
SIZE-PIXELS 40 BY 21 TOOLTIP "insert this text into the where field".
DEFINE BUTTON btnInsert
LABEL "+"
CONTEXT-HELP-ID 1050
SIZE-PIXELS 20 BY 23 TOOLTIP "insert the expression into the where field".
DEFINE BUTTON btnLT NO-FOCUS
LABEL "<"
CONTEXT-HELP-ID 1050
SIZE-PIXELS 40 BY 21 TOOLTIP "insert this text into the where field".
DEFINE BUTTON btnMatches NO-FOCUS
LABEL "matches"
CONTEXT-HELP-ID 1050
SIZE-PIXELS 80 BY 21 TOOLTIP "insert this text into the where field".
DEFINE BUTTON btnNE NO-FOCUS
LABEL "<>"
CONTEXT-HELP-ID 1050
SIZE-PIXELS 40 BY 21 TOOLTIP "insert this text into the where field".
DEFINE BUTTON btnOK AUTO-GO DEFAULT
LABEL "OK"
CONTEXT-HELP-ID 1050
SIZE-PIXELS 75 BY 24
BGCOLOR 8 .
DEFINE BUTTON btnOr NO-FOCUS
LABEL "or"
CONTEXT-HELP-ID 1050
SIZE-PIXELS 40 BY 21 TOOLTIP "insert this text into the where field".
DEFINE BUTTON btnQt NO-FOCUS
LABEL "~"~""
CONTEXT-HELP-ID 1050
SIZE-PIXELS 40 BY 21 TOOLTIP "insert this text into the where field"
FONT 0.
DEFINE BUTTON btnQueries-2
LABEL "&Q"
CONTEXT-HELP-ID 1050
SIZE-PIXELS 20 BY 23 TOOLTIP "show previous queries on this table".
DEFINE BUTTON btnToday NO-FOCUS
LABEL "today"
CONTEXT-HELP-ID 1050
SIZE-PIXELS 80 BY 21 TOOLTIP "insert this text into the where field".
DEFINE BUTTON btnViewData-2
LABEL "->"
CONTEXT-HELP-ID 1050
SIZE-PIXELS 20 BY 23 TOOLTIP "execute the query".
DEFINE VARIABLE cbAndOr AS CHARACTER FORMAT "X(256)":U
LABEL "&Where"
CONTEXT-HELP-ID 1050
VIEW-AS COMBO-BOX INNER-LINES 5
LIST-ITEMS "","AND","OR"
DROP-DOWN-LIST
SIZE-PIXELS 50 BY 21 TOOLTIP "preceding AND or OR for the expression" NO-UNDO.
DEFINE VARIABLE cbFields AS CHARACTER FORMAT "X(256)":U
CONTEXT-HELP-ID 1050
VIEW-AS COMBO-BOX SORT INNER-LINES 10
DROP-DOWN-LIST
SIZE-PIXELS 186 BY 21 TOOLTIP "field used in the expression"
FONT 2 NO-UNDO.
DEFINE VARIABLE cbOperator AS CHARACTER FORMAT "X(256)":U
CONTEXT-HELP-ID 1050
VIEW-AS COMBO-BOX INNER-LINES 10
LIST-ITEMS "","=","<>",">",">=","<","<=","begins","matches","contains"
DROP-DOWN-LIST
SIZE-PIXELS 85 BY 21 TOOLTIP "operator used in the expression"
FONT 2 NO-UNDO.
DEFINE VARIABLE ficWhere2 AS CHARACTER
CONTEXT-HELP-ID 1050
VIEW-AS EDITOR SCROLLBAR-VERTICAL
SIZE-PIXELS 501 BY 175 TOOLTIP "alt-cursor-up / down to view/hide query editor"
FONT 2 NO-UNDO.
DEFINE VARIABLE ficValue AS CHARACTER FORMAT "X(256)":U
CONTEXT-HELP-ID 1050
VIEW-AS FILL-IN
SIZE-PIXELS 210 BY 23 TOOLTIP "the literal value for the expression"
FONT 2 NO-UNDO.
DEFINE RECTANGLE rctQueryButtons
EDGE-PIXELS 2 GRAPHIC-EDGE NO-FILL
SIZE-PIXELS 610 BY 190.
/* Query definitions */
&ANALYZE-SUSPEND
DEFINE QUERY brFields FOR
ttField SCROLLING.
DEFINE QUERY brIndexes FOR
ttIndex SCROLLING.
DEFINE QUERY brTables FOR
ttTable SCROLLING.
&ANALYZE-RESUME
/* Browse definitions */
DEFINE BROWSE brFields
&ANALYZE-SUSPEND _UIB-CODE-BLOCK _DISPLAY-FIELDS brFields C-Win _FREEFORM
QUERY brFields DISPLAY
ttField.lShow VIEW-AS TOGGLE-BOX
ttField.iOrder
ttField.cFieldName
(IF ttField.iExtent > 0
THEN SUBSTITUTE('&1[&2]', ttField.cDataType, ttField.iExtent)
ELSE ttField.cDataType ) @ ttField.cDataType
ttField.cFormat
ttField.cLabel
/* Extra fields as per v19 */
ttField.cInitial
ttField.cColLabel
ttField.lMandatory
ttField.iExtent
ttField.iDecimals
ttField.iFieldRpos
ttField.cValExp
ttField.cValMsg
ttField.cHelp
ttField.cDesc
ttField.cViewAs
ENABLE
ttField.lShow
ttField.cFormat
/* _UIB-CODE-BLOCK-END */
&ANALYZE-RESUME
WITH NO-ROW-MARKERS SEPARATORS NO-VALIDATE
&IF '{&WINDOW-SYSTEM}' = 'TTY':U &THEN SIZE 92 BY 11
&ELSE SIZE-PIXELS 460 BY 231 &ENDIF FIT-LAST-COLUMN TOOLTIP "fields of selected table"
CONTEXT-HELP-ID 80.
DEFINE BROWSE brIndexes
&ANALYZE-SUSPEND _UIB-CODE-BLOCK _DISPLAY-FIELDS brIndexes C-Win _FREEFORM
QUERY brIndexes DISPLAY
ttIndex.cIndexName
ttIndex.cIndexFlags
ttIndex.cIndexFields
/* _UIB-CODE-BLOCK-END */
&ANALYZE-RESUME
WITH NO-ROW-MARKERS SEPARATORS NO-VALIDATE
&IF '{&WINDOW-SYSTEM}' = 'TTY':U &THEN SIZE 62 BY 6
&ELSE SIZE-PIXELS 308 BY 132 &ENDIF FIT-LAST-COLUMN TOOLTIP "indexes of the table"
CONTEXT-HELP-ID 90.
DEFINE BROWSE brTables
&ANALYZE-SUSPEND _UIB-CODE-BLOCK _DISPLAY-FIELDS brTables C-Win _FREEFORM
QUERY brTables DISPLAY
ttTable.cTableName
ttTable.cDatabase
ttTable.iNumQueries
/* _UIB-CODE-BLOCK-END */
&ANALYZE-RESUME
WITH NO-ROW-MARKERS
&IF '{&WINDOW-SYSTEM}' = 'TTY':U &THEN SIZE 47 BY 10
&ELSE SIZE-PIXELS 234 BY 210 &ENDIF FIT-LAST-COLUMN TOOLTIP "(F) to set/unset as favourite"
CONTEXT-HELP-ID 70.
/* ************************ Frame Definitions *********************** */
DEFINE FRAME frMain
fiTableFilter AT Y 3 X 56 NO-LABEL
btnClearTableFilter AT Y 3 X 237 WIDGET-ID 222
cbDatabaseFilter AT Y 3 X 117 COLON-ALIGNED NO-LABEL
tgSelAll AT Y 5 X 345 WIDGET-ID 6
fiIndexNameFilter AT Y 5 X 815 COLON-ALIGNED NO-LABEL WIDGET-ID 168
fiFlagsFilter AT Y 5 X 890 COLON-ALIGNED NO-LABEL WIDGET-ID 164
fiFieldsFilter AT Y 5 X 945 COLON-ALIGNED NO-LABEL WIDGET-ID 166
btnClearIndexFilter AT Y 5 X 1095 WIDGET-ID 160
brTables AT Y 27 X 56 WIDGET-ID 300
brFields AT Y 27 X 325 WIDGET-ID 100
brIndexes AT Y 28 X 829 WIDGET-ID 200
tgDebugMode AT Y 29 X 38 WIDGET-ID 238 NO-TAB-STOP
fiTableDesc AT Y 236 X 57 NO-LABEL WIDGET-ID 90
cbFavouriteGroup AT Y 236 X 75 COLON-ALIGNED NO-LABEL WIDGET-ID 316
ficWhere AT Y 266 X 80 NO-LABEL
fiWarning AT Y 520 X 480 COLON-ALIGNED NO-LABEL WIDGET-ID 172
btnTableFilter AT Y 3 X 257 WIDGET-ID 38
btnFavourite AT Y 236 X 269 WIDGET-ID 310
btnAddFavGroup AT Y 236 X 248 WIDGET-ID 318
btnWhere AT Y 265 X 683 WIDGET-ID 236