Отправляет email-рассылки с помощью сервиса Sendsay
  Все выпуски  

RusFAQ.ru: Программирование на Delphi


РАССЫЛКИ ПОРТАЛА RUSFAQ.RU

/ КОМПЬЮТЕРЫ И ПО / Языки программирования / Delphi

Выпуск № 624
от 18.10.2006, 20:35

Администратор:Калашников О.А.
В рассылке:Подписчиков: 395, Экспертов: 77
В номере:Вопросов: 4, Ответов: 5


Вопрос № 58727: Уважаемые эксперты подскажите пожалуйсто как в Delphi создать экспорт в Excel только отфильтрованых данных БД. ...
Вопрос № 58741: Interbase/Firebird :Для примера есть таблица-справочник поставщиков SUPPLIER c полями ID и NAME и основная таблица товары GOODS, где есть ключ IDSUPPLIER для поля SUPPLIER.ID. Как создать хранимые процедуры или триггеры для: 1) Для д...
Вопрос № 58750: Как програмно в Delphi в колонтитуле экселевского файла номер текущей страницы и количество печатаемых страниц. Т.е. колонтитул должен выглядить следующим образом --> "Страница 1 из 5"...
Вопрос № 58758: Вобщем вопрос такой: как заставить обновлятся форму? При обработке больших файлов форма преходит в состояние "Не отвечает", хотя работа все равно идет(т.е. приложение не виснет), а при обработке небольших - все показывается. ...

Вопрос № 58.727
Уважаемые эксперты подскажите пожалуйсто как в Delphi создать экспорт в Excel только отфильтрованых данных БД.
Отправлен: 13.10.2006, 02:04
Вопрос задал: Глеб (статус: Посетитель)
Всего ответов: 1
Мини-форум вопроса >>> (сообщений: 0)

Отвечает: sir henry
Здравствуйте, Глеб!
Это две разные задачи:
1) Данные Вы фильтруете теми средствами, которыми работаете с Вашей БД;
2) экспорт осуществляете последовательным перебором полученного набора данных и занесением каждого значения в таблицу Экселя либо с помощью OLE, создав экземпляр Экселя с помощью функции CreateOleObject(), либо используя компонент Экселя с вкладки Servers.
Ответ отправил: sir henry (статус: Академик)
Россия, Красноярск
----
Ответ отправлен: 13.10.2006, 09:51


Вопрос № 58.741
Interbase/Firebird :Для примера есть таблица-справочник поставщиков SUPPLIER c полями ID и NAME
и основная таблица товары GOODS, где есть ключ IDSUPPLIER для поля SUPPLIER.ID.

Как создать хранимые процедуры или триггеры для:
1) Для добавления нового товара типа PROCEDURE ADDGOODS(..., SUPPLIERNAME, ....)
где SUPPLIERNAME название производителя. Она должна проверять наличие поставщика
в справочнике, если он есть, добавлять товар с найденным ID поставщика, если нет,
то добавлять поставщика (генератор SIPPLIER_ID_GEN), и добавлять новый IDSUPPLIER в новый товар.
2) При удалении поставщика проверять есть ли вхождения ID поставщика в таблице
товары, и если есть, выдавать ошибку/предупреждение и не удалять.

С Уважением,
Андрей
Отправлен: 13.10.2006, 09:01
Вопрос задал: Андрей Побережный (статус: Посетитель)
Всего ответов: 1
Мини-форум вопроса >>> (сообщений: 0)

Отвечает: Проходящий Мимо
Здравствуйте, Андрей Побережный!
Есть ветка "СУБД и Delphi", Вы написали немного не туда. Начнем:
1) Проверить на наличие поставщика можно так:
в процедуре заведите переменную, например i
(declare variable i integer;). Делаете запрос к таблице SUPPLIER
select count(*)
from SUPPLIER S
where S.ID = :код_поставщика
into :i; -- возвращаем колличество записей поставщиков, если оно 0,
if (:i = 0) then
begin
-- то здесь добавляем поставщика, запоминаем IDSUPPLIER
end;
После этого вставляем новый товар.
2) Проверить вхождение ID поставщика в таблице товаров можно аналогично. Для выдачи предупреждения нужно зарегестрировати в базе исключение:
CREATE EXCEPTION EX_DEL 'impossible delete record';
Если есть вхождение, генерируем исключение:
EXCEPTION EX_DEL; --операция удаления будет отменена.
Здесь описаны основные принципы, если будут вопросы - пишите на местный мини-форум.
---------
Carpe diem!
Ответ отправил: Проходящий Мимо (статус: 8-ой класс)
Ответ отправлен: 13.10.2006, 09:51


Вопрос № 58.750
Как програмно в Delphi в колонтитуле экселевского файла номер текущей страницы и количество печатаемых страниц. Т.е. колонтитул должен выглядить следующим образом --> "Страница 1 из 5"
Отправлен: 13.10.2006, 09:55
Вопрос задал: ASPIRIN (статус: Посетитель)
Всего ответов: 1
Мини-форум вопроса >>> (сообщений: 1)

Отвечает: Gladiator
Здравствуйте, ASPIRIN!

WorkSheet1.PageSetup.RightFooter:='Страница &P из &N';//Нумерация страниц
Ответ отправил: Gladiator (статус: 2-ой класс)
Ответ отправлен: 13.10.2006, 11:01
Оценка за ответ: 4
Комментарий оценки:
Я использовал уже такой код до задания вопроса. К сожалению ничего не получается.


Вопрос № 58.758
Вобщем вопрос такой:
как заставить обновлятся форму?

При обработке больших файлов форма преходит в состояние "Не отвечает", хотя работа все равно идет(т.е. приложение не виснет), а при обработке небольших - все показывается. Я использовал функцию Show и Update для форм.
Отправлен: 13.10.2006, 10:45
Вопрос задал: Baduin (статус: 1-ый класс)
Всего ответов: 2
Мини-форум вопроса >>> (сообщений: 2)

Отвечает: Лукьяненко Алексей Валериевич
Здравствуйте, Baduin!

Проблема не в том, что форма не обновляется - форма просто не обрабатывает системные сообщения, пока идет длительная операция! Попробуйте в коде Вашей длительной операции поставить вызовы Application.ProcessMessages (выполнить обработку поступивших сообщений)
Ответ отправил: Лукьяненко Алексей Валериевич (статус: 5-ый класс)
Ответ отправлен: 13.10.2006, 10:51

Отвечает: Monah
Здравствуйте, Baduin!
если работа идет в цикле, вставь application.procesmessage; и все. А если нет, то переходи на потоки.
Ответ отправил: Monah (статус: 4-ый класс)
Ответ отправлен: 13.10.2006, 13:59
Оценка за ответ: 5


Отправить вопрос экспертам этой рассылки

Приложение (если необходимо):

* Код программы, выдержки из закона и т.п. дополнение к вопросу.
Эта информация будет отображена в аналогичном окне как есть.

Обратите внимание!
Вопрос будет отправлен всем экспертам данной рассылки!

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


Форма НЕ работает в почтовых программах The BAT! и MS Outlook (кроме версии 2003+)!
Чтобы отправить вопрос, откройте это письмо в браузере или зайдите на сайт RusFAQ.ru.


© 2001-2006, Портал RusFAQ.ru, Россия, Москва.
Идея, дизайн, программирование: Калашников О.А.
Email: adm@rusfaq.ru, Тел.: +7 (926) 535-23-31
Авторские права | Реклама на портале
Версия системы: 4.37 от 04.10.2006
Яндекс Rambler's Top100

В избранное