Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Базы";
Текущий архив: 2005.03.13;
Скачать: [xml.tar.bz2];

Вниз

dxDBGrid и Checkbox   Найти похожие ветки 

 
slla   (2005-02-10 11:26) [0]

Здравствуйте!

есть 3 таблицы Name, Project и Pos
Name  - 2 поля - id и name_p
Project - 2 поля - id и project_name
Pos - 4 поля - id_n (id строки таблицы Name), id_p (id строки таблицы Project), id , got_p (1 или 0)

в DbGRIDE отображаются данные таблицы NAme

Выбираем строку DBGrida, если Клиенты солгласны, выбираем checkbox, отмечаем его и нажимаем кнопку OK ...в таблицу POS заносятся данные id_name (ID Clienta, ID Projecta, ID (autoinc), got_p=1)
 
Нужно чтобы при перемещении по строкам DbGrida , если в таблице POS есть такая запись, где id(таблицы NAme)=id_n (Таюлицы POS) и got_p=1 (Таблицы POS) было checkbox.Checked:=true и btOK.Enable:=false (чтобы не вносили еще раз в базу данные);

В какой обработчик события запихать код .... события OnChange не нашел ...


 
Ega23 ©   (2005-02-10 11:28) [1]

TDataSet.AfterScroll  ?


 
REA   (2005-02-10 11:29) [2]

OnScroll?


 
REA   (2005-02-10 11:32) [3]

OnScroll?


 
stud ©   (2005-02-10 12:09) [4]

а не проще ли сформировать нужный набор данных? где будет например вычисляемое поле 1 - есть в пос, 0- нету в пос.


 
slla   (2005-02-10 13:08) [5]

Пользователь видит весь список соттветственно забивает по одному тому кому дозвонился и я в ношу в базу что звонок сделан. Зачем и какой набор данных нужно формировать ...нужно чтобы он просто видел сам что в эту компанию позвонили а в эту нет....из всего списка...


 
Ega23 ©   (2005-02-10 13:09) [6]

Мнэ-э-э...
А может имеет смысл выводить на экран список тех компаний, куда надо позвонить???


 
Sergey13 ©   (2005-02-10 13:15) [7]

ИМХО в любом случае этот checkbox должен опираться на что-то? Если это надо хранить, то на реальное поле, если нет - на виртуальное. Если надо хранить (а инача при каждом запуске все чисто), то наверное стоит добавить какой-нить датовый атрибут.


 
slla   (2005-02-10 13:34) [8]

to Ega23 а в чем разница?... грубо говоря звонить надо всем, при этом допустим ,,,есть
Фирма1
Фирма2
Фирма3
Фирма4
и т.д.

пользователь отмечает чебоксом фирму в которую он позвонил ..например Фирма2(допустим Фирма1 - занято) ... и т.д. т.е. строго по списку от 1 до 10(например) не получается ...

Поэтому он может запутаться и Смотрит снова на Фирма2 ... при этом видит что чекбокс отмечен значит звонить не надо ...

to Sergey13
он опирается на значение поля got_p=1 (если произошел дозвон) или got_p=0 если нет


 
stud ©   (2005-02-10 13:37) [9]


> нужно чтобы он просто видел сам что в эту компанию
> позвонили а в эту нет

так если нужно чтобы он видел, вот это поле и будет показывать звонил он туда уже или нет


 
slla   (2005-02-10 13:41) [10]

to Stud может я уже не понимаю ничего но поле got_p оно и есть по дефолту 0 если дозвонились то 1 //
мне нужно знать на какое событие dbgrida вешать запрос к базе и узнавать 0 или 1


 
Sergey13 ©   (2005-02-10 13:49) [11]

2[8] slla   (10.02.05 13:34)
>он опирается на значение поля got_p=1 (если произошел дозвон) или got_p=0 если нет

slla   (10.02.05 11:26)
>Name  - 2 поля - id и name_p
>в DbGRIDE отображаются данные таблицы NAme

Ты уж давай точнее. А если он на Фирму 2 звонил в позапрошлом году, еще раз надо звонить? И причем тут таблица Project? При другом проекте на Фирму2 надо звонить еще раз?

Че-то тут не того, ИМХО.


 
Ega23 ©   (2005-02-10 13:52) [12]

Че-то тут не того, ИМХО.

Да всё как обычно. Человек хочет тащить на клиент всю выборку, при этом данные в гриде редактировать.


 
slla   (2005-02-10 13:54) [13]

to sergey13 на один проект нужно позвонить только один раз ....

в таблице POS хранятся данные на каком проекте в какую фирму звонили...


 
slla   (2005-02-10 13:56) [14]

to ega23 /// в гриде ничего не редактируется в гриде отображается только список компаний и все...


 
slla   (2005-02-10 13:56) [15]

to ega23 /// в гриде ничего не редактируется в гриде отображается только список компаний и все...


 
slla   (2005-02-10 13:59) [16]

получилось вот что ....

procedure TfmActiveSMIpast.dxDBGrid1ChangeNode(Sender: TObject; OldNode,
 Node: TdxTreeListNode);
