Информационные системы в менеджменте

77
Министерство образования и науки Украины Национальный технический университет «Харьковский политехнический институт» Методические указания к проведению лабораторных занятий по курсу «Информационные системы в менеджменте» Харьков 2006

description

Методические указания к проведению лабораторных занятий по курсу«Информационные системы в менеджменте»

Transcript of Информационные системы в менеджменте

  • 2006

  • 7.050201 ,

    7.050206

    -

    ,

    3 15.12.2006 .

    2006

  • / . ... : , 2006. 74 . . .

    . .

    . .

  • 3

    ,

    ,

    .

    (), .

    ,

    .

    ,

    Visual FoxPro.

    .

    :

    , , ..

    Visual FoxPro 5 .

    Visual FoxPro

    .

  • 4

    1

    VISUAL FOXPRO

    1.1.

    . . . : , ( ).

    Visual

    FoxPro (), (dbf-).

    UST.dbf :

    (Name)

    (Type)

    (Width)

    (Decimal)

    (Field comment)

    CUST1 Character 30 CUST2 Numeric 2 0 CUST3 Memo 4 FIZ_L.dbf :

    (Name)

    (Type)

    (Width)

    (Decimal)

    (Field comment)

    FIZ_L1 Numeric 2 0 FIZ_L2 Character 20 FIZ_L3 Character 15 FIZ_L4 Character 20

    FIZ_L5 Character 10

    ()

  • 5

    YUR_L.dbf :

    (Name)

    (Type)

    (Width)

    (Decimal)

    (Field comment)

    YUR_L1 Numeric 2 0 YUR_L2 Character 20

    YUR_L3 Character 15 ROUTD.dbf :

    (Name)

    (Type)

    (Width)

    (Decimal)

    (Field comment)

    ROUTD1 Numeric 5 0 ROUTD2 Date 8 0 ROUTD3 Numeric 2 0 ROUTD4 Memo 4 0 ROUTD5 Character 25 0 , . ROUT.dbf :

    (Name)

    (Type)

    (Width)

    (Decimal)

    (Field comment)

    ROUT0 Numeric 5 0 ROUT1 Character 15 0 ROUT2 Numeric 4 0 ( .) ROUT3 Numeric 11 2 . ( .)

  • 6

    1.2.

    1. (, VFPLAB D).

    2. Visual FoxPro. 3. , Command

    SET DEFAULT TO D:\VFPLAB Enter. ! .

    (, Visual FoxPro) !

    4. , :

    1) File; 2) New; 3) Database File type; 4) New file; 5) - - sk.dbc; 6) Save; 7) Database Designer. 5. , ,

    : 1) File; 2) Open; 3) Database Type; 4) dbc- ( ); 5) ; 6) Database Designer. 6. (dbf-) ,

    . ( Database Designer ):

    1) Database; 2) New Table; 3) New Table; 4) (dbf-) Save; 5) ( .

    ) 6) (

    !). 7.

    British, : 1) Tools; 2) Options; 3) Regional;

  • 7

    4) Date Format British; 5) Century; 6) Options . ! .

    (, Visual FoxPro) !

    8. , BROWSE, Database Designer BROWSE . , , .

    . CUST

    CUST1 CUST2 CUST3 .. 3 . , . , 55, . 108, . 32-18-44 2 . , . , 154, . 3

    .. 1 . , . , 77 (.33-33-44, 12-34-56, 22-12-33) 4 . , . , 75 .. 5 . , . , 15, . 43

    ROUTD

    ROUTD1 ROUTD2 ROUTD3 ROUTD4 ROUTD5

    1 01/09/1999 1 34 30/08/99 1

    2 10/09/1999 1 - 8-78 28/08/99 2

    3 10/09/1999 3 - 08-78 28/08/99 3

    4 23/09/1999 3 56 28/08/99 4

    5 24/09/1999 2 74 11/09/99 5

    6 01/10/1999 1 - 09-12 28/09/99 6

    7 02/10/1999 2 85 21/09/99 7

  • 8

    YUR_L YUR_L1 YUR_L2 YUR_L3

    2 00123987 19848521 4 29345678 25912578

    FIZ_L

    FIZ_L1 FIZ_L2 FIZ_L3 FIZ_L4 FIZ_L5 1 00123987 3 12345678 5 09876541

    ROUT

    ROUT0 ROUT1 ROUT2 ROUT3 1 10 1253.45 1 25 655.12 1 12 722.33 2 11 511.43 2 5 455.14 2 8 450.67 1 12 220.45 1 24 1554.22 2 43 1453.18 3 52 899.99 3 11 544.00 3 85 545.32 4 56 990.56 4 22 323.19 4 41 350.77 5 14 860.33 5 33 585.67 5 17 850.12 4 27 330.55 5 44 590.23 6 34 810.15 6 32 1850.24 6 51 520.95 7 62 900.58 7 15 1234.56 7 22 389.75

  • 9

    . BROWSE

    Ctrl+Y. . Memo

    Ctrl+PgDn . Memo Ctrl+W.

    . ! (, ).

    . BROWSE, :

    1) , ; 2) ,

    ; 3) , ,

    . ;

    4) , Remove Deleted Records Table.

    . , Uniqueness of index INDEXNAME is violated ( INDEXNAME - CUST2, ROUTD1, ROUT01), , , . Revert .

    . ( , , ).

    9. , ( CUST):

    1) Database Designer CUST; 2) Database; 3) Modify; 4) Indexes; 5) () CUST2 Name; 6) Type Primary; 7) Expression , :

    CUST2, 8) . .

    , .

  • 10

    ()

    CUST CUST2 Primary CUST2 FIZ_L FIZ_L1 Primary FIZ_L1 YUR_L YUR_L1 Primary YUR_L1 ROUTD ROUTD1 Primary ROUTD1 ROUTD ROUTD3 Regular ROUTD3 ROUT ROUT0 Regular ROUT0 ROUT ROUT01 Primary STR(ROUT0,5)+ROUT1

    ,

    , 1.1.

    1.1

    10. , :

    1) CUST2 CUST; 2) ,

    ROUTD3 ROUTD, ;

    3) ROUTD ROUT ( ROUTD1 ROUT0);

    4) CUST FIZ_L, CUST YUR_L ( CUST2 FIZ_L1, CUST2 YUR_L1 ).

  • 11

    , , .1.2;

    1.2

    5) , . , Cascade CUST ROUTD, :

    Cascade CUST ROUTD, , Referential Integrity (Delete, Rules for Deleting) (. 1.3);

    , ;

    BROWSE CUST; BROWSE ROUTD. ,

    1, ; () , 1.

    CUST. , , (..

  • 12

    ) . ;

    1.3

    BROWSE ROUTD. , 1, (. 1.4);

    , CUST ROUTD.

    6) , , Referential Integrity (Cascade, Restrict, Ignore) (, . 1.5);

    7) ( , ) .

  • 13

    1.4

    1.5

  • 14

    1.3.

    ( ) :

    SK.dbc, SK.dct, SK.dcx; CUST.dbf, CUST.fpt, CUST.cdx; FIZ_L.dbf, FIZ_L.cdx; YUR_L.dbf, YUR_L.cdx; ROUTD.dbf, ROUTD.fpt, ROUTD.cdx; ROUT.dbf, ROUT.cdx.

    1.4.

    : 1) 2)

    3)

    (Restrict Cascade) .

    1. , . , , ?

    2. , , ?

    3. Visual FoxPro .

    4. Visual FoxPro? 5. ( )

    Visual FoxPro? 6. , Visual

    FoxPro ( )? 7. , (dbf-).

    . 8. BROWSE. . 9. . BROWSE EDIT.

    . BROWSE EDIT ?

  • 15

    10. Memo. Memo ?

    11. ? 12. ? 13. ? 14. .

    ? 15. ? 16. ,

    (, 1995, 2000, 2002 ..)? 17. ? . 18.

    . 19. ,

    ? 20. STR(ROUT0,5)+ROUT1? 21. Primary. . 22. Candidate. . 23. Primary Candidate? 24. Regular. . 25. Unique. . 26. Uniqueness of index

    INDEXNAME is violated? 27.

    ? 28.

    . 29. ? 30. Restrict ,

    . 31. Cascade ,

    . 32. (stored procedure)?

    , . 33. ? . 34. ?

  • 16

    2

    SQL,

    2.1.

    1. (, VFPLAB

    D) , 1. 2. Visual FoxPro. 3. , Command

    SET DEFAULT TO D:\VFPLAB Enter 4.

    British. 5. ,

    1.

    2.2. SELECT SQL SELECTSQL Visual FoxPro.

    ! ; ( ), , , , .

    1 , 1

    ( ..) 1. 1. Command MODIFY COMMAND QUERY1. 2. . SELECT ROUT.ROUT0, ROUT.ROUT1, CUST.*, ROUTD.ROUTD1;

    FROM ROUT, ROUTD, CUST; WHERE ROUTD.ROUTD1 = ROUT.ROUT0;

    AND CUST.CUST2 = ROUTD.ROUTD3; AND (ROUTD.ROUTD1 = 1; AND ROUTD.ROUTD3 = 1)

    3. , Ctrl+W. 4. (Program -> Do -> query1)

    . 5. ,

    , , .1.

  • 17

    2 , 1

    ( ..) 05/09/1999 12/09/1999. 1. Command MODIFY COMMAND QUERY2. 2. .

    SELECT ROUTD.ROUTD1, ROUTD.ROUTD2, ROUT.ROUT1, ROUT.ROUT2,; CUST.*;

    FROM ROUTD, ROUT, CUST; WHERE ROUT.ROUT0 = ROUTD.ROUTD1;

    AND CUST.CUST2 = ROUTD.ROUTD3; AND (ROUTD.ROUTD2 BETWEEN {05/09/1999} AND {12/09/1999};

    AND CUST.CUST2 = 1)

    ! Visual FoxPro 6.0 {^1999-09-05} AND {^1999-09-12}

    3. - Ctrl+W. 4. (Program -> Do -> query2)

    . 5. ,

    , , .1.

    3 , 9 1999

    . 1. Command MODIFY COMMAND QUERY3 2. SELECT ROUTD.ROUTD1, ROUTD.ROUTD2, ROUT.ROUT1, ROUT.ROUT2,;

    CUST.CUST1 , CUST.CUST2; FROM ROUTD, ROUT, CUST; WHERE ROUT.ROUT0 = ROUTD.ROUTD1;

    AND CUST.CUST2 = ROUTD.ROUTD3; AND (MONTH(routd.routd2) = 9; AND YEAR(routd.routd2) = 1999)

    3. Ctrl+W. 4. (Program -> Do -> query3)

    . 5. ,

    , , .1.

  • 18

    4 (, , )

    ( ). .

    1. Command MODIFY COMMAND QUERY4. 2. . SELECT ROUTD.ROUTD1, ROUTD.ROUTD2, ROUTD.ROUTD3,;

    SUM(ROUT.ROUT2*ROUT.ROUT3); FROM ROUTD,ROUT; WHERE ROUT.ROUT0 = ROUTD.ROUTD1; GROUP BY ROUTD.ROUTD1; ORDER BY ROUTD.ROUTD1

    3. Ctrl+W. 4. (Program -> Do -> query4)

    . 5. ,

    , , .1.

    5 (, , )

    ( ). . , , 3.

    1 1. Command MODIFY COMMAND QUERY51. 2. . SELECT ROUTD.ROUTD1, ROUTD.ROUTD2, ROUTD.ROUTD3,;

    SUM(ROUT.ROUT2*ROUT.ROUT3); FROM ROUTD, ROUT; WHERE ROUT.ROUT0 = ROUTD.ROUTD1; GROUP BY ROUTD.ROUTD1; HAVING ROUTD.ROUTD1 > 3; ORDER BY 4, ROUTD.ROUTD1

    3. Ctrl+W. 4. (Program -> Do -> query51)

    .

  • 19

    5. , , , .1.

    2 1. Command MODIFY COMMAND QUERY52. 2. .

    SELECT ROUTD.ROUTD1, ROUTD.ROUTD2, ROUTD.ROUTD3,; SUM(ROUT.ROUT2*ROUT.ROUT3);

    FROM ROUTD, ROUT; WHERE ROUT.ROUT0 = ROUTD.ROUTD1 AND ROUTD.ROUTD1 > 3;

    GROUP BY ROUTD.ROUTD1; ORDER BY 4, ROUTD.ROUTD1

    3. Ctrl+W. 4. : (Program -> Do -> query52)

    . 5. ,

    , , .1.

    6

    , . 1. Command MODIFY COMMAND QUERY6. 2. . SELECT ROUTD.ROUTD1, ROUTD.ROUTD2, ROUTD.ROUTD3,;

    ROUTD.ROUTD5, CUST.CUST1, ROUT.ROUT2; FROM ROUTD, ROUT, CUST; WHERE ROUT.ROUT0 = ROUTD.ROUTD1 AND;

    ROUTD.ROUTD3 = CUST.CUST2 AND; ROUT.ROUT3 = (SELECT MAX(ROUT.ROUT3) FROM ROUT)

    3. Ctrl+W 4. (Program -> Do -> query6)

    . 5. ,

    , , .1.

    7 ( ),

    . 1. Command MODIFY COMMAND QUERY7.

  • 20

    2. . SELECT DISTINCT cust1, cust2;

    FROM CUST; WHERE cust2 NOT IN (SELECT ROUTD3 FROM ROUTD)

    3. Ctrl+W. 4. (Program -> Do > query7)

    . 5. ,

    , , .1.

    8

    ( ). 1. Command MODIFY COMMAND QUERY8 2.

    SELECT rout1,AVG(rout3) as sred_cena; FROM rout ; GROUP BY rout1

    3. Ctrl+W. 4. (Program -> Do > query8)

    . 5. ,

    , , .1.

    9 (, ,

    ), . 1. Command MODIFY COMMAND QUERY9 2.

    SELECT rout1,rout2,rout3,cust1 ; FROM rout,routd,cust ; WHERE routd1=rout0 AND routd3=cust2 AND ; rout3 > (SELECT AVG(rout3) FROM rout)

    3. Ctrl+W. 4. (Program -> Do > query9)

    . 5. ,

    , , .1.

  • 21

    10 (,

    , ). 1. Command MODIFY COMMAND QUERY10. 2. .

    SELECT TOP 5 rout1,rout3,cust1 ; FROM rout,routd,cust ; WHERE routd1=rout0 AND routd3=cust2 ; ORDER BY rout3 DESC

    3. - Ctrl+W. 4. (Program -> Do > query10)

    . 5. ,

    , , .1.

    11 9 1999 ,

    ( , ).

    : .

    1. Command MODIFY COMMAND QUERY11. 2. vfpxtab.prg ( ,

    VisualFoxPro. Windows. vfpxtab.prg , ). VisualFoxPro .

    3. . SELECT cust1,DAY(routd2),SUM(rout2*rout3) ; FROM cust,routd,rout ; WHERE cust2=routd3 and routd1=rout0 and ; MONTH(routd2)=9 and YEAR(routd2)=1999 ; GROUP BY cust1,2 ; INTO CURSOR SYS(2015) DO vfpxtab WITH 'tbl_tmp',.t.,.t.,.t.,,,,.t.,0 BROWSE

    4. Ctrl+W.

  • 22

    5. (Program -> Do > query11) .

    6. , , , .1.

    12 .

    , .

    1. Command MODIFY COMMAND QUERY12. 2. .

    SELECT cust1,cust2,fiz_l2,yur_l3 ; FROM (cust LEFT JOIN fiz_l ON cust2=fiz_l1) ; LEFT JOIN yur_l ON cust2=yur_l1

    3. Ctrl+W. 4. (Program -> Do > query12)

    . ! fiz_l2 yur_l3 .NULL. , . , , , ( ).

    5. Command MODIFY COMMAND QUERY12_ . 6. .

    SELECT cust1,cust2,IIF(ISNULL(fiz_l2),yur_l3,fiz_l2) ; FROM (cust LEFT JOIN fiz_l ON cust2=fiz_l1) ; LEFT JOIN yur_l ON cust2=yur_l1

    7. (Program -> Do > query12_) .

    8. , , , .1 5.

    13 ( ),

    . , , (), .

    1. Command MODIFY COMMAND QUERY13. 2. .

  • 23

    SELECT routd1,SUM(rout2) AS kol_vo,SUM(rout2*rout3) AS summa, c1.cust1,; ALLTRIM(fiz_l2)+" "+SUBSTR(ALLTRIM(fiz_l3),1,1)+"."+SUBSTR(ALLTRIM(fiz_l4),1,1)+".",; yur_l3 ; FROM routd,rout,(cust c1 LEFT JOIN fiz_l ON cust2=fiz_l1),; (cust c2 LEFT JOIN yur_l ON cust2=yur_l1) ; WHERE routd1=rout0 AND routd3=c1.cust2 AND routd3=c2.cust2; GROUP BY routd1

    3. Ctrl+W. 4. (Program -> Do > query13)

    . 5. ,

    , , .1.

    14 ,

    . :

    . 1. Command MODIFY COMMAND QUERY14. 2. .

    SELECT cust1,rout1,SUM(rout2) ; FROM cust,routd,rout ; WHERE cust2=routd3 and routd1=rout0 ; GROUP BY cust1,rout1 ; INTO CURSOR SYS(2015) DO vfpxtab WITH 'tbl_tmp',.t.,.t.,.t.,,,,.t.,0 BROWSE

    3. Ctrl+W. 4. (Program -> Do > query14)

    . 5. ,

    , , .1.

    15 , 1

    ( ..) 2 ( ). :

    UNION , . , UNION .

  • 24

    1. Command MODIFY COMMAND QUERY15. 2. .

    SELECT rout1,rout2,rout3,rout2*rout3,cust1 ; FROM cust,routd,rout ; WHERE cust2=routd3 and rout0=routd1 and cust2=1 ; UNION ; SELECT rout1,rout2,rout3,rout2*rout3,cust1 ; FROM cust,routd,rout ; WHERE cust2=routd3 and rout0=routd1 and cust2=2

    3. Ctrl+W. 4. (Program -> Do > query15)

    . 5. ,

    , , .1.

    16 , . 1. Command MODIFY COMMAND QUERY15 2.

    SELECT rout1,COUNT(rout1) ; FROM rout ; GROUP BY rout1 ; HAVING COUNT(rout1)>1

    3. Ctrl+W. 4. (Program -> Do > query16)

    . 5. ,

    , , .1.

    17 (, , )

    ( ). . , , .

    : . 5 ( 2, query52.prg).

  • 25

    1. Command MODIFY COMMAND QUERY17. 2. .

    nomer=3 SELECT ROUTD.ROUTD1, ROUTD.ROUTD2, ROUTD.ROUTD3,;

    SUM(ROUT.ROUT2*ROUT.ROUT3); FROM ROUTD, ROUT;

    WHERE ROUT.ROUT0 = ROUTD.ROUTD1 AND ROUTD.ROUTD1 > nomer; GROUP BY ROUTD.ROUTD1; ORDER BY 4, ROUTD.ROUTD1

    3. Ctrl+W. 4. : (Program -> Do -> query17)

    . 5. ,

    , , .1.

    2.3. INSERTSQL, UPDATESQL, DELETESQL

    18 ( 8, 11.10.1999). 1. Command MODIFY COMMAND QUERY18. 2. .

    INSERT INTO routd (routd1,routd2,routd3,routd5) ; VALUES (8,{11/10/1999},3,' 8')

    3. Ctrl+W. 4. : (Program -> Do -> query18)

    , ( routd ). 5. ,

    , , .1.

    19 8. 1. Command MODIFY COMMAND QUERY19. 2. .

    UPDATE routd ; SET routd4=' - 284 06/10/99' ; WHERE routd1=8

  • 26

    3. Ctrl+W. 4. : (Program -> Do -> query19)

    , . 5. ,

    , , .1.

    20 10 ,

    1 ( ..), , , 1 ( ..), .

    1. Command MODIFY COMMAND QUERY20. 2. .

    * SELECT rout0,rout1,rout2,rout3 ; FROM rout ; WHERE rout0 IN (SELECT routd1 FROM cust,routd WHERE cust2=routd3 AND cust2=1) * UPDATE rout SET rout2=rout2+10 ; WHERE rout0 IN (SELECT routd1 FROM cust,routd WHERE cust2=routd3 AND cust2=1) * SELECT rout0,rout1,rout2,rout3 ; FROM rout ; WHERE rout0 IN (SELECT routd1 FROM cust,routd WHERE cust2=routd3 AND cust2=1) * UPDATE rout SET rout2=rout2-10 ; WHERE rout0 IN (SELECT routd1 FROM cust,routd WHERE cust2=routd3 AND cust2=1) * SELECT rout0,rout1,rout2,rout3 ; FROM rout ; WHERE rout0 IN (SELECT routd1 FROM cust,routd WHERE cust2=routd3 AND cust2=1)

    3. Ctrl+W. 4. : (Program -> Do -> query20)

    , . 5. ,

    , , .1.

  • 27

    2.4.

    ( ):

    query1.prg, query2.prg, query3.prg, query4.prg, query51.prg, query52.prg, query6.prg, query7.prg, query8.prg, query9.prg, query10.prg, query11.prg, query12.prg, query12_.prg, query13.prg, query14.prg, query15.prg, query16.prg, query17.prg, query18.prg, query19.prg, query20.prg.

    2.5.

    : 1) ; 2)

    ( ).

    1. SELECT-SQL. , . .

    2. SELECT-SQL. . .

    3. SELECT-SQL. FROM. .

    4. SELECT-SQL. WHERE. .

    5. SELECT-SQL. WHERE. FILTER- .

    6. SELECT-SQL. . JOIN- . . .

    7. SELECT-SQL. . .

    8. SELECT-SQL. . INNER JOIN .

    9. SELECT-SQL. . LEFT JOIN .

    10. SELECT-SQL. . RIGHT JOIN .

    11. DISTINCT. . 12. TOP. . 13. SELECT-SQL. AND, OR, NOT

    .

  • 28

    14. SELECT-SQL. IN, BETWEEN. .

    15. SELECT-SQL. COUNT, SUM, AVG, MAX, MIN. .

    16. SELECT-SQL. GROUP BY. .

    17. SELECT-SQL. ORDER BY. .

    18. SELECT-SQL. HAVING. .

    19. SELECT-SQL. . . 20. SELECT-SQL. . . 21. SELECT-SQL. .

    ? 22. SELECT-SQL.

    ? 23. INSERT-SQL. .

    . 24. UPDATE-SQL. .

    . 25. UPDATE-SQL. WHERE. FILTER-

    . 26. DELETE-SQL. .

    . 27. DELETE-SQL. WHERE. FILTER-

    . 28. 15 UNION? 29. SQL

    ? 30.

    ? 31. ? 32. FXP BAK.

    ? 33. ; ( ),

    ?

  • 29

    3

    (VIEW)

    3.1.

    1. (, VFPLAB D) , 1 2.

    2. Visual FoxPro. 3. , Command

    SET DEFAULT TO D:\VFPLAB Enter. 4.

    British. 5. ,

    1 2.

    3.2.

    ( Database Designer ):

    1) Database; 2) New Local View; 3) New View; 4) , , CUST

    ROUTD, Add (. 3.1);

    3.1

  • 30

    5) , Add Fields, , . : routd1, routd2, routd3, routd4, routd5, cust1 (. 3.2);

    3.2

    6) , , Order by , Add, Ordering criteria Routd.routd1 (.3.3);

    7) , DGVR. (. 3.4);

    8) , ( , ).

  • 31

    3.3

    3.4

  • 32

    3.3. (

    ) : SK.dbc, SK.dct, SK.dcx; CUST.dbf, CUST.fpt, CUST.cdx; ROUTD.dbf, ROUTD.fpt, ROUTD.cdx; ROUT.dbf, ROUT.cdx.

    3.4.

    : 1) ; 2) ; 3) SELECT,

    ; 4) .

    1. (View). .

    . . .

    2. View Designer , .

    3. View Designer. Fields. .

    4. View Designer. Join. .

    5. View Designer. Filter. .

    6. View Designer. Order by. .

    7. View Designer. Group by. .

  • 33

    4

    VISUAL FOXPRO

    4.1.

    1. (, VFPLAB D) , 1, 2, 3.

    2. Visual FoxPro. 3. , Command

    SET DEFAULT TO D:\VFPLAB Enter. 4.

    British. 5. ,

    : 1) Tools; 2) Options; 3) Data; 4) Ignore deleted records; 5) Options . !

    . (, Visual FoxPro) !

    6. ( ). :

    1) Tools; 2) Options; 3) Forms; 4) Maximum design area 800 600; 5) Options . 7.

    , , Form Designer: 1) Form; 2) Run Form. 8.

    .

    4.2.

    1. , : 1) File;

  • 34

    2) New; 3) Form File type; 4) New file; 5) Form Designer. 2. , ,

    : 1) File; 2) Open; 3) Form Types of file ( ); 4) scx-; 5) ; 6) Form Designer. 3.

    , : 1) , ; 2) , ; 3) ,

    . 4.1.

    4.1

  • 35

    4. , : 1) File; 2) Save; 3) sk.scx. !

    . .

    5. DataEnvironment, : 1) View; 2) DataEnvironment; 3) DataEnvironment cust, routd, rout dgvr,

    . , DataEnvironment . - , DataEnvironment ;

    4) routd rout ;

    5) routd cust ;

    6) cust, Properties Order cust2;

    7) routd, Properties Order routd1;

    8) rout, Properties Order rout01;

    9) routd, Properties BufferModeOverride 5 Optimistic table buffering;

    10) rout, Properties BufferModeOverride 5 Optimistic table buffering;

    11) DataEnvironment . 6. PageFrame, : 1) Form Controls ,

    PageFrame; 2) PageFrame ,

    . 4.2 ( PageFrame); 3) PageFrame (. 4.2,

    PageFrame). 7. Grid, : 1) Properties Page1 PageFrame1; 2) Form Controls ,

    Grid; 3) Grid Page1 , .4.3.

  • 36

    4.2

    4.3

  • 37

    8. Grid ( .4.3 PageFrame), :

    1) Properties Grid1, Page1 PageFrame1;

    2) RecordSource dgvr ( ); 3) ColumnCount 4; 4) DeleteMark .F.; 5) AfterRowColChange Grid1: LPARAMETERS nColIndex THISFORM.DataEnvironment.Cursor2.Filter = 'rout0=dgvr.routd1' THISFORM.PageFrame2.Page1.Caption = ' '+LTRIM(STR(dgvr.routd1)) THISFORM.PageFrame2.Page1.Grid1.Refresh ! , rout DataEnvironment Cursor2. Cursor2 Cursor, rout. 6) ControlSource Column1 Grid1

    dgvr.routd1; 7) Caption Header1 Column1

    Grid1 ( ); 8) ControlSource Column2 Grid1

    dgvr.routd2; 9) Caption Header1 Column2

    Grid1 ( ); 10) ControlSource Column3 Grid1

    dgvr.routd5; 11) Caption Header1 Column3

    Grid1 ( ); 12) ControlSource Column4 Grid1

    dgvr.cust1; 13) Caption Header1 Column4

    Grid1 ( ); 14) Column

    ReadOnly ..; 15)

    (.4.4). 9. Grid ( .4.3 PageFrame),

    : 1) Properties Grid1, Page1

    PageFrame2; 2) RecordSource rout; 3) ColumnCount 5; 4) DeleteMark .F.;

  • 38

    5) ControlSource Column1 Grid1 rout.rout0;

    6) Caption Header1 Column1 Grid1 ( );

    7) ControlSource Column2 Grid1 rout.rout1;

    8) Caption Header1 Column2 Grid1 ( );

    9) ControlSource Column3 Grid1 rout.rout2;

    10) Caption Header1 Column3 Grid1 - ( );

    11) ControlSource Column4 Grid1 rout.rout3;

    12) Caption Header1 Column4 Grid1 . ( );

    13) ControlSource Column5 Grid1 rout2* rout3 ( , , );

    14) Caption Header1 Column5 Grid1 ( );

    15) Column ReadOnly ..;

    16) (.4.4);

    4.4

  • 39

    10. PageFrame, :

    1) Properties Page1 PageFrame1; 2) Caption Page1

    ( ); 3) Properties Page2 PageFrame1; 4) Caption Page2

    ( ); 5) Properties Page1 PageFrame2; 6) Caption Page1 (

    ); 7) Properties Page2 PageFrame2; 8) Caption Page2

    ( ). 11. ,

    , : 1) Properties Page2 PageFrame1; 2) Page2 ,

    . , , . Page2 . 4.5 4.6 .

    4.5

  • 40

    4.6

    ! . , .4.6;

    3) Label. Caption , , , , ( );

    4) TextBox. Name routd1, routd2, routd3, routd5 (. . 4.6);

    5) routd1 routd3 Enabled .F.; 6) routd2 Value {}; 7) EditBox. Name

    routd4 (. . 4.6); 8) ComboBox (. . 4.6). Name

    custlist; 9) BoundColumn custlist 2; 10) RowSourceType custlist 3 SQL

    Statement; 11) RowSource custlist : SELECT cust1,cust2 FROM cust ORDER BY cust1 INTO CURSOR custtmp 12) Valid custlist:

  • 41

    IF !EMPTY(THISFORM.PageFrame1.Page2.custlist.Value) THISFORM.PageFrame1.Page2.routd3.Value = VAL(THISFORM.PageFrame1.Page2.custlist.Value) ENDIF

    13) CommandButton. Name save (. . 4.6). Caption ( );

    14) Click save: IF EMPTY(THISFORM.PageFrame1.Page2.routd1.Value) OR ; EMPTY(THISFORM.PageFrame1.Page2.routd2.Value) OR ; EMPTY(THISFORM.PageFrame1.Page2.routd3.Value) OR ; EMPTY(THISFORM.PageFrame1.Page2.routd4.Value) OR ; EMPTY(THISFORM.PageFrame1.Page2.routd5.Value) MESSAGEBOX(' !',0,[ ]) RETURN ENDIF routd1tmp = THISFORM.PageFrame1.Page2.routd1.Value routd2tmp = THISFORM.PageFrame1.Page2.routd2.Value routd3tmp = THISFORM.PageFrame1.Page2.routd3.Value routd4tmp = THISFORM.PageFrame1.Page2.routd4.Value routd5tmp = THISFORM.PageFrame1.Page2.routd5.Value DIMENSION nom(1) nom(1) = 0 SELECT routd1 FROM routd WHERE routd1=routd1tmp INTO ARRAY nom IF nom(1) > 0 MESSAGEBOX(' !',0,[ ]) RETURN ENDIF INSERT INTO routd (routd1,routd2,routd3,routd4,routd5) ; VALUES (routd1tmp,routd2tmp,routd3tmp,routd4tmp,routd5tmp) =TABLEUPDATE(.T.,.T.,'routd') SELECT routd GO TOP REQUERY('dgvr') THISFORM.PageFrame1.Page1.Enabled = .T. THISFORM.PageFrame2.Page1.Enabled = .T. THISFORM.PageFrame2.Page2.Enabled = .T. THISFORM.Closable = .T. THISFORM.PageFrame1.ActivePage = 1 THISFORM.PageFrame1.Page1.Refresh 15) CommandButton. Name

    cancel (. . 4.6). Caption ( );

    16) Click cancel: THISFORM.PageFrame1.Page1.Enabled = .T. THISFORM.PageFrame2.Page1.Enabled = .T. THISFORM.PageFrame2.Page2.Enabled = .T. THISFORM.Closable = .T. THISFORM.PageFrame1.ActivePage = 1

  • 42

    17) Activate Page2: DIMENSION maxnumb(1) maxnumb(1) = 0 SELECT MAX(routd1) FROM routd INTO ARRAY maxnumb THISFORM.PageFrame1.Page2.routd1.Value = maxnumb(1) + 1 THISFORM.PageFrame1.Page1.Enabled = .F. THISFORM.PageFrame2.Page1.Enabled = .F. THISFORM.PageFrame2.Page2.Enabled = .F. THISFORM.Closable = .F. 18) ( , .2)

    . 12. ,

    , : 1) Properties Page2 PageFrame2; 2) Page2 ,

    . , , . Page2 . 4.7 4.8 .

    ! . , .4.8;

    4.7

  • 43

    4.8 3) Label. Caption

    , (-), ( );

    4) TextBox. Name rout1, rout2, rout3 (. . 4.8);

    5) rout2 Value 0; 6) rout3 Value 0.00; 7) CommandButton. Name

    write (. . 4.8). Caption ( );

    8) Click write: IF EMPTY(THISFORM.PageFrame2.Page2.rout1.Value) OR ; EMPTY(THISFORM.PageFrame2.Page2.rout2.Value) OR ; EMPTY(THISFORM.PageFrame2.Page2.rout3.Value) MESSAGEBOX(' !',0,[ ]) RETURN ENDIF rout0tmp = dgvr.routd1 rout1tmp = THISFORM.PageFrame2.Page2.rout1.Value rout2tmp = THISFORM.PageFrame2.Page2.rout2.Value rout3tmp = THISFORM.PageFrame2.Page2.rout3.Value

  • 44

    SELECT rout SEEK str(rout0tmp,5)+(Alltrim(rout1tmp)+Space(15-LEN(ALLTRIM(rout1tmp)))) IF FOUND() MESSAGEBOX(' !',0,[ ]) RETURN ENDIF INSERT INTO rout (rout0,rout1,rout2,rout3) ; VALUES (rout0tmp,rout1tmp,rout2tmp,rout3tmp) =TABLEUPDATE(.T.,.T.,'rout') THISFORM.PageFrame1.Page1.Enabled = .T. THISFORM.PageFrame1.Page2.Enabled = .T. THISFORM.PageFrame2.Page1.Enabled = .T. THISFORM.Closable = .T. THISFORM.PageFrame2.ActivePage = 1 THISFORM.PageFrame2.Page1.Grid1.Refresh 9) CommandButton. Name

    canc (. . 4.8). Caption ( )

    10) Click canc: THISFORM.PageFrame1.Page1.Enabled = .T. THISFORM.PageFrame1.Page2.Enabled = .T. THISFORM.PageFrame2.Page1.Enabled = .T. THISFORM.Closable = .T. THISFORM.PageFrame2.ActivePage = 1

    11) Activate Page2: THISFORM.PageFrame1.Page1.Enabled = .F. THISFORM.PageFrame1.Page2.Enabled = .F. THISFORM.PageFrame2.Page1.Enabled = .F. THISFORM.Closable = .F.

    12) (. , .2) .

    13. , : 1) Properties Page1 PageFrame1; 2) CommandButton. Name

    DELl. Caption ( ) (. . 4.9);

    3) Click DEL1: IF MESSAGEBOX(' '+LTRIM(STR(dgvr.routd1))+' ! ?',4+32,[ ])=7 RETURN ENDIF DIMENSION rec_dg(1) rec_dg(1)=0 SELECT rout0 FROM rout WHERE rout0=dgvr.routd1 INTO ARRAY rec_dg IF !EMPTY(rec_dg(1)) MESSAGEBOX(' ! !',0,[ ])

  • 45

    RETURN ENDIF SELECT routd DELETE FOR routd1=dgvr.routd1 =TABLEUPDATE(.T.,.T.,'routd') REQUERY('dgvr') THISFORM.PageFrame1.Page1.Grid1.Refresh

    4.9 4) Properties Page1 PageFrame2; 5) CommandButton. Name

    DEL2. Caption ( ) (. . 4.9);

    6) Click DEL2: IF MESSAGEBOX(' ! ?',4+32,[ ])=7 RETURN ENDIF SELECT rout DELETE =TABLEUPDATE(.T.,.T.,'rout') THISFORM.PageFrame2.Page1.Grid1.Refresh 7) (. , .2)

    . 14. ,

    , :

  • 46

    1) Init: THISFORM.DataEnvironment.Cursor2.Filter = 'rout0=dgvr.routd1' ! , rout

    DataEnvironment Cursor2. Cursor2 Cursor, rout;

    2) . Properties Form1 Caption ( );

    3) . .4.10.

    4.10

    4.3. ( ) sk.scx, sk.sct

    4.4.

    : 1) ; 2) ;

  • 47

    3) , .

    1. Form Designer. ,

    . 2. ( ) , Form

    Designer? 3. ?

    . 4. DataEnvironment.

    . 5. ,

    . Label. . 6. ,

    . TextBox. . 7. ,

    . EditBox. . 8. ,

    . Command Button. . 9. ,

    . Command Group. . 10. ,

    . Option Group. . 11. ,

    . CheckBox. . 12. ,

    . ComboBox. . 13. ,

    . ListBox. . 14. ,

    . Spinner. . 15. ,

    . Grid. . 16. ,

    . Column ( Grid). .

    17. , . Header ( Grid). .

    18. , . PageFrame. .

  • 48

    5 (MENU DESIGNER,

    PROJECT MANAGER) VISUAL FOXPRO

    5.1.

    1. (, VFPLAB D) , 1 4.

    2. Visual FoxPro. 3. , Command

    SET DEFAULT TO D:\VFPLAB Enter. 4.

    British. 5. .

    5.2.

    1. ,

    : 1) File; 2) New; 3) Menu File type; 4) New file; 5) Menu; 6) Menu Designer. 2. , ,

    : 1) File; 2) Open; 3) Menu Types of file ( ); 4) mnx-; 5) ; 6) Menu Designer. 3. () ,

    : 1) Prompt (

    ); 2) Prompt (

    ); 3) Prompt (

    ); !

    () (, , ),

  • 49

    . , (, , , ..) , :

    Options; Prompt Options Key Label; Alt, ,

    - (, Alt+F, Alt+S) ( 5.1.);

    .

    5.1

    4. : 1) Result Procedure; 2) Create; 3) :

  • 50

    IF MESSAGEBOX(' ?',4+32,[ ])=7 RETURN ENDIF SET SYSMENU TO DEFAULT

    4) , Ctrl+W. 5. ,

    : 1) Menu; 2) Generate; 3) , Save As sk.mnx; 4) , Generate; 5) Menu Designer; 6) , Do

    Program sk.mpr; 7) ,

    , .2. ! Visual FoxPro

    , , :

    , Visual FoxPro genmenu.prg; genmenu.prg (VFPLAB) D; Menu Builder,

    : Tools; Options; File Locations; Menu Builder genmenu.prg, (VFPLAB) D;

    Options . ! ,

    Visual FoxPro , .. , Visual FoxPro Command SET SYSMENU TO DEFAULT .

    6. , , :

    1) Create, ; 2) Prompt

    ( ); 3) Result Procedure; 4) Create; 5) :

    DO FORM sk

  • 51

    6) , Ctrl+W; 7) Prompt

    ( ); 8) , Menu

    level Menu Bar. 7. Menu Designer, . 8. , : 1) File; 2) New; 3) Project File type; 4) New file; 5) sk.pjx; 6) Project Manager. 9. , : 1) File; 2) Open; 3) Project Types of file ( ); 4) pjx-; 5) ; 6) Project Manager. 10. : 1) Project Manager Other; 2) Menus; 3) Add; 4) sk.mnx; 5) , (..

    ) . , Set Main . ;

    6) Project Manager Data; 7) Databases; 8) Add; 9) sk.dbc; 10) sk.scx .

    (application). 11. (application), : 1) Project Manager Build; 2) Action Build Application; 3) ; 4) sk.app, ; 5) , Errors

    Project . , ;

  • 52

    6) , Documents Forms. , .

    ! (build application). , .

    12. : 1) Project Manager; 2) Do Program Visual FoxPro; 3) sk.app Do.

    Visual FoxPro , (.5.2);

    5.2 ! , ,

    Format. , , Command.

    4) . . , . . 5.3;

  • 53

    5) , . Visual FoxPro.

    5.3

    5.3. ( ) :

    sk.mnx, sk.mnt, sk.pjx, sk.pjt

    5.4. :

    1) 2) .

  • 54

    1. Menu Designer. Menu Designer.

    2. ? . 3. ( ) , Menu

    Designer? 4.

    ? 5. ? 6. ? 7. ? ? 8. ? ? 9. ? 10. ? 11.

    ? 12.

    ? 13. ,

    ? 14. ? 15. Visual FoxPro

    , ?

    16. . . Project Manager.

    17. ( ) , Project Manager?

    18. ? 19. ? 20. ? 21. , ? 22. ? 23. (application)? 24. ? 25. ,

    ?

  • 55

    6

    (REPORT DESIGNER) VISUAL FOXPRO

    6.1.

    1. (, VFPLAB

    D) , .

    2. Visual FoxPro. 3. , Command

    SET DEFAULT TO D:\VFPLAB Enter. 4.

    British. 5. . 6.

    .

    6.2.

    1. , : 1) File; 2) New; 3) Form File type; 4) New file; 5) Form Designer. 2. , , : 1) File; 2) Open; 3) Form Types of file ( ); 4) scx-; 5) ; 6) Form Designer. 3.

    : 1) , ; 2) , ; 3)

    , . 6.1. 4. : 1) File; 2) Save; 3) repo.scx.

  • 56

    ! . .

    6.1 5. DataEnvironment : 1) View; 2) DataEnvironment; 3) DataEnvironment , .

    , DataEnvironment . - , DataEnvironment ;

    4) ; 5) DataEnvironment . 6. ,

    : 1) CommandGroup, :

    Form Controls CommandGroup; ButtonCount 7; :

    ( ); (. . 6.1);

  • 57

    : (Command1) Properties; (. . 6.1); Caption

    , .. 1 ( );

    Caption : , .. 05/09/1999 12/09/1999, , 9 1999 , , ( 4), , ( );

    Valid : DO CASE CASE THISFORM.CommandGroup1.Value = 1 SELECT ROUT.ROUT0, ROUT.ROUT1, CUST.*, ROUTD.ROUTD1; FROM ROUT, ROUTD, CUST; WHERE ROUTD.ROUTD1 = ROUT.ROUT0; AND CUST.CUST2 = ROUTD.ROUTD3; AND (ROUTD.ROUTD1 = 1; AND ROUTD.ROUTD3 = 1); INTO CURSOR rep_tmp REPORT FORM rep1 PREVIEW CASE THISFORM.CommandGroup1.Value = 2 var_date1 = {05/09/1999} var_date2 = {12/09/1999} SELECT ROUTD.ROUTD1, ROUTD.ROUTD2, ROUT.ROUT1,; ROUT.ROUT2, CUST.*; FROM ROUTD, ROUT, CUST; WHERE ROUT.ROUT0 = ROUTD.ROUTD1; AND CUST.CUST2 = ROUTD.ROUTD3; AND (ROUTD.ROUTD2 BETWEEN var_date1 AND var_date2; AND CUST.CUST2 = 1); INTO CURSOR rep_tmp REPORT FORM rep2 PREVIEW CASE THISFORM.CommandGroup1.Value = 3 SELECT ROUTD.ROUTD1,ROUTD.ROUTD2,ROUT.ROUT1,; ROUT.ROUT2, CUST.CUST1 , CUST.CUST2; FROM ROUTD, ROUT, CUST; WHERE ROUT.ROUT0 = ROUTD.ROUTD1; AND CUST.CUST2 = ROUTD.ROUTD3; AND (MONTH(routd.routd2) = 9; AND YEAR(routd.routd2) = 1999); INTO CURSOR rep_tmp REPORT FORM rep3 PREVIEW

  • 58

    CASE THISFORM.CommandGroup1.Value = 4 SELECT ROUTD.ROUTD1, ROUTD.ROUTD2, ROUTD.ROUTD3,; SUM(ROUT.ROUT2*ROUT.ROUT3) AS rout23; FROM ROUTD,ROUT; WHERE ROUT.ROUT0 = ROUTD.ROUTD1; GROUP BY ROUTD.ROUTD1; ORDER BY ROUTD.ROUTD1; INTO CURSOR rep_tmp REPORT FORM rep4 PREVIEW CASE THISFORM.CommandGroup1.Value = 5 SELECT ROUTD.ROUTD1, ROUTD.ROUTD2, ROUTD.ROUTD3,; SUM(ROUT.ROUT2*ROUT.ROUT3) AS rout23; FROM ROUTD, ROUT; WHERE ROUT.ROUT0 = ROUTD.ROUTD1; GROUP BY ROUTD.ROUTD1; HAVING ROUTD.ROUTD1 > 3; ORDER BY 4, ROUTD.ROUTD1; INTO CURSOR rep_tmp REPORT FORM rep4 PREVIEW CASE THISFORM.CommandGroup1.Value = 6 SELECT ROUTD.ROUTD1, ROUTD.ROUTD2, ROUTD.ROUTD3,; ROUTD.ROUTD5, CUST.CUST1, ROUT.ROUT1, ROUT.ROUT2; FROM ROUTD, ROUT, CUST; WHERE ROUT.ROUT0 = ROUTD.ROUTD1 AND; ROUTD.ROUTD3 = CUST.CUST2 AND; ROUT.ROUT3 = (SELECT MAX(ROUT.ROUT3) FROM ROUT); INTO CURSOR rep_tmp REPORT FORM rep6 PREVIEW CASE THISFORM.CommandGroup1.Value = 7 SELECT DISTINCT cust1, cust2; FROM CUST; WHERE cust2 NOT IN (SELECT ROUTD3 FROM ROUTD); INTO CURSOR rep_tmp REPORT FORM rep7 PREVIEW ENDCASE ! Visual FoxPro 6.0 var_date1 = {^1999-09-05} var_date2 = {^1999-09-12}

    2) CommandButton. Name clos_frm. Caption ( ) (. . 6.1);

    3) Click clos_frm: THISFORM.Release

    7. :

    1) File; 2) New;

  • 59

    3) Report File type; 4) New file; 5) Report Designer; 6) Label, Field, Line ( Report Controls),

    , .6.2;

    6.2

    7) rep1.frx.; 8) ,

    repo.scx ;

    9) , , :

    File; Open; Report Types of file ( ); frx-; ; Report Designer.

    8. :

    1) File;

  • 60

    2) New; 3) Report File type; 4) New file; 5) Report Designer; 6) Label, Field, Line ( Report Controls),

    , .6.3;

    6.3

    7) :

    Report; Title/Summary; Summary band; OK; ;

    Report; Variables; Variables var1; Value to store rout2; Calculate Sum;

  • 61

    OK; Field, Summary

    ( ) ; 8) rep2.frx.; 9) ,

    repo.scx ;

    10) , , , .

    9. : 1) File; 2) New; 3) Report File type; 4) New file; 5) Report Designer; 6) Label, Field, Line ( Report Controls),

    , .6.4;

    6.4 7)

    : Report;

  • 62

    Data Grouping; Group expression cust2; OK; ;

    8) rep3.frx.; 9) ,

    repo.scx ;

    10) , , , .

    10. :

    1) File; 2) New; 3) Report File type; 4) New file; 5) Report Designer; 6) Label, Field, Line ( Report Controls),

    , .6.5;

    6.5

    7) rep4.frx;

  • 63

    8) , repo.scx ;

    9) , , , .

    11. , : 1) File; 2) New; 3) Report File type; 4) New file; 5) Report Designer; 6) Label, Field, Line ( Report Controls),

    , .6.6; 7) rep6.frx; 8) ,

    repo.scx ;

    9) , , , .

    6.6

  • 64

    12. . , , . rep7.frx.

    13. :

    1) File; 2) Open; 3) Project Types of file ( ); 4) sk.pjx; 5) ; 6) Project Manager. 14.

    : 1) Menu; 2) sk Modify; 3) ; 4) Result Procedure; 5) Create; 6) :

    DO FORM repo 7) , Ctrl+W; 8) Menu Designer, . 15. (application), : 1) Project Manager Build; 2) Action Build Application; 3) ; 4) sk.app, ; 5) , Errors

    Project . , ;

    6) repo rep1, rep2, rep3, rep4, rep6, rep7, Documents Forms. , .

    16. : 1) Project Manager; 2) Do Program Visual FoxPro; 3) sk.app Do.

    , ;

    4) . . , ( .6.7). (, . 6.8);

  • 65

    5) , . Visual FoxPro.

    6.7

    6.8

  • 66

    6.3. (

    ) repo.scx, repo.sct, rep1.frx, rep1.frt, rep2.frx, rep2.frt, rep3.frx, rep3.frt, rep4.frx, rep4.frt, rep6.frx, rep6.frt, rep7.frx, rep7.frt.

    6.4. : 1) ; 2)

    ; 3) .

    1. Report Designer. Menu Designer.

    2. ( ) , Report Designer?

    3. , . Label. .

    4. , . Field. .

    5. , . Line. .

    6. , . Rectangle. .

    7. Title Summary . 8. . 9. ? 10. , (, ),

    ? ? 11. ?

  • 67

    7

    VISUAL FOXPRO ,

    VISUAL FOXPRO

    7.1.

    1. (, VFPLAB

    D) , .

    2. Visual FoxPro. 3. , Command

    SET DEFAULT TO D:\VFPLAB Enter. 4.

    British. 5. .

    7.2.

    1. , : 1) Command MODIFY COMMAND sk_main 2)

    CLOSE DATA ALL SET DATE TO BRITISH SET CENTURY ON SET DELETED ON SET TALK OFF SET REFRESH TO 1 SET CONSOLE OFF SET REPROCESS TO 1 SECONDS SET ESCAPE OFF SET STATUS BAR OFF SET MULTILOCKS ON *_screen.Caption = ' ' *_screen.WindowState = 2 *_screen.Closable = .F. *_screen.Icon = 'EARTH.ico' OPEN DATABASE SK SHARED DO sk.mpr

  • 68

    READ EVENTS CLEAR DLLS RELEASE ALL EXTENDED CLEAR ALL

    3) - Ctrl+W. 2. Visual FoxPro, : 1) File; 2) Open; 3) Project Types of file ( ); 4) ( sk.pjx); 5) ; 6) Project Manager Code; 7) Programs 8) Add; 9) sk_main.prg

    ; 10) ,

    Set Main.

    3. , : 1) Project Manager Other; 2) Menus sk; 3) Modify; 4) ,

    , IF MESSAGEBOX(' ?',4+32,[ ])=7 RETURN ENDIF *SET SYSMENU TO DEFAULT SET DELETED OFF CLEAR EVENTS

    5) (Ctrl+W); 6) , . 4. .

    : 1) Documents, Forms

    sk. , Modify; 2) View; 3) DataEnvironment;

  • 69

    4) DataEnvironment (, cust). Properties Exclusive , .F. - False ;

    5) DataEnvironment; 6) sk; 7) repo

    . 5. , Visual FoxPro

    (stand-alone application), : 1) Project Manager Build; 2) Action Build Executable; 3) ; 4) sk.exe, ; 5) , Errors

    Project . , , ;

    6) , sk.exe ;

    7) .

    ! File access is denied, , Cancel, Visual FoxPro, Command Visual FoxPro CLOSE ALL. .

    6. . sk_main.prg (*), :

    *_screen.Caption = ' ' *_screen.WindowState = 2 *_screen.Closable = .F. *_screen.Icon = 'EARTH.ico'

    , . , .

    7. (), : 1) Project Manager Other; 2) Other Files; 3) Add; 4) All Files,

    EARTH.ICO ; 5) Project,

    Project Info;

  • 70

    6) Project Information - Sk Project Attach icon, , EARTH.ICO ;

    7) Project Information - Sk; 8) , .

    , .. ! EARTH.ICO

    . . , , . sk_main.prg.

    8. ,

    (, , , ).

    9. , :

    1) , sk.exe; 2) , sk.exe; 3)

    ; 4)

    ; 5) . 10.

    (, , ) . :

    1) ; 2) ; 3) (

    ); 4)

    ( ); 5)

    ; 6) , ,

    ; 7) . 11.

    (, ) . 1) Visual FoxPro ; 2) sk ; 3) Properties Page1 PageFrame1;

  • 71

    4) Command Button. Caption ( ) (. . 7.1);

    5) Click : Requery('dgvr') THISFORM.PageFrame1.Page1.Grid1.Refresh

    7.1

    6) ; 7) ; 8) ; 9) ; 10)

    ;

    11) ; 12) Visual FoxPro sk ; 13) View; 14) DataEnvironment; 15) rout,

    Properties BufferModeOverride 0 None;

  • 72

    16) DataEnvironment ; 17) Click write,

    Page2 PageFrame2. (*)

    =TABLEUPDATE(.T.,.T.,'rout') *=TABLEUPDATE(.T.,.T.,'rout')

    18) Click del2 Page1 PageFrame2. (*)

    =TABLEUPDATE(.T.,.T.,'rout') *=TABLEUPDATE(.T.,.T.,'rout')

    19) ; 20) ; 21)

    ; 22)

    ( ). . ( );

    23) . 12.

    , . .

    7.3. (

    ) : sk.pjx, sk.pjt, sk.scx, sk.pjt.

    7.4. : 1) ; 2) , stand-alone application 3) ,

    .

  • 73

    1. stand-alone application? 2. stand-alone

    application? 3. File access is denied? 4. stand-alone application? 5. ()? 6. Refresh. 7. MESSAGEBOX. 8. TABLEUPDATE. 9. Requery. 10. CLOSE DATA ALL. 11. SET DATE TO BRITISH. 12. SET CENTURY ON. 13. SET DELETED ON. 14. SET TALK OFF. 15. SET REFRESH TO 1. 16. SET CONSOLE OFF. 17. SET REPROCESS TO 1 SECONDS. 18. SET ESCAPE OFF. 19. SET STATUS BAR OFF. 20. SET MULTILOCKS ON. 21. READ EVENTS. 22. CLEAR DLLS. 23. RELEASE ALL EXTENDED. 24. CLEAR ALL. 25. Caption. 26. WindowState. 27. Closable. 28. Icon. 29. BufferModeOverride. 30. OPEN DATABASE SK SHARED. 31.

    ? 32.

    ?

  • 74

    1. . Visual FoxPro 3.0 Windows. .:, 1996. 320 . 2. - ., ., . . :

    . . .: "", 2004. 1088 . 3. ., . Microsoft Visual Foxpro 3.0.

    . : , 1995. 336 . 4. . SQL. .: , 1996. 375 . 5. , . . : . . 6- .

    .: , 1998. 784 . 6. . ., . ., . . Visual Foxpro

    . 3.0 Windows 95. .: , 1995. 512 . 7. ., ., . FoxPro

    Windows . .:- BHV, 1995. 458 . 8. . . . .:

    , 2002. 800 . 9. ., ., . : ,

    . ., 2- .: . . .: "", 2001. 1120 .

    10. . . 9- . .: , 2005. 859 .

    11. . . Visual FoxPro 8.0. . .: +, .: , .: , 2004. 464 .

    12. ., . Visual FoxPro: . .:."Pinter FoxPro Letter": ..".",1996. 451 .

    13. ., . : , . 5- ., . .: . . .: -, 2004. 1040 .

    14. . SQL . .: "", 2004. 442 .

    15. . SQL. 10 . 3- : . . .: "", 2005. 288 .

  • ..................................................................................................................... 3

    1. VISUAL FOXPRO............. 4

    2. SQL,

    ........................................................... 16

    3. (view) ................... 29

    4.

    VISUAL FOXPRO ................................................. 33

    5. (MENU

    DESIGNER, PROJECT MANAGER) VISUAL FOXPRO ................................... 48

    6. (REPORT

    DESIGNER) VISUAL FOXPRO.......................................................................... 55

    7. VISUAL FOXPRO

    ,

    VISUAL FOXPRO........................................................... 67

    ........................................................................................................ 74

  • 7.050201 , 7.050206

    ..

    ..

    2006 ., . 12

    00.00.06. 60 84/16. . 2. . New Roman Times. . . . 4,8. .-. . 6,0. 50 . . . .

    , 61002, , , . , 21

    116 10.07.2000 .

    61002, , .. , 21