powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Помогите, пожалуйста, разобраться с примером из книги Попова
25 сообщений из 81, страница 2 из 4
Помогите, пожалуйста, разобраться с примером из книги Попова
    #33811989
parenyok
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ура!!!! Сам сообразил! Просто поменял строку
Код: plaintext
set proc to menuden.prg
и всё! Yes!!! Ещё маленько и курсовая будет готова! Теперь проблема такая. В этой программе:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
68.
69.
70.
71.
72.
73.
74.
75.
76.
77.
78.
79.
80.
81.
82.
83.
84.
85.
86.
87.
88.
89.
90.
91.
92.
93.
94.
95.
96.
97.
98.
99.
100.
101.
102.
103.
104.
105.
106.
107.
108.
109.
110.
111.
112.
113.
114.
115.
116.
117.
118.
119.
120.
121.
122.
123.
124.
125.
126.
127.
128.
129.
130.
131.
132.
133.
134.
135.
136.
137.
138.
139.
140.
141.
142.
143.
144.
145.
146.
147.
148.
149.
150.
151.
152.
153.
154.
155.
156.
157.
158.
159.
160.
161.
162.
163.
164.
165.
166.
167.
168.
parameters progr
clea
clea all
set prin off
set cons on
set talk off
set conf on
set safe off
set esca off
set century on
set date to german
set bell to  300 , 1 
set clock off && включение часов
close all && зыкрытие всех баз данных
set cursor off && выключение курсора
set talk off && отмена выдачи протокола 
set deleted on
clear && очистка экрана
define window p1 from  10 , 39  to  12 , 41 
define window m from  16 , 14  to  18 , 67  doubl float  color scheme  7             
activate window p1
store  12  to i,i1
store  40  to j,j1
&& цикл разворачивания окна
do while i# 0 .or.j# 0 .or.i1# 24 .or.j1# 79  
f= 0 
i=iif(i> 0 ,i- 1 , 0 )
j=iif(j> 0 ,j- 2 , 0 )
i1=iif(i1< 24 ,i1+ 1 , 24 )
j1=iif(j1< 79 ,j1+ 2 , 79 )
zoom window p1 norm at i,j to i1,j1
enddo
text && вывод на экран заставки, начало text

   ЯЯЯЯЯ             
   Я     ЯЯЯЯЯ  ЯЯЯЯ  ЯЯЯЯЯ  Я     Я  Я    Я  Я     Я  Я    Я     ЯЯ
   Я     Я   Я  Я       Я    Я    ЯЯ  Я    Я  Я    ЯЯ  Я    Я   Я    Я
   Я     Я   Я  Я       Я    Я   Я Я  ЯЯЯЯЯЯ  Я   Я Я  Я    Я   ЯЯЯЯЯЯ
   Я     Я   Я  Я       Я    Я  Я  Я  Я    Я  Я  Я  Я  Я    Я   Я    Я
   Я     ЯЯЯЯЯ  ЯЯЯЯ    Я    ЯЯЯ   Я  Я    Я  ЯЯЯ   Я  ЯЯЯЯЯЯЯ  Я    Я
                                                             Я                        


                              Данные о посетителях.
endtext && завершение вывода, endtext

save screen to jonny && сохраняем экран в переменную jonny
activate wind m
@ 0 , 5  say'Для пpодолжения pаботы нажмите любую клавишу.'
read

clear windows && убирает из памяти все окна
set cursor on && включение курсора
SET COLOR TO gr


*set defa to c:\

do menugl 

proc menugl
*--- помощь, если есть файл помощи ---*
 if file('HELP.PRG').or.file('HELP.TXT')
 on key labe F1 do HELP.TXT
 endif
*set defa to KURS

set clock on
set color to  w,w/b, r/w && установка цвета - белый на синем,	
set color to  1 / 2 ,b/g+,gr+/rb+ 
&& а для часов красный на белом
SET CLOCK TO  0 , 71 
defi wind EWIND from  0 , 0  to  4 , 79  color gr+/r,gr+/r,gr+/r 
set hours to  24  && установка  24  часового исчисления
k=td1( 20 ,date())
               
@  10 , 1  say'   ЯЯЯЯЯ                                                              '
@  11 , 1  say'   Я     ЯЯЯЯЯ  ЯЯЯЯ  ЯЯЯЯЯ  Я     Я  Я    Я  Я     Я  Я    Я     ЯЯ  ' 
@  12 , 1  say'   Я     Я   Я  Я       Я    Я    ЯЯ  Я    Я  Я    ЯЯ  Я    Я   Я    Я' 
@  13 , 1  say'   Я     Я   Я  Я       Я    Я   Я Я  ЯЯЯЯЯЯ  Я   Я Я  Я    Я   ЯЯЯЯЯЯ'
@  14 , 1  say'   Я     Я   Я  Я       Я    Я  Я  Я  Я    Я  Я  Я  Я  Я    Я   Я    Я'
@  15 , 1  say'   Я     ЯЯЯЯЯ  ЯЯЯЯ    Я    ЯЯЯ   Я  Я    Я  ЯЯЯ   Я  ЯЯЯЯЯЯЯ  Я    Я'
@  16 , 1  say'                                                             Я        '               

define menu mainmenu in screen color gr/bg,r/bg,gr/bg,gr/bg,gr+/w,rb/w,gr+/bg
set defa to c:\kurs
define pad gosti of mainmenu prompt'\<Список гостей' at  5 , 7 ;
message 'Ввод, просмотр и редакторование данных по количеству гостей в гостинице.'
define pad etaji of mainmenu prompt'\<Этажи' at  5 , 25 ;
message 'Просмотр этажей гостиницы'
define pad pom of mainmenu prompt'\<Помощь' at  5 , 55 ;
message 'Помощь в работе с программой'
define pad vih of mainmenu prompt'\<Выход' at  5 , 64 ;
message 'Выход из программы'

on selection pad gosti of mainmenu do guests.prg
on selection pad etaji of mainmenu do floor.prg
on selection pad pom of mainmenu do help.txt 
on selection pad vih of mainmenu activate window w5

acti wind EWIND
@ 0 , 15  say 'Курсовая работа студента 1 курса гр.9ПИЭ-51'
@ 2 , 27  say'Сегодня: '+k 
acti menu mainmenu


************************************************
function td1
para m,k
dn=alltrim(STR(day(k)))
g=alltrim(STR(year(k)))
ms=month(k)
dime s( 12 )
s( 1 )='ЯHВАРЯ'
s( 2 )='ФЕВРАЛЯ'
s( 3 )='МАРТА'
s( 4 )='АПРЕЛЯ'
s( 5 )='МАЯ'
s( 6 )='ИЮHЯ'
s( 7 )='ИЮЛЯ'
s( 8 )='АВГУСТА'
s( 9 )='СЕHТЯБРЯ'
s( 10 )='ОКТЯБРЯ'
s( 11 )='HОЯБРЯ'
s( 12 )='ДЕКАБРЯ'
sd=padr((dn+s(ms)+' '+g),m)
return sd
**** Процедура выхода ****
         **** процедура выхода в FOXPRO *****
proc end
define window vf from  7 , 13  to  15 , 58   title '"ВНИМАНИЕ"';
shad doub color r+/b,n/n,rb/bg+ 
ACTI WIND vf in w5 
A= 0 
B= 0 
@  1 , 2  SAY 'ВЫ ДЕЙСТВИТЕЛЬНО ХОТИТЕ ВЫЙТИ В FOXPRO ?' 
@  4 , 11  GET A FUNC '*   ДА' 
@  4 , 29  GET B FUNC '*  НЕТ' 
READ
IF A= 1 
DEACTI WIND ALL
CANCEL
else
DEAC WIND vf
ENDIF
RETU

**** процедура выхода в Windows *****
proc quit
*para mpoup, mprompt, mbar
define window vnc from  7 , 13  to  15 , 58   title '"ВНИМАНИЕ"';
shad doub color r+/b,n/n,rb/bg+ 
ACTI WIND vnc in w5
A= 0 
b= 0 
@  1 , 2  SAY 'ВЫ ДЕЙСТВИТЕЛЬНО ХОТИТЕ ВЫЙТИ В Windows ?' 
@  4 , 11  GET A FUNC '*   ДА' 
@  4 , 29  GET B FUNC '*  НЕТ' 
READ
IF A= 1 
deacti wind m1
quit
else
DEAC WIND vnc
ENDIF
RETU

return sd
Не работают функции выхода в FoxPro и Windows, которые я взял из этой программы:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
68.
69.
70.
71.
72.
73.
74.
75.
76.
77.
78.
79.
80.
81.
82.
83.
84.
85.
86.
87.
88.
89.
90.
91.
92.
93.
94.
95.
96.
97.
98.
99.
100.
101.
102.
103.
104.
105.
106.
107.
108.
109.
110.
111.
112.
113.
114.
115.
116.
117.
118.
119.
120.
121.
122.
123.
124.
125.
126.
127.
128.
129.
130.
131.
132.
133.
134.
135.
136.
137.
138.
139.
140.
141.
142.
143.
144.
145.
146.
147.
148.
149.
150.
151.
152.
153.
154.
155.
156.
157.
158.
159.
160.
161.
162.
163.
164.
165.
166.
167.
168.
169.
170.
171.
172.
173.
174.
175.
176.
177.
178.
179.
180.
181.
182.
183.
184.
185.
186.
187.
188.
189.
190.
191.
192.
193.
194.
195.
196.
197.
198.
199.
200.
201.
202.
203.
204.
205.
206.
207.
208.
209.
210.
211.
212.
213.
214.
215.
216.
217.
218.
219.
220.
221.
222.
223.
224.
225.
226.
227.
228.
229.
230.
231.
232.
233.
234.
235.
236.
237.
238.
239.
240.
241.
242.
243.
244.
245.
246.
247.
248.
249.
250.
251.
252.
253.
254.
255.
256.
257.
258.
259.
260.
261.
262.
263.
264.
265.
266.
267.
268.
269.
270.
271.
272.
273.
274.
275.
276.
277.
278.
279.
280.
281.
282.
283.
284.
285.
286.
287.
288.
289.
290.
291.
292.
293.
294.
295.
296.
297.
298.
299.
300.
301.
302.
303.
304.
305.
306.
307.
308.
309.
310.
311.
312.
313.
314.
315.
316.
317.
318.
319.
320.
321.
322.
323.
324.
325.
326.
327.
328.
329.
330.
331.
332.
333.
334.
335.
336.
337.
338.
339.
340.
341.
342.
343.
344.
345.
346.
347.
348.
349.
350.
351.
352.
353.
354.
355.
356.
357.
358.
359.
360.
361.
362.
363.
364.
365.
366.
367.
368.
369.
370.
371.
372.
373.
374.
375.
376.
377.
378.
379.
380.
381.
382.
383.
384.
385.
386.
387.
388.
389.
390.
391.
392.
393.
394.
set safety off
CLEA
CLOSE ALL
set date germ
set clock on
defi wind w5 from  1 , 0  to  30 , 73  doub shad title ' "М Е Н Ю" ';
footer'Учёт компьютерной техники'
acti wind W5
do zast
defi menu m  SHADOW 
defi pad n1 of m prom '  БД  ' at  1 , 3   COLOR scheme  4  
defi pad n2 of m prom 'Просмотр ведомостей'at  1 , 15  COLOR scheme  4   
defi pad n4 of m prom 'Сервис'at  1 , 40  COLOR scheme  4  
defi pad n5 of m prom ' Выход 'at  1 , 55  COLOR scheme  4  
on sele pad n1 of m acti popup a1 
on sele pad n2 of m acti popup a2
on sele pad n4 of m acti popup a4 
on pad n5 of m acti popup a5

