. , , ,

,,,

,

. 066/ , " ". 066/ .

, .

, 066/ . . (, , ), .

N13 . .. .

Clipper.

- , .

, 5 .


TOC o "1-3" __________________________________________________________________ PAGEREF _Toc453486920 h 4

1. _ PAGEREF _Toc453486921 h 6

1.1. __________________________________________________ PAGEREF _Toc453486922 h

1.2. 젠 PAGEREF _Toc453486923 h

1.2.1. ___________________________________________________________ PAGEREF _Toc453486924 h 8

1.2.2. __________________________________________________ PAGEREF _Toc453486925 h 9

1.3. __________________________________ PAGEREF _Toc453486926 h

1.4. _____________________________________ PAGEREF _Toc453486927 h

2. , __________________________________ PAGEREF _Toc453486928 h 13

2.1. __________________________________ PAGEREF _Toc453486929 h

2.2. ___________________________ PAGEREF _Toc453486930 h

2.3. , ______ PAGEREF _Toc453486931 h

3. () __________ PAGEREF _Toc453486932 h 18

3.1. ________________________________________________________ PAGEREF _Toc453486933 h

3.1.1. __________________________________________________ PAGEREF _Toc453486934 h 19

3.1.2. _____________________________________________________________ PAGEREF _Toc453486935 h 21

3.2. _________________________________________________ PAGEREF _Toc453486936 h

4. _______________________________________ PAGEREF _Toc453486937 h 25

4.1. _________________________________________________ PAGEREF _Toc453486938 h

4.1.1. __________________________________________________________ PAGEREF _Toc453486939 h 26

4.1.2. _______________________________________________________ PAGEREF _Toc453486940 h 26

4.1.3. ___________________________________________________________ PAGEREF _Toc453486941 h 27

4.1.4. ____________________________________ PAGEREF _Toc453486942 h 28

4.1.5. _______________________________________________________________ PAGEREF _Toc453486943 h 28

4.1.6. ________________________________________________________ PAGEREF _Toc453486944 h 29

4.1.7. ____________________________________________________ PAGEREF _Toc453486945 h 29

4.1.8. __________________________________________________________________ PAGEREF _Toc453486946 h 32

4.1.9. __________________________________________________________ PAGEREF _Toc453486947 h 33

4.2. _____________________________________ PAGEREF _Toc453486948 h

5.- ________________________________________ PAGEREF _Toc453486949 h 35

5.1. ____________________________________________ PAGEREF _Toc453486950 h

5.2. _______________________________ PAGEREF _Toc453486951 h

_______________________________________________________________ PAGEREF _Toc453486952 h 40

._____________________________________________________________ PAGEREF _Toc453486953 h 42

1____________________________________________________________ PAGEREF _Toc453486954 h 43

( 066/)____________________________________________ PAGEREF _Toc453486955 h

2____________________________________________________________ PAGEREF _Toc453486956 h 77


____________________________________________________________ PAGEREF _Toc453486957 h

3____________________________________________________________ PAGEREF _Toc453486958 h 83

PAGEREF _Toc453486959 h

4____________________________________________________________ PAGEREF _Toc453486960 h 92

_______________________________________________________________________ PAGEREF _Toc453486961 h

5___________________________________________________________ PAGEREF _Toc453486962 h 107

: PAGEREF _Toc453486963 h


. , , . . , -.

, , , , , , .

. , 066/ : " ".

, , , .

:

Ø ;

Ø ;

Ø ;

Ø ;

Ø ;

Ø ;

Ø .

.


1.

. , , . [1] 10 20% , 33% . , , ().

1.1.

[1], , , . [1] :

Ø ;

Ø ;

Ø ;

Ø .

, , . , , ..

, , , , . , , ..

, , .

.

1.2.

() . - , , .

, , , . , . , , .. , .

, ,

" ".

1.2.1.

. : [1] .

, , , , ( , , .).

, . 5 , :

1)    ;

2)    ;

3)    - ;

4)    ;

5)    .

, , . , - , .

1.2.2.

, .

[1]:

Ø ; , , ( );

Ø ( ) , , ( );

Ø ( ).

.

, , . , , , .

1.3.

:

Ø ;

Ø .

-, .

, . , , .

, .

, . , .

, . , , , - . , [1].

1.4.

. , . :

Ø ;

Ø ;

Ø , ;

Ø ;

Ø ;

Ø ;

Ø .

, - .

, . , 60-70% [1]. , . ( ) , 15-25% , .

.

2. ,

2.1.

.

. .1 .

. SEQ . * ARABIC 1. .

() ( 066/). 066/ . 066/. , (). . , . . 066/ . 066/ . , 066/ , :

Ø ;

Ø (. 5):

1.     , ;

2.     , 0-6 ;

3.     ;

4.     ;

5.     , 0 6 ;

6.     , ;

7.     , ;

8.     ;

9.     ;

10.            0 6 ;

11.            ;

12.            ;

13.            ;

14.            ;

15.            ;

16.            , , , , , ;

17.            , 0-6 , 24 : 0-24 , 1 , ;

18.            , , , 24 ;

19.            , , , .

1-3,16-19 , 4-15 - .

2.2.

066/ " ". :

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.            .. .

2.3. ,

1998 22 400 . .066/. 1 , .066/ 19 . : (.7), , . 7. , .7 1 , .7 15 . , 273, , .7 4 . 23 . , , 0.1 . 0.003 , , , .7.

, , 8 14 . 0.036 /. Ethernet 10 / . , , .


3. ()

3.1.

, .2.

. SEQ . * ARABIC 2. .

- :

Ø "DIA66" ( );

Ø "OP66" ( );

Ø "KARTA" ( ).

. "KARTA" "DIA66" "OP66", . "KARTA" "DIA66", "KARTA" "OP66" " ".

, "KARTA", : . 066/ , .. .066/ ( ) , . . . ( ), .. . , . , 29.

3.1.1.

() () . :

Ø R66.DBF R66.NTX;

Ø DIA66.DBF DIA66.NTX;

Ø OP66.DBF OP66.NTX.

KARTA66.DBF:

NUM_IB

C

7

FAM

C

30

F_S_NAME

C

30

,

DATE_B

D

8

HOUR_B

N

2

MINS_B

N

2

OLD

N

2

POL

N

1

MASSA

C

6

PLACE_LIV

C

60

RAION

N

2

CITY_VIL

N

1

: /

DIRECT1

N

2

DIRECT2

N

2

STATE

N

2

WHY

N

1

DEPARTMENT

N

2

KOIKA

N

2

PASS

N

1

TIME

N

1

DATE_IN

D

8

HOUR_IN

N

2

MINS_IN

N

2

END1

N

1

END2

N

1

END3

N

2

DATE_END

D

8

HOUR_END

N

2

MINS_END

N

2

OLD_D

N

2

ALL_DAY

N

2

DIA_DIRECT

C

4

NUM_COME

N

1

RW_DATE

D

8

RW

RW_REZ

N

1

RW

FAM_DOCTOR

N

2

: NUM_IB.

DIA66.DBF:

NUM_IB

C

7

KOD1

C

1

KOD2

C

1

SHIFR

C

4

COMM1

M

10

: NUM_IB+KOD1.

OP66.DBF:

NUM_IB

C

7

SHIFR

C

4

DATA

D

8

COMM

M

10

: NUM_IB.


3.1.2.

- , , , : , . , . - , . : / , , . .


3.2.

066/ .

:

1) ;

2) :

) ( . 2.2) ;

) ;

) N .

) ( <, , > <, , >);

) .

.

" " .

" " , .

" ", , . .

.3. .4.

. SEQ . * ARABIC 3. .


. SEQ . * ARABIC 4. .


4.

4.1.

, 066/ .

:

Ø , , ;

Ø ;

Ø .

, .

IBM PC XT/AT : ; EGA/VGA, 80 . 540 .

Clipper MS DOS 3.1 .

=> karta ENTER.

(. 4.1.1.).

:

Ø ;

Ø ;

Ø ;

Ø ;

Ø ;

Ø ;

Ø

4.1.1.

: . , , , , "DATE".

ENTER, - ENTER.

, .

4.1.2.

:

Ø ;

Ø ;

Ø ;

Ø ;

Ø ;

Ø .

: , , . ENTER ESC . , .

4.1.3.

"", , ( , 066/).

. , , , .

, 066/, (. 2.2). , " ". " " ENTER. 066/ , , ENTER, ( ESC, - ). , " " . , .

F10.

( , ) , . , , .

4.1.4.

"", , . , .

, "" (. 4.1.3.).

066/ , "" (. 4.1.5.).

. , "" "", :

Ø ;

Ø ;

Ø F5 .

, :

1.     " ", .. , (" ");

2.     " ", .. 066/ ;

3.     " ".

ENTER .

4.1.5.

"", , . , " ", " " " " , . , , 066/ . , :

Ø ( , , ( ); ; , , );

Ø ;

Ø ( , 066/ , ).

- F10 ESC.

"" , . ( . 4.1.6.).

4.1.6.

, , , 066/ .

"" .

4.1.7.

- .4.

"", . :

Ø ;

Ø .

, . , . , .

, , . :

1.     , ;

2.     , 0-6 ;

3.     ;

4.     ;

5.     , 0 6 ;

6.     , ;

7.     , ;

8.     ;

9.     ;

10.            0 6 ;

11.            ;

12.            ;

13.            ;

14.            ;

15.            ;

16.            , , , , , ;

17.            , 0-6 , 24 : 0-24 , 1 , ;

18.            , , , 24 ;

19.            , , , .

, , . , . ( ESC), .

. // ENTER. - ESC.

, . .

-

:

Ø ;

Ø ;

Ø " ".

ESC.

, . , .

4.1.8.

.

.

, , Control-F10. :

Ø ;

Ø ;

Ø ;

Ø ;

Ø ;

Ø ;

Ø ;

Ø ;

Ø .

, .

, INS. . , ENTER. DEL.

ENTER . ENTER. ESC .

ESC .

4.1.9.

"" .

. Clipper. : "Not enought memory", "Memory fault" , .

"Unable to open file <_>" - .

, , , .

4.2.

N13 . . . ( N 13). 900 066/ N13 . . . .

900 . , , .

N13.


5.-

5.1.

. , .

:

Ø ;

Ø ;

Ø .

, 1993 .


(.5).

. 5. .

, , , , . , , , - , , .

, , .

5.2.

[7]:

= ( ) * ,

Ø = + * - ;

Ø = + * - ;

Ø - (=0.15);

Ø , - ;

Ø , - ;

Ø - .

, . =1. (.. =0).

, [6]:

= = + ,

Ø - ;

Ø - .

25% :

= + + + ,

Ø - ;

Ø - ;

Ø - ;

Ø - .

= * + * + * ,

Ø , , - -, ;

Ø , , - , (. . 1.).

SEQ * ARABIC 1. .


(. . ., )

62 /

24


(. . . )

62 /

2

XI: 800 .
XII: 800 .
I: 1600 .
II: 1600 .

4

:

=(800+800+1600+1600) + 62*24 + 62*2=4800+1488+124=6412.

320 . 1 PC XT 40 . , = 320*40 = 12800 .

37% , :

( + )= 0.37 * = 0.37*6412 = 2372.44

:

= + + + =6412+12800+2372.44=21584.44;

=21584.44 ;

=0.25*=0.25*21584.44=5396.11 ;

= = + = 21584.44 + 5396.11 = 26980.55;

=26981 .

, . , ( ) .

(35 ./).

(40/).

, :

Ø 14 ( 15 );

Ø 19 ( 45 ).

, = 12*(14*15/60) + 19*45/60 = 42+14.25 = 56.25 .

, = 56.25*35 = 1968.75 , 56.25*40=2250 . 37% , .. 1968.75 * 0.37 = 728.44 .

:

= (1968.75+2250+728.44) + 0.25*(1968.75+2250+728.44) =

= 6183.99 .

= 6184 .

. :

Ø 4 ( 4000 ./);

Ø 1 ( 6000 ./).

, :

12 * (4 * 4000 + 6000) * (1 + 0.37) = 361680 .

40% , , = 0.40*361680 = 144672 .

:

= ( )* = (144672 - (6184 + 0.15*26981)) * 1= 134440.85 .

134440 .

:

= 0.15 * + * + * + ,

Ø - ;

Ø - (0.30);

Ø - (0.20);

Ø - .

= 0.15*26981 + 0.30*26981 + 0.20*26981 + 6184 =23721.65

, 23 721 .

.

:

Ø ;

Ø , , Ethernet, 10 /;

Ø , /, , IBM PC XT/ : , EGA/VGA, 40 , 540 ; Clipper;

Ø ( 066/ );

Ø , , 066/ , ;

Ø ;

Ø Clipper Summer'87 310 ;

Ø - , ;

Ø , 134 440 .

N13 . .. .


1.     Clipper Summer'87. .

2.     .. :
. . - : ,1998. - 784.: .

3.     . - . dBase III plus:
: , 1991. - 240.: .

4.     . :
. . - :, 1990. - 660.:.

5.     " ":
N 5: " ":
: , 1998.

6.     .. - ( ):
- : , 1982. - 44.

7.     .. :
: , 1990. - 67.


1

( 066/)


1. .

( ) 066/ .

2. .

N 12-1-99 - N13 .

3. .

.

4. .

4.1. .

, , .

:

Ø ;

Ø , 066/, ;

Ø , ( 5 , 1 1 ).

:

1.     ( , );

2.     ( ).

.

066/ (. 1.1).

:

Ø (. 1.2 1.3);

Ø , :

1.     , (. .1 .14);

2.     , 0-6 (. .2 .14);

3.     (. .3 .14);

4.     (. 4);

5.     , 0 6 (. 1.5);

6.     , (. 1.6);

7.     , (. 1.7);

8.     (. 1.8);

9.     (. 1.9);

10.            0 6 (. 1.10);

11.            (. 1.11);

12.            (. 1.12);

13.            (. 1.13);

14.            (. 1.14);

15.            (. 1.15);

16.            , , , , , ;

17.            , 0-6 , 24 : 0-24 , 1 , ;

18.            , , , 24 ;

19.            , , , .

1-3,16-19 , 4-15 - .

:

1.     .

2.     :

2.1.                     ( . 1.1) ;

2.2.                     ;

2.3.                     .;

2.4.                     ( <, > <, >);

2.5.                     .

. " " .

" " , .

" ", , , :

1.     ;

2.     ;

3.     ;

4.     ;

5.     ;

6.     ;

7.     ;

8.     , 13;

9.     ;

10.            ;

11.            .

.

. 066/ 14.

4.2. .

.


4.3. .

, .

4.4. .

IBM PC/XT/AT (, EGA/VGA, 40 ).

5. .

: , .


1.1.

, 066/:

1.     ;

2.     .;

3.     :

3.1.                     ;

3.2.                     ;

4.     (, , , );

5.     :

5.1.                     0-6 .

5.2.                     7-28 ;

5.3.                     29 -3 .;

5.4.                     4-6 .;

5.5.                     7-9 .;

5.6.                     10-12 .;

5.7.                     1;

5.8.                     2-3 ;

5.9.                     4-7 ;

5.10.                8-14 ;

5.11.                15 ;

6.     (/);

7.     :

7.1.                     ;

7.2.                     :

7.2.1.  ;

7.2.2.  ;

7.2.3.  ;

7.2.4.  ;

7.2.5.  ;

8.     :

8.1.                     ;

8.2.                     ;

9.    

10.            :

10.1.                . , . ;

10.2.                , :

10.2.1.                     32;

10.2.2.                     67;

10.2.3.                     1;

10.2.4.                     11;

10.2.5.                     3;

10.2.6.                     13;

10.2.7.                     2;

10.2.8.                     9;

10.2.9.                     5 ;

10.2.10.                12;

10.2.11.                6;

10.3.                ;

10.4.                ;

10.5.                ;

10.6.                ;

10.7.                ;

10.8.                ;

10.9.                ;

10.10.           ;

10.11.           ;

10.12.           ;

10.13.           ;

10.14.           ;

11.            :

11.1.                ;

11.2.                ;

11.3.                ;

11.4.                ;

12.            :

12.1.                ;

12.2.                ;

12.3.                ;

12.4.                ;

12.5.                ;

12.6.                ;

12.7.                ;

12.8.                ;

12.9.                ;

12.10.           ;

12.11.           ;

12.12.           ;

12.13.           ;

12.14.           ;

13.            :

13.1.                ;

13.2.                ;

13.3.                ;

13.4.                ;

14.            :

14.1.                ;

14.2.                ;

15.            ( ):

15.1.                6 ;

15.2.                7-24 .;

15.3.                24 .;

16.            (, , , )

17.            :

17.1.                ;

17.2.                ;

17.3.                ;

18.            :

18.1.                :

18.1.1.                     32;

18.1.2.                     67;

18.1.3.                     1;

18.1.4.                     11;

18.1.5.                     3;

18.1.6.                     13;

18.1.7.                     2;

18.1.8.                     9;

18.1.9.                     5 ;

18.1.10.                12;

18.1.11.                6;

18.2.                :

18.2.1.                     ;

18.2.2.                     ;

18.2.3.                     ;

19.            , , (, , , );

20.            ( , , );

21.            ;

22.            :

22.1.                ;

22.2.                ;

23.            :

23.1.                ;

23.1.1.                     ;

23.1.2.                     ;

23.2.                ;

23.2.1.                     ;

23.2.2.                     ;

23.3.                ;

23.3.1.                     ;

23.3.2.                     ;

24.            :

24.1.                ;

24.2.                ;

24.3.                , , , ;

25.            :

25.1.                (, , );

25.2.                ( .14 - .30- - )

26.            :

26.1.                , , ;

26.2.                :

26.2.1.                     ;

26.2.2.                     ;

27.            , , .


1.2.

:

1.     ;

2.     ;

3.     ;

4.     .

:

5.     :

5.1.                     0 - 6 ;

5.2.                     7 - 14 ;

5.3.                     15- 21 ;

5.4.                     22- 28 ;

5.5.                     29 - 3 .;

5.6.                     4 - 6 .;

5.7.                     7 - 9 .;

5.8.                     10 - 12 .;

6.     :

6.1.                     ;

6.2.                     .. ;

6.3.                     /;

6.4.                     .. ;

7.     :

7.1.                     ;

7.2.                     ;

7.3.                     ;

7.4.                     ;

7.5.                     ;

7.6.                     ;

8.     /;

9.     .


1.3.

( ) :

1.     ;

2.     ;

3.     ;

4.     . :

5.     :

5.1.                     29 . - 3 .;

5.2.                     4 - 6 .;

5.3.                     7 - 9 .;

