Начисления индивидуальной сдельной заработной платы на СЦ "Технокомп"

 

Введение


В условиях перехода к системе рыночного хозяйствования в соответствии с изменениями в экономическом и социальном развитии страны существенно меняется и политика в области оплаты труда, социальной поддержки и защиты работников. Многие функции государства по реализации этой политики переданы непосредственно предприятиям, которые самостоятельно устанавливают формы, системы и размеры оплаты труда, материального стимулирования его результатов. Понятие «заработная плата» наполнилось новым содержанием и охватывает все виды заработков (а также различных премий, доплат, надбавок и социальных льгот), начисленных в денежной и натуральной формах (независимо от источников финансирования), включая денежные суммы, начисленные работникам в соответствии с законодательством за неотработанное время (ежегодный отпуск, праздничные дни).

Актуальность темы: Учет начисления индивидуальной сдельной заработной платы не вызывает сомнения, так как является очень важной составной частью всего бухгалтерского учета, работы с сотрудниками и налоговых начислений. Еще больший интерес представляется в этой работе в том, что она как бы является первопроходцем по новым документам, нормативным актам и законам различных уровней, касающихся учета, начисления, оплаты труда - это связано с появлением нового Трудового Кодекса, а также внесенные изменения в Налоговый Кодекс глав, которые касаются заработной платы (например, гл. 24 и др.), появились новые Федеральные законы, которые регулируют деятельность организации

Учет труда и заработной платы по праву занимает одно из центральных мест во всей системе учета на предприятии. Учет труда и заработной платы должен обеспечить оперативный контроль за качеством и количеством труда, за использованием средств, включаемых в фонд заработной платы и выплаты социального характера.

Цель написания работы: изучить теоретические основы учета начисления сдельной заработной платы, порядок ее начисления и создание программного обеспечения на основе изученного материала.

Предметом исследования является учет начисления индивидуальной сдельной заработной платы на СЦ Технокомп.

Для достижения поставленных целей необходимо решить следующий круг задач:

рассмотреть общие положения и проблемы сдельной оплаты труда;

спроектировать структуру баз данных, т.е. разработать модель структуры базы данных.

разработать необходимые базы данных на основании первичных документов;

создать пользовательский интерфейс.

Объектом исследования в работе является частный сервисный центр по ремонту и обслуживанию компьютерной техники ТехноКомп.

В теоретической части выпускной работы: документация по учету выработки, заполнение документов. Ряд условий влияющих на документальное оформление и организацию учета выработки, синтетический учет расчетов с работниками по оплате труда (сч.70).

В практической части: Необходимо спроектировать ИС и БД. Программная реализация информационной системы: создание метаданных БД, разработка интерфейса пользователя, разработка форм ввода, программы формирования выходных документов, реализация сервисных функций, создание справочной системе.


1.Теоретическая часть


.1 Характеристика предприятия


СЦ «ТехноКомп»

Адрес: Россия, г. Карасук,

ул. Сибирская 15;

Телефон/факс 8-953 886 666 6

ИНН № 542233695

Расчетный счет в СибАкадем банк № 54763696361785367424

Корсчет: 85400034056421523601

Место регистрации: Регистрационная палата Мэрии г. Карасука.

Дата регистрации: 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.

Иметь доступный и простой интерфейс пользователя.

Иметь простую систему настроек.

Иметь понятную справочную систему.

ПРОЕКТНАЯ ЗАДАЧА: Существует СЦ «ТехноКомп» на данном предприятии производится оказание услуг по ремонту и обслуживанию компьютерной техники. В конце отчетного периода рабочим необходимо выплачивать заработную плату, которая зависит от количества проделанной работы. Необходимо рассчитать заработную плату по каждому работнику.

Входные данные

.Справочник сведения об организации table1.DBF (рис.2.1) будет содержать постоянную информацию об организации.

.Справочник сотрудников таблица1.DBF (рис.2.2) будет содержать информацию о работниках организации.

.БД table2.DBF (рис.2.3) будет содержать переменную информацию, а именно - сведения о работниках работающих по нарядам.

.БД table3.DBF (рис.2.4) будет содержать переменную информацию, а именно - сведения о работниках работающих по маршрутным листам.

Требования к входным данным

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

При вводе количества периодов предусмотреть контроль его соответствия диапазону значений количества периодов.

При вводе номера строки необходимо следить за тем, чтобы он не превышал количества строк таблицы.

При обнаружении ошибки при вводе выдать звуковой сигнал и повторять ввод.

Ввод всех входных данных следует осуществлять по запросам программы и с использованием подсказок.

Выходные данные:

Расчетно-платежная ведомость;

Рапорт о выработке.

Требования к выходным данным:

Создание выходных документов необходимо в ОС имеющей программу для просмотра html документов. В расчетно-платежной ведомости должно подсчитывается автоматически сумму к выдаче, где уже произведены различные доплаты и вычеты. Итоговым результатом будет общая сумма к выдаче, то есть сумма, которую необходимо выдать из кассы предприятия.

Надежность системы:

Надежность системы в целом зависит от надежности используемой операционной системы:) система не должна содержать ошибок, искажающих внешние спецификации, обнаруживаемые тестированием;

б) система не должна переходить в неопределенное состояние при неправильных действиях пользователя;

в) система не должна переходить в неопределенное состояние при недопустимых форматах, значениях или сочетании значений данных, вводимых с клавиатуры.

г) ЭВМ не должна зависать или выдавать несоответствующие сообщения при обращении к неподключенным внешним устройствами;

Условия эксплуатации:

а) система должна быть рассчитана на пользователя, не знакомого с программированием ЭВМ и управлением операционной системой;

б) дополнительные знания, необходимые для работы с системой, должны быть ограничены ознакомлением с клавиатурой;

в) количество манипуляций за клавиатурой должно быть минимальным, в связи, с чем интерфейс следует строить на основе выбора действий с использованием функциональных клавиш;

г) количество информации, которое необходимо воспринять и переработать пользователю для принятия решений по управлению системой, должно быть минимальным;

д) система должна реагировать на недопустимые действия пользователя или на неразрешенные сочетания данных, либо игнорируя их, либо выдавая звуковое предупреждение;

е) изображения доступных функциональных клавишей должно постоянно присутствовать на экране;

з) время реакции системы:

при операциях типа редактирования время реакции не более 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. Практическая часть


.1 Проектирование ИС


.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 (Numeric(4) NULL,Character(3) NULL,Character(15) NULL,Numeric(3) NULL,Character(10) NULL,Character(15) NULL,Numeric(3) NULL,Date NULL,Numeric(4) NULL,Numeric(4) NOT NULL

);UNIQUE INDEX XPKE_3 ON table2

(ASC

);TABLE table3 (Date NULL,Numeric(5) NULL,Numeric(4) NULL,Character(15) NULL,Numeric(4) NULL,Numeric(3) NULL,Character(15) NULL,Character(15) NULL,_par Numeric(4) NULL,Numeric(4) NULL,Numeric(4) NOT NULL

);UNIQUE INDEX XPKE_4 ON table3

(ASC

);TABLE Таблица1 (Character(15) NULL,Numeric(4) NOT NULL,Character(10) NULL,Character(18) NULL,Numeric(4) NULL,Numeric(2) NULL,Character(15) NULL

);UNIQUE INDEX XPKE_1 ON Таблица1

(ASC

);

При разработке данного программного обеспечения использовались следующие поля


Таблица 1

ПолеОписание поляtnТабельный номерFioФамилия имя отчествоDolДолжностьKoldКоличество детейRazРазрядAdrАдресObrОбразованиеNНомер документаDtДатаCexЦехn_parНомер партииPrПрофессияRaboРаботаEdЕдиница измеренияKolКоличествоDetalДеталь

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


Были созданы следующие локальные представления для отображения необходимой информации:

Данный запрос формирует представление о стаже работников отработавших более одного года.Таблица1.tn, Таблица1.fio, Таблица1.dol, Таблица1.stz, Таблица1.obr;;

!таблица1;Таблица1.stz > (1);

ORDER BY Таблица1.tn, Таблица1.stz


2.2.2 Разработка интерфейса пользователя

Программа запуска меню:

CLOSE ALLALLyDATE TO GERMANTALK OFFSAFETY OFFBELL OFFBELL OFFPOINT TO '.'(.t.)

_SCREEN.Visible= .T.

_SCREEN.caption="УЧЕТ НАЧИСЛЕНИЯ СДЕЛЬНОЙ ЗАРАБОТНОЙ ПЛАТЫ"

_SCREEN.Picture="Фон.JPG"

_screen.Closable= .F.

_screen.WindowState= 2

_screen.MaxButton= .F.MENU1.PRGEVENTS

Программа меню:SYSMENU TOSYSMENU AUTOMATICPAD d OF _MSYSMENU PROMPT "ВВОД ДАННЫХ" COLOR SCHEME 3;CTRL+B, "CTRL+B"PAD spr OF _MSYSMENU PROMPT "СПРАВОЧНИКИ" COLOR SCHEME 3;CTRL+S, "CTRL+S"PAD PRS OF _MSYSMENU PROMPT "ПРОСМОТР" COLOR SCHEME 3;CTRL+P, "CTRL+P"PAD R OF _MSYSMENU PROMPT "ОТЧЕТЫ" COLOR SCHEME 3;CTRL+O, "CTRL+O"PAD DOK OF _MSYSMENU PROMPT "ДОКУМЕНТЫ" COLOR SCHEME 3;CTRL+D, "CTRL+D"PAD ser OF _MSYSMENU PROMPT "СЕРВИС" COLOR SCHEME 3;CTRL+C, "CTRL+C"PAD v OF _MSYSMENU PROMPT "ВЫХОД" COLOR SCHEME 3;ALT+F4, "ALT+F4"PAD s OF _MSYSMENU PROMPT "СПРАВКА" COLOR SCHEME 3;CTRL+K, "CTRL+K"PAD d OF _MSYSMENU ACTIVATE POPUP данныеPAD spr OF _MSYSMENU ACTIVATE POPUP справочникPAD PRS OF _MSYSMENU ACTIVATE POPUP просмотрPAD R OF _MSYSMENU ACTIVATE POPUP отчетыPAD dok OF _MSYSMENU ACTIVATE POPUP документыPAD ser OF _MSYSMENU ACTIVATE POPUP сервисSELECTION PAD v OF _MSYSMENU DO exit.PRGSELECTION PAD s OF _MSYSMENU do help.prgPOPUP данные MARGIN RELATIVE SHADOW COLOR SCHEME 3BAR 1 OF данные PROMPT "МАРШРУТНЫЙ ЛИСТ";alt+m, "alt+m"BAR 2 OF данные PROMPT "НАРЯД";alt+n, "alt+n"SELECTION BAR 1 OF данные DO FORM m_listSELECTION BAR 2 OF данные DO FORM narad

DEFINE POPUP справочникBAR 1 OF справочник PROMPT "СВЕДЕНИЯ О ПРЕДПРИЯТИИ";

KEY alt+G, "alt+G"

DEFINE BAR 2 OF справочник PROMPT "СПРАВОЧНИК СОТРУДНИКОВ";

KEY alt+c, "alt+c"SELECTION BAR 1 OF справочник do FORM sved_predSELECTION BAR 2 OF справочник do FORM sprav_sotrPOPUP просмотрBAR 1 OF просмотр PROMPT "СВЕДЕНИЯ О ПРЕДПРИЯТИИ"

DEFINE BAR 2 OF просмотр PROMPT "СПРАВОЧНИК СОТРУДНИКОВ"

DEFINE BAR 3 OF просмотр PROMPT "МАРШРУТНЫЙ ЛИСТ"BAR 4 OF просмотр PROMPT "НАРЯД"

DEFINE BAR 5 OF просмотр PROMPT "СВЕДЕНИЯ О СОТРУДНИКАХ"

ON SELECTION BAR 1 OF ПРОСМОТР do pSELECTION BAR 2 OF ПРОСМОТР do p1SELECTION BAR 3 OF ПРОСМОТР do p3SELECTION BAR 4 OF ПРОСМОТР do p2SELECTION BAR 5 OF ПРОСМОТР do query6.qprPOPUP отчетыBAR 1 OF отчеты PROMPT "СВЕДЕНИЯ О ПРЕДПРИЯТИИ"BAR 2 OF отчеты PROMPT "СВЕДЕНИЯ О СОТРУДНИКАХ"SELECTION BAR 1 OF отчеты report form Sved_pred previewSELECTION BAR 2 OF отчеты report form Sved_sotr previewPOPUP документы 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"SELECTION BAR 1 OF документы do m_listSELECTION BAR 2 OF документы do naradSELECTION BAR 3 OF документы do form otchetPOPUP сервис MARGIN RELATIVE SHADOW COLOR SCHEME 3BAR 1 OF сервис PROMPT "БАЗА СОТРУДНИКОВ";alt+1, "alt+1"BAR 2 OF сервис PROMPT "Сохранение баз";alt+2, "alt+2"BAR 3 OF сервис PROMPT "Очистка баз";alt+3, "alt+3"BAR 4 OF сервис PROMPT "Востановление баз";alt+4, "alt+4"SELECTION BAR 1 OF сервис do form redsprav_sotrSELECTION BAR 2 OF сервис do form sohranenieSELECTION BAR 3 OF сервис do form ochistkaSELECTION BAR 4 OF сервис do form vostanovleniePtable1.dbfNOEDITDATABASESP1таблица1.dbfNOEDITDATABASESP2table2.dbfNOEDITDATABASESP3table3.dbfNOEDIT

CLOSE DATABASES


Рис. 2.10 - Меню программы


Программа выхода из меню:MESSAGEBOX('ВЫ ХОТИТЕ ВЫЙТИ?',4,'ВНИМАНИЕ!')=6

CLOSE ALLEVENTS

MESSAGEBOX('СПАСИБО ЧТО ВЫ НЕ ПОКИНУЛИ ПРОГРАММУ!',0,'БЛАГОДАРНОСТЬ!')


2.2.3 Разработка форм ввода


Рис. 2.11 - Форма: sved_pred.scx


Формa INIT:

PUBLIC put=SYS(5)+ALLTRIM(SYS(2003))PATH TO &putTALK OFFDATABASE 1table1 EXCLUSIVE.Closable= .F.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.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.Refresh

Формa KeyPress:nKeyCode, nShiftAltCtrlnKeyCode=27

IF MESSAGEBOX("Вы хотите выйти ?",4,"Внимание")=6

thisform.Release.Refresh

Кнопка «Новая » (click):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

Кнопка «Сохранить» (click):SAFETY OFFthisform.txtpr.ReadOnly= .T.

MESSAGEBOX("Нажмите кнопку 'Новая'...",0,"Внимание !!!")