**** A1 ****
defi popup a1 from  2 , 3  SHADOW COLOR scheme  4 
defi bar  1  of a1 prom'Ввод д нных '
defi bar  2  of a1 prom'Просмотр'
on bar  1  of a1 acti popup c1 
on bar  2  of a1 acti popup c2 
defi popup c1 from  3 , 17  SHADOW COLOR scheme  4 
defi bar  1  of c1 prom'Поступление ПК'color ,,,, 4 */ 9 , 4 */ 9 
defi bar  2  of c1 prom'Друг я оргтехник 'color ,,,, 4 */ 9 , 4 */ 9 
on sele bar  1  of c1 do C:\FOXPRO\agu\vvod.PRG
on sele bar  2  of c1 do C:\FOXPRO\agu\drosv.PRG

defi popup c2 from  4 , 17  SHADOW COLOR scheme  4 
defi bar  1  of c2 prom'Оргтехник 'color ,,,, 4 */ 9 , 4 */ 9 
defi bar  2  of c2 prom'Х р ктеристик  компов'color ,,,, 4 */ 9 , 4 */ 9 
defi bar  3  of c2 prom'Д нные для  мортиз ции'color ,,,, 4 */ 9 , 4 */ 9 
defi bar  4  of c2 prom'Д нные о монитор х'color ,,,, 4 */ 9 , 4 */ 9 
defi bar  5  of c2 prom'Амортиз ция з  прошл.мес.'color ,,,, 4 */ 9 , 4 */ 9 
defi bar  6  of c2 prom'Амортиз ция з  отчетн.мес.'color ,,,, 4 */ 9 , 4 */ 9 
on sele bar  1  of C2 do dros
on sele bar  2  of c2 do har
on sele bar  3  of c2 do b
on sele bar  4  of c2 do mon
on sele bar  5  of c2 do bd3
on sele bar  6  of c2 do bd4

**** A2 ****
defi popup a2 from  2 , 15  SHADOW COLOR scheme  4   
defi bar  1  of A2 prom'Ведомость о н личии ПК по р бочим мест м'color ,,,, 4 */ 9 , 4 */ 9 
defi bar  2  of A2 prom'Переход'message 'Перед формиров нием вед-ти  мортиз ции ОБЯЗАТЕЛЬНО выполни эту ком нду!' 
defi bar  3  of A2 prom'Н числение  мортиз ции н  комп.техн.'message 'Ты не з был  ктивизиров ть ком нду ПЕРЕХОД?'
defi bar  4  of A2 prom'Ведомость о н личии мониторов'color ,,,, 4 */ 9 , 4 */ 9 
defi bar  5  of A2 prom'Ведомость о н личии комп.техники'color ,,,, 4 */ 9 , 4 */ 9 

on sele bar  1  of A2 do C:\FOXPRO\agu\VED.PRG
on sele bar  2  of A2 do C:\FOXPRO\agu\perehod.PRG
on sele bar  3  of A2 do C:\FOXPRO\agu\am.PRG
on sele bar  4  of A2 do C:\FOXPRO\agu\monitor.PRG
on sele bar  5  of A2 do C:\FOXPRO\agu\dros1.PRG
**** А4 **** 
defi popup a4 from  2 , 40  SHADOW COLOR scheme  4 
defi bar  1  of a4 prom 'Печ ть'
defi bar  2  of a4 prom 'Созд ние резервной копии '
defi bar  3  of a4 prom 'Поиск'

on bar  1  of a4 acti popup b1
on bar  2  of a4 acti popup b2
on sele bar  3  of a4 do PO
         ***b1
defi popup b1 from  3 , 40  SHADOW COLOR scheme  4 
defi bar  1  of b1 prom'Ведомость о н личии ПК по р бочим мест м'color ,,,, 4 */ 9 , 4 */ 9 
defi bar  2  of b1 prom'Н числение  мортиз ции н  комп.техн.'color ,,,, 4 */ 9 , 4 */ 9 
defi bar  3  of b1 prom'Ведомость о н личии мониторов'color ,,,, 4 */ 9 , 4 */ 9 
defi bar  4  of b1 prom'Ведомость о н личии комп.техники'color ,,,, 4 */ 9 , 4 */ 9 

on sele bar  1  of b1  do pech1 
on sele bar  2  of b1  do p2 
on sele bar  3  of b1  do p3 
on sele bar  4  of b1  do p4 
       ***b2
defi popup b2 from  4 , 40  SHADOW COLOR scheme  4 
defi bar  1  of B2 prom 'Созд ть'
defi bar  2  of B2 prom 'Восст новить '

on sele bar  1  of b2  do sozd
on sele bar  2  of b2 do vost
**** A5 ****
defi popup a5 from  2 , 55  SHADOW COLOR scheme  4 
defi bar  1  of a5 prom 'FoxPro'color ,,,, 4 */ 9 , 4 */ 9 
defi bar  2  of a5 prom 'Windows'color ,,,, 4 */ 9 , 4 */ 9 

on sele bar  1  of a5 do CANCEL
on sele bar  2  of a5 do quit
acti wind w5      
acti menu m
                    ***Процедуры просмотр  БД
proc mon
use C:\FOXPRO\agu\mon.dbf
BROW FIEL INVM:H='Инв.ь монитор ',naim:H='М рк ',invn:H='Инв.ь сист.блок ',RABM:H='Р бочее место',thar:h='Тех.х р-ки';
TITLE'Д нные о монитор х'
pack
return

proc dros
use C:\FOXPRO\agu\dros.dbf
BROW FIEL invn:H='Инвент.ь',vid:h='Вид оргтехн-ки',naim:h='Н именов ние',rabm:h='Р боч.место';
TITLE'Другие ОС' 
pack
return

proc har 
use C:\FOXPRO\agu\har.dbf
BROW FIEL invn:H='Инвент.ь',video:H='Видеок рт ',cpu:H='Процессор',;
mathe:H='М тери-я пл т ',hdd:H='Жест.диск',fdd:H='Floppy disk',;
ram:H='ОЗУ',cd:H='cd-привод',setkar:H='Сетев я к рт ',;
npk:H='ь ПК',rabm:H='Р боч. место';
TITLE'Х р ктеристик  компов' 
pack
retu    

proc b 
use C:\FOXPRO\agu\b.dbf
BROW FIEL invn:H='Инвент.ь',ps:H='Первон ч ль.ст-сть',;
dve:H='Д т  ввод  в эксплу-ию',spi:H='Срок полез.исп-ия';
TITLE'Д нные для  мортиз ции'
pack
retu    

proc bd3 
use C:\FOXPRO\agu\bd3.dbf
BROW FIEL n:H='Аморт.з  прошл.мес.',amm1:H='Аморт.з  мес.',;
am1:H='Аморт.включ я отчетн.мес.',invn:H='Инвент.номер';
TITLE'Амортиз ция з  прошлый месяц' 
pack
retu    

proc bd4 
use C:\FOXPRO\agu\bd4.dbf
BROW FIEL n:H='Аморт.з  прошл.мес.',amm1:H='Аморт.з  мес.',;
am1:H='Аморт.включ я отчетн.мес.',invn:H='Инвент.номер';
TITLE'Амортиз ция з  отчетный месяц' 
pack
retu    
****процедур  копиров ния****
proc SOZD
define window E from  10 , 15  to  15 , 60  title '"КОПИРОВАНИЕ"';
shad  color  4 / 1 , 8 / 3 , 3 / 5  
ACTI WIND E
A= 0 
b= 0 
@  1 , 10  GET A FUNC '* СОХРАНИТЬ НА ДИСКЕТЕ'
@  2 , 10  GET B FUNC '* СОХРАНИТЬ НА ДИСКЕ С'
READ
IF A= 1 
clos data 
do nd
do ZAST
COPY FILE DROS.dbf TO a:\DROS.dbf
COPY FILE HAR.dbf TO a:\HAR.dbf
COPY FILE B.dbf TO a:\B.dbf
COPY FILE MON.dbf TO a:\MON.dbf
COPY FILE BD3.dbf TO a:\BD3.dbf
COPY FILE BD4.dbf TO a:\BD4.dbf
ENDIF
if b= 1 
clos data 
do nd 
do ZAST
set default to c:\foxpro\AGU
COPY FILE DROS.dbf TO c:\DROS.dbf
COPY FILE HAR.dbf TO c:\HAR.dbf
COPY FILE B.dbf TO c:\B.dbf
COPY FILE MON.dbf TO c:\MON.dbf
COPY FILE BD3.dbf TO c:\BD3.dbf
COPY FILE BD4.dbf TO c:\BD4.dbf
endif
DEAC WIND E
do zast
retu
             ***Процедур  восст новления р.к.