5.4.                     10 - 12 .;

6.     :

6.1.                     ;

6.2.                     .. ;

6.3.                     /;

6.4.                     .. ;

7.     14 :

7.1.                     1 ;

7.2.                     2 ;

7.3.                     3- 7 ;

7.4.                     8- 17 ;

7.5.                     ;

7.6.                     .. ;

7.7.                     /;

7.8.                     .. ;

8.     15 :

8.1.                     ;

8.2.                     .. ;

8.3.                     /;

8.4.                     .. ;

9.     :

9.1.                     ;

9.2.                     ;

9.3.                     ;

9.4.                     ;

9.5.                     ;

9.6.                     ;

9.7.                     /;

10.            /;

11.            .


1.4.

:

1.     :

1.1.                     0 - 6 ;

1.2.                     7 - 28 ;

1.3.                     ;

1.4.                     29 - 3 .;

1.5.                     4 - 6 .;

1.6.                     7 - 9 .;

1.7.                     10 - 12 .;

1.8.                     ;

1.9.                     ;

1.10.                2 - 3 ;

1.11.                4 - 7 ;

1.12.                8 - 14 ;

1.13.                15 ;

2.     ;

3.     - ;

4.     - ;

5.     ;

6.     :

6.1.                     ;

6.2.                     ;

6.3.                     ;

7.     :

7.1.                     ;

7.2.                     ;

7.3.                     ;

7.4.                     ;

7.5.                     ;

8.     ;

9.     ;

10.            ;

11.            ;

12.            ;


1.5.

" 0 6 " :

1.     :

1.1.                     460 466;

1.2.                     480-486;

1.3.                     680 686;

1.4.                     740 759;

1.5.                     767.6;

1.6.                     767.4-7;

1.7.                     768;

1.8.                     769, 770.1-9;

1.9.                     770.0;

1.10.                , 771.0-7;

1.11.                771.8-;

1.12.                , 773;

1.13.                774;

1.14.                ;

2.     :

2.1.                     1000 ;

2.2.                     1000 .

2.3.                     1000 , 1000 .

3.     0 - 6 ;

4.     :

4.1.                     ;

4.2.                     0 - 6 .

1.6.

", " :

1.     ;

2.     ;

3.     , ;

4.     , ;

5.     .


1.7.

" , " :

1.     ;

2.     ;

3.     :

3.1.                     28 ;

3.2.                     ;

3.3.                     ;

4.     :

4.1.                     ;

4.2.                     ;

4.3.                     ;

4.4.                     ;

5.     .


1.8.

:

1.     ;

2.     ;

3.     ;

4.     .

.

5.     :

5.1.                     ;

5.2.                     ;


1.9.

" " :

1.     ;

2.     ;

3.     ;

4.     . :

5.     :

5.1.                     ;

5.2.                     ;

6.     :

6.1.                     0 - 6 ;

6.2.                     7 - 28 ;

6.3.                     ;

6.4.                     29 - 3 .;

6.5.                     4 - 6 .;

6.6.                     7 - 9 .;

6.7.                     10 - 12 .;

6.8.                     ;

6.9.                     - ;

6.10.                ;

6.11.                2 - 3 ;

6.12.                4 - 7 ;

6.13.                8 - 14 ;

6.14.                15 ;

6.15.                ;

6.16.                - ;

7.     :

7.1.                     . ;

7.2.                     , ;

7.3.                     ;

7.4.                     ;

7.5.                     ;

7.6.                     ;

7.7.                     ;

7.8.                     ;

7.9.                     ;

7.10.                ;

7.11.                ;

7.12.                ;

7.13.                ;

7.14.                ;

8.     :

8.1.                     ;

8.2.                     ;

8.3.                     ;

8.4.                     ;

8.5.                     ;

9.     :

9.1.                     ;

9.2.                     ;

9.3.                     ;

9.4.                     ;

9.5.                     ;


1.10.

0 6 :

1.     ;

2.     ;

3.     ;

4.     . .

5.     :

5.1.                     ;

5.2.                     ;

6.     :

6.1.                     0 - 1 ;

6.2.                     2 - 3 ;

6.3.                     4 - 6 ;

6.4.                     ;

7.     :

7.1.                     . ;

7.2.                     , ;

7.3.                     ;

7.4.                     ;

7.5.                     ;

7.6.                     ;

7.7.                     ;

7.8.                     ;

7.9.                     ;

7.10.                ;

7.11.                ;

7.12.                ;

7.13.                ;

7.14.                ;

8.     :

8.1.                     ;

8.2.                     ;

8.3.                     ;

8.4.                     ;

9.     :

9.1.                     ;

9.2.                     ;

9.3.                     ;

9.4.                     ;

9.5.                     ;

9.6.                     ;

9.7.                     .


1.11.

" " :

1.     ;

2.     ;

3.     ;

4.     .

;

5.     ;

:

5.1.                     ;

5.2.                     ;

6.     :

6.1.                     ;

7.     :

7.1.                     ;

7.2.                     ;

7.3.                     ;

8.     , , :

8.1.                     ;

9.     :

9.1.                     ;

9.2.                     ;

9.3.                     ;

9.4.                     ;

10.            :

10.1.                ;

10.2.                ;

11.            :

11.1.                ;

11.2.                ;

12.            :

12.1.                ;

12.2.                ;

12.3.                ;

12.4.                ;

12.5.                - ;

12.6.                ;

12.7.                ;

12.8.                ;

12.9.                ;

12.10.           ;

12.11.           ;

12.12.           ;

13.            ;

14.            ;

15.            :

15.1.                ( );

15.2.                ;

16.            :

16.1.                ;

16.2.                ;

16.3.                -;

16.4.                ( );

16.5.                ;

16.6.                ;

17.            - :

17.1.                ;

18.            ;

19.            :

19.1.                ;

20.            ;

21.            14 .


1.12.

" " :

1.     ;

2.     ;

3.     ;

4.     . .

5.     :

5.1.                     ;

5.2.                     ;

6.     :

6.1.                     0 - 6 ;

6.2.                     7 - 14 ;

6.3.                     15 - 21 ;

6.4.                     22 - 28 ;

6.5.                     ;

6.6.                     29 - 3 .;

6.7.                     ;

7.     :

7.1.                     . ;

7.2.                     , ;

7.3.                     ;

7.4.                     ;

7.5.                     ;

7.6.                     ;

7.7.                     ;

7.8.                     ;

7.9.                     ;

7.10.                ;

7.11.                ;

7.12.                ;

7.13.                ;

7.14.                ;

8.     :

8.1.                     0-30 ;

8.2.                     30 ;

8.3.                     1 ;

8.4.                     1-3 ;

8.5.                     10-24 ;

8.6.                     24 ;

9.     - .


1.13.

" " :

1.     :

1.1.                     ;

1.2.                     1 , ;

1.3.                     - ;

1.4.                     ;

1.5.                     ;

1.6.                     - ;

1.7.                     .


1.14.

" " :

1.     ;

2.     , .


1.15.

:

1.     :

1.1.                     ;

1.2.                     ;

2.     ;

3.     ;

:

4.     ;

5.     ;

6.     -;

7.     ;

8.     .

.

2

.
1. .

( ) 066/ .

, , , .

:

1.     , , ;

2.     ;

3.     .

, .

2. .

IBM PC XT/ : , EGA/VGA, 40 . 540 .

MS DOS 3.1 .

Clipper Summer'87.


3. .

:

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.            .. .

:

Ø ;

Ø () , :

1.     , ;

2.     , 0-6 ;

3.     ;

4.     ;

5.     , 0 6 ;

6.     , ;

7.     , ;

8.     ;

9.     ;

10.            0 6 ;

11.            ;

12.            ;

13.            ;

14.            ;

15.            ;

16.            , , , , , ;

17.            , 0-6 , 24 : 0-24 , 1 , ;

18.            , , , 24 ;

19.            , , , .

1-3,16-19 , 4-15 - .

, . , .

:

1.     ;

2.     ;

3.     ;

4.     ;

5.     ;

6.     ;

7.     , ;

8.     ;

9.     ;

10.            .


4. .

4.1 .

:

Ø , ;

Ø , ;

Ø ;

Ø , ;

4.2 .

:

Ø , ;

Ø .


3

.
1..

( ) 066/ .

:

Ø , , ;

Ø ;

Ø .

, .

2. .

"" IBM PC XT/AT : , EGA/VGA, 80 . 540 .

MS DOS 3.1 .


3. .

3.1 .

=>karta ENTER.

( 3.2.1).

3.2 .

:

Ø ;

Ø ;

Ø ;

Ø ;

Ø ;

Ø ;

Ø .

3.2.1

: . , , , , "DATE". ENTER, - ENTER.

! , .

3.2.2 .

:

Ø ;

Ø ;

Ø ;

Ø ;

Ø ;

Ø .

: , , . ENTER ESC . , .

3.2.3

"", , ( , 066/).

.

! , , , .

, 066/, (. 3 " "). , " ". " " ENTER. 066/ , , ENTER, ( ESC, - ). , " " . , .

F10.

! ( , ) , . , , .

3.2.4. .

"", , . , . , "" (. 3.2.3.).

, "" (. 3.2.5.).

. , "", :

Ø ;

Ø ;

Ø F5.

, :

1.     " ", .. , (" ");

2.     " ", .. ;

3.     " ".

ENTER .

3.2.5. () .

"", , . , " ", " " " " , . , , . , :

Ø ( , , ( ); , , );

Ø ;

Ø ( , , ).

- F10 ESC.

! "" , . (. 3.2.6).

3.2.6. .

, , , .

! "" .

3.2.7. .

"", . :

Ø ;

Ø .

, . , . , .

, , . :

1.     , ;

2.     , 0-6 ;

3.     ;

4.     ;

5.     , 0 6 ;

6.     , ;

7.     , ;

8.     ;

9.     ;

10.            0 6 ;

11.            ;

12.            ;

13.            ;

14.            ;

15.            ;

16.            , , , , , ;

17.            , 0-6 , 24 : 0-24 , 1 , ;

18.            , , , 24 ;

19.            , , , .

, , . , . ( ESC), .

. // ENTER. ESC.

, . .

:

Ø ;

Ø ;

Ø " ".

ESC.

! , . , .

3.2.8. .

, . " ".

3.2.9. .

"" "" .


4


1.

!

. .

( ) 066/ .

:

1.     , , ;

2.     ;

3.     .

"" IBM PC XT/AT : , EGA/VGA, 80 . 540 .

MS DOS 3.1 .

AUTOEXEC.BAT :

SET CLIPPER=F50.

CONFIG.SYS FILES 50 (FILES=50).

Clipper Summer'87.


2.

2.1

() "" :

Ø ;

Ø N66/;

Ø ;

Ø .

2.2

() () .

:

R66.DBF R66.NTX

DIA66.DBF DIA66.NTX

OP66.DBF OP66.NTX

066/ :

MENU.DBF MENU.NTX

:

CODIF.DBF CODIF.NTX

:

CLASS.DBF CLASS.NTX

GRUP1.DBF GRUP1.NTX

GRUP2.DBF GRUP2.NTX

BUFF8.DBF BUFF8.NTX

, :

OTD.FRM;

OTD1.FRM;

OTD2.FRM;

OTD5.FRM, OTD51.FRM;

NEONAT.FRM;

OTCH.FRM;

OTCH1.FRM;

OTCH2.FRM;

OTCH3.FRM;

OTCH4.FRM, OTCH41.FRM;

OTCH5.FRM;

OTCH6.FRM;

OTCH7.FRM;

OTCH8.FRM;

OTCH9.FRM; OTCH91.FRM; OTCH92.FRM;

OTCH10.FRM; OTCH101.FRM; OTCH102.FRM;

OTCH11.FRM; OTCH111.FRM; OTCH112.FRM;

OTCH12.FRM; OTCH121.FRM;

OTCH13.FRM;

OTCH14.FRM;

OTCH15.FRM; OTCH151.FRM;

OTCH16.FRM;

OTCH17.FRM;

OTCH18.FRM;

OTCH19.FRM;


2.3

2.3.1 KARTA66.DBF.

ߠ Ϡ

NUM_IB C 7

FAM C 30

F_S_NAME C 30 ,

DATE_B D 8

HOUR_B N 2

MINS_B N 2

OLD N 2

POL N 1

MASSA C 6

PLACE_LIV C 60

RAION N 2

CITY_VIL N 1 : /

DIRECT1 N 2

DIRECT2 N 2

STATE N 2

WHY N 1

DEPARTMENT N 2

KOIKA N 2

PASS N 1

TIME N 1

DATE_IN D 8

HOUR_IN N 2

MINS_IN N 2

END1 N 1

END2 N 1

END3 N 2

DATE_END D 8

HOUR_END N 2

MINS_END N 2

ALL_DAY N 2

DIA_DIRECT C 4

NUM_COME N 1

RW_DATE D 8 RW

RW_REZ N 1 RW

FAM_DOCTOR N 2

: NUM_IB.

2.3.2 DIA66.DBF

ߠ Ϡ

NUM_IB C 7

KOD1 C 1

KOD2 C 1

SHIFR C 4

COMM M 10

: NUM_IB+KOD1.

2.3.3 OP66.DBF

ߠ Ϡ

NUM_I C 7

SHIFR C 4

DATA D 8

COMM M 10

: NUM_IB.

2.3.4 MENU.DBF

ߠ Ϡ

KEY C 9 66

TEXT C 60

: KEY.

2.3.5 CODIF.DBF

ߠ Ϡ

KEY C 9

TEXT C 60

: KEY.

2.3.6 CLASS.DBF

ߠ Ϡ

NAME_CLASS C 100

SHIFR_LEFT C 4

SHIFR_RIGH C 4

: SHIFR_LEFT.

GRUP1.DBF GRUP2.DBF .

2.3.7 BUFF8.DBF

ߠ Ϡ

NUMBER C 2

SHIFR C 4

NAME C 100 ,

NAMECL C 100

SHIFRL C 4 .

SHIFRR C 4

COUNT1 N 10

COUNT2 N 10

A1 N 5

........

E1 N 5

: SHIFR.


3.

3.1

.6.

. 6.

5 .

:

Ø ;

Ø ;

Ø ;

Ø .

:

Ø ;

Ø .

.

, .

:

Ø ;

Ø , :

1.     , ;

2.     , 0-6 ;

3.     ;

4.     ;

5.     , 0 6 ;

6.     , ;

7.     , ;

8.     ;

9.     ;

10.            0 6 ;

11.            ;

12.            ;

13.            ;

14.            ;

15.            ;

16.            , , , , , ;

17.            , 0-6 , 24 : 0-24 , 1 , ;

18.            , , , 24 ;

19.            , , , .

:

Ø ;

Ø .

. .

" ". " ".


4.

. , , Ctrl-F10.

:

Ø ;

Ø ;

Ø ;

Ø ;

Ø ;

Ø ;

Ø ;

Ø ;

Ø .

, .

, INS. . ENTER. DEL. " ", " ". " " ENTER ESC. " " ENTER.

ENTER . ENTER. ESC .

ESC .


5.

. Clipper. :

Ø "Not enought memory","Memory fault" - , .

Ø "Unable to open file <_>" - .

, ..

5

:

.
1. .

!

" " " ".

( ) 066/ .

MS DOS 3.1 .

AUTOEXEC.BAT :

SET CLIPPER=F50.

CONFIG.SYS FILES 50

(FILES=50).

Clipper Summer'87.


2. .

:

1.     , , ;

2.     ;

3.     .


3. .

3.1

.7.

. 7. .

5 .

:

Ø ;

Ø ;

Ø ;

Ø .

:

Ø ;

Ø .

.

, .

:

Ø ;

Ø , :

1.     , ;

2.     , 0-6 ;

3.     ;

4.     ;

5.     , 0 6 ;

6.     , ;

7.     , ;

8.     ;

9.     ;

10.            0 6 ;

11.            ;

12.            ;

13.            ;

14.            ;

15.            ;

16.            , , , , , ;

17.            , 0-6 , 24 : 0-24 , 1 , ;

18.            , , , 24 ;

19.            , , , .

:

Ø ;

Ø .

. .

" ". " " " ".

( ) KARTA.PRG. LIB.OBJ. CODIF.DBF. :

rtlink fi KARTA, lib lib terminal, clipper, extend, dbfntx

ENTER.

3.2

. 8.

() MKB().

CATALOG().

. 8. .

:

Ø codif() - , .

Ø mempro(), codpic(), codtxt() - - .

Ø extra() - .

Ø ins_pic() - .

Ø del_pic() - .

viewer().

4.

"" IBM PC XT/AT c : , EGAVGA, 80 . 540 .

5.

:

=>karta

karta.EXE 'NORTON COMMANDER' ENTER.

6.

:

Ø , (. " ");

Ø , (. " ");

Ø ;

Ø , (. " ").

7.

:

Ø , (. " ");

Ø , (. " ");

.
Clipper Summer'87

: Karta.prg

*********************************************************************

* : "KARTA" *

* : 23.12.92 *

* : Clipper Summer'87 *

*********************************************************************

SET CONSOLE OFF

SET ESCAPE ON

SET MESSAGE TO 23 CENTER

SET BELL OF

SET DATE GERMAN

SET SCOREBOARD OFF

SET CONFIRM ON

SET WRAP ON

SET KEY -9 TO GO_MAIN && F10 - H

SET KEY -29 TO recon

init_lib() && LIB29

t_qwerty=.T.

CLEAR

********************************************

*

*******************************************

PUBLIC edit_index && .T.-

&& .F.-

edit_index=.F.

PUBLIC gotomain &&

&& .T.- MAIN

gotomain=.F.

PUBLIC _today &&

PUBLIC rec_num &&

*******************************************

f1 = CHR(218) + CHR(196) + CHR(191) + CHR(179) + ;

CHR(217) + CHR(196) + CHR(192) + CHR(179)

f2 = CHR(201) + CHR(205) + CHR(187) + CHR(186) + ;

CHR(188) + CHR(205) + CHR(200) + CHR(186)

f3 = CHR(218) + CHR(196) + CHR(191) + CHR(179) + ;

CHR(180) + CHR(196) + CHR(195) + CHR(179)

f1_fon = CHR(218) + CHR(196) + CHR(191) + CHR(179) + ;

CHR(217) + CHR(196) + CHR(192) + CHR(179) + ;

CHR(178)

f2_fon = CHR(201) + CHR(205) + CHR(187) + CHR(186) + ;

CHR(188) + CHR(205) + CHR(200) + CHR(186) + ;

CHR(178)

dn_s=CHR(198)+CHR(205)+CHR(181)+CHR(179)+; &&

CHR(217)+CHR(196)+CHR(192)+CHR(179) &&

fon1=CHR(177)

fon2=CHR(32)

singl=CHR(218)+CHR(196)+CHR(191)+CHR(179)+;

CHR(217)+CHR(196)+CHR(192)+CHR(179)

doubl=CHR(201)+CHR(205)+CHR(187)+CHR(186)+;

CHR(188)+CHR(205)+CHR(200)+CHR(186)

IF .NOT. ISCOLOR()

color1="W+/N,N/W,W+/N,W/N,W/N" &&

color2="W/N,W+/N" && gets

color3="W+/N,N/W" &&

color4="W/N,N/W" &&

color5="W/N,N/W" &&

color6="W/N,W+/N" && memed

color7=color2 &&

color8="W/N,W+/N,N/W" && HYPERTEXT 1-

color9="W/N,W+/N,N/W" && HYPERTEXT 2-

ELSE

color1="W+/B,N/G,BG/N,RB+/B,BG/B"

color2="BG/B,GR+/B,BG/B,RB+/B,BG/B"

color3="N/W,W+/GR"

color4="N/GR,W+/GR"

color5="G+/B,N/W,BG/B,RB+/B,+GR/B"

color6="W+/GR,N+/W"

color7="N/GR,+GR/GR"

color8="W+/B,G+/B,N/W"

color9="B/G,W+/G,W+/N"

ENDIF

******************** ՠ **********************

PRIVATE _NUM_IB &&

PRIVATE _FAM &&

_FAM=SPACE(25)

PRIVATE _F_S_NAME && ,

PRIVATE _DATE_B &&

PRIVATE time_B &&

time_B="00.00"

PRIVATE _HOUR_B &&

PRIVATE _MINS_B &&

PRIVATE _POL &&

PRIVATE _OLD &&

PRIVATE _OLD_D &&

PRIVATE _MASSA &&

PRIVATE _PLACE_LIV &&

PRIVATE _RAION &&

PRIVATE _CITY_VILL && /

PRIVATE _DIRECT1 &&

PRIVATE _DIRECT2 &&

PRIVATE _STATE &&

PRIVATE _PLACE &&

*PRIVATE _WHY &&

PRIVATE _DEPARTMENT &&

PRIVATE _KOIKA &&

PRIVATE _PASS && (, )

PRIVATE _TIME &&

PRIVATE _DATE_IN &&

_DATE_IN=DATE()

PRIVATE time_IN &&

time_IN="00.00"

PRIVATE _HOUR_IN &&

PRIVATE _MINS_IN &&

PRIVATE _END1 &&

PRIVATE _END2 &&

PRIVATE _END3 && ,

PRIVATE _DATE_END &&

PRIVATE time_END &&

time_END="00.00"

PRIVATE _HOUR_END &&

PRIVATE _MINS_END &&

PRIVATE _ALL_DAY && ,

PRIVATE _DIA_DIRECT &&

PRIVATE _NUM_COME &&

PRIVATE _RW_DATE && RW

PRIVATE _RW_REZ &&

PRIVATE _FAM_DOCTOR &&

PRIVATE _KOD1 &&

PRIVATE _KOD2 && -

PRIVATE _SHIFR &&

PRIVATE _SHIFR_ILL &&

*********************************************************************

SELECT 0 &&

USE DIA66 INDEX DIA66 ALIAS DIA66

COPY STRUCTURE TO BUFF.DBF

SELECT 0 &&

USE BUFF ALIAS BUFF

INDEX ON NUM_IB+KOD2+KOD1 TO BUFF.NTX

SELECT 0 &&

USE OP66 INDEX OP66 ALIAS OP66

COPY STRUCTURE TO BUFF2.DBF

SELECT 0 &&

USE BUFF2 ALIAS BUFF2

INDEX ON NUM_IB TO BUFF2.NTX

SELECT 0 &&

USE CODIF INDEX CODIF ALIAS CODIF

SELECT 0 &&

USE KARTA66 INDEX KARTA66 ALIAS KARTA

SELECT 0 &&

USE CODPIC INDEX CODPIC ALIAS CODPIC

SELECT 0 &&

USE CODTXT INDEX CODTXT ALIAS CODTXT

*********************** HH ***************************

SET COLOR TO "W+/N"

flop_box('c', 0,0,24,79,doubl+fon1)

saycent(0,0,79," N 66 ")

saycent(24,0,79,' 堠 - 𠠠 F10- ')

******************** HH ۠ ***********************

SET COLOR TO(color2)

_today=DATE()

flop_box('c', 9,25,11,55,singl+fon2)

@ 10,32 SAY "H:" GET _today

READ

_NUM_IB=RIGHT(STR(YEAR(_today)),2)+"00000"

**********************************************************************

* ۠ *

**********************************************************************

@ 1,1 CLEAR TO 23,78 &&

SET COLOR TO (color1)

@ 2,1,22,78 BOX f1_fon

choice = 1

PRIVATE screen0

DO WHILE choice # 6

SET COLOR TO (color1)

gotomain=.f.

***************** *********************

@ 1,2 PROMPT "" MESSAGE " "

@ 1,12 PROMPT "" MESSAGE " "

@ 1,22 PROMPT "/" MESSAGE " "

@ 1,45 PROMPT "" MESSAGE " "

@ 1,56 PROMPT "" MESSAGE " "

@ 1,67 PROMPT " 䠠 " MESSAGE " "

MENU TO choice

SAVE SCREEN TO screen0

DO CASE

CASE choice=1 &&

IF( inpindex()=0) && " "

@ 11,18 CLEAR TO 14,62

saycent(12,20,60," - ")

DO edit WITH .T.

ENDIF

CASE choice=2 &&

DO del

CASE choice=3 &&

SET COLOR TO(color2)

PRIVATE D1

DO WHILE .T.

D1=det() &&

IF D1=1 &&

saycent(12,20,60," - ")

DO edit WITH .T.

EXIT

ELSEIF D1=2 &&

saycent(12,20,60," Ҡ ")

INKEY(5)

ELSE

EXIT

ENDIF

ENDDO

RELEASE D1

CASE choice=4 &&

DO navy

CASE choice=5 &&

rez()

CASE choice=6 &&

EXIT

ENDCASE

PRIVATE sel

sel=SELECT()

SELECT BUFF

ZAP

SELECT BUFF2

ZAP

SELECT (sel)

RELEASE sel

RESTORE SCREEN FROM screen0

ENDDO

COMMIT &&

CLOSE ALL

DELETE FILE BUFF.DBF

DELETE FILE BUFF.DBT

DELETE FILE BUFF.NTX

DELETE FILE BUFF2.DBF

DELETE FILE BUFF2.DBT

DELETE FILE BUFF2.NTX

RETURN

**********************************************************************

* H H ߠ *

**********************************************************************

**********************************************************************

* INPINDEX() - 蠠 *

**********************************************************************

FUNCTION inpindex

PRIVATE sel,ret,scr

ret=-1

@ 2,1,4,78 BOX f3+fon2

sel=SELECT()

SELECT KARTA

SET CURSOR ON

DO WHILE !gotomain

SET COLOR TO(color2)

@ 3,28 SAY " " GET _NUM_IB PICTURE "@R 99/99999"

READ

IF LASTKEY()=27 && ESC

ret= (-1)

EXIT

ENDIF

IF LEN(ALLTRIM(_NUM_IB))=7

SEEK _NUM_IB

IF FOUND()

TONE(100,3)

message('e'," , H ")

LOOP

ENDIF

ret=0

EXIT

ELSE

TONE(100,3)

message('e','H HH , ')

ret=-1

ENDIF

ENDDO

SELECT(sel)

RETURN (ret)

**********************************************************************

**********************************************************************

* DET() - 蠠 *

**********************************************************************

FUNCTION det

PRIVATE ret1,menu1

PRIVATE sel1,clr1,screen1

ret1=2

sel1=SELECT()

clr1=SETCOLOR()

SELECT karta

SET COLOR TO &color5

@ 10,8 CLEAR TO 14,72

SAVE SCREEN TO screen1

@ 11,15 PROMPT " / "

@ 13,15 PROMPT " "

MENU TO menu1

IF menu1=0

ret1=0

ELSEIF menu1=1

SET CURSOR ON

@ 11,45 GET _NUM_IB PICTURE "@R 99/99999"

READ

SET CURSOR OFF

SEEK _NUM_IB

IF FOUND()

ret1=1

ENDIF

ELSEIF menu1=2

SET CURSOR ON

@ 13,45 GET _FAM PICTURE "@K" VALID RUSSIAN(_FAM)

READ

SET CURSOR OFF

SET FILTER TO FAM=ALLTRIM(_FAM)

GO TOP

IF !EOF()

ret1=1

_NUM_IB=NUM_IB

ENDIF

SET FILTER TO

ENDIF

RESTORE SCREEN FROM screen1

SELECT (sel1)

SET COLOR TO (clr1)

RETURN (ret1)

**********************************************************************

* 66 ۠ *

**********************************************************************

PROCEDURE edit

PARAMETERS do_edit

PRIVATE wt,wb,wl,wr,choice,beg_line,length,string,string1,title

PRIVATE sel,str,i

**************** Š ޠ *****************

PRIVATE last,numenu

last=SELECT()

numenu=1

select 0

use menu.dbf index menu alias menu

numenu=RECCOUNT()

DECLARE promp[numenu-1],vars[numenu-1],row[numenu-1],col[numenu-1]

&&

GO TOP

i=1

SEEK "MAIN"

title=STRTRAN(ALLTRIM(text),'','H')

SKIP

DO WHILE !EOF() &&LEFT(KEY,4)="MAIN"

promp[i]=STRTRAN(ALLTRIM(text),'','H')

i=i+1

SKIP

ENDDO

use

SELECT (last)

******************* ߠ **************

AFILL(vars,' ')

AFILL(col,1)

wt=3

wb=22

wl=2

wr=77

length=wr-wl+1 && ,

beg_line=1

PRIVATE New_Str && Context

New_Str=.F. &&

**************************************************************

s=IF(KARTA->END1=3,6,3)

DECLARE promp1[s],vars1[s],row1[s],col1[s] && .

promp1[1]=" :"

promp1[2]=" :"

promp1[3]=" :"

AFILL(vars1,' ')

AFILL(col1,1)

IF s=6

promp1[4]=" :"

promp1[5]=" :"

promp1[6]=" :"

ENDIF

**************************************************************

DO initial &&

**************************************************************

cur_promp=1

@ 3,1 CLEAR TO 22,78

DO WHILE .T.

IF gotomain.AND.do_edit

IF yesno(12," ? ")=1

IF all_r()

DO new_save

RETURN

ELSE

gotomain=.F.

ENDIF

ELSE

RETURN

ENDIF

ELSEIF gotomain.AND.!do_edit

RETURN

ENDIF

new_str=.F.

choice=hypertxt(wt,wl,wb,wr,string,promp,row,col,@beg_line,@cur_promp,color8,;

title)

cur_promp=cur_promp%len(promp)+1

IF do_edit

i=choice

DO CASE

CASE i=0

LOOP

CASE i=1

LOOP

CASE i=2

vars[i]=offset_get(wt,wl,beg_line,row[i],col[i],promp[i],@_FAM,;

"","RUSSIAN(_FAM)")

CASE i=3

vars[i]=offset_get(wt,wl,beg_line,row[i],col[i],promp[i],@_F_S_NAME,;

"","RUSSIAN(_F_S_NAME)")

CASE i=4

_DATE_IN=d_input(_DATE_IN)

vars[i]=DTOC(_DATE_IN)

_ALL_DAY=_DATE_END-_DATE_IN

IF _ALL_DAY=0

_ALL_DAY=1

ENDIF

DO ch_day && ,

CASE i=5

vars[i]=offset_get(wt,wl,beg_line,row[i],col[i],promp[i],@time_IN,;

"99.99","check_T(time_IN)")

_HOUR_IN=VAL(SUBSTR(time_IN,1,2))

_MINS_IN=VAL(SUBSTR(time_IN,4,5))

CASE i=6

vars[i]=codif1("POLS",@_POL)

CASE i=7

_DATE_B=d_input(_DATE_B)

vars[i]=DTOC(_DATE_B)

CASE i=8

vars[i]=offset_get(wt,wl,beg_line,row[i],col[i],promp[i],@time_B,;

"99.99","check_T(time_B)")

_HOUR_B=VAL(SUBSTR(time_B,1,2))

_MINS_B=VAL(SUBSTR(time_B,4,5))

y_m_day(_DATE_B,_HOUR_B,_MINS_B,_DATE_IN,_HOUR_IN,_MINS_IN)

CASE i=9

vars[i]=codif1("OLDS",@_OLD)

CASE i=10

vars[i]=m_input() &&

CASE i=11

vars[i]=offset_get(wt,wl,beg_line,row[i],col[i],promp[i],@_PLACE_LIV)

CASE i=12

vars[i]=codif1("RIGS",@_RAION)

CASE i=13

vars[i]=codif1("CITZ",@_CITY_VILL)

CASE i=14

vars[i]=codif1("DIRS",@_DIRECT1)

IF _DIRECT1=1

vars[i]=codif1("BIRS",@_DIRECT2)

ELSEIF _DIRECT1=2

vars[i]=codif1("HOSP",@_DIRECT2)

ELSE

_DIRECT2=0

ENDIF

CASE i=15

vars[i]=codifpic("CODIF","STTE",@_STATE)

IF _STATE=1

promp[i]=" :"

vars[i]=codifpic("CODIF","PLCE",@_PLACE)

ELSE

promp[i]=" :"

ENDIF

* CASE i=15

* vars[i]=codif1("RIZS",@_WHY)

CASE i=16

vars[i]=codif1("DEPS",@_DEPARTMENT)

CASE i=17

vars[i]=codif1("KOIK",@_KOIKA)

CASE i=18

vars[i]=codif1("EXTR",@_PASS)

CASE i=19

vars[i]=codif1("TIMS",@_TIME)

CASE i=20

vars[i]=codif1("REZS",@_END1)

CASE i=21

_DATE_END=d_input(_DATE_END)

vars[i]=DTOC(_DATE_END)

_ALL_DAY=_DATE_END-_DATE_IN

IF _ALL_DAY=0

_ALL_DAY=1

ENDIF

IF _ALL_DAY>=0.AND.EMPTY(_DATE_IN)=.F.

vars[i]=vars[i]+SPACE(5)+" :"+STR(_ALL_DAY)

ENDIF

CASE i=22

vars[i]=offset_get(wt,wl,beg_line,row[i],col[i],promp[i],@time_END,;

"99.99","check_T(time_END)")

_HOUR_END=VAL(SUBSTR(time_END,1,2))

_MINS_END=VAL(SUBSTR(time_END,4,5))

CASE i=23

PRIVATE txtd

txtd=SPACE(100)

vars[i]=offset_get(wt,wl,beg_line,row[i],col[i],promp[i],@_DIA_DIRECT,;

"@R 999.9")

mkb(1,1,@_DIA_DIRECT,@txtd)

IF _DIA_DIRECT=" "

vars[23]=""

ELSE

vars[23]=SUBSTR(_DIA_DIRECT,1,3)+"."+SUBSTR(_DIA_DIRECT,4,1)+" "+;

"<"+TRIM(txtd)+">"

new_str=.T.

ENDIF

RELEASE txtd

CASE i=24

vars[i]=codif1("VIZI",@_NUM_COME)

CASE i=27

_RW_DATE=d_input(_RW_DATE)

vars[i]=DTOC(_RW_DATE)

CASE i=28

vars[i]=codif1("RWRZ",@_RW_REZ)

CASE i=29

vars[i]=codifpic("CODIF","FAMS",@_FAM_DOCTOR)

*********************************************

CASE i=25

vars[i]=diagn()

new_str=.T.

*********************************************

CASE i=26

DO op

new_str=.T.

ENDCASE

***********************************************************

string1=""

IF choice#25.AND.choice#26

vars[choice]=TRIM(vars[choice])+"."

ENDIF

context(@string1,promp[choice],vars[choice],length,New_Str)

IF choice=20

IF _END1=2 &&

context(@string1,":",codif1("RIZ2",@_END2)+".",length,.F.)

context(@string1,":",codif1("HOSP",@_END3)+".",length,.F.)

ELSEIF _END1=3 &&

context(@string1,":",codif1("RIZ3",@_END2)+".",length,.F.)

ENDIF

ELSEIF choice=22.AND._END1=3

y_m_day(_DATE_B,_HOUR_B,_MINS_B,_DATE_END,_HOUR_END,_MINS_END)

context(@string1," :",;

extra1(_OLD_D,"OLDS")+".",length,.F.)

ELSEIF choice=26

context(@string1," :","",length,.F.)

ENDIF

stuff1(@string,length,string1,choice,row,len(promp))

ENDIF

ENDDO

RETURN

**********************************************************************

* 66 ۠ *

**********************************************************************

PROCEDURE initial

PRIVATE sel,i,v

PRIVATE rez

SET CURSOR OFF

sel=SELECT()

v=replicate(chr(176),30)

@ 13,25 SAY v

SELECT karta

vars[1]= SUBSTR(_NUM_IB,1,2)+'/'+SUBSTR(_NUM_IB,3,7)

vars[2] =FAM

_FAM=FAM

vars[3] =F_S_NAME

_F_S_NAME=F_S_NAME

vars[4]=DTOC(DATE_IN)

_DATE_IN=DATE_IN

*__________________________________

_HOUR_IN=HOUR_IN

_MINS_IN=MINS_IN

IF _HOUR_IN=0.AND._MINS_IN=0

time_IN="00.00"

ELSEIF _HOUR_IN=0

time_IN="00."+STR(MINS_IN)

ELSEIF _MINS_IN=0

time_IN=STR(HOUR_IN)+".00"

ELSE

time_IN=STR(HOUR_IN)+"."+STR(MINS_IN)

ENDIF

vars[5]=time_IN

*----------------------------------

vars[6] =extra1(POL,"POLS")

_POL=POL

vars[7] =DTOC(DATE_B)

_DATE_B=DATE_B

*__________________________________

_HOUR_B=HOUR_B

_MINS_B=MINS_B

IF _HOUR_B=0.AND._MINS_B=0

time_B="00.00"

ELSEIF _HOUR_B=0

time_B="00."+STR(MINS_B)

ELSEIF _MINS_B=0

time_B=STR(HOUR_B)+".00"

ELSE

time_B=STR(HOUR_B)+"."+STR(MINS_B)

ENDIF

vars[8]=time_B

*-----------------------------------

vars[9] =extra1(OLD,"OLDS")

_OLD=OLD

