Начисления индивидуальной сдельной заработной платы на СЦ «Технокомп»
Для создания баз данных надо создать структуру БД, которую можно создать двумя способами: через опции системы и командным путем. С помощью первого способа необходимо выбрать в главном меню пункт File — New, и нажимаем Ok. В результате появляется окно для создания структуры. В структуре пишем в колонке Name (имя) — имя, используемой переменной, в колонке Type (тип) указывается тип этой переменной… Читать ещё >
Начисления индивидуальной сдельной заработной платы на СЦ «Технокомп» (реферат, курсовая, диплом, контрольная)
В условиях перехода к системе рыночного хозяйствования в соответствии с изменениями в экономическом и социальном развитии страны существенно меняется и политика в области оплаты труда, социальной поддержки и защиты работников. Многие функции государства по реализации этой политики переданы непосредственно предприятиям, которые самостоятельно устанавливают формы, системы и размеры оплаты труда, материального стимулирования его результатов. Понятие «заработная плата» наполнилось новым содержанием и охватывает все виды заработков (а также различных премий, доплат, надбавок и социальных льгот), начисленных в денежной и натуральной формах (независимо от источников финансирования), включая денежные суммы, начисленные работникам в соответствии с законодательством за неотработанное время (ежегодный отпуск, праздничные дни).
Актуальность темы
: «Учет начисления индивидуальной сдельной заработной платы» не вызывает сомнения, так как является очень важной составной частью всего бухгалтерского учета, работы с сотрудниками и налоговых начислений. Еще больший интерес представляется в этой работе в том, что она как бы является «первопроходцем» по новым документам, нормативным актам и законам различных уровней, касающихся учета, начисления, оплаты труда — это связано с появлением нового Трудового Кодекса, а также внесенные изменения в Налоговый Кодекс глав, которые касаются заработной платы (например, гл. 24 и др.), появились новые Федеральные законы, которые регулируют деятельность организации Учет труда и заработной платы по праву занимает одно из центральных мест во всей системе учета на предприятии. Учет труда и заработной платы должен обеспечить оперативный контроль за качеством и количеством труда, за использованием средств, включаемых в фонд заработной платы и выплаты социального характера.
Цель написания работы: изучить теоретические основы учета начисления сдельной заработной платы, порядок ее начисления и создание программного обеспечения на основе изученного материала.
Предметом исследования является учет начисления индивидуальной сдельной заработной платы на СЦ «Технокомп».
Для достижения поставленных целей необходимо решить следующий круг задач:
рассмотреть общие положения и проблемы сдельной оплаты труда;
спроектировать структуру баз данных, т. е. разработать модель структуры базы данных.
разработать необходимые базы данных на основании первичных документов;
создать пользовательский интерфейс.
Объектом исследования в работе является частный сервисный центр по ремонту и обслуживанию компьютерной техники «ТехноКомп».
В теоретической части выпускной работы: документация по учету выработки, заполнение документов. Ряд условий влияющих на документальное оформление и организацию учета выработки, синтетический учет расчетов с работниками по оплате труда (сч.70).
В практической части: Необходимо спроектировать ИС и БД. Программная реализация информационной системы: создание метаданных БД, разработка интерфейса пользователя, разработка форм ввода, программы формирования выходных документов, реализация сервисных функций, создание справочной системе.
1. Теоретическая часть
1.1 Характеристика предприятия
СЦ «ТехноКомп»
Адрес: Россия, г. Карасук, ул. Сибирская 15;
Телефон/факс 8−953 886 666 6
ИНН № 542 233 695
Расчетный счет в СибАкадем банк № 54 763 696 361 785 368 576
Корсчет: 85 400 034 056 421 523 456
Место регистрации: Регистрационная палата Мэрии г. Карасука.
Дата регистрации: 01.01.2013.
Номер решения о регистрации: 3255
Генеральный директор предприятия: Долгова Тамара Анатольевна Предприятие имеет лицензию с правом заниматься предпринимательской деятельностью. Также имеет право устанавливать цену на данный вид Деятельности и иметь финансовую самостоятельность. Предприятие также зарегистрировано во всех органах государственного контроля.
СЦ «ТехноКомп» работает в отрасли ремонта. Целью деятельности предприятия является получение прибыли.
1.2 Экономическая сущность задачи
информационный система труд оплата Учет выработки при сдельной форме оплаты труда можно организовать, если имеется возможность измерить и подсчитать объем выполненных работ каждым работником в натуральном измерении и установить на работы плановые нормированные задачи в единицу времени. Поэтому документация по учету выработки должна обеспечить работников учета данными:
О количестве выработанной продукции и выполненных работ;
О соответствии объема выполненных работ количеству израсходованных при этом материалов;
Об уровне выполнения норм выработки и размере заработной платы.
Сдельная оплата труда: при этой системе, основной заработок работника зависит от расценки, установленной на единицу выполняемой работы. Сдельная форма оплаты труда по методу начисления заработной платы может быть прямой сдельной, косвенной, сдельной аккордной, сдельно-прогрессивной. По объекту начисления она может быть индивидуальной и коллективной.
При прямой индивидуальной сдельной системе размер заработка рабочего определяется количеством выработанной им за определенный отрезок времени продукции или количеством выполненных операций. Вся выработка рабочего по этой системе оплачивается по одной постоянной сдельной расценке. Поэтому заработок рабочего увеличивается прямо пропорционально его выработке. Для определения расценки по этой системе дневная тарифная ставка, соответствующая разряду работы, делится на количество единиц продукта, произведенного за смену или норму выработки. Расценка может определяться и путем умножения часовой тарифной ставки, соответствующей разряду работы, на норму времени, выраженную в часах.
При косвенно сдельной системе заработок рабочего ставится в зависимость не от личной выработки, а от результатов труда обслуживаемых ими рабочих. По этой системе может оплачиваться труд таких категорий вспомогательных рабочих как: ремонтники, наладчики оборудования, обслуживающие основное производство. Расчет заработка рабочего при косвенно-сдельной оплате может производиться либо на основе косвенной расценки и количества изделий, изготовленных обслуживаемыми рабочими. Для получения косвенной расценки дневная тарифная ставка рабочего, оплачиваемого по косвенной сдельной системе, делится на установленную ему норму обслуживания и норму дневной выработки обслуживаемых рабочих.
При сдельно-премиальной системе заработок зависит не только от оплаты по прямым сдельным расценкам, но и от выплачиваемой премии за выполнение и перевыполнение установленных количественных и качественных показателей.
При аккордной системе размер оплаты устанавливается не на отдельную операцию, а на весь заранее установленный комплекс работ с определением срока его выполнения. Сумма оплаты труда за выполнение этого комплекса работ объявляется заранее, как и срок ее выполнения до начала работы.
Если для выполнения аккордного задания требуется длительный срок, то производятся промежуточные выплаты за практически выполненные в данном расчетном (платежном) периоде работы, а окончательный расчет осуществляется после окончания и приемки всех работ по наряду. Практиковалась при дифференциации ставок по интенсивности труда для сдельщиков и повременщиков, при невыполнении в срок аккордной работы, ее оплата — не по ставкам сдельщиков, а по ставкам повременщиков.
Обязательным условием аккордной оплаты было наличие норм на выполнение работы.
Сдельно-прогрессивная система в отличие от прямой сдельной характеризуется тем, что оплата труда рабочих по неизменным расценкам производится только в пределах установленной исходной нормы (базы), а вся выработка сверх этой базы оплачивается по расценкам прогрессивно нарастающим в зависимости от перевыполнения норм выработки.
Нарастание расценки, выраженное в процентах надбавки к основной расценке за единицу продукции, произведенной сверх нормы, устанавливается по определенной шкале, состоящей из нескольких ступеней. Число ступеней бывает разное, в зависимости от производственных условий.
Прогрессивное увеличение расценок за продукцию, изготовленную рабочим сверх нормы, должно троиться с таким расчетом, чтобы себестоимость работ в целом не повышалась, а, наоборот, систематически снижалась за счет сокращения доли других затрат, падающих на единицу продукции.
Применение сдельнопрогрессивной системы целесообразно только в случае острой необходимости увеличения производительности труда на участках, лимитирующих выпуск продукции по предприятию в целом, то есть на так называемых «узких местах» производства.
При этом для правильного исчисления процента выполнения норм выработки, а, следовательно, и размера прогрессивных доплат необходимо точно учитывать рабочее время.
При прогрессивной сдельной системе заработок рабочего растет быстрее, чем его выработка. Это обстоятельство исключало возможность ее массового и постоянного применения.
Широкое распространение в промышленности нашла сдельно-премиальная форма оплаты труда. Сумма заработка находится в прямой зависимости от объема выполненных работ и расценки на эти работы. Эта форма способствует росту производительности труда и повышению квалификации работника.
Заработок рабочего будет тем больше, чем он выполнит работ, а расценки на работы устанавливаются расчетным путем.
Коллективно-сдельная система оплаты труда. При ней заработок каждого работника поставлен в зависимость от конечных результатов работы всей бригады, участка.
Коллективная сдельная система позволяет производительно использовать рабочее время, широко внедрять совмещение профессий, улучшает использование оборудования, способствует развитию у работников чувства коллективизации, взаимопомощи, способствует укреплению трудовой дисциплины. Кроме того, создается коллективная ответственность за улучшение качества продукции.
С переходом на эту систему оплаты труда практически ликвидируется деление работ на «выгодные» и «невыгодные» так как каждый рабочий материально заинтересован в выполнении всех работы, порученной бригаде.
Оплата труда рабочих при коллективной сдельной системе может производиться либо с применением индивидуальных сдельных расценок, либо на основе расценок, установленных для бригады в целом, т. е. коллективных расценок.
Индивидуальную сдельную расценку целесообразно устанавливать в том случае, если труд рабочих, выполняющих общее задание, строго разделен. В этом случае заработная плата каждого рабочего определяется исходя из расценки на выполняемую им работу и количества выпущенной с конвейера годной продукции.
При использовании коллективных сдельных расценок заработная плата рабочего зависит от выработки бригады, сложности работ, квалификации рабочих, количества отработанного каждым рабочим времени и принятого метода распределения коллективного заработка.
Основная задача распределения заработка заключается в том, чтобы правильно учесть вклад каждого работника в общие результаты работы.
Синтетический учет расчетов с персоналом (состоящим и не состоящим в списочном составе организации) по оплате труда (по всем видам заработной платы, премиям, пособиям, пенсиям работающим пенсионерам и другим выплатам), а также по выплате доходов по акциям и другим ценным бумагам данной организации осуществляется на счете 70 «Расчеты с персоналом по оплате труда». Этот счет, как правило, пассивный. По кредиту счета отражают начисления по оплате труда, пособий за счет отчислений на государственное социальное страхование, пенсий и других аналогичных сумм, а также доходов от участия в организации, а по дебету — удержания из начисленной суммы оплаты труда и доходов, выдачу причитающихся сумм работникам и не выплаченные в срок суммы оплаты труда и доходов. Сальдо этого счета, как правило, кредитовое и показывает задолженность организации перед рабочими и служащими по заработной плате и другим указанным платежам.
Операцию по начислению и распределению оплаты труда, включаемой в издержки производства и обращения, оформляют следующей бухгалтерской записью:
Дебет счета 20 «Основное производство» (оплата труда производственных рабочих);.
Дебет счета 23 «Вспомогательные производства» (оплате труда рабочим вспомогательных производств);
Дебет счета 25 «Общепроизводственные расходы» (оплата труда цехового персонала);
Дебет счета 29 «Обслуживающие производства и хозяйства» (оплата труда работников обслуживающих производств и хозяйств); Дебет других счетов издержек (28,44,45, 91,97); Кредит счета 70 «Расчеты с персоналом по оплате труда» (на всю сумму начисленной оплаты труда).
Начисление оплаты труда по операциям, связанным с заготовлением и приобретением производственных запасов, оборудования к установке и осуществлением капитальных вложений, отражают, по дебету счетов 07, 08, 10,11,15 и кредиту счета 70.
Пособия по временной нетрудоспособности и другие выплаты за счет средств органов социального страхования отражают по дебету счета 69 «Расчеты по социальному страхованию и обеспечению» и кредиту счета 70.
Начисленные суммы премий, материальной помощи, пособий, оплаты труда по работам, производимым за счет средств целевого финансирования и в процессе получения внереализационных или операционных доходов, отражают по дебету счетов 91 «Прочие доходы и расходы», 84 «Нераспределенная прибыль (непокрытый убыток)», 86 (целевое финансирование" и кредиту счета 70 «Расчеты с персона-м по оплате труда».
Начисление доходов работникам организации по акциям и вкладам в его имущество оформляют следующей бухгалтерской записью: Дебет счета 84 «Нераспределенная прибыль (непокрытый убыток)» Кредит счета 70 «Расчеты с персоналом по оплате труда». В некоторых организацию ввиду сезонности производства отпуска работникам предоставляют в течение года неравномерно. Поэтому для более точного определения себестоимости продукции суммы, выплачиваемые работникам за отпуска, относят на издержки производства в течение года равномерными долями независимо от того, в каком месяце эти суммы будут выплачиваться. Тем самым создается peзерв для оплаты отпусков работникам. Организация может создавать резерв на выплату вознаграждений за выслугу лет.
Резервируемые суммы относят в дебет тех же счетов производственных затрат, на которые отнесена начисленная зарплата работников, и в кредит счета 96 «Резервы предстоящих расходов». По мере ухода рабочих в отпуск фактически начисленные им суммы за отпускной период списывают на уменьшение созданного резерва. При этом составляют следующую бухгалтерскую запись:
Дебет счета 96 «Резервы предстоящих расходов»;
Кредит счета 70 «Расчеты с персоналом по оплате труда».
Такой же записью оформляют начисление работникам вознаграждений за выслугу лет.
При начислении сумм ежегодных и дополнительных отпусков следует иметь в виду, что начисленные суммы отпусков включаются в фонд заработной платы труда отчетного месяца только в сумме, приходящейся на дни отпуска в отчетном месяце. В случае перерасхода части отпуска на следующий месяц выплаченная работникам за эти дни сумма отпускных отражается в отчетном месяце как выданный аванс (по дебету счета 70 и кредиту счета 50 «Касса»). В следующем месяце эту сумму включают в состав фонда оплаты труда и обычно отражают записью по начислению отпускных сумм (кредит счета 70 и дебет счетов производственных затрат или счета 96).
При натуральной форме оплаты труда, т. е. выдаче работникам в качестве оплаты труда готовой продукции, товаров и др., составляют следующие бухгалтерские записи:
Удержания из сумм начисленной оплаты труда списывают с кредита соответствующих счетов в дебет счета 70 «Расчеты с персоналом по оплате труда».
Выдачу сумм заработной платы и пособий оформляют следующей бухгалтерской записью:
Дебет счета 70 «Расчеты с персоналом по оплате труда»; Кредит счета 50 «Касса».
Не полученная в срок заработная плата оформляется следующей бухгалтерской записью:
Дебет счета 70 «Расчеты с персоналом по оплате труда»; Кредит счета 76 «Расчеты с разными дебиторами и кредиторами», субсчет «Расчеты по депонированным суммам».
Остатки не выданной в срок заработной платы (задепонированнных сумм) по истечении трех дней должны быть сданы в банк на расчетный счет. При этом составляют следующую бухгалтерскую запись:
Дебет счета 51 «Расчетные счета»;
Кредит счета 50 «Касса».
Учет расчетов с депонентами ведут в книге учета депонированной заработной платы, заполняемой по данным реестра невиданной заработной платы. Книгу открывают на год. Для каждого депонента в ней отводят отдельную строку, в которой указывают табельный номер депонента, его фамилию, имя, отчество, депонированную сумму и отметки о ее выдаче. Суммы, оставшиеся на конец года невыплаченными, переносят в новую книгу, открываемую также на год. Последующую выплату депонированной заработной платы осуществляют по расходному кассовому ордеру и отражают по дебету счета 76 и кредиту счета 50 «Касса».
Синтетический учет по счету 70 «Расчеты с персоналом по оплате труда» осуществляется в журнале ордере № 10, в котором наиболее точно можно проанализировать состав и сумму расходов. Под суммированием затрат на производство понимается информация синтетического характера по обобщению ранее собранных затрат и прочих расчетов, позволяющих определить общий объем затрат организации в процессе производства за отчетный период. Эта важная информация позволяет судить о рентабельности производства продукции или выполнения работ, услуг, об уровне устанавливаемых в организации цен, о конкурентоспособности продукции Журнал-ордер № 10 имеет продолжение — журнал-ордер № 10/1, который содержит перечень тех же кредитуемых счетов и учитывает операции, относящиеся к дебету любого счета, кроме производственных счетов. В конечном итоге в нем фиксируется общая сумма оборотов по кредиту счетов материальных, трудовых и финансовых ресурсов, что и является впоследствии основанием для записи оборотов в главную книгу.
1.3 Характеристика первичной документации
В зависимости от характера производства, системы организации и оплаты труда, способа контроля качества продукции в промышленности применяются следующие формы первичных документов, утвержденные законодательством: наряд на сдельную работу, маршрутный лист (карта), рапорт о выработке, ведомость учета выработки. Указанные документы должны содержать следующие реквизиты: место работы (цех, участок, отдел и т. п.); расчетный период (год, месяц, число); фамилию, имя, отчество, табельный номер и разряд рабочего, код учета затрат (изделие, заказ, счет, статья расхода) и разряд работы; количество и качество работы; сумму заработка; количество нормо-часов по выполненной работе.
Заполняются эти документы на основе технологических карт, действующих норм и расценок в соответствии с производственной программой цеха (участка), графика их работы и выдаются рабочему или бригаде до начала работы. По окончании работы отделом технического контроля (ОТК) проставляется фактическое количество выработанной, принятой годной продукции и брака.
В целях значительного сокращения объема первичной документации по учету выработки продукции и выполненных работ целесообразно применять укрупненные, комплексные нормы и расценки, а также многодневные (накопительные) документы (на неделю, декаду, месяц, на цикл операций или работ) взамен разовых, однодневных.
Организация учета выработки и особенно ее документальное оформление зависят от ряда условий: от характера и типа производства; от технологических особенностей производства; от форм оплаты труда; от применяемой системы контроля за качеством продукции; от уровня механизации и автоматизации учетных работ. Наиболее существенное, определяющее влияние на организацию учета выработки оказывают технологические особенности производства.
Характерной особенностью индивидуального производства является то, что предприятие занято выполнением отдельных, неповторяющихся индивидуальных заказов. В результате, при выполнении каждого следующего заказа возникают новые, ранее не производившиеся виды работ. Вместе с тем в индивидуальном производстве одному и тому же рабочему в течение месяца редко приходится выполнять однородные работы, ему поручается выполнение целого комплекса различных работ. Исходя из этих особенностей основной документ для учета выработки в этих производствах — наряд.
Различают разовые и накопительные наряды, а также индивидуальные и бригадные. Разовые наряды выписывают на один вид работы в течение смены или месяца, относящийся к одному и тому же заказу, коду производственных затрат. По окончании месяца наряд закрывается и сдается в бухгалтерию, где он проходит дальнейшую обработку: проверяется правильность заполнения учетных реквизитов, производится расчет сумм заработка и количества часов нормативного времени, определяются итоговая сумма заработка и нормо-часы.
Нарядэто задание на работу, которое выдается до начала смены, заранее, то есть в нем до начала работы предусматривается какое количество и какой именно продукции или работ, услуг должно быть выполнено на протяжении смены, а также норма времени и сдельные расценки. Чтобы избежать повторной выписки нарядов на одни и те же виды работ, выписку народов целесообразно производить в централизованном порядке с помощью машин в соответствии с технологической картой и до начала месяца передавать наряды начальникам цехов или мастерам соответствующих цехов и участков.
При выдаче наряда в нем указываются ФИО и табельный номер рабочего, а после изготовления продукции и приемки ее ОТК указывается количество рабочих часов, затраченные детали или прочий материал, кроме того, в наряде делается отметка о сдаче этой продукции на склад. После заполнения наряд подписывается мастером и сдается в бухгалтерию, где на основании его подсчитывается сумма заработной платы.
Наряды могут быть однодневные и многодневные.
Нарядная система учета выработки очень проста и доступна на любом предприятии, поэтому она получила широкое распространение при всех типах производств. Однако эта система имеет свои недостатки. Во-первых, приходится выписывать огромное количество документов, связанных с учетом выработки, во-вторых, нельзя проследить последовательность технологической обработки тех или иных деталей, что может привести к снижению качества продукции, а также к перегрузке одних видов оборудования и недогрузке других, в-третьих, значительная трудоемкость подсчета заработной платы.
При передаче партии продукции для обработки в маршрутной карте по каждой технологической операции указывается ФИО исполнителя и его табельный номер, а также результаты разбраковки, т. е. количество годной продукции и браки после этой операции. Наряд как документ имеет определенные недостатки — не позволяет контролировать объем и движение выполненных работ по технологической цепочке, поскольку выписывается на одного рабочего, на одну или несколько операций, последовательно не связанных между собой. Работу по маршрутному листу может выполнить каждый рабочий. Маршрутный лист выписывается заранее на все операции технологического процесса и на определенную партию изделий. В нем последовательно отмечается передача работы с одной операции на другую, что позволяет контролировать потери и брак в производстве Иногда в маршрутной карте предусматриваются по каждой операции отрывные талоны. При наличии таких талонов рабочий после выполнения Данной операции отрывает соответствующий талон, в котором указано количество обработанной продукции, и хранит его для контроля за правильностью исчисления заработной платы.
В том случае, когда к моменту окончания расчетного периода обработка партии деталей закончена не полностью, маршрутная карта закрывается (в части выполненных операций), а на основе этой карты выписывается новая на те операции, которые не выполнены.
Маршрутная система имеет ряд достоинств по сравнению с нарядной, так как сокращается количество выписываемых документов (в одном документе совмещается учет выполнения операций и учет выработки), обеспечивается контроль за последовательностью технологических операций, за соблюдением технологической дисциплины.
Ввиду того, что работы по маршрутному листу выполняют несколько рабочих, накапливание заработка каждого производится в специальном документе — рапорте о выработке, составляемом за 15 дней или за месяц.
1.4 Техническое задание на разработку
Назначение системы — автоматизировать систему бухгалтерского учета по начислению сдельной заработной платы на СЦ"ТехноКомп".
Требования к функциональным характеристикам — разрабатываемая модель должна обладать следующими функциями:
Работать под управлением ОС Windows 95/98 или Windows NT/2000/XP/Vista/7/8.
Иметь доступный и простой интерфейс пользователя.
Иметь простую систему настроек.
Иметь понятную справочную систему.
ПРОЕКТНАЯ ЗАДАЧА: Существует СЦ «ТехноКомп» на данном предприятии производится оказание услуг по ремонту и обслуживанию компьютерной техники. В конце отчетного периода рабочим необходимо выплачивать заработную плату, которая зависит от количества проделанной работы. Необходимо рассчитать заработную плату по каждому работнику.
Входные данные
1.Справочник сведения об организации table1. DBF (рис. 2.1) будет содержать постоянную информацию об организации.
2.Справочник сотрудников таблица1. DBF (рис. 2.2) будет содержать информацию о работниках организации.
3.БД table2. DBF (рис. 2.3) будет содержать переменную информацию, а именно — сведения о работниках работающих по нарядам.
4.БД table3. DBF (рис. 2.4) будет содержать переменную информацию, а именно — сведения о работниках работающих по маршрутным листам.
Требования к входным данным Ввод справочной информации об организации (работниках) — осуществлять в форму ввода, выведенную на экран монитора при этом следует предусмотреть возможность повторного ввода для изменения данных таблицы при ошибочном вводе справочной информации.
При вводе количества периодов предусмотреть контроль его соответствия диапазону значений количества периодов.
При вводе номера строки необходимо следить за тем, чтобы он не превышал количества строк таблицы.
При обнаружении ошибки при вводе выдать звуковой сигнал и повторять ввод.
Ввод всех входных данных следует осуществлять по запросам программы и с использованием подсказок.
Выходные данные:
Расчетно-платежная ведомость;
Рапорт о выработке.
Требования к выходным данным:
Создание выходных документов необходимо в ОС имеющей программу для просмотра html документов. В расчетно-платежной ведомости должно подсчитывается автоматически сумму к выдаче, где уже произведены различные доплаты и вычеты. Итоговым результатом будет общая сумма к выдаче, то есть сумма, которую необходимо выдать из кассы предприятия.
Надежность системы:
Надежность системы в целом зависит от надежности используемой операционной системы:
a) система не должна содержать ошибок, искажающих внешние спецификации, обнаруживаемые тестированием;
б) система не должна переходить в неопределенное состояние при неправильных действиях пользователя;
в) система не должна переходить в неопределенное состояние при недопустимых форматах, значениях или сочетании значений данных, вводимых с клавиатуры.
г) ЭВМ не должна зависать или выдавать несоответствующие сообщения при обращении к неподключенным внешним устройствами;
Условия эксплуатации:
а) система должна быть рассчитана на пользователя, не знакомого с программированием ЭВМ и управлением операционной системой;
б) дополнительные знания, необходимые для работы с системой, должны быть ограничены ознакомлением с клавиатурой;
в) количество манипуляций за клавиатурой должно быть минимальным, в связи, с чем интерфейс следует строить на основе выбора действий с использованием функциональных клавиш;
г) количество информации, которое необходимо воспринять и переработать пользователю для принятия решений по управлению системой, должно быть минимальным;
д) система должна реагировать на недопустимые действия пользователя или на неразрешенные сочетания данных, либо игнорируя их, либо выдавая звуковое предупреждение;
е) изображения доступных функциональных клавишей должно постоянно присутствовать на экране;
з) время реакции системы:
при операциях типа редактирования время реакции не более 0.3 сек;
время перехода на другую функцию не более 0.3 сек;
время печати документов определяется параметрами принтера, но принтер не должен работать в графическом режиме;
к) эстетическое оформление должно вызывать положительную реакцию пользователя, в связи, с чем следует соблюдать такие принципы:
цветовая гамма должна быть сдержанной;
цвета должны нести функциональную нагрузку и не менять ее на протяжении всего диалога;
изображения меню следует окантовывать рамкой;
сигнальные сообщения системы, связанные с невозможностью или опасностью выполнения действия, окрашивать в красный цвет;
— для заполнения общего экранного фона избегать цветов GREEN и MAGENTA;
— текст должен легко читаться на фоне меню, избегать печатать синим или коричневым по черному, зеленым по розовому и т. п.
Для нормальной работы клиентской части необходимо:
Компьютер с процессором Intel Pentium-100 или 100%-совместимым.
Оперативная память не менее 16 Мb.
Жесткий диск объемом не менее 100 Mb.
Установленная ОС Windows 95/98/NT/2000/XP/Vista/7/8.
Модель системы должна работать под управлением ОС Windows 95/98/NT/2000/XP/Vista/7/8, поэтому требуется совместимость исполняемого модуля и библиотек динамического подключения стандартам, используемым этими ОС на платформе IBM PC.
Для хранения информации требуется использование баз данных формата DBF (Visual FoxPro).
Для доступа к базам данных Visual FoxPro требуется наличие установленного ядра работы с БД Visual FoxPro
В качестве средства разработки требуется использовать интегрированную среду разработки Visual FoxPro, включающую редактор исходных текстов, компилятор, компоновщик и отладчик.
2. Практическая часть
2.1 Проектирование ИС
2.1.1 Проектирование структуры ИС
Модель структуры информационной системы была спроектирована с помощью CASE-средства BPwin 4.0 в нотации SADT (IDEF0). Учет расчетов по сдельной оплате на предприятии СЦ «ТехноКомп» осуществляется следующим образом. С начала в бухгалтерию поступают первичные документы, затем они проходят обработку, и информация из них заносится в справочники. На основании сделанной работы рассчитывается средний заработок, потом происходит удержание налогов и составление расчетно-платежной ведомости, в которой рассчитывается заработная плата.
Рис. 2.1 — Table. DBF сведения Рис. 2.2 — Table DBF справочник сотрудников Рис. 2.3 — Table DBF бд
2.1.2 Проектирование структуры БД
Модель структуры базы данных была спроектирована с помощью CASE-средства ERwin 4.0 и сформирована в виде физической и логической модели проекта.
Рис. 2.4 — Table DBF логическая модель Рис. 2.5 — Table DBF физическая модель Генерация спроектированных баз данных для построения базы данных FoxPro происходит посредством следующего текста SQL-операторов:
CREATE TABLE table2 (
kol Numeric (4) NULL,
ed Character (3) NULL,
rabo Character (15) NULL,
raz Numeric (3) NULL,
pr Character (10) NULL,
rab Character (15) NULL,
cex Numeric (3) NULL,
dt Date NULL,
n Numeric (4) NULL,
tn Numeric (4) NOT NULL
);
CREATE UNIQUE INDEX XPKE3 ON table2
(
tn ASC
);
CREATE TABLE table3 (
dt Date NULL,
rac Numeric (5) NULL,
vrem Numeric (4) NULL,
rab Character (15) NULL,
kol Numeric (4) NULL,
raz Numeric (3) NULL,
rabo Character (15) NULL,
detal Character (15) NULL,
n_par Numeric (4) NULL,
n Numeric (4) NULL,
tn Numeric (4) NOT NULL
);
CREATE UNIQUE INDEX XPKE4 ON table3
(
tn ASC
);
CREATE TABLE Таблица1 (
fio Character (15) NULL,
tn Numeric (4) NOT NULL,
obr Character (10) NULL,
adr Character (18) NULL,
stz Numeric (4) NULL,
kold Numeric (2) NULL,
dol Character (15) NULL
);
CREATE UNIQUE INDEX XPKE1 ON Таблица1
(
tn ASC
);
При разработке данного программного обеспечения использовались следующие поля Таблица 1
Поле | Описание поля | |
tn | Табельный номер | |
Fio | Фамилия имя отчество | |
Dol | Должность | |
Kold | Количество детей | |
Raz | Разряд | |
Adr | Адрес | |
Obr | Образование | |
N | Номер документа | |
Dt | Дата | |
Cex | Цех | |
n_par | Номер партии | |
Pr | Профессия | |
Rabo | Работа | |
Ed | Единица измерения | |
Kol | Количество | |
Detal | Деталь | |
2.2 Программная реализация ИС
2.2.1 Создание метаданных БД
БД — это структурированный файл для хранения обрабатываемой информации.
Файл — это поименованная область памяти.
В структурах БД различают поля и записи. Поле — это часть показателя, подвергающееся самой обработке. Полей столько, сколько реквизитов. Запись в БД содержит соответствующую ему хозяйственную операцию. БД бывают рабочие и вспомогательные. Рабочие БД обрабатываются, а вспомогательные помогают в обработке данных.
Создание файла БД включает два этапа: создание структуры файла и его заполнение.
Для создания баз данных надо создать структуру БД, которую можно создать двумя способами: через опции системы и командным путем. С помощью первого способа необходимо выбрать в главном меню пункт File — New, и нажимаем Ok. В результате появляется окно для создания структуры. В структуре пишем в колонке Name (имя) — имя, используемой переменной, в колонке Type (тип) указывается тип этой переменной (Сhагасtег, Numeric, Date и т. д.), в колонке (ширина) указывается, сколько отводится позиций для значения переменной, а если переменная числового типа (Numeric) — в Dec (длина) сколько знаков после десятичной точки. После этого структуру необходимо сохранить, нажав на кнопку Ok или сочетание клавиш ctrl+w или ctrl+end и затем дать имя структуре с расширением dbf. Создание структуры БД вторым способом заключается в том, что нужно в командном окне набрать команду Create имя. dbf и нажать Enter. Созданную структуру можно заполнить через окно для ввода или программным путем, но для этого надо создать предварительно форму.
В данной работе необходимы следующие базы данных.
БД table1. DBF (рис. 2.1) содержит постоянную информацию об организации.
БД таблица1. DBF (рис. 2.2) содержит постоянную информацию о работниках организации.
БД table2. DBF (рис. 2.3) содержит переменную информацию, а именно — сведения о работниках работающих по нарядам.
БД table3. DBF (рис. 2.4) содержит переменную информацию, а именно — сведения о работниках работающих по маршрутным листам.
На основании первичных документов (наряд, маршрутный лист) заполняются выходные документы: рапорт о выработке, расчетно-платежную ведомость, которая содержит реквизиты необходимые для работы.
Выходной документ — бумажный отчет, экранная форма, содержащая систему сводных показателей.
Рис. 2.6 — table1. DBF
Рис. 2.7 — table1. DBF
Рис. 2.8 — table1. DBF
Рис. 2.9 — table1. DBF
Были созданы следующие локальные представления для отображения необходимой информации:
Данный запрос формирует представление о стаже работников отработавших более одного года.
SELECT Таблица1. tn, Таблица1. fio, Таблица1. dol, Таблица1. stz, Таблица1. obr;
FROM;
1!таблица1;
WHERE Таблица1. stz > (1);
ORDER BY Таблица1. tn, Таблица1. stz
2.2.2 Разработка интерфейса пользователя
Программа запуска меню:
CLOSE ALL
CLEAR ALL
PUBLIC y
SET DATE TO GERMAN
SET TALK OFF
SET SAFETY OFF
SET BELL OFF
SET BELL OFF
SET POINT TO '.'
CAPSLOCK (.t.)
_SCREEN.Visible= .T.
_SCREEN.caption="УЧЕТ НАЧИСЛЕНИЯ СДЕЛЬНОЙ ЗАРАБОТНОЙ ПЛАТЫ"
_SCREEN.Picture="Фон.JPG"
_screen.Closable= .F.
_screen.WindowState= 2
_screen.MaxButton= .F.
DO MENU1. PRG
READ EVENTS
Программа меню:
SET SYSMENU TO
SET SYSMENU AUTOMATIC
DEFINE PAD d OF _MSYSMENU PROMPT «ВВОД ДАННЫХ» COLOR SCHEME 3;
KEY CTRL+B, «CTRL+B»
DEFINE PAD spr OF _MSYSMENU PROMPT «СПРАВОЧНИКИ» COLOR SCHEME 3;
KEY CTRL+S, «CTRL+S»
DEFINE PAD PRS OF _MSYSMENU PROMPT «ПРОСМОТР» COLOR SCHEME 3;
KEY CTRL+P, «CTRL+P»
DEFINE PAD R OF _MSYSMENU PROMPT «ОТЧЕТЫ» COLOR SCHEME 3;
KEY CTRL+O, «CTRL+O»
DEFINE PAD DOK OF _MSYSMENU PROMPT «ДОКУМЕНТЫ» COLOR SCHEME 3;
KEY CTRL+D, «CTRL+D»
DEFINE PAD ser OF _MSYSMENU PROMPT «СЕРВИС» COLOR SCHEME 3;
KEY CTRL+C, «CTRL+C»
DEFINE PAD v OF _MSYSMENU PROMPT «ВЫХОД» COLOR SCHEME 3;
KEY ALT+F4, «ALT+F4»
DEFINE PAD s OF _MSYSMENU PROMPT «СПРАВКА» COLOR SCHEME 3;
KEY CTRL+K, «CTRL+K»
ON PAD d OF _MSYSMENU ACTIVATE POPUP данные
ON PAD spr OF _MSYSMENU ACTIVATE POPUP справочник
ON PAD PRS OF _MSYSMENU ACTIVATE POPUP просмотр
ON PAD R OF _MSYSMENU ACTIVATE POPUP отчеты
ON PAD dok OF _MSYSMENU ACTIVATE POPUP документы
ON PAD ser OF _MSYSMENU ACTIVATE POPUP сервис
ON SELECTION PAD v OF _MSYSMENU DO exit. PRG
ON SELECTION PAD s OF _MSYSMENU do help. prg
DEFINE POPUP данные MARGIN RELATIVE SHADOW COLOR SCHEME 3
DEFINE BAR 1 OF данные PROMPT «МАРШРУТНЫЙ ЛИСТ» ;
KEY alt+m, «alt+m»
DEFINE BAR 2 OF данные PROMPT «НАРЯД» ;
KEY alt+n, «alt+n»
ON SELECTION BAR 1 OF данные DO FORM m_list
ON SELECTION BAR 2 OF данные DO FORM narad
DEFINE POPUP справочник
DEFINE BAR 1 OF справочник PROMPT «СВЕДЕНИЯ О ПРЕДПРИЯТИИ» ;
KEY alt+G, «alt+G»
DEFINE BAR 2 OF справочник PROMPT «СПРАВОЧНИК СОТРУДНИКОВ» ;
KEY alt+c, «alt+c»
ON SELECTION BAR 1 OF справочник do FORM sved_pred
ON SELECTION BAR 2 OF справочник do FORM sprav_sotr
DEFINE POPUP просмотр
DEFINE BAR 1 OF просмотр PROMPT «СВЕДЕНИЯ О ПРЕДПРИЯТИИ»
DEFINE BAR 2 OF просмотр PROMPT «СПРАВОЧНИК СОТРУДНИКОВ»
DEFINE BAR 3 OF просмотр PROMPT «МАРШРУТНЫЙ ЛИСТ»
DEFINE BAR 4 OF просмотр PROMPT «НАРЯД»
DEFINE BAR 5 OF просмотр PROMPT «СВЕДЕНИЯ О СОТРУДНИКАХ»
ON SELECTION BAR 1 OF ПРОСМОТР do p
ON SELECTION BAR 2 OF ПРОСМОТР do p1
ON SELECTION BAR 3 OF ПРОСМОТР do p3
ON SELECTION BAR 4 OF ПРОСМОТР do p2
ON SELECTION BAR 5 OF ПРОСМОТР do query6. qpr
DEFINE POPUP отчеты
DEFINE BAR 1 OF отчеты PROMPT «СВЕДЕНИЯ О ПРЕДПРИЯТИИ»
DEFINE BAR 2 OF отчеты PROMPT «СВЕДЕНИЯ О СОТРУДНИКАХ»
ON SELECTION BAR 1 OF отчеты report form Sved_pred preview
ON SELECTION BAR 2 OF отчеты report form Sved_sotr preview
DEFINE POPUP документы MARGIN RELATIVE SHADOW COLOR SCHEME 3
DEFINE BAR 1 OF документы PROMPT «Рапорт о выработке» ;
KEY alt+v, «alt+v»
DEFINE BAR 2 OF документы PROMPT «Ведомость начисления зп по нарядам» ;
KEY alt+j, «alt+j»
DEFINE BAR 3 OF документы PROMPT «РАСЧЕТНО-ПЛАТЕЖНАЯ ВЕДОМОСТЬ» ;
KEY alt+p, «alt+p»
ON SELECTION BAR 1 OF документы do m_list
ON SELECTION BAR 2 OF документы do narad
ON SELECTION BAR 3 OF документы do form otchet
DEFINE POPUP сервис MARGIN RELATIVE SHADOW COLOR SCHEME 3
DEFINE BAR 1 OF сервис PROMPT «БАЗА СОТРУДНИКОВ» ;
KEY alt+1, «alt+1»
DEFINE BAR 2 OF сервис PROMPT «Сохранение баз» ;
KEY alt+2, «alt+2»
DEFINE BAR 3 OF сервис PROMPT «Очистка баз» ;
KEY alt+3, «alt+3»
DEFINE BAR 4 OF сервис PROMPT «Востановление баз» ;
KEY alt+4, «alt+4»
ON SELECTION BAR 1 OF сервис do form redsprav_sotr
ON SELECTION BAR 2 OF сервис do form sohranenie
ON SELECTION BAR 3 OF сервис do form ochistka
ON SELECTION BAR 4 OF сервис do form vostanovlenie
PROCEDURE P
USE table1. dbf
BROWSE NOEDIT
CLOSE DATABASES
PROCEDURE P1
USE таблица1. dbf
BROWSE NOEDIT
CLOSE DATABASES
PROCEDURE P2
USE table2. dbf
BROWSE NOEDIT
CLOSE DATABASES
PROCEDURE P3
USE table3. dbf
BROWSE NOEDIT
CLOSE DATABASES
Рис. 2.10 — Меню программы Программа выхода из меню:
IF MESSAGEBOX ('ВЫ ХОТИТЕ ВЫЙТИ?', 4,'ВНИМАНИЕ!')=6
CLOSE ALL
QUIT
CLEAR EVENTS
ELSE
MESSAGEBOX ('СПАСИБО ЧТО ВЫ НЕ ПОКИНУЛИ ПРОГРАММУ!', 0,'БЛАГОДАРНОСТЬ!')
ENDIF
2.2.3 Разработка форм ввода
Рис. 2.11 — Форма: sved_pred.scx
Формa INIT:
PUBLIC put
put=SYS (5)+ALLTRIM (SYS (2003))
SET PATH TO &put
SET TALK OFF
OPEN DATABASE 1
USE table1 EXCLUSIVE
thisform.Closable= .F.
WITH thisform
.grid1.RecordSource=.null.
.grid1.RecordSource="table1″
.txtpr.value=""
.txtad.value=""
.txtt.value=0
.txtinn.value=0
.txtrs.value=0
.txtkr.value=0
.txtnr.value=0
.txtdt.value={}
.txtgn.value=""
.txtgb.value=""
.txtpr.readonly=.t.
.txtad.readonly=.t.
.txtt.readonly=.t.
.txtinn.readonly=.t.
.txtrs.readonly=.t.
.txtkr.readonly=.t.
.txtnr.readonly=.t.
.txtgn.readonly=.t.
.txtgb.readonly=.t.
.txtdt.readonly=.t.
ENDWITH
WITH thisform. grid1
.coLUMN1.width=100
.coLUMN2.width=100
.coLUMN3.width=100
.coLUMN4.width=100
.coLUMN5.width=100
.coLUMN6.width=100
.coLUMN7.width=100
.coLUMN8.width=100
.coLUMN9.width=100
.coLUMN10.width=100
ENDWITH
thisform.Refresh
Формa KeyPress:
LPARAMETERS nKeyCode, nShiftAltCtrl
IF nKeyCode=27
IF MESSAGEBOX («Вы хотите выйти ?», 4," Внимание")=6
thisform.Release
ELSE
thisform.Refresh
ENDIF
ENDIF
Кнопка «Новая «(click):
WITH thisform
.txtpr.value=""
.txtad.value=""
.txtt.value=0
.txtinn.value=0
.txtrs.value=0
.txtkr.value=0
.txtnr.value=0
.txtgn.value=""
.txtgb.value=""
.txtdt.value={}
.txtpr.readonly=.f.
.txtad.readonly=.f.
.txtt.readonly=.f.
.txtinn.readonly=.f.
.txtrs.readonly=.f.
.txtkr.readonly=.f.
.txtnr.readonly=.f.
.txtgn.readonly=.f.
.txtgb.readonly=.f.
.txtdt.readonly=.f.
.refresh
ENDWITH
Кнопка «Сохранить» (click):
SET SAFETY OFF
IF thisform.txtpr.ReadOnly= .T.
MESSAGEBOX («Нажмите кнопку 'Новая'…», 0," Внимание !!!")
thisform.Refresh
ELSE
IF EMPTY (thisform.txtpr.Value)=.f. AND EMPTY (thisform.txtad.Value)=.f. AND EMPTY (thisform.txtt.Value)=.f. AND EMPTY (thisform.txtinn.Value)=.f. AND EMPTY (thisform.txtrs.Value)=.f. AND EMPTY (thisform.txtkr.Value)=.f. AND EMPTY (thisform.txtnr.Value)=.f.AND EMPTY (thisform.txtgn.Value)=.f.AND EMPTY (thisform.txtgb.Value)=.f. AND EMPTY (thisform.txtdt.Value)=.f.
SELECT table1
INDEX on pr TO table1. idx
IF SEEK (thisform.txtpr.Value)
IF MESSAGEBOX («Запись существует. Заменить ?», 4," Внимание !!!")=6
REPLACE pr WITH thisform.txtpr.Value, ad WITH thisform.txtad.Value,;
t WITH thisform.txtt.Value, inn WITH thisform.txtinn.Value,;
rs WITH thisform.txtrs.Value, kr WITH thisform.txtkr.Value,;
nr WITH thisform.txtnr.Value, gn WITH thisform.txtgn.Value, gb WITH thisform.txtgb.Value, dt WITH thisform.txtdt.Value
thisform.Refresh
WITH thisform
.txtpr.value=""
.txtad.value=""
.txtt.value=0
.txtinn.value=0
.txtrs.value=0
.txtkr.value=0
.txtnr.value=0
.txtgn.value=""
.txtgb.value=""
.txtdt.value={}
.txtpr.readonly=.t.
.txtad.readonly=.t.
.txtt.readonly=.t.
.txtinn.readonly=.t.
.txtrs.readonly=.t.
.txtkr.readonly=.t.
.txtnr.readonly=.t.
.txtgn.readonly=.t.
.txtgb.readonly=.t.
.txtdt.readonly=.t.
.refresh
ENDWITH
ELSE
WITH thisform
.txtpr.value=""
.txtad.value=""
.txtt.value=0
.txtinn.value=0
.txtrs.value=0
.txtkr.value=0
.txtnr.value=0
.txtgn.value=""
.txtgb.value=""
.txtdt.value={}
ENDWITH
thisform.Refresh
ENDIF
ELSE
pr1=thisform.txtpr.Value
ad1=thisform.txtad.Value
t1=thisform.txtt.Value
inn1=thisform.txtinn.Value
rs1=thisform.txtrs.Value
kr1=thisform.txtkr.Value
nr1=thisform.txtnr.Value
gn1=thisform.txtgn.Value
gb1=thisform.txtgb.Value
dt1=thisform.txtdt.Value
INSERT INTO table1(pr, ad, t, inn, rs, kr, nr, gn, gb, dt) VALUES (pr1,ad1,t1,inn1,rs1,kr1,nr1,gn1,gb1,dt1)
WITH thisform
.txtpr.value=""
.txtad.value=""
.txtt.value=0
.txtinn.value=0
.txtrs.value=0
.txtkr.value=0
.txtnr.value=0
.txtgn.value=""
.txtgb.value=""
.txtdt.value={}
.txtpr.readonly=.t.
.txtad.readonly=.t.
.txtt.readonly=.t.
.txtinn.readonly=.t.
.txtrs.readonly=.t.
.txtkr.readonly=.t.
.txtnr.readonly=.t.
.txtgn.readonly=.t.
.txtgb.readonly=.t.
.txtdt.readonly=.t.
.refresh
ENDWITH
ENDIF
ELSE
MESSAGEBOX («Заполните все поля…», 0," Внимание !!!")
WITH thisform
.txtpr.value=""
.txtad.value=""
.txtt.value=0
.txtinn.value=0
.txtrs.value=0
.txtkr.value=0
.txtnr.value=0
.txtgn.value=""
.txtgb.value=""
.txtdt.value={}
.refresh
ENDWITH
ENDIF
ENDIF
Кнопка «Удалить» (click):
IF MESSAGEBOX («Вы хотите удалить запись ?», 4," Внимание !!!")=6
SELECT table1
IF DELETED ()
PACK
WITH thisform
.grid1.RecordSource=.null.
.grid1.RecordSource="table1″
.txtpr.value=""
.txtad.value=""
.txtt.value=0
.txtinn.value=0
.txtrs.value=0
.txtkr.value=0
.txtnr.value=0
.txtgn.value=""
.txtgb.value=""
.txtdt.value={}
.txtpr.readonly=.t.
.txtad.readonly=.t.
.txtt.readonly=.t.
.txtinn.readonly=.t.
.txtrs.readonly=.t.
.txtkr.readonly=.t.
.txtnr.readonly=.t.
.txtgn.readonly=.t.
.txtgb.readonly=.t.
.txtdt.readonly=.t.
.refresh
ENDWITH
WITH thisform. grid1
.coLUMN1.width=100
.coLUMN2.width=100
.coLUMN3.width=100
.coLUMN4.width=100
.coLUMN5.width=100
.coLUMN6.width=100
.coLUMN7.width=100
.coLUMN8.width=100
.coLUMN9.width=100
.coLUMN10.width=100
ENDWITH
ELSE
DELETE
PACK
WITH thisform
.grid1.RecordSource=.null.
.grid1.RecordSource="table1″
.txtpr.value=""
.txtad.value=""
.txtt.value=0
.txtinn.value=0
.txtrs.value=0
.txtkr.value=0
.txtnr.value=0
.txtgn.value=""
.txtgb.value=""
.txtdt.value={}
.txtpr.readonly=.t.
.txtad.readonly=.t.
.txtt.readonly=.t.
.txtinn.readonly=.t.
.txtrs.readonly=.t.
.txtkr.readonly=.t.
.txtnr.readonly=.t.
.txtgn.readonly=.t.
.txtgb.readonly=.t.
.txtdt.readonly=.t.
.refresh
ENDWITH
WITH thisform. grid1
.coLUMN1.width=100
.coLUMN2.width=100
.coLUMN3.width=100
.coLUMN4.width=100
.coLUMN5.width=100
.coLUMN6.width=100
.coLUMN7.width=100
.coLUMN8.width=100
.coLUMN9.width=100
.coLUMN10.width=100
ENDWITH
ENDIF
ELSE
WITH thisform
.txtpr.value=""
.txtad.value=""
.txtt.value=0
.txtinn.value=0
.txtrs.value=0
.txtkr.value=0
.txtnr.value=0
.txtgn.value=""
.txtgb.value=""
.txtdt.value={}
.txtpr.readonly=.t.
.txtad.readonly=.t.
.txtt.readonly=.t.
.txtinn.readonly=.t.
.txtrs.readonly=.t.
.txtkr.readonly=.t.
.txtnr.readonly=.t.
.txtgn.readonly=.t.
.txtgb.readonly=.t.
.txtdt.readonly=.t.
.refresh
ENDWITH
WITH thisform. grid1
.coLUMN1.width=100
.coLUMN2.width=100
.coLUMN3.width=100
.coLUMN4.width=100
.coLUMN5.width=100
.coLUMN6.width=100
.coLUMN7.width=100
.coLUMN8.width=100
.coLUMN9.width=100
.coLUMN10.width=100
ENDWITH
ENDIF
Кнопка «Выйти» (click):
IF MESSAGEBOX («Вы хотите выйти ?», 4," Внимание")=6
thisform.Release
ELSE
thisform.Refresh
ENDIF
Рис. 2.12 — Форма: sprav_sotr.scx
Формa INIT:
USE Таблица1 EXCLUSIVE
thisform.grid1.RecordSource=.null.
thisform.grid1.RecordSource='Таблица1'
thisform.grid1.column1.Width=100
thisform.grid1.column2.Width=300
thisform.grid1.column3.Width=160
thisform.grid1.column4.Width=160
thisform.grid1.ReadOnly= .T.
thisform.Text1.ReadOnly= .T.
thisform.Text2.ReadOnly= .T.
thisform.Text3.ReadOnly= .T.
thisform.Text4.ReadOnly= .T.
thisform.Text5.ReadOnly= .T.
thisform.Text7.ReadOnly= .T.
thisform.Text8.ReadOnly= .T.
thisform.Text9.ReadOnly= .f.
thisform.text1.Value=0
thisform.text2.Value=''
thisform.text3.Value=''
thisform.text4.Value=0
thisform.text5.Value=0
thisform.text7.Value=''
thisform.text8.Value=''
Thisform.Refresh ()
Кнопка «Поиск» (click):
IF EMPTY (ALLTRIM (Thisform.Text9.Value))= .F.
SELECT Таблица1
CLOSE INDEXES
DELETE FILE Таблица1. idx
INDEX on tn TO Таблица1. idx
IF SEEK (ALLTRIM (Thisform.Text9.Value))
Thisform.Text9.Value=''
Thisform.Refresh ()
ELSE
IF MESSAGEBOX ('Запись ненайдена (Проверте регистры символов…)! Создать новую запись? ', 8,'внимание !!!')=10
thisform.Text1.ReadOnly= .F.
thisform.Text2.ReadOnly= .f.
thisform.Text3.ReadOnly= .f.
thisform.Text4.ReadOnly= .f.
thisform.Text5.ReadOnly= .f.
thisform.Text7.ReadOnly= .f.
thisform.Text8.ReadOnly= .T.
thisform.Text1.Value=0
thisform.Text2.Value=''
thisform.Text3.Value=''
thisform.Text4.Value=0
thisform.Text5.Value=0
thisform.Text7.Value=''
thisform.Text8.Value=''
thisform.Refresh ()
ELSE
thisform.Text9.readonly= .F.
thisform.Text9.Value=''
thisform.Refresh ()
ENDIF
ENDIF
ELSE
MESSAGEBOX ('Запись ненайдена (Проверте регистры символов…)! Введите данные !!!', 0,'Внимание!!!')
thisform.Text9.Value=''
ENDIF
Кнопка «Новая «(click):
thisform.grid1.ReadOnly= .T.
thisform.text1.ReadOnly= .f.
thisform.text2.ReadOnly= .f.
thisform.text3.ReadOnly= .f.
thisform.text4.ReadOnly= .f.
thisform.text5.ReadOnly= .f.
thisform.text7.ReadOnly= .f.
thisform.text8.ReadOnly= .f.
thisform.text9.ReadOnly= .T.
thisform.text1.Value=0
thisform.text2.Value=''
thisform.text3.Value=''
thisform.text4.Value=0
thisform.text5.Value=0
thisform.text7.Value=''
thisform.text8.Value=''
Thisform.Refresh ()
Кнопка «Сохранить» (click):
IF EMPTY (Thisform.Text1.Value)= .f.
CLOSE INDEXES
DELETE FILE Таблица1. idx
INDEX on tn TO Таблица1. idx
IF SEEK (Thisform.Text1.Value)
IF MESSAGEBOX ('Запись существует !!! Заменить её? ', 8,'Внимание !!!')=10
SELECT Таблица1
REPLACE tn WITH thisform. Text1.Value, fio WITH thisform. Text2.Value, dol WITH thisform. Text3.Value, kold WITH thisform. Text4.Value, Stz WITH thisform. Text5.Value, adr WITH thisform. Text7.Value, obr WITH thisform. Text8.Value
thisform.grid1.ReadOnly= .T.
thisform.Text1.Value=0
thisform.Text2.Value=''
thisform.Text3.Value=''
thisform.Text4.Value=0
thisform.Text5.Value=0
thisform.Text7.Value=''
thisform.Text8.Value=''
MESSAGEBOX ('Запись заменена !!! ', 0,'Внимание !!!')
thisform.Refresh ()
ELSE
SELECT Таблица1
APPEND BLANK
REPLACE tn WITH thisform. Text1.Value, fio WITH thisform. Text2.Value, dol WITH thisform. Text3.Value, kold WITH thisform. Text4.Value, Stz WITH thisform. Text5.Value, adr WITH thisform. Text7.Value, obr WITH thisform. Text8.Value
thisform.Refresh ()
thisform.grid1.ReadOnly= .T.
thisform.Text1.Value=0
thisform.Text2.Value=''
thisform.Text3.Value=''
thisform.Text4.Value=0
thisform.Text5.Value=0
thisform.Text7.Value=''
thisform.Text8.Value=''
ENDIF
ELSE
SELECT Таблица1
APPEND BLANK
REPLACE tn WITH thisform. Text1.Value, fio WITH thisform. Text2.Value, dol WITH thisform. Text3.Value, kold WITH thisform. Text4.Value, Stz WITH thisform. Text5.Value, adr WITH thisform. Text7.Value, obr WITH thisform. Text8.Value
thisform.grid1.ReadOnly= .T.
thisform.Text1.Value=0
thisform.Text2.Value=''
thisform.Text3.Value=''
thisform.Text4.Value=0
thisform.Text5.Value=0
thisform.Text7.Value=''
thisform.Text8.Value=''
MESSAGEBOX ('Запись добавленна !!! ', 0,'Внимание !!!')
thisform.Refresh ()
ENDIF
ELSE
MESSAGEBOX ('Введите код !!! ', 0,'Внимание !!!')
ENDIF
Кнопка «Отмена» (click):
thisform.grid1.ReadOnly= .T.
thisform.text1.ReadOnly= .T.
thisform.text2.ReadOnly= .T.
thisform.text3.ReadOnly= .T.
thisform.text4.ReadOnly= .T.
thisform.text5.ReadOnly= .T.
thisform.text7.ReadOnly= .T.
thisform.text8.ReadOnly= .T.
thisform.text9.ReadOnly= .F.
thisform.text1.Value=0
thisform.text2.Value=''
thisform.text3.Value=''
thisform.text4.Value=0
thisform.text5.Value=0
thisform.text7.Value=''
thisform.text8.Value=''
thisform.text9.Value=''
Кнопка «Выйти» (click):
CLOSE TABLES
Thisform.Release ()
Рис. 2.13 — Форма: redsprav_sotr.scx
Кнопка «Изменить"(click):
IF MESSAGEBOX ('Вы действительно хотите изменить запись ??? ', 4,'Внимание !!!')=6
SELECT таблица1
tn1=tn
fio1=fio
dol1=dol
kold1=kold
stz1=stz
adr1=adr
obr1=obr
thisform.Text1.Value=tn1
thisform.Text2.Value=fio1
thisform.Text3.Value=dol1
thisform.Text4.Value=kold1
thisform.Text5.Value=stz1
thisform.Text7.Value=adr1
thisform.Text8.Value=obr1
WITH thisform
.Text1.readonly=.f.
.Text2.readonly=.f.
.Text3.readonly=.f.
.Text4.readonly=.f.
.Text5.readonly=.f.
.Text7.readonly=.f.
.Text8.readonly=.f.
.refresh
endwith
ELSE
thisform.Refresh
ENDIF
Кнопка «Удалить» (click):
IF MESSAGEBOX ('Вы хотите удалить запись?', 4,'ВНИМАНИЕ !!!')=6
SELECT Таблица1
DELETE
pack
thisform.grid1.RecordSource=.null.
thisform.grid1.RecordSource='Таблица1'
thisform.grid1.column1.Width=100
thisform.grid1.column2.Width=300
thisform.grid1.column3.Width=100
thisform.Grid1.ReadOnly= .T.
thisform.text1.ReadOnly= .T.
thisform.text2.ReadOnly= .T.
thisform.text3.ReadOnly= .T.
thisform.text4.ReadOnly= .T.
thisform.text5.ReadOnly= .T.
thisform.text7.ReadOnly= .T.
thisform.text8.ReadOnly= .T.
thisform.Text1.Value=0
thisform.Text2.Value=''
thisform.Text3.Value=''
thisform.Text4.Value=0
thisform.Text5.Value=0
thisform.Text7.Value=''
thisform.Text8.Value=''
thisform.Refresh ()
ELSE
SELECT Таблица1
thisform.grid1.ReadOnly= .T.
thisform.text1.ReadOnly= .T.