PROCEDURE vost
hide menu M
hide popup b2 
hide popup a4
DEFINE WINDOW w FROM  10 , 14  ;
TO  13 , 64  SHADOW DOUBLE COLOR SCHEME  5 						 
ACTIVATE WINDOW w SAME
@  1 , 15  SAY "и н жмите Enter." ;
SIZE  1 , 16 ,  0 
@  0 , 2  SAY "Вст вте дискету c резерв. копией в дискoвод А:" ;
SIZE  1 , 43 ,  0 
READ CYCLE
RELEASE WINDOW all
use
 DELETE FILE DROS.dbf
 DELETE FILE HAR.dbf
 DELETE FILE B.dbf
 DELETE FILE MON.dbf
 DELETE FILE BD3.dbf
 DELETE FILE BD4.dbf
COPY FILE a:\DROS.dbf TO c:\foxpro\AGU\DROS.dbf
COPY FILE a:\HAR.dbf TO c:\foxpro\AGU\HAR.dbf
COPY FILE a:\B.dbf TO c:\foxpro\AGU\B.dbf
COPY FILE a:\MON.dbf TO c:\foxpro\AGU\MON.dbf
COPY FILE a:\BD3.dbf TO c:\foxpro\AGU\BD3.dbf
COPY FILE a:\BD4.dbf TO c:\foxpro\AGU\BD4.dbf
show menu M 
show popup b2
show popup a4 
DEAC WIND w
retur
**** процедур  фон  меню ****
PROC zast
@  5 , 1   say'      '                                                                         
@  6 , 1   say'      °°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°'                                                            
@  7 , 1   say'      °°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°'                                                            
@  8 , 1   say'      °°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°'                                           
@  9 , 1   say'      °°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°'                                               
@  10 , 1  say'      °°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°'                                           
@  11 , 1  say'      °°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°'                                                   
@  12 , 1  say'      °°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°'                                              
@  13 , 1  say'      °°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°'                                              
@  14 , 1  say'      °°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°'                                            
@  15 , 1  say'      °°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°'                                            
@  16 , 1  say'      °°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°'                                                         
@  17 , 1  say'      °°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°'                                           
@  18 , 1  say'      °°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°'                                           
@  19 , 1  say'      °°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°'                                         
@  20 , 1  say'      °°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°'                                                 
@  21 , 1  say'      °°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°'                                                            
@  22 , 1  say'      '                                                          
?'       ' 
?'                           СЕГОДHЯ: '+dtoc(date())+''
RETU
         **** процедур  выход  в FOXPRO *****
proc cancel
define window vf from  7 , 13  to  15 , 58   title '"ВНИМАНИЕ"';
shad doub color r+/b,n/n,rb/bg+ 
ACTI WIND vf in w5 
A= 0 
B= 0 
@  1 , 2  SAY 'ВЫ ДЕЙСТВИТЕЛЬНО ХОТИТЕ ВЫЙТИ В FOXPRO ?' 
@  4 , 11  GET A FUNC '*   ДА' 
@  4 , 29  GET B FUNC '*  НЕТ' 
READ
IF A= 1 
DEACTI WIND ALL
CANCEL
else
DEAC WIND vf
ENDIF
RETU
          **** Процедур  поиск  ****
PROC PO
define window find from  1 , 1  to  23 ,  60  title ;
'
...поиск...' double 
acti wind find
store SPACE( 15 ) to U
@  17 , 10  say'ESC-Выход'
@  1 , 9  say'Инв.ь,процессор или р бочее место:' get U  picture  ('xxxxxxxxxxxxxxx')
@  4 , 12  say'      Где иск ть?'
read
k= 0 
@  5 , 5   prompt 'БД Х р ктеристик  компов'
@  7 , 5   prompt 'БД Д нные о ПК'
@  9 , 5   prompt 'БД Мониторы '
@  11 , 5  prompt 'БД Амортиз ция з  прошлый месяц'
@  13 , 5  prompt 'БД Амортиз ция з  отчетный месяц'
@  15 , 5  prompt '         Отмен        '
menu to k
do case
case k= 1 
use C:\FOXPRO\agu\har.dbf
brow title 'Х р ктеристик  компов';
field invn:h='Инв.ь',;
video:H='Видеок рт ',;
cpu:H='Процессор',;
hdd:H='Ж.диск',;
ram:H='ОЗУ',;
npk:H='ь ПК',;
rabm:H='Р б.место' FOR cpu=U .OR. U=invn.OR.u=rabm

case k= 2 
use C:\FOXPRO\agu\b.dbf
brow title 'Д нные о ПК';
field invn:H='Инвент.ь',;
ps:H='Первон ч.ст-сть',;
dve:H='Д т  ввод  в экс-ию',;
spi:H='Срок полез.исп.' FOR U=invn

case k= 3 
use C:\FOXPRO\agu\mon.dbf
brow title 'Мониторы';
field INVM:H='Инв.ь монитор ',;
naim:H='Н именов ние',;
invn:H='Инв.ь сист.блок ',;
RABM:H='Р бочее место',;
thar:h='Тех.х р-ки' FOR U=invn.OR.u=rabm

case k= 4 
use C:\FOXPRO\agu\bd3.dbf
brow title 'Амортиз ция з  прошлый месяц' FIEL n:H='Аморт.з  прошл.мес.',amm1:H='Аморт.з  мес.',;
am1:H='Аморт.включ я отчетн.мес.',invn:H='Инвент.номер' FOR U=invn
case k= 5 
use C:\FOXPRO\agu\bd4.dbf
brow title 'Амортиз ция з  отчетный месяц';
fields n:H='Аморт.з  прошл.мес.',;
amm1:H='Аморт.з  мес.',;
am1:H='Аморт.включ я отчетн.мес.',;
invn:H='Инвент.номер' FOR U=invn
case k= 6 
deacti wind find
endcase
do wixod 
retu
proc wixod
define window w1 from  7 ,  25  to  12 ,  55  ;
double color scheme  9 
acti wind w1
k= 0 
@  1 , 2  say'     Продолжить поиск? '
@  3 , 2   prompt'  Нет   '
@  3 , 20  prompt'  Д     '
menu to k
do case
case k= 1 
hide wind w1
deacti wind w1
do po
case k= 2 
deacti wind w1
deacti wind find
close data
endcase
retu    
           **** процедур  выход  в Windows *****
proc quit
*para mpoup, mprompt, mbar
define window vnc from  7 , 13  to  15 , 58   title '"ВНИМАНИЕ"';
shad doub color r+/b,n/n,rb/bg+ 
ACTI WIND vnc
A= 0 
b= 0 
@  1 , 2  SAY 'ВЫ ДЕЙСТВИТЕЛЬНО ХОТИТЕ ВЫЙТИ В Windows ?' 
@  4 , 11  GET A FUNC '*   ДА' 
@  4 , 29  GET B FUNC '*  НЕТ' 
READ
IF A= 1 
deacti wind m1
quit
else
DEAC WIND vnc
ENDIF
RETU
******
proc nd
close all
set talk off
clear
DEFI WINDOW W1 FROM  9 , 13  TO  13 , 64  title"КОПИРОВАНИЕ"DOUBLE SHADOW COLOR  0 / 5 , 1 / 2 , 3 / 4 
acti wind w1 in w5
i= 1 
I1= 0 
@ 1 , 0  SAY '                                                 'color N/n
do while i< 49 
@ 1 ,i say ''  color b+/n
@ 1 , 0  get i1 pict '999'+'%'
=inkey( 0 . 0001 )
i=i+ 1 
I1=I1+ 2 . 16 
enddo
deac wind w1
clear
           **** процедур  печ ти ****
PROCEDURE pech1
type C:\FOXPRO\AGU\VED.TXT to print
CLEAR
CLOSE ALL
retur
PROCEDURE p2
type C:\FOXPRO\AGU\AM.TXT to print
CLEAR
CLOSE ALL
retur
PROCEDURE p3
type C:\FOXPRO\AGU\MONITOR.TXT to print
CLEAR
CLOSE ALL
retur
PROCEDURE p4
type C:\FOXPRO\AGU\DROS1.TXT to print
CLEAR
CLOSE ALL
retur
Блин. Не получилось кодировку нормальную сделать... Вот. Там написаны две процедуры выхода в FoxPRO и в Windows, а где они используются и как у себя их разместить я не понял.
...
Рейтинг: 0 / 0
Помогите, пожалуйста, разобраться с примером из книги Попова
    #33812077
dmitryx
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Процедуры эти вызываются из меню. Где их разместить это тебе решать, можно в главном файле проекта или в отдельной библиотеке процедур и функций. А вообще до сентября времени много - успеешь Попова с начала и до конца прочитать, чтобы не возникало подобных вопросов =)
...
Рейтинг: 0 / 0
Помогите, пожалуйста, разобраться с примером из книги Попова
    #33812422
parenyok
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
dmitryxПроцедуры эти вызываются из меню.Хэк... :-) Ну это я понял. ;-) dmitryxГде их разместить это тебе решать, можно в главном файле проекта или в отдельной библиотеке процедур и функций.Ты меня не понял. Я не пойму как сослаться на эти процедуры, чтобы у меня было также как в программе. Т.е. после нажатия на кнопку "Выход" появлялось меню: "В FoxPro" и "В Windows" и соответственно выполнялось. dmitryxА вообще до сентября времени много - успеешь Попова с начала и до конца прочитать, чтобы не возникало подобных вопросов =)Слушай, я, конечно, извиняюсь, но ты не наглей! Во-первых, в этой книге больше 600 страниц! Во-вторых, оригинала у меня уже нет, т.к. эта была не моя книга, а для читального зала политеха и при этом она одна во всём городе Барнауле! А по электронной многого не сделаешь, т.к. там, как мы тут выяснили, до фига синтаксических ошибок, разбирать которые новичку очень трудоёмкое занятие! А, в-третьих, мне уже дали задание по математике и английскому на третий семестр. И я хочу их по-быстрее сделать, чтобы потом было время сделать лабы и написать рефераты.
...
Рейтинг: 0 / 0
Помогите, пожалуйста, разобраться с примером из книги Попова
    #33812512
