![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
3 вопроса про DBgrid и базу данных
JazY © (2006-01-07 02:45:00)1 Вопрос.
Есть DbgridEh (этот компонент похож на обычный DBgrid, но с некоторыми наворотами), который отображает Аксесовскую таблицу (через компонент Adotable). С этой таблицей работают 2 человека. Один человек добавляет информацию о произведенном товаре. Другой человек, должен в поле "Клиент" отметить какому клиенту пойдет те или иные стройматериалы. Проблема в том, что к одного и тоже клиента может быть куча названий: ЧП Пупкин, ЧП Запупыркин, ООО ЗашибисьТрейдинг и.т.д. Необходимо, чтобы человек, который заполняет поле "клиент" мог ориентироваться на определенный список. Это позволит, во-первых, избежать опечаток и во-вторых, в поле клиент указывать актуальную информацию. Вопрос как это сделать? Можно ли чтобы в каждой ячейке столбца "Клиент" появлялся выпадающий список или кнопка. Причем если кнопка, то нажав на нее появляется окно и в этом окне список клиентов и кнопка. Нажав на кнопку выбранный из списка клиент, попадает именно в ту ячейку в которой была нажата кнопка.
2 Вопрос.
Как я уже говорил, с таблицей работаю 2 человека (вернее 3). Очень важно, чтобы одновременно люди не могли работать с одной ячейкой. Т.е если один редактирует ячейку, то другой попытавшись залезить в нее получил сообщение, что мол ячейка блокирована. И еще! Допустим один человек добавил запись. как бы проинформировать другого, что мол была добавлена новая запись. Чтобы он мог нажать на Refresh и просмотреть на записи, которые были добавлены. Идеальный вариант, что программа сама отслеживает изменения и если в таблицу были добавлены новые значения, то происходит этакий автоматический Refresh.
3. Вопрос.
У меня есть поле в Dbgrid "Дата готовности". В это поле попадает информация о планируемой дате готовности. Есть также текущая дата.
Необходимо проверить при загрузке таблицы, если текущая дата равна или больше даты готовности и в поле "готовность" нет текста "Готов", то в поле "контроль" надо добавить текст "Внимание".
3 Вопрос и 1 самые важные. Как положено новичку, очень нужен исходник. Заранее благодарен.
sniknik (2006-01-07 16:23:00) [1]> Но я изучаю Делфи 2 месяца
начни тогда с чего попроще
> но сейчас бы хотелось 2 ответа услышать на эти вопросы
но тебе ответили... -> [1]
ответы были видать не поняты, придется разжовывать основы (и нет гарантии, что с другим вариантом ответа не будет тогоже самого)...
а книги для того и пишут чтобы разжовывать. одним автором для многих начинающих, а не наоборот под каждого начинающего отдельную книгу (хотя... сколько платиш? при достаточной оплате можно и под одного написать).
не с того начал. имхо. сначала читаеш, потом пишеш. не получается, сначала пытаешся разобраться сам, потом постиш в форум. а у тебя наоборот. (вряд ли кто с нуля тебе согласится все обьяснять)
JazY (2006-01-07 15:01:00) [2]Пора, ой пора. Но я изучаю Делфи 2 месяца, поэтому пока ограничиваюсь мегатоннами информации, что из сети скачал. Книжку куплю, но сейчас бы хотелось 2 ответа услышать на эти вопросы. Я просто программу хочу сделать для собственных нужд до выхода на работу и уже со следующей недели начать ее обкатывать.... но осталось 2 дня, а у меня вот эти задачи не разрешены.
Плохиш (2006-01-07 13:39:00) [3]
> JazY (07.01.06 13:31) [5]
Не пора ли книжку какую прикупить?
JazY (2006-01-07 13:31:00) [4]
> задавай по одному вопросу за раз, не устраивай помойку.
Приятно, конечно, что мои вопросы - помойка, но вполне возможно, что действительно не оранжерея. :)))))
Как бы то нибыло 2 простых вопроса и все.... меньше не как.
1. Как работать с Lookup-полями и
2. Как определить, что данные были обновлены
Скажите, а?
sniknik (2006-01-07 12:40:00) [5]> Т.е получается прежде чем открыть таблицу, мне нужно запустить соответсвующий запрос и только за тем открывать таблицу?
идаже больше, таблицу открывать совсем не следует, следует необходимые данные получать следующим запросом.
> В SQL не силен и мне бы было проще решить эту задачу через изменения в DBgrid.
или учи, или бросай заниматься базами. и, еще... в DBgrid-ах данных нет! нечего изменять.
app (2006-01-07 12:01:00) [6]задавай по одному вопросу за раз, не устраивай помойку.
JazY (2006-01-07 05:03:00) [7]
> опроса по таймеру на наличие новых данных
А как может выглядеть такой запрос? Я имею ввиду как организовать такой запрос? Через SQL запрос или через компонент Adotable... может у него возможность есть отлавливать изменения в таблице?
> 3. Решается выполнением запроса типа
Опять же извеняюсь за ламерский вопрос, но вы имеете ввиду запрос через SQL? Т.е получается прежде чем открыть таблицу, мне нужно запустить соответсвующий запрос и только за тем открывать таблицу? А нельзя ли выполнить данную задачу через DBgrid? Я просто к чему это говорю. В SQL не силен и мне бы было проще решить эту задачу через изменения в DBgrid.
> Это совершенно не положено ни новичку, ни неновичку.
Я не хотел сказать, что мастера должны новичку указывать код. Конечно, нет. Я хотел сказать, что положено в смысле, что мне как новичку тяжело понять что было сказано без кода или подробных объесняний.
Поэтому, конечно, я благодарен за ответы и вообще спасибо, но если вы или другие участники форума найдут возможным указать код или подробней объяснить это бы очень сильно помогло.
Плохиш (2006-01-07 03:29:00) [8]1. Создай отдельную таблицу "Клиент", из которой с помощью Lookup-поля будешь вставлять значения в свою таблицу.
2. Сделай кнопку и меняй ей цвет или её активность, после опроса по таймеру на наличие новых данных
3. Решается выполнением запроса типа "UPDATE mytableSET готовность='Внимание' where готовность<>'Готов' and <Дата готовности><= <Текущая дата>"
> Как положено новичку, очень нужен исходник.
Это совершенно не положено ни новичку, ни неновичку.