begin
DataModule.adotable.Refresh;
if (dmMain.adotablegot_p.AsInteger=1)
then
begin
CheckBox1.Checked:=True;
end
else
CheckBox1.Checked:=false;

так правильно?


 
slla   (2005-02-10 14:01) [17]

получилось вот что ....

procedure TfmActiveSMIpast.dxDBGrid1ChangeNode(Sender: TObject; OldNode,
 Node: TdxTreeListNode);
begin
DataModule.adotable.Refresh;
if (dmMain.adotablegot_p.AsInteger=1)
then
begin
CheckBox1.Checked:=True;
end
else
CheckBox1.Checked:=false;

так правильно?


 
slla   (2005-02-10 14:01) [18]

получилось вот что ....

procedure TfmActiveSMIpast.dxDBGrid1ChangeNode(Sender: TObject; OldNode,
 Node: TdxTreeListNode);
begin
DataModule.adotable.Refresh;
if (dmMain.adotablegot_p.AsInteger=1)
then
begin
CheckBox1.Checked:=True;
end
else
CheckBox1.Checked:=false;

так правильно?


 
slla   (2005-02-10 14:02) [19]

получилось вот что ....

procedure TfmActiveSMIpast.dxDBGrid1ChangeNode(Sender: TObject; OldNode,
 Node: TdxTreeListNode);
begin
DataModule.adotable.Refresh;
if (dmMain.adotablegot_p.AsInteger=1)
then
begin
CheckBox1.Checked:=True;
end
else
CheckBox1.Checked:=false;

так правильно?


 
Sergey13 ©   (2005-02-10 14:02) [20]

2 [13] slla   (10.02.05 13:54)
ИМХО. Если ты переделаешь логику с
>в DbGRIDE отображаются данные таблицы NAme

на

в DbGRIDE отображаются данные из запроса, отражающего все необходимые звонки по текущему проекту.

тебе будет проще разобраться и с checkbox-ом.


 
slla   (2005-02-11 09:17) [21]

Решил не много упростить программу .... и переделать по совету форумчан ....

Встал такой вопрос есть список ВСЕХ ФИРМ (табл. NAME) , СПИСОК ПЕРСОНАЛА (табл. Personal) И СПИСОК ПРОЕКТОВ (табл. PROJECT)и ТАБЛИЦА Кому ПОЗВОНИТЬ (куда заносится список в какую фирмуц и кому позвонить) (напр. CALL)/

Есть форма на ней 3 dxDBGrid (1 список названий фирм, 2 список сотрудников и 3 пустая туда заносится кому позвонить) и  кнопка по нажатию которой мне нужно сформировать данные в таблицу и отобразить в 3 DBGrid ...

Связь с данными базы либо через AdoTable или ADOQuery///

Я установил свойство MultiSelect для DBGrida для выбора одной или нескольких фирм которым нужно позвонить ....

Если не сложно помогите создать цикл который будет проверять список выделенных фирм (при этом нужно учитывать id сотрудника кому нужно звонить) и запихивать в базу и dbGrid 3 ...


 
Sergey13 ©   (2005-02-11 09:33) [22]

2[21] slla   (11.02.05 09:17)
>3 пустая туда заносится кому позвонить
Почему пустая то? Может я не понял логику твоей работы, но наверное при формировании проекта определяется кому и куда надо звонить. Т.е. при оформлени нового проекта в CALL заносятся все необходимые звонки с пометкой о выполнении, которая при вводе по умолчанию =0. Именно на это поле и должен работать твой чекбокс.


 
stud ©   (2005-02-11 10:08) [23]

судя по всему главная таблица у тебя
> СПИСОК ПРОЕКТОВ в ней находится все что тебя интересует наверное ее достаточно. и может есть смысл по умолчанию выводить тлоько те проекты, по которым необходимо сделать звонки, а далее по желанию. на кой менеджеру нужно смотреть кому он уже звонил? и может лучше не чекбокс, а в гриде красным цветом отображать ПОЗВОНИ, или зеленым ПОЗВОНЕНО)))


 
slla   (2005-02-11 13:47) [24]

так и не нащел где красить грид ...


 
stud ©   (2005-02-11 15:22) [25]

так по гриду мышкой, список колонок, и выбирай нужное событие. крась там что хочеш.
кстати, а что именно хочеш закрасить?



Страницы: 1 вся ветка

Форум: "Базы";
Текущий архив: 2005.03.13;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.51 MB
Время: 0.04 c
1-1109669096
XP
2005-03-01 12:24
2005.03.13
Operator not applicable to this operand type


3-1108018605
Mars
2005-02-10 09:56
2005.03.13
Как сделать выборку из базы с помощью SQL,


1-1109596209
Cat
2005-02-28 16:10
2005.03.13
Почти одинаковые два проекта


6-1105213067
Alexander Makhanev
2005-01-08 22:37
2005.03.13
Как узнать, находится ли комп в домене?


3-1107522327
mefodiy
2005-02-04 16:05
2005.03.13
Создание хранимой процедуры в Oracle в RunTime





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский