FUNC (663360), страница 3

Файл №663360 FUNC (Автоматизированное рабочее место) 3 страницаFUNC (663360) страница 32016-07-31СтудИзба
Просмтор этого файла доступен только зарегистрированным пользователям. Но у нас супер быстрая регистрация: достаточно только электронной почты!

Текст из файла (страница 3)

_REC=RECNO()

k=0

y_l=yl

d=dom

kv=kw_ra

scan for yl=y_l.and.dom=d.and.kw_ra=kv

k=k+1

endscan

go _REC

RETURN k

FUNCTION KL_l && Функция кол-ва льготников (SAY)

parameters k

_REC=RECNO()

y=0

y_l=yl

d=dom

kv=kw_ra

scan for yl=y_l.and.dom=d.and.kw_ra=kv.and.lgot=.t.

k=k+1

endscan

go _REC

RETURN k

FUNCTION vib1_7

do case

case all_l=1

clear read

case all_l=2

CLEAR READ

DEACTIVATE WINDOW INS

DO RAS

endcase

RETURN

** Конец Процедуре Квартиросъемщики (Постоянная Часть) **

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

** Функция сохранения норм в файле m_zar.mem **

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

FUNCTION cf

do case

case c=1

DEACTIVATE WINDOW m_zar

SAVE TO m_zar ALL LIKE _*

case c=2

clear read

RELEASE windows m_zar

endcase

RETURN

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

** Процедура помощи по F1 **

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

PROCEDURE HELP

PARAMETERS k

DEFINE WINDOW HELP FROM 4,7 TO 20,73 shadow;

TITLE 'PgUp,PgDn-листание' FOOTER 'Esc-выход без сохранения,Ctrl+W-c сохранением';

color scheme 12

IF k#0

GO K IN i

MODIFY MEMO i.HLP WINDOW HELP noedit

ENDIF

release WINDOWS HELP

RETURN

************************************************************************************* Процедура выхода **

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

PROCEDURE quit

DEFINE WINDOW QUIT FROM 9,30 TO 14,50

ACTIVATE WINDOW QUIT

@ 1,4 SAY 'Вы уверены?'

@ 3,2 GET q FUNCTION '*HN Да;Нет;DOS' VALID qt();

DEFAULT 2 COLOR ,,,,gr+/b,w+/n,r+/b,,n+/w,w/gr+

READ CYCLE

RELEASE WINDOW quit

RETURN

FUNCTION qt && Функция выхода

DO CASE

CASE q=1

CLEAR WINDOWS

SAVE TO m_zar ALL LIKE _*

ON KEY

! DEL TAB*.TXT

CLOSE DATA

CLEAR MEMORY

CLEAR

CANCEL

CASE q=2

CLEAR READ

RELEASE WINDOWS QUIT

CASE q=3

SAVE TO m_zar ALL LIKE _*

! DEL TAB*.TXT

QUIT

ENDCASE

RETURN

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

** Процедура Упаковки **

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

PROCEDURE SERV

SET ORDER TO TAB

SET DELETE OFF

SCAN FOR DELETE()

SELECT g

IF SEEK(a.tab)

DELETE FOR a.tab=g.tab

ENDIF

SELE a

ENDSCAN

SET ORDER TO ADRR

SCAN FOR DELETE()

y=yl

d=dom

kv=kw_ra

r=recno()

fm=fam

tb=tab

SET DELETE ON

LOCATE FOR yl=y.and.dom=d.and.kw_ra=kv.AND.or_r=0

IF FOUND()

n_ins=RECNO()

LOCATE FOR yl=y.and.dom=d.and.kw_ra=kv.and.or_r=1

IF FOUND()=.F.

ACTIVATE WINDOW vib

@ 0,1 SAY 'За квартиру по адресу:'

@ 1,2 say alltrim(y)+' '+'Дом-'+ALLTRIM(d)+' '+'Кв-'+ALLTRIM(kv)

@ 2,3 SAY 'Не начисляется плата'

@ 3,2 say 'Платил-'+ALLTRIM(fm)+' '+'Таб-'+ALLTRIM(STR(tb))

@ 4,1 GET D_IN FUNCTION '*H Удалить всех;Изменить;Восстановить' valid d_in() defa READ CYCLE

