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

Вниз

перетаскивание записей в dbgrid e   Найти похожие ветки 

 
radiant09   (2004-09-09 21:37) [0]

имеется таблица в бд, представляющая из себя утвержденную форму документа [num № пункта(int), name наименов-е свед. (ch), code код свед. (ch)].
 требуется в dbgrid"e реализовать механизм перестановки пунктов с соотв. изменением num в базе, путем перетаскивания записей.  
 буду особенно признателен, если кто-нибудь скинет кусок исходника подобной задачи.


 
Zacho ©   (2004-09-09 21:54) [1]

1.Imho в гриде это нафиг не нужно и даже вредно.
2. Возможно, я просто не понял, нормально опиши задачу.


 
radiant09   (2004-09-09 22:10) [2]

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


 
megabyte ©   (2004-09-09 22:26) [3]

Ну м.б. тебе нужна различная сортировка и фильтрация. Там имеет место перестановка записей и полей.


 
radiant09   (2004-09-09 22:35) [4]

и по чему сортировать? мне нужно просто переставить пункты в определенном порядке, в базе то я поменяю нумерацию, а как это на экране сделать? при drag&drop там только координаты мыши есть, а вот как определить перед какой записью я отпустил перетаскиваемый пункт вот в чем вопрос?
  я не представляю как это можно сделать, и можно ли в принципе, может кто-нибудь знает как...


 
Zacho ©   (2004-09-09 22:49) [5]

Если такое действительно нужно (в чём я крайне сомневаюсь), то сделай это отдельно, (отедльная кнопка, пункт в меню и т.п.) например с помощью TListBox или ещё как-нибудь.
Imho, повторюсь, drag"n"drop в гриде в данном случае скорее вреден.
P.S. Думаю, что ты это знаешь, но на всякий случай напомню:
В TDBGrid данных нет, они есть в соответствующем TDataSet


 
radiant09   (2004-09-09 22:57) [6]

Ясный красный ) Мне вот интересно можно ли определить на какой записи стоит курсор, может через высоту ячеек и прочее, но что делать если там вертикальный scroll и т.д.?
  По другому то, конечно, можно, но больно неказисто на вид получится и вдобавок мне почему-то вперлось что я где-то похожее видел...


 
sniknik ©   (2004-09-10 08:15) [7]

> Мне вот интересно можно ли определить на какой записи стоит курсор,
не надо определять (ничего не даст), а курсор всегда стоит на текушей (в рекордсете) записи.

ну если хочется
type
 TMyDBGrid = class(TDBGrid);

и дальше
 TMyDBGrid(DBGrid1).Row - номер строки в гриде

а вот что может понадобится
DBGrid1.SelectedRows
(если делать то уж делать с возможностью граппу записей выделять)


 
HSolo ©   (2004-09-10 09:05) [8]

Может, я чего-то не понимаю, но зачем перетаскивать-то? У Вас же есть в таблице поле "№ п/п"? Ну так и пусть пользователь его меняет, как ему угодно, а потом жмет кнопку "Упорядочить", по которой выборка сортируется по этому полю.
А при вставке/удалении записей вообще можно автоматически менять значение этого поля, что-нибудь вроде
update MyTable set NumPP = NumPP+1 where NumPP >= :NewNumPP



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

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

Наверх





Память: 0.46 MB
Время: 0.032 c
9-1086630621
Elf
2004-06-07 21:50
2004.10.10
Математика+OpenGL


4-1094658891
Davinchi
2004-09-08 19:54
2004.10.10
Не получается отслеживать изменение буфера обмена


9-1083337186
OSokin
2004-04-30 18:59
2004.10.10
Цветные линии


3-1095140839
snake1977
2004-09-14 09:47
2004.10.10
Добавление большого количества записей


6-1091184051
Гость
2004-07-30 14:40
2004.10.10
WEBBROWSEr1





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский