Вопрос № 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 поставщика в таблице
товары, и если есть, выдавать ошибку/предупреждение и не удалять.
Отвечает: Проходящий Мимо
Здравствуйте, Андрей Побережный!
Есть ветка "СУБД и 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 (выполнить обработку поступивших сообщений)