DEACTIVATE WINDOW vib

ENDIF

ENDIF

GO R

SET DELETE OFF

ENDSCAN

SELECT g

PACK

SELE a

PACK

SET DELETE ON

DO P_INDEX

RETURN

FUNCTION d_in && Выбор кнопок в процедуре Упаковки

DO CASE

CASE d_in=1

SET DELETE OFF

SCAN FOR yl=y.and.dom=d.and.kw_ra=kv

DELETE

ENDSCAN

SET DELETE ON

CASE d_in=2

GO n_ins

DO INS WITH 2 IN ADD_DEL

CASE d_in=3

SET DELETE OFF

GO r

RECALL

SET FILTER TO yl=y.and.dom=d.and.kw_ra=kv

COUNT TO kol

GO TOP

SCAN

REPLACE kol_vo WITH kol

ENDSCAN

SET FILTER TO

sele g

SEEK(a.tab)

RECALL

SET DELETE ON

ENDCASE

RETURN

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

** Переиндексация **

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

PROCEDURE P_INDEX

CLOSE DATA

!DEL *.CDX

DO OPEN

RETURN

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

** Процедура поиска **

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

PROCEDURE poisk

_REC=RECNO() && Запоминается номер текущей записи

DO CASE

CASE PROMPT()="Отмена сортировки" && Если "Отмена"

SET ORDER TO 0 && Отказ от главного индекса

CASE PROMPT()='По фамилии'

SET ORDER TO fam

ACTIVATE WINDOW poisk

@ 0,0 GET a DEFA SPAC(25) && Задание фамилии

@ 1,2 SAY 'Соблюдайте РЕГИСТР'

READ

a=ALLTRIM(a) && Удаление пробелов

d=a

CASE PROMPT()='По табелю'

set order to tab

ACTIVATE WINDOW poisk

@ 0,0 GET a PICTURE '9999' DEFAULT 0&& Задание табеля

READ

d=str(a,4) && Сохранить запрос

CASE PROMPT()='По адресу'

DO po_adr

ENDCASE

DEACTIVATE WINDOW poisk

IF BAR()#4.AND.!EMPTY(a).AND.!SEEK(a)

* Если Поиск,'a' не пуста и поиск неудачный

WAIT 'Поиск '+PROMPT()+':'+d+' НЕУДАЧНЫЙ' WINDOW

GO _REC && Выдается сообщение и возврат на предыдущую запись

ELSE

_REC=RECNO()

GO _REC

IF WONTOP()='INS'

@ 10,27 CLEAR TO 20,50

=POS_CH1()

SHOW GETS

ENDIF

ENDIF

set order to adrr

DEACTIVATE POPUP

RETURN

FUNCTION po_adr && Поиск по адресу

DEFINE POPUP YL FROM 1,0

n=recno()

m=1

br=1

d_ins=1

DIMENSION yl_za(100,1)

go top

i=1

yl_za(i,1)=yl

DO WHILE !EOF()

DEFINE BAR (br) OF YL PROMPT yl_za(i,1)

IF yl=yl_za(i,1)

skip

loop

ENDIF

m=m+1

i=i+1

yl_za(i,1)=yl

br=br+1

ENDDO

DIMENSION yl_za(m,1)

ON SELECTION POPUP YL DO YLIZ WITH PROMPT()

go n

SCATTER FIELDS yl,dom,kw_ra MEMVAR BLANK

ACTIVATE WINDOW poisk

@ 0,0 GET m.yl WHEN yliz_s()

@ 1,2 SAY 'Дом ' GET m.dom

@ 1,12 SAY 'Кв-ра ' GET m.kw_ra

READ COLOR ,n/w

DO CASE

CASE !EMPTY(m.yl).AND.EMPTY(m.dom).AND.EMPTY(m.kw_ra)

LOCATE FOR m.yl=a.yl

CASE !EMPTY(m.yl).AND.!EMPTY(m.dom).AND.EMPTY(m.kw_ra)

LOCATE FOR m.yl=a.yl.AND.m.dom=a.dom

CASE !EMPTY(m.yl).AND.!EMPTY(m.dom).AND.!EMPTY(m.kw_ra)

