Вопрос № 61399: уважаемые эксперты, подскажите пож.как в дельфи работать с датой.
например, мне нужно из текущей даты получить название месяца. и еще необходимо отобрать записи из бд (бд в Access, ADO), последнее редактирование которых было десять дней назад. да...Вопрос № 61412: Здравствуйте!
Вопрос такой: есть программа, написанная в среде "Foxpro 2.6", DOS-приложение. Она морально устарела, но нужна в работе. Основное неудобство в том, что на печать выводит документ только в LPT-порт.
Большинство современ...
Вопрос № 61.399
уважаемые эксперты, подскажите пож.как в дельфи работать с датой.
например, мне нужно из текущей даты получить название месяца. и еще необходимо отобрать записи из бд (бд в Access, ADO), последнее редактирование которых было десять дней назад. дату последнего редактирования я сохраняю в отдельной таблице в бд. а вот как решить задачу "десять дней назад" не знаю. помогите, плз. очень надо, курсовая горит.
Отправлен: 05.11.2006, 21:49
Вопрос задала: Ladykey (статус: Посетитель)
Всего ответов: 3 Мини-форум вопроса >>> (сообщений: 4)
Отвечает: sir henry
Здравствуйте, Ladykey!
Если дату редактирования Вы сохраняеете в отдельном поле, то можно воспользоваться функцией DaysBetween(), которая возвращает кол-во дней между двумя датами. Эту функцию можно поместить прямо в SQL запрос.
Название месяца можно получить с помощью функции FormatDateTime(Format, date): string;
Здесь Format - это строка, которая задает формат вывода даты. Если Format будет содержать только 'mmmm', то выйдет только название месяца. Вот пример:
ShowMessage(FormatDateTime('mmmm', Now));
Ответ отправил: sir henry (статус: Академик) Россия, Красноярск ---- Ответ отправлен: 06.11.2006, 04:50
Отвечает: Monah
Здравствуйте, Ladykey!
Процедура Decodedate(Date:TdateTime; var Year, Month, Day:Word); тут думаю все понятно. Вообще датта хранится в виде Double - число с плавающей точкой. эквивалент тип Real. В целой части хранится количество суток, в дробной часть суток - учноженая на 24 дает часы. Поэтому можно вычислить разницу
var
d1,d2:TDateTime;
r:Double;
r:=d1-d2;
--------- festina lente
Ответ отправил: Monah (статус: 7-ой класс)
Ответ отправлен: 06.11.2006, 05:58
Отвечает: PaVeL_Ekt
Здравствуйте, Ladykey!
Если нужно 10 дней назат просто возьми и сделай так:
var Dte:TDateTime;
...
Dte:=Date-10;
Если на 10 больше то
Dte:=Date+10;
Соответственно.
однако хочу сразу заметить, что со временем так уже не получиться !!!
--------- Да поможет Вам F1, да сохранит Вас F2, во имя CTRL, ALT и святого DEL
Ответ отправил: PaVeL_Ekt (статус: 5-ый класс)
Ответ отправлен: 07.11.2006, 06:49
Вопрос № 61.412
Здравствуйте!
Вопрос такой: есть программа, написанная в среде "Foxpro 2.6", DOS-приложение. Она морально устарела, но нужна в работе. Основное неудобство в том, что на печать выводит документ только в LPT-порт.
Большинство современных принтеров подключаются к USB.
Есть исходный код программы на FoxPro. Языка FoxPro я не знаю.
1. Существует ли конвертер кода из "FoxPro" в "Delphi" или "C++".
2. Можно ли каким-то образом добиться, чтобы из этой программы печатать документы на USB-принтере?
Заранее спасибо.
Отправлен: 06.11.2006, 02:41
Вопрос задал: EvgeneyS (статус: Посетитель)
Всего ответов: 1 Мини-форум вопроса >>> (сообщений: 0)
Отвечает: sir henry
Здравствуйте, EvgeneyS!
Однако вопросы эти отнюдь не по программированию. :)
1. Именно из FoxPro конвертеров, насколько мне известно не существует. Мало того, подобные конвертеры, например из C++ в Pascal/Delphi конвертируют не весь код и Вам все равно придется убивать время, отыскивая то, что не сконвертировано и конвертировать вручную.
Программу в любом случае придется писать заново, т.к. в Foxpro для ДОС и, например в Delphi разный подход к описанию окошек и компонентов на них.
2. Это сделать легко. Вы расшариваете свой USB-принтер как сетевой, например под именем HP. В сети он у Вас будет выглядеть что-то типа \MyCompHP.
Далее, с помощью команды net use назначаете его на LPT порт:
net use LPT1: \MyCompHP
и все Ваши страдания с печатью документов автоматически разрешаться. :)
***************************** Совет:
Если Вы хорошо знаете логику работы и структуру базы данных программы, то Вы можете переписать ее на Delphi, учитывая особенности виндового интерфейса. Главное, о чем нужно думать - это логика работы и незагроможденность интерфейса пользователя. А сам интерфейс, в современных средах разработки, пишется легко и очень быстро.
Ответ отправил: sir henry (статус: Академик) Россия, Красноярск ---- Ответ отправлен: 06.11.2006, 06:00