Фотография Redrik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
parenyok...ты не наглей...
Ты понял ЧТО сказал??? :-(
...
Рейтинг: 0 / 0
Помогите, пожалуйста, разобраться с примером из книги Попова
    #33812741
Urri
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Паренек, если тебе надо, чтоб тебе помогли сделать курсовую, но при этом тебе не хочется ничему научиться, то тебе здесь не помогут. Особенно если ты так себя ведешь.
Как ты думаешь, что побуждает обитателей данной конференции отвечать на вопросы новичков? Денег они за это не получают. За себя скажу: лично мне приятно, когда молодой человек в результате такого общения что-то полезное усвоит, это и есть моя единственная мотивация. При этом подразумевается, что спрашивающий сам проделает большую часть работы, пропустит то, что ему присоветуют, через себя, обобщит опыт, полученный при разборе конкретного примера в знание.
А вот людей, которые за чужой счет жить пытаются, я не люблю.
Если тебе не интересно то, для чего затевалась твоя курсовая, и ты даже открытым текстом пишешь, что появление FoxPro в твоей биографии есть досадная помеха, а не повод чему-то научиться, то зачем ты сюда пришел?
Вот ты пишешь ВладимируМ: "Давай я тебе пришлю архив со всеми файлами и ты поможешь мне сделать курсовую." Ну и кого ты пытаешься обмануть? Себя? Ведь такие вещи называются не помощью, вот ты так и написал бы: "Давай я тебе пришлю архив со всеми файлами и ты сделаешь за меня курсовую." Так честно. Но поможет ли тебе кто-нибудь? Да, вероятно, если ты найдешь способ заинтересовать человека, убедишь его потратить свое время на тебя. Как ты это можешь сделать? Ну поскольку нематериальная мотивация у тебя не вышла, остается материальная. Кто-нибудь, из тех, кто делает курсовики за деньги, обязательно тебе поможет, если договоритесь, конечно. Я - нет. Хотя были времена и обстоятельства, когда я этим не гнушался, каюсь, был грех. Но это в прошлом. Моя теперешняя позиция такова: если человек выдает результат чужого умственного труда за свой в ВУЗе, то он и потом будет это делать. Если потом он окажется моим коллегой, мне от этого будет хуже, и этого мне уже никто не скомпенсирует. Ну и не только это соображение, есть и другие. Короче, учиться надо своим умом.
...
Рейтинг: 0 / 0
Помогите, пожалуйста, разобраться с примером из книги Попова
    #33812997
parenyok
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Redrik parenyok...ты не наглей...
Ты понял ЧТО сказал??? :-(Я-то понял. А тебе слово ИЗВИНИ ничего не говорит???!!! :-|
UrriПаренек, если тебе надо, чтоб тебе помогли сделать курсовую, но при этом тебе не хочется ничему научиться, то тебе здесь не помогут.Во-первых, ты глубоко заблуждаешься!!! Я хочу научиться! У тебя, конечно же сразу возникнет вопрос: "А чё ж не учишься?". Я отвечу, ещё раз, т.к. я уже свою ситуацию объяснял. На этот раз объясню подробно! Я живу в Барнауле, в городе, где имеется всего лишь одна единственная оригинальная книга Попова в читальном зале политеха. Т.к. я инвалид 1-ой группы 3-ей степени, то не могу придти в политех и провести там целый день, выискивая то, что мне надо! Поэтому, мама взяла мне книгу под залог на 4 дня, оставив там 500 рублей. Дальше её необходимо было продлять. Продление обходилось 50 копеек в час. Я решил, что оставлю книгу до среды, т.к. в среду у меня был экзамен по математике и были занятия у препода по информатике. Освободившись, препод минут 15 думал как довести до ума пример из книги Попова про гостиницу! ПРЕПОД!!! Потом дал мне курсовую моего одногрупника и сказал, чтобы я на её основе сделал свою. Теперь Redrik надеюсь ты понимаешь почему я сказал "...не наглей..." (причём не тебе!!!). Из всего выше сказанного следует отметить, что если даже мой препод не смог довести до ума пример из книги, причём имея оригинал(!!!), то неужели я не имею права задать пару вопросов, на которые Вам ответить - это всё равно, что конфету развернуть! Может быть я немного преувеличил, но я думаю многие знают как решить мою проблему с процедурами, но не отвечают, дабы показать свою гордость, типа "вот он спрашивает о том, что и сам может прочитать в книге! А нет, тратит своё и чужое время..." Интересно, как бы ты, Urri, поступил бы на моём месте? UrriОсобенно если ты так себя ведешь.Хм... А как я себя веду, позволь спросить?
UrriКак ты думаешь, что побуждает обитателей данной конференции отвечать на вопросы новичков? Денег они за это не получают.Во-первых, жалость. Во-вторых, если вопрос не сложный для того, кто несколько лет работает с FoxPro, то почему бы и не ответить? Вот ты, лично, что ожидал увидеть, зайдя на эту тему? UrriЗа себя скажу: лично мне приятно, когда молодой человек в результате такого общения что-то полезное усвоит, это и есть моя единственная мотивация. При этом подразумевается, что спрашивающий сам проделает большую часть работы, пропустит то, что ему присоветуют, через себя, обобщит опыт, полученный при разборе конкретного примера в знание.Хм... А что, про меня этого не скажешь?! :-( UrriА вот людей, которые за чужой счет жить пытаются, я не люблю.А я, что, такой? 8-О UrriЕсли тебе не интересно то, для чего затевалась твоя курсовая, и ты даже открытым текстом пишешь, что появление FoxPro в твоей биографии есть досадная помеха,Погоди-погоди! Это где ж я такое писал??? Urriа не повод чему-то научиться, то зачем ты сюда пришел?Я думаю, что всё вышесказанное ПОЛНОСТЬЮ отвечает на этот вопрос. UrriВот ты пишешь ВладимируМ: "Давай я тебе пришлю архив со всеми файлами и ты поможешь мне сделать курсовую." Ну и кого ты пытаешься обмануть? Себя? Ведь такие вещи называются не помощью, вот ты так и написал бы: "Давай я тебе пришлю архив со всеми файлами и ты сделаешь за меня курсовую." Так честно.Во-первых, у меня дефект речи и со мной очень тяжело общаться. Из-за этого я не могу более полно выражать свои мысли. Моё предложение ВладимируМ следует понимать следующим образом. Я ему высылаю этот архив с контретной проблемой. Он смотрит, помогает исправить ошибку и высылает мне архив обратно с доработанной программой и пояснениями о том почему у меня была ошибка. Дальше я продолжаю делать курсовую до тех пор, пока у меня не появится очередная непонятная проблема. В этом случае я отсылаю ему вновь архив и он мне её исправляет. Так, я примерно за неделю доделал бы курсовую, т.к. там мне немного осталось. UrriНо поможет ли тебе кто-нибудь? Да, вероятно, если ты найдешь способ заинтересовать человека, убедишь его потратить свое время на тебя.Если ты смеешь так говорить, то я вообще не понимаю что тебя заставило зайти на эту тему??? UrriКак ты это можешь сделать? Ну поскольку нематериальная мотивация у тебя не вышла, остается материальная. Кто-нибудь, из тех, кто делает курсовики за деньги, обязательно тебе поможет, если договоритесь, конечно. Я - нет. Хотя были времена и обстоятельства, когда я этим не гнушался, каюсь, был грех. Но это в прошлом. Моя теперешняя позиция такова: если человек выдает результат чужого умственного труда за свой в ВУЗе, то он и потом будет это делать. Если потом он окажется моим коллегой, мне от этого будет хуже, и этого мне уже никто не скомпенсирует. Ну и не только это соображение, есть и другие. Короче, учиться надо своим умом.Вот как да? И как тебе только не стыдно такое говорить? М-да... Если ты мне такое говоришь, то я думать боюсь, что ты бы сказал моему преподу, который даже пример из книги довести до ума не смог!
...
Рейтинг: 0 / 0
Помогите, пожалуйста, разобраться с примером из книги Попова
    #33813079
Urri
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
авторя вообще не понимаю что тебя заставило зайти на эту тему???А то, что когда-то я именно с примерами из книги Попова разбирался, и разобрался же! И если бы ты спросил как надо, я бы, конечно, помог. Впрочем, никто тебе не мешает исправиться. Задай вопрос так, чтобы я на него захотел ответить - и я отвечу.
...
Рейтинг: 0 / 0
Помогите, пожалуйста, разобраться с примером из книги Попова
    #33813099
-)
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
-)
Гость
parenyok
Во-первых, у меня дефект речи и со мной очень тяжело общаться. Из-за этого я не могу более полно выражать свои мысли. Моё предложение ВладимируМ следует понимать следующим образом. Я ему высылаю этот архив с контретной проблемой. Он смотрит, помогает исправить ошибку и высылает мне архив обратно с доработанной программой и пояснениями о том почему у меня была ошибка. Дальше я продолжаю делать курсовую до тех пор, пока у меня не появится очередная непонятная проблема. В этом случае я отсылаю ему вновь архив и он мне её исправляет. Так, я примерно за неделю доделал бы курсовую, т.к. там мне немного осталось.

А при чем здесь, на форуме – дефект речи, тут вроде как нужно - письменно, а не устно излагать свои мысли. И вообще, тебе не приходила в голову такая мысль, что у ВладимираМ есть еще и работа, за которую ему деньги платят. (Если тебе не известно, то знай – за ответы на форуме – денег не платят!)

Помочь в решении твоих проблем (какими бы критичными они не были для тебя) здесь могут исключительно на добровольной основе. Но стиль изложения твоих постов (где-то даже, на грани наглости) – совершенно не вдохновляет делать – это.

И поэтому, полностью согласен с - Urri
Urri
Задай вопрос так, чтобы я на него захотел ответить…
...
Рейтинг: 0 / 0
Помогите, пожалуйста, разобраться с примером из книги Попова
    #33813145
Фотография Redrik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Эх, всего на полчасика опоздал... Так хотелось свои 5 коп. насчет "дефекта речи" ввернуть... :-)))

parenyok! Жалость - препаскуднейшее из чЮйств человеческих! Забудь это слово!
Тем более не нужно постоянно пытаться вызывать это чувство в свой адрес!
Проблема не в том, инвалид ты или здоров, как бык... Тем более - в инете!
Проблема в умении вежливо себя вести, и уж тем более тогда, когда просишь помощи! А ты, как уже подметили, действуешь на грани наглости...
...
Рейтинг: 0 / 0
Помогите, пожалуйста, разобраться с примером из книги Попова
    #33813154
Sergey Ch
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Модератор: Уважемый parenyok будьте, пожалуйста, вежливы к участникам форума
...
Рейтинг: 0 / 0
Помогите, пожалуйста, разобраться с примером из книги Попова
    #33813232