LOCATE FOR m.yl=a.yl.AND.m.dom=a.dom.AND.m.kw_ra=a.kw_ra.AND.a.or_r=1

ENDCASE

IF FOUND()

DEACTIVATE WINDOW poisk

_REC=RECNO()

GO _REC

IF WONTOP()='INS'

@ 10,27 CLEAR TO 20,50

=POS_CH1()

SHOW GETS

ENDIF

ELSE

GO n

ENDIF

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

** Формирование квитанции **

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

FUNCTION PRINT1

ON KEY LABEL F1 DO HELP WITH 7

SET ALTERNATE TO tab

T='tab'+'.'+'txt'

DIMENSION NACH(12,1)

DIMENSION LG(9)

STORE 0 TO LG(1),LG(2),LG(3),LG(4),LG(5),LG(6),LG(7),LG(8),LG(9)

SET ALTERNATE ON

SET CONSOLE OFF

r=RECNO()

y=yl

d=dom

kv=kw_ra

PL=0

L=0

scan for yl=y.and.dom=d.and.kw_ra=kv.and.c.yl=y.and.c.dom=d.and.c.kw_ra=kv

IF OR_R=1

FM=FAM

OS=OST_K

TB=TAB

KV_MET=KV_M

NACH(1)=C.KW_PL

NACH(2)=C.G_W

NACH(3)=C.X_W

NACH(4)=C.K_YSL

NACH(5)=C.OTOPL

NACH(6)=C.RAD_R

NACH(7)=C.TEL_R

NACH(8)=C.EL_C

NACH(9)=C.ITOG_N

NACH(10)=C.ITOG

NACH(11)=OPL_TA

endif

IF lgot=.t.

LG(1)=LG(1)+C.KW_PLL

LG(2)=LG(2)+C.G_WL

LG(3)=LG(3)+C.X_WL

LG(4)=LG(4)+C.K_YSLL

LG(5)=LG(5)+C.OTOPLL

LG(6)=LG(6)+C.RAD_RL

LG(7)=LG(7)+C.TEL_RL

LG(8)=LG(8)+C.EL_CL

LG(9)=LG(9)+C.ITOG_L

L=L+1

ENDIF

PL=PL+1

ENDSCAN

GO R

? 'КВИТАНЦИЯ ПО ОПЛАТЕ КВАРТИРЫ ЗА ',MES(mess)

?

? FM AT(4)

? 'Табель - ' AT(4),TB PICTURE('9999'),' Дата оплаты ',D_OPL FUNCTION('T')

? 'Кол-во жильцов ' at(4),pl picture('99'),' Площадь ',KV_MET PICTURE('###.##')

? 'Льготников ' at(4),l picture('99')

?

? REPLICATE('-',69)

? '|','Сальдо ','|','кв.плата ','|','гор.вода ','|','ком.услуги ','|','радио ','|','телефон ','|','Начислено ','|'

? '|',' Пени ','|','излишки ','|','хол.вода ','|','отопление ','|',' ','|','э\энергия','|',' ','|'

? REPLICATE('-',69)

? OS PICTURE ('####.##') AT(1) &&Остаток

?? NACH(1) PICTURE ('###.##') AT(10) && кв.плата

?? NACH(2) PICTURE ('###.##') AT(19) && гор.вода

?? NACH(4) PICTURE ('###.##') AT(30) && ком.услуги

?? NACH(6) PICTURE ('##.##') AT(40) && радио

?? NACH(7) PICTURE ('###.##') AT(50) && телефон

? NACH(3) PICTURE ('###.##') AT(19) && хол.вода

?? NACH(5) PICTURE ('###.##') AT(30) && отопление

?? NACH(8) PICTURE ('###.##') AT(50) && электричество

?? NACH(9) PICTURE ('###.##') AT(60) && итог

IF L>0

? 'Льгота'

? LG(1) PICTURE ('###.##') AT(10) && кв.плата

?? LG(2) PICTURE ('###.##') AT(19) && гор.вода

?? LG(4) PICTURE ('###.##') AT(30) && ком.услуги

?? LG(6) PICTURE ('##.##') AT(40) && радио

?? LG(7) PICTURE ('###.##') AT(50) && телефон