_OLD_D=OLD_D

vars[10] =MASSA

_MASSA =MASSA

vars[11] =PLACE_LIV

_PLACE_LIV=PLACE_LIV

vars[12] =extra1(RAION,"RIGS")

_RAION =RAION

vars[13]=extra1(CITY_VILL,"CITZ")

_CITY_VILL=CITY_VILL

*___________________________________

_DIRECT1=DIRECT1

_DIRECT2=DIRECT2

vars[14]=IF(_DIRECT2=0,extra1(_DIRECT1,"DIRS"),;

IF(_DIRECT1=1,extra1(_DIRECT2,"BIRS"),;

extra1(_DIRECT2,"HOSP")))

*------------------------------------

promp[15]=IF(PLACE#0," :"," :")

vars[15]=IF(STATE#0,IF(STATE=1,;

IF(PLACE=0," ",extra1(PLACE,"PLCE")),;

extra1(STATE,"STTE")),;

" ")

_STATE=IF(STATE=0,1,STATE)

_PLACE=PLACE

vars[16]=extra1(DEPARTMENT,"DEPS")

_DEPARTMENT=DEPARTMENT

vars[17]=extra1(KOIKA,"KOIK")

_KOIKA=KOIKA

vars[18]=extra1(PASS,"EXTR")

_PASS=PASS

vars[19]=extra1(TIME,"TIMS")

_TIME=TIME

*__________________________________

_END1=END1

_END2=END2

_END3=END3

vars[20]=extra1(_END1,"REZS")

*----------------------------------

vars[21]=DTOC(DATE_END)

_DATE_END=DATE_END

*__________________________________

_HOUR_END=HOUR_END

_MINS_END=MINS_END

IF _HOUR_END=0.AND._MINS_END=0

time_END="00.00"

ELSEIF _HOUR_END=0

time_IN="00."+STR(MINS_END)

ELSEIF _MINS_END=0

time_IN=STR(HOUR_END)+".00"

ELSE

time_END=STR(HOUR_END)+"."+STR(MINS_END)

ENDIF

vars[22]=time_END

*__________________________________

_ALL_DAY=ALL_DAY

IF !EMPTY(_DATE_END)

vars[21]=vars[21]+SPACE(5)+" :"+STR(_ALL_DAY)

ENDIF

*----------------------------------

_DIA_DIRECT=SHIFR

IF _DIA_DIRECT#" "

PRIVATE txtd

txtd=SPACE(100)

mkb(1,1,@_DIA_DIRECT,@txtd)

vars[23]=SUBSTR(_DIA_DIRECT,1,3)+"."+SUBSTR(_DIA_DIRECT,4,1)+" "+;

"<"+TRIM(txtd)+">"

RELEASE txtd

ELSEIF _DIA_DIRECT=" "

vars[23]=_DIA_DIRECT

ENDIF

*----------------------------------

vars[24]=extra1(NUM_COME,"VIZI")

_NUM_COME=NUM_COME

vars[27]=DTOC(RW_DATE)

_RW_DATE=RW_DATE

vars[28]=extra1(RW_REZ,"RWRZ")

_RW_REZ=RW_REZ

vars[29]=extra1(FAM_DOCTOR,"FAMS")

_FAM_DOCTOR=FAM_DOCTOR

v=replicate(chr(178),10)

@ 13,25 SAY v

*************************************

vars[25]=initial1("DIA66")

v=replicate(chr(178),20)

@ 13,25 SAY v

*************************************

SELECT op66

SET SOFTSEEK ON

seek _num_ib

SET SOFTSEEK OFF

IF !FOUND()

vars[26]="" &&

_SHIFR_ILL="0000" &&SHIFR_ILL

ELSE

PRIVATE txts,string8

txts=SPACE(70)

STORE "" TO string8

DO WHILE NUM_IB=_NUM_IB

_SHIFR_ILL=SHIFR

catalog(@_SHIFR_ILL,@txts)

txts=TRIM(txts)

context(@string8,"",txts,length,.F.)

context(@string8," : ",DTOC(DATA)+".",length,.F.)

context(@string8," : ",ALLTRIM(COMM),length,.F.)

vars[26]=string8

SKIP 1

ENDDO

RELEASE txts,string8

SELECT BUFF2

COMMIT

APPEND FROM OP66 FOR NUM_IB=_NUM_IB

ENDIF

v=replicate(chr(178),30)

@ 13,25 SAY v

******************* *************************

string="" &&

SELECT karta

SEEK _NUM_IB

rez=FOUND()

New_Str=.F.

FOR i=1 TO LEN(promp)