parenyok
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Urri авторя вообще не понимаю что тебя заставило зайти на эту тему???А то, что когда-то я именно с примерами из книги Попова разбирался, и разобрался же!Ну вот ты разобрался, а препод не смог! А если даже препод не смог, то, что уж говорить обо мне. UrriИ если бы ты спросил как надо, я бы, конечно, помог. Впрочем, никто тебе не мешает исправиться. Задай вопрос так, чтобы я на него захотел ответить - и я отвечу.Хорошо, постараюсь. Переделывая курсовую своего одногрупника под свою, я захотел изменить опцию выхода из программы, для чего использовал программу, в которой как раз были две процедуры выхода в FoxPro и в Windows. Но, к сожалению, я никак не могу найти то место в программе, где они вызываются. Ну как, получилось? :-(
-)А при чем здесь, на форуме – дефект речи, тут вроде как нужно - письменно, а не устно излагать свои мысли.Читай внимательней!!! parenyok
...у меня дефект речи и со мной очень тяжело общаться. Из-за этого я НЕ МОГУ БОЛЕЕ ПОЛНО ВЫРАЖАТЬ СВОИ МЫСЛИ ... Это значит, что все те высказывания, которые Redrik назвал "действуешь на грани наглости", просто неудачные шутки! Просто все те, с которыми я переписывался, понимали, где я шучу, а где говорю всерьёз. Для этого есть специальные обозначения - смайлики называются, которыми пользуются практически все юзеры инета! Я здесь, вроде бы, везде, где шутил, использовал смайлики. Уж не знаю, в чём я так провинился? :-( -)И вообще, тебе не приходила в голову такая мысль, что у ВладимираМ есть еще и работа, за которую ему деньги платят. (Если тебе не известно, то знай – за ответы на форуме – денег не платят!)А на форуме он зарегился для чего? -)Помочь в решении твоих проблем (какими бы критичными они не были для тебя) здесь могут исключительно на добровольной основе. Но стиль изложения твоих постов (где-то даже, на грани наглости) – совершенно не вдохновляет делать – это.

И поэтому, полностью согласен с - Urri
Urri
Задай вопрос так, чтобы я на него захотел ответить…
Ну я выше попробовал перезадать вопрос. Надеюсь, получилось...
RedrikЭх, всего на полчасика опоздал... Так хотелось свои 5 коп. насчет "дефекта речи" ввернуть... :-)))А что такое? Что? Если человек страдает такой болезню как инвалидность, то над ним и посмеяться не стыдно? :-/ Redrikparenyok! Жалость - препаскуднейшее из чЮйств человеческих! Забудь это слово!Ох, ну и бессердечный же ты! :-< RedrikТем более не нужно постоянно пытаться вызывать это чувство в свой адрес!М-да... Посмотрел бы я на тебя, очутись ты в подобной ситуации! Redrik
Проблема не в том, инвалид ты или здоров, как бык... Тем более - в инете!
Проблема в умении вежливо себя вести, и уж тем более тогда, когда просишь помощи! А ты, как уже подметили, действуешь на грани наглости...Ой! Ну извините меня великодушно. Ну пошутил пару раз неудачно. И что, теперь всем форумом будете меня ненавидеть? :-(((
...
Рейтинг: 0 / 0
Помогите, пожалуйста, разобраться с примером из книги Попова
    #33813251
Фотография Redrik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Отбрасывая "шелуху", одно из двух:
1. Я тебе не верю!
2. Тебя жутко разбаловали постоянным сочувствием!

И не надо тут давить на "бессердечность", не зная собеседника! :-\
...
Рейтинг: 0 / 0
Помогите, пожалуйста, разобраться с примером из книги Попова
    #33813512
Urri
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ну хорошо.

Как вообще вызываются процедуры? Вот так:
Код: plaintext
DO имя_процедуры [IN имя_процедурного_файла]
Как твои процедуры выхода называются?
END и QUIT (кстати, и то и другое - это команды FoxPro, а свои процедуры так называть если и не недопустимо, то очень плохо - переименуй хотя бы в MY_END и MY_QUIT).

Ты можешь поиском пользоваться в текстовом редакторе? Ну и попробуй в основной программе хоть где-нибудь найти строки END и QUIT. Наверное, не найдешь. ;-)

Далее ты начнешь вдумчиво читать код и анализировать, что же делает каждая команда. Наконец, ты найдешь вот это:
Код: plaintext
1.
2.
3.
4.
5.
...
define pad vih of mainmenu prompt'\<Выход' at  5 , 64 ;
message 'Выход из программы'
...
on selection pad vih of mainmenu activate window w5
...
Что это? По меню Выход у тебя активизируется окно w5. (Кстати, где оно до этого определяется?)

А что должно быть? Выход?

Ну и что надо написать после:
Код: plaintext
on selection pad vih of mainmenu ...
?

Я ответил.
...
Рейтинг: 0 / 0
Помогите, пожалуйста, разобраться с примером из книги Попова
    #33815818
parenyok
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
UrriНу хорошо.

Как вообще вызываются процедуры? Вот так:
Код: plaintext
DO имя_процедуры [IN имя_процедурного_файла]
Как твои процедуры выхода называются?
END и QUIT (кстати, и то и другое - это команды FoxPro, а свои процедуры так называть если и не недопустимо, то очень плохо - переименуй хотя бы в MY_END и MY_QUIT).

Ты можешь поиском пользоваться в текстовом редакторе? Ну и попробуй в основной программе хоть где-нибудь найти строки END и QUIT. Наверное, не найдешь. ;-)

Далее ты начнешь вдумчиво читать код и анализировать, что же делает каждая команда. Наконец, ты найдешь вот это:
Код: plaintext
1.
2.
3.
4.
5.
...
define pad vih of mainmenu prompt'\<Выход' at  5 , 64 ;
message 'Выход из программы'
...
on selection pad vih of mainmenu activate window w5
...
Что это? По меню Выход у тебя активизируется окно w5. (Кстати, где оно до этого определяется?)

А что должно быть? Выход?

Ну и что надо написать после:
Код: plaintext
on selection pad vih of mainmenu ...
?

Я ответил.
Код: plaintext
on selection pad vih of mainmenu do konec.and.do vihod
(konec и vihod - процедуры выхода в FoxPro и в Windows соответственно)? У меня в этом случае в этой строке появляется синтаксическая ошибка, почему-то. Просмотрев код программы, из которой я взял процедуры выхода, я вот что нашёл:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
.....................
defi menu m  SHADOW 
..........................
defi pad n5 of m prom ' Выход 'at  1 , 55  COLOR scheme  4  
...............................
on pad n5 of m acti popup a5
...............................
**** A5 ****
defi popup a5 from  2 , 55  SHADOW COLOR scheme  4 
defi bar  1  of a5 prom 'FoxPro'color ,,,, 4 */ 9 , 4 */ 9 
defi bar  2  of a5 prom 'Windows'color ,,,, 4 */ 9 , 4 */ 9 

on sele bar  1  of a5 do CANCEL
on sele bar  2  of a5 do quit
..................................
         **** процедур  выход  в FOXPRO *****
proc cancel
define window vf from  7 , 13  to  15 , 58   title '"ВНИМАНИЕ"';
shad doub color r+/b,n/n,rb/bg+ 
ACTI WIND vf in w5 
A= 0 
B= 0 
@  1 , 2  SAY 'ВЫ ДЕЙСТВИТЕЛЬНО ХОТИТЕ ВЫЙТИ В FOXPRO ?' 
@  4 , 11  GET A FUNC '*   ДА' 
@  4 , 29  GET B FUNC '*  НЕТ' 
READ
IF A= 1 
DEACTI WIND ALL
CANCEL
else
DEAC WIND vf
ENDIF
RETU
.............................................         
           **** процедур  выход  в Windows *****
proc quit
*para mpoup, mprompt, mbar
define window vnc from  7 , 13  to  15 , 58   title '"ВНИМАНИЕ"';
shad doub color r+/b,n/n,rb/bg+ 
ACTI WIND vnc
A= 0 
b= 0 
@  1 , 2  SAY 'ВЫ ДЕЙСТВИТЕЛЬНО ХОТИТЕ ВЫЙТИ В Windows ?' 
@  4 , 11  GET A FUNC '*   ДА' 
@  4 , 29  GET B FUNC '*  НЕТ' 
READ
IF A= 1 
deacti wind m1
quit
else
DEAC WIND vnc
ENDIF
RETU
...........................................
У себя я сделал вот что:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
68.
69.
70.
71.
72.
73.
74.
75.
76.
77.
78.
79.
80.
81.
82.
83.
84.
85.
86.
87.
88.
89.
90.
91.
92.
93.
94.
95.
96.
97.
98.
99.
100.
101.
102.
103.
104.
105.
106.
107.
108.
109.
110.
111.
112.
113.
114.
115.
116.
117.
118.
119.
120.
121.
122.
123.
124.
125.
126.
127.
128.
129.
130.
131.
132.
133.
134.
135.
136.
137.
138.
139.
140.
141.
142.
143.
144.
145.
146.
147.
148.
149.
150.
151.
152.
153.
154.
155.
156.
157.
158.
159.
160.
161.
162.
163.
164.
165.
166.
167.
168.
169.
170.
171.
172.
173.
174.
175.
176.
parameters progr
clea
clea all
set prin off
set cons on
set talk off
set conf on
set safe off
set esca off
set century on
set date to german
set bell to  300 , 1 
set clock off && выключение часов
close all && зыкрытие всех баз данных
set cursor off && выключение курсора
set talk off && отмена выдачи протокола 
set deleted on
clear && очистка экрана
define window p1 from  10 , 39  to  12 , 41 
define window m from  16 , 14  to  18 , 67  doubl float  color scheme  7             
activate window p1
store  12  to i,i1
store  40  to j,j1
&& цикл разворачивания окна
do while i# 0 .or.j# 0 .or.i1# 24 .or.j1# 79  
f= 0 
i=iif(i> 0 ,i- 1 , 0 )
j=iif(j> 0 ,j- 2 , 0 )
i1=iif(i1< 24 ,i1+ 1 , 24 )
j1=iif(j1< 79 ,j1+ 2 , 79 )
zoom window p1 norm at i,j to i1,j1
enddo
text && вывод на экран заставки, начало text

   Я Я Я                                                                 
   Я     Я Я Я  Я Я Я  Я Я Я  Я     Я  Я     Я  Я     Я  Я    Я     Я Я   
   Я     Я   Я  Я        Я    Я    ЯЯ  Я     Я  Я    ЯЯ  Я    Я   Я     Я 
   Я     Я   Я  Я        Я    Я   Я Я  Я Я Я Я  Я   Я Я  Я    Я   Я Я Я Я
   Я     Я   Я  Я        Я    Я  Я  Я  Я     Я  Я  Я  Я  Я    Я   Я     Я
   Я     Я Я Я  Я Я Я    Я    Я Я   Я  Я     Я  Я Я   Я  Я Я Я Я  Я     Я
                                                               Я                        


                              Данные о посетителях.
endtext && завершение вывода, endtext

save screen to jonny && сохраняем экран в переменную jonny
activate wind m
@ 0 , 5  say'Для пpодолжения pаботы нажмите любую клавишу.'
read

clear windows && убирает из памяти все окна
set cursor on && включение курсора
SET COLOR TO gr


*set defa to c:\

do menugl 

proc menugl
*--- помощь, если есть файл помощи ---*
 if file('HELP.PRG').or.file('HELP.TXT')
 on key labe F1 do HELP.TXT
 endif
*set defa to KURS

set clock on
set color to  w,w/b, r/w && установка цвета - белый на синем,	
set color to  1 / 2 ,b/g+,gr+/rb+ 
&& а для часов красный на белом
SET CLOCK TO  0 , 71 
defi wind EWIND from  0 , 0  to  4 , 79  color gr+/r,gr+/r,gr+/r 
set hours to  24  && установка  24  часового исчисления
k=td1( 20 ,date())
                
@  10 , 1  say'   Я Я Я                                                                 '
@  11 , 1  say'   Я     Я Я Я  Я Я Я  Я Я Я  Я     Я  Я     Я  Я     Я  Я    Я     Я Я  ' 
@  12 , 1  say'   Я     Я   Я  Я        Я    Я    ЯЯ  Я     Я  Я    ЯЯ  Я    Я   Я     Я' 
@  13 , 1  say'   Я     Я   Я  Я        Я    Я   Я Я  Я Я Я Я  Я   Я Я  Я    Я   Я Я Я Я'
@  14 , 1  say'   Я     Я   Я  Я        Я    Я  Я  Я  Я     Я  Я  Я  Я  Я    Я   Я     Я'
@  15 , 1  say'   Я     Я Я Я  Я Я Я    Я    Я Я   Я  Я     Я  Я Я   Я  Я Я Я Я  Я     Я'
@  16 , 1  say'                                                               Я         '               

define menu mainmenu in screen color gr/bg,r/bg,gr/bg,gr/bg,gr+/w,rb/w,gr+/bg
set defa to c:\kurs
define pad gosti of mainmenu prompt'\<Список гостей' at  5 , 7 ;
message 'Ввод, просмотр и редакторование данных по количеству гостей в гостинице.'
define pad etaji of mainmenu prompt'\<Этажи' at  5 , 25 ;
message 'Просмотр этажей гостиницы'
define pad pom of mainmenu prompt'\<Помощь' at  5 , 55 ;
message 'Помощь в работе с программой'
define pad vih of mainmenu prompt'\<Выход' at  5 , 64 ;
message 'Выход из программы'

********Добавлено****************
defi popup a5 from  2 , 55  SHADOW COLOR scheme  4 
defi bar  1  of a5 prom 'FoxPro'color ,,,, 4 */ 9 , 4 */ 9 
defi bar  2  of a5 prom 'Windows'color ,,,, 4 */ 9 , 4 */ 9 

on sele bar  1  of a5 do conec
on sele bar  2  of a5 do vihod
*********************************
on selection pad gosti of mainmenu do guests.prg
on selection pad etaji of mainmenu do floor.prg
on selection pad pom of mainmenu do help.txt 
on selection pad vih of mainmenu do acti poput a5 *Изменённая строка

acti wind EWIND
@ 0 , 15  say 'Курсовая работа студента 1 курса гр.9ПИЭ-51'
@ 2 , 27  say'Сегодня: '+k 
acti menu mainmenu


************************************************
function td1
para m,k
dn=alltrim(STR(day(k)))
g=alltrim(STR(year(k)))
ms=month(k)
dime s( 12 )
s( 1 )='ЯHВАРЯ'
s( 2 )='ФЕВРАЛЯ'
s( 3 )='МАРТА'
s( 4 )='АПРЕЛЯ'
s( 5 )='МАЯ'
s( 6 )='ИЮHЯ'
s( 7 )='ИЮЛЯ'
s( 8 )='АВГУСТА'
s( 9 )='СЕHТЯБРЯ'
s( 10 )='ОКТЯБРЯ'
s( 11 )='HОЯБРЯ'
s( 12 )='ДЕКАБРЯ'
sd=padr((dn+s(ms)+' '+g),m)
return sd
**** Процедура выхода ****
         **** процедура выхода в FOXPRO *****
proc konec
define window vf from  7 , 13  to  15 , 58   title '"ВНИМАНИЕ"';
shad doub color r+/b,n/n,rb/bg+ 
ACTI WIND vf in w5 
A= 0 
B= 0 
@  1 , 2  SAY 'ВЫ ДЕЙСТВИТЕЛЬНО ХОТИТЕ ВЫЙТИ В FOXPRO ?' 
@  4 , 11  GET A FUNC '*   ДА' 
@  4 , 29  GET B FUNC '*  НЕТ' 
READ
IF A= 1 
DEACTI WIND ALL
CANCEL
else
DEAC WIND vf
ENDIF
RETU

**** процедура выхода в Windows *****
proc vihod
*para mpoup, mprompt, mbar
define window vnc from  7 , 13  to  15 , 58   title '"ВНИМАНИЕ"';
shad doub color r+/b,n/n,rb/bg+ 
ACTI WIND vnc in w5
A= 0 
b= 0 
@  1 , 2  SAY 'ВЫ ДЕЙСТВИТЕЛЬНО ХОТИТЕ ВЫЙТИ В Windows ?' 
@  4 , 11  GET A FUNC '*   ДА' 
@  4 , 29  GET B FUNC '*  НЕТ' 
READ
IF A= 1 
deacti wind m1
quit
else
DEAC WIND vnc
ENDIF
RETU

return sd
Но всё равно в изменённой строке, почему-то, выдаётся синтаксическая ошибка. Помогите, пожалуйста, что я сделал не так.
...
Рейтинг: 0 / 0
Помогите, пожалуйста, разобраться с примером из книги Попова
    #33815865
Urri
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
on selection pad vih of mainmenu acti popup a5 &&Изменённая строка
* Вроде так
...
Рейтинг: 0 / 0
Помогите, пожалуйста, разобраться с примером из книги Попова
    #33817538
parenyok
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ой! Спасибо!!! Вот до чего невнимательность доводит! :-) Но ошибка всё равно есть. Странно! :'-(
...
Рейтинг: 0 / 0
Помогите, пожалуйста, разобраться с примером из книги Попова
    #33825684