thisform.RefreshEMPTY(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.table1on pr TO table1.idxSEEK(thisform.txtpr.Value)

IF MESSAGEBOX("Запись существует. Заменить ?",4,"Внимание !!!")=6

REPLACE pr WITH thisform.txtpr.Value, ad WITH thisform.txtad.Value,;WITH thisform.txtt.Value, inn WITH thisform.txtinn.Value,;WITH thisform.txtrs.Value, kr WITH thisform.txtkr.Value,;WITH thisform.txtnr.Value, gn WITH thisform.txtgn.Value, gb WITH thisform.txtgb.Value, dt WITH thisform.txtdt.Value.Refreshthisform

.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.

.refreshthisform

.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=thisform.txtpr.Value=thisform.txtad.Value=thisform.txtt.Value=thisform.txtinn.Value=thisform.txtrs.Value=thisform.txtkr.Value=thisform.txtnr.Value=thisform.txtgn.Value=thisform.txtgb.Value=thisform.txtdt.ValueINTO table1(pr,ad,t,inn,rs,kr,nr,gn,gb,dt) VALUES (pr1,ad1,t1,inn1,rs1,kr1,nr1,gn1,gb1,dt1)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

ELSE("Заполните все поля...",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

ENDIF

Кнопка «Удалить» (click):MESSAGEBOX("Вы хотите удалить запись ?",4,"Внимание !!!")=6

SELECT table1DELETED()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.

.refreshthisform.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=100thisform

.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.

.refreshthisform.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=100thisform

.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.

.refreshthisform.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

Кнопка «Выйти» (click):

IF MESSAGEBOX("Вы хотите выйти ?",4,"Внимание")=6

thisform.Release.Refresh


Рис. 2.12 - Форма: sprav_sotr.scx


Формa INIT:

USE Таблица1 EXCLUSIVE.grid1.RecordSource=.null..grid1.RecordSource='Таблица1'.grid1.column1.Width=100.grid1.column2.Width=300.grid1.column3.Width=160.grid1.column4.Width=160.grid1.ReadOnly= .T..Text1.ReadOnly= .T..Text2.ReadOnly= .T..Text3.ReadOnly= .T..Text4.ReadOnly= .T..Text5.ReadOnly= .T..Text7.ReadOnly= .T..Text8.ReadOnly= .T..Text9.ReadOnly= .f..text1.Value=0.text2.Value=''.text3.Value=''.text4.Value=0.text5.Value=0.text7.Value=''.text8.Value=''.Refresh()

Кнопка «Поиск» (click):EMPTY (ALLTRIM(Thisform.Text9.Value))= .F.Таблица1INDEXESFILE Таблица1.idxon tn TO Таблица1.idxSEEK(ALLTRIM(Thisform.Text9.Value)).Text9.Value=''.Refresh()

ELSEMESSAGEBOX('Запись ненайдена (Проверте регистры символов...)! Создать новую запись? ',8,'внимание !!!')=10.Text1.ReadOnly= .F.

thisform.Text2.ReadOnly= .f..Text3.ReadOnly= .f..Text4.ReadOnly= .f..Text5.ReadOnly= .f..Text7.ReadOnly= .f..Text8.ReadOnly= .T..Text1.Value=0.Text2.Value=''.Text3.Value=''.Text4.Value=0.Text5.Value=0.Text7.Value=''.Text8.Value=''.Refresh().Text9.readonly= .F..Text9.Value=''.Refresh()

ENDIF('Запись ненайдена (Проверте регистры символов...)! Введите данные !!!',0,'Внимание!!!')

thisform.Text9.Value=''

Кнопка «Новая » (click):.grid1.ReadOnly= .T..text1.ReadOnly= .f..text2.ReadOnly= .f..text3.ReadOnly= .f..text4.ReadOnly= .f..text5.ReadOnly= .f..text7.ReadOnly= .f..text8.ReadOnly= .f..text9.ReadOnly= .T..text1.Value=0.text2.Value=''.text3.Value=''.text4.Value=0.text5.Value=0.text7.Value=''.text8.Value=''.Refresh()


Кнопка «Сохранить» (click):EMPTY (Thisform.Text1.Value)= .f.INDEXESFILE Таблица1.idxon tn TO Таблица1.idxSEEK(Thisform.Text1.Value)

IF MESSAGEBOX('Запись существует !!! Заменить её ? ',8,'Внимание !!!')=10Таблица1tn 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.grid1.ReadOnly= .T..Text1.Value=0.Text2.Value=''.Text3.Value=''.Text4.Value=0.Text5.Value=0.Text7.Value=''.Text8.Value=''

MESSAGEBOX('Запись заменена !!! ',0,'Внимание !!!')

thisform.Refresh()Таблица1BLANKtn 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.Refresh().grid1.ReadOnly= .T..Text1.Value=0.Text2.Value=''.Text3.Value=''.Text4.Value=0.Text5.Value=0.Text7.Value=''.Text8.Value=''Таблица1BLANKtn 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.grid1.ReadOnly= .T..Text1.Value=0.Text2.Value=''.Text3.Value=''.Text4.Value=0.Text5.Value=0.Text7.Value=''.Text8.Value=''

MESSAGEBOX('Запись добавленна !!! ',0,'Внимание !!!')

thisform.Refresh()('Введите код !!! ',0,'Внимание !!!')

Кнопка «Отмена» (click):

thisform.grid1.ReadOnly= .T..text1.ReadOnly= .T..text2.ReadOnly= .T..text3.ReadOnly= .T..text4.ReadOnly= .T..text5.ReadOnly= .T..text7.ReadOnly= .T..text8.ReadOnly= .T..text9.ReadOnly= .F..text1.Value=0.text2.Value=''.text3.Value=''.text4.Value=0.text5.Value=0.text7.Value=''.text8.Value=''.text9.Value=''

Кнопка «Выйти» (click):

CLOSE TABLES.Release()


Рис. 2.13 - Форма: redsprav_sotr.scx


Кнопка «Изменить»(click):MESSAGEBOX('Вы действительно хотите изменить запись ??? ',4,'Внимание !!!')=6таблица1=tn

fio1=fio=dol=kold=stz=adr=obr.Text1.Value=tn1.Text2.Value=fio1.Text3.Value=dol1.Text4.Value=kold1.Text5.Value=stz1.Text7.Value=adr1.Text8.Value=obr1thisform

.Text1.readonly=.f.

.Text2.readonly=.f.

.Text3.readonly=.f.

.Text4.readonly=.f.

.Text5.readonly=.f.

.Text7.readonly=.f.

.Text8.readonly=.f.

.refresh.Refresh

Кнопка «Удалить» (click):

IF MESSAGEBOX('Вы хотите удалить запись?',4,'ВНИМАНИЕ !!!')=6

SELECT Таблица1.grid1.RecordSource=.null..grid1.RecordSource='Таблица1'.grid1.column1.Width=100.grid1.column2.Width=300.grid1.column3.Width=100.Grid1.ReadOnly= .T..text1.ReadOnly= .T..text2.ReadOnly= .T..text3.ReadOnly= .T..text4.ReadOnly= .T..text5.ReadOnly= .T..text7.ReadOnly= .T..text8.ReadOnly= .T..Text1.Value=0.Text2.Value=''.Text3.Value=''.Text4.Value=0.Text5.Value=0.Text7.Value=''.Text8.Value=''.Refresh()Таблица1.grid1.ReadOnly= .T..text1.ReadOnly= .T..text2.ReadOnly= .T..text3.ReadOnly= .T..text4.ReadOnly= .T..text5.ReadOnly= .T..text7.ReadOnly= .T..text8.ReadOnly= .T..Text1.Value=0.Text2.Value=''.Text3.Value=''.Text4.Value=0.Text5.Value=0.Text7.Value=''.Text8.Value=''.Refresh()

Кнопка «Отмена» (click):.grid1.ReadOnly= .T..text1.ReadOnly= .T..text2.ReadOnly= .T..text3.ReadOnly= .T..text4.ReadOnly= .T..text5.ReadOnly= .T..text7.ReadOnly= .T..text8.ReadOnly= .T..text9.ReadOnly= .F..text1.Value=0.text2.Value=''.text3.Value=''.text4.Value=0.text5.Value=0.text7.Value=''.text8.Value=''.text9.Value=''

Кнопка «Применить»(click):EMPTY(thisform.Text1.Value)=.t. AND thisform.Text1.ReadOnly= .T.

MESSAGEBOX("Нет объекта для сохранения...Нажмите 'изменить' !!!",0,"ВНИМАНИЕ !!!")MESSAGEBOX("Вы хотите применить изменения ?",4,"Внимание...")=6

SELECT Таблица1tn 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.Valuethisform

.Text1.value=0

.Text2.value=""

.Text3.value=""

.Text4.value=0

.Text5.value=0

.Text7.value=""

.Text8.value=""

.Text1.readonly=.t.

.Text2.readonly=.t.

.Text3.readonly=.t.

.Text4.readonly=.t.

.Text5.readonly=.t.

.Text7.readonly=.t.

.Text8.readonly=.t.

.refreshthisform

.Text1.value=0

.Text2.value=""

.Text3.value=""

.Text4.value=0

.Text5.value=0

.Text7.value=""

.Text8.value=""

.Text1.readonly=.t.

.Text2.readonly=.t.

.Text3.readonly=.t.

.Text4.readonly=.t.

.Text5.readonly=.t.

.Text7.readonly=.t.

.Text8.readonly=.t.

.refresh.Refresh

Кнопка «Выход» (click):

CLOSE TABLES.Release(


Рис. 2.14 - Форма: narad.scx


Формa INIT:

PUBLIC put=SYS(5)+ALLTRIM(SYS(2003))PATH TO &putTALK OFFDATABASE 1table2 EXCLUSIVE.Closable= .F.thisform

.grid1.RecordSource=.null.

.grid1.RecordSource="table2"

.txttn.value=0

.txtcex.value=0

.txtrab.value=""

.txtpr.value=""

.txtraz.value=0

.txtn.value=0

.txtrabo.value=""

.txted.value=""

.txtkol.value=0

.txtdt.value={}

.txttn.readonly=.t.

.txtcex.readonly=.t.

.txtrab.readonly=.t.

.txtpr.readonly=.t.

.txtraz.readonly=.t.

.txtn.readonly=.t.

.txtrabo.readonly=.t.

.txted.readonly=.t.

.txtkol.readonly=.t.

.txtdt.readonly=.t.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.Refresh

Формa KeyPress:nKeyCode, nShiftAltCtrlnKeyCode=27

IF MESSAGEBOX("Вы хотите выйти ?",4,"Внимание")=6

thisform.Release.Refresh

Кнопка «Новая » (click):thisform

.txttn.value=0

.txtcex.value=0

.txtrab.value=""

.txtpr.value=""

.txtraz.value=0

.txtn.value=0

.txtrabo.value=""

.txted.value=""

.txtkol.value=0

.txtdt.value={}

.txttn.readonly=.f.

.txtcex.readonly=.f.

.txtrab.readonly=.f.

.txtpr.readonly=.f.

.txtraz.readonly=.f.

.txtn.readonly=.f.

.txtrabo.readonly=.f.

.txted.readonly=.f.

.txtkol.readonly=.f.

.txtdt.readonly=.f.

.refresh

Кнопка «Сохранить» (click):SAFETY OFFthisform.txtn.ReadOnly= .T.

MESSAGEBOX("Нажмите кнопку 'Новая'...",0,"Внимание !!!")

thisform.RefreshEMPTY(thisform.txtn.Value)=.f. AND EMPTY(thisform.txttn.Value)=.f. AND EMPTY(thisform.txtcex.Value)=.f. AND EMPTY(thisform.txtrab.Value)=.f. AND EMPTY(thisform.txtpr.Value)=.f. AND EMPTY(thisform.txtraz.Value)=.f. AND EMPTY(thisform.txtkol.Value)=.f.AND EMPTY(thisform.txtrabo.Value)=.f.AND EMPTY(thisform.txted.Value)=.f. AND EMPTY(thisform.txtdt.Value)=.f.table2on n TO table2.idxSEEK(thisform.txtn.Value)

IF MESSAGEBOX("Запись существует. Заменить ?",4,"Внимание !!!")=6

REPLACE n WITH thisform.txtn.Value, tn WITH thisform.txttn.Value,;WITH thisform.txtcex.Value, rab WITH thisform.txtrab.Value,;WITH thisform.txtpr.Value, raz WITH thisform.txtraz.Value,;WITH thisform.txtkol.Value, rabo WITH thisform.txtrabo.Value, ed WITH thisform.txted.Value, dt WITH thisform.txtdt.Value.Refreshthisform

.txttn.value=0

.txtcex.value=0

.txtrab.value=""

.txtpr.value=""

.txtraz.value=0

.txtn.value=0

.txtrabo.value=""

.txted.value=""

.txtkol.value=0

.txtdt.value={}

.txttn.readonly=.t.

.txtcex.readonly=.t.

.txtrab.readonly=.t.

.txtpr.readonly=.t.

.txtraz.readonly=.t.

.txtn.readonly=.t.

.txtrabo.readonly=.t.

.txted.readonly=.t.

.txtkol.readonly=.t.

.txtdt.readonly=.t.

.refreshthisform

.txttn.value=0

.txtcex.value=0

.txtrab.value=""

.txtpr.value=""

.txtraz.value=0

.txtn.value=0

.txtrabo.value=""

.txted.value=""

.txtkol.value=0

.txtdt.value={}.Refresh=thisform.txttn.Value=thisform.txtcex.Value=thisform.txtrab.Value=thisform.txtpr.Value=thisform.txtraz.Value=thisform.txtn.Value=thisform.txtrabo.Value=thisform.txted.Value=thisform.txtkol.Value=thisform.txtdt.ValueINTO table2(tn,cex,rab,pr,raz,n,kol,rabo,ed,dt) VALUES (tn1,cex1,rab1,pr1,raz1,n1,kol1,rabo1,ed1,dt1)thisform

.txttn.value=0

.txtcex.value=0

.txtrab.value=""

.txtpr.value=""

.txtraz.value=0

.txtn.value=0

.txtrabo.value=""

.txted.value=""

.txtkol.value=0

.txtdt.value={}

.txttn.readonly=.t.

.txtcex.readonly=.t.

.txtrab.readonly=.t.

.txtpr.readonly=.t.

.txtraz.readonly=.t.

.txtn.readonly=.t.

.txtrabo.readonly=.t.

.txted.readonly=.t.

.txtkol.readonly=.t.

.txtdt.readonly=.t.

.refresh

ELSE("Заполните все поля...",0,"Внимание !!!")

WITH thisform

.txttn.value=0

.txtcex.value=0

.txtrab.value=""

.txtpr.value=""

.txtraz.value=0

.txtn.value=0

.txtrabo.value=""

.txted.value=""

.txtkol.value=0

.txtdt.value={}

.refresh

Кнопка «Отмена» (click):thisform

.txttn.value=0

.txtcex.value=0

.txtrab.value=""

.txtpr.value=""

.txtraz.value=0

.txtn.value=0

.txtdt.value={}

.txtrabo.value=""

.txted.value=""

.txtkol.value=0

.txttn.readonly=.t.

.txtcex.readonly=.t.

.txtrab.readonly=.t.

.txtpr.readonly=.t.

.txtraz.readonly=.t.

.txtn.readonly=.t.

.txtdt.readonly=.t.

.txtrabo.readonly=.t.

.txted.readonly=.t.

.txtkol.readonly=.t.

.refresh

Кнопка «Удалить» (click):

IF MESSAGEBOX("Вы хотите удалить запись ?",4,"Внимание !!!")=6

SELECT table2DELETED()thisform

.grid1.RecordSource=.null.

.grid1.RecordSource="table2"

.txttn.value=0

.txtcex.value=0

.txtrab.value=""

.txtpr.value=""

.txtraz.value=0

.txtn.value=0

.txtdt.value={}

.txtrabo.value=""

.txted.value=""

.txtkol.value=0

.txttn.readonly=.t.

.txtcex.readonly=.t.

.txtrab.readonly=.t.

.txtpr.readonly=.t.

.txtraz.readonly=.t.

.txtn.readonly=.t.

.txtdt.readonly=.t.

.txtrabo.readonly=.t.

.txted.readonly=.t.

.txtkol.readonly=.t.

.refreshthisform.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=100thisform

.grid1.RecordSource=.null.

.grid1.RecordSource="table2"

.txttn.value=0

.txtcex.value=0

.txtrab.value=""

.txtpr.value=""

.txtraz.value=0

.txtn.value=0

.txtdt.value={}

.txtrabo.value=""

.txted.value=""

.txtkol.value=0

.txttn.readonly=.t.

.txtcex.readonly=.t.

.txtrab.readonly=.t.

.txtpr.readonly=.t.

.txtraz.readonly=.t.

.txtn.readonly=.t.

.txtdt.readonly=.t.

.txtrabo.readonly=.t.

.txted.readonly=.t.

.txtkol.readonly=.t.

.refreshthisform.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=100thisform

.txttn.value=0

.txtcex.value=0

.txtrab.value=""

.txtpr.value=""

.txtraz.value=0

.txtn.value=0

.txtdt.value={}

.txtrabo.value=""

.txted.value=""

.txtkol.value=0

.txttn.readonly=.t.

.txtcex.readonly=.t.

.txtrab.readonly=.t.

.txtpr.readonly=.t.

.txtraz.readonly=.t.

.txtn.readonly=.t.

.txtdt.readonly=.t.

.txtrabo.readonly=.t.

.txted.readonly=.t.

.txtkol.readonly=.t.

.refreshthisform.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

Кнопка «Изменить»(click):MESSAGEBOX("Вы хотите изменить запись ?",4,"Внимание...")=6

SELECT table2=tn=cex=rab=pr=raz=n=dt=rabo=ed=kol.txttn.Value=tn1.txtcex.Value=cex1.txtrab.Value=rab1.txtpr.Value=pr1.txtraz.Value=raz1.txtn.Value=n1.txtdt.Value=dt1.txtrabo.Value=rabo1.txted.Value=ed1.txtkol.Value=kol1thisform

.txttn.readonly=.f.

.txtcex.readonly=.f.

.txtrab.readonly=.f.

.txtpr.readonly=.f.

.txtraz.readonly=.f.

.txtn.readonly=.f.

.txtdt.readonly=.f.

.txtrabo.readonly=.f.

.txted.readonly=.f.

.txtkol.readonly=.f.

.refresh.Refresh

Кнопка «Применить»(click):EMPTY(thisform.txtn.Value)=.t. AND thisform.txtn.ReadOnly= .T.

MESSAGEBOX("Нет объекта для сохранения...Нажмите 'изменить' !!!",0,"ВНИМАНИЕ !!!")MESSAGEBOX("Вы хотите применить изменения ?",4,"Внимание...")=6

SELECT table2n WITH thisform.txtn.Value, tn WITH thisform.txttn.Value,;WITH thisform.txtcex.Value, rab WITH thisform.txtrab.Value,;WITH thisform.txtpr.Value, raz WITH thisform.txtraz.Value,;WITH thisform.txtdt.Value, rabo WITH thisform.txtrabo.Value, ed WITH thisform.txted.Value, kol WITH thisform.txtkol.Valuethisform

.txttn.value=0

.txtcex.value=0

.txtrab.value=""

.txtpr.value=""

.txtraz.value=0

.txtn.value=0

.txtdt.value={}

.txtrabo.value=""

.txted.value=""

.txtkol.value=0

.txttn.readonly=.t.

.txtcex.readonly=.t.

.txtrab.readonly=.t.

.txtpr.readonly=.t.

.txtraz.readonly=.t.

.txtn.readonly=.t.

.txtdt.readonly=.t.

.txtrabo.readonly=.t.

.txted.readonly=.t.

.txtkol.readonly=.t.

.refreshthisform

.txttn.value=0

.txtcex.value=0

.txtrab.value=""

.txtpr.value=""

.txtraz.value=0

.txtn.value=0

.txtdt.value={}

.txtrabo.value=""

.txted.value=""

.txtkol.value=0

.txttn.readonly=.t.

.txtcex.readonly=.t.

.txtrab.readonly=.t.

.txtpr.readonly=.t.

.txtraz.readonly=.t.

.txtn.readonly=.t.

.txtdt.readonly=.t.

.txtrabo.readonly=.t.

.txted.readonly=.t.

.txtkol.readonly=.t.

.refresh

Кнопка «Поиск» (click):SAFETY OFFEMPTY(thisform.text1.Value)=.t.

MESSAGEBOX("Введите данные для поиска...",0,"Внимание!")

ELSEINDEXEStable2on n TO table2.idx

*stroka=upper(thisform.text1.Value)=thisform.text1.Valueseek (stroka)("Запись найдена!",0,"Внимание!").text1.Value=0.Refresh("Запись ненайдена!",0,"Внимание!").text1.Value=0.Refresh

Кнопка «Export в HTML» (click):=1251= PUTFILE('Имя файла:', 'report', 'html')= FCREATE(ctxtfile)table2="<html><head><title>Отчёт</title></head><body bgcolor=#bcdbcd><table border=1>" +;

"<tr><td>Наряд №</td><td>Таб.ном.</td><td>Цех</td><td>Сотрудник</td><td>Профессия</td><td>Разряд</td><td>Дата</td><td>Работа</td><td>ед.изм.</td><td>Количество</td></tr>"=coutstring+ "<tr><td>"+STR(n) + "</td><td>"+STR(tn) + "</td><td>"+STR(cex) + "</td><td>"+rab + "</td><td>"+pr + "</td><td>"+STR(raz) + "</td><td>"+DTOC(dt) + "</td><td>"+rabo + "</td><td>"+ed + "</td><td>"+STR(kol) + "</td></tr>"=coutstring+ "</table></body></html>"= FPUTS(htxtfile,coutstring)(htxtfile)=CREATEOBJECT('InternetExplorer.Application').visible=.t..Navigate('&ctxtfile')

Кнопка «Отчет в Excel» (click):w=SYS(5)+ALLTRIM(SYS(2003))PATH TO &wtable2=CREATEOBJECT("Excel.Application").visible=.t..workbooks.add=xls1.Sheets[1]table2.cells(1,1).value='Наряд №'.cells(1,2).value='Таб.ном.'.cells(1,3).value='Цех'.cells(1,4).value='Сотрудник'.cells(1,5).value='Профессия'.cells(1,6).value='Разряд'.cells(1,7).value='Дата'.cells(1,8).value='Работа'.cells(1,9).value='ед.изм.'.cells(1,10).value='Количество'=1=nRov+1.cells(nRov,1).value=table2.n.cells(nRov,2).value=table2.tn.cells(nRov,3).value=table2.cex.cells(nRov,4).value=table2.rab.cells(nRov,5).value=table2.pr.cells(nRov,6).value=table2.raz.cells(nRov,7).value=table2.dt.cells(nRov,8).value=table2.rabo.cells(nRov,9).value=table2.ed.cells(nRov,10).value=table2.kol

Поле Got Focus:thisform.txtTn.ReadOnly=.f.таблица1on tn to tn.idxFOR tn=thisform.txttn.Value=fio=dol=stz.txtrab.Value=a.txtpr.Value=b.txtRaz.Value=c


Рис. 2.15 - Форма: m_list.scx


Формa INIT:

PUBLIC put=SYS(5)+ALLTRIM(SYS(2003))PATH TO &putTALK OFFDATABASE 1table3 EXCLUSIVE.Closable= .F.thisform

.grid1.RecordSource=.null.

.grid1.RecordSource="table3"

.txttn.value=0

.txtn_par.value=0

.txtrabo.value=""

.txtraz.value=0

.txtkol.value=0

.txtdetal.value=""

.txtrab.value=""

.txtvrem.value=0

.txtrac.value=0

.txtdt.value={}

.txtn.value=0

.txttn.readonly=.t.

.txtn_par.readonly=.t.

.txtrabo.readonly=.t.

.txtraz.readonly=.t.

.txtkol.readonly=.t.

.txtdetal.readonly=.t.

.txtrab.readonly=.t.

.txtvrem.readonly=.t.

.txtrac.readonly=.t.

.txtdt.readonly=.t.

.txtn.readonly=.t.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

.coLUMN11.width=100.Refresh

Формa KeyPress:nKeyCode, nShiftAltCtrlnKeyCode=27

IF MESSAGEBOX("Вы хотите выйти ?",4,"Внимание")=6

thisform.Release.Refresh

Кнопка «Новая » (click):thisform

.txttn.value=0

.txtn_par.value=0

.txtrabo.value=""

.txtraz.value=0

.txtkol.value=0

.txtdetal.value=""

.txtrab.value=""

.txtvrem.value=0

.txtrac.value=0

.txtdt.value={}

.txtn.value=0

.txttn.readonly=.f.

.txtn_par.readonly=.f.

.txtrabo.readonly=.f.

.txtraz.readonly=.f.

.txtkol.readonly=.f.

.txtdetal.readonly=.f.

.txtrab.readonly=.f.

.txtvrem.readonly=.f.

.txtrac.readonly=.f.

.txtdt.readonly=.f.

.txtn.readonly=.f.

.refresh

Кнопка «Сохранить» (click):SAFETY OFFthisform.txttn.ReadOnly= .T.

MESSAGEBOX("Нажмите кнопку 'Новая'...",0,"Внимание !!!")

thisform.RefreshEMPTY(thisform.txtn.Value)=.f. AND EMPTY(thisform.txttn.Value)=.f. AND EMPTY(thisform.txtn_par.Value)=.f. AND EMPTY(thisform.txtrabo.Value)=.f. AND EMPTY(thisform.txtraz.Value)=.f. AND EMPTY(thisform.txtkol.Value)=.f. AND EMPTY(thisform.txtdetal.Value)=.f.AND EMPTY(thisform.txtrab.Value)=.f.AND EMPTY(thisform.txtvrem.Value)=.f. AND EMPTY(thisform.txtrac.Value)=.f. AND EMPTY(thisform.txtdt.Value)=.f.table3on tn TO table3.idxSEEK(thisform.txttn.Value)

IF MESSAGEBOX("Запись существует. Заменить ?",4,"Внимание !!!")=6

REPLACE n WITH thisform.txtn.Value, tn WITH thisform.txttn.Value,;WITH thisform.txtrabo.Value, raz WITH thisform.txtraz.Value,;WITH thisform.txtkol.Value, detal WITH thisform.txtdetal.Value,;WITH thisform.txtrab.Value, vrem WITH thisform.txtvrem.Value, rac WITH thisform.txtrac.Value, dt WITH thisform.txtdt.Value, n_par WITH thisform.txtn_par.Value.Refreshthisform

.txttn.value=0

.txtn_par.value=0

.txtrabo.value=""

.txtraz.value=0

.txtkol.value=0

.txtdetal.value=""

.txtrab.value=""

.txtvrem.value=0

.txtrac.value=0

.txtdt.value={}

.txtn.value=0

.txttn.readonly=.t.

.txtn_par.readonly=.t.

.txtrabo.readonly=.t.

.txtraz.readonly=.t.

.txtkol.readonly=.t.

.txtdetal.readonly=.t.

.txtrab.readonly=.t.

.txtvrem.readonly=.t.

.txtrac.readonly=.t.

.txtdt.readonly=.t.

.txtn.readonly=.t.

.refreshthisform

.txttn.value=0

.txtn_par.value=0

.txtrabo.value=""

.txtraz.value=0

.txtkol.value=0

.txtdetal.value=""

.txtrab.value=""

.txtvrem.value=0

.txtrac.value=0

.txtdt.value={}

.txtn.value=0.Refresh=thisform.txttn.Value_par1=thisform.txtn_par.Value=thisform.txtrab.Value=thisform.txtdetal.Value=thisform.txtraz.Value=thisform.txtn.Value=thisform.txtrabo.Value=thisform.txtrac.Value=thisform.txtkol.Value=thisform.txtdt.Value=thisform.txtvrem.ValueINTO table3(tn,n_par,rab,detal,raz,n,rabo,rac,kol,dt,vrem) VALUES (tn1,n_par1,rab1,detal1,raz1,n1,rabo1,rac1,kol1,dt1,vrem1)thisform

.txttn.value=0

.txtn_par.value=0

.txtrabo.value=""

.txtraz.value=0

.txtkol.value=0

.txtdetal.value=""

.txtrab.value=""

.txtvrem.value=0

.txtrac.value=0

.txtdt.value={}

.txtn.value=0

.txttn.readonly=.t.

.txtn_par.readonly=.t.

.txtrabo.readonly=.t.

.txtraz.readonly=.t.

.txtkol.readonly=.t.

.txtdetal.readonly=.t.

.txtrab.readonly=.t.

.txtvrem.readonly=.t.

.txtrac.readonly=.t.

.txtdt.readonly=.t.

.txtn.readonly=.t.

.refresh

ELSE("Заполните все поля...",0,"Внимание !!!")

WITH thisform

.txttn.value=0

.txtn_par.value=0

.txtrabo.value=""

.txtraz.value=0

.txtkol.value=0

.txtdetal.value=""

.txtrab.value=""

.txtvrem.value=0

.txtrac.value=0

.txtdt.value={}

.txtn.value=0

.refresh

Кнопка «Отмена» (click):thisform

.txttn.value=0

.txtn_par.value=0

.txtrabo.value=""

.txtraz.value=0

.txtkol.value=0

.txtdetal.value=""

.txtrab.value=""

.txtvrem.value=0

.txtrac.value=0

.txtdt.value={}

.txtn.value=0

.txttn.readonly=.t.

.txtn_par.readonly=.t.

.txtrabo.readonly=.t.

.txtraz.readonly=.t.

.txtkol.readonly=.t.

.txtdetal.readonly=.t.

.txtrab.readonly=.t.

.txtvrem.readonly=.t.

.txtrac.readonly=.t.

.txtdt.readonly=.t.

.txtn.readonly=.t.

.refresh

Кнопка «Удалить» (click):

IF MESSAGEBOX("Вы хотите удалить запись ?",4,"Внимание !!!")=6

SELECT table3DELETED()thisform

.grid1.RecordSource=.null.

.grid1.RecordSource="table3"

.txttn.value=0

.txtn_par.value=0

.txtrabo.value=""

.txtraz.value=0

.txtkol.value=0

.txtdetal.value=""

.txtrab.value=""

.txtvrem.value=0

.txtrac.value=0

.txtdt.value={}

.txtn.value=0

.txttn.readonly=.t.

.txtn_par.readonly=.t.

.txtrabo.readonly=.t.

.txtraz.readonly=.t.

.txtkol.readonly=.t.

.txtdetal.readonly=.t.

.txtrab.readonly=.t.

.txtvrem.readonly=.t.

.txtrac.readonly=.t.

.txtdt.readonly=.t.

.txtn.readonly=.t.

.refreshthisform.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

.coLUMN11.width=100thisform

.grid1.RecordSource=.null.

.grid1.RecordSource="table3"

.txttn.value=0

.txtn_par.value=0

.txtrabo.value=""

.txtraz.value=0

.txtkol.value=0

.txtdetal.value=""

.txtrab.value=""

.txtvrem.value=0

.txtrac.value=0

.txtdt.value={}

.txtn.value=0

.txttn.readonly=.t.

.txtn_par.readonly=.t.

.txtrabo.readonly=.t.

.txtraz.readonly=.t.

.txtkol.readonly=.t.

.txtdetal.readonly=.t.

.txtrab.readonly=.t.

.txtvrem.readonly=.t.

.txtrac.readonly=.t.

.txtdt.readonly=.t.

.txtn.readonly=.t.

.refreshthisform.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

.coLUMN11.width=100thisform

.txttn.value=0

.txtn_par.value=0

.txtrabo.value=""

.txtraz.value=0

.txtkol.value=0

.txtdetal.value=""

.txtrab.value=""

.txtvrem.value=0

.txtrac.value=0

.txtdt.value={}

.txtn.value=0

.txttn.readonly=.t.

.txtn_par.readonly=.t.

.txtrabo.readonly=.t.

.txtraz.readonly=.t.

.txtkol.readonly=.t.

.txtdetal.readonly=.t.

.txtrab.readonly=.t.

.txtvrem.readonly=.t.

.txtrac.readonly=.t.

.txtdt.readonly=.t.

.txtn.readonly=.t.

.refreshthisform.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

.coLUMN11.width=100

Кнопка «Изменить»(click):MESSAGEBOX("Вы хотите изменить запись ?",4,"Внимание...")=6

SELECT table3=tn_par1=n_par=rab=detal=raz=tn=rabo=rac=kol=dt=vrem.txttn.Value=tn1.txtn_par.Value=n_par1.txtrab.Value=rab1.txtdetal.Value=detal1.txtraz.Value=raz1.txtn.Value=n1.txtrabo.Value=rabo1.txtrac.Value=rac1.txtkol.Value=kol1.txtdt.Value=dt1.txtvrem.Value=vrem1thisform

.txttn.readonly=.f.

.txtn_par.readonly=.f.

.txtrabo.readonly=.f.

.txtraz.readonly=.f.

.txtkol.readonly=.f.

.txtdetal.readonly=.f.

.txtrab.readonly=.f.

.txtvrem.readonly=.f.

.txtrac.readonly=.f.

.txtdt.readonly=.f.

.txtn.readonly=.f.

.refresh.Refresh

Кнопка «Применить»(click):EMPTY(thisform.txtn.Value)=.t. AND thisform.txtn.ReadOnly= .T.

MESSAGEBOX("Нет объекта для сохранения...Нажмите 'изменить' !!!",0,"ВНИМАНИЕ !!!")MESSAGEBOX("Вы хотите применить изменения ?",4,"Внимание...")=6

SELECT table3n WITH thisform.txtn.Value, tn WITH thisform.txttn.Value,;WITH thisform.txtrabo.Value, raz WITH thisform.txtraz.Value,;WITH thisform.txtkol.Value, detal WITH thisform.txtdetal.Value,;WITH thisform.txtrab.Value, vrem WITH thisform.txtvrem.Value, rac WITH thisform.txtrac.Value, dt WITH thisform.txtdt.Value, n_par WITH thisform.txtn_par.Valuethisform

.txttn.value=0

.txtn_par.value=0

.txtrabo.value=""

.txtraz.value=0

.txtkol.value=0

.txtdetal.value=""

.txtrab.value=""

.txtvrem.value=0

.txtrac.value=0

.txtdt.value={}

.txtn.value=0

.txttn.readonly=.t.

.txtn_par.readonly=.t.

.txtrabo.readonly=.t.

.txtraz.readonly=.t.

.txtkol.readonly=.t.

.txtdetal.readonly=.t.

.txtrab.readonly=.t.

.txtvrem.readonly=.t.

.txtrac.readonly=.t.

.txtdt.readonly=.t.

.txtn.readonly=.t.

.refreshthisform

.txttn.value=0

.txtn_par.value=0

.txtrabo.value=""

.txtraz.value=0

.txtkol.value=0

.txtdetal.value=""

.txtrab.value=""

.txtvrem.value=0

.txtrac.value=0

.txtdt.value={}

.txtn.value=0

.txttn.readonly=.t.

.txtn_par.readonly=.t.

.txtrabo.readonly=.t.

.txtraz.readonly=.t.

.txtkol.readonly=.t.

.txtdetal.readonly=.t.

.txtrab.readonly=.t.

.txtvrem.readonly=.t.

.txtrac.readonly=.t.

.txtdt.readonly=.t.

.txtn.readonly=.t.

.refresh

ENDIF

Кнопка «Выход» (click):MESSAGEBOX("Вы хотите выйти ?",4,"Внимание")=6

thisform.Release.Refresh

Кнопка «Поиск » (click):SAFETY OFFEMPTY(thisform.text1.Value)=.t.

MESSAGEBOX("Введите данные для поиска...",0,"Внимание!")

ELSEINDEXEStable3on n TO table3.idx

*stroka=upper(thisform.text1.Value)=thisform.text1.Valueseek (stroka)("Запись найдена!",0,"Внимание!").text1.Value=0.Refresh("Запись ненайдена!",0,"Внимание!").text1.Value=0.Refresh

Кнопка «Export в HTML» (click):=1251= PUTFILE('Имя файла:', 'report', 'html')= FCREATE(ctxtfile)table3="<html><head><title>Отчёт</title></head><body bgcolor=#bcdbcd><table border=1>" +;

"<tr><td>Маршрутный лист №</td><td>Таб.ном.</td><td>Ном.партии</td><td>Процесс</td><td>Разряд</td><td>Количество</td><td>Деталь</td><td>Рабочий</td><td>Время</td><td>Расценка</td><td>Дата</td></tr>"=coutstring+ "<tr><td>"+STR(n) + "</td><td>"+STR(tn) + "</td><td>"+STR(n_par) + "</td><td>"+rabo + "</td><td>"+STR(raz) + "</td><td>"+STR(kol) + "</td><td>"+detal + "</td><td>"+rab + "</td><td>"+STR(vrem) + "</td><td>"+STR(rac)+ "</td><td>"+dtoc(dt) + "</td></tr>"=coutstring+ "</table></body></html>"= FPUTS(htxtfile,coutstring)(htxtfile)=CREATEOBJECT('InternetExplorer.Application').visible=.t..Navigate('&ctxtfile')

Кнопка «Отчет в Excel» (click):w=SYS(5)+ALLTRIM(SYS(2003))PATH TO &wtable3=CREATEOBJECT("Excel.Application").visible=.t..workbooks.add=xls1.Sheets[1]table3.cells(1,1).value='Маршрутный лист №'.cells(1,2).value='Таб.ном.'.cells(1,3).value='Номер партии'.cells(1,4).value='Процесс'.cells(1,5).value='Разряд'.cells(1,6).value='Количество'.cells(1,7).value='Деталь'.cells(1,8).value='Рабочий'.cells(1,9).value='Время'.cells(1,10).value='Расценка'.cells(1,11).value='Дата'=1=nRov+1.cells(nRov,1).value=table3.n.cells(nRov,2).value=table3.tn.cells(nRov,3).value=table3.n_par.cells(nRov,4).value=table3.rabo.cells(nRov,5).value=table3.raz.cells(nRov,6).value=table3.kol.cells(nRov,7).value=table3.detal.cells(nRov,8).value=table3.rab.cells(nRov,9).value=table3.vrem.cells(nRov,10).value=table3.rac.cells(nRov,11).value=table3.dt

Поле Got Focus:thisform.txttn.ReadOnly=.f.таблица1on tn to tn.idxFOR tn=thisform.txttn.Value=fio=stz.txtRab.Value=a.txtRaz.Value=b


Рис. 2.16 - Форма: otchet.scx


Поле Text2:

m2=''=0=MONTH(thisform.Text1.Value)m1<=12

*****m1=1='ЯНВАРЬ'm1=2='ФЕВРАЛЬ'm1=3='МАРТ'm1=4='АПРЕЛЬ'm1=5='МАЙ'm1=6='ИЮНЬ'm1=7='ИЮЛЬ'm1=8='АВГУСТ'm1=9='СЕНТЯБРЬ'm1=10='ОКТЯБРЬ'm1=11='НОЯБРЬ'm1=12='ДЕКАБРЬ'.Refresh()

****('Такого Месяца НЕТ !!!',0,'ВНИМАНИЕ!!!')=''.Refresh()


2.2.4 Программы формирования выходных документов

Рапорт о выработкеBELL OFFTALK OFFSAFETY OFFDATE GERMANtable3.dbfON n TO n1.idx=1251= PUTFILE('Имя файла:', 'Рапорт о выработке', 'html')= FCREATE(ctxtfile)="<html><head><title>Рапорт о выработке </title></head><body bgcolor=#bcdbcd><table border=1>" +;

"<CAPTION>Рапорт о выработке</CAPTION>" +;

"<tr><td>Маршрутный лист №</td><td>Таб.№</td><td>Рабочий</td><td>Разряд</td><td>Партия №</td><td>Деталь</td><td>Процесс</td><td>Количество</td><td>Дата</td><td>Время</td><td>з\п. начисленная</td></tr>"

GO TOP=0WHILE ! EOF()=0=nWHILE (n1=n)=0=raz*kol=coutstring+ "<tr><td align=center>"+STR(n,3) + "</td><td align=center>" + STR(tn,4) + "</td><td align=center>"+ rab + "</td><td align=center>"+ STR(raz,4) + "</td><td align=center>"+ STR(n_par,4) +"</td><td align=center>"+detal+"</td><td align=center>"+rabo+"</td><td align=center>"+STR(kol,4)+"</td><td align=center>"+DTOC(dt)+"</td><td align=center>"+STR(vrem,4)+"</td><td align=center>"+STR(a,11,2) +"</td></tr align=center>"=suma+a=coutstring+"<tr><td>Итого по Маршрутному листу: </td> </td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td align=center>" + str(suma,14,2) + "</td>"=sumv+sumaTABLES=coutstring+"<tr><td>Всего з\п: </td> </td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td align=center>" + str(sumv,14,2) + "</td>"=coutstring+ "</table></body></html>"= FPUTS(htxtfile,coutstring)(htxtfile)=CREATEOBJECT('InternetExplorer.Application').visible=.t.

browser.Navigate('&ctxtfile')


Рис. 2.17 - Ведомость начисления зарплаты работникам по нарядам


CLEARBELL OFFTALK OFFSAFETY OFFDATE GERMANtable2.dbfON n TO n1.idx

codepage=1251= PUTFILE('Имя файла:', 'Ведомость начисления з.п работникам по нарядам', 'html')

htxtfile = FCREATE(ctxtfile)="<html><head><title>Ведомость начисления з\п </title></head><body bgcolor=#bcdbcd><table border=1>" +;

"<CAPTION>Ведомость начисления зарплаты работникам по нарядам</CAPTION>" +;

"<tr><td>Наряд №</td><td>Таб. №</td><td>Рабочий</td><td>Профессия</td><td>Цех</td><td>Работа</td><td>Разряд</td><td>ед.изм.</td><td>Количество</td><td>Дата</td><td>з\п. начисленная</td></tr>"

GO TOP=0WHILE ! EOF()=0=nWHILE (n1=n)=0=raz*kol=coutstring+ "<tr><td align=center>"+STR(n,3) + "</td><td align=center>" + STR(tn,4) + "</td><td align=CENTER>"+ rab + "</td><td align=center>"+ pr + "</td><td align=center>"+ STR(cex,1) +"</td><td align=center>"+rabo+"</td><td align=center>"+STR(raz,5)+"</td><td align=center>"+ed+"</td><td align=center>"+STR(kol,6)+"</td><td align=center>"+DTOC(dt)+"</td><td align=center>"+STR(a,11,2) +"</td></tr align=center>"=suma+a=sumv+sumaTABLES=coutstring+"<tr><td>Итого:</td> </td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td align=center>" + str(sumv,14,2) + "</td>"=coutstring+ "</table></body></html>"= FPUTS(htxtfile,coutstring)(htxtfile)=CREATEOBJECT('InternetExplorer.Application').visible=.t.

browser.Navigate('&ctxtfile')


Рис. 2.18 - Расчетно-платежная ведомость

BELL OFF

SET TALK OFFSAFETY OFFDATE GERMANatable3.dbfON tn TO table3.idxbтаблица1.dbfON tn TO таблица1.idxctable2.dbfON tn TO table2.idxaRELATION TO tn INTO bcRELATION TO tn INTO b=1251= PUTFILE('Имя файла:', 'РАСЧЕТНО-ПЛАТЕЖНАЯ ВЕДОМОСТЬ ', 'html')= FCREATE(ctxtfile)a="<html><head><title>РАСЧЕТНО-ПЛАТЕЖНАЯ ВЕДОМОСТЬ</title></head><body bgcolor=#bcdbcd><table border=1>" +;

"<CAPTION>РАСЧЕТНО-ПЛАТЕЖНАЯ ВЕДОМОСТЬ</CAPTION>" +;

"<tr><td>таб.ном.</td><td>Должность</td><td>ФИО</td><td>Разряд</td><td>Количество</td><td>Начислено</td><td>Сумма к выдаче</td><td>Дата</td><td>НДФЛ</td><td>Подпись</td></tr>"

vsego=0=0=0WHILE ! EOF()=tn=0WHILE (tn1=tn)=a.raz*a.kol=(Vsego-400-(b.kold*600))*0.13=vsego-NDFL=coutstring+ "<tr><td align=center>"+STR(a.tn,4) + "</td><td align=center>" + b.dol + "</td><td>"+ a.rab +"</td><td>"+STR(a.raz) + "</td><td>"+ STR(a.kol,8) +"</td><td>"+STR(vsego,10,2)+"</td><td>"+STR(sumw,10,2)+"</td><td>"+DTOC(a.dt)+"</td><td>"+STR(ndfl,8,2) +"</td><td></td></tr>"=v+sumwc=0=0WHILE ! EOF()=tn=0WHILE (tn1=tn)=c.raz*c.kol=(Vsego-400-(b.kold*600))*0.13=vsego-NDFL=coutstring+ "<tr><td align=center>"+STR(c.tn,4) + "</td><td align=center>" + b.dol + "</td><td>"+ c.rab +"</td><td>"+STR(c.raz) + "</td><td>"+ STR(c.kol,8) +"</td><td>"+STR(vsego,10,2)+"</td><td>"+STR(sumw,10,2)+"</td><td>"+DTOC(c.dt)+"</td><td>"+STR(ndfl,8,2) +"</td><td></td></tr>"=v+sumwTABLES=coutstring+"<tr><td>Итого:</td> </td><td></td><td></td><td></td><td></td><td></td><td>" + str(v,14,2) + "</td>"=coutstring+ "</table></body></html>"= FPUTS(htxtfile,coutstring)(htxtfile)=CREATEOBJECT('InternetExplorer.Application').visible=.t..Navigate('&ctxtfile')


Рис. 2.19 - Расчетная ведомость


2.2.5 Реализация сервисных функций

Сохранение баз:

Sochranenie.scx

Формa INIT:

CLOSE DATABASESTABLESthisform

.text1.readonly=.t..Refresh

Формa KeyPress:nKeyCode, nShiftAltCtrlnKeyCode=27

IF MESSAGEBOX("Вы хотите выйти ?",4,"Внимание")=6

thisform.Release.Refresh

Кнопка «Сохранить» (click):strcop,OUT,IN1EMPTY(thisform.text1.Value)=.t.

MESSAGEBOX("Путь не указан копирование не возможно, нажмите кнопку '...'!!!",0,"Внимание !!!")

thisform.Refresh=""=""=""=ALLTRIM(thisform.text1.value)=SYS(5) + ALLTRIM(sys(2003)) + "="COPY FILE " + out + "table1.DBF TO " + in1 + "table1.dbf"

&strcop="COPY FILE " + out + "table2.DBF TO " + in1 + "table2.dbf"

&strcop="COPY FILE " + out + "table3.DBF TO " + in1 + "table3.dbf"

&strcop="COPY FILE " + out + "таблица1.DBF TO " + in1 + "таблица1.dbf"

&strcop("Операция прошла успешно!!!",0,"Внимание !!!")

Кнопка «Выход» (click):MESSAGEBOX("Вы хотите выйти ?",4,"Внимание")=6

thisform.Release.Refresh

Кнопка «выбора» (click):=0=0=PUTFILE('Имя файла:','copy','log')

pozic=RAT(",b)=SUBSTR(b,1,pozic)thisform

.text1.Value=ALLTRIM(a)

.refresh


Рис. 2.20 - Сохранение баз

.scx

Кнопка «очистка» (click):MESSAGEBOX('Вы хотите очистить основные базы ?',4,'ВНИМАНИЕ !!!')=6

CLOSE ALLTABLES1table12table23table34Таблица1.Refresh().Refresh()

Кнопка «Выход» (click):

IF MESSAGEBOX("Вы хотите выйти ?",4,"Внимание")=6

thisform.Release.Refresh


Рис. 2.21 - Очистка баз


Vostanovlenie.scx

Формa INIT:

CLOSE DATABASESTABLESthisform

.text1.readonly=.t..Refresh

Формa KeyPress:nKeyCode, nShiftAltCtrlnKeyCode=27

IF MESSAGEBOX("Вы хотите выйти ?",4,"Внимание")=6

thisform.Release.Refresh

Кнопка «Восстановить» (click):strcop,OUT,IN1EMPTY(thisform.text1.Value)=.t.

MESSAGEBOX("Путь не указан копирование не возможно, нажмите кнопку '...'!!!",0,"Внимание !!!")

thisform.Refresh=""=""=""=ALLTRIM(thisform.text1.value)=SYS(5) + ALLTRIM(sys(2003)) + "="COPY FILE " + in1 + "table1.DBF TO " + out + "table1.dbf"

&strcop="COPY FILE " + in1 + "table2.DBF TO " + out + "table2.dbf"

&strcop="COPY FILE " + in1 + "table3.DBF TO " + out + "table3.dbf"

&strcop="COPY FILE " + in1 + "таблица1.DBF TO " + out + "таблица1.DBF"

&strcop("Операция прошла успешно!!!",0,"Внимание !!!")

Кнопка «Выход» (click):MESSAGEBOX("Вы хотите выйти ?",4,"Внимание")=6

thisform.Release.Refresh

Кнопка «выбора» (click):=0=0("Выберите папку где хранятся ваши базы!",0,"Внимание!")=PUTFILE('Имя файла:','copy','log')

pozic=RAT(",b)=SUBSTR(b,1,pozic)thisform

.text1.Value=ALLTRIM(a)

.refresh


Рис. 2.22 - Восстановление


Создание справочной системы

Данная программа предназначена для сбора и начисления сдельной заработной платы на предприятии. Главная цель данной программы является начисление сдельной заработной платы сотрудникам за количесво сделанных изделий. Пункт меню "ВВОД ДАННЫХ" предназначен для заполнения баз. Пункт меню "СПРАВОЧНИКИ" предназначен для заполнения постоянных сведений на предприятии. Пункт меню "ПРОСМОТР" предназначен для просмотра таблиц. Пункт меню "ОТЧЕТЫ" предназначен для вывода на печать сведений о предприятии и сотрудниках работающих на данном предприятии. Пункт меню "ДОКУМЕНТЫ" предназначен для просмотра расчетов начисления заработной платы сотрудникам и выдачи её с применением расчетно - платёжной ведомости. Пункт меню "СЕРВИС" предназначен для управления данными, получения справочной информации о сотрудниках и различных операций с данными. Пункт меню "ВЫХОД" предназначен для выхода из программы. Пункт меню "СПРАВКА" предназначен для получения справочной информации о работе с программой. Для работы с программой необходимо следовать сообщениям и перемещаться по программе используя клавиши TAB, ENTER, и с помощью мыши.


Рис. 2.23 - Справка


Заключение


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

В данном дипломном проекте было создано предприятие, на котором велся бухгалтерский учет. Как ведется бухгалтерский учет на предприятии по начислению индивидуально-сдельной заработной платы, было описано в первой главе.

В первой части работы рассмотрены теоретические аспекты учета начисления сдельной заработной платы на предприятии.

В практической части создавалась БД, в которой производились расчеты по начислению сдельной заработной платы. На основании первичных документов была получена Расчетно-платежная ведомость.

Учет труда и заработной платы должен обеспечить оперативный контроль за количеством и качеством труда, за использованием средств, включаемых в фонд заработной платы и выплаты социального характера.

Исходя из всего выше описанного, можно сказать, что без начисления заработной платы предприятие не смогло бы стабильно функционировать и осуществлять свою деятельность.

Учет труда и заработной платы по праву занимает одно из центральных мест во всей системе учета на предприятии.


Список используемой литературы


1.Бухгалтерский учет (налоговый, финансовый, управленческий) на современном предприятии. И. Е. Глушков, Москва, 2012г. 120с.

.Бухгалтерский учет. Богаченко В. М., Кириллова Н. А., Москва, 2010г. 117 с.

.«Бухгалтерский учет». Кондраков Н.П Учебное пособие,2 издание. «Инфра - М». Москва.2012г.- 312 с.

.Баженова И.Ю. Visual FoxPro 6.0. - M.: Диалог-МИФИ, 2009. - 416 с.

.Вендров А.М. CASE-технологии. Современные методы и средства проектирования информационных систем. - М.: Финансы и статистика,2010. - 176 с.

.Гаврилова Т.А., Хорошевский В.Ф. Базы знаний интеллектуальных систем: Учебник. - СПб.: Питер,. 2009. - 384 с.

.Диго С.М. Проектирование баз данных. - М.: Финансы и статистика, 2011. - 216 с.

.Информационные системы общего назначения (Аналитический обзор систем управления базами данных): Пер. с англ. - М.:. Статистика, 2013. - 472 с.

. Калянов Г.Н. CASE структурный системный анализ (автоматизация и применение). - М.: Лори, 2009.

.Каратыгин С.А., Тихонов А.Ф., Тихонов Л.Н. Visual FoxPro 6. - М.: ЗАО «Изд-во «Бином», 2012. - 784 с.

.Карпова Т. Базы данных. Модели, разработка, реализация. - СПб.: Питер, 2001. - 304 с.

.Когаловский М.Р. Технология баз данных на персональных ЭВМ. - М.: Финансы и статистика, 2013. - 224 с.

.Конноли Т., Бэгг К., Страчан А. Базы данных: проектирование, реализация и сопровождение. Теория и практика. 2-е изд.: Пер. с англ. - М.: Издательский дом «Вильямс», 2010. - 1120 с.

.Корнеев В.В., Гариев А.Ф., Васютин С.В., Райх В.В. Базы данных. Интеллектуальная обработка информации. - М.: Нолидж, 2010.- 352 с.

.Майерс Г. Архитектура современных ЭВМ. Т.2. М.: Мир, 1985.

.Попов А.А. Создание приложений для FoxPro 2.5/2.6 в DOS и WINDOWS. - М.: Издательство «ДЕСС», 2009. - 672 с.

.Саймон А.Р. Стратегические технологии баз данных: менеджмент на 2011 год: Пер. с англ. / Под ред. и с предисл. М.Р. Когаловского. - М.: Финансы и статистика, 2011. - 479 с.

.Ульман Дж. Основы систем баз данных: Пер. с англ. / Под ред. М.Р. Когаловского. - М.: Финансы и статистика, 2012. - 334 с.

19.Rentsch Т. Object-Oriented Programming. SIGPLAN Notices. Vol. 17(12). September 2012. P. 51.

20.<http://ru.wikipedia.org/wiki/FoxPro>

.http://cusoft.ru/foxpro.php



Введение В условиях перехода к системе рыночного хозяйствования в соответствии с изменениями в экономическом и социальном развитии страны существенно мен

Больше работ по теме:

КОНТАКТНЫЙ EMAIL: [email protected]

Скачать реферат © 2017 | Пользовательское соглашение

Скачать      Реферат

ПРОФЕССИОНАЛЬНАЯ ПОМОЩЬ СТУДЕНТАМ