? LG(3) PICTURE ('###.##') AT(19) && хол.вода

?? LG(5) PICTURE ('###.##') AT(30) && отопление

?? LG(8) PICTURE ('###.##') AT(50) && электричество

?? LG(9) PICTURE ('###.##') AT(60) && итого

STORE 0 TO LG(1),LG(2),LG(3),LG(4),LG(5),LG(6),LG(7),LG(8),LG(9)

ENDIF

?

? REPLICATE('-',30),'ИТОГО НАЧИСЛЕНО - ',NACH(10) picture('####.##')

? 'ОПЛАЧЕНО В КАССУ - ' AT(30),NACH(11) PICTURE('####.##')

? 'ОСТАТОК ' AT(30),OS PICTURE('####.##')

? 'Kассир ','___________',' / '

?? _pod PICTURE(REPLICATE('x',AT(' ',_pod)-1)),' /'

SET ALTERNATE OFF

SET ALTERNATE TO

SET CONSOLE ON

MODIFY COMMAND EVALUATE('T') WINDOW vedom

ACTIVATE WINDOW vib

@ 2,5 SAY 'Р а с п е ч а т а т ь ?'

@ 0,0 FILL TO 8,43 COLOR W+/R

@ 5,6 GET pr FUNCTION '*H Да;Нет' VALID print4() DEFA 2 SIZE 1,6,4;

COLOR ,,,,w+/n,w+/n,w+/n,,W+/R,

READ

DEACTIVATE WINDOW vib

RETURN

FUNCTION print4 && Печать квитанции

DO CASE

CASE pr=1

SET HEADING OFF

IF PRINTSTATUS()

TYPE (T) TO PRINT

ELSE

WAIT 'Подготовьте принтер' WINDOW

ENDIF

CASE pr=2

CLEAR READ

ENDCASE

ON KEY LABEL F1 DO HELP WITH 1

RETURN

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

** Функция печати отчетов **

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

PROCEDURE print3 && Пункт Меню <Печать>

PARAMETER vv,lk

IF RIGHT(vv,1)#':'.OR.RIGHT(vv,1)#']'

DO CASE

CASE lk=13

MODIFY FILE (vv) WINDOW vedom

CASE lk=32

SET HEADING OFF

IF PRINTSTATUS()

TYPE (vv) TO PRINT

ELSE

WAIT 'Подготовьте принтер' WINDOW

ENDIF

ENDCASE

ENDIF

RETURN

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

** Функции к дополнению (add_del.prg) **

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

FUNCTION POS_CH2 && SAY - Объекты

@ 0,1 to 7,55 double

@ 1,2 say 'Фамилия ' COLOR SCHEME 12

@ 2,2 say 'Табель -' COLOR SCHEME 12

@ 2,20 say 'Телефон ' COLOR SCHEME 12

@ 3,2 say 'Адрес: '

@ 3,26 say 'Дом '

@ 3,35 say 'Кв-ра '

@ 4,2 say 'Площадь ' COLOR SCHEME 12

@ 6,3 SAY 'ДАННЫЕ СЧЕТЧИКА:' COLOR SCHEME 16

@ 5,20 SAY 'Старое значение'

@ 6,20 SAY 'Новое значение'

FUNCTION YLIZ1 && Функция выхода из поля m.yl(выбор улицы)

HIDE POPUP YL

FUNCTION yliz_s && Меню для выбора улицы

=CAPSLOCK(.F.)

IF RECCOUNT()>0.and.d_ins=1

ACTIVATE POPUP YL

ENDIF

FUNCTION YLIZ && Выбор улицы

PARA mprompt

m.yl=mprompt

show get m.yl

DEACTIVATE POPUP YL

RETURN

FUNCTION LG1 && Меню для выбора льготы

Характеристики

Тип файла
Документ
Размер
246,5 Kb
Тип материала
Учебное заведение
Неизвестно

Список файлов реферата