IF (i=23.AND._DIA_DIRECT#" ").OR.i=25.OR.i=26

New_Str=.T.

ENDIF

IF rez.AND.!EMPTY(vars[i])

row[i]=context(@string,promp[i],TRIM(vars[i])+".",length,New_Str)

ELSE

row[i]=context(@string,promp[i],vars[i],length,New_Str)

ENDIF

New_Str=.F.

IF i=20 && ""

IF _END1=2 &&

context(@string,":",extra1(_END2,"RIZ2")+".",length,.F.)

context(@string,":",extra1(_END3,"HOSP")+".",length,.F.)

ELSEIF _END1=3 &&

context(@string,":",extra1(_END2,"RIZ3")+".",length,.F.)

ENDIF

ELSEIF i=22.AND._END1=3

context(@string," :",;

extra1(_OLD_D,"OLDS")+".",length,.F.)

ELSEIF i=26

context(@string," :","",length,.F.)

ENDIF

NEXT

SET CURSOR ON

SELECT (sel)

RETURN

*********************************************************************

* ⠠ *

*********************************************************************

FUNCTION initial1

PARAMETERS DBN

PRIVATE sl,rez1

SET CURSOR OFF

sl=SELECT()

SELECT &DBN

SET SOFTSEEK ON

SEEK _NUM_IB

SET SOFTSEEK OFF

rez1=FOUND()

IF !rez1

vars1[1]="" &&

vars1[2]="" &&

vars1[3]="" &&

IF _END1=3

vars1[4]="" &&

vars1[5]="" &&

vars1[6]="" &&

ENDIF

_SHIFR=SPACE(4) && SHIFR

_KOD1=0 && KOD1

_KOD2=0 && KOD2

ELSE

PRIVATE txts,string2,string3,string4,string5,string6,string7

txts=SPACE(100)

STORE "" TO string2,string3,string4,string5,string6,string7

DO WHILE NUM_IB=_NUM_IB

_KOD1=KOD1

_KOD2=KOD2

_SHIFR=SHIFR

IF _SHIFR="0000"

txts=""

ELSE

IF _KOD1="1".OR._KOD1="2".AND._KOD2#"2"

mkb(1,1,@_SHIFR,@txts)

ENDIF

ENDIF

txts=SUBSTR(_SHIFR,1,3)+"."+SUBSTR(_SHIFR,4,1)+" "+"<"+TRIM(txts)+">"

IF _KOD2#"2"

IF _KOD1="1"

context(@string2,"",txts,length,.F.)

context(@string2,"",ALLTRIM(COMM1),length,.F.)

vars1[1]=string2

ELSEIF _KOD1="2"

context(@string3,"",txts,length,.F.)

vars1[2]=string3

ELSEIF _KOD1="3"

context(@string4,"",ALLTRIM(COMM1),length,.F.)

vars1[3]=string4

ENDIF

ELSEIF _KOD2="2".AND._END1=3

IF _KOD1="1"

context(@string5,"",txts,length,.F.)

context(@string5,"",ALLTRIM(COMM1),length,.F.)

vars1[4]=string5

ELSEIF _KOD1="2"

context(@string6,"",ALLTRIM(COMM1),length,.F.)

vars1[5]=string6

ELSEIF _KOD1="3"

context(@string7,"",ALLTRIM(COMM1),length,.F.)

vars1[6]=string7

ENDIF

ENDIF

SKIP 1

ENDDO

RELEASE txts,string2,string3,string4,string5,string6,string7

SELECT BUFF

APPEND FROM DIA66 FOR NUM_IB=_NUM_IB

ENDIF

PRIVATE string11,j

string11=""

New_Str=.T.

context(@string11,SPACE(10)+" "," ",length,.T.)

FOR j=1 TO s

IF rez1.AND.!EMPTY(vars1[j])

row1[j]=context(@string11,promp1[j],TRIM(vars1[j])+".",length,New_Str)

ELSE

row1[j]=context(@string11,promp1[j],vars1[j],length,New_Str)

ENDIF

IF j=3.AND._END1=3

context(@string11," "," ",length,.T.)

context(@string11,SPACE(10)+"- "," ",length,.T.)

ENDIF

NEXT

SET CURSOR ON

SELECT (sl)

RETURN (string11)

*********************************************************************

* *

*********************************************************************

FUNCTION d_input

PARAMETERS dat

PRIVATE screen

SAVE SCREEN TO screen

SET CURSOR ON

@ 10,25 CLEAR TO 15,55

@ 10,25 TO 15,55

saycent(10,30,50," ")

@ 12,36 SAY ".."

@ 14,36 GET dat PICTURE "@D"

READ

SET CURSOR OFF

RESTORE SCREEN FROM screen

RETURN dat

*********************************************************************

* ࠠ *

*********************************************************************

FUNCTION m_input

PRIVATE screen

SAVE SCREEN TO screen

SET CURSOR ON

@ 10,25 CLEAR TO 15,55

@ 10,25 TO 15,55

saycent(10,30,50," ")

@ 12,38 SAY "/."

@ 14,38 GET _MASSA PICTURE "@P 99/999"

READ

SET CURSOR OFF

RESTORE SCREEN FROM screen

RETURN _MASSA

*********************************************************************

* 蠠 *

*********************************************************************

FUNCTION check_T

PARAMETERS timeS

PRIVATE L,hour,mins

L=.F.

hour=SUBSTR(timeS,1,2)

mins=SUBSTR(timeS,4,5)

IF VAL(hour)<24.AND.VAL(mins)<60

L=.T.

ENDIF

RETURN (L)

*********************************************************************

* , 堠 *

*********************************************************************

PROCEDURE ch_day

PRIVATE string2

string2=""

vars[choice]=vars[choice]+"."

context(@string2,promp[choice],vars[choice],length,New_Str)

stuff1(@string,length,string2,choice,row,len(promp))

choice=21

vars[choice]=DTOC(_DATE_END)

IF _ALL_DAY>=0.AND.EMPTY(_DATE_IN)=.F.

vars[choice]=DTOC(_DATE_END)+SPACE(5)+" :"+;

STR(_ALL_DAY)

ENDIF

RETURN

*********************************************************************

* 蠠 *

*********************************************************************

FUNCTION diagn

PRIVATE txtf,sel,w_do

PRIVATE F1,screen,color

PRIVATE str

PRIVATE s

PRIVATE q

PRIVATE string11

q=0

str=""

txtf=SPACE(100)

_SHIFR=SPACE(4)

sel=SELECT()

F1=0

string11=vars[25]

s=IF(_END1=3,6,3)

IF LEN(promp1)#s

@ 11,18 CLEAR TO 13,62

@ 11,18 TO 13,62

saycent(12,20,60," ")

DECLARE promp1[s],vars1[s],row1[s],col1[s] && .

promp1[1]=" :"

promp1[2]=" :"

promp1[3]=" :"

IF s=6

promp1[4]=" :"

promp1[5]=" :"

promp1[6]=" :"

ENDIF

AFILL(vars1,' ')

AFILL(col1,1)

**************************************************************

string11=initial1("BUFF") &&

**************************************************************

ENDIF

wt1=3

wb1=IF(s=3,12,20)

wl1=2

wr1=77

length=wr1-wl1+1 && ,

beg_line1=1

PRIVATE New_Str1 && Context

New_Str1=.F. &&

cur_promp1=1

DO WHILE !gotomain

q=hypertxt(wt1,wl1,wb1,wr1,string11,promp1,row1,col1,;

@beg_line1,@cur_promp1,color9," ")

cur_promp1=cur_promp1%len(promp1)+1

DO CASE

CASE q=0

LOOP

CASE q=1.OR.q=2.OR.q=4

w_do=1

SAVE SCREEN TO screen

@ 11,25 CLEAR TO 16,55

@ 11,25 TO 16,55 DOUBLE

@ 11,30 PROMPT ""

@ 11,44 PROMPT ""

IF EMPTY(vars1[q]).OR.BUFF->KOD1="2".AND.BUFF->KOD2="2"

vars1[q]=""

KEYBOARD CHR(13)

ENDIF

MENU TO w_do

str=vars1[q]

IF w_do=1

@ 13,30 SAY " " GET _SHIFR PICTURE "@R 999.9"

READ

IF LASTKEY()=27

vars1[q]=str

RESTORE SCREEN FROM screen

LOOP

ENDIF

F1=mkb(1,1,@_SHIFR,@txtf)

IF F1#-1

txtf=SUBSTR(_SHIFR,1,3)+"."+SUBSTR(_SHIFR,4,1)+" "+;

"<"+TRIM(txtf)+">"+"."

SELECT BUFF

APPEND BLANK

REPLACE NUM_IB WITH _NUM_IB

REPLACE SHIFR WITH _SHIFR

REPLACE KOD2 WITH IF(q=4,"2","1")

REPLACE KOD1 WITH IF(q=1.OR.q=4,"1","2")

REPLACE COMM1 WITH MEMPRO(COMM1,10,5,18,75,;

" ","ILLS",'ILLS')

context(@str,"",txtf+".",length,.F.)

context(@str," :",ALLTRIM(COMM1),length,.T.)

ENDIF

ELSEIF w_do=2

PRIVATE i,j,k,EN,ET,NALL,MALL,NDEL

NALL=INT(LEN(str)/length)

MALL=NALL

FOR i=1 TO NALL

ET=ALLTRIM(SUBSTR(str,length*(i-1)+1,length))

EN=ASC(ET)

IF EN>57

MALL=MALL-1

ENDIF

NEXT

DECLARE _0B[MALL],_0S[MALL]

k=1

FOR j=1 TO NALL

ET=ALLTRIM(SUBSTR(str,length*(j-1)+1,length))

EN=ASC(ET)

IF EN<58

_0B[k]=SUBSTR(str,length*(j-1)+1,length)

_0S[k]=LEFT(ALLTRIM(_0B[k]),5)

k=k+1

ELSE

_0B[k-1]=_0B[k-1]+SUBSTR(str,length*(j-1)+1,length)

ENDIF

NEXT

NDEL=ACHOICE(13,35,15,45,_0S)

SELECT BUFF

IF q=1.OR.q=4

SEEK _NUM_IB+IF(q=1,"1","2")+"1"

ELSEIF q=2

SEEK _NUM_IB+"1"+"2"

ENDIF

SKIP NDEL-1

DELETE

PACK

str=""

FOR j=1 TO MALL

IF j#NDEL

str=str+_0B[j]

ENDIF

NEXT

RELEASE j,NALL,NDEL

RELEASE _0B,_0S

ENDIF

vars1[q]=str

RESTORE SCREEN FROM screen

CASE q=3.OR.q=5.OR.q=6

PRIVATE str356

STORE "" TO str356

SELECT BUFF

private s

s=_NUM_IB+IF(q=3,"1","2")+IF(q=5,"2","3")

SEEK s && _NUM_IB+IF(q=3,"1","2")+IF(q=5,"2","3")

IF !FOUND()

APPEND BLANK

REPLACE NUM_IB WITH _NUM_IB

REPLACE KOD1 WITH IF(q=5,"2","3")

REPLACE KOD2 WITH IF(q=3,"1","2")

ENDIF

SET CURSOR ON

REPLACE COMM1 WITH ;

MEMPRO(COMM1,10,5,15,75,;

IF(q=5," ",;

" "),;

"ILLS",'ILLS')

context(@str356,"",ALLTRIM(COMM1),length,.F.)

vars1[q]=str356

RELEASE str356

ENDCASE

new_str1=.T.

string111=""

context(@string111,promp1[q],vars1[q],length,New_Str1)

IF q=3.AND._END1=3

context(@string111," "," ",length,.T.)

context(@string111,SPACE(10)+"- "," ",length,.T.)

ENDIF

stuff1(@string11,length,string111,q,row1,len(promp1))

ENDDO

REINDEX

gotomain=.F.

SELECT (sel)

RETURN (string11)

*********************************************************************

* 蠠 *

*********************************************************************

PROCEDURE op

PRIVATE txto,sel,w_do

PRIVATE F2,screen,color

PRIVATE stro

STORE "" TO stro

txto=SPACE(80)

_SHIFR_ILL="0000"

sel=SELECT()

SAVE SCREEN TO screen

@ 11,25 CLEAR TO 16,55

@ 11,25 TO 16,55 DOUBLE

@ 11,30 PROMPT ""

@ 11,44 PROMPT ""

IF EMPTY(vars[choice])

KEYBOARD CHR(13)

ENDIF

MENU TO w_do

stro=vars[choice]

IF w_do=1

@ 13,30 SAY " " GET _SHIFR_ILL PICTURE "@R 99.99"

READ

RESTORE SCREEN FROM screen

IF LASTKEY()=27

RETURN

ENDIF

F2=catalog(@_SHIFR_ILL,@txto)

IF F2#-1

SELECT BUFF2

APPEND BLANK

REPLACE NUM_IB WITH _NUM_IB

REPLACE SHIFR WITH _SHIFR_ILL

REPLACE DATA WITH d_input(DATA)

SET CURSOR ON

REPLACE COMM WITH ;

MEMPRO(COMM,10,5,15,75," ","OPER",'OPER')

context(@stro,"",ALLTRIM(txto)+".",length,.F.)

context(@stro," : ",DTOC(DATA)+".",length,.F.)

context(@stro," : ",ALLTRIM(COMM)+".",length,.F.)

ENDIF

ELSEIF w_do=2

PRIVATE i,j,k,EN,ET,NALL,MALL,NDEL

NALL=INT(LEN(stro)/length)

MALL=NALL

FOR i=1 TO NALL

ET=ALLTRIM(SUBSTR(stro,length*(i-1)+1,length))

EN=ASC(ET)

IF EN<>60

MALL=MALL-1

ENDIF

NEXT

DECLARE _0B[MALL],_0S[MALL]

k=1

FOR j=1 TO NALL

ET=ALLTRIM(SUBSTR(stro,length*(j-1)+1,length))

EN=ASC(ET)

IF EN=60

_0B[k]=SUBSTR(stro,length*(j-1)+1,length)

_0S[k]=LEFT(ALLTRIM(_0B[k]),5)

k=k+1

ELSE

_0B[k-1]=_0B[k-1]+SUBSTR(stro,length*(j-1)+1,length)

ENDIF

NEXT

NDEL=ACHOICE(13,35,15,45,_0S)

IF LASTKEY()=27

RETURN

ENDIF

SELECT BUFF2

GO NDEL

DELETE

PACK

stro=""

FOR j=1 TO MALL

IF j#NDEL

stro=stro+_0B[j]

ENDIF

NEXT

RELEASE j,NALL,NDEL

RELEASE _0B,_0S

ENDIF

vars[choice]=stro

SELECT (sel)

RETURN

*********************************************************************

* karta.dbf *

*********************************************************************

PROCEDURE new_save

PRIVATE sel,v

sel=SELECT()

SET CURSOR OFF

SELECT karta

@ 11,18 CLEAR TO 13,62

@ 10,17 TO 14,63

saycent(12,20,60," - ")

SET COLOR TO W/N

v=replicate(chr(32),30)

SET COLOR TO

@ 13,25 SAY v

SEEK _NUM_IB

IF FOUND()=.F.

APPEND BLANK

REPLACE NUM_IB WITH _NUM_IB

rec_num = RECNO()

ENDIF

REPLACE FAM WITH ALLTRIM(_FAM)

REPLACE F_S_NAME WITH ALLTRIM(_F_S_NAME)

REPLACE DATE_B WITH _DATE_B

REPLACE HOUR_B WITH _HOUR_B

REPLACE MINS_B WITH _MINS_B

REPLACE POL WITH _POL

REPLACE OLD WITH _OLD

REPLACE OLD_D WITH _OLD_D

REPLACE MASSA WITH _MASSA

REPLACE PLACE_LIV WITH _PLACE_LIV

REPLACE RAION WITH _RAION

REPLACE CITY_VILL WITH _CITY_VILL

REPLACE DIRECT1 WITH _DIRECT1

REPLACE DIRECT2 WITH _DIRECT2

REPLACE STATE WITH _STATE

REPLACE PLACE WITH _PLACE

*REPLACE WHY WITH _WHY

REPLACE DEPARTMENT WITH _DEPARTMENT

REPLACE KOIKA WITH _KOIKA

REPLACE PASS WITH _PASS

REPLACE TIME WITH _TIME

REPLACE DATE_IN WITH _DATE_IN

REPLACE HOUR_IN WITH _HOUR_IN

REPLACE MINS_IN WITH _MINS_IN

REPLACE END1 WITH _END1

REPLACE END2 WITH _END2

REPLACE END3 WITH _END3

REPLACE DATE_END WITH _DATE_END

REPLACE HOUR_END WITH _HOUR_END

REPLACE MINS_END WITH _MINS_END

REPLACE ALL_DAY WITH _ALL_DAY

REPLACE SHIFR WITH _DIA_DIRECT

REPLACE NUM_COME WITH _NUM_COME

REPLACE RW_DATE WITH _RW_DATE

REPLACE RW_REZ WITH _RW_REZ

REPLACE FAM_DOCTOR WITH _FAM_DOCTOR

*REINDEX

COMMIT

v=replicate(chr(177),10)

@ 13,25 SAY v

SELECT DIA66

DELETE FOR NUM_IB=_NUM_IB

PACK

*COMMIT

IF _END1=3

APPEND FROM BUFF FOR NUM_IB=_NUM_IB

ELSE

APPEND FROM BUFF FOR NUM_IB=_NUM_IB.AND.KOD2#"2"

ENDIF

*REINDEX

COMMIT

SELECT BUFF

ZAP

*COMMIT

*REINDEX

COMMIT

v=replicate(chr(177),20)

@ 13,25 SAY v

SELECT OP66

DELETE FOR NUM_IB=_NUM_IB

PACK

*COMMIT

APPEND FROM BUFF2 FOR NUM_IB=_NUM_IB

v=replicate(chr(177),30)

*REINDEX

COMMIT

@ 13,25 SAY v

SELECT BUFF2

ZAP

*COMMIT

*REINDEX

COMMIT

SELECT (sel)

RETURN

*********************************************************************

* 頠 *

*********************************************************************

PROCEDURE del

PRIVATE flag_del && ,

PRIVATE nr,tr,del_str,temp,_01,_02,sel

@ 5,1,22,78 BOX dn_s+fon1

sel=SELECT()

flag_del=0

c_d=2

SELECT KARTA

*RECALL ALL

*GO TOP

nr=RECCOUNT()

DECLARE stor_ib[nr]

DO WHILE !gotomain

DO first

@ 7,5,16,74 BOX singl+fon2

SET COLOR TO "r+*/b"

saycent(5,0,79,if(DELETED()," ",SPACE(27)))

SET COLOR TO (color1)

@ 10,10 PROMPT IF(!BOF()," ","******")

@ 12,10 PROMPT IF(DELETED()," ",;

" ")

@ 14,10 PROMPT IF(!EOF()," ","******")

@ 16,35 PROMPT "" MESSAGE " "+;

" "

MENU TO c_d

DO CASE

CASE c_d=0

LOOP

CASE c_d=1

IF(!BOF())

SKIP -1

ENDIF

CASE c_d=2

IF(!EOF())

IF !DELETED()

DELETE

flag_del=flag_del+1

stor_ib[flag_del]=NUM_IB

ELSE

RECALL

tr=ASCAN(stor_ib,NUM_IB)

ADEL(stor_ib,tr)

flag_del=flag_del-1

ENDIF

ENDIF

CASE c_d=3

IF(!EOF())

SKIP

ENDIF

CASE c_d=4

EXIT

ENDCASE

ENDDO

IF flag_del>0

y=yesno(10," "+alltrim(str(flag_del))+" ?")

IF y=1

temp="NUM_IB='"

del_str=temp+stor_ib[1]+"'"

temp=".OR."+temp

FOR tr=2 TO flag_del

del_str=del_str+temp+stor_ib[tr]+"'"

NEXT

DELETER(del_str,"DIA66") && DIA66.DBF

DELETER(del_str,"OP66") && OP66.DBF

***************************************

pack && KARTA66.DBF

ELSE

RECALL ALL

GOTO TOP

ENDIF

ENDIF

SELECT (sel)

RETURN

*********************************************************************

* ⠠ *

*********************************************************************

FUNCTION rez

PRIVATE _OTCH,_OTCH_N,scr1

_OTCH=00

_OTCH_N=""

SAVE SCREEN TO scr1

PRIVATE sel

sel=SELECT()

PRIVATE _DATE_FROM

_DATE_FROM=_today

PRIVATE _DATE_TILL

_DATE_TILL=_today

PRIVATE dep,dep_name

PRIVATE numb1

PRIVATE txt

PRIVATE pole

PRIVATE count

count=1

PRIVATE _c

_c=1

PRIVATE _p

_p=1

PRIVATE OT1,OT2

PRIVATE coun,c1,v1,v2

PRIVATE f

f=1

DO WHILE .T.

SELECT 0

USE BUFF8.DBF INDEX BUFF8 ALIAS BUFF8

ZAP

numb1=0

txt=SPACE(100)

pole=1

STORE "" TO OT1,OT2

dep=0

dep_name=""

codif1("PERD",@_p)

IF _p=0

SELECT BUFF8

USE

EXIT

ELSEIF _p=2

_OTCH_N=codif1("OTCH",@_OTCH)

IF _OTCH=0

SELECT BUFF8

USE

EXIT

ENDIF

ENDIF

dep_name=codif1("DEPS",@dep)

IF _p=1.AND.dep=0

SELECT BUFF8

USE

LOOP

ENDIF

dep_name=IF(dep=0," ",dep_name)

IF period()=0 &&

SET CURSOR OFF

IF _p=1

********************* ۠ **********************

_OTCH_N=" "

SELECT DIA66

SET RELATION TO SHIFR INTO BUFF8

SELECT karta

SET RELATION TO NUM_IB INTO DIA66

GO TOP

PRIVATE OT1D1,OT2D1,OT1D2,OT2D2

IF dep=2.OR.dep=11

OT1="OTD5.FRM"

OT1D1="OTD2.FRM"

OT2D1="OTD51.TXT"

ELSE

OT1="OTD.FRM"

OT1D1="OTD1.FRM"

OT2D1="OTD_1.TXT"

OT1D2="OTD2.FRM"

OT2D2="OTD_2.TXT"

ENDIF

DO show_st &&

DO WHILE !EOF()

IF dep=KARTA->DEPARTMENT.AND.;

KARTA->DATE_END>=_DATE_FROM.AND.KARTA->DATE_END<=_DATE_TILL.AND.;

KARTA->END1#3.AND.DIA66->KOD1="1"

_SHIFR=DIA66->SHIFR

SELECT BUFF8

IF EOF()

APPEND BLANK

REPLACE SHIFR WITH _SHIFR

mkb(1,1,@_SHIFR,@txt)

REPLACE NAME WITH txt

ENDIF

REPLACE COUNT1 WITH COUNT1+KARTA->ALL_DAY &&

REPLACE COUNT2 WITH COUNT2+1 &&

pole=FIELD(8+KARTA->RAION)

REPLACE &pole WITH &pole+1 && /.././

pole=FIELD(14+KARTA->NUM_COME)

REPLACE &pole WITH &pole+1 && /

pole=FIELD(16+KARTA->DIRECT1)

REPLACE &pole WITH &pole+1 &&

*--------------------------------------------------------------------

IF dep=2.OR.dep=11

IF KARTA->OLD<7

REPLACE C3 WITH C3+1 && 1

REPLACE C4 WITH C4+KARTA->ALL_DAY && /

IF KARTA->CITY_VILL=2

REPLACE C5 WITH C5+1 &&

REPLACE C6 WITH C6+KARTA->ALL_DAY && /

ENDIF

ELSE

IF KARTA->CITY_VILL=2

REPLACE C9 WITH C9+1 && 1

ENDIF

ENDIF

IF KARTA->OLD=1

pole=FIELD(43)

ELSEIF KARTA->OLD=2

ad=piece(KARTA->HOUR_B,KARTA->MINS_B,KARTA->HOUR_END,KARTA->MINS_END)

ad=KARTA->DATE_END-KARTA->DATE_B+IF(ad=1,1,IF(ad>=0,0,-1))

pole=FIELD(42+IF(ad<=14,2,IF(ad>14.AND.ad<=21,3,4)))

ELSE

pole=FIELD(44+KARTA->OLD)

ENDIF

*--------------------------------------------------------------------

ELSE

IF KARTA->OLD<7

REPLACE C3 WITH C3+1 && 1

REPLACE C4 WITH C4+KARTA->ALL_DAY && /

IF KARTA->CITY_VILL=2

REPLACE C5 WITH C5+1 &&

REPLACE C6 WITH C6+KARTA->ALL_DAY && /

ENDIF

ELSEIF KARTA->OLD<11

REPLACE C7 WITH C7+1 && 14

REPLACE C8 WITH C8+KARTA->ALL_DAY && /

IF KARTA->CITY_VILL=2

REPLACE C9 WITH C9+1 &&

REPLACE C0 WITH C0+KARTA->ALL_DAY && /

ENDIF

ELSE

REPLACE D1 WITH D1+1 && 15

REPLACE D2 WITH D2+KARTA->ALL_DAY && /

IF KARTA->CITY_VILL=2

REPLACE D3 WITH D3+1 &&

REPLACE D4 WITH D4+KARTA->ALL_DAY && /Ġ

ENDIF

ENDIF

IF KARTA->OLD<=3

pole=FIELD(43)

ELSE

pole=FIELD(40+KARTA->OLD)

ENDIF

ENDIF

*--------------------------------------------------------------------

REPLACE &pole WITH &pole+1 &&

SELECT KARTA

ENDIF

SKIP 1

show_din(count) && ɠ

ENDDO

SET RELATION TO

SELECT DIA66

SET RELATION TO

grad() && ۠

SELECT BUFF8

OT2="OTD"+ALLTRIM(STR(dep))+".TXT"

@ 13,25 SAY " : "+OT2+" "

IF dep#2.AND.dep#11

REPORT FORM &OT1D2 TO FILE &OT2D2 PLAIN

ENDIF

REPORT FORM &OT1D1 TO FILE &OT2D1 PLAIN

REPORT FORM &OT1 TO FILE &OT2 PLAIN

REPORT FORM OTCH.FRM TO FILE OTCH.TXT PLAIN

USE

corr_ttl("OTCH.TXT",dep_name,DTOC(_DATE_FROM),DTOC(_DATE_TILL))

link2("OTCH.TXT",OT2)

RENAME OTCH.TXT TO &OT2

link2(OT2,OT2D1)

IF dep#2.AND.dep#11

link2(OT2,OT2D2)

ENDIF

ELSEIF _p=2

********************* ۠ **********************

OT1="OTCH"+ALLTRIM(STR(_OTCH))+".FRM"

OT2="OTCH"+ALLTRIM(STR(_OTCH))+".TXT"

IF f_FRM()

DO CASE

*-------------------------------------------------

CASE _OTCH=1

*-------------------------------------------------

SELECT DIA66

SET RELATION TO SHIFR INTO BUFF8

SELECT karta

SET RELATION TO NUM_IB INTO DIA66

GO TOP

DO show_st

DO WHILE !EOF()

IF IF(dep=0,.T.,IF(dep=KARTA->DEPARTMENT,.T.,.F.)).AND.;

KARTA->DATE_END>=_DATE_FROM.AND.KARTA->DATE_END<=_DATE_TILL.AND.;

DIA66->KOD1="1"

state() && - ( )

_SHIFR=DIA66->SHIFR

SELECT BUFF8

IF EOF()

APPEND BLANK

REPLACE SHIFR WITH _SHIFR

ENDIF

IF KARTA->OLD>10 && 14

IF KARTA->END1=1.OR.KARTA->END1=2

REPLACE COUNT1 WITH COUNT1+1 &&

REPLACE A1 WITH A1+KARTA->ALL_DAY &&

ELSE && KARTA->END1=3

REPLACE A2 WITH A2+1 &&

ENDIF

ELSE && KARTA->OLD<=10 && 14

IF KARTA->END1=1.OR.KARTA->END1=2

REPLACE COUNT2 WITH COUNT2+1 &&

REPLACE A3 WITH A3+KARTA->ALL_DAY &&

IF KARTA->OLD<7

REPLACE A4 WITH A4+1 && 1

ENDIF

ELSE && KARTA->END1=3

REPLACE A5 WITH A5+1 &&

IF KARTA->OLD<7

REPLACE A6 WITH A6+1 && 1

ENDIF

ENDIF

ENDIF

SELECT KARTA

ENDIF

SKIP 1

show_din(count) &&

IF INKEY(0.01)=27

IF yesno(14," ? ")=1

SELECT (sel)

RETURN 0

ENDIF

ENDIF

ENDDO

SET RELATION TO

SELECT DIA66

SET RELATION TO

SELECT BUFF8

PRIVATE _COUNT1,_COUNT2,_A1,_A2,_A3,_A4,_A5,_A6

SUM COUNT1,COUNT2,A1,A2,A3,A4,A5,A6 TO ;

_COUNT1,_COUNT2,_A1,_A2,_A3,_A4,_A5,_A6

APPEND BLANK

REPLACE NUMBER WITH "|",NAMECL WITH " :",;

SHIFRL WITH "0000",SHIFRR WITH "999 ",;

COUNT1 WITH _COUNT1,COUNT2 WITH _COUNT2,A1 WITH _A1,;

A2 WITH _A2,A3 WITH _A3,A4 WITH _A4,A5 WITH _A5,A6 WITH _A6

grad() &&

grad1() &&

*-------------------------------------------------

CASE _OTCH=2.OR._OTCH=5

*-------------------------------------------------

SELECT DIA66

SET RELATION TO SHIFR INTO BUFF8

SELECT KARTA

SET RELATION TO NUM_IB INTO DIA66

GO TOP

DO show_st

DO WHILE !EOF()

IF IF(dep=0,.T.,IF(dep=KARTA->DEPARTMENT,.T.,.F.)).AND.;

KARTA->DATE_END>=_DATE_FROM.AND.KARTA->DATE_END<=_DATE_TILL.AND.;

(KARTA->DATE_IN-KARTA->DATE_B+piece(KARTA->HOUR_B,KARTA->MINS_B,;

KARTA->HOUR_IN,KARTA->MINS_IN))<7.AND.DIA66->KOD1="1"

state() && - ( )

_SHIFR=DIA66->SHIFR

SELECT BUFF8

IF EOF()

APPEND BLANK

REPLACE SHIFR WITH _SHIFR

ENDIF

IF LEFT(KARTA->MASSA,2)="00".OR.LEFT(KARTA->MASSA,2)=" ".AND.;

VAL(RIGHT(KARTA->MASSA,3))>500

REPLACE A1 WITH A1+1

IF KARTA->END1=3

REPLACE A2 WITH A2+1

IF (KARTA->DATE_END-KARTA->DATE_B+;

piece(KARTA->HOUR_B,KARTA->MINS_B,;

KARTA->HOUR_END,KARTA->MINS_END))<7

REPLACE A3 WITH A3+1

ENDIF

ENDIF

ELSE

REPLACE A4 WITH A4+1

IF KARTA->END1=3

REPLACE A5 WITH A5+1

IF (KARTA->DATE_END-KARTA->DATE_B+;

piece(KARTA->HOUR_B,KARTA->MINS_B,;

KARTA->HOUR_END,KARTA->MINS_END))<7

REPLACE A6 WITH A6+1

ENDIF

ENDIF

ENDIF

SELECT KARTA

ENDIF

SKIP 1

show_din(count) &&

ENDDO

SET RELATION TO

SELECT DIA66

SET RELATION TO

SELECT BUFF8

PRIVATE _COUNT1,_COUNT2,_A1,_A2,_A3,_A4,_A5,_A6

SUM COUNT1,COUNT2,A1,A2,A3,A4,A5,A6 TO ;

_COUNT1,_COUNT2,_A1,_A2,_A3,_A4,_A5,_A6

APPEND BLANK

REPLACE NUMBER WITH "|",NAMECL WITH " :",;

COUNT1 WITH _COUNT1,COUNT2 WITH _COUNT2,A1 WITH _A1,;

A2 WITH _A2,A3 WITH _A3,A4 WITH _A4,A5 WITH _A5,A6 WITH _A6

grad1() &&

SUM COUNT1,COUNT2,A1,A2,A3,A4,A5,A6 TO ;

_COUNT1,_COUNT2,_A1,_A2,_A3,_A4,_A5,_A6 FOR NUMBER="-"

GO TOP

_COUNT1=COUNT1-_COUNT1

_COUNT2=COUNT2-_COUNT2

_A1=A1-_A1

_A2=A2-_A2

_A3=A3-_A3

_A4=A4-_A4

_A5=A5-_A5

_A6=A6-_A6

APPEND BLANK

REPLACE NUMBER WITH "-",SHIFR WITH "774 ";

NAMECL WITH " ",;

COUNT1 WITH _COUNT1,COUNT2 WITH _COUNT2,A1 WITH _A1,;

A2 WITH _A2,A3 WITH _A3,A4 WITH _A4,A5 WITH _A5,A6 WITH _A6

*-------------------------------------------------

CASE _OTCH=3

*-------------------------------------------------

SELECT OP66

SET RELATION TO NUM_IB INTO KARTA, TO SHIFR INTO BUFF8

GO TOP

DO show_st &&

DO WHILE !EOF()

IF IF(dep=0,.T.,IF(dep=KARTA->DEPARTMENT,.T.,.F.)).AND.;

KARTA->DATE_END>=_DATE_FROM.AND.KARTA->DATE_END<=_DATE_TILL

_SHIFR_ILL=OP66->SHIFR

SELECT BUFF8

IF EOF()

APPEND BLANK

REPLACE SHIFR WITH _SHIFR_ILL

catalog(@_SHIFR_ILL,@txt)

REPLACE NAME WITH ALLTRIM(txt)

ENDIF

REPLACE COUNT1 WITH COUNT1+1

IF KARTA->OLD<=10

REPLACE COUNT2 WITH COUNT2+1

ENDIF

IF KARTA->END1=3

REPLACE A1 WITH A1+1

ENDIF

SELECT OP66

ENDIF

SKIP 1

show_din(count) &&

ENDDO

SET RELATION TO

summ() &&

*-------------------------------------------------

CASE _OTCH=4

*-------------------------------------------------

SELECT BUFF8

APPEND BLANK

REPLACE NUMBER WITH "1"

REPLACE NAME WITH ""

APPEND BLANK

REPLACE NUMBER WITH "2"

REPLACE NAME WITH ""

APPEND BLANK

REPLACE NUMBER WITH "3"

REPLACE NAME WITH ""

SELECT KARTA

GO TOP

PRIVATE OT1D1,OT2D1

DO show_st &&

DO WHILE !EOF()

IF IF(dep=0,.T.,IF(dep=KARTA->DEPARTMENT,.T.,.F.)).AND.;

KARTA->DATE_END>=_DATE_FROM.AND.KARTA->DATE_END<=_DATE_TILL

SELECT BUFF8

GOTO KARTA->END1

pole=FIELD(8+KARTA->OLD)

REPLACE &pole WITH &pole+1 &&

pole=FIELD(19+KARTA->RAION)

REPLACE &pole WITH &pole+1 &&

REPLACE COUNT1 WITH COUNT1+KARTA->ALL_DAY &&

REPLACE COUNT2 WITH COUNT2+1 &&

SELECT KARTA

ENDIF

SKIP 1

show_din(count) && ɠ

ENDDO

OT1D1="OTCH"+ALLTRIM(STR(_OTCH))+"1"+".FRM" && OTCH*1.FRM

OT2D1="OTCH"+ALLTRIM(STR(_OTCH))+"1"+".TXT" && OTCH*1.TXT

SELECT BUFF8

REPORT FORM &OT1D1 TO FILE &OT2D1 PLAIN

*-------------------------------------------------

CASE _OTCH=6.OR._OTCH=8

*-------------------------------------------------

SELECT DIA66

SET RELATION to NUM_IB into KARTA, TO SHIFR INTO BUFF8

GO TOP

DO show_st &&

DO WHILE !EOF()

IF IF(dep=0,.T.,IF(dep=KARTA->DEPARTMENT,.T.,.F.)).AND.;

KARTA->DATE_END>=_DATE_FROM.AND.KARTA->DATE_END<=_DATE_TILL.AND.;

DIA66->KOD1="1"

count=state() && - ( )

_SHIFR=DIA66->SHIFR

SELECT BUFF8

IF _OTCH=6.AND.KARTA->END1=2

IF EOF()

APPEND BLANK

REPLACE SHIFR WITH _SHIFR

ENDIF

REPLACE COUNT1 WITH COUNT1+1

ELSEIF _OTCH=8.AND.KARTA->END1=3

pole=FIELD(8+KARTA->POL)

IF EOF()

APPEND BLANK

REPLACE SHIFR WITH _SHIFR

mkb(1,1,@_SHIFR,@txt)

REPLACE NAME WITH txt

ENDIF

REPLACE &pole WITH &pole+1

ENDIF

SELECT DIA66

ENDIF

SKIP 1

show_din(count) &&

ENDDO

SET RELATION TO

grad() &&

*------------------------------------------------

CASE _OTCH=7

*------------------------------------------------

SELECT KARTA

SET RELATION TO SHIFR INTO BUFF8

GO TOP

DO show_st &&

DO WHILE !EOF()

IF IF(dep=0,.T.,IF(dep=KARTA->DEPARTMENT,.T.,.F.)).AND.;

KARTA->DATE_END>=_DATE_FROM.AND.KARTA->DATE_END<=_DATE_TILL

_SHIFR=KARTA->SHIFR

SELECT BUFF8

IF EOF()

APPEND BLANK

REPLACE SHIFR WITH _SHIFR

mkb(1,1,@_SHIFR,@txt)

REPLACE NAME WITH ALLTRIM(txt)

ENDIF

REPLACE A3 WITH A3+1 &&

IF KARTA->OLD<=7 && 1

REPLACE A2 WITH A2+1

IF KARTA->OLD<=2 && 28

REPLACE A1 WITH A1+1

ENDIF

ENDIF

pole=FIELD(11+KARTA->WHY)

REPLACE &pole WITH &pole+1 &&

pole=FIELD(15+KARTA->DIRECT1)

REPLACE &pole WITH &pole+1 &&

SELECT KARTA

ENDIF

SKIP 1

show_din(count) &&

ENDDO

SET RELATION TO

numb_STR() &&

*------------------------------------------------

CASE (_OTCH=9.AND.dep#14).OR._OTCH=10.OR._OTCH=12

*------------------------------------------------

SELECT DIA66

SET RELATION to NUM_IB into KARTA, TO SHIFR INTO BUFF8

GO TOP

PRIVATE OT1D1,OT2D1,OT1D2,OT2D2

DO show_st &&

DO WHILE !EOF()

IF IF(dep=0,.T.,IF(dep=KARTA->DEPARTMENT,.T.,.F.)).AND.;

KARTA->DATE_END>=_DATE_FROM.AND.KARTA->DATE_END<=_DATE_TILL.AND.;

KARTA->END1=3.AND.DIA66->KOD1="1"

IF (_OTCH=9.OR.;

_OTCH=10.AND.;

(KARTA->DATE_END-KARTA->DATE_B+;

piece(KARTA->HOUR_B,KARTA->MINS_B,KARTA->HOUR_END,KARTA->MINS_END)<7).OR.;

_OTCH=12.AND.;

(KARTA->DATE_END-KARTA->DATE_IN+;

piece(KARTA->HOUR_IN,KARTA->MINS_IN,KARTA->HOUR_END,KARTA->MINS_END)<1))

count=state() && - ( )

_SHIFR=DIA66->SHIFR

SELECT BUFF8

IF EOF()

APPEND BLANK

REPLACE SHIFR WITH _SHIFR

mkb(1,1,@_SHIFR,@txt)

REPLACE NAME WITH txt

ENDIF

pole=FIELD(6+KARTA->POL)

REPLACE &pole WITH &pole+1 &&

IF _OTCH=9.OR._OTCH=12

REPLACE B2 WITH B2+KARTA->ALL_DAY && - ,

IF _OTCH=9.AND.KARTA->OLD_D<7

REPLACE B3 WITH B3+KARTA->ALL_DAY && ---"--- 1

ENDIF

pole=FIELD(8+KARTA->OLD_D)

ELSEIF _OTCH=10

PRIVATE ad

ad=piece(KARTA->HOUR_B,KARTA->MINS_B,KARTA->HOUR_END,KARTA->MINS_END)

pole=FIELD(9+(KARTA->DATE_END-KARTA->DATE_B+;

IF(ad=1,1,IF(ad>=0,0,-1))))

ENDIF

REPLACE &pole WITH &pole+1 && ՠ

pole=FIELD(21+KARTA->DIRECT1)

REPLACE &pole WITH &pole+1 &&

pole=FIELD(35+KARTA->RAION)

REPLACE &pole WITH &pole+1 &&

IF _OTCH=9

IF KARTA->ALL_DAY=1

pole=FIELD(44+IF(KARTA->DATE_END-KARTA->DATE_IN+;

piece(KARTA->HOUR_IN,KARTA->MINS_IN,;

KARTA->HOUR_END,KARTA->MINS_END)<1,0,1))

ELSE

pole=FIELD(44+IF(KARTA->ALL_DAY<4,KARTA->ALL_DAY,4))

ENDIF

ELSEIF _OTCH=10

IF KARTA->ALL_DAY=1

pole=FIELD(44+IF(KARTA->DATE_END-KARTA->DATE_IN+;

piece(KARTA->HOUR_IN,KARTA->MINS_IN,;

KARTA->HOUR_END,KARTA->MINS_END)<1,0,1))

ELSE

pole=FIELD(44+KARTA->ALL_DAY)

ENDIF

ELSE &&_OTCH=12

PRIVATE t,d

STORE 0 TO t,d

t=KARTA->DATE_END-KARTA->DATE_IN+;

piece(KARTA->HOUR_IN,KARTA->MINS_IN,KARTA->HOUR_END,KARTA->MINS_END)

d=IF(t<(0.5/24),0,IF(t<(1/24),1,IF(t<3/24,2,IF(t<10/24,3,4))))

pole=FIELD(44+d)

RELEASE t,d

ENDIF

REPLACE &pole WITH &pole+1 && ɠ

SELECT DIA66

ENDIF

ENDIF

SKIP 1

show_din(count) && ɠ

ENDDO

SET RELATION TO

grad() && ۠

OT1D1="OTCH"+ALLTRIM(STR(_OTCH))+"1"+".FRM" && OTCH*1.FRM

OT2D1="OTCH"+ALLTRIM(STR(_OTCH))+"1"+".TXT" && OTCH*1.TXT

SELECT BUFF8

REPORT FORM &OT1D1 TO FILE &OT2D1 PLAIN

IF _OTCH=9.OR._OTCH=10

OT1D2="OTCH"+ALLTRIM(STR(_OTCH))+"2"+".FRM" && OTCH*2.FRM

OT2D2="OTCH"+ALLTRIM(STR(_OTCH))+"2"+".TXT" && OTCH*2.TXT

REPORT FORM &OT1D2 TO FILE &OT2D2 PLAIN

link2(OT2D1,OT2D2) &&

ENDIF

*------------------------------------------------------

CASE _OTCH=9.AND.dep=14 &&

*------------------------------------------------------

SELECT DIA66

SET RELATION TO SHIFR INTO BUFF8

SELECT karta

SET RELATION TO NUM_IB INTO DIA66

GO TOP

OT1="NEONAT.FRM"

OT2="NEONAT.TXT"

DO show_st &&

DO WHILE !EOF()

IF dep=KARTA->DEPARTMENT.AND.;

KARTA->DATE_END>=_DATE_FROM.AND.KARTA->DATE_END<=_DATE_TILL.AND.;

KARTA->END1=3.AND.DIA66->KOD1="1"

count=state() && - ( )

_SHIFR=DIA66->SHIFR

SELECT BUFF8

IF EOF()

APPEND BLANK

REPLACE SHIFR WITH _SHIFR

mkb(1,1,@_SHIFR,@txt)

REPLACE NAME WITH txt

ENDIF

pole=FIELD(6+KARTA->POL)

REPLACE &pole WITH &pole+1 &&

pole=FIELD(16+KARTA->DIRECT1)

REPLACE &pole WITH &pole+1 && 蠠

REPLACE C3 WITH C3+1 &&

REPLACE C4 WITH C4+KARTA->ALL_DAY && /Ġ

IF KARTA->OLD=1

pole=FIELD(43)

ELSEIF KARTA->OLD=2

ad=piece(KARTA->HOUR_B,KARTA->MINS_B,KARTA->HOUR_END,KARTA->MINS_END)

ad=KARTA->DATE_END-KARTA->DATE_B+IF(ad=1,1,IF(ad>=0,0,-1))

pole=FIELD(42+IF(ad<=14,2,IF(ad>14.AND.ad<=21,3,4)))

ELSE

pole=FIELD(44+KARTA->OLD)

ENDIF

REPLACE &pole WITH &pole+1 &&

SELECT KARTA

ENDIF

SKIP 1

show_din(count) && ɠ

ENDDO

SET RELATION TO

SELECT DIA66

SET RELATION TO

grad() && ۠

*------------------------------------------------

CASE _OTCH=11

*------------------------------------------------

codif1("FULL",@f)

IF f=0

LOOP

ENDIF

SELECT DIA66

SET CURSOR OFF

SET RELATION to SHIFR into BUFF8

SELECT OP66

SET RELATION to NUM_IB into KARTA, TO NUM_IB INTO DIA66

GO TOP

DO show_st &&

DO WHILE !EOF()

IF IF(dep=0,.T.,IF(dep=KARTA->DEPARTMENT,.T.,.F.)).AND.;

KARTA->DATE_END>=_DATE_FROM.AND.KARTA->DATE_END<=_DATE_TILL.AND.;

KARTA->END1=3.AND.DIA66->KOD1="1"

state() && - ( )

_SHIFR=DIA66->SHIFR

_NUM_IB=OP66->NUM_IB

SELECT BUFF8

IF EOF()

APPEND BLANK

REPLACE SHIFR WITH _SHIFR

mkb(1,1,@_SHIFR,@txt)

REPLACE NAME WITH txt

ENDIF

REPLACE COUNT1 WITH COUNT1+1 &&

SELECT 0

USE CATO.DBF INDEX CATO ALIAS CATO

DO WHILE .T.

SEEK OP66->SHIFR

SELECT BUFF8

pole=FIELD(8+CATO->NUMBER)

REPLACE &pole WITH &pole+1

REPLACE COUNT2 WITH COUNT2+1 &&

SKIP 1 ALIAS OP66

SELECT CATO

IF OP66->NUM_IB#_NUM_IB

SKIP -1 ALIAS OP66

EXIT

ENDIF

show_din(count) &&

ENDDO

USE

ENDIF

SELECT OP66

SKIP 1

show_din(count) &&

ENDDO

SET RELATION TO

SELECT DIA66

SET RELATION TO

grad() &&

IF f=1

OT1="OTCH"+ALLTRIM(STR(_OTCH))+"L"+".FRM"

ELSE

OT1D1="OTCH"+ALLTRIM(STR(_OTCH))+"1"+".FRM" && OTCH*1.FRM

OT2D1="OTCH"+ALLTRIM(STR(_OTCH))+"1"+".TXT" && OTCH*1.TXT

SELECT BUFF8

REPORT FORM &OT1D1 TO FILE &OT2D1 PLAIN

OT1D2="OTCH"+ALLTRIM(STR(_OTCH))+"2"+".FRM" && OTCH*2.FRM

OT2D2="OTCH"+ALLTRIM(STR(_OTCH))+"2"+".TXT" && OTCH*2.TXT

REPORT FORM &OT1D2 TO FILE &OT2D2 PLAIN

link2(OT2D1,OT2D2) &&

ENDIF

*------------------------------------------------

CASE _OTCH=13

*------------------------------------------------

SELECT DIA66

SET RELATION to NUM_IB into KARTA, TO SHIFR INTO BUFF8

GO TOP

DO show_st &&

DO WHILE !EOF()

IF IF(dep=0,.T.,IF(dep=KARTA->DEPARTMENT,.T.,.F.)).AND.;

KARTA->DATE_END>=_DATE_FROM.AND.KARTA->DATE_END<=_DATE_TILL.AND.;

DIA66->SHIFR>"0000".AND.DIA66->SHIFR<="1399".AND.DIA66->KOD1="1"

count=state() && - ( )

_SHIFR=DIA66->SHIFR

SELECT BUFF8

IF EOF()

APPEND BLANK

REPLACE SHIFR WITH _SHIFR

ENDIF

IF KARTA->END1=1.OR.KARTA->END1=2

REPLACE COUNT1 WITH COUNT1+1 &&

REPLACE A1 WITH A1+KARTA->ALL_DAY &&

IF KARTA->OLD<7

REPLACE COUNT2 WITH COUNT2+1 && 1

ENDIF

ELSEIF KARTA->END1=3

REPLACE A2 WITH A2+1 &&

REPLACE A3 WITH A3+KARTA->ALL_DAY &&

IF KARTA->OLD<7

REPLACE A4 WITH A4+1 && 1

ENDIF

ENDIF

SELECT DIA66

ENDIF

SKIP 1

show_din(count) &&

ENDDO

SET RELATION TO

numb_STR() && ʠ

*------------------------------------------------

CASE _OTCH=14

*------------------------------------------------

SELECT DIA66

SET RELATION to NUM_IB into KARTA, TO SHIFR INTO BUFF8

GO TOP

DO show_st &&

DO WHILE !EOF()

IF IF(dep=0,.T.,IF(dep=KARTA->DEPARTMENT,.T.,.F.)).AND.;

KARTA->DATE_END>=_DATE_FROM.AND.KARTA->DATE_END<=_DATE_TILL.AND.;

DIA66->SHIFR>"0000".AND.DIA66->SHIFR<="1399".AND.DIA66->KOD1="1"

count=state() && - ( )

_SHIFR=DIA66->SHIFR

SELECT BUFF8

IF EOF()

APPEND BLANK

mkb(1,1,@_SHIFR,@txt)

REPLACE NAME WITH txt

REPLACE SHIFR WITH _SHIFR

ENDIF

pole=FIELD(8+KARTA->DEPARTMENT)

REPLACE &pole WITH &pole+1

SELECT DIA66

ENDIF

SKIP 1

show_din(count) &&

ENDDO

SET RELATION TO

numb_STR() && ʠ

*-----------------------------------------------

CASE _OTCH=15

*-----------------------------------------------

SELECT KARTA

GO TOP

PRIVATE _NAME,_NUMBER

PRIVATE OT1D1,OT2D1

DO show_st &&

DO WHILE !EOF()

IF IF(dep=0,.T.,IF(dep=KARTA->DEPARTMENT,.T.,.F.)).AND.;

KARTA->DATE_END>=_DATE_FROM.AND.KARTA->DATE_END<=_DATE_TILL

IF KARTA->RAION>1

SELECT BUFF8

IF KARTA->STATE=1

_NUMBER=""

IF KARTA->PLACE=0

_SHIFR="99 "

_NAME=" "

ELSE

_SHIFR=RIGHT(ALLTRIM(extra1(KARTA->PLACE,"PLCE")),4)

_NAME=extra1(KARTA->PLACE,"PLCE")

ENDIF

IF KARTA->RAION=2

_NUMBER="*"

_SHIFR="1000"

_NAME=" "

ENDIF

ELSE

_NUMBER="*"

_SHIFR=SPACE(2)+STR(KARTA->STATE,2)

_NAME=extra1(KARTA->STATE,"STTE")

ENDIF

SEEK _SHIFR

IF !FOUND()

APPEND BLANK

REPLACE NUMBER WITH _NUMBER,SHIFR WITH _SHIFR,NAME WITH _NAME

ENDIF

pole=FIELD(8+KARTA->DIRECT1)

REPLACE &pole WITH &pole+1 &&

pole=FIELD(23+KARTA->DEPARTMENT)

REPLACE &pole WITH &pole+1 &&

pole=FIELD(38+KARTA->PASS)

REPLACE &pole WITH &pole+1 && /

REPLACE COUNT1 WITH COUNT1+KARTA->ALL_DAY &&

REPLACE COUNT2 WITH COUNT2+1 &&

SELECT KARTA

ENDIF

ENDIF

SKIP 1

show_din(count) && ɠ

ENDDO

SELECT BUFF8

SUM COUNT1,COUNT2,A1,A2,A3,A4,A5,A6,A7,A8,A9,A0,;

B1,B2,B3,B4,B5,B6,B7,B8,B9,B0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C0 TO;

_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

&&

APPEND BLANK

REPLACE SHIFR WITH " ",NAME WITH "",COUNT1 WITH _1,;

COUNT2 WITH _2,A1 WITH _3,A2 WITH _4,A3 WITH _5,A4 WITH _6,;

A5 WITH _7,A6 WITH _8,A7 WITH _9,A8 WITH _10,A9 WITH _11,A0 WITH _12,;

B1 WITH _13,B2 WITH _14,B3 WITH _15,B4 WITH _16,B5 WITH _17,;

B6 WITH _18,B7 WITH _19,B8 WITH _20,B9 WITH _21,B0 WITH _22,;

C1 WITH _23,C2 WITH _24,C3 WITH _25,C4 WITH _26,C5 WITH _27,;

C6 WITH _28,C7 WITH _29,C8 WITH _30,C9 WITH _31,C0 WITH _32

SUM COUNT1,COUNT2,A1,A2,A3,A4,A5,A6,A7,A8,A9,A0,;

B1,B2,B3,B4,B5,B6,B7,B8,B9,B0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C0 TO;

_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;

FOR SHIFR>" ".AND.SHIFR<"1000"

&&

APPEND BLANK

REPLACE SHIFR WITH " 100",NAME WITH " ",COUNT1 WITH _1,;

COUNT2 WITH _2,A1 WITH _3,A2 WITH _4,A3 WITH _5,A4 WITH _6,;

A5 WITH _7,A6 WITH _8,A7 WITH _9,A8 WITH _10,A9 WITH _11,A0 WITH _12,;

B1 WITH _13,B2 WITH _14,B3 WITH _15,B4 WITH _16,B5 WITH _17,;

B6 WITH _18,B7 WITH _19,B8 WITH _20,B9 WITH _21,B0 WITH _22,;

C1 WITH _23,C2 WITH _24,C3 WITH _25,C4 WITH _26,C5 WITH _27,;

C6 WITH _28,C7 WITH _29,C8 WITH _30,C9 WITH _31,C0 WITH _32

SUM COUNT1,COUNT2,A1,A2,A3,A4,A5,A6,A7,A8,A9,A0,;

B1,B2,B3,B4,B5,B6,B7,B8,B9,B0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C0 TO;

_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 FOR SHIFR>"1000"

&&

APPEND BLANK

REPLACE SHIFR WITH "9990",NAME WITH " ",COUNT1 WITH _1,;

COUNT2 WITH _2,A1 WITH _3,A2 WITH _4,A3 WITH _5,A4 WITH _6,;

A5 WITH _7,A6 WITH _8,A7 WITH _9,A8 WITH _10,A9 WITH _11,A0 WITH _12,;

B1 WITH _13,B2 WITH _14,B3 WITH _15,B4 WITH _16,B5 WITH _17,;

B6 WITH _18,B7 WITH _19,B8 WITH _20,B9 WITH _21,B0 WITH _22,;

C1 WITH _23,C2 WITH _24,C3 WITH _25,C4 WITH _26,C5 WITH _27,;

C6 WITH _28,C7 WITH _29,C8 WITH _30,C9 WITH _31,C0 WITH _32

OT1D1="OTCH"+ALLTRIM(STR(_OTCH))+"1"+".FRM" && OTCH*1.FRM

OT2D1="OTCH"+ALLTRIM(STR(_OTCH))+"1"+".TXT" && OTCH*1.TXT

REPORT FORM &OT1D1 TO FILE &OT2D1 PLAIN

*------------------------------------------------

CASE _OTCH=16.OR._OTCH=17.OR._OTCH=18.OR._OTCH=19

*------------------------------------------------

SELECT BUFF8

APPEND BLANK

SELECT KARTA

SET RELATION TO NUM_IB INTO DIA66

GO TOP

DO show_st

DO WHILE !EOF()

IF IF(dep=0,.T.,IF(dep=KARTA->DEPARTMENT,.T.,.F.)).AND.;

KARTA->DATE_END>=_DATE_FROM.AND.KARTA->DATE_END<=_DATE_TILL

SELECT BUFF8

IF _OTCH=16

IF KARTA->END1=2

REPLACE A1 WITH A1+1 &&

IF KARTA->OLD<3 &&

REPLACE A2 WITH A2+1

ENDIF

ENDIF

IF DIA66->SHIFR="0000" &&

REPLACE A3 WITH A3+1

ENDIF

ELSEIF _OTCH=17.AND.KARTA->END1=3

IF KARTA->OLD=1

REPLACE A1 WITH A1+1 && 0-6

ENDIF

IF (KARTA->DATE_END-KARTA->DATE_IN+;

piece(KARTA->HOUR_IN,KARTA->MINS_IN,KARTA->HOUR_END,KARTA->MINS_END)<1)

IF (KARTA->DATE_END-KARTA->DATE_B+;

piece(KARTA->HOUR_B,KARTA->MINS_B,KARTA->HOUR_END,KARTA->MINS_END)<=1)

&&

REPLACE A2 WITH A2+1

ENDIF

IF KARTA->OLD<7 &&

REPLACE A3 WITH A3+1

SELECT DIA66

state() && - ( )

DO WHILE DIA66->NUM_IB=KARTA->NUM_IB

IF DIA66->KOD1="1".AND.;

(DIA66->SHIFR>="4800".AND.DIA66->SHIFR<="4869")

SELECT BUFF8

REPLACE A4 WITH A4+1 &&

EXIT

ENDIF

SKIP 1

ENDDO

ENDIF

ENDIF

ELSEIF _OTCH=18.AND.(KARTA->SHIFR="410 ".OR.KARTA->SHIFR="412 ")

IF KARTA->TIME<3

REPLACE A1 WITH A1+1 &&

ENDIF

IF KARTA->END1=3.AND.(KARTA->DATE_END-KARTA->DATE_IN+;

piece(KARTA->HOUR_IN,KARTA->MINS_IN,KARTA->HOUR_END,KARTA->MINS_END)<1)

REPLACE A2 WITH A2+1 && 24

ENDIF

ELSEIF _OTCH=19.AND.(KARTA->SHIFR>="6300".AND.KARTA->SHIFR<="6769")

IF KARTA->END1=3

REPLACE A1 WITH A1+1 && ,

SELECT DIA66

state() && - ( )

DO WHILE DIA66->NUM_IB=KARTA->NUM_IB

IF DIA66->KOD1="1".AND.;

(DIA66->SHIFR>="6300".AND.DIA66->SHIFR<="6769")

SELECT BUFF8

REPLACE A2 WITH A2+1 &&

EXIT

ENDIF

SKIP 1

ENDDO

ENDIF

ENDIF

SELECT KARTA

ENDIF

SKIP 1

show_din(count) &&

ENDDO

SET RELATION TO

numb_STR() &&

*------------------------------------------------

ENDCASE

*------------------------------------------------

SELECT BUFF8

IF _OTCH=6

DELETE FOR EMPTY(COUNT2)=.T.

PACK

ENDIF

@ 13,25 SAY " : "+OT2+" "

REPORT FORM &OT1 FOR IF(_OTCH=1.OR._OTCH=2.OR._OTCH=5,;

!EMPTY(NUMBER),.T.) TO FILE &OT2 PLAIN

IF _OTCH=9.OR._OTCH=10.OR._OTCH=11.OR._OTCH=12

REPORT FORM OTCH.FRM TO FILE OTCH.TXT PLAIN

USE

corr_ttl("OTCH.TXT",dep_name,DTOC(_DATE_FROM),DTOC(_DATE_TILL))

link2("OTCH.TXT",OT2)

RENAME OTCH.TXT TO &OT2

ELSE

USE

corr_ttl(OT2,dep_name,DTOC(_DATE_FROM),DTOC(_DATE_TILL))

ENDIF

IF _OTCH=4.OR._OTCH=9.AND.dep#14.OR.;

_OTCH=10.OR._OTCH=11.AND.f=2.OR._OTCH=12.OR._OTCH=15

link2(OT2,OT2D1)

ENDIF

ELSE

SELECT BUFF8

USE

LOOP

ENDIF

ENDIF

SET CURSOR ON

fileview(OT2,3,2,21,77,"N/BG",350)

do_PRN()

RESTORE SCREEN FROM scr1

SET CURSOR OFF

ELSE

SELECT BUFF8

USE

ENDIF

ENDDO

RELEASE coun,c1,v1,v2,txt,seek,numb1,_COUNTALL,rec

SELECT (sel)

RETURN 0

*********************************************************************

* 堠 *

*********************************************************************

FUNCTION numb_STR

SELECT BUFF8

GO TOP

PRIVATE numb1

numb1=0

DO WHILE !EOF()

numb1=numb1+1

REPLACE NUMBER WITH STR(numb1,5)

SKIP 1

ENDDO

RETURN 0

*********************************************************************

* *

*********************************************************************

FUNCTION grad

lsl=SELECT()

SELECT 0

USE CLASS.DBF INDEX CLASS ALIAS CLASS

PRIVATE coun1,K,seek,_COUNTALL,rec

coun1=RECCOUNT()

seek=" "

_COUNTALL=0

rec=0

GO TOP

SELECT BUFF8

SET SOFTSEEK ON

FOR K=1 TO coun1

seek=CLASS->SHIFR_LEFT

SEEK seek

IF !EOF()

IF BUFF8->SHIFR <= CLASS->SHIFR_RIGH

numb1=numb1+1

rec=RECNO()

IF _OTCH=1

_SHIFR=SHIFR

_COUNT1=COUNT1

_COUNT2=COUNT2

_A1=A1

_A2=A2

_A3=A3

_A4=A4

_A5=A5

_A6=A6

APPEND BLANK

REPLACE SHIFR WITH _SHIFR,COUNT1 WITH _COUNT1,COUNT2 WITH _COUNT2,;

A1 WITH _A1,A2 WITH _A2,A3 WITH _A3,A4 WITH _A4,;

A5 WITH _A5,A6 WITH _A6

SUM COUNT1,COUNT2,A1,A2,A3,A4,A5,A6 TO ;

_COUNT1,_COUNT2,_A1,_A2,_A3,_A4,_A5,_A6 ;

WHILE BUFF8->SHIFR <= CLASS->SHIFR_RIGH

GOTO rec

REPLACE COUNT1 WITH _COUNT1,COUNT2 WITH _COUNT2,A1 WITH _A1,;

A2 WITH _A2,A3 WITH _A3,A4 WITH _A4,A5 WITH _A5,A6 WITH _A6

ENDIF

REPLACE BUFF8->NUMBER WITH STR(numb1,2)

REPLACE BUFF8->NAMECL WITH CLASS->NAME_CLASS

REPLACE BUFF8->SHIFRL WITH CLASS->SHIFR_LEFT

REPLACE BUFF8->SHIFRR WITH CLASS->SHIFR_RIGH

IF _OTCH=6

SUM COUNT1 TO _COUNTALL WHILE BUFF8->SHIFR <= CLASS->SHIFR_RIGH

GO rec

REPLACE BUFF8->COUNT2 WITH _COUNTALL

ENDIF

ENDIF

SKIP 1 ALIAS CLASS

ELSE

EXIT

ENDIF

NEXT

SET SOFTSEEK OFF

SELECT CLASS

USE

SELECT (lsl)

RETURN 0

*********************************************************************

* ( N1,(N2 N5) ) *

*********************************************************************

FUNCTION grad1

lsl=SELECT()

SELECT 0

IF _OTCH=1

USE GRUP1.DBF INDEX GRUP1 ALIAS GRUP

ELSE && _OTCH=2 _OTCH=5

USE GRUP2.DBF INDEX GRUP2 ALIAS GRUP

ENDIF

PRIVATE coun1,K,seek

coun1=RECCOUNT()

seek=" "

GO TOP

SELECT BUFF8

SET SOFTSEEK ON

FOR K=1 TO coun1

seek=GRUP->SHIFR_LEFT

SEEK seek

IF !EOF()

IF BUFF8->SHIFR <= GRUP->SHIFR_RIGH

IF !EMPTY(BUFF8->NUMBER)

SKIP 1 ALIAS BUFF8

ENDIF

rec=RECNO()

SUM COUNT1,COUNT2,A1,A2,A3,A4,A5,A6 TO ;

_COUNT1,_COUNT2,_A1,_A2,_A3,_A4,_A5,_A6 ;

WHILE BUFF8->SHIFR <= GRUP->SHIFR_RIGH

GOTO rec

REPLACE COUNT1 WITH _COUNT1,COUNT2 WITH _COUNT2,A1 WITH _A1,;

A2 WITH _A2,A3 WITH _A3,A4 WITH _A4,A5 WITH _A5,A6 WITH _A6

REPLACE BUFF8->NUMBER WITH "-"

REPLACE BUFF8->NAMECL WITH GRUP->NAME_GRUP

REPLACE BUFF8->SHIFRL WITH GRUP->SHIFR_LEFT

REPLACE BUFF8->SHIFRR WITH GRUP->SHIFR_RIGH

ENDIF

SKIP 1 ALIAS GRUP

ELSE

EXIT

ENDIF

NEXT

SET SOFTSEEK OFF

SELECT GRUP

USE

SELECT (lsl)

RETURN 0

*********************************************************************

* ⠠ *

*********************************************************************

FUNCTION link2

PARAMETERS F1,F2

RUN ("COPY &F1+&F2 &F1>NUL")

DELETE FILE &F2

RETURN 0

*********************************************************************

* Ġ ( ) *

*********************************************************************

PROCEDURE SHOW_ST

@ 4,7 CLEAR TO 15,72

saycent(5,5,75," *** "+_OTCH_N+" *** ")

saycent(6,5,75," "+IF(dep=0," "," "+dep_name))

saycent(7,5,75," "+DTOC(_DATE_FROM)+" "+DTOC(_DATE_TILL))

STORE 0 TO c1,v1,v2

coun=RECCOUNT()

v1=replicate(chr(178),60)

PRIVATE clr11

clr11=SETCOLOR()

SET COLOR TO (color1)

@ 8,8 CLEAR TO 15,71

@ 8,8 TO 15,71 DOUBLE

saycent(15,5,75," ESC - ")

@ 12,9 TO 14,70

@ 13,10 say v1

@ 9,10 TO 11,37

@ 10,11 SAY ":"

@ 10,24 SAY 0

@ 9,41 TO 11,70

@ 10,42 SAY " :"

@ 10,61 SAY coun

SET COLOR TO (clr11)

RETURN

*********************************************************************

* Ġ ( ) *

*********************************************************************

PROCEDURE SHOW_DIN

PARAMETERS counts

c1=c1+counts

v2=replicate(chr(219),int(60*(c1/coun)))

@ 13,10 SAY v2

@ 10,24 SAY c1

count=1

RETURN

*********************************************************************

* N3 *

*********************************************************************

FUNCTION summ

PRIVATE k,s,s1,n,A,B,C

SELECT BUFF8

SET SOFTSEEK ON

GO TOP

FOR k=2 TO 16

s=IF(k<10,"0"+STR(k,1),STR(k,2))+"00"

SEEK s

IF !FOUND()

APPEND BLANK

REPLACE SHIFR WITH s

catalog(@s,@txt)

REPLACE NAME WITH ALLTRIM(txt)

ENDIF

n=RECNO()

SKIP 1

s1=IF(k+1<10,"0"+STR(k+1,1),STR(k+1,2))+"00"

SUM COUNT1,COUNT2,A1 TO A,B,C WHILE SHIFR

GO n

REPLACE COUNT1 WITH COUNT1+A,COUNT2 WITH COUNT2+B,A1 WITH A1+C

NEXT

SUM COUNT1,COUNT2,A1 TO A,B,C FOR RIGHT(SHIFR,2)="00"

APPEND BLANK

REPLACE SHIFR WITH "9999", NAME WITH "*** ***",;

COUNT1 WITH COUNT1+A,COUNT2 WITH COUNT2+B,A1 WITH A1+C

SET SOFTSEEK OFF

RETURN 0

*********************************************************************

* ( ) Ġ *

*********************************************************************

PROCEDURE navy

PRIVATE sel1,clr1,screen1

sel1=SELECT()

clr1=SETCOLOR()

menu1=1

D2=.F.

SELECT karta

SET SOFTSEEK ON

SET COLOR TO &color5

DO WHILE menu1#0

@ 7,8 CLEAR TO 14,72

SAVE SCREEN TO screen1

@ 8,15 PROMPT " / "

@ 9,15 PROMPT " "

@ 10,15 PROMPT " "

@ 11,15 PROMPT " "

@ 12,15 PROMPT " "

@ 13,15 PROMPT " "

MENU TO menu1

IF menu1=1

SET CURSOR ON

@ 8,45 GET _NUM_IB PICTURE "@R 99/99999"

READ

SET CURSOR OFF

SEEK _NUM_IB

D2=EOF()

menu1=5

ELSEIF menu1=2

SET CURSOR ON

@ 9,45 GET _FAM PICTURE "@K" VALID RUSSIAN(_FAM)

READ

SET CURSOR OFF

SET FILTER TO FAM>=ALLTRIM(_FAM)

GO TOP

D2=EOF()

menu1=5

SET FILTER TO

ELSEIF menu1=3

SET CURSOR ON

@ 10,45 GET _DATE_IN PICTURE "@D"

READ

SET CURSOR OFF

SET FILTER TO DATE_IN=_DATE_IN

GO TOP

D2=EOF()

IF D2=.F.

menu1=1

@ 16,8 CLEAR TO 20,72

DO WHILE menu1#0.AND.!D2

_NUM_IB=NUM_IB

_FAM=FAM

_DATE_IN=DATE_IN

DO first

@ 11,14 TO 14,40 DOUBLE

@ 12,15 PROMPT " "

@ 13,15 PROMPT " "

MENU TO menu1

IF menu1=1

SKIP

D2=EOF()

ELSEIF menu1=2

SKIP -1

D2=BOF()

ENDIF

ENDDO

menu1=1

ENDIF

SET FILTER TO

ELSEIF menu1=5

SKIP

D2=EOF()

ELSEIF menu1=6

SKIP -1

D2=BOF()

ENDIF

@ 16,8 CLEAR TO 20,72

IF D2=.F.

_NUM_IB=NUM_IB

_FAM=FAM

_DATE_IN=DATE_IN

DO first

ELSEIF D2=.T.

@ 17,25 TO 19,55 DOUBLE

@ 18,31 SAY " !"

ENDIF

ENDDO

SET SOFTSEEK OFF

SELECT (sel1)

SET COLOR TO (clr1)

RETURN

*********************************************************************

* ۠ *

*********************************************************************

FUNCTION all_r

PRIVATE _qui

_qui=.F.

IF EMPTY(_FAM)=.T.

message('e'," ")

beg_line=1

cur_promp=2

ELSEIF EMPTY(_DATE_B)=.T.

message('e'," ")

beg_line=1

cur_promp=5

ELSEIF EMPTY(_OLD)=.T.

message('e'," ")

beg_line=1

cur_promp=6

ELSEIF EMPTY(_RAION)=.T.

message('e'," ")

beg_line=1

cur_promp=9

ELSEIF EMPTY(_CITY_VILL)=.T.

message('e'," <>")

beg_line=1

cur_promp=10

ELSEIF EMPTY(_STATE)=.T.

message('e'," < - > ")

beg_line=1

cur_promp=12

ELSEIF EMPTY(_DEPARTMENT)=.T.

message('e'," O ")

beg_line=1

cur_promp=13

ELSEIF EMPTY(_KOIKA)=.T.

message('e'," ")

beg_line=1

cur_promp=14

ELSEIF EMPTY(_DATE_IN)=.T.

message('e'," ")

beg_line=1

cur_promp=17

ELSEIF EMPTY(_DATE_END)=.T.

message('e'," ")

beg_line=20

cur_promp=20

ELSEIF _ALL_DAY<0.AND.EMPTY(_DATE_END)=.F.

beg_line=1

cur_promp=17

message('e'," ")

ELSEIF _END1=3.AND.EMPTY(_OLD_D)=.T.

message('e'," ")

beg_line=1

cur_promp=18

ELSEIF EMPTY(_END1)=.T.

message('e'," <>")

beg_line=1

cur_promp=19

ELSEIF EMPTY(_NUM_COME)=.T.

message('e'," ")

beg_line=20

cur_promp=22

* ELSEIF EMPTY(_DIA_DIRECT)=.T.

* message('e'," ")

* beg_line=20

* cur_promp=21

ELSEIF LEN(vars1[1])=0

message('e'," ")

beg_line=20

cur_promp=23

ELSEIF AT("000.0",vars1[1])#0.AND.LEN(vars[1])>80

message('e'," ")

beg_line=20

cur_promp=25

ELSEIF AT("000.0",vars1[1])#0.AND.LEN(vars1[2])#0

message('e'," ")

beg_line=20

cur_promp=25

ELSE

_qui=.T.

ENDIF

RETURN (_qui)

*********************************************************************

* 66 *

*********************************************************************

PROCEDURE first

IF !BOF().AND.!EOF()

@ 16,8 CLEAR TO 20,72

@ 17,15 SAY " / :"+NUM_IB

@ 18,15 SAY " :"+ALLTRIM(FAM)

@ 19,15 SAY " :"

@ 19,34 SAY DATE_IN

ENDIF

RETURN

*********************************************************************

* 頠 *

*********************************************************************

FUNCTION catalog

PARAMETERS s,t

PRIVATE sel3,screen3,N3

sel3=SELECT()

SAVE SCREEN TO screen3

select 0

use cato.dbf index cato alias cato

SET SOFTSEEK ON

SEEK s

SET SOFTSEEK OFF

IF FOUND()

t=NAME_ILL

ELSE

private NUILL,K

go top

nuill=RECCOUNT()

declare OPERATION[NUILL]

for K=1 to NUILL

operation[k]=NAME_ILL

skip 1

next

release NUILL,K

@ 4,1 CLEAR TO 21,78

@ 4,1 TO 21,78

saycent(4,1,78," ")

N3=ACHOICE(5,2,20,77,operation,.T.,"",NUMBER-1)

IF LASTKEY()=27

RESTORE SCREEN FROM screen3

use

SELECT (sel3)

RETURN (-1)

ENDIF

GO N3

s=SHIFR

t=NAME_ILL

ENDIF

RESTORE SCREEN FROM screen3

use

SELECT (sel3)

RETURN (0)

*********************************************************************

* ⠠ *

*********************************************************************

PROCEDURE recon

PRIVATE N4,N5,cod_name

STORE 0 TO N4,N5

DO WHILE gotomain=.F.

cod_name=SPACE(4)

codif1("CORR",@N4)

IF LASTKEY()=27

SET CURSOR OFF

RETURN

ELSEIF N4=1

cod_name="RIGS"

ELSEIF N4=2

cod_name="DIRS"

ELSEIF N4=3

cod_name="STTE"

ELSEIF N4=4

cod_name="HOSP"

ELSEIF N4=5

cod_name="BIRS"

ELSEIF N4=6

cod_name="RIZS"

ELSEIF N4=7

cod_name="DEPS"

ELSEIF N4=8

cod_name="KOIK"

ELSEIF N4=9

cod_name="RIZ1"

ELSEIF N4=10

cod_name="RIZ2"

ELSEIF N4=11

cod_name="RIZ3"

ELSEIF N4=12

cod_name="OLDS"

ELSEIF N4=13

cod_name="PLCE"

ENDIF

codifM("CODIF",cod_name,@N5)

ENDDO

RELEASE N4,N5,cod_name

RETURN

*********************************************************************

* 蠠 *

*********************************************************************

FUNCTION codifM

PARAMETERS codfile,code_name,code_var

PRIVATE screen,sel,ret,i,k,svtx,maxlen,color,count,first,x1,x2,y1,y2

PRIVATE prom,prom1

IF !t_qwerty

RETURN 0

ENDIF

SAVE SCREEN TO screen

SET CURSOR OFF

color=SETCOLOR()

sel=SELECT()

SET COLOR TO (color3)

SET EXACT OFF

SELECT &CODFILE

CLEAR TYPEAHEAD

prom= "ESC- ,ENTER-"

prom1="INS-,DEL-"

first=1

DO WHILE .T.

SEEK (code_name)

IF !FOUND()

RETURN ""

ENDIF

svtx=ALLTRIM(TEXT)

maxlen=MAX(LEN(svtx),MAX(LEN(prom),LEN(prom1)))

COUNT WHILE SUBSTR(KEY,1,4)=SUBSTR(code_name+' ',1,4) TO COUNT

count=count-1 &&

DECLARE A[count],B[count]

* A[]-

* B[]-

IF count=0

DECLARE A[1]

a[1]=" , INS"

maxlen=MAX(maxlen,40)

ENDIF

SEEK(code_name)

FOR k=1 TO COUNT

SKIP

A[K]=ALLTRIM(TEXT)

B[K]=SUBSTR(KEY,5)

maxlen=MAX(maxlen,LEN(A[K]))

NEXT

y1=12-ROUND(MIN(count,13)/2 +0.49,0)

x1=37-ROUND(MIN(maxlen,72)/2 +0.49,0)

* *

SET COLOR TO (color3)

y2=MIN(y1+count+2,20)

x2=MIN(x1+maxlen+3,77)

RESTORE SCREEN FROM SCREEN

@ y1,x1,y2,x2 BOX singl+fon2

@ y2,x1,y2+3,x2 BOX "+-+--L"+fon2

saycent(y2+1,x1,x2,prom)

saycent(y2+2,x1,x2,prom1)

saycent(y1,x1,x2,svtx)

I=ACHOICE(y1+1,x1+1,y2-1,x2-1,a,.t.,"u_key1",first)

IF i=0

ret=""

CLEAR TYPEAHEAD

EXIT

ELSE

DO CASE

CASE LASTKEY()=13.AND.COUNT>0 &&

SEEK(code_name)

SKIP I

PRIVATE scr,col1,pict

pict=SPACE(LEN(TEXT))

scr=SAVESCREEN(10,9,12,70)

col1=SETCOLOR()

SET COLOR TO (color7)

@10,9,12,70 box singl+fon2

saycent(10,9,70," ")

SET CURSOR ON

@ 11,10 GET pict

READ

PICT=STRTRAN(pict,'','H')

SET CURSOR OFF

SETCOLOR(col1)

RESTSCREEN(10,9,12,70,scr)

IF LASTKEY()#27.AND.!EMPTY(PICT) && ESC

REPLACE TEXT WITH pict

ENDIF

RELEASE scr,col1,pict

CASE LASTKEY()=22 &&

IF count>0

ins_pic(code_name,b[count])

ELSE

ins_pic(code_name,' ')

ENDIF

first=count+1

CASE LASTKEY()=7 &&

IF count>0

del_pic(code_name,i)

ENDIF

first=i-1

ENDCASE

ENDIF

ENDDO

*CLEAR TYPEAHEAD

REINDEX

RESTORE SCREEN FROM screen

SET COLOR TO (color)

SELECT(sel)

SET CURSOR OFF

RETURN ret

*********************************************************************

* ࠠ *

*********************************************************************

FUNCTION f_FRM

PRIVATE log,screen

log=.T.

IF !FILE(OT1)

log=.F.

SAVE SCREEN TO screen

@ 8,8 CLEAR TO 15,71

@ 8,8 TO 15,71 DOUBLE

saycent(8,20,60,"")

@ 11,15 SAY " :"+OT1

@ 12,15 SAY " "

INKEY(10)

RESTORE SCREEN FROM screen

ENDIF

RETURN (log)

*********************************************************************

* ࠠ *

*********************************************************************

FUNCTION period

PRIVATE screen,M1,R1

R1=0

M1=1

SAVE SCREEN TO screen

SET CURSOR ON

@ 8,8 CLEAR TO 15,71

@ 8,8 TO 15,71 DOUBLE

DO WHILE .T.

saycent(8,20,60," ")

@ 9,17 TO 11,34

@ 10,20 SAY "c " GET _DATE_FROM PICTURE "@D"

@ 9,47 TO 11,64

@ 10,50 SAY " " GET _DATE_TILL PICTURE "@D"

@ 12,17 TO 14,64

@ 13,21 PROMPT " Ok "

@ 13,38 PROMPT " "

@ 13,53 PROMPT " Ǡ "

READ

MENU TO M1

IF M1=1

EXIT

ELSEIF M1=2

M1=1

ELSEIF M1=0.OR.M1=3

R1=1

EXIT

ENDIF

ENDDO

SET CURSOR OFF

RESTORE SCREEN FROM screen

RETURN (R1)

*********************************************************************

* *

*********************************************************************

FUNCTION do_PRN

PRIVATE YN

YN=1

codif1("PRNT",@YN)

IF YN=2

SET CURSOR OFF

TYPE &OT2 TO PRINT

ENDIF

RETURN 0

*********************************************************************

* ࠠ *

*********************************************************************

FUNCTION y_m_day

PARAMETERS day_bir,hour_bir,mins_bir,day_bas,hour_bas,mins_bas

PRIVATE years,mons,days,screen,txt

SAVE SCREEN TO screen

txt=""

years="00"

@ 1,20 CLEAR TO 3,60

@ 1,20 TO 3,60

@ 2,22 SAY IF(choice=8," :"," :")

years=oldM(day_bir,day_bas)

IF VAL(years)>0

txt=years

IF VAL(years)=1

txt=txt+" "

ELSEIF VAL(years)<5

txt=txt+" "

ELSE

txt=txt+" "

ENDIF

ELSE

mons=INT((day_bas-day_bir)/30)

IF mons>0

txt=ALLTRIM(STR(mons))

IF mons=1

txt=txt+" "

ELSEIF mons<5

txt=txt+" "

ELSE

txt=txt+" "

ENDIF

ELSE

PRIVATE _add

_add=piece(hour_bir,mins_bir,hour_bas,mins_bas)

days=day_bas-day_bir+_add

txt=ALLTRIM(STR(days))

IF days=1

txt=txt+" "

ELSEIF days<5

txt=txt+" "

ELSE

txt=txt+" "

ENDIF

ENDIF

ENDIF

@ 2,50 SAY txt

vars[choice]=vars[choice]+"."

PRIVATE string2

string2=""

IF choice=8

context(@string2,promp[choice],vars[choice],length,New_Str)

stuff1(@string,length,string2,choice,row,len(promp))

choice=9

vars[choice]=codif1("OLDS",@_OLD)

ELSEIF choice=22

codif1("OLDS",@_OLD_D)

ENDIF

RESTORE SCREEN FROM screen

RETURN 0

*********************************************************************

* ࠠ *

*********************************************************************

FUNCTION oldM

PARAMETERS b_dat,today

PRIVATE old1

PRIVATE year1

SET CENTURY OFF

year1=year(today)-year(b_dat)

if month(today)>month(b_dat)

old1=alltrim(str(year1))

else

if month(today)

old1=alltrim(str(year1-1))

else

if day(today)

old1=alltrim(str(year1-1))

else

old1=alltrim(str(year1))

endif

endif

endif

RETURN old1

*********************************************************************

* 蠠 *

*********************************************************************

FUNCTION piece

PARAMETERS H1,M1,H2,M2

PRIVATE P

P=0.00

P=((60*H2+M2)-(60*H1+M1))/1440

RETURN (P)

*********************************************************************

* ࠠ *

*********************************************************************

FUNCTION corr_ttl

PARAMETERS _file,_str1,_str2,_str3

PRIVATE h,l,v

h=FCREATE("_0000F",0)

FSEEK(h,0,0)

FWRITE(h,": "+_str1+CHR(13)+CHR(10),11+LEN(_str1)+2)

FWRITE(h," : "+_str2+" - "+_str3+CHR(13)+CHR(10),;

17+LEN(_str2)+3+LEN(_str3)+2)

FWRITE(h," : "+DTOC(_today)+CHR(13)+CHR(10),;

27+LEN(DTOC(_today))+2)

FCLOSE(h)

RUN ("COPY _0000F+&_file _0000F>NUL")

DELETE FILE &_file

RENAME _0000F TO &_file

RETURN 0

********************************************************************


: VIEWER.PRG

*************************************************************************

* - fileview. *

* *

* : *

* : *

* filename - , *

* wt,wl,wb,wr - , *

* color - [ ], *

* linewide - (. ) [ ]. *

*************************************************************************

function fileview

parameters filename,wt,wl,wb,wr,color,linewide

private col_sv

col_sv=setcolor()

if pcount()<6

color="W+/B,N/G,BG/N,RB+/B,BG/B"

endif

if pcount()<7

linewide=wr-wl+1

endif

set key 24 to cr

set key 18 to bl

set key 3 to bl

set key 29 to bl

set key 30 to bl

set key 31 to bl

if empty(color)

color="W+/B,N/G,BG/N,RB+/B,BG/B"

endif

setcolor(color)

private f_mov

private fh,file_len,file_down,file_up

private blok,pos_str,pos_cur

private lines,old_line,count,cnt_pos

private buf,p,wt,wl,wb,wr

private str_vid,p_vid

private buf1,buf2

buf="buf1"

blok=2000

pos_str=wb-wt+1

pos_cur=wb-wt+1

lines=0

count=0

cnt_pos=0

old_line=0

last=chr(13)+chr(10)

f_mov=0

fh=fopen(filename,0)

if ferror()#0

@ 1,2 say " "+filename

return(0)

endif

file_len=fseek(fh,0,2)

fseek(fh,0,0)

buf1=freadstr(fh,blok)

file_down=blok

file_up=-1

str_vid=buf1

p_vid= rat(last,str_vid)

str_vid=left(str_vid,p_vid-1)

do while .T.

clear typeahead

memoedit(STRTRAN(str_vid,"","H"),wt,wl,wb,wr,.F.,"mod",linewide,'',pos_str,0,pos_cur,0)

if lastkey()=27

exit

endif

do case

case f_mov=1

str_vid=&buf

buf=if(buf="buf1","buf2","buf1")

fseek(fh,file_down,0)

file_down=file_down+blok

file_up=file_down-3*blok

&buf=freadstr(fh,blok)

str_vid=str_vid+&buf

pos_str=lines-old_line+1

pos_cur=wb-wt+1

old_line=pos_str-1

p_vid= rat(last,str_vid)

str_vid=left(str_vid,p_vid-1)

count=count+1

if count>cnt_pos

cnt_pos=cnt_pos+1

p="pos"+alltrim(str(cnt_pos))

private &p

&p=pos_str

endif

case f_mov=-1

fseek(fh,file_up,0)

file_down=file_down-blok

file_up=file_down-3*blok

&buf=freadstr(fh,blok)

str_vid=&buf

buf=if(buf="buf1","buf2","buf1")

str_vid=str_vid+&buf

count=count-1

p="pos"+alltrim(str(count))

pos_str=&p+wb-wt+1

pos_cur=wb-wt+1

p_vid= rat(last,str_vid)

str_vid=left(str_vid,p_vid-1)

otherwise

endcase

enddo

fclose(fh)

set key 24

set key 18

set key 3

set key 29

set key 30

set key 31

setcolor(col_sv)

RETURN(0)

function mod

parameters mode,line,col

private key

key=lastkey()

do case

case key=13 .and. line=lines .and. file_down

f_mov=1

keyboard chr(23)

return(0)

case key=5 .and. line<=wb-wt+2 .and. file_up>-1

f_mov=-1

keyboard chr(23)

return(0)

otherwise

lines=line

endcase

return(0)

procedure cr

keyboard chr(13)

return

procedure bl

keyboard chr(32)

return

. 066/ , "

 

 

 

! , , , .
. , :