Sunteți pe pagina 1din 11

1 /*

2 Header : stdwin.ch
3 Copyright (c) 1997-2003, Microsiga Software SA
4 All rights reserved.
5 */
6
7 #ifndef _SET_CH
8 #include "Set.ch"
9 #endif
10
11 #ifndef _STDWIN_CH
12 #define _STDWIN_CH
13
14 #command DO WHILE <exp> => while <exp>
15
16 #command END <x> => end
17 #command END SEQUENCE => end
18 #command ENDSEQUENCE => end
19 #command ENDDO <*x*> => enddo
20 #command ENDIF <*x*> => endif
21 #command ENDCASE <*x*> => endcase
22 #command ENDFOR [ <*x*> ] => next
23
24 #command NEXT <v> [TO <x>] [STEP <s>] ;
25 => next
26
27 #command DO <proc>.PRG [WITH <list,...>] ;
28 => do <proc> [ WITH <list>]
29
30 #command CALL <proc>() [WITH <list,...>] ;
31 => call <proc> [ WITH <list>]
32
33 #command STORE <value> TO <var1> [, <varN> ] ;
34 => <var1> := [ <varN> := ] <value>
35
36 #command EJECT => __Eject()
37
38 #command SET ECHO <*x*> =>
39 #command SET HEADING <*x*> =>
40 #command SET MENU <*x*> =>
41 #command SET STATUS <*x*> =>
42 #command SET STEP <*x*> =>
43 #command SET SAFETY <*x*> =>
44 #command SET TALK <*x*> =>
45 #command SET PROCEDURE TO =>
46 #command SET PROCEDURE TO <f> => _ProcReq_( <(f)> )
47
48 #command SET EXACT <x:ON,OFF,&> => Set( _SET_EXACT, <(x)> )
49 #command SET EXACT (<x>) => Set( _SET_EXACT, <x> )
50
51 #command SET FIXED <x:ON,OFF,&> => Set( _SET_FIXED, <(x)> )
52 #command SET FIXED (<x>) => Set( _SET_FIXED, <x> )
53
54 #command SET DECIMALS TO <x> => Set( _SET_DECIMALS, <x> )
55 #command SET DECIMALS TO => Set( _SET_DECIMALS, 0 )
56
57 #command SET PATH TO <*path*> => Set( _SET_PATH, <(path)> )
58 #command SET PATH TO => Set( _SET_PATH, "" )
59
60 #command SET DEFAULT TO <(path)> => Set( _SET_DEFAULT, <(path)> )
61 #command SET DEFAULT TO => Set( _SET_DEFAULT, "" )
62
63 #command SET CENTURY <x:ON,OFF,&> => __SetCentury( <(x)> )
64 #command SET CENTURY (<x>) => __SetCentury( <x> )
65 #command SET EPOCH TO <year> => Set( _SET_EPOCH, <year> )
66 #command SET DATE FORMAT [TO] <c> => Set( _SET_DATEFORMAT, <c> )
67
68 #define _DFSET(x, y) Set( _SET_DATEFORMAT, if(__SetCentury(), x, y) )
69
70 #command SET DATE [TO] AMERICAN => _DFSET( "mm/dd/yyyy", "mm/dd/yy" )
71 #command SET DATE [TO] ANSI => _DFSET( "yyyy.mm.dd", "yy.mm.dd" )
72 #command SET DATE [TO] BRITISH => _DFSET( "dd/mm/yyyy", "dd/mm/yy" )
73 #command SET DATE [TO] FRENCH => _DFSET( "dd/mm/yyyy", "dd/mm/yy" )
74 #command SET DATE [TO] GERMAN => _DFSET( "dd.mm.yyyy", "dd.mm.yy" )
75 #command SET DATE [TO] ITALIAN => _DFSET( "dd-mm-yyyy", "dd-mm-yy" )
76 #command SET DATE [TO] JAPANESE => _DFSET( "yyyy/mm/dd", "yy/mm/dd" )
77 #command SET DATE [TO] USA => _DFSET( "mm-dd-yyyy", "mm-dd-yy" )
78
79 #command SET ALTERNATE <x:ON,OFF,&> => Set( _SET_ALTERNATE, <(x)> )
80 #command SET ALTERNATE (<x>) => Set( _SET_ALTERNATE, <x> )
81
82 #command SET ALTERNATE TO => Set( _SET_ALTFILE, "" )
83
84 #command SET ALTERNATE TO <(file)> [<add: ADDITIVE>] ;
85 => Set( _SET_ALTFILE, <(file)>, <.add.> )
86
87 #command SET CONSOLE <x:ON,OFF,&> => Set( _SET_CONSOLE, <(x)> )
88 #command SET CONSOLE (<x>) => Set( _SET_CONSOLE, <x> )
89
90 #command SET MARGIN TO <x> => Set( _SET_MARGIN, <x> )
91 #command SET MARGIN TO => Set( _SET_MARGIN, 0 )
92
93 #command SET PRINTER <x:ON,OFF,&> => Set( _SET_PRINTER, <(x)> )
94 #command SET PRINTER (<x>) => Set( _SET_PRINTER, <x> )
95
96 #command SET PRINTER TO => Set( _SET_PRINTFILE, "" )
97
98 #command SET PRINTER TO <(file)> [<add: ADDITIVE>] ;
99 => Set( _SET_PRINTFILE, <(file)>, <.add.> )
100
101 #command SET DEVICE TO SCREEN => Set( _SET_DEVICE, "SCREEN" )
102 #command SET DEVICE TO PRINTER => Set( _SET_DEVICE, "PRINTER" )
103
104 #command SET COLOR TO [<*spec*>] => SetColor( #<spec> )
105 #command SET COLOR TO ( <c> ) => SetColor( <c> )
106 #command SET COLOUR TO [<*spec*>] => SET COLOR TO [<spec>]
107
108 #command SET CURSOR <x:ON,OFF,&> ;
109 => SetCursor( if(Upper(<(x)>) == "ON", 1, 0) )
110
111 #command SET CURSOR (<x>) ;
112 => SetCursor( if(<x>, 1, 0) )
113
114 #command SET EVENTMASK TO <x> => Set( _SET_EVENTMASK, <x> )
115
116 #command SET VIDEOMODE TO <x> => Set( _SET_VIDEOMODE, <x> )
117
118
119 #command SET SCOPETOP TO => OrdScope( 0, nil )
120 #command SET SCOPETOP TO <x> => OrdScope( 0, <x> )
121
122 #command SET SCOPEBOTTOM TO => OrdScope( 1, nil )
123 #command SET SCOPEBOTTOM TO <x> => OrdScope( 1, <x> )
124
125 #command SET SCOPE TO => OrdScope( 0, nil );
126 ; OrdScope( 1, nil )
127 #command SET SCOPE TO <x>, <y> => OrdScope( 0, <x> );
128 ; OrdScope( 1, <y> )
129 #command SET SCOPE TO <x> => OrdScope( 0, <x> );
130 ; OrdScope( 1, <x> )
131 #command SET SCOPE TO ,<x> => OrdScope( 1, <x> )
132
133 #command SET MBLOCKSIZE TO <x> => Set( _SET_MBLOCKSIZE, <x> )
134 #command SET MEMOBLOCK TO <x> => Set( _SET_MBLOCKSIZE, <x> )
135 #command SET MFILEEXT TO <x> => Set( _SET_MFILEEXT, <x> )
136
137 #command SET STRICTREAD <x:ON,OFF,&> => Set( _SET_STRICTREAD, <(x)> )
138 #command SET STRICTREAD (<x>) => Set( _SET_STRICTREAD, <x> )
139
140 #command SET OPTIMIZE <x:ON,OFF,&> => Set( _SET_OPTIMIZE, <(x)> )
141 #command SET OPTIMIZE (<x>) => Set( _SET_OPTIMIZE, <x> )
142
143 #command SET AUTOPEN <x:ON,OFF,&> => Set( _SET_AUTOPEN, <(x)> )
144 #command SET AUTOPEN (<x>) => Set( _SET_AUTOPEN, <x> )
145
146 #command SET AUTORDER TO => Set( _SET_AUTORDER, 0 )
147 #command SET AUTORDER TO <x> => Set( _SET_AUTORDER, <x> )
148
149 #command SET AUTOSHARE TO => Set( _SET_AUTOSHARE, 0 )
150 #command SET AUTOSHARE TO <x> => Set( _SET_AUTOSHARE, <x> )
151
152 #command SET BELL <x:ON,OFF,&> => Set( _SET_BELL, <(x)> )
153 #command SET BELL (<x>) => Set( _SET_BELL, <x> )
154
155 #command SET CONFIRM <x:ON,OFF,&> => Set( _SET_CONFIRM, <(x)> )
156 #command SET CONFIRM (<x>) => Set( _SET_CONFIRM, <x> )
157
158 #command SET ESCAPE <x:ON,OFF,&> => Set( _SET_ESCAPE, <(x)> )
159 #command SET ESCAPE (<x>) => Set( _SET_ESCAPE, <x> )
160
161 #command SET INTENSITY <x:ON,OFF,&> => Set( _SET_INTENSITY, <(x)> )
162 #command SET INTENSITY (<x>) => Set( _SET_INTENSITY, <x> )
163
164 #command SET SCOREBOARD <x:ON,OFF,&> => Set( _SET_SCOREBOARD, <(x)> )
165 #command SET SCOREBOARD (<x>) => Set( _SET_SCOREBOARD, <x> )
166
167 #command SET DELIMITERS <x:ON,OFF,&> => Set( _SET_DELIMITERS, <(x)> )
168 #command SET DELIMITERS (<x>) => Set( _SET_DELIMITERS, <x> )
169
170 #command SET DELIMITERS TO <c> => Set( _SET_DELIMCHARS, <c> )
171 #command SET DELIMITERS TO DEFAULT => Set( _SET_DELIMCHARS, "::" )
172 #command SET DELIMITERS TO => Set( _SET_DELIMCHARS, "::" )
173
174 #command SET FORMAT TO <proc> ;
175 ;
176 => _ProcReq_( <(proc)> + ".FMT" ) ;
177 ; __SetFormat( {|| <proc>()} )
178
179 #command SET FORMAT TO <proc>.<ext> ;
180 ;
181 => _ProcReq_( <(proc)> + "." + <(ext)> ) ;
182 ; __SetFormat( {|| <proc>()} )
183
184 #command SET FORMAT TO <x:&> ;
185 ;
186 => if ( Empty(<(x)>) ) ;
187 ; SET FORMAT TO ;
188 ; else ;
189 ; __SetFormat( &("{||" + <(x)> + "()}") ) ;
190 ; end
191
192 #command SET FORMAT TO ;
193 => __SetFormat()
194
195 #command SAVE SCREEN => __XSaveScreen()
196 #command RESTORE SCREEN => __XRestScreen()
197
198 #command SAVE SCREEN TO <var> ;
199 => <var> := SaveScreen( 0, 0, Maxrow(), Maxcol() )
200
201 #command RESTORE SCREEN FROM <c> ;
202 => RestScreen( 0, 0, Maxrow(), Maxcol(), <c> )
203
204 #command WAIT [<c>] => __Wait( <c> )
205 #command WAIT [<c>] TO <var> => <var> := __Wait( <c> )
206 #command ACCEPT [<c>] TO <var> => <var> := __Accept( <c> )
207
208 #command INPUT [<c>] TO <var> ;
209 ;
210 => if ( !Empty(__Accept(<c>)) ) ;
211 ; <var> := &( __AcceptStr() ) ;
212 ; end
213
214 #command KEYBOARD <c> => __Keyboard( <c> )
215
216 #command SET KEY <n> TO <proc> ;
217 => SetKey( <n>, {|p, l, v| <proc>(p, l, v)} )
218
219 #command SET KEY <n> TO <proc> ( [<list,...>] ) ;
220 => SET KEY <n> TO <proc>
221
222 #command SET KEY <n> TO <proc:&> ;
223 ;
224 => if ( Empty(<(proc)>) ) ;
225 ; SetKey( <n>, NIL ) ;
226 ; else ;
227 ; SetKey( <n>, {|p, l, v| <proc>(p, l, v)} ) ;
228 ; end
229
230 #command SET KEY <n> [TO] ;
231 => SetKey( <n>, NIL )
232
233 #command SET FUNCTION <n> [TO] [<c>] ;
234 => __SetFunction( <n>, <c> )
235
236 #command CLEAR MEMORY => __MClear()
237 #command RELEASE <vars,...> => __MXRelease( <"vars"> )
238 #command RELEASE ALL => __MRelease("*", .t.)
239 #command RELEASE ALL LIKE <skel> => __MRelease( #<skel>, .t. )
240 #command RELEASE ALL EXCEPT <skel> => __MRelease( #<skel>, .f. )
241
242 #command RESTORE [FROM <(file)>] [<add: ADDITIVE>] ;
243 => __MRestore( <(file)>, <.add.> )
244
245 #command SAVE ALL LIKE <skel> TO <(file)> ;
246 => __MSave( <(file)>, <(skel)>, .t. )
247
248 #command SAVE TO <(file)> ALL LIKE <skel> ;
249 => __MSave( <(file)>, <(skel)>, .t. )
250
251 #command SAVE ALL EXCEPT <skel> TO <(file)> ;
252 => __MSave( <(file)>, <(skel)>, .f. )
253
254 #command SAVE TO <(file)> ALL EXCEPT <skel> ;
255 => __MSave( <(file)>, <(skel)>, .f. )
256
257 #command SAVE [TO <(file)>] [ALL] ;
258 => __MSave( <(file)>, "*", .t. )
259
260 #command ERASE <(file)> => FErase( <(file)> )
261 #command DELETE FILE <(file)> => FErase( <(file)> )
262 #command RENAME <(old)> TO <(new)> => FRename( <(old)>, <(new)> )
263
264 #command COPY FILE <(src)> TO <(dest)> => __CopyFile( <(src)>, <(dest)> )
265 #command DIR [<(spec)>] => __Dir( <(spec)> )
266
267 #command TYPE <(file)> [<print: TO PRINTER>] [TO FILE <(dest)>] ;
268 ;
269 => __TypeFile( <(file)>, <.print.> ) ;
270 [; COPY FILE <(file)> TO <(dest)> ]
271
272 #command TYPE <(file)> [<print: TO PRINTER>] ;
273 ;
274 => __TypeFile( <(file)>, <.print.> )
275
276 #command REQUEST <vars,...> => EXTERNAL <vars>
277
278 #command CANCEL => __Quit()
279 #command QUIT => __Quit()
280
281 #command RUN <*cmd*> => __Run( #<cmd> )
282 #command RUN ( <c> ) => __Run( <c> )
283 #command ! <*cmd*> => RUN <cmd>
284 #command RUN = <xpr> => ( run := <xpr> )
285 #command RUN := <xpr> => ( run := <xpr> )
286
287
288 /***
289 * DB SETs
290 ***/
291
292 #command SET EXCLUSIVE <x:ON,OFF,&> => Set( _SET_EXCLUSIVE, <(x)> )
293 #command SET EXCLUSIVE (<x>) => Set( _SET_EXCLUSIVE, <x> )
294
295 #command SET SOFTSEEK <x:ON,OFF,&> => Set( _SET_SOFTSEEK, <(x)> )
296 #command SET SOFTSEEK (<x>) => Set( _SET_SOFTSEEK, <x> )
297
298 #command SET UNIQUE <x:ON,OFF,&> => Set( _SET_UNIQUE, <(x)> )
299 #command SET UNIQUE (<x>) => Set( _SET_UNIQUE, <x> )
300
301 #command SET DELETED <x:ON,OFF,&> => Set( _SET_DELETED, <(x)> )
302 #command SET DELETED (<x>) => Set( _SET_DELETED, <x> )
303
304 #command SELECT <whatever> => dbSelectArea( <(whatever)> )
305 #command SELECT <f>([<list,...>]) => dbSelectArea( <f>(<list>) )
306
307 #command USE => dbCloseArea()
308
309 #command USE <(db)> ;
310 [VIA <rdd>] ;
311 [ALIAS <a>] ;
312 [<new: NEW>] ;
313 [<ex: EXCLUSIVE>] ;
314 [<sh: SHARED>] ;
315 [<ro: READONLY>] ;
316 [INDEX <(index1)> [, <(indexn)>]] ;
317 ;
318 => dbUseArea( ;
319 <.new.>, <rdd>, <(db)>, <(a)>, ;
320 if(<.sh.> .or. <.ex.>, !<.ex.>, NIL), <.ro.> ;
321 ) ;
322 ;
323 [; dbSetIndex( <(index1)> )] ;
324 [; dbSetIndex( <(indexn)> )]
325
326 #command APPEND BLANK => dbAppend()
327 #command PACK => __dbPack()
328 #command ZAP => __dbZap()
329 #command UNLOCK => dbUnlock()
330 #command UNLOCK ALL => dbUnlockAll()
331 #command COMMIT => dbCommitAll()
332
333 #command GOTO <n> => dbGoto(<n>)
334 #command GO <n> => dbGoto(<n>)
335 #command GOTO TOP => dbGoTop()
336 #command GO TOP => dbGoTop()
337 #command GOTO BOTTOM => dbGoBottom()
338 #command GO BOTTOM => dbGoBottom()
339
340 #command SKIP => dbSkip(1)
341 #command SKIP <n> => dbSkip( <n> )
342 #command SKIP ALIAS <a> => <a> -> ( dbSkip(1) )
343 #command SKIP <n> ALIAS <a> => <a> -> ( dbSkip(<n>) )
344
345 #command SEEK <xpr> ;
346 [<soft: SOFTSEEK>] ;
347 [<last: LAST>] ;
348 => dbSeek( <xpr>, if( <.soft.>, .T., NIL ), if( <.last.>, .T., NIL ) )
349
350 #command FIND <*text*> => dbSeek( <(text)> )
351 #command FIND := <xpr> => ( find := <xpr> )
352 #command FIND = <xpr> => ( find := <xpr> )
353
354 #command CONTINUE => __dbContinue()
355
356 #command LOCATE ;
357 [FOR <for>] ;
358 [WHILE <while>] ;
359 [NEXT <next>] ;
360 [RECORD <rec>] ;
361 [<rest:REST>] ;
362 [ALL] ;
363 ;
364 => __dbLocate( <{for}>, <{while}>, <next>, <rec>, <.rest.> )
365
366 #command SET RELATION TO => dbClearRel()
367
368 #command SET RELATION ;
369 [<add:ADDITIVE>] ;
370 [TO <key1> INTO <(alias1)> [, [TO] <keyn> INTO <(aliasn)>]] ;
371 ;
372 => if ( !<.add.> ) ;
373 ; dbClearRel() ;
374 ; end ;
375 ;
376 ; dbSetRelation( <(alias1)>, <{key1}>, <"key1"> ) ;
377 [; dbSetRelation( <(aliasn)>, <{keyn}>, <"keyn"> )]
378
379 #command SET FILTER TO => dbClearFilter()
380 #command SET FILTER TO <xpr> => dbSetFilter( <{xpr}>, <"xpr"> )
381
382 #command SET FILTER TO <x:&> ;
383 => if ( Empty(<(x)>) ) ;
384 ; dbClearFilter() ;
385 ; else ;
386 ; dbSetFilter( <{x}>, <(x)> ) ;
387 ; end
388
389 #command REPLACE [ <f1> WITH <x1> [, <fn> WITH <xn>] ] ;
390 [FOR <for>] ;
391 [WHILE <while>] ;
392 [NEXT <next>] ;
393 [RECORD <rec>] ;
394 [<rest:REST>] ;
395 [ALL] ;
396 ;
397 => DBEval( ;
398 {|| _FIELD-><f1> := <x1> [, _FIELD-><fn> := <xn>]}, ;
399 <{for}>, <{while}>, <next>, <rec>, <.rest.> ;
400 )
401
402 #command REPLACE <f1> WITH <v1> [, <fN> WITH <vN> ] ;
403 => _FIELD-><f1> := <v1> [; _FIELD-><fN> := <vN>]
404
405 #command DELETE ;
406 [FOR <for>] ;
407 [WHILE <while>] ;
408 [NEXT <next>] ;
409 [RECORD <rec>] ;
410 [<rest:REST>] ;
411 [ALL] ;
412 ;
413 => DBEval( ;
414 {|| dbDelete()}, ;
415 <{for}>, <{while}>, <next>, <rec>, <.rest.> ;
416 )
417
418 #command RECALL ;
419 [FOR <for>] ;
420 [WHILE <while>] ;
421 [NEXT <next>] ;
422 [RECORD <rec>] ;
423 [<rest:REST>] ;
424 [ALL] ;
425 ;
426 => DBEval( ;
427 {|| dbRecall()}, ;
428 <{for}>, <{while}>, <next>, <rec>, <.rest.> ;
429 )
430
431 #command DELETE => dbDelete()
432 #command RECALL => dbRecall()
433
434 #command CREATE <(file1)> ;
435 [FROM <(file2)>] ;
436 [VIA <rdd>] ;
437 [ALIAS <a>] ;
438 [<new: NEW>] ;
439 ;
440 => __dbCreate( <(file1)>, <(file2)>, <rdd>, <.new.>, <(a)> )
441
442 #command COPY [STRUCTURE] [EXTENDED] [TO <(file)>] ;
443 => __dbCopyXStruct( <(file)> )
444
445 #command COPY [STRUCTURE] [TO <(file)>] [FIELDS <fields,...>] ;
446 => __dbCopyStruct( <(file)>, { <(fields)> } )
447
448 #command COPY [TO <(file)>] [DELIMITED [WITH <*delim*>]] ;
449 [FIELDS <fields,...>] ;
450 [FOR <for>] ;
451 [WHILE <while>] ;
452 [NEXT <next>] ;
453 [RECORD <rec>] ;
454 [<rest:REST>] ;
455 [ALL] ;
456 ;
457 => __dbDelim( ;
458 .T., <(file)>, <(delim)>, { <(fields)> }, ;
459 <{for}>, <{while}>, <next>, <rec>, <.rest.> ;
460 )
461
462 #command COPY [TO <(file)>] [SDF] ;
463 [FIELDS <fields,...>] ;
464 [FOR <for>] ;
465 [WHILE <while>] ;
466 [NEXT <next>] ;
467 [RECORD <rec>] ;
468 [<rest:REST>] ;
469 [ALL] ;
470 ;
471 => __dbSDF( ;
472 .T., <(file)>, { <(fields)> }, ;
473 <{for}>, <{while}>, <next>, <rec>, <.rest.> ;
474 )
475
476 #command COPY [TO <(file)>] ;
477 [FIELDS <fields,...>] ;
478 [FOR <for>] ;
479 [WHILE <while>] ;
480 [NEXT <next>] ;
481 [RECORD <rec>] ;
482 [<rest:REST>] ;
483 [VIA <rdd>] ;
484 [ALL] ;
485 ;
486 => __dbCopy( ;
487 <(file)>, { <(fields)> }, ;
488 <{for}>, <{while}>, <next>, <rec>, <.rest.>, <rdd> ;
489 )
490
491 #command APPEND [FROM <(file)>] [DELIMITED [WITH <*delim*>]] ;
492 [FIELDS <fields,...>] ;
493 [FOR <for>] ;
494 [WHILE <while>] ;
495 [NEXT <next>] ;
496 [RECORD <rec>] ;
497 [<rest:REST>] ;
498 [ALL] ;
499 ;
500 => __dbDelim( ;
501 .F., <(file)>, <(delim)>, { <(fields)> }, ;
502 <{for}>, <{while}>, <next>, <rec>, <.rest.> ;
503 )
504
505 #command APPEND [FROM <(file)>] [SDF] ;
506 [FIELDS <fields,...>] ;
507 [FOR <for>] ;
508 [WHILE <while>] ;
509 [NEXT <next>] ;
510 [RECORD <rec>] ;
511 [<rest:REST>] ;
512 [ALL] ;
513 ;
514 => __dbSDF( ;
515 .F., <(file)>, { <(fields)> }, ;
516 <{for}>, <{while}>, <next>, <rec>, <.rest.> ;
517 )
518
519 #command APPEND [FROM <(file)>] ;
520 [FIELDS <fields,...>] ;
521 [FOR <for>] ;
522 [WHILE <while>] ;
523 [NEXT <next>] ;
524 [RECORD <rec>] ;
525 [<rest:REST>] ;
526 [VIA <rdd>] ;
527 [ALL] ;
528 ;
529 => __dbApp( ;
530 <(file)>, { <(fields)> }, ;
531 <{for}>, <{while}>, <next>, <rec>, <.rest.>, <rdd> ;
532 )
533
534 #command SORT [TO <(file)>] [ON <fields,...>] ;
535 [FOR <for>] ;
536 [WHILE <while>] ;
537 [NEXT <next>] ;
538 [RECORD <rec>] ;
539 [<rest:REST>] ;
540 [ALL] ;
541 ;
542 => __dbSort( ;
543 <(file)>, { <(fields)> }, ;
544 <{for}>, <{while}>, <next>, <rec>, <.rest.> ;
545 )
546
547 #command TOTAL [TO <(file)>] [ON <key>] ;
548 [FIELDS <fields,...>] ;
549 [FOR <for>] ;
550 [WHILE <while>] ;
551 [NEXT <next>] ;
552 [RECORD <rec>] ;
553 [<rest:REST>] ;
554 [ALL] ;
555 ;
556 => __dbTotal( ;
557 <(file)>, <{key}>, { <(fields)> }, ;
558 <{for}>, <{while}>, <next>, <rec>, <.rest.> ;
559 )
560
561 #command UPDATE [FROM <(alias)>] [ON <key>] ;
562 [REPLACE <f1> WITH <x1> [, <fn> WITH <xn>]] ;
563 [<rand:RANDOM>] ;
564 ;
565 => __dbUpdate( ;
566 <(alias)>, <{key}>, <.rand.>, ;
567 {|| _FIELD-><f1> := <x1> [, _FIELD-><fn> := <xn>]} ;
568 )
569
570 #command JOIN [WITH <(alias)>] [TO <file>] ;
571 [FIELDS <fields,...>] ;
572 [FOR <for>] ;
573 ;
574 => __dbJoin( <(alias)>, <(file)>, { <(fields)> }, ;
575 IIF( EMPTY( #<for> ), { || .T. }, <{for}> ) )
576
577 #command COUNT [TO <var>] ;
578 [FOR <for>] ;
579 [WHILE <while>] ;
580 [NEXT <next>] ;
581 [RECORD <rec>] ;
582 [<rest:REST>] ;
583 [ALL] ;
584 ;
585 => <var> := 0 ;
586 ; DBEval( ;
587 {|| <var> := <var> + 1}, ;
588 <{for}>, <{while}>, <next>, <rec>, <.rest.> ;
589 )
590
591 #command SUM [ <x1> [, <xn>] TO <v1> [, <vn>] ] ;
592 [FOR <for>] ;
593 [WHILE <while>] ;
594 [NEXT <next>] ;
595 [RECORD <rec>] ;
596 [<rest:REST>] ;
597 [ALL] ;
598 ;
599 => <v1> := [ <vn> := ] 0 ;
600 ; DBEval( ;
601 {|| <v1> := <v1> + <x1> [, <vn> := <vn> + <xn> ]}, ;
602 <{for}>, <{while}>, <next>, <rec>, <.rest.> ;
603 )
604
605 #command AVERAGE [ <x1> [, <xn>] TO <v1> [, <vn>] ] ;
606 [FOR <for>] ;
607 [WHILE <while>] ;
608 [NEXT <next>] ;
609 [RECORD <rec>] ;
610 [<rest:REST>] ;
611 [ALL] ;
612 ;
613 => M->__Avg := <v1> := [ <vn> := ] 0 ;
614 ;
615 ; DBEval( ;
616 {|| M->__Avg := M->__Avg + 1, ;
617 <v1> := <v1> + <x1> [, <vn> := <vn> + <xn>] }, ;
618 <{for}>, <{while}>, <next>, <rec>, <.rest.> ;
619 ) ;
620 ;
621 ; <v1> := <v1> / M->__Avg [; <vn> := <vn> / M->__Avg ]
622
623 #command LIST [<list,...>] ;
624 [<off:OFF>] ;
625 [<toPrint: TO PRINTER>] ;
626 [TO FILE <(toFile)>] ;
627 [FOR <for>] ;
628 [WHILE <while>] ;
629 [NEXT <next>] ;
630 [RECORD <rec>] ;
631 [<rest:REST>] ;
632 [ALL] ;
633 ;
634 => __dbList( ;
635 <.off.>, { <{list}> }, .t., ;
636 <{for}>, <{while}>, <next>, <rec>, <.rest.>, ;
637 <.toPrint.>, <(toFile)> ;
638 )
639
640 #command DISPLAY [<list,...>] ;
641 [<off:OFF>] ;
642 [<toPrint: TO PRINTER>] ;
643 [TO FILE <(toFile)>] ;
644 [FOR <for>] ;
645 [WHILE <while>] ;
646 [NEXT <next>] ;
647 [RECORD <rec>] ;
648 [<rest:REST>] ;
649 [<all:ALL>] ;
650 ;
651 => __DBList( ;
652 <.off.>, { <{list}> }, <.all.>, ;
653 <{for}>, <{while}>, <next>, <rec>, <.rest.>, ;
654 <.toPrint.>, <(toFile)> ;
655 )
656
657
658 #command CLOSE <alias> => <alias>->( dbCloseArea() )
659
660 #command CLOSE => dbCloseArea()
661 #command CLOSE DATABASES => dbCloseAll()
662 #command CLOSE ALTERNATE => Set(_SET_ALTFILE, "")
663 #command CLOSE FORMAT => __SetFormat(NIL)
664 #command CLOSE INDEXES => dbClearIndex()
665 #command CLOSE PROCEDURE =>
666
667 #command CLOSE ALL ;
668 ;
669 => CLOSE DATABASES ;
670 ; SELECT 1 ;
671 ; CLOSE FORMAT
672
673 #command CLEAR ALL ;
674 ;
675 => CLOSE DATABASES ;
676 ; CLOSE FORMAT ;
677 ; CLEAR MEMORY ;
678 ; CLEAR GETS ;
679 ; SET ALTERNATE OFF ;
680 ; SET ALTERNATE TO
681
682 #command INDEX ON <key> [TAG <(cOrderName)> ] TO <(cOrderBagName)> ;
683 [FOR <for>] ;
684 [<all:ALL>] ;
685 [WHILE <while>] ;
686 [NEXT <next>] ;
687 [RECORD <rec>] ;
688 [<rest:REST>] ;
689 [EVAL <eval>] ;
690 [EVERY <every>] ;
691 [<unique: UNIQUE>] ;
692 [<ascend: ASCENDING>] ;
693 [<descend: DESCENDING>] ;
694 => ordCondSet( <"for">, <{for}>, ;
695 [<.all.>], ;
696 <{while}>, ;
697 <{eval}>, <every>, ;
698 RECNO(), <next>, <rec>, ;
699 [<.rest.>], [<.descend.>] ) ;
700 ; ordCreate(<(cOrderBagName)>, <(cOrderName)>, ;
701 <"key">, <{key}>, [<.unique.>] )
702
703 #command INDEX ON <key> TAG <(cOrderName)> [TO <(cOrderBagName)>] ;
704 [FOR <for>] ;
705 [<all:ALL>] ;
706 [WHILE <while>] ;
707 [NEXT <next>] ;
708 [RECORD <rec>] ;
709 [<rest:REST>] ;
710 [EVAL <eval>] ;
711 [EVERY <every>] ;
712 [<unique: UNIQUE>] ;
713 [<ascend: ASCENDING>] ;
714 [<descend: DESCENDING>] ;
715 => ordCondSet( <"for">, <{for}>, ;
716 [<.all.>], ;
717 <{while}>, ;
718 <{eval}>, <every>, ;
719 RECNO(), <next>, <rec>, ;
720 [<.rest.>], [<.descend.>] ) ;
721 ; ordCreate(<(cOrderBagName)>, <(cOrderName)>, ;
722 <"key">, <{key}>, [<.unique.>] )
723
724 #command INDEX ON <key> TO <(file)> [<u: UNIQUE>] ;
725 => dbCreateIndex( ;
726 <(file)>, <"key">, <{key}>, ;
727 if( <.u.>, .t., NIL ) ;
728 )
729
730 #command DELETE TAG <(cOrdName1)> [ IN <(cOrdBag1)> ] ;
731 [, <(cOrdNameN)> [ IN <(cOrdBagN)> ] ] ;
732 => ordDestroy( <(cOrdName1)>, <(cOrdBag1)> ) ;
733 [; ordDestroy( <(cOrdNameN)>, <(cOrdBagN)> ) ]
734
735 #command REINDEX ;
736 [EVAL <eval>] ;
737 [EVERY <every>] ;
738 [<lNoOpt: NOOPTIMIZE>] ;
739 => ordCondSet(,,,, <{eval}>, <every>,,,,,,,,,, <.lNoOpt.>) ;
740 ; ordListRebuild()
741
742 #command REINDEX => ordListRebuild()
743
744 #command SET INDEX TO [ <(index1)> [, <(indexn)>]] [<add: ADDITIVE>] ;
745 ;
746 => if !<.add.> ; ordListClear() ; end ;
747 ;
748 [; ordListAdd( <(index1)> )] ;
749 [; ordListAdd( <(indexn)> )]
750
751 #command SET ORDER TO <xOrder> ;
752 [IN <(cOrdBag)>] ;
753 ;
754 => ordSetFocus( <xOrder> [, <(cOrdBag)>] )
755
756 #command SET ORDER TO TAG <(cOrder)> ;
757 [IN <(cOrdBag)>] ;
758 ;
759 => ordSetFocus( <(cOrder)> [, <(cOrdBag)>] )
760
761 #command SET ORDER TO => ordSetFocus(0)
762
763 #command SET DESCENDING ON => ordDescend( ,, .T. )
764 #command SET DESCENDING OFF => ordDescend( ,, .F. )
765
766 #xcommand TEXTBLOCK <*cText*> => // <cText>
767
768 #endif
769

S-ar putea să vă placă și