Выполнение заказов на фрилансе
1526 открытых заказов
Закажите услуги фрилансеров для вашего проекта прямо сейчас!
Размещение заказа на фриланс бирже бесплатно, а предложения поступят уже через несколько минут.
Требуется конвертация скрипта на php в скрипт на c/c++ (tclsh?). Должен работать на всех *nux платформах. Обязательно подробное документирование.
Скрипт: ... Читать дальше
Скрипт: ... Читать дальше
Требуется конвертация скрипта на php в скрипт на c/c++ (tclsh?). Должен работать на всех *nux платформах. Обязательно подробное документирование.
Скрипт: публикация новостей/показ новостей. Возможна загрузка файлов/картинок. Авторесайз картинок по параметрам. Админка. Лента новостей простейшая. Данные хранятся в базе. Файлы/картинки - на диске.
Возможен вариант не конвертации, а изготовления скрипта с нуля если это существенно проще.
Возможно использование gnu/gpl скрипта и доработка его до нужной кондиции. Оплата только по завершении и сатисфакции. Свернуть
Скрипт: публикация новостей/показ новостей. Возможна загрузка файлов/картинок. Авторесайз картинок по параметрам. Админка. Лента новостей простейшая. Данные хранятся в базе. Файлы/картинки - на диске.
Возможен вариант не конвертации, а изготовления скрипта с нуля если это существенно проще.
Возможно использование gnu/gpl скрипта и доработка его до нужной кондиции. Оплата только по завершении и сатисфакции. Свернуть
$50
6 заявок
Закрыт
Создание двух Flash баннеров для mobofon.ru
размеры 468*60
размер не более 15 кб
размеры 468*60
размер не более 15 кб
$15
9 заявок
Закрыт
Нужен модуль литературного салона.
Необходимы возможности вывода статистики по:
авторам, названию произведений, жанру, уровню автора, дате публикации, рецензиям, оценке читателей, ... Читать дальше
Необходимы возможности вывода статистики по:
авторам, названию произведений, жанру, уровню автора, дате публикации, рецензиям, оценке читателей, ... Читать дальше
Нужен модуль литературного салона.
Необходимы возможности вывода статистики по:
авторам, названию произведений, жанру, уровню автора, дате публикации, рецензиям, оценке читателей, количеству читателей, оценке компетентного жюри, статусу о прочтении. Необходимы возможности изменения логина на выбранный автором псевдоним, фиксации имен читателей, написанных ими рецензий и выставленных оценок на произведения. Основная особенность модуля - наличии внутренней валюты (баллов или кредитов), кредиты должны начисляться читателям за прочтение (на прочтение должно отводиться минимальное время в зависимости от объема произведения) произведений и написание рецензий (рецензии также должны содержать минимальную длину), в свою очередь с автора должны взиматься кредиты за публикацию произведения, рекламу произведения (администратор должен иметь возможность определения количества кредитов начисляемых и взимаемых автоматически за описанные выше действия). Также должна присутствовать возможность передачи кредитов, модераторы (члены компетентного жюри) должны автоматически получать кредиты за определенный промежуток времени. Также необходима возможность объявления проводимых конкурсов (для членов компетентного жюри и авторов имеющих право на это (получает с определенным администратором уровнем, уровень автора определяется полученными им оценками, количеством рецензий и произведений)). Естественно очень важна безопасность, все IP должны сохраняться, все действия модераторов тоже, все переводы кредитов также должны сохраняться и само собой должна иметься защита от взлома включающая блокировку. Свернуть
Необходимы возможности вывода статистики по:
авторам, названию произведений, жанру, уровню автора, дате публикации, рецензиям, оценке читателей, количеству читателей, оценке компетентного жюри, статусу о прочтении. Необходимы возможности изменения логина на выбранный автором псевдоним, фиксации имен читателей, написанных ими рецензий и выставленных оценок на произведения. Основная особенность модуля - наличии внутренней валюты (баллов или кредитов), кредиты должны начисляться читателям за прочтение (на прочтение должно отводиться минимальное время в зависимости от объема произведения) произведений и написание рецензий (рецензии также должны содержать минимальную длину), в свою очередь с автора должны взиматься кредиты за публикацию произведения, рекламу произведения (администратор должен иметь возможность определения количества кредитов начисляемых и взимаемых автоматически за описанные выше действия). Также должна присутствовать возможность передачи кредитов, модераторы (члены компетентного жюри) должны автоматически получать кредиты за определенный промежуток времени. Также необходима возможность объявления проводимых конкурсов (для членов компетентного жюри и авторов имеющих право на это (получает с определенным администратором уровнем, уровень автора определяется полученными им оценками, количеством рецензий и произведений)). Естественно очень важна безопасность, все IP должны сохраняться, все действия модераторов тоже, все переводы кредитов также должны сохраняться и само собой должна иметься защита от взлома включающая блокировку. Свернуть
$30
1 заявка
Закрыт
куплю готовый коммерческий интернет ресурс
заинтерисован в готовом игровом сайте - казино
не партнерского происхождения
(ставляйте какие небудь данные в ... Читать дальше
заинтерисован в готовом игровом сайте - казино
не партнерского происхождения
(ставляйте какие небудь данные в ... Читать дальше
куплю готовый коммерческий интернет ресурс
заинтерисован в готовом игровом сайте - казино
не партнерского происхождения
(ставляйте какие небудь данные в вашем партфолио чтоб можно было вас найти) Свернуть
заинтерисован в готовом игровом сайте - казино
не партнерского происхождения
(ставляйте какие небудь данные в вашем партфолио чтоб можно было вас найти) Свернуть
$500
3 заявки
Закрыт
Нужен проигрыватель файлов звуковых (midi,mp3,wav) и видео (avi,mpeg) который будет иметь вид всплывающего окошка и использовать файлы которые есть на ... Читать дальше
Нужен проигрыватель файлов звуковых (midi,mp3,wav) и видео (avi,mpeg) который будет иметь вид всплывающего окошка и использовать файлы которые есть на сервере. Вообщем наподобии
Windows Media Player. Свернуть
Windows Media Player. Свернуть
указан исполнитель
Закрыт
Необходимо разработать скрипт обработки данных формы.
Обработка будет происходить в несколько шагов.
1. Выбор услуги из имеющейся БД.
2. Определение ... Читать дальше
Обработка будет происходить в несколько шагов.
1. Выбор услуги из имеющейся БД.
2. Определение ... Читать дальше
Необходимо разработать скрипт обработки данных формы.
Обработка будет происходить в несколько шагов.
1. Выбор услуги из имеющейся БД.
2. Определение количества продукции и, как следствие, цены.
3. Последний шаг вывод данных формы как счет на оплату услуг(-и)
При выводе данных используется БД MySQL.
Скрипт написан наполовину (на php), нужно дописать.
Сложность в том, что работу нужно выполнить ОЧЕНЬ оперативно.
Для знающих работа на полдня.
Важно для решения возникающих вопросов иметь аську, а лучше телефон! Свернуть
Обработка будет происходить в несколько шагов.
1. Выбор услуги из имеющейся БД.
2. Определение количества продукции и, как следствие, цены.
3. Последний шаг вывод данных формы как счет на оплату услуг(-и)
При выводе данных используется БД MySQL.
Скрипт написан наполовину (на php), нужно дописать.
Сложность в том, что работу нужно выполнить ОЧЕНЬ оперативно.
Для знающих работа на полдня.
Важно для решения возникающих вопросов иметь аську, а лучше телефон! Свернуть
$70
12 заявок
Закрыт
Быстрорастущая фирма по обработке электронной почты приглашает новых сотрудников. Возможность работать дома на своем компьютере и зарабатывать 500-1000 при частичной ... Читать дальше
Быстрорастущая фирма по обработке электронной почты приглашает новых сотрудников. Возможность работать дома на своем компьютере и зарабатывать 500-1000 при частичной или 2000-5000$ и более при полной занятости в месяц. Не сетевой или многоуровневый маркетинг. Не требуются специальные навыки и никаких предварительных оплат. Мы ищем серьезных людей, способных и желающих зарабатывать серьезные деньги. Свернуть
4 заявки
Закрыт
ПОСТАНОВКА ЗАДАЧИ
Написать дополнительный модуль для программы, работающей с базой данных mdb (формат Microsoft Access 97).
Задача модуля: сделать копию ... Читать дальше
Написать дополнительный модуль для программы, работающей с базой данных mdb (формат Microsoft Access 97).
Задача модуля: сделать копию ... Читать дальше
ПОСТАНОВКА ЗАДАЧИ
Написать дополнительный модуль для программы, работающей с базой данных mdb (формат Microsoft Access 97).
Задача модуля: сделать копию файла базы данных в другой каталог (это будет архив), а из оригинала файла базы данных удалить старую информацию. Перед удалением старой информации нужно будет выполнить пересчёт остатков. Пересчётом остатков и удалением старой информации будет заниматься внешняя программа, вызывающая ваш модуль, поэтому в вашу задачу пересчёт остатков и удаление информации не входит. В момент копирования и пересчёта на экране должно присутствовать окно, отображающее ход выполнения пересчёта. Создание такого окна в вашу задачу входит. Ещё вам потребуеются навыки работы с библиотекой DAO и с языком SQL. Справочную информацию по объектам, методам и свойствам библотеки DAO, а также описание языка SQL можно найти в файле помощи к Microsoft Office.
Модуль может быть написан на любом языке программирования и должен быть выполнен в виде библиотеки DLL (не ActiveX), имя файла arhive.dll.
Arhive.dll должен быть таким, чтобы файл программы exe, использующей arhive.dll, не зависел от версии arhive.dll. Другими словами - чтобы при изменении версии arhive.dll не потребовалась перекомпиляция файла exe. Сам файл exe написан на языке VB5. К проекту модуль arhive.dll будет прикрепляться не через технологию ActiveX, а с помощью оператора Declare. Этот момент очень важен, потому что сам файл exe очень большой (больше 7Мб) и довольно обременительно при каждом изменении любой маленькой библиотеки проекта передавать заказчику весь exe-файл по Интернет. Подходит созданный вами модуль arhive.dll или нет - выяснится сразу после выполнения двух первых этапов технического задания. Чем размер модуля меньше, тем лучше.
Для модуля arhive.dll нужно будет написать файл помощи arhive.hlp. В файле помощи - весь список функций, методов и свойств модуля на первой странице; а на остальных страницах описание каждой функции, метода или свойства (каждая на отдельной странице).
Написаный модуль вместе с его исходным кодом и файлом помощи будет считаться собсвенностью заказчика, т.е. моей собственностью.
Работа будет считаться выполненной, если модуль arhive.dll и файл помощи arhive.hlp будут соответствовать техническому заданию и исходный код модуля arhive.dll будет передан заказчику, т.е. мне.
ТЕХНИЧЕСКОЕ ЗАДАНИЕ
Для работы с базой данных модуль arhive.dll должен использовать библиотеку dao350.dll (если нужно, я её вышлю по E-Mail). Открытая база данных (объект DataBase) будет передана в модуль arhive.dll по ссылке. Для передачи ссылки на базу данных вам нужно написать специальную функцию инициализации.
Задание будет разбито на этапы, каждый этап будем отлаживать отдельно. Во время выполнения этапов никакой "отсебятины", всё строго по заданию.
ЭТАП 1. Создание библиотеки arhive.dll
Создайте библиотеку arhive.dll с одной единственной функцией инициализации. Функция инициализации должна принять из exe-программы ссылку на объект базы данных (DataBase). Объект как раз и будет открытой базой данных. Функция инициализации должна вернуть имя переданной ей базы данных (свойство Name объекта DataBase). Созданный модуль arhive.dll вышлите по E-Mail. Название функции инициализации: Initialize
ЭТАП 2. Проверка ссылки базы данных и самого модуля.
Добавьте в библиотеку arhive.dll функцию, которая вернёт дату начала ведения учёта. Дата начала ведения учёта находится в первой записи таблицы в поле . Тип данных поля dbDate. Для получения даты используйте язык SQL: "SELECT FROM ;". Созданный модуль arhive.dll вышлите по E-Mail. Название функции: GetDateBegin
При выполнении остальных этапов задания при обращении к базе данных всегда используйте язык SQL. Это необходимое условие задания. Т.е. нельзя использовать для просмотра или изменения данных и структуры базы данных методы DAO (кроме методов OpenRecordset и Execute). Для получения информации из базы данных используйте метод OpenRecordset, а для изменения данных или структуры используйте метод Execute. Кроме того, в методе OpenRecordset нельзя использовать тип объекта dbOpenTable.
ЭТАП 3. Доработка функции инициализации, создание файла помощи.
В функцию инициализации добавьте входящий параметр "Текущая дата". Функция инициализации должна сохранить текущую дату где-то внутри модуля, чтобы использовать её в других процедурах.
Создайте файл помощи arhive.hlp. На первой странице список, содержащий названия двух созданных нами функций. На второй странице - описание функции инициализации (т.е. название, описание входных и выходного параметры), на третьей странице - описание функции определения даты начала ведения учёта.
Созданный модуль arhive.dll и файл помощи arhive.hlp отправьте по E-Mail для тестирования.
ЭТАП 4. Создание метода перемещения данных в архив.
Этот метод как раз и будет выполнять основную задачу. Название метода: MoveToArhive
Первым делом нужно определить необходимость перемещения данных в архив.
Данные необходимо переместить в архив, если в базе данных присутствуют данные, введённые раньше позапредыдущего года.
Т.е., если сейчас 2005 год, то в базе данных должен остаться 2004 и 2005 года. Данные, введённые раньше 2004 года нужно переместить в архив.
Т.е., если год даты начала ведения учёта меньше, чем предыдущий год, то данные перемещать надо.
Дата начала ведения учёта определяется функцией GetDateBegin, а текущая дата задаётся в функции Initialize.
Итак, первым действием функции MoveToArhive будет это условие.
Если необходиомсти перемещать данные в архив нет, то функция должна на экране выдать сообщение:
"Нет необходимости перемещать данные в архив, т.к. нет данных, введённых раньше такого-то года".
Заголовок окна этого сообщения: "Перемещение данных в архив". В окне одна кнопка - "Продолжить".
После выдачи окна сообщения нужно сделать выход из подпрограммы MoveToArhive.
Окно сообщения должно быть модальным по отношению к вызывающему окну, которое находится в файле exe. Из-за этого в функции Initialize сделайте ещё один входящий параметр - дисктиптор вызывающего окна. Функция Initialize должна сохранить этот дискриптор где-то внутри модуля для дальнейшего использования. Добавьте описание нового параметра в файл помощи arhive.hlp на страницу с описанием функции Initialize.
Ещё один очень важный момент: размер окна сообщения должен зависеть от разрешения экрана. Например:
Экран: 640х480 - размер шрифта 8, размер окна 4320х1890 твипов, размер кнопки 1065х375 твипов
Экран: 800х600 - размер шрифта 10, размер окна 5400х2363 твипов, размер кнопки 1331х469 твипов
Экран 1024х768 - и т.д.
Чтобы пересчитать размеры элементов управления окна разделите текущую ширину экрана на 640. Получится коэффициент пересчёта размеров. Например:
Экран: 640х480 - коэффициент равен 1
Экран: 800х600 - коэффициент равен 800/640 = 1.25
Экран: 1024х768 - коэффициент равен 1024/640 = 1.6
и т.д.
Затем в процедуре обработки события (открытие или инициализация формы) умножте размеры элементов управления и размеры шрифтов на рассчитанный выше коэффициент.
Размеры заголовка окна и расположенных на нём системных кнопок (свернуть, развернуть и т.д.) пересчитывать не нужно.
Для пересчёта размеров элементов управления окна создаёте метод FormResize, этот метод должен будет пересчитать размеры окна и расположенных на нём элементов управления. Метод FormResize вы будете использовать потом при пересчёте размеров у остальных окон. Добавьте описание метода FormResize в файл помощи. Входящим парметром этого метода будет дискриптор окна, у которого нужно пересчитать размеры.
Создайте модуль arhive.dll и отправьте его вместе с файлом arhive.hlp по E-Mail для тестирования.
ЭТАП 5. Создание функции для определения количества подключенных пользователей.
Создадим следующую функцию GetCountUsers, которая определяет количество пользователей, подключенных к базе данных. Для этого вам понадобится использовать библиотеку MSLDBUSR.DLL (я её вышлю по E-Mail вместе с описанием её использования). Из неё нужно использовать функцию LDBUser_GetUsers.
Вот пример использования функции на VB5 (переделайте на свой язык, если поймёте что-то из примера). Если не поймёте из примера - воспользуйтесь описанием Msldbusr.doc или задавайте вопросы мне на E-Mail.
' КОНСТАНТА: для функции LDBUser_GetUsers
Private Const OptLDBLoggedUsers = &H2 ' получить список подключенных в текущий момент
' ДЕКЛАРАЦИЯ: определение списка подключенных пользователей
Private Declare Function LDBUser_GetUsers Lib "MSLDBUSR.DLL" (lpszUserBuffer() As String, ByVal lpszFilename As String, ByVal nOptions As Long) As Integer
' ФУНКЦИЯ: возвращает количество пользователей, подключенных к базе данных
' strDataBase - путь к файлу базы данных
Public Function GetCountUsers(strDataBase As String) As Integer
' Переменные
Dim strUsers() As String ' динамический массив строк
Dim intCount as Integer ' количество подключенных пользователей
' Код
' формирование в массиве одного пустого элемента
ReDim strUsers(1) As String
' определение количества пользователей
intCount = LDBUser_GetUsers(strUsers(), strDataBase, OptLDBLoggedUsers)
' исключение отрицательных значений
If intCount<0 Then
intCount = 0
End If
' определение результата
GetCountUsers = intCount
End Function
Добавьте описание функции в arihive.hlp (в дальнейшем и все остальные изменения в модуле arhive.dll отражайте в arihive.hlp). Создайте модуль arhive.dll и отправьте его вместе с файлом arhive.hlp по E-Mail для тестирования.
ЭТАП 6. Проверка подключения других пользователей.
Следующее действие функции MoveToArhive - проверка подключения к базе данных других пользователей. Если подключен хотя бы один пользователь, то есть вероятность, что он выполняет какие-либо действия в базе данных. Проверка подключения других пользователей как раз и нужна, чтобы исключить конфликтную ситуацию.
Для проверки используйте условие: если количество подключенных пользователей больше 1, то другие пользователи подключены.
Если другие пользователи подключены - выдайте сообщение в окне "База данных открыта другим пользователем!", заголовок окна "Перемещение остановлено". После этого нужно сделать выход из подпрограммы MoveToArhive.
Внестите изменения в модуль. В файле arihive.hlp добавьте список действий функций MoveToArhive. Список действий для остальных функций модуля в arhive.hlp добавлять не нужно.
Отправьте arhive.hlp и arhive.dll для тестирования. В дальнейшем - отправляйте выполненное задание после выполнения каждого этапа. Вы можете проходить этапы выполнения не дожидаясь результатов тестирования, но обязательно отправляйте для тестирования выполенную работу после каждого этапа.
ЭТАП 7. Выполнение резервного копирования.
Резервное копирование базы данных будет выполнятся срествами внешней программы, поэтому написание функции резервного копирования в поставленную вам задачу не входит.
Следующее действие функции MoveToArhive - вызов из внешней программы функции выполнения резервного копирования. Чтобы вызвать функцию, внешняя программа через фукцию инициализации Initialize должна передать в модуль ссылку на функцию резервного копирования, находящуюся во внешней программе. Функция резервного копирования вернёт True, если резервное копирование выполнено успешно или False - если резервное копирование не выполнено.
Если резервное копирование не выполнено, то нужно сделать выход из подпрограммы MoveToArhive.
ЭТАП 8. Выполнение проверки пароля для входа в базу данных.
Проверка пароля выполняется срествами внешней программы, поэтому добавьте следующее действие в MoveToArhive по аналогии с действием этапа 7.
ЭТАП 9. Создание функции "Открытие базы данных в монопольном режиме".
Открытие базы данных в монопольном режиме необходимо для того, чтобы в процессе архивации ни один пользователь не смог бы подключиться к базе данных.
Создайте функцию OpenDataBaseMono, которая должна вернуть признак успешного завершения.
Входным параметром функции OpenDataBaseMono будет strName - полный путь к файлу базы данных.
В функции OpenDataBaseMono первым действием - закройте базу данных: CurrentDb.Close
Вторым действие - откройте базу данных в монопольном режиме: Set CurrentDb = wkWorkSpace.OpenDataBase(strName, True, False).
В функции OpenDataBaseMono сделайте перехватчик ошибок для определения результата выполнения функции.
Ещё вам понадобится ссылка на рабочую область wkWorkSpace. Ссылку на рабочую область внешняя программа должна передать в модуль через функцию инициализации Initialize.
Функция OpenDataBaseMono - глобальная (т.е. видна из внешней программы).
ЭТАП 10. Создание функции "Открытие базы данных в обычном режиме".
Создайте глобальную функцию OpenDataBaseShare. Параметр функции strName - полный путь к файлу базы данных. Функция должна вернуть признак нормального завершения. Для открытия используйте срества DAO: Set CurrentDb = wkWorkspace.OpenDataBase(strName, False, False).
ЭТАП 11. Открытие базы данных в монопольном режиме.
Следующее действие функции MoveToArhive - открытие базы данных в монопольном режиме. Если в момент открытия базы данных в монопольном режиме произошла ошибка, то нужно выдать сообщение "Произошёл сбой во время открытия базы данных в монопольном режиме!" (заголовок окна "Перемещение остановлено"), восстановить подключение с помощью функции OpenDataBaseShare и выйти из подпрограммы MoveToArhive.
Если подключение восстановить не удалось - ничего страшного, внешняя программа после вызова метода MoveToArhive ещё раз проверит состояние подключения к базе данных.
ЭТАП 12. Открытие окна для отображения процесса перемещения.
Следующий этап метода MoveToArhive - открытие окна для отображения процесса перемещения. Как будет выглядеть окно процесса - на ваше усмотрение.
Открытие окна оформите в отдельную внутреннюю процедуру (и в дальнейшем также - если не в задании не указано другого, то оформляйте выполнение действия в отдельную внутреннюю процедуру, чтобы не замусорить метод MoveToArhive подробностями).
ЭТАП 13. Создание рабочей копии файла базы данных.
Следующий этап метода MoveToArhive - создание рабочей копии файла базы данных. Имя и путь к файлу базы данных вам известны. Копию базы данных нужно создать в рабочем каталоге внешней программы. Путь к рабочему каталогу определяется самой внешней программой и передаётся в модуль через функцию инициализации Initialize. Расширение рабочей копии базы данных ARH. Копирование файла нужно показать в окне отображения процесса.
ЭТАП 14. Открытие рабочей копии файла базы данных.
Следующий этап метода MoveToArhive - открытие рабочей копии файла базы данных. Текущю базу данных пока закройте, чтобы не забивать оперативную память компьютера. Открытие рабочей базы данных выполните с помощью функции OpenDataBaseMono. Не забывайте про перехват ошибок и про окно отображения процесса.
ЭТАП 15. Создание каталога для хранения архива.
В том же каталоге, где хранится база данных, создайте каталог для хранения архива. Имя каталога определяется по позапрошлому году. Например, если сейчас 2005 год, то именем каталога будет 2003. Но, если такой каталог уже существует, то к имени создаваемого каталога нужно добавить число, например 2003_1. Если и такой каталог существует, то добавить следующее число (например 2003_2) и т.д.
Теперь нужно создать этот каталог.
ЭТАП 16. Копирование в каталог для хранения архива.
Теперь нужно скопировать файл базы данных в каталог, созданный на этапе 15.
ЭТАП 17. Создание функции для удаления временных файлов.
Создадим глобальную функцию для удаления временных файлов DeleteTempFile. Эта функция будет использоваться потом в конце всех действий или в случае возникновения ошибки перемещения в архив.
Функция должна выполнить следующие действия:
1) отключение от рабочей копии базы данных (файл с раширением ARH), если подключение всё ещё установлено;
1) удаление рабочей копии базы данных.
ЭТАП 18. Заходим в саму базу данных.
Итак, у нас имеется открытая рабочая база данных. Её мы будем видоизменять, т.е. удалять информцию, введённую раньше прошлого года. Принцип такой - в базе данных должна остаться информация только за прошлый и текущий года.
Перед чистой данных нужно выполнить проверку наличия в архивируемом периоде резервных накладных. Я знаю - для вас не понятно, чот это такое. Но вам в подробности вникать и не нужно, я просто опишу это техническим языком, вам только нужно будет сделать несколько запросов к базе данных к определённым таблицам.
Структура запроса: "SELECT TOP 1 FROM WHERE (Not ) AND ;"
TableName - вместо этого вы подставите имя таблицы
Если запрос хотя бы к одной таблице вернёт хотя бы одну запись - значит в таблице имеются резервные накладные, а это для перемещения в архив недопустимо. Т.е. если имеются резервные накладные, метод MoveToArhive должен выдать сообщение "В архивируемом периоде имеются резервные накладные! Уберите резервные накладные и повторите перемещение в архив." (заголовок окна сообщения "Перемещение остановлено"). После выдачи сообщения нужно удалить временные файлы с помощью функции DeleteTempFile, восстановить подключение с помощью функции OpenDataBaseShare и
Чтобы определить имена таблиц, к которым нужно выполнить запрос, воспользуйтесь следующими правилами:
1) имя таблицы начинается так: StoreExp;
2) таблицы c именами StoreExp и StoreExpGoods нужно пропустить, они всё-равно пустые;
3) последний символ в имени таблицы может быть только "0" или "1";
4) девятый и десятый символы в имени таблицы обозначают год (например таблица с именем StoreExp031 хранит данные за 2003 год).
5) год таблицы должен быть меньше предыдущего (например, если сейчас 2005 год, то год таблицы должен быть меньше 2004-го).
ЭТАП 19. Чистка базы данных.
Следующим действием метода MoveToArhive будет вызов внешней функции RemoveData. Сама функция будет расположена во внешней программе. Входящим параметром функции RemoveData бдет ссылка на открытую рабочую базу данных. Функция будет возвращать признак нормального завершения. Ссылка на функцию должна передаваться из внешней программы через функцию инициализации Initialize.
Кроме того, чтобы функция RemoveData могла работать с вашим окном отображения процесса, создайте в модуле соответствующие методы.
Напоминаю, что функция будет вызываться методом MoveToArhive. Если во время чистки произойдёт сбой, то метод MoveToArhive должен выдать сообщение "Произошёл сбой во время удаления данных" (заголовок окна "Перемещение остановлено"), удалить временные файлы функцией DeleteTemoFile, восстановить подключение функцией OpenDataBaseShare и завершить работу метода.
ЭТАП 20. Завершение работы метода MoveToArhive.
Последние действия метода MoveToArhive:
1) закрытие открытой базы данных;
2) перемещение рабочего файла из рабочего каталога программы в каталог с базой данных;
3) восстановление подключения;
4) закрытие окна отображения процесса. Свернуть
Написать дополнительный модуль для программы, работающей с базой данных mdb (формат Microsoft Access 97).
Задача модуля: сделать копию файла базы данных в другой каталог (это будет архив), а из оригинала файла базы данных удалить старую информацию. Перед удалением старой информации нужно будет выполнить пересчёт остатков. Пересчётом остатков и удалением старой информации будет заниматься внешняя программа, вызывающая ваш модуль, поэтому в вашу задачу пересчёт остатков и удаление информации не входит. В момент копирования и пересчёта на экране должно присутствовать окно, отображающее ход выполнения пересчёта. Создание такого окна в вашу задачу входит. Ещё вам потребуеются навыки работы с библиотекой DAO и с языком SQL. Справочную информацию по объектам, методам и свойствам библотеки DAO, а также описание языка SQL можно найти в файле помощи к Microsoft Office.
Модуль может быть написан на любом языке программирования и должен быть выполнен в виде библиотеки DLL (не ActiveX), имя файла arhive.dll.
Arhive.dll должен быть таким, чтобы файл программы exe, использующей arhive.dll, не зависел от версии arhive.dll. Другими словами - чтобы при изменении версии arhive.dll не потребовалась перекомпиляция файла exe. Сам файл exe написан на языке VB5. К проекту модуль arhive.dll будет прикрепляться не через технологию ActiveX, а с помощью оператора Declare. Этот момент очень важен, потому что сам файл exe очень большой (больше 7Мб) и довольно обременительно при каждом изменении любой маленькой библиотеки проекта передавать заказчику весь exe-файл по Интернет. Подходит созданный вами модуль arhive.dll или нет - выяснится сразу после выполнения двух первых этапов технического задания. Чем размер модуля меньше, тем лучше.
Для модуля arhive.dll нужно будет написать файл помощи arhive.hlp. В файле помощи - весь список функций, методов и свойств модуля на первой странице; а на остальных страницах описание каждой функции, метода или свойства (каждая на отдельной странице).
Написаный модуль вместе с его исходным кодом и файлом помощи будет считаться собсвенностью заказчика, т.е. моей собственностью.
Работа будет считаться выполненной, если модуль arhive.dll и файл помощи arhive.hlp будут соответствовать техническому заданию и исходный код модуля arhive.dll будет передан заказчику, т.е. мне.
ТЕХНИЧЕСКОЕ ЗАДАНИЕ
Для работы с базой данных модуль arhive.dll должен использовать библиотеку dao350.dll (если нужно, я её вышлю по E-Mail). Открытая база данных (объект DataBase) будет передана в модуль arhive.dll по ссылке. Для передачи ссылки на базу данных вам нужно написать специальную функцию инициализации.
Задание будет разбито на этапы, каждый этап будем отлаживать отдельно. Во время выполнения этапов никакой "отсебятины", всё строго по заданию.
ЭТАП 1. Создание библиотеки arhive.dll
Создайте библиотеку arhive.dll с одной единственной функцией инициализации. Функция инициализации должна принять из exe-программы ссылку на объект базы данных (DataBase). Объект как раз и будет открытой базой данных. Функция инициализации должна вернуть имя переданной ей базы данных (свойство Name объекта DataBase). Созданный модуль arhive.dll вышлите по E-Mail. Название функции инициализации: Initialize
ЭТАП 2. Проверка ссылки базы данных и самого модуля.
Добавьте в библиотеку arhive.dll функцию, которая вернёт дату начала ведения учёта. Дата начала ведения учёта находится в первой записи таблицы в поле . Тип данных поля dbDate. Для получения даты используйте язык SQL: "SELECT FROM ;". Созданный модуль arhive.dll вышлите по E-Mail. Название функции: GetDateBegin
При выполнении остальных этапов задания при обращении к базе данных всегда используйте язык SQL. Это необходимое условие задания. Т.е. нельзя использовать для просмотра или изменения данных и структуры базы данных методы DAO (кроме методов OpenRecordset и Execute). Для получения информации из базы данных используйте метод OpenRecordset, а для изменения данных или структуры используйте метод Execute. Кроме того, в методе OpenRecordset нельзя использовать тип объекта dbOpenTable.
ЭТАП 3. Доработка функции инициализации, создание файла помощи.
В функцию инициализации добавьте входящий параметр "Текущая дата". Функция инициализации должна сохранить текущую дату где-то внутри модуля, чтобы использовать её в других процедурах.
Создайте файл помощи arhive.hlp. На первой странице список, содержащий названия двух созданных нами функций. На второй странице - описание функции инициализации (т.е. название, описание входных и выходного параметры), на третьей странице - описание функции определения даты начала ведения учёта.
Созданный модуль arhive.dll и файл помощи arhive.hlp отправьте по E-Mail для тестирования.
ЭТАП 4. Создание метода перемещения данных в архив.
Этот метод как раз и будет выполнять основную задачу. Название метода: MoveToArhive
Первым делом нужно определить необходимость перемещения данных в архив.
Данные необходимо переместить в архив, если в базе данных присутствуют данные, введённые раньше позапредыдущего года.
Т.е., если сейчас 2005 год, то в базе данных должен остаться 2004 и 2005 года. Данные, введённые раньше 2004 года нужно переместить в архив.
Т.е., если год даты начала ведения учёта меньше, чем предыдущий год, то данные перемещать надо.
Дата начала ведения учёта определяется функцией GetDateBegin, а текущая дата задаётся в функции Initialize.
Итак, первым действием функции MoveToArhive будет это условие.
Если необходиомсти перемещать данные в архив нет, то функция должна на экране выдать сообщение:
"Нет необходимости перемещать данные в архив, т.к. нет данных, введённых раньше такого-то года".
Заголовок окна этого сообщения: "Перемещение данных в архив". В окне одна кнопка - "Продолжить".
После выдачи окна сообщения нужно сделать выход из подпрограммы MoveToArhive.
Окно сообщения должно быть модальным по отношению к вызывающему окну, которое находится в файле exe. Из-за этого в функции Initialize сделайте ещё один входящий параметр - дисктиптор вызывающего окна. Функция Initialize должна сохранить этот дискриптор где-то внутри модуля для дальнейшего использования. Добавьте описание нового параметра в файл помощи arhive.hlp на страницу с описанием функции Initialize.
Ещё один очень важный момент: размер окна сообщения должен зависеть от разрешения экрана. Например:
Экран: 640х480 - размер шрифта 8, размер окна 4320х1890 твипов, размер кнопки 1065х375 твипов
Экран: 800х600 - размер шрифта 10, размер окна 5400х2363 твипов, размер кнопки 1331х469 твипов
Экран 1024х768 - и т.д.
Чтобы пересчитать размеры элементов управления окна разделите текущую ширину экрана на 640. Получится коэффициент пересчёта размеров. Например:
Экран: 640х480 - коэффициент равен 1
Экран: 800х600 - коэффициент равен 800/640 = 1.25
Экран: 1024х768 - коэффициент равен 1024/640 = 1.6
и т.д.
Затем в процедуре обработки события (открытие или инициализация формы) умножте размеры элементов управления и размеры шрифтов на рассчитанный выше коэффициент.
Размеры заголовка окна и расположенных на нём системных кнопок (свернуть, развернуть и т.д.) пересчитывать не нужно.
Для пересчёта размеров элементов управления окна создаёте метод FormResize, этот метод должен будет пересчитать размеры окна и расположенных на нём элементов управления. Метод FormResize вы будете использовать потом при пересчёте размеров у остальных окон. Добавьте описание метода FormResize в файл помощи. Входящим парметром этого метода будет дискриптор окна, у которого нужно пересчитать размеры.
Создайте модуль arhive.dll и отправьте его вместе с файлом arhive.hlp по E-Mail для тестирования.
ЭТАП 5. Создание функции для определения количества подключенных пользователей.
Создадим следующую функцию GetCountUsers, которая определяет количество пользователей, подключенных к базе данных. Для этого вам понадобится использовать библиотеку MSLDBUSR.DLL (я её вышлю по E-Mail вместе с описанием её использования). Из неё нужно использовать функцию LDBUser_GetUsers.
Вот пример использования функции на VB5 (переделайте на свой язык, если поймёте что-то из примера). Если не поймёте из примера - воспользуйтесь описанием Msldbusr.doc или задавайте вопросы мне на E-Mail.
' КОНСТАНТА: для функции LDBUser_GetUsers
Private Const OptLDBLoggedUsers = &H2 ' получить список подключенных в текущий момент
' ДЕКЛАРАЦИЯ: определение списка подключенных пользователей
Private Declare Function LDBUser_GetUsers Lib "MSLDBUSR.DLL" (lpszUserBuffer() As String, ByVal lpszFilename As String, ByVal nOptions As Long) As Integer
' ФУНКЦИЯ: возвращает количество пользователей, подключенных к базе данных
' strDataBase - путь к файлу базы данных
Public Function GetCountUsers(strDataBase As String) As Integer
' Переменные
Dim strUsers() As String ' динамический массив строк
Dim intCount as Integer ' количество подключенных пользователей
' Код
' формирование в массиве одного пустого элемента
ReDim strUsers(1) As String
' определение количества пользователей
intCount = LDBUser_GetUsers(strUsers(), strDataBase, OptLDBLoggedUsers)
' исключение отрицательных значений
If intCount<0 Then
intCount = 0
End If
' определение результата
GetCountUsers = intCount
End Function
Добавьте описание функции в arihive.hlp (в дальнейшем и все остальные изменения в модуле arhive.dll отражайте в arihive.hlp). Создайте модуль arhive.dll и отправьте его вместе с файлом arhive.hlp по E-Mail для тестирования.
ЭТАП 6. Проверка подключения других пользователей.
Следующее действие функции MoveToArhive - проверка подключения к базе данных других пользователей. Если подключен хотя бы один пользователь, то есть вероятность, что он выполняет какие-либо действия в базе данных. Проверка подключения других пользователей как раз и нужна, чтобы исключить конфликтную ситуацию.
Для проверки используйте условие: если количество подключенных пользователей больше 1, то другие пользователи подключены.
Если другие пользователи подключены - выдайте сообщение в окне "База данных открыта другим пользователем!", заголовок окна "Перемещение остановлено". После этого нужно сделать выход из подпрограммы MoveToArhive.
Внестите изменения в модуль. В файле arihive.hlp добавьте список действий функций MoveToArhive. Список действий для остальных функций модуля в arhive.hlp добавлять не нужно.
Отправьте arhive.hlp и arhive.dll для тестирования. В дальнейшем - отправляйте выполненное задание после выполнения каждого этапа. Вы можете проходить этапы выполнения не дожидаясь результатов тестирования, но обязательно отправляйте для тестирования выполенную работу после каждого этапа.
ЭТАП 7. Выполнение резервного копирования.
Резервное копирование базы данных будет выполнятся срествами внешней программы, поэтому написание функции резервного копирования в поставленную вам задачу не входит.
Следующее действие функции MoveToArhive - вызов из внешней программы функции выполнения резервного копирования. Чтобы вызвать функцию, внешняя программа через фукцию инициализации Initialize должна передать в модуль ссылку на функцию резервного копирования, находящуюся во внешней программе. Функция резервного копирования вернёт True, если резервное копирование выполнено успешно или False - если резервное копирование не выполнено.
Если резервное копирование не выполнено, то нужно сделать выход из подпрограммы MoveToArhive.
ЭТАП 8. Выполнение проверки пароля для входа в базу данных.
Проверка пароля выполняется срествами внешней программы, поэтому добавьте следующее действие в MoveToArhive по аналогии с действием этапа 7.
ЭТАП 9. Создание функции "Открытие базы данных в монопольном режиме".
Открытие базы данных в монопольном режиме необходимо для того, чтобы в процессе архивации ни один пользователь не смог бы подключиться к базе данных.
Создайте функцию OpenDataBaseMono, которая должна вернуть признак успешного завершения.
Входным параметром функции OpenDataBaseMono будет strName - полный путь к файлу базы данных.
В функции OpenDataBaseMono первым действием - закройте базу данных: CurrentDb.Close
Вторым действие - откройте базу данных в монопольном режиме: Set CurrentDb = wkWorkSpace.OpenDataBase(strName, True, False).
В функции OpenDataBaseMono сделайте перехватчик ошибок для определения результата выполнения функции.
Ещё вам понадобится ссылка на рабочую область wkWorkSpace. Ссылку на рабочую область внешняя программа должна передать в модуль через функцию инициализации Initialize.
Функция OpenDataBaseMono - глобальная (т.е. видна из внешней программы).
ЭТАП 10. Создание функции "Открытие базы данных в обычном режиме".
Создайте глобальную функцию OpenDataBaseShare. Параметр функции strName - полный путь к файлу базы данных. Функция должна вернуть признак нормального завершения. Для открытия используйте срества DAO: Set CurrentDb = wkWorkspace.OpenDataBase(strName, False, False).
ЭТАП 11. Открытие базы данных в монопольном режиме.
Следующее действие функции MoveToArhive - открытие базы данных в монопольном режиме. Если в момент открытия базы данных в монопольном режиме произошла ошибка, то нужно выдать сообщение "Произошёл сбой во время открытия базы данных в монопольном режиме!" (заголовок окна "Перемещение остановлено"), восстановить подключение с помощью функции OpenDataBaseShare и выйти из подпрограммы MoveToArhive.
Если подключение восстановить не удалось - ничего страшного, внешняя программа после вызова метода MoveToArhive ещё раз проверит состояние подключения к базе данных.
ЭТАП 12. Открытие окна для отображения процесса перемещения.
Следующий этап метода MoveToArhive - открытие окна для отображения процесса перемещения. Как будет выглядеть окно процесса - на ваше усмотрение.
Открытие окна оформите в отдельную внутреннюю процедуру (и в дальнейшем также - если не в задании не указано другого, то оформляйте выполнение действия в отдельную внутреннюю процедуру, чтобы не замусорить метод MoveToArhive подробностями).
ЭТАП 13. Создание рабочей копии файла базы данных.
Следующий этап метода MoveToArhive - создание рабочей копии файла базы данных. Имя и путь к файлу базы данных вам известны. Копию базы данных нужно создать в рабочем каталоге внешней программы. Путь к рабочему каталогу определяется самой внешней программой и передаётся в модуль через функцию инициализации Initialize. Расширение рабочей копии базы данных ARH. Копирование файла нужно показать в окне отображения процесса.
ЭТАП 14. Открытие рабочей копии файла базы данных.
Следующий этап метода MoveToArhive - открытие рабочей копии файла базы данных. Текущю базу данных пока закройте, чтобы не забивать оперативную память компьютера. Открытие рабочей базы данных выполните с помощью функции OpenDataBaseMono. Не забывайте про перехват ошибок и про окно отображения процесса.
ЭТАП 15. Создание каталога для хранения архива.
В том же каталоге, где хранится база данных, создайте каталог для хранения архива. Имя каталога определяется по позапрошлому году. Например, если сейчас 2005 год, то именем каталога будет 2003. Но, если такой каталог уже существует, то к имени создаваемого каталога нужно добавить число, например 2003_1. Если и такой каталог существует, то добавить следующее число (например 2003_2) и т.д.
Теперь нужно создать этот каталог.
ЭТАП 16. Копирование в каталог для хранения архива.
Теперь нужно скопировать файл базы данных в каталог, созданный на этапе 15.
ЭТАП 17. Создание функции для удаления временных файлов.
Создадим глобальную функцию для удаления временных файлов DeleteTempFile. Эта функция будет использоваться потом в конце всех действий или в случае возникновения ошибки перемещения в архив.
Функция должна выполнить следующие действия:
1) отключение от рабочей копии базы данных (файл с раширением ARH), если подключение всё ещё установлено;
1) удаление рабочей копии базы данных.
ЭТАП 18. Заходим в саму базу данных.
Итак, у нас имеется открытая рабочая база данных. Её мы будем видоизменять, т.е. удалять информцию, введённую раньше прошлого года. Принцип такой - в базе данных должна остаться информация только за прошлый и текущий года.
Перед чистой данных нужно выполнить проверку наличия в архивируемом периоде резервных накладных. Я знаю - для вас не понятно, чот это такое. Но вам в подробности вникать и не нужно, я просто опишу это техническим языком, вам только нужно будет сделать несколько запросов к базе данных к определённым таблицам.
Структура запроса: "SELECT TOP 1 FROM WHERE (Not ) AND ;"
TableName - вместо этого вы подставите имя таблицы
Если запрос хотя бы к одной таблице вернёт хотя бы одну запись - значит в таблице имеются резервные накладные, а это для перемещения в архив недопустимо. Т.е. если имеются резервные накладные, метод MoveToArhive должен выдать сообщение "В архивируемом периоде имеются резервные накладные! Уберите резервные накладные и повторите перемещение в архив." (заголовок окна сообщения "Перемещение остановлено"). После выдачи сообщения нужно удалить временные файлы с помощью функции DeleteTempFile, восстановить подключение с помощью функции OpenDataBaseShare и
Чтобы определить имена таблиц, к которым нужно выполнить запрос, воспользуйтесь следующими правилами:
1) имя таблицы начинается так: StoreExp;
2) таблицы c именами StoreExp и StoreExpGoods нужно пропустить, они всё-равно пустые;
3) последний символ в имени таблицы может быть только "0" или "1";
4) девятый и десятый символы в имени таблицы обозначают год (например таблица с именем StoreExp031 хранит данные за 2003 год).
5) год таблицы должен быть меньше предыдущего (например, если сейчас 2005 год, то год таблицы должен быть меньше 2004-го).
ЭТАП 19. Чистка базы данных.
Следующим действием метода MoveToArhive будет вызов внешней функции RemoveData. Сама функция будет расположена во внешней программе. Входящим параметром функции RemoveData бдет ссылка на открытую рабочую базу данных. Функция будет возвращать признак нормального завершения. Ссылка на функцию должна передаваться из внешней программы через функцию инициализации Initialize.
Кроме того, чтобы функция RemoveData могла работать с вашим окном отображения процесса, создайте в модуле соответствующие методы.
Напоминаю, что функция будет вызываться методом MoveToArhive. Если во время чистки произойдёт сбой, то метод MoveToArhive должен выдать сообщение "Произошёл сбой во время удаления данных" (заголовок окна "Перемещение остановлено"), удалить временные файлы функцией DeleteTemoFile, восстановить подключение функцией OpenDataBaseShare и завершить работу метода.
ЭТАП 20. Завершение работы метода MoveToArhive.
Последние действия метода MoveToArhive:
1) закрытие открытой базы данных;
2) перемещение рабочего файла из рабочего каталога программы в каталог с базой данных;
3) восстановление подключения;
4) закрытие окна отображения процесса. Свернуть
$50
Завершен
Требуеться создать Flash-баннер для магазина видеофильмов, музыки mp3, софта
Размер: высота 114 пикселей, ширина 985 пикселей
Основные требования:
1. размер ... Читать дальше
Размер: высота 114 пикселей, ширина 985 пикселей
Основные требования:
1. размер ... Читать дальше
Требуеться создать Flash-баннер для магазина видеофильмов, музыки mp3, софта
Размер: высота 114 пикселей, ширина 985 пикселей
Основные требования:
1. размер не более 15 кб
2. баннер должен идеально подходить под дизайн сайта ссылка, иметь
туже цветовую гамму, что и сайт в целом
3. баннер должен соответствовать тематике сайта
4. баннер должен не отвлекать клиентов от выборов товаров, но в тоже время должен быть динамический
5. в баннере не должны использоваться эффекты (вылетание букв, движение букв и т.д), поскольку при перегрузке страницы, будет перезагружаться и сам баннер
6. в качестве необходимого тексnа, необходимо использовать, \"Интернет-магазин BUY-CD.ru\", \"продажа видеофильмов в формате mpeg, divx на CD и DVD, музыкальных сборников в формате MP3, софта на CD\".\"Доставка почтой\",\"Новинки мирового кино\"
Возможны варианты оформления данного текста, но баннер должен заключать в себе информацию, о тематике сайта Свернуть
Размер: высота 114 пикселей, ширина 985 пикселей
Основные требования:
1. размер не более 15 кб
2. баннер должен идеально подходить под дизайн сайта ссылка, иметь
туже цветовую гамму, что и сайт в целом
3. баннер должен соответствовать тематике сайта
4. баннер должен не отвлекать клиентов от выборов товаров, но в тоже время должен быть динамический
5. в баннере не должны использоваться эффекты (вылетание букв, движение букв и т.д), поскольку при перегрузке страницы, будет перезагружаться и сам баннер
6. в качестве необходимого тексnа, необходимо использовать, \"Интернет-магазин BUY-CD.ru\", \"продажа видеофильмов в формате mpeg, divx на CD и DVD, музыкальных сборников в формате MP3, софта на CD\".\"Доставка почтой\",\"Новинки мирового кино\"
Возможны варианты оформления данного текста, но баннер должен заключать в себе информацию, о тематике сайта Свернуть
$10
9 заявок
Закрыт
Необходимо разработать биржу рекламных мест по типу mestkom.ru ipru.ru
$250
8 заявок
Закрыт
Есть уже загатовки для баннеров Нужно сделать несколько баннеров разного формата ! От Вас требуется создание мигающего текста на баннерах ... Читать дальше
Есть уже загатовки для баннеров Нужно сделать несколько баннеров разного формата ! От Вас требуется создание мигающего текста на баннерах ! готов платить от 3$ баннер ! Работа на сегодня ! Свернуть
$3
указан исполнитель
Закрыт
Администрацией сайта oF1.ru планируется открытие хостинга. Наш сервер на данный момент расположен в США, но в ближайшее время должен пройзойти ... Читать дальше
Администрацией сайта oF1.ru планируется открытие хостинга. Наш сервер на данный момент расположен в США, но в ближайшее время должен пройзойти перезд в Питер. Ресурсов достаточно для хостинга большого числа сайтов. В случае нехватки ресурсов, будут приняты меры по их увеличению.
Мы хотели бы найти человека, который бы помогал нам с созданием хостинга. Он станет нашим партнером и будет получать процент с продаж. Будет выбран только один человек.
Что вы получаете
--------------------
Вы получаете гарантированную прибыль со всех внесенных клиентами средств. Мы предлагаем 10% от всех полученных нами средств. Обращаю внимание, что это 10% от ВСЕХ внесенных средств, а не от нашей прибыли. Процентная ставка может меняться в зависимости от выполняемых работ. Ваша прибыль зависит только от качества Вашей работы.
Что Вам надо делать
-----------------------
В Ваши обязанности будет входить создание сайта хостинга, его раскрутка. Вообще все вопросы, связанные с сайтом хостинга. Вы будете принимать заказы клиентов и обрабатывать их. Надо будет периодически заходить на сайт форума и отвечать на вопросы пользователей (со своей стороны, мы также будем оказывать тех поддержку пользователей. Если у Вас нет возможности оказывать поддержку пользователей, то мы можем полностью взять ее на себя, но тогда процентная ставка может немного понизиться). Вести учет пользователей и контролировать оплату услуг.
Чем это лучше обычной партнерской программы
------------------------------------------------------
В партнерской программе Вы получаете деньги за переход пользователей по ссылки с Вашим номером. Однако Вы не знаете, сколько пользователей перешло, заказало хостинг... Соответственно и прыбыль от Вас не всегда зависит. В предлагаемом нами случае, все зависит только от Вас. Чем лучше Вы работаете, тем большую прибыль получаете. Притом процент идет не от прибыли, а от оплаченных пользователем средств. Вы получаете доход независимо от способа, которым пользователем попал на сайт, главное чтобы он сделал заказ и оплатил его.
Требования к партнеру
--------------------------
Будет выбран только один человек, поэтому постарайтесь написать, почему мы должны выбрать именно Вас. Желательно оставляйте свой номер icq. Для получения этой должности, Вы должны быть не понаслышке быть знакомыми с хостинговыми технологиями (хотя бы на уровне пользователя), хорошо знать возможности cPanel (желательно и другие панели, но это не принципиально). У Вас должна быть возможность и время выполнять свои обязанности. Оценивайте реально свои силы и возможности.
Гарантии
----------
Все клиенты будут проходить через Вас, так что Вы всегда будете точно знать, сколько клиентов оплатило хостинг. Вы получите всю причитающуюся Вам сумму, и Вы сами это контролируете.
Мы даем гарнтию, что человек, сделавший сайт, не будет кинут или уволен через короткое время после начала работы сайта (естественно в случае выполнения им своих обязанностей).
Все гарантии даотся именем портала oF1.ru Для подтверждения своего отношения к этому сайту, мы выложили данное сообщение здесь ссылка
Спасибо за внимание. Свернуть
Мы хотели бы найти человека, который бы помогал нам с созданием хостинга. Он станет нашим партнером и будет получать процент с продаж. Будет выбран только один человек.
Что вы получаете
--------------------
Вы получаете гарантированную прибыль со всех внесенных клиентами средств. Мы предлагаем 10% от всех полученных нами средств. Обращаю внимание, что это 10% от ВСЕХ внесенных средств, а не от нашей прибыли. Процентная ставка может меняться в зависимости от выполняемых работ. Ваша прибыль зависит только от качества Вашей работы.
Что Вам надо делать
-----------------------
В Ваши обязанности будет входить создание сайта хостинга, его раскрутка. Вообще все вопросы, связанные с сайтом хостинга. Вы будете принимать заказы клиентов и обрабатывать их. Надо будет периодически заходить на сайт форума и отвечать на вопросы пользователей (со своей стороны, мы также будем оказывать тех поддержку пользователей. Если у Вас нет возможности оказывать поддержку пользователей, то мы можем полностью взять ее на себя, но тогда процентная ставка может немного понизиться). Вести учет пользователей и контролировать оплату услуг.
Чем это лучше обычной партнерской программы
------------------------------------------------------
В партнерской программе Вы получаете деньги за переход пользователей по ссылки с Вашим номером. Однако Вы не знаете, сколько пользователей перешло, заказало хостинг... Соответственно и прыбыль от Вас не всегда зависит. В предлагаемом нами случае, все зависит только от Вас. Чем лучше Вы работаете, тем большую прибыль получаете. Притом процент идет не от прибыли, а от оплаченных пользователем средств. Вы получаете доход независимо от способа, которым пользователем попал на сайт, главное чтобы он сделал заказ и оплатил его.
Требования к партнеру
--------------------------
Будет выбран только один человек, поэтому постарайтесь написать, почему мы должны выбрать именно Вас. Желательно оставляйте свой номер icq. Для получения этой должности, Вы должны быть не понаслышке быть знакомыми с хостинговыми технологиями (хотя бы на уровне пользователя), хорошо знать возможности cPanel (желательно и другие панели, но это не принципиально). У Вас должна быть возможность и время выполнять свои обязанности. Оценивайте реально свои силы и возможности.
Гарантии
----------
Все клиенты будут проходить через Вас, так что Вы всегда будете точно знать, сколько клиентов оплатило хостинг. Вы получите всю причитающуюся Вам сумму, и Вы сами это контролируете.
Мы даем гарнтию, что человек, сделавший сайт, не будет кинут или уволен через короткое время после начала работы сайта (естественно в случае выполнения им своих обязанностей).
Все гарантии даотся именем портала oF1.ru Для подтверждения своего отношения к этому сайту, мы выложили данное сообщение здесь ссылка
Спасибо за внимание. Свернуть
5 заявок
Закрыт
Нужно найти и установить скрипт для голосования.
Должна быть система администрирования и возможность установки нескольких голосований (на нескольких проектах), простая ... Читать дальше
Должна быть система администрирования и возможность установки нескольких голосований (на нескольких проектах), простая ... Читать дальше
Нужно найти и установить скрипт для голосования.
Должна быть система администрирования и возможность установки нескольких голосований (на нескольких проектах), простая настройка дизайна, защита от накрутки, желательно настойка вывода статистика (шкала, диаграмма,...).
Пример:
ссылка
ссылка
(F5)
Связка PHP+MySQL
Готов рассмотреть Ваши варианты.
Пожалуйста, указывайте ссылки на примеры голосований. Свернуть
Должна быть система администрирования и возможность установки нескольких голосований (на нескольких проектах), простая настройка дизайна, защита от накрутки, желательно настойка вывода статистика (шкала, диаграмма,...).
Пример:
ссылка
ссылка
(F5)
Связка PHP+MySQL
Готов рассмотреть Ваши варианты.
Пожалуйста, указывайте ссылки на примеры голосований. Свернуть
$20
16 заявок
Закрыт
Добрый день!
Нужно сделать несложный скрипт, работающий на стороне клиента (JavaScript) в любом браузере.
ТЗ:
1. Пользователь вводит 4 числа ... Читать дальше
Нужно сделать несложный скрипт, работающий на стороне клиента (JavaScript) в любом браузере.
ТЗ:
1. Пользователь вводит 4 числа ... Читать дальше
Добрый день!
Нужно сделать несложный скрипт, работающий на стороне клиента (JavaScript) в любом браузере.
ТЗ:
1. Пользователь вводит 4 числа (А, B, С, D) в соответствующие окна формы (A, B, C, D).
Все числа положительные (+), целые (без запятой), в поля ввода нельзя вводить ноль (<0>) и больше шести знаков (1-999999), незаполненное пользователем поле считать как единицу (<1>).
2. Скрипт считает однократно введённые числа по трём формулам :
Формула 1 - <0,45А-0,45В+0,042С-0,25D>
Формула 2 - <0,27А-0,2В+0,02С>
Формула 3 - <0,12А+0,02С>
3. Выводятся результаты одновременно всех трёх формул на этой же или другой странице (но не pop-up) :
Результат 1
Результат 2
Результат 3
Результат округлять до запятой.
Внизу после результатов вычислений - текст, выводимый в соответствии с полученным результатом :
если наименьшее значение у <Результат 1> - <Текст 1>, если наименьшее значение у <Результат 2> - <Текст 2>, если наименьшее у <Результат 3> - <Текст 3>.
Надписи, пояснения к полям ввода и вывода, расшифровка <Текст 1,2,3>, <Результат 1,2,3> делаются мной самостоятельно вместо введённых Вами <А, В, С. D, Результат, Текст и т.д.>.
Кнопки формы <Очистить> и <Рассчитать> желательно GIF, вставьте любые - позже нарисую сам.
Образец таблицы формы и страницу вывода результатов вышлю по запросу на E-mail, если надо (внешний вид, расположение полей и т.д.)
Оплата желательно в Киеве или через Privat24, возможны варианты. Свернуть
Нужно сделать несложный скрипт, работающий на стороне клиента (JavaScript) в любом браузере.
ТЗ:
1. Пользователь вводит 4 числа (А, B, С, D) в соответствующие окна формы (A, B, C, D).
Все числа положительные (+), целые (без запятой), в поля ввода нельзя вводить ноль (<0>) и больше шести знаков (1-999999), незаполненное пользователем поле считать как единицу (<1>).
2. Скрипт считает однократно введённые числа по трём формулам :
Формула 1 - <0,45А-0,45В+0,042С-0,25D>
Формула 2 - <0,27А-0,2В+0,02С>
Формула 3 - <0,12А+0,02С>
3. Выводятся результаты одновременно всех трёх формул на этой же или другой странице (но не pop-up) :
Результат 1
Результат 2
Результат 3
Результат округлять до запятой.
Внизу после результатов вычислений - текст, выводимый в соответствии с полученным результатом :
если наименьшее значение у <Результат 1> - <Текст 1>, если наименьшее значение у <Результат 2> - <Текст 2>, если наименьшее у <Результат 3> - <Текст 3>.
Надписи, пояснения к полям ввода и вывода, расшифровка <Текст 1,2,3>, <Результат 1,2,3> делаются мной самостоятельно вместо введённых Вами <А, В, С. D, Результат, Текст и т.д.>.
Кнопки формы <Очистить> и <Рассчитать> желательно GIF, вставьте любые - позже нарисую сам.
Образец таблицы формы и страницу вывода результатов вышлю по запросу на E-mail, если надо (внешний вид, расположение полей и т.д.)
Оплата желательно в Киеве или через Privat24, возможны варианты. Свернуть
$15
5 заявок
Закрыт
Нужен сайт литературного салона, а лучше такой модуль для PHP-NUKE .
Необходимы возможности вывода статистики по:
авторам, названию произведений, жанру, ... Читать дальше
Необходимы возможности вывода статистики по:
авторам, названию произведений, жанру, ... Читать дальше
Нужен сайт литературного салона, а лучше такой модуль для PHP-NUKE .
Необходимы возможности вывода статистики по:
авторам, названию произведений, жанру, уровню автора, дате публикации, рецензиям, оценке читателей, количеству читателей, оценке компетентного жюри, статусу о прочтении. Необходимы возможности изменения логина на выбранный автором псевдоним, фиксации имен читателей, написанных ими рецензий и выставленных оценок на произведения. Основная особенность модуля - наличии внутренней валюты (баллов или кредитов), кредиты должны начисляться читателям за прочтение (на прочтение должно отводиться минимальное время в зависимости от объема произведения) произведений и написание рецензий (рецензии также должны содержать минимальную длину), в свою очередь с автора должны взиматься кредиты за публикацию произведения, рекламу произведения (администратор должен иметь возможность определения количества кредитов начисляемых и взимаемых автоматически за описанные выше действия). Также должна присутствовать возможность передачи кредитов, модераторы (члены компетентного жюри) должны автоматически получать кредиты за определенный промежуток времени. Также необходима возможность объявления проводимых конкурсов (для членов компетентного жюри и авторов имеющих право на это (получает с определенным администратором уровнем, уровень автора определяется полученными им оценками, количеством рецензий и произведений)). Естественно очень важна безопасность, все IP должны сохраняться, все действия модераторов тоже, все переводы кредитов также должны сохраняться и само собой должна иметься защита от взлома включающая блокировку. Свернуть
Необходимы возможности вывода статистики по:
авторам, названию произведений, жанру, уровню автора, дате публикации, рецензиям, оценке читателей, количеству читателей, оценке компетентного жюри, статусу о прочтении. Необходимы возможности изменения логина на выбранный автором псевдоним, фиксации имен читателей, написанных ими рецензий и выставленных оценок на произведения. Основная особенность модуля - наличии внутренней валюты (баллов или кредитов), кредиты должны начисляться читателям за прочтение (на прочтение должно отводиться минимальное время в зависимости от объема произведения) произведений и написание рецензий (рецензии также должны содержать минимальную длину), в свою очередь с автора должны взиматься кредиты за публикацию произведения, рекламу произведения (администратор должен иметь возможность определения количества кредитов начисляемых и взимаемых автоматически за описанные выше действия). Также должна присутствовать возможность передачи кредитов, модераторы (члены компетентного жюри) должны автоматически получать кредиты за определенный промежуток времени. Также необходима возможность объявления проводимых конкурсов (для членов компетентного жюри и авторов имеющих право на это (получает с определенным администратором уровнем, уровень автора определяется полученными им оценками, количеством рецензий и произведений)). Естественно очень важна безопасность, все IP должны сохраняться, все действия модераторов тоже, все переводы кредитов также должны сохраняться и само собой должна иметься защита от взлома включающая блокировку. Свернуть
$10
9 заявок
Закрыт
ссылка
Готов рассмотреть установку любой другой системы с похожей функциональностью.
Важные условия:
1. Возможность работы с флеш-баннерами
2. Возможность входа ... Читать дальше
Готов рассмотреть установку любой другой системы с похожей функциональностью.
Важные условия:
1. Возможность работы с флеш-баннерами
2. Возможность входа ... Читать дальше
$30
указан исполнитель
Закрыт
Необходимо создать дизайн сайта и сверстать одну страницу, все остальное доделаю сам. Тематика сайта - ночные клубы, развлечения, культурно-развлекательные центры. ... Читать дальше
Необходимо создать дизайн сайта и сверстать одну страницу, все остальное доделаю сам. Тематика сайта - ночные клубы, развлечения, культурно-развлекательные центры. Сайт - рекламного агенства. Свернуть
$30
Завершен