HELP.DBF
HELP.FPT
LGOT.DBF
M_ZAR.MEM
OPLATA.DBF
RABOT.DBF
TABLE_R.DBF
TARIF.DBF
ADD_DEL.PRG
BAZES.PRG
FUNC.PRG
HELP1.TXT
HELP2.TXT
HELP3.TXT
HELP4.TXT
HELP5.TXT
HELP6.TXT
HELP7.TXT
HELP8.TXT
MENI.PRG
OPEN.PRG
OTCHET.PRG
RAS.PRG
Readme.
Свежие статьи
Популярно сейчас
Почему делать на заказ в разы дороже, чем купить готовую учебную работу на СтудИзбе? Наши учебные работы продаются каждый год, тогда как большинство заказов выполняются с нуля. Найдите подходящий учебный материал на СтудИзбе!
Ответы на популярные вопросы
Да! Наши авторы собирают и выкладывают те работы, которые сдаются в Вашем учебном заведении ежегодно и уже проверены преподавателями.
Да! У нас любой человек может выложить любую учебную работу и зарабатывать на её продажах! Но каждый учебный материал публикуется только после тщательной проверки администрацией.
Вернём деньги! А если быть более точными, то автору даётся немного времени на исправление, а если не исправит или выйдет время, то вернём деньги в полном объёме!
Да! На равне с готовыми студенческими работами у нас продаются услуги. Цены на услуги видны сразу, то есть Вам нужно только указать параметры и сразу можно оплачивать.
Отзывы студентов
Ставлю 10/10
Все нравится, очень удобный сайт, помогает в учебе. Кроме этого, можно заработать самому, выставляя готовые учебные материалы на продажу здесь. Рейтинги и отзывы на преподавателей очень помогают сориентироваться в начале нового семестра. Спасибо за такую функцию. Ставлю максимальную оценку.
Лучшая платформа для успешной сдачи сессии
Познакомился со СтудИзбой благодаря своему другу, очень нравится интерфейс, количество доступных файлов, цена, в общем, все прекрасно. Даже сам продаю какие-то свои работы.
Студизба ван лав ❤
Очень офигенный сайт для студентов. Много полезных учебных материалов. Пользуюсь студизбой с октября 2021 года. Серьёзных нареканий нет. Хотелось бы, что бы ввели подписочную модель и сделали материалы дешевле 300 рублей в рамках подписки бесплатными.
Отличный сайт
Лично меня всё устраивает - и покупка, и продажа; и цены, и возможность предпросмотра куска файла, и обилие бесплатных файлов (в подборках по авторам, читай, ВУЗам и факультетам). Есть определённые баги, но всё решаемо, да и администраторы реагируют в течение суток.
Маленький отзыв о большом помощнике!
Студизба спасает в те моменты, когда сроки горят, а работ накопилось достаточно. Довольно удобный сайт с простой навигацией и огромным количеством материалов.
Студ. Изба как крупнейший сборник работ для студентов
Тут дофига бывает всего полезного. Печально, что бывают предметы по которым даже одного бесплатного решения нет, но это скорее вопрос к студентам. В остальном всё здорово.
Спасательный островок
Если уже не успеваешь разобраться или застрял на каком-то задание поможет тебе быстро и недорого решить твою проблему.
Всё и так отлично
Всё очень удобно. Особенно круто, что есть система бонусов и можно выводить остатки денег. Очень много качественных бесплатных файлов.
Отзыв о системе "Студизба"
Отличная платформа для распространения работ, востребованных студентами. Хорошо налаженная и качественная работа сайта, огромная база заданий и аудитория.
Отличный помощник
Отличный сайт с кучей полезных файлов, позволяющий найти много методичек / учебников / отзывов о вузах и преподователях.
Отлично помогает студентам в любой момент для решения трудных и незамедлительных задач
Хотелось бы больше конкретной информации о преподавателях. А так в принципе хороший сайт, всегда им пользуюсь и ни разу не было желания прекратить. Хороший сайт для помощи студентам, удобный и приятный интерфейс. Из недостатков можно выделить только отсутствия небольшого количества файлов.
Спасибо за шикарный сайт
Великолепный сайт на котором студент за не большие деньги может найти помощь с дз, проектами курсовыми, лабораторными, а также узнать отзывы на преподавателей и бесплатно скачать пособия.
Популярные преподаватели
Добавляйте материалы
и зарабатывайте!
Продажи идут автоматически
7026
Авторов
на СтудИзбе
260
Средний доход
с одного платного файла
Обучение Подробнее