Добавил:
Tushkan
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз:
Предмет:
Файл:БД книги 2 / материалы по FoxPro / GL3
.PAS3. ђЂЃЋ’Ђ…Њ ‘ ЃЂ‡ЂЊ€ „ЂЌЌ›•
‚ ¤ ®© Ј« ўҐ ўл Ї®«гзЁвҐ ¤Ґв «мго Ёд®а¬ жЁо, Ґ®Ўе®¤Ё¬го
¤«п ЁбЇ®«м§®ў Ёп ў Ѓ„ б«®¦ле Ё¤ҐЄбле ўла ¦ҐЁ© Ё дЁ«мва®ў,
¤«п бҐа쥧®© Їа ЄвЁЄЁ Ї®ЁбЄ ў Ѓ„, 宦¤ҐЁп зЁб«®ўле е а ЄвҐаЁбвЁЄ,
б®авЁа®ўЄЁ, г§ ҐвҐ Є®¬ ¤л ®Ўа Ў®вЄЁ Ѓ„. ‚л гзЁвҐбм ᮧ¤ ў вм Ї®«п
ЇаЁ¬Ґз Ё©, а §¬Ґал Є®в®але ў ®в«ЁзЁҐ ®в ®Ўлзле бЁ¬ў®«мле Ї®«Ґ©
¬®Јгв Ё§¬Ґпвмбп, г§ ҐвҐ, Є Є ЇҐаҐЁ¬Ґ®ўлў вм, бвЁа вм, Є®ЇЁа®ў вм,
гЇ«®впвм Ѓ„, ®бгйҐбвў«пвм Ёе ў§ Ё¬®¤Ґ©бвўЁҐ.
ќв® Ї®б«Ґ¤пп Ј« ў , Ј¤Ґ Ё§гз Ґвбп ®ЎйЁ© ¬ вҐаЁ « ¤«п п§лЄ®ў
CLIPPER Ё FOXPRO. ‚ иЁ § Ёп ў ®Ў« бвЁ ЁбЇ®«м§®ў Ёп Ѓ„ Ўг¤гв
а биЁаҐл ў Ї®б«Ґ¤гойЁе Ј« ў е.
3.1. Џ®«гз Ґ¬ бЇа ў®зго Ёд®а¬ жЁо ® Ў § е ¤ ле
‘Їа ў®зго Ёд®а¬ жЁо ¬®¦® а §¤Ґ«Ёвм 3 Є ⥣®аЁЁ: Ёд®а¬ жЁп
® ¬®¦Ґб⢥ д ©«®ў Ё Ёе б®бв®пЁЁ - в Є п, Є Є ў Є в «®Ј е;
Ёд®а¬ жЁп ® Є®ЄаҐв®© Ў §Ґ ¤ ле (Ѓ„); Ёд®а¬ жЁп ®Ў н«Ґ¬Ґв е
Ѓ„. Ќ 祬 б дгЄжЁЁ Adir(), ў®§ўа й о饩 зЁб«® д ©«®ў ў ⥪г饬
Є в «®ЈҐ Ё 5 ўҐЄв®а®ў (зҐаҐ§ Ї а ¬Ґвал): ўҐЄв®а Ё¬Ґ д ©«®ў,
ўҐЄв®а а §¬Ґа®ў д ©«®ў, ўҐЄв®а ¤ в ᮧ¤ Ёп, ўҐЄв®а ўаҐ¬Ґ ᮧ¤ Ёп,
ўҐЄв®а ваЁЎгв®ў д ©«®ў. „«п Ї®«гзҐЁп Ёд®а¬ жЁЁ ® Ї®¤¬®¦Ґб⢥
д ©«®ў § ¤ ов аЈг¬Ґв - бЁ¬ў®«мго ¬ бЄг < Ў«® Ё¬Ґ>. Ќ ЇаЁ¬Ґа,
и Ў«® "*.dbf" Ї®§ў®«пҐв Ї®«гзЁвм ᢥ¤ҐЁп ® Ў § е ¤ ле.
‚ п§лЄҐ CLIPPER гЄ § лҐ ўҐЄв®ал ЇаҐ¤бв ў«Ґл ®в¤Ґ«мл¬Ё
¬ ббЁў ¬Ё <Њ б1> - <Њ б5>:
Adir(< Ў«® Ё¬Ґ>,<Њ б1>,<Њ б2>,<Њ б3>,<Њ б4>,<Њ б5>).
ЌЁ ®¤Ё аЈг¬Ґв Ґ пў«пҐвбп ®Ўп§ ⥫мл¬. ЏаЁ Їа®ЇгбЄҐ аЈг¬Ґв
®бв ў«п©вҐ § Їпвго. Њ ббЁўл ¤® ЇаҐ¤ў аЁвҐ«м® ®ЇЁб вм.
ЏаЁ¬Ґа 3.1. ‚뢥¤Ґ¬ Ё¬Ґ Ё ¤ вл ᮧ¤ Ёп Ѓ„ ⥪г饣® Є в «®Ј :
PRIVATE n:= Adir("*.dbf")
PRIVATE Name[n], Dat[n], k:=0, i
Adir("*.dbf", Name, ,Dat) && ‡ Ї®«пҐ¬ ¬ ббЁўл Ёд®а¬ жЁҐ© ® Ѓ„
FOR i = 1 TO n
? Name[i], Dat[i] && ‚лў®¤ Ё¬ҐЁ Ё ¤ вл ᮧ¤ Ёп Ѓ„
ENDFOR
‚ FOXPRO ўлиҐгЄ § лҐ 5 ўҐЄв®а®ў ЇаҐ¤бв ў«Ґл бв®«Ўж ¬Ё
¤ўг¬Ґа®Ј® ¬ ббЁў <Њ б>, Є®в®ал© Ї®а®¦¤ Ґвбп дгЄжЁҐ© Adir():
Adir (<Њ б>,< Ў«® Ё¬Ґ>); Ё¦Ґ ¤ ў аЁ в ¤«п FOXPRO, Ґ
вॡгойЁ© ®ЇЁб Ёп ¬ ббЁў .
n = Adir (BD, "*.dbf") && Ў«® - Ї а ¬Ґва Ґ®Ўп§ ⥫мл© Ё
FOR i = 1 TO n && ЇЁиҐвбп 2 ¬Ґб⥠ў ®в«ЁзЁҐ ®в CLIPPER
? BD[i,1], BD[i,3] && 1-© бв®«ЎҐж - Ё¬Ґ , 3-© - ¤ вл ᮧ¤ Ёп
ENDFOR
”гЄжЁп Afields() ў®§ўа й Ґв зЁб«® Ї®«Ґ© ЄвЁў®© Ѓ„ Ё 4
ўҐЄв®а (зҐаҐ§ Ї а ¬Ґвал): ўҐЄв®а Ё¬Ґ Ї®«Ґ©, ўҐЄв®а Ёе вЁЇ®ў, ўҐЄв®а
а §¬Ґа®ў Ї®«Ґ© Ё ўҐЄв®а Є®«ЁзҐбвў ¤ҐбпвЁзле § Є®ў (¤«п Ї®«Ґ© вЁЇ
"N"). ‚ п§лЄҐ CLIPPER гЄ § лҐ ўҐЄв®ал ЇаҐ¤бв ў«Ґл ¬ ббЁў ¬Ё
<Њ б1> - <Њ б4>, ¤ў ЇҐаўле - бЁ¬ў®«млҐ, Ї®б«Ґ¤ЁҐ - зЁб«®ўлҐ:
Afields (<Њ б1>,<Њ б2>,<Њ б3>,<Њ б4>).
ЌЁ ®¤Ё аЈг¬Ґв ®Ўп§ ⥫мл¬ Ґ пў«пҐвбп, ¬ ббЁўл ¤® ®ЇЁблў вм.
ЏаЁ¬Ґа 3.2. ‚뢥¤Ґ¬ §ў Ёп Ё вЁЇл Ї®«Ґ© Ѓ„ DETI (Ї. 2.2):
USE Deti
PRIVATE n:=Afields(), i
PRIVATE Name[n], Tip[n]
Afields (Name, Tip) && …б«Ё ®ЇгйҐ Є®Ґж бЇЁбЄ , § ЇпвлҐ
FOR i = 1 TO n && ў Є®жҐ ¬®¦® Ґ ®бв ў«пвм
? Name[i], Tip[i]
ENDFOR
‚ FOXPRO ўлиҐгЄ § лҐ ўҐЄв®ал ЇаҐ¤бв ў«Ґл бв®«Ўж ¬Ё ¤ўг¬Ґа®Ј®
¬ ббЁў <Њ б>, Ї®а®¦¤ Ґ¬®Ј® дгЄжЁҐ© Afields. ќв® ҐҐ Ґ¤Ёб⢥л©
аЈг¬Ґв. Њ ббЁў <Њ б> ®ЇЁблў вм Ґ ¤®. ЌЁ¦Ґ ЇаЁўҐ¤Ґ ў аЁ в ¤«п
FOXPRO:
n = Afields(Struc) && Џ®а®¦¤ Ґвбп ¬ ббЁў Struc
FOR i = 1 TO n
? Struc[i,1], Struc[i,2] && 1-© бв®«ЎҐж - Ё¬Ґ , 2-© - вЁЇл
ENDFOR
”гЄжЁп File ("<€¬пF>"), Ј¤Ґ <€¬пF> - Ё¬п д ©« (®Ўп§ вҐ«м® б
а биЁаҐЁҐ¬ Ё, ў®§¬®¦®, б гЄ § ЁҐ¬ ЇгвЁ Є д ©«г) Їа®ўҐапҐв
бгйҐбвў®ў ЁҐ д ©« «оЎ®Ј® вЁЇ . „®ЇгбЄ Ґвбп аЈг¬Ґв ў ўЁ¤Ґ бЁ¬ў®«м®©
ЇҐаҐ¬Ґ®© Ё«Ё ўла ¦ҐЁп, ЇаЁ¬Ґа, бЁ¬ў®«м®© ¬ бЄЁ (б¬. Ї. 1.4).
”гЄжЁп ў®§ўа й Ґв .T., Ґб«Ё гЄ § л© д ©« Ё«Ё д ©«, Ё¬п Є®в®а®Ј®
㤮ў«Ґвў®апҐв ¬ бЄҐ, бгйҐбвўгҐв ў ⥪г饬 Є в «®ЈҐ Ё«Ё гЄ § ®¬
ЇгвЁ, Ё зҐ ў®§ўа й Ґв .F.. ‚® Ё§ЎҐ¦ ЁҐ Ґ¤®а §г¬ҐЁ© ЇаҐ¤ў ап©вҐ
ᮧ¤ ЁҐ д ©« Їа®ўҐаЄ®© бгйҐбвў®ў Ёп ®¤®Ё¬Ґ®Ј® д ©« б Ї®¬®ймо
дгЄжЁЁ File().
”гЄжЁп DBF() ¤«п ЄвЁў®© Ѓ„ ў®§ўа й Ґв ў ўЁ¤Ґ бЁ¬ў®«м®©
бва®ЄЁ Ё¬п (ў п§лЄҐ FOXPRO) Ё«Ё «Ё б (ў п§лЄҐ CLIPPER; ў ®вбгвбвўЁҐ
«Ё б - Ё¬п) ЄвЁў®© Ў §л ¤ ле. …б«Ё ®вЄалв®© Ѓ„ Ґв,
ў®§ўа й Ґвбп Їгбв п бва®Є . ‚ п§лЄҐ FOXPRO дгЄжЁп ¬®¦Ґв Ё¬Ґвм ўЁ¤
DBF(<ЋЎ« бвм>), в®Ј¤ ® ЇаЁ¬ҐЁ¬ Є «оЎ®© Ё§ ®вЄалвле Ѓ„.
Ђ «®ЈЁз®Ґ ЇаЁ¬ҐҐЁҐ ў п§лЄҐ CLIPPER Ё¬ҐҐв дгЄжЁп Alias (<ЋЎ« бвм>).
—Ёб«® § ЇЁбҐ© ў Ѓ„ б гзҐв®¬ § ЇЁбҐ©, Ї®¬ҐзҐле г¤ «ҐЁҐ,
ў®§ўа й Ґв дгЄжЁп Reccount(), а §¬Ґа § ЇЁбЁ ў Ў ©в е - Recsize(),
а §¬Ґа § Ј®«®ўЄ Ѓ„ ў Ў ©в е - Header(), зЁб«® Ї®«Ґ© ў бвагЄвгаҐ
Ѓ„ - Fcount(), ®¬Ґа ⥪г饩 § ЇЁбЁ - Recno(). ‡ Ї®¬ЁвҐ, зв® Recno()
ў®§ўа й Ґв 0, Ґб«Ё ў ⥪г饩 ®Ў« бвЁ Ґв ®вЄалв®© Ѓ„, Ё -1, Ґб«Ё
®вЄалв п ў Ґ© Ѓ„ Ґ ᮤҐа¦Ёв § ЇЁбҐ©. ‚ᥠнвЁ дгЄжЁЁ ў FOXPRO ¬®Јгв
Ё¬Ґвм аЈг¬Ґв <ЋЎ« бвм>, в®Ј¤ Ёе ¬®¦® ЇаЁ¬Ґпвм Ґ в®«мЄ® Є
ЄвЁў®©, ® Ё Є «оЎ®© ®вЄалв®© Ѓ„. ‚ CLIPPER, зв®Ўл Ї®«гзЁвм в®в
¦Ґ нд䥪в, ¤® гв®зпвм дгЄжЁо «Ё ᮬ (Ё¬ҐҐ¬ Ѓ„, Ґб«Ё Ґв «Ё б ):
<Ђ«Ё б Ё«Ё Ё¬п Ѓ„> -> ( <”гЄжЁп> ).
ќв® Їа ўЁ«® п§лЄ CLIPPER ЇаЁ¬ҐЁ¬® Ё Є б«®¦л¬ ўла ¦ҐЁп¬,
ᮤҐа¦ йЁ¬ гЄ § лҐ дгЄжЁЁ, ўла ¦ҐЁҐ в Є¦Ґ § Є«оз ов ў бЄ®ЎЄЁ.
„®ЇгбЄ Ґвбп § ¬Ґ «Ё б § Є«озҐл¬ ў бЄ®ЎЄЁ ўла ¦ҐЁҐ¬, ¤ ойЁ¬
®¬Ґа а Ў®зҐ© ®Ў« бвЁ.
”гЄжЁЁ Key(<‚лаN>) (FOXPRO) Ё IndexKey(<‚лаN>) (CLIPPER)
ў®§ўа й ов ў ўЁ¤Ґ бва®ЄЁ Ё¤ҐЄб®Ґ ўла ¦ҐЁҐ, Ј¤Ґ <‚лаN> - ®¬Ґа
Ё¤ҐЄб .
”гЄжЁп Found() ў®§ўа й Ґв § 票Ґ .T., Ґб«Ё ЇаҐ¤л¤гйЁ© Єв
Ї®ЁбЄ (б¬. Ї. 3.4) § ўҐаиЁ«бп гбЇҐи®. Њл Ј®ў®аЁ¬ Ґ®Ўп§ вҐ«м® ®
Є®¬ ¤Ґ Ї®ЁбЄ , ў ҐЄ®в®але б«гз пе Ї®ЁбЄ ўлЇ®«пҐвбп Ґпў®.
”гЄжЁп Deleted() ў®§ўа й Ґв .T., Ґб«Ё ⥪гй п § ЇЁбм Ї®¬ҐзҐ
г¤ «ҐЁҐ. ‚ FOXPRO нвЁ дгЄжЁЁ ¬®Јгв Ё¬Ґвм аЈг¬Ґв <ЋЎ« бвм>, ў
п§лЄҐ CLIPPER Ёе ¬®¦® гв®зпвм «Ё ᮬ, Є Є Ё б«Ґ¤гойЁҐ Ё¦Ґ дгЄжЁЁ.
‘ Ї®«п¬Ё § ЇЁбЁ ¬®¦® а Ў®в вм, Є Є б н«Ґ¬Ґв ¬Ё ¬ ббЁў , Ї®
®¬Ґаг <Ќ®¬> Ї®«п ў бвагЄвгॠЃ„. ќвг ў®§¬®¦®бвм ў п§лЄҐ CLIPPER
®ЎҐбЇҐзЁў ов дгЄжЁЁ FieldName(<Ќ®¬>) - ў®§ўа й Ґв Ё¬п Ї®«п Ѓ„,
FieldGet(<Ќ®¬>) - ў®§ўа й Ґв § 票Ґ Ї®«п ⥪г饩 § ЇЁбЁ,
FieldPut(<Ќ®¬>,<‚ла>) - Ї®¬Ґй Ґв § 票Ґ <‚ла> ў гЄ § ®Ґ Ї®«Ґ Ѓ„.
Ќ Їа®вЁў, дгЄжЁп FieldPos(<‚лаC>) ў®§ўа й Ґв Ї®ап¤Є®ўл© ®¬Ґа Ї®«п,
Ё¬п <‚лаC> Є®в®а®Ј® § ¤ ®, ЇаЁ¬Ґа: FieldPos("Pol").
‚ FOXPRO дгЄжЁп Field(<Ќ®¬>,<ЋЎ« бвм>) ў®§ўа й Ґв Ё¬п Ї®«п Ѓ„,
Ґ®Ўп§ ⥫мл© ўв®а®© Ї а ¬Ґва Ї®§ў®«пҐв а Ў®в вм б «оЎ®© Ё§ ®вЄалвле
Ѓ„. …б«Ё Ї®«п б в ЄЁ¬ ®¬Ґа®¬ Ґв, дгЄжЁп ў®§ўа й Ґв Їгбвго бва®Єг.
”гЄжЁп Diskspace() ў®§ўа й Ґв а §¬Ґа бў®Ў®¤®Ј® Їа®бва бвў
(ў Ў ©в е) ⥪г饬 ¤ЁбЄҐ. ‚ п§лЄҐ CLIPPER ў®§¬®¦Ґ аЈг¬Ґв: 1
¤«п ¤ЁбЄ "A", 2 - ¤«п ¤ЁбЄ "B" Ё в.¤. (¤ЁбЄ Ґ ®Ўп§ ⥫м®
⥪гйЁ©).
‘гйҐбвўгов Ё ¤агЈЁҐ бЇа ў®злҐ дгЄжЁЁ (б¬. ЇаЁ«®¦ҐЁп 1, ). ‚
з бв®бвЁ, ў FOXPRO Ё¬ҐҐвбп Ў®«м讥 зЁб«® дгЄжЁ© ўЁ¤ SYS(<Ќ®¬Ґа>
...), ў®§ўа й ойЁе а §®®Ўа §го Ёд®а¬ жЁо ў бЁ¬ў®«м®¬ ўЁ¤Ґ.
‡ ¤ ЁҐ 3.1. Џ®«гзЁвҐ ¤ўг¬п а §л¬Ё бЇ®б®Ў ¬Ё а §¬Ґа
бгйҐбвўго饩 Ѓ„: Ї® Ёд®а¬ жЁЁ Adir() Ё зҐаҐ§ дгЄжЁЁ, ¤ ойЁҐ
а §¬Ґал б®бв ўле ҐҐ н«Ґ¬Ґв®ў.
3.2. ЏаЁ¬ҐпҐ¬ б«®¦лҐ Ё¤ҐЄблҐ ўла ¦ҐЁп
”гЄжЁЁ ў Є«оз е Ё¤ҐЄб . ‚ Ё¤ҐЄбле ўла ¦ҐЁпе з бв®
ЁбЇ®«м§говбп дгЄжЁЁ Upper Ё Trim. ”гЄжЁп Upper ЇаЁў®¤Ёв
ЇаҐ¤бв ў«ҐЁҐ ЎгЄў ў бЁ¬ў®«м®¬ Є«озҐ Є "бв ¤ авг" - ўҐа奬г
ॣЁбваг (Ґ § Ўлў ©вҐ, зв® Є®¤л бва®зле Ё Їа®ЇЁбле ЎгЄў
а §«Ёз овбп). ’Ґ¬ б ¬л¬ ¬л Ё§Ў ў«пҐ¬бп ®в ў«ЁпЁп ҐЎаҐ¦®бвЁ ў
§ Ї®«ҐЁЁ нвЁе Ї®«Ґ© Ё Ёле д Єв®а®ў. Ќ ЇаЁ¬Ґа, д ¬Ё«ЁЁ DeVilliers,
O'Connor Ё Ђ¤Ґ«мб®-‚Ґ«мбЄЁ© § ©¬гв ў Ё¤ҐЄбҐ Ї®«®¦ҐЁҐ б®Ј« б®
«д ўЁвг.
”гЄжЁп Trim, ЁбЄ«оз п Є®жҐўлҐ Їа®ЎҐ«л ў Є«озҐ Ё«Ё
б®бв ў«по饩 Є«оз , Ї®§ў®«пҐв нЄ®®¬Ёвм Ї ¬пвм, ®вў®¤Ё¬го ¤«п
Ё¤ҐЄб . ‚ Є«оз е Ё¤ҐЄб ЇаЁ¬Ґпов Ё Ї®«м§®ў ⥫мбЄЁҐ дгЄжЁЁ. ‚
[1] ЇаЁўҐ¤Ґ ЇаЁ¬Ґа дгЄжЁЁ, Ї®Є §лў о饩 Їа®жҐв Їа®Ё¤ҐЄбЁа®ў ле
§ ЇЁбҐ© ў Їа®жҐбᥠЁ¤ҐЄбЁа®ў Ёп Ў®«миЁе Ѓ„. Џ®б«Ґ Ё¤ҐЄбЁа®ў Ёп
нв дгЄжЁп ЁбЄ«оз Ґвбп Ё§ б®бв ў Є«оз .
‘®бв ўлҐ Є«озЁ. …б«Ё ЁбЇ®«м§®ў ЁҐ ®¤®Ј® Ї®«п Ѓ„ ў Ё¤ҐЄбҐ
Ґ ᮧ¤ Ґв ¤®бв в®з®© гЇ®а冷祮бвЁ, ЇаЁ¬Ґпов Є«озЁ, ᮤҐа¦ йЁҐ
Ў®«миҐ Ї®«Ґ©. ‡¤Ґбм вॡ®ў Ёп Ёб室пв ®в § ¤ з. Ќ ЇаЁ¬Ґа, Ѓ„
"‘в㤥в" ¬®¦Ґв Ўлвм Їа®Ё¤ҐЄбЁа®ў Ї® Ї®«о "” Єг«мвҐв". „«п
ҐЄ®в®а®© § ¤ зЁ нв®Ј® ¤®бв в®з®, в®Ј¤ Є Є ¤«п ¤агЈ®© - ¤® ўҐбвЁ
гЇ®а冷祮бвм Ї® Ї®«о "Љгаб" ў Ї®¤¬®¦Ґбвў® § ЇЁбҐ© Є ¦¤®Ј®
®в¤Ґ«м®Ј® д Єг«мвҐв . Џ®«Ґ "Љгаб" ЇаЁ н⮬ Ё¬ҐҐв Ї®¤зЁҐго а®«м,
Ї®«Ґ д Єг«мвҐв - Ј« ўго. …б«Ё Ї®¬Ґпвм Ёе а®«Ё ў Ё¤ҐЄбҐ, в®
Їа®вЁў, Ї®¤¬®¦Ґбвў ўбҐе § ЇЁбҐ© ¤«п Є ¦¤®Ј® ®в¤Ґ«м®Ј® Єгаб
ўг§ Ўг¤гв а бб®авЁа®ў л Ї® д Єг«мвҐв ¬. ѓ« ў®Ґ Ї®«Ґ ¤®«¦®
гЄ §лў вмбп ў з «Ґ Ё¤ҐЄб®Ј® ўла ¦ҐЁп, Ї®¤зЁҐлҐ § Ё¬,
ў Ї®ап¤ЄҐ гЎлў Ёп бв аиЁбвў .
ЏаЁ¬Ґа 3.3. Џгбвм ў Ѓ„ Kadr Ї®«Ґ Famil ᮤҐа¦Ёв д ¬Ё«ЁЁ
Ё ЁЁжЁ «л б®ваг¤ЁЄ®ў, Pol - гЄ §лў Ґв ҐЈ® Ї®« ("Њ“†","†…Ќ"),
Ї®«Ґ Otdel - ®в¤Ґ«, Ј¤Ґ ® а Ў®в Ґв. ‚ᥠваЁ Ї®«п - бЁ¬ў®«млҐ.
Dtr (¤ в ஦¤ҐЁп) - Ї®«Ґ вЁЇ "„ в ", Ї®«Ґ Stag (бв ¦ а Ў®вл) -
зЁб«®ў®Ґ. ЌҐ®Ўе®¤Ё¬® гЇ®а冷зЁвм Ѓ„ Ї® ®в¤Ґ« ¬, ў а ¬Є е Є ¦¤®Ј®
®в¤Ґ« - Ї® Ї®«г б®ваг¤ЁЄ®ў, ў а ¬Є е Ї®«гзҐле ЈагЇЇ § ЇЁбҐ© -
Ї® бв ¦г а Ў®вл Ё ўлўҐбвЁ бЇЁб®Є б®ваг¤ЁЄ®ў.
USE Kadr
INDEX ON Otdel + Upper(Pol) + Str(Stag,2) TO OPStag
LIST Famil, Dtr, Stag
„«п Ї®«г票п б®бв ў®Ј® Ё¤ҐЄб®Ј® ўла ¦ҐЁп § зҐЁп Ї®«Ґ©
ЇаЁў®¤пв Є ®¤®¬г вЁЇг (®Ўлз® - Є бЁ¬ў®«м®¬г, Ё§аҐ¤Є - зЁб«®ў®¬г).
‚ 襬 ЇаЁ¬ҐаҐ ЇаҐ®Ўа §гҐвбп § 票Ґ Ї®«п Stag. Ќ ап¤г б®
§ Є®¬ "+" ¬®¦Ґв ЁбЇ®«м§®ў вмбп § Є "-", ®Ў®§ з ойЁ© а §®ўЁ¤®бвм
Є®Є ⥠樨 бЁ¬ў®«мле бва®Є.
‘®§¤ л© ¬Ё Ё¤ҐЄб OPStag ¬®¦Ґв ЁбЇ®«м§®ў вмбп ў § ¤ з е,
Ј¤Ґ вॡгҐвбп гЇ®а冷祮бвм «Ёим Ї® ®в¤Ґ« ¬, Ї® бв ¦г Ё«Ё Ї®«г
Ё бв ¦г Ґ г¦ . € зҐ Ј®ў®ап, Ё¤ҐЄб, ®б®ў л© «Ґў®¬
Ї®¤ўла ¦ҐЁЁ 㦥 бгйҐбвўго饣® Є«оз Ё¤ҐЄб , пў«пҐвбп Ё§«ЁиЁ¬.
ЌҐЇ®«лҐ Ё¤ҐЄбл. €¤ҐЄб, ᮧ¤ л© б ваЁЎг⮬ UNIQUE,
пў«пҐвбп з бвл¬ б«гз Ґ¬ ҐЇ®«®Ј® Ё¤ҐЄб . ‚ п§лЄҐ FOXPRO Ё ў ўҐабЁЁ
CLIPPER 5.02 Ё¬ҐҐвбп ў®§¬®¦®бвм ᮧ¤ Ёп ҐЇ®«ле Ё¤ҐЄб®ў Їг⥬
ўЄ«о票п FOR-гб«®ўЁп ў Є®¬ ¤г Ї®бв஥Ёп Ё¤ҐЄб . ‚ Ґ¬ Ўг¤гв
гзвҐл «Ёим § ЇЁбЁ, 㤮ў«Ґвў®апойЁҐ гЄ § ®¬г гб«®ўЁо.
ЏаЁ¬Ґа 3.4. ЋвЄа®Ґ¬ Ѓ„ Kadr Ё ᮧ¤ ¤Ё¬ ҐЇ®«л© Ё¤ҐЄб Otd
Ї® Ї®«о Otdel, ўЄ«озЁў ў Ё¤ҐЄб в®«мЄ® ¦ҐйЁ. ‚뢥¤Ґ¬ бЇЁб®Є.
* Џа®Ја ¬¬ Ї®Є §лў Ґв ў®§¬®¦®бвм ҐЇ®«ле Ё¤ҐЄб®ў ў CLIPPER 5.01
USE Kadr
INDEX ON Iif(Upper(Pol)="†…Ќ", Otdel + Str(Recno(),5),;
Replicate(" ",Len(Otdel)+5)) TO Otd UNIQUE
IF Upper(Pol) = "Њ“†" && Џа®ўҐаЄ з «м®© (ў Ё¤ҐЄбҐ) § ЇЁбЁ
SKIP && Џа®ЇгбЄ Ґ¤Ёб⢥®© ў®§¬®¦®© ў Ё¤ҐЄбҐ "¬г¦бЄ®©"§ ЇЁбЁ
ENDIF
LIST Famil, Otdel REST && ЂваЁЎгв REST ЇаҐЇпвбвўгҐв
&&ЇҐаҐгбв ®ўЄҐ гЄ § ⥫п з «мго § ЇЁбм
€в Є, ¬л гбв ®ўЁ«Ё ᮮ⢥вбвўЁҐ ¬Ґ¦¤г Є ¦¤®© "¬г¦бЄ®©" § ЇЁбмо
Ё ЁбЄгббвўҐл¬ Є«о箬, б®бв®пйЁ¬ Ё§ ®¤Ёе Їа®ЎҐ«®ў. Џ®бЄ®«мЄг
Ё¤ҐЄб Ё¬ҐҐв ваЁЎгв UNIQUE, «Ёим ®¤ в Є п § ЇЁбм Ўг¤Ґв ўЄ«озҐ
ў ҐЈ® (Ё«Ё Ё ®¤®©, Ґб«Ё ЇаҐ¤ЇаЁпвЁЁ б®Ўа «Ёбм ®¤Ё " ¬ §®ЄЁ"),
ЇаЁзҐ¬ ® ®Є ¦Ґвбп з «м®© ў Ё¤ҐЄбҐ. ‚ ¤ ®© § ¤ зҐ ¬л Ґ ¤®«¦л
в Є Ї®бвгЇ вм б ¦ҐйЁ ¬Ё, ¤ ¦Ґ Ґб«Ё ®Ё Ё§ ®¤®Ј® ®в¤Ґ« . €¬Ґ®
Ї®н⮬㠤®Ў ў«Ґ ў Є«оз ®¬Ґа § ЇЁбЁ: Otdel + Str(Recno(),5).
‡ 票Ґ Є«оз ў Є ¦¤®© "¦ҐбЄ®©" § ЇЁбЁ ⥯Ґам гЁЄ «м®, в.Ґ.
ваЁЎгв UNIQUE "®ЎҐ§ўаҐ¦Ґ".
€бЇ®«м§®ў ЁҐ ҐЇ®«ле Ё¤ҐЄб®ў, ®Ја ЁзЁў п ¬®¦Ґбвў®
¤®бвгЇле § ЇЁбҐ©, нЄ®®¬Ёв ўаҐ¬п Ё Ї®н⮬г пў«пҐвбп е®а®иҐ©
«мвҐа вЁў®© ЁбЇ®«м§®ў Ёо дЁ«мва®ў (б¬. Ё¦Ґ).
‡ ¤ ЁҐ 3.2. ‘®§¤ ©вҐ ¤«п Ѓ„ Kadr ҐЇ®«л© Ё¤ҐЄб Ї® 2 Ї®«п¬:
Otdel (бв а襥 Ї®«Ґ) Ё Famil, ўЄ«озЁў ў ҐЈ® в®«мЄ® б®ваг¤ЁЄ®ў-
¬г¦зЁ. ‚ ў ਠ⥠¤«п FOXPRO ўЄ«озЁвҐ FOR-гб«®ўЁҐ ў Є®¬ ¤г INDEX.
3.3. ”Ё«мвал. ‘вагЄвга Є®¬ ¤. ЋЎ« бвм ¤Ґ©бвўЁп
ЏаЁ а §кпᥨЁ н«Ґ¬Ґв®ў п§лЄ з бв® ЁбЇ®«м§гов вҐа¬Ё "Ї®
㬮«з Ёо". Ћ ®§ з Ґв, зв® Ґб«Ё ўлЎ®а в®Ј® Ё«Ё Ё®Ј® ०Ё¬ Ґ
ᤥ« ў Їа®Ја ¬¬Ґ, ०Ё¬ § з Ґвбп ўв®¬ вЁзҐбЄЁ, Ґб«Ё Є ЄЁҐ-
«ЁЎ® ваЁЎгвл Є®¬ ¤ Ё«Ё аЈг¬Ґвл дгЄжЁ© ®ЇгйҐл, ўлЎЁа Ґвбп
ҐЄ®в®ал© ў аЁ в ᮮ⢥вбвўгойЁе Ё¬ ¤Ґ©бвўЁ© - ¤Ґ©бвўЁп Ї® 㬮«з Ёо.
”Ё«мвал. — бв® ¤«п аҐиҐЁп § ¤ з ў Ў § е ¤ ле (Ѓ„) вॡгҐвбп
ўл¤Ґ«ҐЁҐ Ё ®Ўа Ў®вЄ ҐЄ®в®а®Ј® Ї®¤¬®¦Ґбвў § ЇЁбҐ©. ‚л ¬®¦ҐвҐ
ᤥ« вм "ҐўЁ¤Ё¬л¬Ё" Їа®зЁҐ § ЇЁбЁ, § зЁў дЁ«мва. ”Ё«мва
§ з Ґвбп, Є®Ј¤ Ѓ„ ЄвЁў , Ё ¤Ґ©бвўгҐв ¤® ҐҐ § ЄалвЁп Ё«Ё ¤®
ўлЄ«о票п дЁ«мва . Љ®¬ ¤ SET FILTER TO <‚лаL> § ¤ Ґв
гб«®ўЁҐ дЁ«мва жЁЁ <‚лаL>, Є®в®а®Ґ ¤®«¦® Ўлвм ЁбвЁ® «Ёим ¤«п
§ ЇЁбҐ© ®Ўа Ў влў Ґ¬®Ј® Ї®¤¬®¦Ґбвў . ЏаЁ ЇҐаҐЄ«о票Ё а Ў®зЁе
®Ў« б⥩ дЁ«мва б®еа пҐвбп; ¤агЈго Ѓ„ ҐЈ® ¤Ґ©бвўЁҐ Ґ
а бЇа®бва пҐвбп, ® Є ¦¤ п ®вЄалв п Ѓ„ ¬®¦Ґв Ё¬Ґвм бў®© дЁ«мва.
”Ё«мва зЁ Ґв ¤Ґ©бвў®ў вм Ї ® б « Ґ «оЎ®Ј® ЇҐаҐ¬ҐйҐЁп
гЄ § вҐ«п ў Ѓ„. ЋЎлз® нв® ®бгйҐбвў«пов Є®¬ ¤®© GO TOP, Є®в®а п
бв ўЁв гЄ § вҐ«м ЇҐаўго § ЇЁбм, 㤮ў«Ґвў®апойго гб«®ўЁо
дЁ«мва жЁЁ (GO BOTTOM бв ўЁв ҐЈ® Ї®б«Ґ¤оо в Єго § ЇЁбм).
Љ®¬ ¤ SET FILTER TO (ЎҐ§ аЈг¬Ґв ) ЇаҐЄа й Ґв ¤Ґ©бвўЁҐ дЁ«мва
ЄвЁў®© Ѓ„.
‚ FOXPRO дгЄжЁп FILTER (<ЋЎ« бвм>) ў®§ўа й Ґв ў ўЁ¤Ґ бва®ЄЁ
гб«®ўЁҐ дЁ«мва жЁЁ ¤«п гЄ § ®© а Ў®зҐ© ®Ў« бвЁ. …Ґ аЈг¬Ґв®¬ ¬®¦Ґв
Ўлвм ®¬Ґа ®Ў« бвЁ <‚лаN> Ё«Ё ҐҐ «Ё б <‚лаC>. ‚ п§лЄҐ CLIPPER в®в
¦Ґ १г«мв в ў®§ўа й Ґв дгЄжЁп DBFilter(), гв®з塞 п ЇаЁ
Ґ®Ўе®¤Ё¬®бвЁ «Ё ᮬ а Ў®зҐ© ®Ў« бвЁ:
<Ђ«Ё б> -> ( DBfilter() ).
ЏаЁ¬Ґа 3.5. ‚®ўм ®Ўа вЁ¬бп Є Ѓ„ Kadr (б¬. ЇаЁ¬Ґа 3.3).
) ЌҐ®Ўе®¤Ё¬® ўлўҐбвЁ бЇЁб®Є ¬г¦зЁ-б®ваг¤ЁЄ®ў б гЄ § ЁҐ¬ ®в¤Ґ« ,
ЁбЇ®«м§гп Є®¬ ¤г ўлў®¤ LIST. ‚뢥¤Ґ¬ Ё гб«®ўЁҐ дЁ«мва жЁЁ.
USE Kadr
SET FILTER TO Upper(Pol) =="Њ“†"
LIST Famil, Otdel && Љ®¬ ¤ LIST ®ЎҐбЇҐзЁў Ґв ¤ўЁ¦ҐЁҐ Ї® Ѓ„
S = DBFilter() && ‚ FOXPRO ¤® § ЇЁб вм S = Filter()
SET FILTER TO && ‚лЄ«о票Ґ дЁ«мва
? "“б«®ўЁҐ дЁ«мва : ", S && ‚лў®¤ гб«®ўЁп дЁ«мва жЁЁ
Ў) ‚뢥¤Ґ¬ бЇЁб®Є б®ваг¤ЁЄ®ў, ¤ҐвЁ Є®в®але (Ѓ„ Deti, б¬. ЇаЁ¬Ґа 2.6)
Ё¬Ґов ¤ вг ஦¤ҐЁп Ї®б«Ґ 31 ¤ҐЄ Ўап 1985 Ј. —в®Ўл бв аиЁ© ॡҐ®Є
б®ваг¤ЁЄ ®Є § «бп ЇҐаўл¬, Їа®Ё¤ҐЄбЁа㥬 Ѓ„ Deti Ї® б®бв ў®¬г
Є«озг TabNum + DTOS(Dtr): ¤ в ஦¤ҐЁп Dtr ЇаЁўҐ¤Ґ Є бЁ¬ў®«м®¬г
вЁЇг, Ї®«Ґ TabNum - бЁ¬ў®«м®Ґ. Џ®«Ґ, Ї® Є®в®а®¬г ®бгйҐбвў«пҐвбп
бўп§м Ѓ„, пў«пҐвбп бв аиЁ¬ ў Є«озҐ Ё¤ҐЄб (®Ўп§ ⥫쮥 вॡ®ў ЁҐ).
USE Deti
INDEX ON TabNum + DTOS(Dtr) TO TbDtr
SELECT 0
USE Kadr
SET FILTER TO Deti->Dtr > CTOD("12/31/85")
SET RELATION TO TabNum INTO Deti
LIST TabNum, Famil
‚ дЁ«мвॠ¬ вҐаЁбЄ®© Ѓ„ ¬®¦® гЄ §лў вм Ї®«п ¤®зҐаЁе Ѓ„ (Є
¬®¬Ґвг ҐЈ® ЁбЇ®«м§®ў Ёп бўп§м Ѓ„ ¤®«¦ Ўлвм гбв ®ў«Ґ ).
Џа®Ја ¬¬ § ¤ Ёп "Ў" гб«®¦пҐвбп, Ґб«Ё ¤® ўлпў«пвм Ґ Ў®«ҐҐ
Ї®§¤ЁҐ, ЇаҐ¤иҐбвўгойЁҐ ¤ ⥠¤Ё ஦¤ҐЁп. Ќг¦® ®Ўа вЁвм Ї®а冷Є
б«Ґ¤®ў Ёп ¤ҐвҐ© ®¤®Ј® б®ваг¤ЁЄ (¬« ¤иЁ© ॡҐ®Є - ЇҐаўл©) Ё ЇаЁ
н⮬ ЇаҐ¤®вўа вЁвм ўлў®¤ д ¬Ё«Ё© ЎҐ§¤Ґвле б®ваг¤ЁЄ®ў. „Ґ«® ў ⮬, зв®
ЇаЁ Ґгᯥ讬 Ї®ЁбЄҐ ў Ѓ„ Deti гЄ § ⥫м гбв ў«Ёў Ґвбп дЁЄвЁўго
§ ЇЁбм б Їгбвл¬ § 票Ґ¬ Ї®«п Dtr ( Ё¬ҐмиЁ¬). €бЇ®«м§г©вҐ ў дЁ«мваҐ
дгЄжЁо Empty().
Њл Ґ Ї®§ Ў®вЁ«Ёбм ® з «м®¬ ЇҐаҐ¬ҐйҐЁЁ гЄ § ⥫п, в Є Є Є
Є®¬ ¤ LIST ¤Ґ« Ґв нв® б ¬ , Є Є Ё ¤агЈЁҐ Є®¬ ¤л б Ґпўл¬ жЁЄ«®¬.
‡ Ї®¬Ё ЁҐ гб«®ўЁп дЁ«мва жЁЁ Ё¬ҐҐв б¬лб«, Ґб«Ё ®® б«®¦®Ґ Ё ў®ўм
¬®¦Ґв Ї®вॡ®ў вмбп, е®вп Ўл Ё ў ¤агЈ®© Ѓ„ (ҐЈ® § з ов Ї®б«Ґ ®вЄалвЁп
Ѓ„ Є®¬ ¤®© SET FILTER TO &S, Ј¤Ґ & - § Є ¬ Єа®Ї®¤бв ®ўЄЁ).
Љ®¬ ¤ SET DELETED ON ॠ«Ё§гҐв з бвл© б«гз © дЁ«мва жЁЁ
§ ЇЁбҐ© - § ЇЁбЁ, Ї®¬ҐзҐлҐ г¤ «ҐЁҐ, бв ®ўпвбп ҐўЁ¤Ё¬л¬Ё.
„®бвгЇ Є Ё¬ ў®ббв ў«Ёў Ґвбп, Ґб«Ё 㦮, Є®¬ ¤®© SET DELETED OFF.
Ћ дЁ«мва е ў п§лЄҐ FOXPRO б¬. ¤®Ї®«ЁвҐ«м® Ї. !!!!!.
‘вагЄвга Є®¬ ¤ Ѓ„. Њ®ЈЁҐ Є®¬ ¤л, а Ў®в ойЁҐ б Ѓ„, ᮤҐа¦ в
Ґпўл© жЁЄ«, ®Ўа Ў влў п ў Ґ¬ ҐЄ®в®а®Ґ ¬®¦Ґбвў® § ЇЁбҐ©.
„«п ®ЇаҐ¤Ґ«ҐЁп а ¬®Є ¬®¦Ґбвў § ¤ ов ®Ў« бвм ¤Ґ©бвўЁп ("Ја Ёжл"
Ї® вҐа¬Ё®«®ЈЁЁ FOXPRO; нв®Ј® вҐа¬Ё ¬л Ё Ўг¤Ґ¬, Є Є Їа ўЁ«®,
ЇаЁ¤Ґа¦Ёў вмбп), ®ЇаҐ¤Ґ«пп ҐҐ ®¤Ё¬ Ё§ б«Ґ¤гойЁе ваЁЎгв®ў Є®¬ ¤л:
RECORD <Ќ®¬Ґа> - ®Ўа Ў влў Ґвбп Ґ¤Ёб⢥ п § ЇЁбм, ЇҐаҐ¤ нвЁ¬
Ґпў® ўлЇ®«пҐвбп Є®¬ ¤ GO <Ќ®¬Ґа> ;
NEXT <Љ®«> - ®Ўа Ў влў Ґвбп <Љ®«> § ЇЁбҐ©, зЁ п б ⥪г饩;
REST - ®Ўа Ў влў овбп § ЇЁбЁ, зЁ п б ⥪г饩 Ё ¤® Є®ж ;
ALL - ®Ўа Ў влў Ґвбп ўҐбм д ©«. ЏаЁ¬ҐҐЁҐ дЁ«мва ў®бЁв Є®а४⨢л
ў б¬лб« нв®Ј® Ё ¤ўге ЇаҐ¤л¤гйЁе ваЁЎгв®ў. ‚ з бв®бвЁ, ваЁЎг⮬
NEXT § ¤ Ґвбп Є®«ЁзҐбвў® ®зҐаҐ¤ле § ЇЁбҐ©, 㤮ў«Ґвў®апойЁе гб«®ўЁо
дЁ«мва жЁЁ. Ќ ¤Ґ©бвўЁҐ ваЁЎгв RECORD дЁ«мва Ґ ®Є §лў Ґв ЁЄ Є®Ј®
ў«ЁпЁп. Ќ ЇаЁ¬Ґа, Є®¬ ¤ LIST Famil RECORD 2 ўбҐЈ¤ ॠ«Ё§гҐв
ўлў®¤ Ї®«п Famil ўв®а®© § ЇЁбЁ Ґ§ ўЁбЁ¬® ®в в®Ј®, 㤮ў«Ґвў®апҐв «Ё
§ ЇЁбм дЁ«мваг.
…б«Ё "Ја Ёжл" Ґ § ¤ л, Є®¬ ¤л DELETE, DISPLAY, RECALL Ё
REPLACE ®Ўа Ў влў ов в®«мЄ® ⥪гйго § ЇЁбм, ў ¤агЈЁе Є®¬ ¤ е Ѓ„
Ї® 㬮«з Ёо ЇаҐ¤Ї®« Ј Ґвбп ваЁЎгв ALL (®Ўа Ў®вЄ ўбҐе § ЇЁбҐ©).
“в®зҐЁҐ ¬®¦Ґбвў ®Ўа Ў влў Ґ¬ле § ЇЁбҐ© Ї®¬Ё¬® дЁ«мва Ё ў
а ¬Є е ®в¤Ґ«м®© Є®¬ ¤л ॠ«Ё§гҐв FOR-гб«®ўЁҐ: FOR <‚лаL> .
€§ ®Ў« бвЁ ¤Ґ©бвўЁп ¤«п ®Ўа Ў®вЄЁ ўлЎЁа овбп ⥠§ ЇЁбЁ, ¤«п Є®в®але
<‚лаL> ЁбвЁ®. ‡ ¬ҐвЁ¬, зв® FOR-гб«®ўЁҐ Ґ Ё§¬ҐпҐв б¬лб« ваЁЎгв
NEXT.
Ља®¬Ґ FOR-гб«®ўЁп, ў®§¬®¦® WHILE-гб«®ўЁҐ: WHILE <‚лаL> .
Ћ® ®ЎҐбЇҐзЁў Ґв гбҐзҐЁҐ ®Ў« бвЁ ¤Ґ©бвўЁп: § ЇЁбЁ Ё§ ҐҐ
®Ўа Ў влў овбп, Ї®Є <‚лаL> ЁбвЁ®. ’ Є Ї®бвгЇ ов, Є®Ј¤ Ја Ёж
д ЄвЁзҐбЄ®© ®Ў« бвЁ ®Ўа Ў®вЄЁ в®з® Ґ Ё§ўҐбв ; ®Ў« бвм ¤Ґ©бвўЁп
§ з ов "б § Ї ᮬ". …б«Ё Є®¬ ¤ ᮤҐа¦Ёв WHILE-гб«®ўЁҐ, ®Ўа Ў®вЄ
ўбҐЈ¤ зЁ Ґвбп б ⥪г饩 § ЇЁбЁ, ¤ ¦Ґ Ґб«Ё § ¤ ваЁЎгв ALL.
€в Є, ўбҐ гЄ § лҐ ўлиҐ ваЁЎгвл ®Ўп§ ⥫мл¬Ё Ґ пў«повбп.
“б«®ўЁ¬бп ў ®ЇаҐ¤Ґ«ҐЁпе ўл¤Ґ«пвм ¦Ёал¬ иаЁд⮬ ®Ўп§ ⥫млҐ
н«Ґ¬Ґвл. …б«Ё FOR- Ё WHILE-гб«®ўЁп ®Ў®§ зЁвм вҐа¬Ё®¬ <“б«®ўЁп>,
®Ўй п з бвм бвагЄвгал Є®¬ ¤ Ѓ„ ЇаЁ®ЎаҐв Ґв ўЁ¤
<€¬п Є®¬ ¤л> <‘ЇЁб®Є> <ѓа Ёжл> <“б«®ўЁп> .
Џ®а冷Є б«Ґ¤®ў Ёп н«Ґ¬Ґв®ў Є®¬ ¤л Ї®б«Ґ ҐҐ Ё¬ҐЁ Їа®Ё§ў®«Ґ.
ЏаЁ¬Ґал Ё¬ҐЁ Є®¬ ¤л: LIST, DISPLAY. ‚ нвЁе Є®¬ ¤ е <‘ЇЁб®Є>
®ЇаҐ¤Ґ«пҐв ўлў®¤Ё¬го Ёд®а¬ жЁо, ®Ё 㤮Ўл ЇаЁ ®в« ¤ЄҐ
Їа®Ја ¬¬л Ё Ї® 㬮«з Ёо ¤Ґ« ов ўлў®¤ ¤ЁбЇ«Ґ©. ЂваЁЎгв TO PRINT
ЇҐаҐЄ«оз Ґв ўлў®¤ ЇаЁвҐа, ваЁЎгв TO FILE <€¬п д ©« > - ў
⥪бв®ўл© д ©«. ‡ ЇЁбЁ ўлў®¤пвбп б Ёе ®¬Ґа ¬Ё. ЂваЁЎгв OFF
ЁбЄ«оз Ґв ўлў®¤ ®¬Ґа®ў.
ЏаЁ¬Ґа 3.6. “б«®¦Ё¬ § ¤ зг ЇаЁ¬Ґа 3.5: Їа®Ё¤ҐЄбЁа㥬 Ѓ„
Kadr Ї® Ї®«о Otdel Ё ўлўҐ¤Ґ¬ ЇаЁвҐа бЇЁб®Є ¬г¦зЁ в®Ј® ®в¤Ґ« ,
Є®в®ал© ў Ё¤ҐЄбҐ Ё¤Ґв ЇҐаўл¬, Ї®¤ ў«пп ўлў®¤ ®¬Ґа®ў § ЇЁбҐ©.
USE Kadr
INDEX ON Otdel TO Tdl
Otd = Otdel && ‡ Ї®¬Ё ЁҐ ®в¤Ґ«
LIST OFF Famil FOR Upper(Pol) =="Њ“†" WHILE Otdel == Otd TO PRINT
EJECT && ‡ Є«озЁвҐ«мл© ЇҐаҐў®¤ бва®ЄЁ Ё Їа®вп¦Є Ўг¬ ЈЁ
‚ § Є«о票Ґ а бᬮваЁ¬ ҐйҐ ®¤г Є®¬ ¤г Ѓ„. Љ®¬ ¤
REPLACE <‘ЇЁб®Є § ¬Ґ § 票© Ї®«Ґ©> <ѓа Ёжл> <“б«®ўЁп>
ॠ«Ё§гҐв ЇаЁбў Ёў ЁҐ § 票© ®¤®¬г Ё«Ё ҐбЄ®«мЄЁ¬ Ї®«п¬ § ЇЁбЁ.
…б«Ё Ґ гЄ § л Ё <ѓа Ёжл>, Ё <“б«®ўЁп>, ®Ўа Ў влў Ґвбп в®«мЄ®
⥪гй п § ЇЁбм. Ћ¤ § ¬Ґ Ї®«п ў <‘ЇЁбЄҐ § ¬Ґ § 票© Ї®«Ґ©>
ЇаҐ¤бв ў«Ґ н«Ґ¬Ґв®¬ бЇЁбЄ <Џ®«Ґ> WITH <‚ла ¦ҐЁҐ>.
<‚ла ¦ҐЁҐ> ¤ Ґв ЇаЁбў Ёў Ґ¬®Ґ Ї®«о § 票Ґ.
ЏаЁ¬Ґа: REPLACE Famil WITH "Џ®¤ЇЁ«Ёеў®бв Њ.ћ.".
ЏаЁ¬Ґа 3.7. ‘®§¤ ¤Ё¬ Ѓ„ Primer б Ґ¤ЁбвўҐл¬ зЁб«®ўл¬ Ї®«Ґ¬
Num, ᤥ« Ґ¬ ў Ґ© 6 Їгбвле § ЇЁбҐ© Ё § Ї®«Ё¬ Ёе:
USE Primer
FOR i = 1 TO 6 && –ЁЄ« ᮧ¤ Ёп 6 Їгбвле § ЇЁбҐ©
APPEND BLANK && „®Ў ў«ҐЁҐ ®¤®© Їгбв®© § ЇЁбЁ
ENDFOR && Љ®¬ ¤ SKIP ў жЁЄ«Ґ Ґ г¦
REPLACE Num WITH 3*Recno() ALL && ЋЎа Ў влў овбп ўбҐ 6 § ЇЁбҐ©
LIST Num && ‚ нв®© Є®¬ ¤Ґ "ALL" Ї® 㬮«з Ёо
‡ ¤ ЁҐ 3.3. €§¬ҐЁвҐ Їа®Ја ¬¬г ЇаЁ¬Ґа 3.6 в Є, зв®Ўл ®
ўлў®¤Ё« бЇЁб®Є ¬г¦зЁ-б®ваг¤ЁЄ®ў Ї® Є ¦¤®¬г Ё§ ®в¤Ґ«®ў. ЏаЁ¬ҐЁвҐ
Є®¬ ¤г DO WHILE. ЏҐаҐ¤ бЇЁбЄ®¬ Є ¦¤®Ј® ®в¤Ґ« ўлў®¤ЁвҐ ҐЈ®
®Ў®§ 票Ґ: Ћ ’ „ … ‹ <ЋЎ®§ 票Ґ>.
3.4. ЋбгйҐб⢫塞 Ї®ЁбЄ ў Ў §Ґ ¤ ле
Џ®ЁбЄ ЇҐаҐЎ®а®¬ § ЇЁбҐ©. ‚ ЇаҐ¤л¤гйЁе ЇаЁ¬Ґа е Ї®ЁбЄ
ўв®¬ вЁзҐбЄЁ ®бгйҐбвў«п«бп ў Їа®жҐбᥠўлў®¤ . ђ бᬮваЁ¬ б।бвў
Ї®ЁбЄ § ЇЁбҐ© ¤«п Ёе ®Ўа Ў®вЄЁ. Џ®ЁбЄ ЇҐаҐЎ®а®¬ ўлЇ®«пҐв Є®¬ ¤
LOCATE <FOR-гб«®ўЁҐ> <ѓа Ёжл> <WHILE-гб«®ўЁҐ> .
Џ®ЁбЄ ®бв ў«Ёў Ґвбп «ЁЎ® ЇаЁ ®Ў а㦥ЁЁ ЇҐаў®© § ЇЁбЁ,
㤮ў«Ґвў®апо饩 FOR-гб«®ўЁо, «ЁЎ® ЇаЁ ўл室Ґ § Ја Ёжг ®Ў« бвЁ
¤Ґ©бвўЁп. ‘®®вўҐвб⢥® дгЄжЁп Found() ЇаЁ®ЎаҐв Ґв § 票Ґ .T.
Ё«Ё .F.. Ќ ©¤Ґ п § ЇЁбм бв ®ўЁвбп ⥪г饩 Ё ҐҐ ¬®¦® ®Ўа Ў влў вм.
—в®Ўл ©вЁ б«Ґ¤гойго § ЇЁбм, § з бвго ЁбЇ®«м§гов Є®¬ ¤г CONTINUE,
® нв Є®¬ ¤ Ґ Є®ва®«ЁагҐв ўл室 Ё§ ®Ў« бвЁ ¤Ґ©бвўЁп Ё ў Ґ©
Ґ ¤Ґ©бвўгҐв WHILE-гб«®ўЁҐ. €бЇ®«м§г©вҐ SKIP б®ў¬Ґбв® б LOCATE
в Є, Є Є н⮠ᤥ« ® ў б«Ґ¤го饬 ЇаЁ¬ҐаҐ.
ЏаЁ¬Ґа 3.8. ” ©« Kadr (ЇаЁ¬Ґа 3.3) а ҐҐ Їа®Ё¤ҐЄбЁа®ў Ї®
Ї®«о Otdel. ’ॡгҐвбп Ї®¤бзЁв вм зЁб«® ¬г¦зЁ ў Є ¦¤®¬ ®в¤Ґ«Ґ,
ЇаЁ¬Ґпп LOCATE ¤«п ЇҐаҐе®¤ ®в ®¤®© ЁбЄ®¬®© § ЇЁбЁ Є ¤агЈ®©.
USE Kadr
DO WHILE .NOT.Eof() && Џа®е®¤Ё¬ ўҐбм д ©«
K = 0 && ЏҐаҐ¬Ґ п - бзҐвзЁЄ ¬г¦зЁ
Otd = Otdel
LOCATE FOR Upper(Pol) =="Њ“†" WHILE Otdel == Otd
DO WHILE Found()
K = K+1
SKIP && ‘¬Ґй Ґ¬ Ја Ёжг ¤Ґ©бвўЁп Є®¬ ¤л LOCATE REST
LOCATE REST FOR Upper(Pol) =="Њ“†" WHILE Otdel == Otd
ENDDO
? "‚ ®в¤Ґ«Ґ", Otd, K, " ¬г¦зЁ" && ‚лў®¤ १г«мв в
ENDDO
ЂваЁЎгв REST ¬®¦® ®ЇгбвЁвм, ЁЎ® WHILE-гб«®ўЁҐ ЁЁжЁЁагҐв
а Ў®вг, зЁ п б ⥪г饩 § ЇЁбЁ. ‚ ¤ «мҐ©иҐ¬ ўл гўЁ¤ЁвҐ, зв®
§ ¤ з аҐи Ґвбп Їа®йҐ ¤агЈЁ¬Ё б।бвў ¬Ё. ‡¤Ґбм 襩 楫мо Ўл«
¤Ґ¬®бва жЁп ў®§¬®¦®б⥩ Є®¬ ¤л LOCATE.
Ѓлбвал© Ї®ЁбЄ. Љ®¬ ¤ LOCATE г¦ ¤«п ®ЎҐбЇҐзҐЁп ЈЁЎЄ®бвЁ
Їа®Ја ¬¬л, ®¤ Є® ў Ў®«миЁе Ў § е ¤ ле ЇҐаҐЎ®а § ЇЁбҐ© ЇаЁ Ї®ЁбЄҐ
¬®¦Ґв бгйҐб⢥® § ¬Ґ¤«пвм а Ў®вг. Љ®¬ ¤ SEEK <‚ла> , Ґ
Ўг¤гзЁ гЁўҐаб «м®©, ®ЎҐбЇҐзЁў Ґв Ўлбвал© Ї®ЁбЄ ў ᮮ⢥вбвўгойЁ¬
®Ўа §®¬ гЇ®а冷祮© (Їа®Ё¤ҐЄбЁа®ў ®©) Ѓ„. Њл Ґ Ўг¤Ґ¬
а бб¬ ваЁў вм «®ЈЁзго Є®¬ ¤г FIND, ў®§¬®¦®бвЁ Є®в®а®© Ї®«®бвмо
ЇҐаҐЄалў овбп ў®§¬®¦®бвп¬Ё Є®¬ ¤л SEEK.
ЂаЈг¬Ґв Ї®ЁбЄ <‚ла> ¤ Ґв § 票Ґ в®Ј® ¦Ґ вЁЇ , зв® Ё Ё¤ҐЄб®Ґ
ўла ¦ҐЁҐ, Ї® Є®в®а®¬г 㦮 § а ҐҐ Їа®Ё¤ҐЄбЁа®ў вм Ѓ„. ќв®в
Ё¤ҐЄб ЇаЁ Ї®ЁбЄҐ ¤®«¦Ґ Ўлвм ўҐ¤гйЁ¬. ЏаЁ ®Ўа 饨Ё Є § ЇЁбп¬ Ѓ„
§ 票Ґ <‚ла> ба ўЁў Ґвбп б® § 票Ґ¬ Ё¤ҐЄб®Ј® ўла ¦ҐЁп
(Є«оз ), ЇаЁзҐ¬ вॡгҐвбп «Ёим ҐбЄ®«мЄ® ба ўҐЁ© ¤«п в®Ј®, зв®Ўл
«®Є «Ё§®ў вм ЁбЄ®¬го § ЇЁбм Ё«Ё гбв ®ўЁвм д Єв ҐҐ ®вбгвбвўЁп.
Ќ ЇаЁ¬Ґа, гЄ § ў ў Є®¬ ¤Ґ SEEK Є®ЄаҐвл© ®в¤Ґ«, ¬л б ҐҐ Ї®¬®ймо
Їа ЄвЁзҐбЄЁ ¬Ј®ўҐ® Ї®«гз Ґ¬ ¤®бвгЇ Є ЇҐаў®© § ЇЁбЁ, ®в®бп饩бп
Є н⮬㠮⤥«г, Є®Ґз®, ЇаЁ гб«®ўЁЁ, зв® Ѓ„ Kadr Їа®Ё¤ҐЄбЁа®ў
Ї® Ї®«о Otdel. Ќ ©¤Ґ п Є®¬ ¤®© SEEK § ЇЁбм бв ®ўЁвбп ⥪г饩.
ЋЎ« бвмо Ї®ЁбЄ пў«пҐвбп ¬®¦Ґбвў® § ЇЁбҐ©, гзвҐле ў Ё¤ҐЄбҐ.
ЏаЁ¬Ґа 3.9. ЋбгйҐбвўЁ¬ Ўлбвал© Ї®ЁбЄ ў Ѓ„ Kadr б®ваг¤Ёжл б
¤ҐўЁз쥩 д ¬Ё«ЁҐ© (гЄ § ®© ў Ѓ„) ЃҐ¤пЄ®ў ¤«п § ¬Ґл нв®©
д ¬Ё«ЁЁ ®ўго - ‘Є®а®Ў®Ј в®ў .
USE Kadr && €¤ҐЄбЁагп Ѓ„, ¬л ®ЎҐбЇҐзЁў Ґ¬ ЇаЁ¬ҐҐЁҐ SEEK
INDEX ON Upper(Famil+Imya+Otch) TO Fml
SEEK "Ѓ…„ЌџЉЋ‚Ђ" && €«Ё SEEK Upper("ЃҐ¤пЄ®ў ")
IF Found()
REPLACE Famil WITH "‘Є®а®Ў®Ј в®ў "
ELSE
? "ЌҐв в Є®© б®ваг¤Ёжл !"
ENDIF
…б«Ё ў Ё¤ҐЄб®¬ ўла ¦ҐЁЁ Ё¬Ґовбп ЇаҐ®Ўа §®ў Ёп Ї®«Ґ©, в® Ё
ў аЈг¬ҐвҐ Ї®ЁбЄ «ЁЎ® в®з® гзЁвлў ов нд䥪⠯८Ўа §®ў Ёп, «ЁЎ®
§ ЇЁблў ов б ¬® ЇаҐ®Ўа §®ў ЁҐ (®Ў ў аЁ в Ї®Є § л ¬Ё ў ЇаЁ¬ҐаҐ).
‚Ґа®пв®, ўл § ¬ҐвЁ«Ё, зв® аЈг¬Ґв Ї®ЁбЄ «®ЈЁзҐбЄЁ ҐЇ®«л©:
Ё¬п Ё ®взҐбвў® ¬л Ґ гЄ § «Ё. ’ Є Ї®бвгЇ вм ¬®¦®, Ґб«Ё ¬л § Ґ¬,
зв® ®¤®д ¬Ё«м楢 Ґв. Љ®¬ ¤ SEEK а Ў®в Ґв ў ०Ё¬Ґ SET EXACT OFF
(б¬. Ї. 1.4) Ґ§ ўЁбЁ¬® ®в в®Ј®, ¤Ґ©бвўгҐв «Ё нв®в ०Ё¬ ў Їа®Ја ¬¬Ґ.
„агЈЁ¬Ё б«®ў ¬Ё, Ґб«Ё аЈг¬Ґв Ї®ЁбЄ пў«пҐвбп з «м®© Ї®¤бва®Є®©
Є«оз § ЇЁбЁ, ЇҐаў п Ё§ в ЄЁе § ЇЁбҐ© ЇаЁЁ¬ Ґвбп § १г«мв в.
‚ ЇаЁжЁЇҐ, ¬®¦Ґв б®ўЇ ¤ вм Ё Ї®«л© аЈг¬Ґв. ‚ ॠ«мле
Їа®Ја ¬¬ е Є Є аЈг¬Ґв Ї®ЁбЄ ЁбЇ®«м§гов Ґ д ¬Ё«Ёо, в Є
§лў Ґ¬л© в ЎҐ«мл© ®¬Ґа - гЁЄ «м®Ґ § 票Ґ ў Є ¦¤®© § ЇЁбЁ
"Є ¤а®ў®©" Ѓ„.
†ҐбвЄЁ© Ё Ґ¦ҐбвЄЁ© Ї®ЁбЄ Є®¬ ¤®© SEEK. †ҐбвЄЁ© Ї®ЁбЄ
(ЁбЇ®«м§гҐвбп Ї® 㬮«з Ёо) ¤ Ґв ®¤®§ зл© Ёб室: «ЁЎ® ЁбЄ®¬®Ј®
१г«мв в Ґв, «ЁЎ® ® Ґбвм. ЌҐ¦ҐбвЄЁ© Ї®ЁбЄ ®Ўлз® ЇаҐ¤« Ј Ґв
ҐЄ®в®а®Ґ § 票Ґ, ў®Їа®б ® ЇаЁЈ®¤®бвЁ Є®в®а®Ј® аҐи Ґвбп ®в¤Ґ«м®.
”гЄжЁп Found() ў «оЎ®¬ б«гз Ґ ў®§ўа й Ґв § 票Ґ .T., в®«мЄ®
Ґб«Ё ЁбЄ®¬®Ґ § 票Ґ ©¤Ґ®. Џ®«®¦ҐЁҐ гЄ § вҐ«п § ЇЁбЁ (§ 票Ґ
дгЄжЁЁ Recno()) Ї®б«Ґ ҐгбЇҐи®Ј® Ї®ЁбЄ Ґ®¤Ё Є®ў®. ЏаЁ ¦ҐбвЄ®¬
Ї®ЁбЄҐ гЄ §лў Ґвбп Ї®§ЁжЁп Reccount()+1 § Є®Ґз®© § ЇЁбмо д ©« .
ЏаЁ Ґ¦ҐбвЄ®¬ Ї®ЁбЄҐ дгЄжЁп Recno() гЄ §лў Ґв Ї®§ЁжЁо, ў Є®в®а®©
§ ЇЁбм б ЁбЄ®¬л¬ § 票Ґ¬ ¤®«¦ Ўл« а бЇ®« Ј вмбп. ’Ґ¬ б ¬л¬
®Ў®§ з Ґвбп § ЇЁбм б Ў«Ё¦ ©иЁ¬ б«Ґ¤гойЁ¬ § 票Ґ¬ Є«оз , Ґб«Ё
в®«мЄ® аЈг¬Ґв Ї®ЁбЄ Ґ ЇаҐў®б室Ёв ўбҐ Ё¬ҐойЁҐбп § зҐЁп Є«оз .
…б«Ё, гбв ®ўЁў ०Ё¬ Ґ¦ҐбвЄ®Ј® Ї®ЁбЄ Ё ®вЄалў Ў §г Primer
(б¬. ЇаЁ¬Ґа 3.7) б® § 票ﬨ 3, 6, 9, 12, 15, 18, Їа®Ё¤ҐЄбЁа®ў вм
ҐҐ Ё ўлЇ®«Ёвм SEEK 7, дгЄжЁп Recno() ЇаЁ¬Ґв § 票Ґ 3, гЄ §лў п
§ ЇЁбм, ᮤҐа¦ йго "9", § 票Ґ¬ дгЄжЁЁ Found() Ўг¤Ґв .F.
‚ ҐЄ®в®але § ¤ з е Ё в Є®© १г«мв в Ї®ЁбЄ Ё¬ҐҐв б¬лб«.
ЏаҐ¤бв ўмвҐ, зв® ў Ѓ„ Employ а §лбЄЁў Ґвбп б®ваг¤ЁЄ Ї® д ¬Ё«ЁЁ,
ЇаЁзҐ¬ ЁЁжЁ «л, ¬®¦Ґв Ўлвм, Ё ®Є®з ЁҐ д ¬Ё«ЁЁ Ґв®зл -
Ґв®зҐ аЈг¬Ґв Ї®ЁбЄ . ЌҐ¦ҐбвЄЁ© Ї®ЁбЄ ўлў®¤Ёв б ў вг ®Ў« бвм
д ©« , Ј¤Ґ ЁбЄ®¬л© १г«мв в ®ЇаҐ¤Ґ«пҐвбп ўЁ§г «м® - ¤ЁбЇ«ҐҐ.
Џ®¤®Ў п бЁвг жЁп ў®§¬®¦ Ё ЇаЁ зЁб«®ўле Є«оз е. Ќ ЇаЁ¬Ґа, ¬л ЁйҐ¬
б®ваг¤ЁЄ б § ¤ л¬ бв ¦Ґ¬, в®з® в Є®Ј® бв ¦ Ґв, Ґбвм
Ў«Ё§Є®Ґ ҐЈ® § 票Ґ.
ђҐ¦Ё¬ Ґ¦ҐбвЄ®Ј® Ї®ЁбЄ ў CLIPPER § з Ґвбп Є®¬ ¤®© SET
SOFTSEEK ON, ў FOXPRO - Є®¬ ¤®© SET NEAR ON. „«п ў®§ўа в Є
¦ҐбвЄ®¬г Ї®ЁбЄг ¤®, ЇаЁ¬Ґпп нвЁ Є®¬ ¤л, § ¬ҐЁвм ў Ёе "ON"
"OFF".
‡ ¤ ЁҐ 3.4. ‚®ўм ®Ўа вЁ¬бп Є Ѓ„ Kadr. ‘®бв ўм⥠Їа®Ја ¬¬г,
Є®в®а п ЁбЇ®«м§гп Є®¬ ¤г SEEK, 室Ёв ўбҐе б®ваг¤ЁЄ®ў б® бв ¦Ґ¬
®в 10 ¤® 20 «Ґв ўЄ«озЁвҐ«м® Ё ўлў®¤Ёв Ёе д ¬Ё«ЁЁ Ё бв ¦ Є®¬ ¤®©
LIST. Љ®¬ ¤г SEEK ЁбЇ®«м§г©вҐ ¤ў ¦¤л - ¤«п 宦¤ҐЁп Ё¦Ґ© Ё
ўҐа奩 Ја Ёжл ЁбЄ®¬®© ЈагЇЇл § ЇЁбҐ©.
3.5. ‘в ®ўЁ¬бп "Їа®дҐббЁ® « ¬Ё" Ї®ЁбЄ
’®зл© Ї®ЁбЄ Ї® бЁ¬ў®«м®¬г Є«озг. “бҐзҐл© аЈг¬Ґв Ї®ЁбЄ
ЁбЇ®«м§гҐвбп з бв®, ® Ґ ўбҐЈ¤ ® ЇаЁҐ¬«Ґ¬. ЏаҐ¤бв ўмвҐ, Є ЇаЁ¬Ґаг,
зв® ҐЄ®в®алҐ Ё§¤Ґ«Ёп ®Ў®§ зҐл иЁда ¬Ё "XPR01", "XPR02","XPR022"
Ё в.Ї., ® Ґ ўбҐ иЁдал ЇаЁбгвбвўгов ў Ѓ„. Џлв пбм гбв ®ўЁвм д Єв
ЇаЁбгвбвўЁп Ё§¤Ґ«Ёп "XPR02", ¬л ¬®¦Ґ¬ Ї®«гзЁвм § 票Ґ .T. дгЄжЁЁ
Found() ("гбЇҐе") ЇаЁ ®Ў а㦥ЁЁ иЁда "XPR022", ЁЎ® аЈг¬Ґв Ї®ЁбЄ
пў«пҐвбп Ї®¤бва®Є®© нв®Ј® иЁда .
—в®Ўл Є®¬ ¤ SEEK ўлЇ®«п« в®зл© Ї®ЁбЄ, 㦮 ¤®Ї®«пвм
аЈг¬Ґв Ї®ЁбЄ Їа®ЎҐ« ¬Ё ¤® а §¬Ґа Є«оз , ў 襬 б«гз Ґ - ¤®
а §¬Ґа бЁ¬ў®«м®Ј® Ї®«п Shifr, ЁбЇ®«м§гҐ¬®Ј® ў Ѓ„ Postavki.
ЏаЁ¬Ґа 3.10. Ќ ©¤Ґ¬ ўбҐ § ЇЁбЁ c § ¤ л¬ § 票Ґ¬ Ї®«п
Shifr (¤®ЇгбвЁ¬, Є ¦¤ п § ЇЁбм ᮮ⢥вбвўгҐв ®¤®¬г Ї®бв ўйЁЄг
Ё§¤Ґ«Ёп). Ѓ § ¤ ле ЇаҐ¤ў аЁвҐ«м® Їа®Ё¤ҐЄбЁа®ў Ї® Ё¤ҐЄб®¬г
ўла ¦ҐЁо Upper(Shifr).
USE Postavki && ЋвЄалў Ґ¬ Ў §г ¤ ле "Џ®бв ўЄЁ"
z = Padr("XPR02", Len(Shifr)) && „®Ї®«пҐ¬ аЈг¬Ґв Ї®ЁбЄ Їа®ЎҐ« ¬Ё
SEEK z
DO WHILE Upper(Shifr) == z
? Recno(), Shifr && ‚¬Ґбв® ®Ўа Ў®вЄЁ ¬л ўлў®¤Ё¬ ®¬Ґа Ё иЁда
SKIP && ЏҐаҐе®¤ Є б«Ґ¤го饩 § ЇЁбЁ д ©«
ENDDO
ЏаЁ¬Ґа 3.11. ђ бᬮваЁ¬ б«гз © б®бв ў®Ј® Є«оз . Ѓ„ Kadr
Їа®Ё¤ҐЄбЁа®ў Ї® б®бв ў®¬г Є«озг Є®¬ ¤®©
INDEX ON Upper (Famil + Imya + Otch) TO Fio.
…б«Ё ¬л § ЇЁиҐ¬ Є®¬ ¤г SEEK "‘Є®а®Ў®Ј в®ў Њ аЁ ‘ҐаЈҐҐў ",
в® Ґ Ї®«гзЁ¬ ЁбЄ®¬®© § ЇЁбЁ Ё§-§ "«ЁиЁе" ўгваҐЁе Їа®ЎҐ«®ў ў
б®бв ў®¬ Є«озҐ (Є ¦¤®Ґ Ї®«Ґ § Є зЁў Ґвбп Їа®ЎҐ« ¬Ё, Ґб«Ё Ґ
§ пв® Ї® ¬ ЄбЁ¬г¬г). …бвм ¤ў ЇгвЁ гбва ҐЁп Ґб®®вўҐвбвўЁп.
1. ‚ў®¤Ёвм б®бв ў«пойЁҐ аЈг¬Ґв Ї®ЁбЄ ў ®в¤Ґ«млҐ ЇҐаҐ¬ҐлҐ
F, I, O Ё ЇҐаҐ¤ Є®Є ⥠樥© ¤®Ї®«пвм Є ¦¤го ЇҐаҐ¬Ґго
Їа®ЎҐ« ¬Ё ¤® ¤«Ёл ᮮ⢥вбвўго饣® Ї®«п. Џ®«гз Ґ¬ аЈг¬Ґв Ї®ЁбЄ
Upper(Padr(F,Len(Famil)) + Padr(I,Len(Imya)) + Padr(O,Len(Otch))).
2. Љ Є ЇаЁ Ё¤ҐЄбЁа®ў ЁЁ Ѓ„, в Є Ё ў Є®¬ ¤Ґ SEEK, ЁбЇ®«м§®ў вм
ў аЁ в Є®Є ⥠樨 б г¤ «ҐЁҐ¬ "еў®бв®ўле" Їа®ЎҐ«®ў з «мле
б« Ј Ґ¬ле; Є Є Ё ўлиҐ, ЁбЇ®«м§гҐ¬ ў аЈг¬ҐвҐ ЇҐаҐ¬ҐлҐ F,I,O:
INDEX ON Upper (Famil - Imya - Otch) && "-" § Є Є®Є ⥠樨
SEEK Upper (F - I - Padr(O, Len(Otch)).
ЏҐаҐ¬Ґго O ¬л ¤®Ї®«Ё«Ё Їа®ЎҐ« ¬Ё, ЁЎ® ў Ё¤ҐЄб®¬ ўла ¦ҐЁЁ
Їа®ЎҐ«л ў Є®жҐ Ї®«п Otch Ґ г¤ «повбп. …б«Ё Ўл ¬л ўлўҐ«Ё аЈг¬Ґв
Ї®ЁбЄ , Ї®«гзЁ«®бм Ўл б«Ґ¤го饥:"‘Є®а®Ў®Ј в®ў Њ аЁ ‘ҐаЈҐҐў ".
‚ п§лЄҐ CLIPPER в®зл© Ї®ЁбЄ Ї® аЈг¬Ґвг Y, ¤®Ї®«Ґ®¬г
Їа®ЎҐ« ¬Ё, ўлЇ®«пҐв гЁўҐаб «мл© Ў«®Є Poisk:
FUNCTION Poisk (Y) && ЋЎкпᥨҐ ¬ Єа®Ї®¤бв ®ўЄЁ "&" б¬. ў Ј«. 4
SEEK Padr(Y, Len (&(Indexkey(0))))
RETURN Found() && ‚®§ўа й Ґвбп .T., Ґб«Ё § ЇЁбм ©¤Ґ ў Ѓ„
ЏаЁ б®бв ў®¬ Є«озҐ Ї®«м§®ў вҐ«м ¤®«¦Ґ ўЁ¬ вҐ«м® б®Ґ¤Ёпвм
з бвЁ аЈг¬Ґв Y, Ґ ¤®ЇгбЄ п "ЇҐаҐЄ®б®ў" Ї® ®в®иҐЁо Є Є«озг.
’ҐЇҐам Ї®Є ¦Ґ¬, Є Є ®ЎҐбЇҐзЁвм Ї®«м§®ў вҐ«о ЁвҐа ЄвЁўл© ўлЎ®а
¬Ґ¦¤г в®зл¬ Ё ЇаЁЎ«Ё¦Ґл¬ Ї®ЁбЄ®¬. Џгбвм Є«о箬, Ї® Є®в®а®¬г
Їа®Ё¤ҐЄбЁа®ў Ѓ„, Ўг¤Ґв Ї®«Ґ Shifr.
*** Ѓ « ® Є Ї ® Ё б Є Ї ® б Ё ¬ ў ® « м ® ¬ г Є « о з г
FUNCTION Vibor
Arg = Space (Len(Shifr)) && ‡ Ї®«пҐ¬ Їа®ЎҐ« ¬Ё аЈг¬Ґв Arg
@ 5, 10 SAY "‚ўҐ¤ЁвҐ § 票Ґ аЈг¬Ґв Ї®ЁбЄ " GET Arg
READ
Otvet = "*" //‡ 票Ґ, Ї®§ў®«по饥 жЁЄ«г з вм а Ў®вг
DO WHILE .NOT. Upper(Otvet) $ "YES NO " && ‘¬. $ ў Ї. 1.4)
Otvet = Space(3) //€ЁжЁ «Ё§ жЁп, Ґ®Ўе®¤Ё¬ п ¤«п а Ў®вл GET
@ 6, 10 SAY "‚лЇ®«пвм в®зл© Ї®ЁбЄ [YES, NO] ? " GET Otvet
READ
ENDDO
Arg = Iif(Upper(Otvet)="YES", Arg, Trim(Arg) )
SEEK Arg //Ё«Ё SEEK Upper(Arg), Ґб«Ё Upper - ў Ё¤ҐЄб®¬ ўла ¦ҐЁЁ
RETURN Found() //‚®§ўа й Ґвбп .T. ў б«гз Ґ гбЇҐи®Ј® Ї®ЁбЄ
‡¤Ґбм ЇҐаҐ¬Ґ п Arg Ґ§ ўЁбЁ¬® ®в зЁб« ўўҐ¤Ґле ў ҐҐ
бЁ¬ў®«®ў б®еа пҐв ЇҐаў® з «мл© а §¬Ґа бва®ЄЁ Їа®ЎҐ«®ў - а §¬Ґа
Ї®«п (гб«®ўЁҐ в®з®Ј® Ї®ЁбЄ ). ‚ б«гз Ґ ЇаЁЎ«Ё¦Ґ®Ј® Ї®ЁбЄ ¤®«¦л
Ўлвм ®вЎа®иҐл Їа®ЎҐ«л бЇа ў , зв® Ё ўлЇ®«пҐв дгЄжЁп Trim (Arg).
Љ Є ў п§лЄҐ CLIPPER ўў®¤Ёвм аЈг¬Ґв Ї®ЁбЄ ў б«гз Ґ, Ґб«Ё ®
пў«пҐвбп ўла ¦ҐЁҐ¬, ўлЎЁа Ґ¬л¬ Ї®«м§®ў ⥫Ґ¬ ў Їа®жҐбᥠаҐиҐЁп,
¬л а бᬮваЁ¬ ў Ї. 4.9.
Џ®ЁбЄ Ї® Ў«Ё§®бвЁ Ё Ї® ЁвҐаў «г. ЋЎа вЁ¬бп ⥯Ґам Є зЁб«®ўл¬
Є«оз ¬ Ё Є«оз ¬ вЁЇ "¤ в ". „«п ®ЇаҐ¤Ґ«Ґ®бвЁ Ї®«®¦Ё¬ ў®§а бв о饩
Ї®б«Ґ¤®ў ⥫м®бвм Є«о祩 ў Ё¤ҐЄбҐ. Џ®ЁбЄ Ї® Ў«Ё§®б⨠ᢥаег (бЁ§г)
ЇаҐ¤Ї®« Ј Ґв ®влбЄ ЁҐ ў Ѓ„ Є«оз , § 票Ґ Є®в®а®Ј® пў«пҐвбп
Ў«Ё¦ ©иЁ¬ Ґ ¬ҐмиЁ¬ (Ґ Ў®«миЁ¬) Ї® ®в®иҐЁо Є аЈг¬Ґвг Ї®ЁбЄ .
’ Є®Ј® Є«оз ў Ѓ„ Ґв в®«мЄ® ў б«гз Ґ, Ґб«Ё аЈг¬Ґв Ў®«миҐ
(¬ҐмиҐ) ўбҐе Є«о祩, ᮤҐа¦ йЁебп ў Ё¤ҐЄбҐ.
ЋзҐўЁ¤®, ¤®«¦Ґ ЇаЁ¬Ґпвмбп Ґ¦ҐбвЄЁ© Ї®ЁбЄ б Ї®б«Ґ¤го饩
Їа®ўҐаЄ®© гЄ § вҐ«п § ЇЁбЁ. ‘«Ґ¤гойЁ© Ў«®Є ॠ«Ё§гҐв Ї®ЁбЄ Ї® Ў«Ё§®бвЁ.
Y - зЁб«®ў®© Ё«Ё вЁЇ "¤ в " аЈг¬Ґв Ї®ЁбЄ , P § ¤ ов Є Є .T. (.F.)
¤«п Ї®ЁбЄ Ї® Ў«Ё§®б⨠ᢥаег (бЁ§г). …б«Ё Ў«®Є ў®§ўа й Ґв § 票Ґ
.T., г¦го ¬ § ЇЁбм гЄ §лў Ґв дгЄжЁп Recno().
*** Ѓ « ® Є Ї ® Ё б Є Ї ® Ў « Ё § ® б в Ё ( CLIPPER )
FUNCTION Bliz(Y,P)
LOCAL B,W
W = Set(_SET_SOFTSEEK, .T.) && Ќ § з Ґвбп ०Ё¬ Ґ¦ҐбвЄ®Ј® Ї®ЁбЄ
SEEK Y && Ё § Ї®¬Ё Ґвбп ў W Ёбе®¤л© аҐ¦Ё¬
B = Iif (P .AND. Recno() > Reccount(), .F., .T.)
IF .NOT.P .AND. &(IndexKey(0)) # Y
SKIP -1
B = Iif (Bof(), .F., .T.)
ENDIF
Set(_SET_SOFTSEEK, W) && ‚®ббв ®ў«ҐЁҐ Ёб室®Ј® ०Ё¬
RETURN B && ‚ Їа®Ја ¬¬Ґ ¤®«¦ Ўлвм ¤ЁаҐЄвЁў #include "Set.ch"
*** Ѓ « ® Є Ї ® Ё б Є Ї ® Ў « Ё § ® б в Ё ( FOXPRO )
FUNCTION Bliz
PARAM Y,P
PRIVATE B, W, C
W = Set ("NEAR") && ‡ Ї®¬Ё Ґвбп Ёбе®¤л© аҐ¦Ё¬ Ї®ЁбЄ
SET NEAR ON && Ќ § з Ґвбп ०Ё¬ Ґ¦ҐбвЄ®Ј® Ї®ЁбЄ
SEEK Y
B = Iif (P .AND. Recno() > Reccount(), .F., .T.)
C = Key(Val(Sys(21))) &&Џ®«г票Ґ ўла ¦ҐЁп Є«оз ўҐ¤г饣® Ё¤ҐЄб
IF .NOT. P .AND. &C # Y && Њ Єа®Ї®¤бв ®ўЄ &C ¤ Ґв Є«оз ⥪г饩
SKIP -1 && § ЇЁбЁ
B = Iif (Bof(), .F., .T.)
ENDIF
SET NEAR &W && ‚®ббв ®ў«ҐЁҐ Ёб室®Ј® ०Ё¬ Ї®ЁбЄ
RETURN B
Џ®ЁбЄ Ї® ЁвҐаў «г ЇаҐ¤Ї®« Ј Ґв ®влбЄ ЁҐ ўбҐе § ЇЁбҐ©,
Ё¬Ґм襥 A Ё ЁЎ®«м襥 B § зҐЁп Є«оз Є®в®але § ¤ ®. ЋЇаҐ¤Ґ«повбп
Ї®§ЁжЁЁ N2, N1 § ЇЁбҐ©, пў«пойЁебп ᮮ⢥вб⢥® ўҐа奩 ўҐиҐ©
Ё Ё¦Ґ© Ја ЁжҐ© ЁбЄ®¬ле § ЇЁбҐ© ў Ё¤ҐЄб®© Ї®б«Ґ¤®ў ⥫м®бвЁ.
…б«Ё а §®бвм N1 - N2 а ў 0, § зЁв Ґв Ё ®¤®© ЁбЄ®¬®© § ЇЁбЁ.
Ѓ«®Є Interv Ї®ЁбЄ Ї® ЁвҐаў «г ¬л ЇаЁ¬ҐЁ¬ ¤«п ўлў®¤ д ¬Ё«Ё©
ўбҐе б®ваг¤ЁЄ®ў, бв ¦ а Ў®вл Stag Є®в®але ®в 10 ¤® 20 «Ґв:
*** CLIPPER-Їа®Ја ¬¬ Ї®ЁбЄ Ї® § ¤ ®¬г ЁвҐаў «г бв ¦ а Ў®вл
#include "Set.ch"
LOCAL N1, N2, A, B
USE Employ
INDEX ON Stag TO Stg
INPUT "‚ўҐ¤ЁвҐ Ё¦оо Ја Ёжг бв ¦ " TO A
INPUT "‚ўҐ¤ЁвҐ ўҐаеоо Ја Ёжг бв ¦ " TO B
Interv (A, B, @N1, @N2) && Џ а ¬Ґвал N1, N2 ЇҐаҐ¤ овбп Ї® ббл«ЄҐ
GO N1 && ‚л室 1-о Ё§ ©¤Ґле § ЇЁбҐ©
LIST Famil WHILE Recno() # N2
*** Ѓ « ® Є Ї ® Ё б Є Ї ® Ё в Ґ а ў « г ( CLIPPER)
FUNCTION Interv(A,B,N1,N2)
LOCAL W
W = Set(_SET_SOFTSEEK, .T.)
SEEK A
N1 = Recno()
SEEK B
DO WHILE &(IndexKey(0)) = B && ‚ᥠ§ ЇЁбЁ б Є«о箬, а ўл¬
SKIP && ўҐа奩 Ја ЁжҐ, ўЄ«оз овбп ў ®вўҐв
ENDDO && (зҐаҐ§ ᮮ⢥вбвўго饥 § 票Ґ N2)
N2 = Recno()
Set(_SET_SOFTSEEK, W)
RETURN N1 # N2 &&‚®§ўа й Ґ¬®Ґ § 票Ґ а ў® .T. «Ёим ЇаЁ N1 # N2
Ѓ«®Є Interv ¬®¦® ЇаЁ¬Ґпвм Ё Є бЁ¬ў®«мл¬ Ї®«п¬. Ќ ЇаЁ¬Ґа,
Ґб«Ё Ѓ„ Employ Їа®Ё¤ҐЄбЁа®ў Ї® Ї®«о Famil (ўҐ¤гйЁ© Ё¤ҐЄб),
®Ўа 饨Ґ Interv("Ђ","†", @N1, @N2) ў®§ўа вЁв ®¬Ґа § ЇЁбҐ© N1, N2
в ЄЁҐ, зв® ў ЈагЇЇҐ § ЇЁбҐ© б д ¬Ё«Ёп¬Ё ®в "Ђ" ¤® "†" ЇҐаў п Ўг¤Ґв
Ё¬Ґвм ®¬Ґа N1, Ї®б«Ґ¤пп - Ўг¤Ґв ЇаҐ¤иҐбвў®ў вм (Ї® Ё¤ҐЄбг)
§ ЇЁбЁ б ®¬Ґа®¬ N2. …б«Ё ¦Ґ в ЄЁе д ¬Ё«Ё© Ґв, N1 = N2. …б«Ё ўл
§ ¬ҐЁвҐ ў Є®¬ ¤Ґ DO WHILE § Є "=" "==", д ¬Ё«ЁЁ, зЁ ойЁҐбп
б ЎгЄўл "†", ўЄ«озҐл ў ®вўҐв Ґ Ўг¤гв. ЋЎкпбЁвҐ ¤ л© нд䥪в.
‡ ¤ ЁҐ 3.5. ‘®бв ўЁвм Ё ЁбЇлв вм Ў«®Є Ї®ЁбЄ § ЇЁбҐ© Ї®
ЁвҐаў «г ¤«п п§лЄ FOXPRO, ЁбЇ®«м§гп ¤Ґв «Ё Ў«®Є Ї®ЁбЄ Ї® Ў«Ё§®бвЁ
Ё ®б®ўлҐ Ё¤ҐЁ ЇаЁўҐ¤Ґ®Ј® ўлиҐ Ў«®Є Ї®ЁбЄ Ї® ЁвҐаў «г.
3.6. Ќ 室Ё¬ зЁб«®ўлҐ е а ЄвҐаЁбвЁЄЁ. Љ®¬ ¤ SCAN
„«п вЁЇЁзле § ¤ з 宦¤ҐЁп зЁб«®ўле е а ЄвҐаЁбвЁЄ Ї®ЁбЄ Ё
®Ўа Ў®вЄ § ЇЁбҐ© ᮥ¤ЁҐл ў Є®¬ ¤ е, Ё¬ҐойЁе Ґпўл© жЁЄ«.
Џ®¤бзҐв § ЇЁбҐ©. ЋЎа Ў®вЄг § ¤ ®Ј® Ї®¤¬®¦Ґбвў § ЇЁбҐ© б
§ ҐбҐЁҐ¬ бзҐвзЁЄ ў <ЏҐаҐ¬Ґго> ўлЇ®«пҐв Є®¬ ¤
COUNT <ѓа Ёжл> <“б«®ўЁп> TO <ЏҐаҐ¬Ґ п> .
ЏаЁ¬Ґа. COUNT FOR Deleted() TO N && ‘зҐвзЁЄ § ЇЁбҐ©,
&&Ї®¬ҐзҐле г¤ «ҐЁҐ
‚ Є®¬ ¤Ґ FOXPRO ¬®¦Ґв ®вбгвбвў®ў вм ¤ ¦Ґ <ЏҐаҐ¬Ґ п>: Є®¬ ¤
COUNT Ё¬ҐҐв в®в ¦Ґ १г«мв в, зв® Ё Reccount(), ® ў ®в«ЁзЁҐ ®в
дгЄжЁЁ ўлў®¤Ёв зЁб«® § ЇЁбҐ© Ѓ„ ¤ЁбЇ«Ґ©.
ЏаЁ¬Ґа 3.12. ЋвЄа®Ґ¬ Ѓ„ Kadr Ё Ї®¤бзЁв Ґ¬ зЁб«® б®ваг¤ЁЄ®ў Ї®
®в¤Ґ« ¬:
USE Kadr && €¤ҐЄб Tdl «ЁЎ® ᮧ¤ Ґ¬, «ЁЎ® гЄ §лў Ґ¬
INDEX ON Otdel TO Tdl && ў Є®¬ ¤Ґ USE, Ґб«Ё ® ᮧ¤ а ҐҐ
Otd = Otdel && ‡ Ї®¬Ё ЁҐ ®в¤Ґ« , гЄ § ®Ј® ЇҐаўл¬ ў Ё¤ҐЄбҐ
DO WHILE .NOT. EOF()
COUNT WHILE Otdel = Otd TO N
? "‚ ®в¤Ґ«Ґ ", Otd, N, " б®ваг¤ЁЄ®ў"
Otd = Otdel && ‡ Ї®¬Ё ЁҐ б«Ґ¤го饣® ®в¤Ґ«
ENDDO
Ќ ¬ Ґ Ї®вॡ®ў « бм Є®¬ ¤ SKIP, ЁЎ® ў COUNT - бў®© Ґпўл©
жЁЄ« б ЇҐаҐ¬ҐйҐЁҐ¬ Ї® Ѓ„. Џ®пᥨ© вॡгҐв § ўҐа襨Ґ а Ў®вл.
Љ®¬ ¤ COUNT дЁЄбЁагҐв Є®Ґж Ѓ„ Ё Ї®б«Ґ¤Ё© а § ЇҐаҐ¤ Ґв бзҐвзЁЄ ў N,
Їа®Ёб室Ёв ўлў®¤; б®бв®пЁҐ EOF() = .T. б®еа пҐвбп Ё г« ў«Ёў Ґвбп
Є®¬ ¤®© DO WHILE, § ўҐаи о饩 жЁЄ«.
Ќ 宦¤ҐЁҐ бг¬¬л Ё б।ҐЈ® аЁд¬ҐвЁзҐбЄ®Ј®. Љ®¬ ¤
SUM <‘ЇЁб®Є ўлаN> <ѓа Ёжл> <“б«®ўЁп> TO <‘ЇЁб®Є ЇҐаҐ¬Ґле>
§ ®бЁв § 票Ґ бг¬¬л ¤«п Є ¦¤®Ј® <ўлаN>, Ї®«г祮© ҐЄ®в®а®¬
¬®¦Ґб⢥ § ЇЁбҐ© ЄвЁў®© Ѓ„, ў ᮮ⢥вбвўгойго (Ї® Ї®«®¦ҐЁо ў
бЇЁбЄҐ) ЇҐаҐ¬Ґго, Є®¬ ¤ AVERAGE б в®© ¦Ґ б ¬®© бвагЄвга®© Ё
¤Ґ©бвўЁҐ¬ ®в«Ёз Ґвбп ®в SUM «Ёим १г«мв ⮬ - б।Ё¬ аЁд¬ҐвЁзҐбЄЁ¬.
‚ FOXPRO <‘ЇЁб®Є ЇҐаҐ¬Ґле> ¬®¦® Ґ ЇаҐ¤гб¬ ваЁў вм (ЇаЁ
ўв®¬ вЁзҐбЄ®¬ ўлў®¤Ґ १г«мв в®ў ¤ЁбЇ«Ґ©), ҐЈ® ¬®¦® в Є¦Ґ
§ ¬Ґпвм ваЁЎг⮬ ARRAY <Њ ббЁў>. <Њ ббЁў> ¤®«¦Ґ Ўлвм § а ҐҐ
®ЇЁб , ў 1-© ҐЈ® н«Ґ¬Ґв § ®бЁвбп 1-© १г«мв в Ё в.¤.
ЏаЁ¬Ґа 3.13. ЋвЄа®Ґ¬ Ѓ„ Kadr Ё ©¤Ґ¬ б।Ё© бв ¦ SS Ё
б।оо § а Ў®вго Ї« вг SZ (Ї®«Ґ Zarp ЁбЇ®«м§гҐвбп ¤«п § 票©
§ а Ў®в®© Ї« вл) ¤«п ҐЇ®¬ҐзҐле г¤ «ҐЁҐ § ЇЁбҐ© (¤«п Ґ
гў®«ЁўиЁебп б®ваг¤ЁЄ®ў):
AVERAGE Stag, Zarp FOR .NOT.Deleted() TO SS, SZ .
ЏаЁ¬ҐпҐ¬ п Є ЄвЁў®© Ѓ„, Їа®Ё¤ҐЄбЁа®ў ®© Ё«Ё
®вб®авЁа®ў ®© Ї® Є«озг <‚ла>, Є®¬ ¤ б Ґпўл¬ жЁЄ«®¬
TOTAL ON <‚ла> TO<€¬п Ѓ„> FIELDS <‘ЇЁб®Є Ї®«Ґ©> <ѓа Ёжл> <“б«®ўЁп>
ᮧ¤ Ґв ®ўго Ѓ„ (ҐҐ ®Ў®§ з Ґв <€¬п Ѓ„>), ў Є®в®аго § ®бпвбп б㬬л
зЁб«®ўле Ї®«Ґ©, гЄ § ле ў Є®¬ ¤Ґ. ‘㬬Ёаговбп Ї®«п Ї®б«Ґ¤®ў ⥫м®
Ё¤гйЁе § ЇЁбҐ©, ¤«п Є®в®але § 票Ґ <‚ла> ®¤Ё Є®ў®. ’ ЄЁ¬
®Ўа §®¬, ¤«п Є ¦¤®© Ё¬Ґо饩бп ў ЄвЁў®© Ѓ„ ЈагЇЇл § ЇЁбҐ© б ®ЎйЁ¬
§ 票Ґ¬ Є«оз <‚ла> ᮧ¤ Ґвбп ® ¤ ®ў п § ЇЁбм, ᮤҐа¦ й п
гЄ § лҐ б㬬л. …б«Ё ЄвЁў п Ѓ„ Ґ гЇ®ап¤®зҐ , ўл Ї®«гзЁвҐ
ЎҐбЇ®«Ґ§го ®ўго Ѓ„. ‚ ®вбгвбвўЁҐ <‘ЇЁбЄ Ї®«Ґ©> ўла Ў влў овбп
Ёв®ЈЁ ¤«п ўбҐе зЁб«®ўле Ї®«Ґ©.
‘вагЄвга ᮧ¤ ў Ґ¬®© Ѓ„ Ё¤ҐвЁз бвагЄвгॠЁб室®© ЄвЁў®©
Ѓ„, Ї®н⮬㠤® б«Ґ¤Ёвм § ⥬, зв®Ўл а §¬Ґал Ї®¤л⮦Ёў Ґ¬ле Ї®«Ґ©
ў Ёб室®© Ѓ„ Ўл«Ё ¤®бв в®зл¬Ё ¤«п а §¬ҐйҐЁп б㬬 (ў ®ў®© Ѓ„).
ЏаЁ¬Ґа 3.14. Ѓ„ Kadr Їа®Ё¤ҐЄбЁа®ў Ї® Ї®«о Otdel.
TOTAL ON Otdel TO Itog FIELDS Zarp FOR .NOT.Deleted() .
Џ® Є ¦¤®¬г ®в¤Ґ«г Ўг¤Ґв ©¤Ґ б㬬 § а Ў®в®© Ї« вл; ҐбвҐб⢥®,
гў®«ЁўиЁҐбп Ґ гзЁвлў овбп. ‚ ®ў®© Ѓ„ Itog Ўг¤Ґв бв®«мЄ® § ЇЁбҐ©,
бЄ®«мЄ® § 票© Ї®«п Otdel ў Ѓ„ Kadr. ‚ Ёе Ї®«Ґ Zarp Ўг¤Ґв
ᮤҐа¦ вм б㬬㠧 а Ў®в®© Ї« вл Ї® ®в¤Ґ«г, Їа®зЁҐ Ї®«п " б«Ґ¤гов"
§ зҐЁп ®в ЇҐаў®© § ЇЁбЁ ў ᮮ⢥вбвўго饩 ЈагЇЇҐ Ёб室ле § ЇЁбҐ©:
д ¬Ё«Ёо, бв ¦ Ё в.Ї. Љ®Ґз®, ЇаЁ ўлў®¤Ґ, Єа®¬Ґ Ї®«Ґ© б㬬 б
ЁвҐаҐбгов «Ёим Є«озҐўлҐ Ї®«п, ўе®¤пйЁҐ ў <‚ла>. ‚ 襬 ЇаЁ¬ҐаҐ нв®
Ї®«Ґ Otdel. …б«Ё Ёб室 п Ѓ„ Ґ б®авЁа®ў « бм Ї® Є«озг <‚ла>,
Ўл« гЇ®ап¤®зҐ Їг⥬ Ё¤ҐЄбЁа®ў Ёп Ї® н⮬㠪«озг, Є®¬ ¤ TOTAL
®а¬ «м® дгЄжЁ®ЁагҐв, в®«мЄ® Ґб«Ё Ё¤ҐЄб - ЎҐ§ ваЁЎгв UNIQUE.
‚ п§лЄҐ FOXPRO Ё¬ҐҐвбп Є®¬ ¤ гЁўҐаб «м®Ј® ¤Ґ©бвўЁп
CALCULATE б в Є®© ¦Ґ бвагЄвга®©, Є Є г Є®¬ ¤ SUM, AVERAGE, ¤®ЇгбЄ ой п
ў бў®Ґ¬ бЇЁбЄҐ ўла ¦ҐЁ© б«Ґ¤гойЁҐ дгЄжЁЁ (ўҐ ҐҐ Ґ ЁбЇ®«м§г©вҐ!):
AVG(<‚лаN>) - б।ҐҐ аЁд¬ҐвЁзҐбЄ®Ґ § 票© <‚лаN>;
CNT() - бзҐвзЁЄ § ЇЁбҐ© ў ҐЄ®в®а®¬ ¬®¦Ґб⢥ § ЇЁбҐ©;
MAX(<‚ла>) - ¬ ЄбЁ¬ «м®Ґ § 票Ґ ўла ¦ҐЁп <‚ла>;
MIN(<‚ла>) - ¬ЁЁ¬ «м®Ґ § 票Ґ ўла ¦ҐЁп <‚ла>;
STD(<‚лаN>) - б।ҐЄў ¤а вЁзҐбЄ®Ґ ®вЄ«®ҐЁҐ ¤«п <‚лаN>;
SUM(<‚лаN>) - б㬬 § 票© <‚лаN> ¬®¦Ґб⢥ § ЇЁбҐ©;
VAR(<‚лаN>) - ¤ЁбЇҐабЁп § 票© <‚лаN>;
NPV(<‚лаN1>,<‚лаN2>,<‚лаN3>) - дЁ б®ў п дгЄжЁп (б¬. [3] ).
‚ла ¦ҐЁп <‚ла>,<‚лаN> ᮤҐа¦ в Ё¬п Ї®«п ЄвЁў®© Ѓ„ (Ё«Ё Ё¬Ґ
ҐбЄ®«мЄЁе Ї®«Ґ© ЄвЁў®© Ѓ„).
ЏаЁ¬Ґа 3.15. Џгбвм Ё¬Ґ P1 - P4 ®Ў®§ з ов Ї®«п ЄвЁў®© Ѓ„.
CALCULATE MAX(P2/P1), MIN(P3+P4), AVG(P1**2-SQRT(P3)) TO ARRAY Z
Ўг¤Ґв Ё¬Ґвм Ёв®Ј®¬ бў®ҐЈ® ўлЇ®«ҐЁп б«Ґ¤гойЁҐ § зҐЁп ў ¬ ббЁўҐ:
Z[1] - ¬ ЄбЁ¬г¬ ®в®иҐЁп § 票© Ї®«Ґ© P2 Ё P1;
Z[2] - ¬ЁЁ¬г¬ бг¬¬л § 票© Ї®«Ґ© P3 Ё P4;
Z[3] - б।ҐҐ аЁд¬ҐвЁзҐбЄ®Ґ ўла ¦ҐЁп AVG(P1**2-SQRT(P3)).
Љ ᮦ «ҐЁо, § ЇЁбЁ, ў Є®в®але ©¤Ґл ¬ ЄбЁ¬г¬ Ё ¬ЁЁ¬г¬, Ґ
гЄ §лў овбп. Љ®Ґз®, § 票п Z[1], Z[2] ¬®¦® ЁбЇ®«м§®ў вм ¤«п Ёе
Ї®ЁбЄ .
‘вагЄвга SCAN ... ENDSCAN, Ё¬Ґой пбп ў п§лЄҐ FOXPRO,
®Ў«ҐЈз Ґв ®Ўа Ў®вЄг Ѓ„. …Ґ з «м п Є®¬ ¤ Ё¬ҐҐв ўЁ¤
SCAN <ѓа Ёжл>, <“б«®ўЁп>
ЏаЁ¬Ґа 3.16. Ќ ©¤Ґ¬ ў Ѓ„ Prim б।Ё § ЇЁбҐ©, Ґ Ї®¬ҐзҐле
г¤ «ҐЁҐ, § ЇЁбм б ¬ ЄбЁ¬ «мл¬ ®в®иҐЁҐ¬ P2/P1 Ё § ЇЁбм б
¬ЁЁ¬ «м®© б㬬®© P3+P4, Ј¤Ґ P1 - P4 - Ї®«п Ѓ„ Prim.
DECLARE Z[2]
USE Prim
SET FILTER .NOT.Deleted()
GO TOP
Z[1] = P2/P1
Z[2] = P3+P4
STORE Recno() TO N1, N2
SCAN REST && ЋЇаҐ¤Ґ«Ё«Ё ®Ў« бвм ¤Ґ©бвўЁп ваЁЎг⮬ REST
IF P2/P1 > Z[1]
Z[1] = P2/P1
N1 = Recno()
ENDIF
IF P3+P4 < Z[2]
Z[2] = P3+P4
N2 = Recno()
ENDIF
ENDSCAN
‚¬Ґбв® FOR-гб«®ўЁп ў Є®¬ ¤Ґ SCAN ¬л ЁбЇ®«м§®ў «Ё дЁ«мва, ЁЎ®
㦮 ҐйҐ ¤® жЁЄ« SCAN ўл©вЁ ЇҐаўго § ЇЁбм, 㤮ў«Ґвў®апойго
гб«®ўЁо, Ё ЁбЇ®«м§гп ҐҐ Ї®«п, Ї®«гзЁвм ®вЇа ўлҐ § 票п Z[1],Z[2].
‚ п§лЄҐ CLIPPER ў¬Ґбв® бвагЄвгал SCAN ¬л ў®бЇ®«м§гҐ¬бп дгЄжЁҐ©
DBEval(), ®ЇЁб ®© ў Ї. 4.2.
‡ ¤ ЁҐ 3.6. ‚§пў § ®б®ўг Їа®Ја ¬¬г ЇаЁ¬Ґа 3.12, § ЇЁиЁвҐ
Їа®Ја ¬¬г, ўлў®¤пйго ¤«п Є ¦¤®Ј® ®в¤Ґ« Їа®жҐв ¦ҐйЁ-б®ваг¤ЁЄ®ў.
„«п Ї®¤бзҐв ЁбЇ®«м§г©вҐ в®«мЄ® Є®¬ ¤г COUNT. ЏаҐ¤ў аЁвҐ«м®
Їа®Ё¤ҐЄбЁаг©вҐ Ѓ„ Ї® Ї®«п¬ Otdel (Ј« ў®Ґ Ї®«Ґ) Ё Pol.
3.7. Ќ зЁ Ґ¬ а Ў®в вм б MEMO-Ї®«п¬Ё
ЏаҐЄа б п ўҐйм - дЁЄбЁа®ў л© а §¬Ґа § ЇЁбЁ ў .DBF-д ©«Ґ
Ў §л ¤ ле! €¬Ґ® нв® ®ЎҐбЇҐзЁў Ґв Ўлбвал© (Їаאַ©) ¤®бвгЇ Є
«оЎ®© § ЇЁбЁ: бЁб⥬ Ї® ®¬Ґаг § ЇЁбЁ ўлзЁб«пҐв ҐҐ ¤аҐб ў Ї ¬пвЁ.
Ќ® ў® ¬®ЈЁе ॠ«мле § ¤ з е Ґбвм ¤®Ў®бвм ў®бЁвм ў § ЇЁбм
Ёд®а¬ жЁо ЇҐаҐ¬Ґ®© ¤«Ёл. ‚ Ѓ„ Kadr (ЇаЁ¬Ґа 3.3) Ґо ¬®¦Ґв Ўлвм
"¤®бмҐ", Є б о饥бп б«г¦ҐЎле ЇҐаҐ¬ҐйҐЁ© б®ваг¤ЁЄ , § ¬Ґз Ё© Ё
Ў« Ј®¤ а®б⥩ Ї® ўлЇ®«Ґл¬ а Ў®в ¬ Ё в.Ї. ЌҐЄ®в®алҐ § ЇЁбЁ Ѓ„
¬®Јгв Ґ Ё¬Ґвм (е®вп Ўл ўаҐ¬Ґ®) в Є®© Ёд®а¬ жЁЁ.
„«п еа ҐЁп Ёд®а¬ жЁЁ ЇҐаҐ¬Ґ®© ¤«Ёл ЁбЇ®«м§гов «ЁЎ®
бЁ¬ў®«м®Ґ Ї®«Ґ, § 祮Ґ б ¬ ЄбЁ¬ «м®© ¤«Ё®©, «ЁЎ® MEMO-Ї®«Ґ.
‚ ЇҐаў®¬ б«гз Ґ Ґ¤®бв вЄ®¬ ¬®¦Ґв Ўлвм Ё§ЄЁ© (ўЇ«®вм ¤® 0 ў
®в¤Ґ«мле § ЇЁбпе) Їа®жҐв ЁбЇ®«м§®ў Ёп Ї®«п ¤«п еа ҐЁп ¤ ле.
Ља®¬Ґ в®Ј®, ў FOXPRO ¬ ЄбЁ¬ «м п ¤«Ё бЁ¬ў®«м®Ј® Ї®«п - 254 Ў ©в
(ў CLIPPER - 64 K), ¤ лҐ MEMO-Ї®«п Ё¬Ґо⠯।Ґ«мго ¤«Ёг 64 K.
MEMO-Ї®«п ЁбЇ®«м§гов Ї ¬пвм ¤Ё ¬ЁзҐбЄЁ: ®Ё 㢥«ЁзЁў овбп Ї®
¬ҐаҐ ¤®Ў®бвЁ. ‚ Є ¦¤®© § ЇЁбЁ .DBF-д ©« Ѓ„ Ё¬ҐҐвбп Ї®«Ґ,
§ Ё¬ о饥 10 Ў ©в, ¤«п ббл«ЄЁ MEMO-¤ лҐ, б ¬Ё нвЁ ¤ лҐ
а §¬Ґй овбп ў ®в¤Ґ«м®¬ д ©«Ґ б в ЄЁ¬ ¦Ґ Ё¬ҐҐ¬, Є Є г .DBF-д ©« ,
Ё а биЁаҐЁҐ¬ .DBT (CLIPPER) Ё«Ё .FPT (FOXPRO). Ѓг¤Ґ¬ §лў вм ҐЈ®
Memo-д ©«®¬.
Џ ¬пвм ў Memo-д ©«Ґ ўл¤Ґ«пҐвбп Ў«®Є ¬Ё, бв ¤ авл© а §¬Ґа Rb
Є®в®але ў п§лЄҐ CLIPPER а ўҐ 512 Ў ©в ¬, ў FOXPRO - 64 Ў ©в ¬.
…б«Ё е®вп Ўл ЇаЁЎ«Ё§ЁвҐ«м® Ё§ўҐбв б।пп ¤«Ё Rcp MEMO-¤ ле,
®ЎйҐҐ зЁб«® N § ЇЁбҐ© Ё б।Ё© Їа®жҐв Pr § ЇЁбҐ© б MEMO-¤ л¬Ё,
¬®¦® ©вЁ ЇаҐ¤Ї®« Ј Ґ¬лҐ § ва вл Ї ¬пвЁ Ї® д®а¬г«Ґ
N*10 + (N*Pr/100) * Rb * Int((Rcp + Rb -1)/Rb)
Ё ба ўЁвм Ёе б Ї®вҐжЁ «мл¬Ё § ва в ¬Ё бЁ¬ў®«м®Ґ Ї®«Ґ
¬ ЄбЁ¬ «м®© ¤«Ёл Rmax: N*Rmax. C« Ј Ґ¬®Ґ N*10 гзЁвлў Ґв а §¬ҐйҐЁҐ
ббл«®Є ў .DBF-д ©«Ґ. Џ®пв®, зв® ЇаЁ Ё§Є®¬ Їа®жҐвҐ Pr, в Є¦Ґ
Ґб«Ё Rmax > Rb, Rcp > Rb Ё Rmax >> Rcp, MEMO-Ї®«п ®Є ¦гвбп
ЇаҐ¤Ї®звЁвҐ«мҐҐ. Memo-д ©« - ®¤Ё ЇаЁ «оЎ®¬ зЁб«Ґ MEMO-Ї®«Ґ© ў
бвагЄвгॠЃ„. Џ®¤ ҐЈ® § Ј®«®ў®Є а б室гҐвбп 512 Ў ©в.
‚ FOXPRO ўл ¬®¦ҐвҐ § зЁвм а §¬Ґа Ў«®Є Rb Є®¬ ¤®© SET
BLOCKSIZE. Џ ¬пвм нЄ®®¬ҐҐ ЁбЇ®«м§гҐвбп ЇаЁ ¬ «ле Rb, ® ЇаЁ н⮬
бЁ¦ Ґвбп бЄ®а®бвм ¤®бвгЇ Є MEMO-¤ л¬ ЇаЁ 㢥«ЁзҐЁЁ Ёе ¤«Ёл.
‚ ‘“Ѓ„ Ё¬ҐҐвбп ¬®йл© Ў®а Є®¬ ¤ Ё дгЄжЁ© ¤«п а Ў®вл б
MEMO-Ї®«п¬Ё, ® ¤«п ЇҐаў®Ј® § Є®¬бвў ¬®¦® ®Ја ЁзЁвмбп Є®¬ ¤®©
REPLACE, Є®в®а п Ї®§ў®«пҐв Ёе Ї®«пвм, Ё Є®¬ ¤ ¬Ё DISPLAY, LIST,
Ї®§ў®«пойЁ¬Ё MEMO-Ї®«п ўлў®¤Ёвм.
ЏаЁ¬Ґа 3.17. ђ биЁаЁ¬ б Ї®¬®ймо гвЁ«Ёвл DBU (CLIPPER) Ё«Ё
Є®¬ ¤л MODIFY STRUCTURE (FOXPRO) бвагЄвгаг Ѓ„ Kadr, ¤®Ў ўЁў ў ҐҐ
MEMO-Ї®«Ґ Dosje, § ⥬ Їа®Ја ¬¬л¬ Їг⥬ ўҐбҐ¬ ў MEMO-Ї®«п
ҐЄ®в®але § ЇЁбҐ© Є Єго-«ЁЎ® Ёд®а¬ жЁо (Ґб«Ё ®бв ў«пҐвҐ Ї®«Ґ
Їгбвл¬, ¦Ё¬ ©вҐ ба §г Enter ў ®вўҐв ЇаЁЈ« 襨Ґ ACCEPT):
USE Kadr
DO WHILE .Not. EOF()
ACCEPT "‚ўҐ¤ЁвҐ Dosje. ‘®ваг¤ЁЄ " + Famil TO S
REPLACE Dosje WITH S && "WITH Dosje + S", Ґб«Ё ¤® ¤®Ї®«пвм
SKIP
ENDDO
LIST Famil, Dosje && Џа®б¬®ва ўўҐ¤Ґ®© MEMO-Ёд®а¬ жЁЁ
‚ п§лЄҐ CLIPPER ¤«п ЇҐаў® з «м®Ј® § ҐбҐЁп Ё«Ё § ¬Ґл MEMO-
¤ ле ¬®¦® ЁбЇ®«м§®ў вм Є®¬ ¤г REPLACE Dosje WITH MemoEdit() ,
¤«п ¤®Ї®«ҐЁп MEMO-Ї®«Ґ© ®ўл¬Ё ¤ л¬Ё - ®ЇҐа в®а REPLACE Dosje
WITH MemoEdit(Dosje); Є®¬ ¤ ACCEPT Ґ г¦ . ‡ ўҐаи п Ў®а
(¤®Ї®«ҐЁҐ) ⥪бв ў ०Ё¬Ґ MemoEdit(), 㦮 ¦Ё¬ вм Є« ўЁиЁ
CTRL-W. Џ®¤а®Ў® б।бвў а Ў®вл б MEMO-¤ л¬Ё а бᬮваҐл ў Ј«. 8.
ЏаЁ 㢥«ЁзҐЁЁ а §¬Ґа MEMO-¤ ле ¬®Јгв ў®§ЁЄ вм ҐЁбЇ®«м§гҐ¬лҐ
Ў«®ЄЁ, Є Є Ё ЇаЁ г¤ «ҐЁЁ § ЇЁбҐ©. “Ї«®вҐЁҐ Memo-д ©«®ў а бᬮв८
ў Ї. 3.8.
‡ ¤ ЁҐ 3.7. €§¬ҐЁвҐ Їа®Ја ¬¬г ЇаЁ¬Ґа 3.17 б ⥬, зв®Ўл ®
¤®Ї®«п« MEMO-¤ лҐ, Ё ®Їа®Ўг©вҐ ҐҐ Ѓ„ Kadr.
3.8. ЏҐаҐЁ¬Ґ®ўлў Ґ¬, бвЁа Ґ¬, Є®ЇЁа㥬, гЇ«®в塞
Ў §л ¤ ле
ЌЁ¦Ґ ¬л ў®бЇ®«м§гҐ¬бп Є®¬ ¤®© ЇҐаҐЁ¬Ґ®ў Ёп д ©« , Ё¬Ґо饩
ўЁ¤ RENAME <‘в ஥ Ё¬п> TO <Ќ®ў®Ґ Ё¬п>.
ђ биЁаҐЁп Ё¬Ґ ®Ўп§ ⥫мл, Ґб«Ё ®Ё Ґбвм. …б«Ё <Ќ®ў®Ґ Ё¬п> ᮤҐа¦Ёв
Їгвм Є д ©«г Ё«Ё гбва®©бвў®, д ©« ЇҐаҐ¬ҐбвЁвбп б®Ј« б® нвЁ¬ гЄ § Ёп¬.
Џ®ЇлвЄ ЇҐаҐЁ¬Ґ®ў вм ЄвЁўго Ѓ„ ўҐ¤Ґв Є ҐЇаҐ¤бЄ §гҐ¬л¬
Ї®б«Ґ¤бвўЁп¬. …б«Ё <Ќ®ў®Ґ Ё¬п> ¤гЎ«ЁагҐв Ё¬п бгйҐбвўго饣® д ©« ,
Є®¬ ¤ ЁЈ®аЁагҐвбп. …б«Ё ЇҐаҐЁ¬Ґ®ўлў Ґвбп Ѓ„ б MEMO-Ї®«п¬Ё, ¤®
ЇҐаҐЁ¬Ґ®ў вм Ё MEMO-д ©«, Ё зҐ ЇаЁ ®Ўа Ў®вЄҐ MEMO-Ї®«Ґ© ў®§ЁЄгв
®иЁЎЄЁ.
‘вЁа ЁҐ «оЎ®Ј® Ґ®вЄалв®Ј® (§ Єалв®Ј®) д ©« ॠ«Ё§гҐв
Є®¬ ¤ ERASE <€¬п д ©« б а биЁаҐЁҐ¬> Ё«Ё нЄўЁў «Ґв п Ґ©
Є®¬ ¤ DELETE FILE <€¬п д ©« б а биЁаҐЁҐ¬>. ЂаЈг¬Ґв Є®¬ ¤ ¬®¦Ґв
ўЄ«оз вм Ё Їгвм Є д ©«г.
‚ п§лЄ е FOXPRO Ё CLIPPER Ґбвм 2 Є®¬ ¤л Є®ЇЁа®ў Ёп д ©«®ў:
®¤ Є®ЇЁагҐв ЄвЁўго Ѓ„ Ё Ўг¤Ґв а бᬮвॠЇ®§¤ҐҐ, ¤агЈ п
ЇаЁ¬ҐЁ¬ Є Ґ®вЄалвл¬ (§ Єалвл¬) д ©« ¬ «оЎ®Ј® вЁЇ :
COPY <€¬п Ёб室®Ј® д ©« б а биЁаҐЁҐ¬> TO <€¬п д ©« -Є®ЇЁЁ б
а биЁаҐЁҐ¬>. „ п Є®¬ ¤ ҐЇаЁЈ®¤ ¤«п Є®ЇЁа®ў Ёп Ѓ„ б
MEMO-Ї®«п¬Ё. …б«Ё ЇҐаҐ¤ ЇаЁ¬ҐҐЁҐ¬ «оЎ®© Ё§ 2 Є®¬ ¤ Є®ЇЁа®ў Ёп
бгйҐбвў®ў « д ©« б Ё¬ҐҐ¬ д ©« -Є®ЇЁЁ, ® г«ЁагҐвбп ЎҐ§
ЇаҐ¤гЇаҐ¦¤ҐЁп.
„агЈ п, "бЇҐжЁ «Ё§Ёагой пбп" д ©« е Ѓ„ Є®¬ ¤ Є®ЇЁа®ў Ёп
COPY TO <€¬п д ©« -Є®ЇЁЁ> FIELDS<‘ЇЁб®Є Ї®«Ґ©> <ѓа Ёжл> <“б«®ўЁп>
<ЏаҐ¤бв ў«ҐЁҐ>, Є®ЇЁагҐв Ґ в®«мЄ® .DBF-д ©«, ® Ё Memo-д ©«
(Ґб«Ё ў Ѓ„ Ё¬Ґовбп MEMO-Ї®«п). ” ©«-Є®ЇЁп ¬®¦Ґв Ўлвм Ў §®© ¤ ле
Ё«Ё ASCII-д ©«®¬, д®а¬ § ЇЁбЁ ¤ ле ў Є®в®ал© ®ЇаҐ¤Ґ«пҐвбп
Ґ®Ўп§ ⥫мл¬ ваЁЎг⮬ <ЏаҐ¤бв ў«ҐЁҐ>. Љ®ЇЁаговбп Ї®«п, гЄ § лҐ
ў бЇЁбЄҐ Ї®«Ґ©. …б«Ё ваЁЎгв FIELDS <‘ЇЁб®Є Ї®«Ґ©> ®вбгвбвўгҐв,
Є®ЇЁаговбп ўбҐ Ї®«п. …б«Ё Є®ЇЁа®ў ЁҐ Їа®Ёб室Ё«® ЇаЁ ўЄ«о祮¬
Ё¤ҐЄбҐ, § ЇЁбЁ ў Є®ЇЁЁ а §¬Ґй овбп ў Ї®ап¤ЄҐ, § ¤ ®¬ Ё¤ҐЄб®¬.
ЏаЁ а Ў®вҐ б Ѓ„ б«Ґ¤гҐв Ё§ЎҐЈ вм Ґ®Ўа вЁ¬ле, Ї®вҐжЁ «м®
®Ї бле ¤Ґ©бвўЁ©. Џ®н⮬㠥 ४®¬Ґ¤гҐвбп ЇаЁ¬Ґпвм Є®¬ ¤г PACK,
гЇ«®впойго .DBF-д ©« Їг⥬ Ё§кпвЁп § ЇЁбҐ©, Ї®¬ҐзҐле г¤ «ҐЁҐ.
ЌҐЇ®« ¤ЄЁ б н«ҐЄва®ЇЁв ЁҐ¬, б«гз ©®Ґ ®вЄ«о票Ґ ќ‚Њ ¬®Јгв ЇаЁўҐбвЁ
Є гва ⥠¤ ле ЇаЁ ҐҐ ўлЇ®«ҐЁЁ. „агЈ п ЇаЁзЁ - Є®¬ ¤ PACK
п§лЄ CLIPPER Ґ гЇ«®впҐв Memo-д ©«. ЏаҐ¤« Ј Ґвбп ЁбЇ®«м§®ў вм
Є®¬ ¤г COPY TO.
ЏаЁ¬Ґа 3.18. Ѓ«®Є гЇ«®вҐЁп Ў §л ¤ ле, ўЄ«оз п Memo-д ©«.
* Ѓ«®Є ЇЁб ¤«п CLIPPER, ¤«п FOXPRO ¤® ў 4 бва®Є е § ¬ҐЁвм
* ".DBT" ".FPT"; бва®ЄЁ, Ј¤Ґ г¦л § ¬Ґл, б¤ўЁгвл ўЇа ў®
* Ѓ«®Є Allpack Ґ б « Ґ ¤ г Ґ в ЇаЁ¬Ґпвм Є ® в Є а л в ® © Ѓ„
FUNCTION AllPack
PARAM DBName && €¬п Ѓ„ ў ўЁ¤Ґ бва®ЄЁ ЎҐ§ а биЁаҐЁп
PRIVATE A, R
R = Select() && ‡ Ї®¬Ё ЁҐ ⥪г饩 а Ў®зҐ© ®Ў« бвЁ
A = DBName + ".DBF"
RENAME &A TO _Vrem.DBF && ЏҐаҐЁ¬Ґ®ў ЁҐ Ёб室®Ј® .DBF-д ©«
A = DBNAME + ".DBT"
IF File(A) && Џа®ўҐаЄ «ЁзЁп MEMO-Ї®«Ґ© ў Ѓ„
RENAME &A TO _Vrem.DBT && ЏҐаҐЁ¬Ґ®ў ЁҐ Ёб室®Ј® MEMO-д ©«
ENDIF
SELECT 0 && ЏҐаҐЄ«о票Ґ ЇҐаўго бў®Ў®¤го ®Ў« бвм
USE _Vrem && ЋвЄалвЁҐ Ёб室®© Ў §л ¤ ле
COPY TO &DBName FOR .NOT.Deleted() && Љ®ЇЁа®ў ЁҐ б® б¦ вЁҐ¬
USE && ‡ ЄалвЁҐ Ёб室®© Ў §л ¤ ле
ERASE _Vrem.DBF && “¤ «ҐЁҐ Ёб室®Ј® .DBF-д ©«
IF File("_Vrem.DBT")
ERASE _Vrem.DBT && “¤ «ҐЁҐ Ёб室®Ј® MEMO-д ©«
ENDIF
SELECT (R) && ‚®§ўа в Є ЇаҐ¦Ґ© а Ў®зҐ© ®Ў« бвЁ
RETURN
…б«Ё ў аЁ©®Ґ ®вЄ«о票Ґ ќ‚Њ Їа®Ё§®©¤Ґв ЇаЁ а Ў®вҐ Ў«®Є , в®
Ёб室 п Ѓ„ б®еа Ёвбп «ЁЎ® Ї®¤ ЇҐаў® з «мл¬ Ё¬ҐҐ¬, «ЁЎ® Ї®¤
Ё¬ҐҐ¬ _Vrem. Џ®б«Ґ гЇ«®вҐЁп Ѓ„ 㦮 ў®бᮧ¤ вм Ё¤ҐЄбл (Ґб«Ё ®Ё
бгйҐбвў®ў «Ё) Є®¬ ¤®© REINDEX, ®вЄалў Ѓ„ б® бЇЁбЄ®¬ Ё¤ҐЄб®ў.
Ѓ«Ё§Є Ї® § зҐЁо Є Є®¬ ¤ ¬ Є®ЇЁа®ў Ёп Є®¬ ¤ APPEND FROM:
APPEND FROM <Ѓ„> <ЋЎ« бвм ¤Ґ©бвўЁп> FIELDS<‘ЇЁб®Є Ї®«Ґ©> <“б«®ўЁп>.
Ћ ®вЄалў Ґв д ©«-Ёбв®зЁЄ <Ѓ„> (Ґб«Ё нв <Ѓ„> Ўл« ®вЄалв ¤® Є®¬ ¤л
APPEND, б«Ґ¤гҐв ЇаҐ¤ў аЁвҐ«м® § Єалвм ҐҐ) Ё ЁбЇ®«м§гҐв ҐЈ® § ЇЁбЁ
¤«п ᮧ¤ Ёп ᮮ⢥вбвўго饣® зЁб« ®ўле, ¤®Ў ў«пҐ¬ле ў Є®Ґж
ЄвЁў®© Ѓ„. …б«Ё бЇЁб®Є Ї®«Ґ© Ґ § ¤ , в® § ЇЁбЁ Є®ЇЁаговбп ®¤ Є
®¤®©, Ё зҐ Є®ЇЁаговбп § 票п в®«мЄ® гЄ § ле Ї®«Ґ© д ©« -Ёбв®зЁЄ ,
ЁлҐ Ї®«п (Ґб«Ё ®Ё Ґбвм) ў ®ў®© § ЇЁбЁ Ґ § Ї®«повбп. ЏаЁ § ¤ ®¬
FOR-гб«®ўЁЁ § ЇЁбЁ Ё§ ®Ў« бвЁ ¤Ґ©бвўЁп (Ї® 㬮«з Ёо - ўҐбм д ©«-Ёбв®зЁЄ)
®вЎЁа овбп Ї® н⮬г гб«®ўЁо. ЂаЈг¬Ґв <Ѓ„> ¬®¦Ґв Ўлвм § ¤ ў ўЁ¤Ґ
«ЁвҐа « (Ё¬ҐЁ Ѓ„ Ё«Ё Ё¬ҐЁ ASCII-д ©« ) «ЁЎ® ў ўЁ¤Ґ ( <‚лаC> ).
…б«Ё ЄвЁў п Ѓ„ Ўл« Їгбв®©, Ё¬ҐҐв ¬Ґбв® ®Ўлл箥 Є®ЇЁа®ў ЁҐ.
Љ®¬ ¤л Є®ЇЁа®ў Ёп ҐаҐ¤Є® ЇаЁ¬Ґпов ¤«п ᮧ¤ Ёп а Ў®зҐ© Ѓ„
Ї®¤ Є®ЄаҐвго § ¤ зг (Ї®¤§ ¤ зг), ®вЎЁа п ў Ѓ„ «Ёим г¦лҐ ¤ лҐ
Ё б®Єа й п ўаҐ¬п ®Ўа Ў®вЄЁ ¤ ле § бзҐв 㬥м襨п а §¬Ґа®ў Ѓ„.
‡ ¤ ЁҐ 3.8. ‘®§¤ ©вҐ Їгбвго Ѓ„ Rab1 б Ї®«п¬Ё Famil (д ¬Ё«Ёп
Ё ЁЁжЁ «л «Ёз®бвЁ), Dtr (¤ в ஦¤ҐЁп), NumD (зЁб«® ¤ҐвҐ©). ‘
Ї®¬®ймо Є®¬ ¤л APPEND FROM ЇҐаҐҐбЁвҐ ў Rab1 ¤ лҐ Ё§ Ѓ„ Kadr
(ЇаЁ¬Ґа 3.3) Ё гЎҐ¤ЁвҐбм ў Їа ўЁ«м®бвЁ ЇҐаҐ®б , ўлЇ®«Ёў LIST
(Ї®«Ґ NumD ®бв Ґвбп Їгбвл¬).
3.9. ‚лЇ®«пҐ¬ б®авЁа®ўЄг § ЇЁбҐ© Ў §л ¤ ле
‘®авЁа®ўЄ Ѓ„ ўлЇ®«пҐвбп Їг⥬ ᮧ¤ Ёп ®ў®© Ѓ„, ў Є®в®а®©
дЁ§ЁзҐбЄ®Ґ а §¬ҐйҐЁҐ § ЇЁбҐ© ᮮ⢥вбвўгҐв § ¤ ®¬г ЇаЁжЁЇг. Џ®
㬮«з Ёо зЁб«®ўлҐ Ї®«п гЇ®а冷稢 овбп Ї® ў®§а бв Ёо, ¤ вл - ў
еа®®«®ЈЁзҐбЄ®¬ Ї®ап¤ЄҐ, бва®ЄЁ Ї®«гз ов "б«®ў аго"
Ї®б«Ґ¤®ў ⥫м®бвм, Ї®а冷Є «®ЈЁзҐбЄЁе § 票© в Є®ў: б з « .F.,
§ ⥬ .T..
‘®авЁа®ўЄ - ўаҐ¬пҐ¬ЄЁ© Їа®жҐбб, 㦥 Ї®н⮬г ४®¬Ґ¤гов
ЇаЁ¬Ґпвм ҐҐ ०Ґ, з йҐ - Ё¤ҐЄбЁа®ў ЁҐ. ‚Є«о票Ґ ®ўле § ЇЁбҐ©
ў а ҐҐ ®вб®авЁа®ў го Ѓ„ в Є¦Ґ Їа®ЁЈалў Ґв Ї® ўаҐ¬ҐЁ Ёе ўЄ«о票о
ў Ё¤ҐЄб, ЇаЁзҐ¬ «Ёим Ї®б«Ґ¤оо а Ў®вг бЁб⥬ ЎҐаҐв ᥡп.
Џ®н⮬㠢 Ў®«миЁе Ѓ„ б®авЁа®ўЄ ®Їа ў¤ , «Ёим Є®Ј¤ ¤ лҐ
®в®бЁвҐ«м® бв вЁзл, ᮧ¤ ў Ґ¬ п гЇ®а冷祮бвм § ЇЁбҐ©
ЁбЇ®«м§гҐвбп ў® ¬®ЈЁе § ¤ з е Ё«Ё ¤«ЁвҐ«м®Ґ ўаҐ¬п. ЏаЁ н⮬
¤агЈЁҐ ў аЁ вл Ёе гЇ®а冷祮бвЁ ®ЎҐбЇҐзЁў овбп Ё¤ҐЄбЁа®ў ЁҐ¬ Ѓ„.
Ќг¦® в Є¦Ґ Ё¬Ґвм ў ўЁ¤г, зв® б®авЁа®ўЄҐ вॡгҐвбп १Ґаў Ї ¬пвЁ
¤ЁбЄҐ, ў¤ў®Ґ Ў®«миЁ©, 祬 Ї ¬пвм, § пв п Ёб室®© Ѓ„.
‘®авЁа®ўЄг § ЇЁбҐ© ЄвЁў®© Ѓ„ ўлЇ®«пҐв Є®¬ ¤
SORT ON <‘ЇЁб®Є Ї®«Ґ©> TO <€¬п ®ў®© Ѓ„> <ѓа Ёжл> <“б«®ўЁп> .
ќ«Ґ¬Ґв бЇЁбЄ Ї®«Ґ© ¬®¦Ґв б®Їа®ў®¦¤ вм ваЁЎгв /A (б®авЁа®ўЄ Ї®
ў®§а бв Ёо зЁбҐ«, ¤ в Ё в.Ї.), /D (б®авЁа®ўЄ Ї® гЎлў Ёо) Ё«Ё /‘
(б®авЁа®ўЄ бЁ¬ў®«м®Ј® Ї®«п, Ґ гзЁвлў ой п ॣЁбва ЎгЄў). ЂваЁЎгв
/A ¬®¦® Ґ ЇЁб вм, ваЁЎгв /DC ᮥ¤ЁпҐв б¬лб« ¤ўге ваЁЎгв®ў.
Џ®а冷Є Ї®«Ґ© ў <‘ЇЁбЄҐ Ї®«Ґ©> Ё¬ҐҐв § 票Ґ: ЇҐаў®Ґ
Ї®«Ґ бзЁв Ґвбп Ј« ўл¬, ЇаЁ®аЁвҐв б«Ґ¤гойЁе - гЎлў Ґв.
“Ї®а冷祮бвм Ї® Ј« ў®¬г Ї®«о - Ј«®Ў «м п, Ї® ®бв «мл¬ -
«®Є «м п, ў ЇаҐ¤Ґ« е Ї®¤¬®¦Ґбвў § ЇЁбҐ©.
ЏаЁ¬Ґа 3.19. Ќг¦® ў Ѓ„ Kadr (б¬. ЇаЁ¬Ґа 3.3) а §¬ҐбвЁвм
§ ЇЁбЁ ЈагЇЇ ¬Ё, ®в¤Ґ« § ®в¤Ґ«®¬ (Ј«®Ў «мл© Ї®а冷Є), ў Є ¦¤®©
ЈагЇЇҐ - а §¤Ґ«м® "¬г¦бЄЁҐ" Ё "¦ҐбЄЁҐ" § ЇЁбЁ («®Є «мл© Ї®а冷Є).
"Њг¦бЄЁҐ" § ЇЁбЁ Ўг¤Ґ¬ а §¬Ґй вм ¤® "¦ҐбЄЁе", Ї®бЄ®«мЄг § 票Ґ
"Њ“†" Ї®«п Pol Ї® «д ўЁвг Ё¤Ґв Ї®б«Ґ "†…Ќ", вॡгҐвбп ваЁЎгв /D;
зв®Ўл ЁбЄ«озЁвм ў«ЁпЁҐ ॣЁбва ЎгЄў, гЄ ¦Ґ¬ Ё ваЁЎгв /C (Ґб«Ё
ў¬Ґбв® § 票© "Њ“†","†…Ќ" § ЇЁб л "¬г¦","¦Ґ", нв® Ґ Ї®ў«ЁпҐв).
*** ЏаЁ б®авЁа®ўЄҐ Їа®Ја ¬¬ § ®¤® гЇ«®впҐв .DBF-д ©«
USE Kadr
SET DELETED ON && „Ґ« Ґ¬ ҐўЁ¤Ё¬л¬Ё § ЇЁбЁ,Ї®¬ҐзҐлҐ г¤ «ҐЁҐ
SORT ON Otdel/C, Pol/DC TO _Temp && _Temp - Ё¬п ўаҐ¬Ґ®© Ѓ„
USE && ‡ Єалў Ґ¬ Ѓ„ Kadr
COPY FILE _Temp.dbf TO Kadr.dbf && ‡ ¬ҐпҐ¬ ЇаҐ¦ҐҐ ᮤҐа¦ ЁҐ Ѓ„
ERASE _Temp.dbf && ‘вЁа Ґ¬ а Ў®зго Ѓ„ _Temp
‡ ¬ҐвЁ¬, зв® Ё¬ҐўиЁҐбп ЇаҐ¦¤Ґ Ё¤ҐЄбл Ѓ„ Kadr ¤® ў®бᮧ¤ вм,
ўлЇ®«Ёў Є®¬ ¤л USE Kadr INDEX <‘ЇЁб®Є Ё¤ҐЄб®ў>, REINDEX.
€в Є, б®авЁа®ўЄ Ї® бЇЁбЄг Ї®«Ґ©, а ў® Є Є Ё Ё¤ҐЄбЁа®ў ЁҐ
Ї® б®бв ў®¬г Є«озг, Ї®§ў®«пҐв Ї®«гзЁвм Ї®б«Ґ¤®ў ⥫м®бвм § ЇЁбҐ©
Ѓ„ б ЁҐа аеЁзҐбЄ®© (Ґ пў®©) бвагЄвга®©. ‘®авЁа®ўЄ ¬®¦Ґв Ўлвм
ўлЇ®«Ґ ЎҐ§ Є®¬ ¤л SORT, Є®ЇЁа®ў ЁҐ¬ Їа®Ё¤ҐЄбЁа®ў ®©
ᮮ⢥вбвўгойЁ¬ ®Ўа §®¬ Ѓ„ ЇаЁ гб«®ўЁЁ, зв® нв®в Ё¤ҐЄб - ўҐ¤гйЁ©.
„«п 㢥«ЁзҐЁп "ЇаЁў«ҐЄ ⥫м®бвЁ" Є®¬ ¤л SORT п§лЄ FOXPRO
ЇаҐ¤гб¬ ваЁў Ґв ¤®Ї®«ЁвҐ«мл© ҐҐ ваЁЎгв: FIELDS <‘ЇЁб®Є Ї®«Ґ© ®ў®©
Ѓ„>. Џ®«гз Ґвбп, зв® ЇаЁ б®авЁа®ўЄҐ ¬л ¬®¦Ґ¬ б®Єа й вм в Ў«Ёжг (Ѓ„)
Ї® «оЎ®¬г Ё§¬ҐаҐЁо. Њ®Јгв Ўлвм гЄ § л Ї®«п Ё§ ¤®зҐаЁе Ѓ„ Ї®
®в®иҐЁо Є ЄвЁў®© Ѓ„, ҐбвҐб⢥®, гв®зҐлҐ «Ё ᮬ Ё«Ё Ё¬ҐҐ¬
Ѓ„. „«п ўбв ўЄЁ ў а ҐҐ ®вб®авЁа®ў го Ѓ„ ®ўле § ЇЁбҐ© ў FOXPRO
ЁбЇ®«м§гов Є®¬ ¤г INSERT, ® ¬Ґбв® ўбв ўЄЁ ®ЇаҐ¤Ґ«пҐв Ї®«м§®ў ⥫м.
‡ ¤ ЁҐ 3.9. ‘®бв ўЁвм ®ўл© ў аЁ в Їа®Ја ¬¬л ЇаЁ¬Ґа 3.19.
‚ Ґ© ) Їа®Ё¤ҐЄбЁа®ў вм Ѓ„ Kadr Ї® б®бв ў®¬г Є«озг (Ї®«п Otdel,
Pol); Ў) бЄ®ЇЁа®ў вм Ѓ„ Kadr; ў) г¤ «Ёвм Ѓ„ Kadr; Ј) ЇҐаҐЁ¬Ґ®ў вм
Є®ЇЁо, гЄ § ў Kadr Є Є ®ў®Ґ Ё¬п.
3.10. ЋЎҐбЇҐзЁў Ґ¬ ў§ Ё¬®¤Ґ©бвўЁҐ Ў § ¤ ле
€§ Ј«. 2 ўл § ҐвҐ, Є Є гбв ў«Ёў вм ᮮ⢥вбвўЁҐ § ЇЁбҐ©
¬ вҐаЁбЄ®© Ё ¤®зҐаЁе Ѓ„. Ља®¬Ґ в®Ј®, ў ¬ Ё§ўҐбв®, зв® Ї®«п
®вЄалвле Ѓ„, гв®зҐлҐ «Ё б ¬Ё Ё«Ё Ё¬Ґ ¬Ё Ѓ„, ¬®Јгв ЁбЇ®«м§®ў вмбп
б®ў¬Ґбв®. ‡¤Ґбм ¦Ґ ¬л а бᬮваЁ¬ ¤ўҐ Є®¬ ¤л б Ґпўл¬ жЁЄ«®¬,
ॠ«Ё§гойЁҐ ¬ бб®ўго ®Ўа Ў®вЄг § ЇЁбҐ©.
Љ®¬ ¤ JOIN ®бгйҐбвў«пҐв ў§ Ё¬®¤Ґ©бвўЁҐ ЄвЁў®© Ѓ„ (Ѓ„1) Ё
¤агЈ®© ®вЄалв®© Ѓ„ (Ѓ„2), д®а¬Ёагп Ёе ®б®ўҐ ®ўго Ѓ„ Їг⥬
Ї®бв஥Ёп § ЇЁбЁ Ё§ Є ¦¤®© Ї ал (§ ЇЁбм Ѓ„1, § ЇЁбм Ѓ„2),
㤮ў«Ґвў®апо饩 FOR-гб«®ўЁо, гЄ § ®¬г ў Є®¬ ¤Ґ JOIN:
JOIN WITH <ЋЎ« бвм> TO<Ќ®ў п Ѓ„> <FOR-гб«®ўЁҐ> FIELDS<‘ЇЁб®Є Ї®«Ґ©>
ЂваЁЎгв <ЋЎ« бвм> (а Ў®з п ®Ў« бвм Ў §л Ѓ„2) ¬®¦Ґв Ўлвм § ¤
®¬Ґа®¬ ®Ў« бвЁ, в Є¦Ґ «Ё ᮬ Ё«Ё Ё¬ҐҐ¬ Ѓ„2. ‚ <‘ЇЁбЄҐ Ї®«Ґ©>
¬®Јгв гЄ §лў вмбп Ї®«п Ѓ„1 Ё Ѓ„2 (Ї®«п Ѓ„2 - б гв®зҐЁҐ¬ Ё¬ҐЁ).
…б«Ё ваЁЎгв FIELDS<‘ЇЁб®Є Ї®«Ґ©> Ґ § ¤ , ў ®ўго Ѓ„
ўЄ«оз овбп ўбҐ Ї®«п ¤ўге Ёб室ле Ѓ„.
ЏаЁ¬Ґа 3.20. ‚ Ѓ„ Student Ё¬Ґовбп Ї®«п Famil, Pol, Fak
(д Єг«мвҐв), Spec (бЇҐжЁ «м®бвм) Ё ¤а., ЇаЁзҐ¬ бЇҐжЁ «м®бвм § ¤
иЁд஬. ‚ Ѓ„ SpecBD Ё¬Ґовбп Ї®«п Shifr (иЁда бЇҐжЁ «м®бвЁ, Є Є Ё
ў Ї®«Ґ Spec Ѓ„ Student), Name ( §ў ЁҐ бЇҐжЁ «м®бвЁ). „«п ўлў®¤
д®а¬л, ў Є®в®а®© д ¬Ё«Ёп бв㤥в б®Їа®ў®¦¤ Ґвбп §ў ЁҐ¬
бЇҐжЁ «м®бвЁ, ¬л ¬®Ј«Ё Ўл гбв ®ўЁвм бўп§м ¤ўге Ѓ„ (SET RELATION).
Ђ«мвҐа вЁў®© пў«пҐвбп ᮧ¤ ЁҐ а Ў®зҐ© Ѓ„ _Temp б Ї®«п¬Ё Famil,
Pol, Fak, Name:
USE SpecBD && ЋвЄалў Ґ¬ Ѓ„ б а биЁда®ўЄ®© бЇҐжЁ «м®бвЁ
SELECT 2 && Ќ § з Ґ¬ а Ў®зго ®Ў« бвм ¤«п Ѓ„ Student
USE Student
JOIN WITH SpecBD TO _Temp FOR Spec = SpecBD->Shifr ;
FIELDS Famil, Pol, Fak, SpecBD->Name
Љ®¬ ¤ JOIN ўлЇ®«пҐв ¤ўгЄа вл© ЇҐаҐЎ®а § ЇЁбҐ©, а бб¬ ваЁў п
ў 室Ґ ЇҐаҐЎ®а N*M § ЇЁбҐ©, Ј¤Ґ N, M - Є®«ЁзҐбвў § ЇЁбҐ©
Ёб室ле Ѓ„. ‚ § ўЁбЁ¬®бвЁ ®в е а ЄвҐа FOR-гб«®ўЁп зЁб«® § ЇЁбҐ©
®ў®© Ѓ„ ¬®¦Ґв ®Є § вмбп «оЎл¬, ў з бв®бвЁ, Ў«Ё§ЄЁ¬ Є ЇаҐ¤Ґ«г N*M.
…б«Ё, ЇаЁ¬Ґа, N = M =1000, в® ¬®¦Ґв Ўлвм ᮧ¤ ® ¤® ¬Ё««Ё®
§ ЇЁбҐ©. ЌҐг¬Ґ«®Ґ ЇаЁ¬ҐҐЁҐ JOIN ў Ў®«миЁе Ѓ„ з бв® ўҐ¤Ґв Є
ЇҐаҐа б室㠢६ҐЁ Ё ¤ЁбЄ®ў®© Ї ¬пвЁ. ‚ п§лЄҐ FOXPRO ४®¬Ґ¤гҐвбп
ЁбЇ®«м§®ў вм Ґ JOIN, Ў®«ҐҐ нд䥪⨢го Ё ЈЁЎЄго Є®¬ ¤г SELECT.
Љ®¬ ¤ UPDATE ЁбЇ®«м§гҐв ўбв஥го Є®¬ ¤г REPLACE (б¬.
Ї.3.3) ¤«п ®Ў®ў«ҐЁп ¤ ле ЄвЁў®© Ѓ„ (Ѓ„1) ¤ л¬Ё ¤агЈ®©
®вЄалв®© Ѓ„ (Ѓ„2), ЇаЁзҐ¬ ў ®Ў®ў«ҐЁЁ § ЇЁбЁ б Є«о箬 K гз бвўгҐв
ЈагЇЇ § ЇЁбҐ© Ѓ„2, Є«оз Є®в®але Ё¬ҐҐв § 票Ґ K. ЂЄвЁў п
(®Ў®ў«пҐ¬ п) Ѓ„ ¤®«¦ Ўлвм Їа®Ё¤ҐЄбЁа®ў Ё«Ё ®вб®авЁа®ў
Ї® н⮬㠪«озг, зв® ¦Ґ« вҐ«м® Ё ¤«п Ѓ„2 (гбЄ®апҐвбп ®Ўа Ў®вЄ ).
…б«Ё ¦Ґ Ѓ„2 Ґ гЇ®ап¤®зҐ , нв® ®Ў®§ з ов ваЁЎг⮬ RANDOM;
¤«п ®вЎ®а § ЇЁбҐ© б ®¤Ё Є®ўл¬ Є«о箬 ўлЇ®«пҐвбп Їа®бв®© ЇҐаҐЎ®а.
Љ®¬ ¤ UPDATE Ё¬ҐҐв б«Ґ¤гойго бвагЄвгаг:
UPDATE ON <Љ«оз> FROM <ЋЎ« бвм> <Љ®¬ ¤ REPLACE> RANDOM .
Џ а ¬Ґва <ЋЎ« бвм> - нв® Ё¬п Ё«Ё «Ё б Ѓ„.
ЏаЁ ®Ў®ў«ҐЁЁ ўбҐе § ЇЁбҐ© Ѓ„1 ®Ё ¤®«¦л Ё¬Ґвм гЁЄ «млҐ
§ зҐЁп Є«оз , Ё зҐ ®Ў®ў«пҐвбп «Ёим ®¤ § ЇЁбм (ЇҐаў п) ¤«п
Є ¦¤®Ј® § зҐЁп Є«оз . ’ॡ®ў ЁҐ гЁЄ «м®бвЁ Є«оз Ѓ„2 Ґ
а бЇа®бва пҐвбп. ‘Ёвг жЁп, Є®Ј¤ ¤«п § ЇЁбЁ Ѓ„1 Ґв Ї®¤е®¤п饩
§ ЇЁбЁ ў Ѓ„2, бзЁв Ґвбп ®а¬ «м®© (§ ЇЁбм Ѓ„1 Ґ ®Ў®ў«пҐвбп).
ЏаЁ¬Ґа 3.21. ЋЎ®ў«пҐ¬®© Ѓ„ пў«пҐвбп Ў § Account б гЁЄ «мл¬
Ї®«Ґ¬ Num (®¬Ґа бзҐв Є«ЁҐв ) Ё Ї®«Ґ¬ Sum (¤ҐҐ¦ п б㬬 н⮬
бзҐвҐ). ЋЎ®ў«ҐЁҐ б®бв®Ёв ў бпвЁЁ б® бзҐв®ў а б室®ў ⥠Ё«Ё
ЁлҐ Ї®ЄгЇЄЁ, ᢥ¤ҐЁп ® Є®в®але ЇаҐ¤бв ў«Ґл Ї®«п¬Ё Ras (а б室) Ё
Num (®¬Ґа бзҐв ) ў Ѓ„ Trati. ‚ нв®© Ѓ„ Ї®«Ґ Num Ґ гЁЄ «м®, ЁЎ®
Є«ЁҐв ¬®¦Ґв ᤥ« вм ҐбЄ®«мЄ® Ї®ЄгЇ®Є.
USE Trati &&Ѓ„ Ґ Їа®Ё¤ҐЄбЁа®ў Ё Ґ ®вб®авЁа®ў Ї® Є«озг Num
SELECT 2 && Ќ § з Ґ¬ а Ў®зго ®Ў« бвм ¤«п Ѓ„ Account
USE Account
INDEX ON Num TO NumAc
UPDATE ON Num FROM Trati RANDOM; && Љ®¬ ¤ Їа®¤®«¦ Ґвбп Ё¦Ґ
REPLACE Sum WITH Sum - Trati->Ras
Ћ¤ Є®¬ ¤ REPLACE ¬®¦Ґв ®Ў®ў«пвм Ё ҐбЄ®«мЄ® Ї®«Ґ© § ЇЁбЁ.
’ЁЇЁзл¬ ЇаЁ¬ҐҐЁҐ¬ Є®¬ ¤л UPDATE пў«пҐвбп ЇҐаҐ®б ў Ёб室го Ѓ„
१г«мв в®ў ®Ўа Ў®вЄЁ ҐЄ®в®а®Ј® ҐҐ Ї®¤¬®¦Ґбвў - а Ў®зҐ© Ѓ„.
‡ ¤ ЁҐ 3.10. Ќ ®б®ўҐ Ѓ„ Kadr (б¬. ЇаЁ¬Ґа 3.3) ᮧ¤ ©вҐ
а Ў®зго Ѓ„, ўЄ«озЁў ў ҐҐ гбҐзҐлҐ "¬г¦бЄЁҐ" § ЇЁбЁ, ᮤҐа¦ йЁҐ
«Ёим Ї®«п Famil Ё Stag (бв ¦). Љ®¬ ¤®© LIST ®бгйҐб⢨⥠Ёе ўлў®¤.
‡ ⥬ ў Є ¦¤®© § ЇЁбЁ а Ў®зҐ© Ѓ„ 㢥«Ёзм⥠§ 票Ґ Ї®«п Stag 1.
Љ®¬ ¤®© UPDATE ЇҐаҐҐбЁвҐ § зҐЁп Ї®«п Stag ў Ёб室го Ѓ„ Ё
ўлўҐ¤ЁвҐ ¤ЁбЇ«Ґ© Ї®«п Famil, Stag ¤«п "¬г¦бЄЁе" § ЇЁбҐ©, зв®Ўл
гЎҐ¤Ёвмбп ў Їа ўЁ«м®© а Ў®вҐ Їа®Ја ¬¬л.
3.11. Џа®Ја ¬¬® ᮧ¤ Ґ¬ Ё Ё§¬ҐпҐ¬
бвагЄвгаг Ў § ¤ ле
Љ®ЇЁа®ў ЁҐ бвагЄвга Ѓ„ - а бЇа®бва Ґл© б«гз ©. …б«Ё,
¤®ЇгбвЁ¬, а §¤Ґ«л Є ав®вҐЄЁ ЄЁ¦®Ј® 䮤 ЇаҐ¤бв ў«Ґл ®в¤Ґ«мл¬Ё Ѓ„,
бвагЄвга Ёе Ё¤ҐвЁз . ЏаЁ ®Ўа §®ў ЁЁ ®ў®Ј® а §¤Ґ« ¬®¦®
ЇаЁ¬ҐЁвм Є®¬ ¤г COPY STRUCTURE TO <€¬п Ѓ„> FIELDS <‘ЇЁб®Є Ї®«Ґ©>,
ᮧ¤ ойго Їгбвго Ѓ„ б гЄ § л¬ Ё¬ҐҐ¬, Є®в®а п Ўг¤Ґв Ё¬Ґвм бвагЄвгаг
ЄвЁў®© Ѓ„ - Ѓ„ бгйҐбвўго饣® а §¤Ґ« . ‚ 襬 ЇаЁ¬ҐаҐ ваЁЎгв FIELDS
Ґ 㦥. Ћ ЁбЇ®«м§гҐвбп, Є®Ј¤ бвагЄвга ®ў®© Ѓ„ пў«пҐвбп
Ї®¤¬®¦Ґбвў®¬ Ёб室®©, Ё гЄ §лў Ґв Ґ®Ўе®¤Ё¬лҐ Ї®«п.
…б«Ё ¤ п ®ЇҐа жЁп Їа®Ё§ў®¤Ёвбп з бв®, Ё¬ҐҐв б¬лб« еа Ёвм
"нв «®го" бвагЄвгаг ў ўЁ¤Ґ Їгбв®© Ѓ„.
ЏаЁ¬Ґа 3.22. USE Etalon && ЋвЄалў Ґ¬ "нв «®го" Ѓ„
COPY STRUCTURE TO NewBD && ‘®§¤ Ґ¬ ®ўго Їгбвго Ѓ„
< Ќ Ї®«ҐЁҐ NewBD >
…б«Ё бвагЄвга § Ё¬бвўгҐвбп з бвЁз® Ё ¤®Ї®«пҐвбп (ЇаЁ н⮬,
ў®§¬®¦®, ¬®¤ЁдЁжЁагҐвбп, ЇаЁ¬Ґа, Ё§¬ҐпҐвбп а §¬Ґа Ї®«Ґ©), в®
б з « § Ё¬бвў®ў п з бвм § Ї®¬Ё Ґвбп ў ўЁ¤Ґ "д ©« -¬ ЄҐв ",
§ ⥬, Ґб«Ё 㦮, Їа®Ё§ў®¤пв ҐҐ Ё§¬ҐҐЁҐ, гбҐзҐЁҐ, ¤®Ї®«ҐЁҐ,
¤ «ҐҐ - ᮧ¤ ов Ї® д ©«г-¬ ЄҐвг ®ўго Ѓ„ (Їгбвго). ‚ д ©«Ґ-¬ ЄҐвҐ,
Є®в®ал© в Є¦Ґ пў«пҐвбп Ў §®© ¤ ле, Є ¦¤ п § ЇЁбм ®ЇЁблў Ґв
Ї®«Ґ Ѓ„ Ё ўЄ«оз Ґв ў ᥡп б«Ґ¤гойЁҐ 4 Ї®«п:
Field_name (вЁЇ C, ¤«Ё 10), ᮤҐа¦Ёв Ё¬п ®ЇЁблў Ґ¬®Ј® Ї®«п,
Field_type (вЁЇ C, ¤«Ё 1), ᮤҐа¦Ёв вЁЇ ®ЇЁблў Ґ¬®Ј® Ї®«п,
Field_len (вЁЇ N, ¤«Ё 3), ᮤҐа¦Ёв а §¬Ґа ®ЇЁблў Ґ¬®Ј® Ї®«п,
Field_dec (вЁЇ N, ¤«Ё 4), ᮤҐа¦Ёв ¤«Ёг ¤а®Ў®© з бвЁ Ё«Ё ®«м.
Љ®¬ ¤ COPY STRUCTURE EXTENDED TO <€¬п д ©« -¬ ЄҐв >
Є®ЇЁагҐв (ЎҐ§ Ё§¬ҐҐЁп) бвагЄвгаг ЄвЁў®© Ѓ„ ў ᮧ¤ ў Ґ¬л©
ўв®¬ вЁзҐбЄЁ д ©«-¬ ЄҐв. ‚л ¬®¦ҐвҐ ¤®Ї®«Ёвм ҐЈ® Їгбвл¬Ё § ЇЁбп¬Ё
(Є®¬ ¤ APPEND BLANK) § ⥬ Є®¬ ¤®© REPLACE ўҐбвЁ ў Ёе ®ЇЁб Ёп
¤®Ў ў«пҐ¬ле ў бвагЄвгаг Ї®«Ґ©.
Џгбв®© д ©«-¬ ЄҐв б Ё¬ҐҐ¬ <‚лаC> ᮧ¤ Ґв Є®¬ ¤ CREATE <‚лаC>,
ЁбЇ®«м§гҐ¬ п, Є®Ј¤ бвагЄвга Ѓ„ ᮧ¤ Ґвбп "®в г«п". Џгбв®© д ©«-
¬ ЄҐв ўв®¬ вЁзҐбЄЁ ®вЄалў Ґвбп ў ⥪г饩 а Ў®зҐ© ®Ў« бвЁ, § Єалў п
ЄвЁўго Ѓ„ (Ґб«Ё ® Ўл« ). ‚® Ё§ЎҐ¦ ЁҐ § ЄалвЁп ўлЇ®«п©вҐ
ЇаҐ¤ў аЁвҐ«м® Є®¬ ¤г SELECT 0.
‘®§¤ ЁҐ ®ў®© (Їгбв®©) Ѓ„ Ї® д ©«г-¬ ЄҐвг ўлЇ®«пҐв Є®¬ ¤
CREATE <€¬п ®ў®© Ѓ„> FROM <€¬п д ©« -¬ ЄҐв > .
‘®§¤ ў Ґ¬ п Ѓ„ ўв®¬ вЁзҐбЄЁ ®вЄалў Ґвбп ў ⥪г饩 а Ў®зҐ© ®Ў« бвЁ.
ЏаЁ¬Ґа 3.23. Ќ ®б®ўҐ бвагЄвгал Ѓ„ Student ᮧ¤ Ґвбп Їгбв п
Ѓ„ Aspirant, ЇаЁзҐ¬ 5 Ё 7 Ї®«п Ёб室®© бвагЄвгал Ґ г¦л, ® ¤®
¤®Ў ўЁвм Ї®«Ґ Proc (Їа®жҐв Ј®в®ў®бвЁ ¤ЁббҐав жЁЁ).
USE Student
COPY STRUCTURE EXTENDED TO Maket && ‘®§¤ Ґвбп д ©«-¬ ЄҐв
USE Maket
GO 5
DELETE && Џ®¬Ґз Ґ¬ ®ЇЁб ЁҐ 5 Ї®«п г¤ «ҐЁҐ
GO 7
DELETE && Џ®¬Ґз Ґ¬ ®ЇЁб ЁҐ 7 Ї®«п г¤ «ҐЁҐ
PACK && ”Ё§ЁзҐбЄЁ ЁбЄ«оз Ґ¬ ®ЇЁб Ёп 5 Ё 7 Ї®«п
APPEND BLANK && „®Ў ў«пҐ¬ ў Є®Ґж ¬ ЄҐв Їгбвго § ЇЁбм
REPLACE Field_name WITH "Proc", Field_type WITH "N", ;
Field_len WITH 2, Field_dec WITH 0
CREATE Aspirant FROM Maket && ‘®§¤ Ґвбп Ё бв ®ўЁвбп ЄвЁў®© Ѓ„
< Ќ Ї®«ҐЁҐ Ѓ„ Aspirant >
‚®бЇ®«м§гҐ¬бп нвЁ¬ ЇаЁ¬Ґа®¬ ¤«п а §Ў®а е а ЄвҐа®© ®иЁЎЄЁ.
‘¤Ґ« Ґ¬ ўҐиҐ ЎҐ§®ЎЁ¤®Ґ Ё§¬ҐҐЁҐ Їа®Ја ¬¬л, ўбв ўЁ¬ Є®¬ ¤г
SELECT 0 ЇҐаҐ¤ CREATE ... FROM. ’ҐЇҐам Ѓ„ Aspirant Ўг¤Ґв ®вЄалв ў
ЇҐаў®© бў®Ў®¤®© ®Ў« бвЁ. Ќ® ў н⮬ б«гз Ґ Ѓ„ Maket ®Є §лў Ґвбп
Ґ§ Єалв®©, Ё§¬ҐҐЁп бвагЄвгал Ґ 室пв ®ва ¦ҐЁп ў д ©«Ґ Ѓ„
Maket Ё ᮧ¤ Ґвбп Ѓ„ Aspirant б ҐўҐа®© бвагЄвга®©. ‡ Єа®©вҐ Ѓ„
Maket ЇҐаҐ¤ ҐҐ ЁбЇ®«м§®ў ЁҐ¬ ¤«п ᮧ¤ Ёп Ѓ„, ЇаЁ¬Ґа, ¤ ©вҐ
Є®¬ ¤г USE. ‚ п§лЄҐ CLIPPER5.01 «мвҐа вЁў®© пў«пҐвбп ЁбЇ®«м§®ў ЁҐ
дгЄжЁЁ DBCommit().
€§¬ҐҐЁҐ бвагЄвгал ¤Ґ©бвўго饩 Ѓ„. Љ®¬ ¤ COPY STRUCTURE
EXTENDED ¤ Ґв ў®§¬®¦®бвм Ё§¬ҐҐЁп бвагЄвгал Ѓ„ ЎҐ§ гва вл ¤ ле Ѓ„.
„®ЇгбвЁ¬, ў Ѓ„ Student 5 Ё 7 Ї®«п ЇҐаҐбв «Ё Ўлвм г¦л¬Ё, ® вॡгҐвбп
Ї®«Ґ Proc - Їа®жҐв ўлЇ®«ҐЁп г祡®Ј® Ја дЁЄ . ЌҐ®Ўе®¤Ё¬го
¬ а Ў®зго Ѓ„ §®ўҐ¬ Aspirant. Ћбв Ґвбп ¤®Ї®«Ёвм Їа®Ја ¬¬г ЇаЁ¬Ґа
3.23 Є®¬ ¤®© APPEND FROM Student (ЇҐаҐ®б ¤ ле ў а Ў®зго Ѓ„;
нв® Ё Ўг¤Ґв "Ќ Ї®«ҐЁҐ¬ Ѓ„ Aspirant"), Є®¬ ¤®© г¤ «ҐЁп Ёб室®©
Ѓ„ ERASE Student.dbf Ё ЇҐаҐЁ¬Ґ®ў Ёп - RENAME Aspirant.dbf TO
Student.dbf. Memo-д ©«, Ґб«Ё ® Ё¬ҐҐвбп, Ё§¬ҐҐЁп¬ Ґ Ї®¤ўҐаЈ «бп.
Ља®¬Ґ Ї®Є § ле ў Їа®Ја ¬¬Ґ гбҐзҐЁп Ё ¤®Ї®«ҐЁп бвагЄвгал,
ўл ¬®¦ҐвҐ Ё§¬ҐЁвм ¤«Ёг бЁ¬ў®«мле Ї®«Ґ© ў «оЎго бв®а®г. ‚ ®ў®©
Ѓ„ Ї®«Ґ Proc, ҐбвҐб⢥®, Ўг¤Ґв Ґ§ Ї®«Ґл¬. €§¬ҐҐЁҐ вЁЇ Ї®«п
Їа®Ё§ў®¤пв ।Є®; нв®в б«®¦л© б«гз © ¬®¤ЁдЁЄ жЁЁ Ѓ„ §¤Ґбм Ґ
а бб¬ ваЁў Ґвбп. ‚ Ї. 5.9 ¬л Їа®¤®«¦Ё¬ ⥬г ᮧ¤ Ёп Ё Ё§¬ҐҐЁп
бвагЄвга Ѓ„.
‡ ¤ ЁҐ 3.11. Џа®ўҐам⥠ў иҐ Ї®Ё¬ ЁҐ ⥬л б«Ґ¤гойЁ¬ гЇа ¦ҐЁҐ¬:
ЁбЇ®«м§гп Є®¬ ¤г CREATE Ё«Ё б Ї®¬®ймо гвЁ«Ёвл DBU, ᮧ¤ ©вҐ
бвагЄвгал ¤ўге Ѓ„ A Ё B, § ⥬ Ї®«ЁвҐ Ѓ„ A, ¤ «ҐҐ, ЁбЇ®«м§гп
Є®¬ ¤г COPY STRUCTURE EXTENDED, ᢥ¤ЁвҐ бвагЄвгал ў ®¤г б Ї®¬®ймо
Є®¬ ¤л APPEND FROM Ё ®вЄа®©вҐ Ѓ„, Ё¬Ґойго "бў®¤го" бвагЄвгаг.
‡ ⥬ ЇҐаҐҐбЁвҐ ў ҐҐ ¤ лҐ Ѓ„ A.
‡ЂЉ‹ћ—…Ќ€… Љ 3-‰ ѓ‹Ђ‚…
…б«Ё ўл ўлЇ®«Ё«Ё § ¤ Ёп ¤ ®© Ј« ўл ќ‚Њ Ё Їа® «Ё§Ёа®ў «Ё
ЇаЁ¬Ґал, ®вўҐвл Є § ¤ Ёп¬, ўл Ї®¤п«Ёбм 2 бвгЇҐм ў ®ў« ¤ҐЁЁ
Ў § ¬Ё ¤ ле. "Џ®ўл襨Ґ Єў «ЁдЁЄ жЁЁ" Їа®Ё§®©¤Ґв ў а §¤Ґ« е Ї®
п§лЄ ¬ CLIPPER Ё FOXPRO. €§гзЁў гЁўҐаб «млҐ Ў«®ЄЁ (ЇЇ. 3.5, 3.8,
®вўҐв Є § ¤ Ёо 3.5), зЁвҐ ᮧ¤ ЁҐ "ЎЁЎ«Ё®вҐЄЁ" в ЄЁе Ў«®Є®ў,
Ї®Ї®«пп ҐҐ ®ўл¬Ё Ў«®Є ¬Ё Ї® 室㠨§г票п б«Ґ¤гойЁе Ј« ў. ” ©« б
нвЁ¬Ё Ў«®Є ¬Ё ®Ў«ҐЈзЁв ў ¬ ॠ«Ё§ жЁо б«®¦ле ЇаЁ¬Ґа®ў § ¤ з.
Соседние файлы в папке материалы по FoxPro