parenyok
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Тьфу ты, блин! Неправильно строку прочитал! Там же do-то нету, а я всё с этим do маялся! Уф! Теперь операции выхода работают! Теперь проблема в следующем. Не могу запустить файл помощи (свой). Вот текст программы:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
set proc to floor.prg 
if file('help.txt') 
close alte to 
do ModiDisp with 'help.txt' 
else 
set alte to help.txt 
set alte on 
?'Файл помощи удален!!! Разбирайся сам.' 
close alte to 
do ModiDisp with 'help.TXT'  
endif 
set proc to 
return
Ошибка в строке do ModiDisp with 'help.txt' (в первой сверху) "Файл MODIDISP.PRG не существует.". Но он там и не нужен, т.к. я этот файл (help.prg) из курсовой одногрупника скопировал к себе. Сначала у меня также появлялась эта ошибка. Подредактировав первую строку, у меня файл помощи стал открываться. Но после добавления функций выхода - опять эта ошибка появилась. Помогите, пожалуйста, исправить эту ошибку.
...
Рейтинг: 0 / 0
Помогите, пожалуйста, разобраться с примером из книги Попова
    #33826306
Urri
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
авторWhen you execute a procedure with DO <procedure name>, FoxPro searches for the procedure in a specific order.
► First, the file containing DO <procedure name> is searched.
► Second, a procedure file opened with SET PROCEDURE (if one is set) is searched.
► Third, FoxPro looks through the programs in the execution chain. Program files are searched beginning with the most recently executed program and continuing back to the first executed program.
► Fourth, a procedure file opened with SET LIBRARY (if one is set) is searched.
► Fifth, FoxPro searches for a stand-alone program file. If a program file with the same name as the file name specified with DO is found, the program is executed. If a matching program file name isn't found, an error message "File doesn't exist" is returned.

Если ты даешь команду "do ModiDisp", то процедура ModiDisp должна быть в одном из указанных мест.
...
Рейтинг: 0 / 0
Помогите, пожалуйста, разобраться с примером из книги Попова
    #33828129
parenyok
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ура!!! :-P Нашёл в одной программе из курсовой одногрупника процедуру ModiDisp, поставил себе и файл помощи запустился! :-P Уфф! Теперь проблема в следующем. Вот программа, в которой описываются БД гостей в гостинице и все операции над ней:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
68.
69.
70.
71.
72.
73.
74.
75.
76.
77.
78.
79.
80.
81.
82.
83.
84.
85.
86.
87.
88.
89.
90.
91.
92.
93.
94.
95.
96.
97.
98.
99.
100.
101.
102.
103.
104.
105.
106.
107.
108.
109.
110.
111.
112.
113.
114.
115.
116.
117.
118.
119.
120.
121.
122.
123.
124.
125.
126.
127.
128.
129.
130.
131.
132.
133.
134.
135.
136.
137.
138.
********************************************************************************
****************** Работа с БД гостей ***************
close data
*SET DEFAULT TO C:\kr
sele a
use guests.dbf
push key clea
defi wind SFEDIT from  1 , 00  to  20 , 95 ; 
titl '<<< Список гостей >>>' foot ' F8_удаление  F7_редактирование F5_добавить F10_ВЫХОД 'color w,r/br,gr+/rb+,gr+/br 
acti wind SFEDIT
on key labe f7 do red_v
on key labe f5 do dob
on key labe F10  keyboard '{Ctrl+END}'
on key labe F8 do del
on key labe HOME go top
on key labe END go bott
pack
brow ;
      fiel fam:h='ФИО': 15 ,;
           pol:h='Пол': 3 ,;
           pas:h='ь паспорта': 10 ,;
           pri:h='Дата прибытия': 13 ,;
           otb:h='Дата отбытия': 12 ,;
           num:h='ь гостя': 7 ;
           noed noap in wind SFEDIT
rele wind SFEDIT
set deleted on
on key labe f5
on key labe f7
on key labe f10
on key labe F8
on key labe HOME
on key labe END
clos data
 on key labe F1 do HELP.PRG
retu
********************************************************************************
****************** Процедура ввода записей БД гостей ***************
proc dob
push key clear
defi wind dobav from  4 , 8  to  17 , 50 ; 
titl '<<< Характеристики нового гостя >>>'foot 'Выход - Esc' color , , W+/B,W+/B,W+/B 
acti wind dobav
dime s( 6 )
store space( 15 ) to s( 1 )
store space( 10 ) to s( 2 )
store space( 1 ) to s( 3 )
store space( 10 ) to s( 4 )
store space( 10 ) to s( 5 )
store space( 2 ) to s( 6 )
if eof()
s( 1 )= 1 
else
go BOTTOM
endif
@  1 , 0  say'ФИО'
@  2 , 0  say'Номер паспорта'
@  3 , 0  say'Пол'
@  4 , 0  say'Дата приезда'
@  5 , 0  say'Дата отъезда'
@  6 , 0  say'Номер'
@  1 , 20  get s( 1 ) pict'xxxxxxxxxxxxx' 
@  2 , 20  get s( 2 ) pict'9999999999999'
@  3 , 20  get s( 3 ) pict'x'
@  4 , 20  get s( 4 ) pict'99.99.9999' 
@  5 , 20  get s( 5 ) pict'99.99.9999'
@  6 , 20  get s( 6 ) pict'99'
i= 0 
a= 0 
b= 0 
@  10 , 10  GET A FUNC '*   OK' 
@  10 , 20  GET B FUNC '*  Отмена' 
read cycle 
if i= 1 
append blank
gather from s
ENDIF
rele wind dobav
pop key
return
********************************************************************************
****************** Процедура редактирования записей БД продуктов ***************
proc red_v
if !eof()
push key clear
defi wind red from  4 , 8  to  17 , 50 ; 
titl '<<< Редактирование гостя >>>'foot 'Выход - Esc' color , , W+/B,W+/B,W+/B
acti wind red
dime s( 6 )
s( 1 )=fam
s( 2 )=pas
s( 3 )=pol
s( 4 )=pri
s( 5 )=otb
s( 6 )=num
@  1 , 5  say'ФИО'
@  2 , 2  say'ь паспорта'
@  3 , 2  say'Пол'
@  4 , 2  say'Дата прибытия'
@  5 , 2  say'Дата отбытия'
@  6 , 2  say'ь гостя'
@  1 , 20  get s( 1 ) pict'xxxxxxxxxxxxxxxxxxxxxxxxxxxx'
@  2 , 20  get s( 2 ) pict'xxxxxxxxxxxxxxxxxxxxxxxxxxxx' 
@  3 , 20  get s( 3 ) pict'x'
@  4 , 20  get s( 4 ) pict'99.99.9999' 
@  5 , 20  get s( 5 ) pict'99.99.9999' 
@  6 , 20  get s( 6 ) pict'99'
i= 0 
a= 0 
b= 0 
@  10 , 10  GET A FUNC '*   OK' 
@  10 , 20  GET B FUNC '*  Отмена' 
read cycle 
if i= 1 
gather from s
ENDIF
rele wind red
pop key
endif
return
********************************************************************************
****************** Процедура удаления записей БД  ***************
proc del
if !eof()
push key clear
define window vnc from  7 , 15  to  12 , 56   title '"ВHИМАHИЕ"';
shad doub color r+/b,n/n,rb/bg+ 
ACTI WIND vnc
store  0  to i
@  0 , 12  SAY ' УДАЛИТЬ ЗАПИСЬ' 
@  2 , 7  get i function '*h\! ОК;Отмена' size  3 , 13 , 3 
READ
IF i= 1 
delete
endif
rele wind vnc
pop key
endif
return
Проблема в процедуре редактирования записей БД гостей.
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
****************** Процедура редактирования записей БД гостей ***************
proc red_v
if !eof()
push key clear
defi wind red from  4 , 8  to  17 , 50 ; 
titl '<<< Редактирование гостя >>>'foot 'Выход - Esc' color , , W+/B,W+/B,W+/B
acti wind red
dime s( 6 )
s( 1 )=fam
s( 2 )=pas
s( 3 )=pol
s( 4 )=pri
s( 5 )=otb
s( 6 )=num
@  1 , 5  say'ФИО'
@  2 , 2  say'ь паспорта'
@  3 , 2  say'Пол'
@  4 , 2  say'Дата прибытия'
@  5 , 2  say'Дата отбытия'
@  6 , 2  say'ь гостя'
@  1 , 20  get s( 1 ) pict'xxxxxxxxxxxxxxxxxxxxxxxxxxxx'
@  2 , 20  get s( 2 ) pict'xxxxxxxxxxxxxxxxxxxxxxxxxxxx' 
@  3 , 20  get s( 3 ) pict'x'
@  4 , 20  get s( 4 ) pict'99.99.9999' 
@  5 , 20  get s( 5 ) pict'99.99.9999' 
@  6 , 20  get s( 6 ) pict'99'
i= 0 
a= 0 
b= 0 
@  10 , 10  GET A FUNC '*   OK' 
@  10 , 20  GET B FUNC '*  Отмена' 
read cycle 
if i= 1 
gather from s
ENDIF
rele wind red
pop key
endif
return
Программа запускается, окно редактирования открывается, но вот данные после редактирования не изменяются. Конечно по заданию курсовой эта процедура не нужна, но всё-таки хочется, чтобы она у меня была. Также проблема в процедуре добавления гостя.
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
****************** Процедура ввода записей БД гостей ***************
proc dob
push key clear
defi wind dobav from  4 , 8  to  17 , 50 ; 
titl '<<< Характеристики нового гостя >>>'foot 'Выход - Esc' color , , W+/B,W+/B,W+/B 
acti wind dobav
dime s( 6 )
store space( 15 ) to s( 1 )
store space( 10 ) to s( 2 )
store space( 1 ) to s( 3 )
store space( 10 ) to s( 4 )
store space( 10 ) to s( 5 )
store space( 2 ) to s( 6 )
if eof()
s( 1 )= 1 
else
go BOTTOM
endif
@  1 , 0  say'ФИО'
@  2 , 0  say'Номер паспорта'
@  3 , 0  say'Пол'
@  4 , 0  say'Дата приезда'
@  5 , 0  say'Дата отъезда'
@  6 , 0  say'Номер'
@  1 , 20  get s( 1 ) pict'xxxxxxxxxxxxx' 
@  2 , 20  get s( 2 ) pict'9999999999999'
@  3 , 20  get s( 3 ) pict'x'
@  4 , 20  get s( 4 ) pict'99.99.9999' 
@  5 , 20  get s( 5 ) pict'99.99.9999'
@  6 , 20  get s( 6 ) pict'99'
i= 0 
a= 0 
b= 0 
@  10 , 10  GET A FUNC '*   OK' 
@  10 , 20  GET B FUNC '*  Отмена' 
read cycle 
if i= 1 
append blank
gather from s
ENDIF
rele wind dobav
pop key
return
После вызова этого окна, оно появляется но после ввода характеристик гостя также ничего не изменяется.
...
Рейтинг: 0 / 0
Помогите, пожалуйста, разобраться с примером из книги Попова
    #33828688
Фотография Redrik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Найди отличия:
Код: plaintext
1.
2.
3.
4.
5.
6.
store  0  to i
@  0 , 12  SAY ' УДАЛИТЬ ЗАПИСЬ' 
@  2 , 7  get i function '*h\! ОК;Отмена' size  3 , 13 , 3 
READ
IF i= 1 
delete
endif

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
i= 0 
a= 0 
b= 0 
@  10 , 10  GET A FUNC '*   OK' 
@  10 , 20  GET B FUNC '*  Отмена' 
read cycle 
if i= 1 
gather from s
ENDIF
...
Рейтинг: 0 / 0
Помогите, пожалуйста, разобраться с примером из книги Попова
    #33828925
Urri
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Не изменяется где? В окне browse после закрытия окна редактирования?
Или в самой табличке? А что будет, если закрыть окно browse после редактирования и переоткрыть его? Изменения появятся?
Если да, то вот самая простая (если надо срочно исправить) технология:
обрами команду browse следующей конструкцией:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
...
private p_end
p_end = .F.
do while not p_end
  browse...
enddo
...
Далее измени on key labe F10 keyboard '{Ctrl+END}' на
Код: plaintext
on key labe F10  do do_vih
Добавь процедуру do_vih туда же, к остальным процедурам (red_v, dob, del)
Код: plaintext
1.
2.
3.
procedure do_vih
  p_end = .T.
  keyboard '{Ctrl+END}'
return
И еще в каждую из процедур red_v, dob, del перед операторами return добавь по строчке
Код: plaintext
1.
2.
3.
4.
proc dob
...
keyboard '{Ctrl+END}'
return
...
Рейтинг: 0 / 0
Помогите, пожалуйста, разобраться с примером из книги Попова
    #33830706
parenyok
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
RedrikНайди отличия:
Код: plaintext
1.
2.
3.
4.
5.
6.
store  0  to i
@  0 , 12  SAY ' УДАЛИТЬ ЗАПИСЬ' 
@  2 , 7  get i function '*h\! ОК;Отмена' size  3 , 13 , 3 
READ
IF i= 1 
delete
endif

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
i= 0 
a= 0 
b= 0 
@  10 , 10  GET A FUNC '*   OK' 
@  10 , 20  GET B FUNC '*  Отмена' 
read cycle 
if i= 1 
gather from s
ENDIF
Отличия (перед тем как их перечислять, отмечу, что я также скопировал эту программу из курсовой одногрупника и переделываю под свою!):
1) 1-ая процедура удаления, а 2-ая - процедура ввода БД гостей;
2) Кнопки "Ок" и "Отмена" находятся на разных местах, т.к. я также захотел поменять их местоположение, но для процедуры удаления пока ещё не дошёл.
3) всвязи с различием процедур, используются соответствующие команды.
Вроде всё... А я не понял, к чему ты мне привёл эти две процедуры? Тест на сообразительность? :-)
UrriНе изменяется где? В окне browse после закрытия окна редактирования?
Или в самой табличке?Извини. Я не понял про что ты спрашиваешь. У меня открывается окно, в котором список гостей. Я вызываю окно редактирования. После того, как я вношу изменения, у меня в первом окне ничего не меняется. UrriА что будет, если закрыть окно browse после редактирования и переоткрыть его? Изменения появятся?Нет...
Если да, то вот самая простая (если надо срочно исправить) технология:
обрами команду browse следующей конструкцией:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
...
private p_end
p_end = .F.
do while not p_end
  browse...
enddo
...
Далее измени on key labe F10 keyboard '{Ctrl+END}' на
Код: plaintext
on key labe F10  do do_vih
Добавь процедуру do_vih туда же, к остальным процедурам (red_v, dob, del)
Код: plaintext
1.
2.
3.
procedure do_vih
  p_end = .T.
  keyboard '{Ctrl+END}'
return
И еще в каждую из процедур red_v, dob, del перед операторами return добавь по строчке
Код: plaintext
1.
2.
3.
4.
proc dob
...
keyboard '{Ctrl+END}'
return
[/quot]Добавил. Почему-то выдаётся синтаксическая ошибка в строке
Код: plaintext
on key labe F10  do do_vih
Может, что не так сделал. Вот отредактированная программа. Если найдёшь какие-то неточности, пожалуйста, укажи.
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
68.
69.
70.
71.
72.
73.
74.
75.
76.
77.
78.
79.
80.
81.
82.
83.
84.
85.
86.
87.
88.
89.
90.
91.
92.
93.
94.
95.
96.
97.
98.
99.
100.
101.
102.
103.
104.
105.
106.
107.
108.
109.
110.
111.
112.
113.
114.
115.
116.
117.
118.
119.
120.
121.
122.
123.
124.
125.
126.
127.
128.
129.
130.
131.
132.
133.
134.
135.
136.
137.
138.
139.
140.
141.
142.
143.
144.
145.
146.
147.
148.
149.
150.
********************************************************************************
****************** Работа с БД гостей ***************
close data
*SET DEFAULT TO C:\kr
sele a
use guests.dbf
push key clea
defi wind SFEDIT from  1 , 00  to  20 , 95 ; 
titl '<<< Список гостей >>>' foot ' F8_удаление  F7_редактирование F5_добавить F10_ВЫХОД 'color w,r/br,gr+/rb+,gr+/br 
acti wind SFEDIT
on key labe f7 do red_v
on key labe f5 do dob
on key labe F10 do do_vih
on key labe F8 do del
on key labe HOME go top
on key labe END go bott
pack
private p_end
p_end = .F.
do while not p_end
browse ;
      fiel fam:h='ФИО': 15 ,;
           pol:h='Пол': 3 ,;
           pas:h='ь паспорта': 10 ,;
           pri:h='Дата прибытия': 13 ,;
           otb:h='Дата отбытия': 12 ,;
           num:h='ь гостя': 7 ;
           noed noap in wind SFEDIT
rele wind SFEDIT
enddo
set deleted on
on key labe f5
on key labe f7
on key labe f10
on key labe F8
on key labe HOME
on key labe END
clos data
 on key labe F1 do HELP.PRG
retu
********************************************************************************
****************** Процедура ввода записей БД гостей ***************
proc dob
push key clear
defi wind dobav from  4 , 8  to  17 , 50 ; 
titl '<<< Характеристики нового гостя >>>'foot 'Выход - Esc' color , , W+/B,W+/B,W+/B 
acti wind dobav
dime s( 6 )
store space( 15 ) to s( 1 )
store space( 10 ) to s( 2 )
store space( 1 ) to s( 3 )
store space( 10 ) to s( 4 )
store space( 10 ) to s( 5 )
store space( 2 ) to s( 6 )
if eof()
s( 1 )= 1 
else
go BOTTOM
endif
@  1 , 0  say'ФИО'
@  2 , 0  say'Номер паспорта'
@  3 , 0  say'Пол'
@  4 , 0  say'Дата приезда'
@  5 , 0  say'Дата отъезда'
@  6 , 0  say'Номер'
@  1 , 20  get s( 1 ) pict'xxxxxxxxxxxxx' 
@  2 , 20  get s( 2 ) pict'9999999999999'
@  3 , 20  get s( 3 ) pict'x'
@  4 , 20  get s( 4 ) pict'99.99.9999' 
@  5 , 20  get s( 5 ) pict'99.99.9999'
@  6 , 20  get s( 6 ) pict'99'
i= 0 
a= 0 
b= 0 
@  10 , 10  GET A FUNC '*   OK' 
@  10 , 20  GET B FUNC '*  Отмена' 
read cycle 
if i= 1 
append blank
gather from s
ENDIF
rele wind dobav
pop key
keyboard '{Ctrl+END}'
return
********************************************************************************
****************** Процедура редактирования записей БД продуктов ***************
proc red_v
if !eof()
push key clear
defi wind red from  4 , 8  to  17 , 50 ; 
titl '<<< Редактирование гостя >>>'foot 'Выход - Esc' color , , W+/B,W+/B,W+/B
acti wind red
dime s( 6 )
s( 1 )=fam
s( 2 )=pas
s( 3 )=pol
s( 4 )=pri
s( 5 )=otb
s( 6 )=num
@  1 , 5  say'ФИО'
@  2 , 2  say'ь паспорта'
@  3 , 2  say'Пол'
@  4 , 2  say'Дата прибытия'
@  5 , 2  say'Дата отбытия'
@  6 , 2  say'ь гостя'
@  1 , 20  get s( 1 ) pict'xxxxxxxxxxxxxxxxxxxxxxxxxxxx'
@  2 , 20  get s( 2 ) pict'xxxxxxxxxxxxxxxxxxxxxxxxxxxx' 
@  3 , 20  get s( 3 ) pict'x'
@  4 , 20  get s( 4 ) pict'99.99.9999' 
@  5 , 20  get s( 5 ) pict'99.99.9999' 
@  6 , 20  get s( 6 ) pict'99'
i= 0 
a= 0 
b= 0 
@  10 , 10  GET A FUNC '*   OK' 
@  10 , 20  GET B FUNC '*  Отмена' 
read cycle 
if i= 1 
gather from s
ENDIF
rele wind red
pop key
endif
keyboard '{Ctrl+END}'
return
********************************************************************************
****************** Процедура удаления записей БД  ***************
proc del
if !eof()
push key clear
define window vnc from  7 , 15  to  12 , 56   title '"ВHИМАHИЕ"';
shad doub color r+/b,n/n,rb/bg+ 
ACTI WIND vnc
store  0  to i
@  0 , 12  SAY ' УДАЛИТЬ ЗАПИСЬ' 
@  2 , 7  get i function '*h\! ОК;Отмена' size  3 , 13 , 3 
READ
IF i= 1 
delete
endif
rele wind vnc
pop key
endif
keyboard '{Ctrl+END}'
return
******************************************************************
procedure do_vih
p_end = .T.
keyboard '{Ctrl+END}'
return
...
Рейтинг: 0 / 0
Помогите, пожалуйста, разобраться с примером из книги Попова
    #33831056
Uггi
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
rele wind SFEDIT
enddo

Местами поменяй.
А так вроде все как надо.
...
Рейтинг: 0 / 0
Помогите, пожалуйста, разобраться с примером из книги Попова
    #33831290
Uггirele wind SFEDIT
enddo

Местами поменяй.
А так вроде все как надо.

Urri, я конечно дико извиняюсь, но как это будет выполняться:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
i= 0 
a= 0 
b= 0 
@  10 , 10  GET A FUNC '*   OK' 
@  10 , 20  GET B FUNC '*  Отмена' 
read cycle 
if i= 1 
gather from s
ENDIF
?
Ведь по тексту выходит, что i=0 ВСЕГДА!!! Поэтому команда gather from s не выполнится НИКОГДА!!!

2 parenyok:
По приведенному фрагменту: прочитай в Попове раздел "Средства управления в стиле Windows" подраздел "триггерные кнопки"... И разбери приведенный там пример...
Кроме того, есть такой инструмент как ДЕБАГГЕР (отладчик, по русски говоря). Выполняешь программу пошагово (по клавише F8 в FPD) и смотришь где и что у тебя меняется; что выполняется, а что нет. После этого долго думешь - а почему это получилось не так, как ты хотел... И читаешь умные книжки... И еще думаешь.... И только после этого идешь спрашивать...
И приводи только тот фрагмент, который ты отлаживаешь, и где, как ты думаешь, у тебя возникла ошибка - в противном случае твоя ошибка останется незамеченной...
...
Рейтинг: 0 / 0
Помогите, пожалуйста, разобраться с примером из книги Попова
    #33831311
Ужас, летящий на крыльях ночи
Кроме того, есть такой инструмент как ДЕБАГГЕР (отладчик, по русски говоря). Выполняешь программу пошагово (по клавише F8 в FPD) и смотришь где и что у тебя меняется; что выполняется, а что нет. После этого долго думешь - а почему это получилось не так, как ты хотел... И читаешь умные книжки... И еще думаешь.... И только после этого идешь спрашивать...


Одна прописная истина помогла мне в свое время:
"Компьютерная программа выполняет то, что ей приказали сделать, а не то, что бы Вы хотели, чтобы она сделала..."
Например, фрагмент
Код: plaintext
1.
2.
3.
4.
5.
i= 0 
....
if i= 1 
gather from s
ENDIF
не выполнится никогда просто потому, что i<>1 ...
Выловить такие ошибки и помогает ДЕБАГГЕР...
Очень жаль, что во время написания контрольных работ на С++ ты не научился пользоваться таким полезным инструментом... Но еще не все потеряно...
...
Рейтинг: 0 / 0
25 сообщений из 81, страница 2 из 4
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Помогите, пожалуйста, разобраться с примером из книги Попова
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]