|
|
|
Смена приоритета...
|
|||
|---|---|---|---|
|
#18+
Давненько не заглядывал... Всем приветы!!! Вопрос следующий... Есть таблица "Отдел". В ней два поля: Num_otd и Name_otd. Как считаете, как проще реализовать на форме, отображающей список существующих отделов, смену приоритетов. Т.е. поменять нумерацию отделов. К примеру существует 5 отделов со своим порядковым расположением. При создании нового отдела его порядковый номер должен быть, к примеру, третьим. То бишь вставить его в середину и сместить остальные (по нумерации) ниже... Чтение записей из существующей таблицы, далее, её удаление и создание новой с новым порядком не подходит. Можно принудительно менять каждому отделу номер при отображении на форме, но отделов может быть очень много, да и ошибки возможны... Поэтому хотелось бы чтобы выбрав необходимую цифру для нового отдела остальная нумерация (та что ниже) автоматически смещалась на единицу. Что посоветуете? Спасибо заранее... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.09.2003, 11:47 |
|
||
|
Смена приоритета...
|
|||
|---|---|---|---|
|
#18+
вроде так: 1. запомнить строку с изменением Если номер уменьшается 2а. увеличить на единицу все номера >= нового и < старого номера. если номер увеличивается 2б. уменьшить на единицы все номера > старого и <= нового номера. 3. Присвоить новый номер запомненой строке. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.09.2003, 12:03 |
|
||
|
Смена приоритета...
|
|||
|---|---|---|---|
|
#18+
Имхо нужно поле - рейтинг. Код отдела не трогать вообще. Во всех списках при выборе сортировка по полю рейтинг. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.09.2003, 12:15 |
|
||
|
Смена приоритета...
|
|||
|---|---|---|---|
|
#18+
2 incold: Естественно, об том и речь. Но ентот рейтинг иногда приходится менять, когда вводишь новый отдел. А уж сортировать по нему - это также естественно, что можно было и не говорить... Вопрос именно в том, как реализовать смену порядка чисел в определённом поле. 2 sasha_1: Спасибо за мысли. Так вот как лучше оценивать данные этого поля - циклом по записям и менять в рекордсете или можно как то попроще? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.09.2003, 13:03 |
|
||
|
Смена приоритета...
|
|||
|---|---|---|---|
|
#18+
а не лучше ли сделать несколько полей для целей сортировки ? 1 подразделения по филиалу, департаменту. 2 подразделения по департаменту, филиалу. 3 итд и выбирать неапосредственно один из фиксированных порядков ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.09.2003, 13:09 |
|
||
|
Смена приоритета...
|
|||
|---|---|---|---|
|
#18+
Я увидел такой текст: Есть таблица "Отдел". В ней два поля: Num_otd и Name_otd Поле рейтинг не видно Если номер отдела является ключевым полем и одновременно рейтингом, то я указывал именно на то, что поле рейтинг должно быть не ключевым. По поводу интерфейса. Я бы сделал что-то вроде такой формочки, которая вызывается при выборе ссылки для проекта VBA: Tools -> Reference Т.е. две кнопочки поднять рейтинг, опустить (кого опустить?! ) рейтинг. Кнопка работает для текущей записи. Поле рейтинг сделать скрытым и изменять его только программно. Алгоритм работы кнопочек может быть любой (в т.ч. предложенный sasha_1) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.09.2003, 13:10 |
|
||
|
Смена приоритета...
|
|||
|---|---|---|---|
|
#18+
Спасибо всем за советы... 2 АлексейК & incold: Думаю, что заворачивать такие весчи для этой процедуры нет смысла. Задача проще, чем кажется. Всего то нужно при вводе нового отдела определить для него, в какой позиции в списке отделов он будет стоять. Дальше - всё, никаких перестановок не требуется. А затем при выводе инфы, относящейся к тому или иному отделу, она (инфа) будет располагаться именно по релевантности этих подразделений. Так всё же мож подсоветуете как лучше организовать считывание и сравнение нового значения рейтинга со старыми и соответственно их последующая замена. Я так вижу решение только с помощью циклов... Типа Код: plaintext 1. 2. 3. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.09.2003, 15:17 |
|
||
|
Смена приоритета...
|
|||
|---|---|---|---|
|
#18+
...бьюся, бьюся... ну не получается у меня с рекордсетами... Токма не ругаться! Подскажите, плиз, как считывать значения одного из полей для каждой записи в рекордсете? Я сравниваю значение определенного поля на форме со значениями поля для каждой записи в таблице. Затем при определенных раскладах меняю некоторые из них (в таблице) на +1. Как добиться смены значения в поле конкретной записи? С уважением... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.09.2003, 13:45 |
|
||
|
Смена приоритета...
|
|||
|---|---|---|---|
|
#18+
Код: plaintext 1. 2. 3. 4. 5. 6. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.09.2003, 15:23 |
|
||
|
Смена приоритета...
|
|||
|---|---|---|---|
|
#18+
Вариант который я предлагал более простой и более универсальный Но раз уж так хочется, то sasha_1 уже сказал правильное решение. Пример: Хочу добавить новый отдел с рейтингом 5 update [отделы] set [рейтинг]=[рейтинг]+1 where [рейтинг]>=5 Добавление записи с рейтингом 5 (любым способом) Обновление данных на форме ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.09.2003, 15:30 |
|
||
|
Смена приоритета...
|
|||
|---|---|---|---|
|
#18+
если рейтинг изменяется только у нового отдела, то сделай как говорит incold и не парься. мои излияния относятся к ситуации когда меняется рейтинг у уже существующего отдела. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.09.2003, 15:38 |
|
||
|
Смена приоритета...
|
|||
|---|---|---|---|
|
#18+
Вот спасибо, за отзывчивость... Давайте условимся: это не рейтинг, а просто порядковый номер в списке отделов, или приоритет. И при вводе нового отдела, значения приоритетов некоторых отделов так или иначе изменится, если , конечно ему (новому) не поставят самый низкий приоритет. 2 sasha1: В твоем варианте идет перебор всех записей, начиная с первой. А нужно апдейт делать только для тех, что ниже вновь введенной. 2 incold: Думаю этот вариант самый простой и приемлемый. Спасибочки... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.09.2003, 16:02 |
|
||
|
Смена приоритета...
|
|||
|---|---|---|---|
|
#18+
2 G&P У тебя код (порядковый номер) отдела ключ или нет? Если да то см. мое первое сообщение. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.09.2003, 16:10 |
|
||
|
Смена приоритета...
|
|||
|---|---|---|---|
|
#18+
Нет, конечно не ключ. Просто отдельное поле... Всё получилось, спасибо... Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.09.2003, 16:36 |
|
||
|
Смена приоритета...
|
|||
|---|---|---|---|
|
#18+
а я бы сделал поле этого рейтинга флоутом... и изначально раздавал бы с большими дырами. и действительно не парился бы ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.09.2003, 16:51 |
|
||
|
Смена приоритета...
|
|||
|---|---|---|---|
|
#18+
2 G&P Все это конечно хорошо, но рано или поздно возникнет потребность поменять приоритет двух отделов. Например, за плохую/хорошую работу опустить/поднять приоритет отдела автоматизации И придется делать новую процедуру. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.09.2003, 16:58 |
|
||
|
Смена приоритета...
|
|||
|---|---|---|---|
|
#18+
тогда милости просим в мой алгоритм. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.09.2003, 16:59 |
|
||
|
Смена приоритета...
|
|||
|---|---|---|---|
|
#18+
Над чем щас и парюсь... Сначала хотел просто менять приоритет при вводе нового отдела. А теперь нужно еще и менять расположение отделов, совсем как incold сказал... Короче пытаюсь расположить на форме контрол-счетчик, и считываю текущую запись из подчиненной формы. При событии SpinUp счетчика или SpinDown соответственно меняю приоритеты всех записей по отношению к новому приоритету... Короче, гемор продолжается... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.09.2003, 17:16 |
|
||
|
Смена приоритета...
|
|||
|---|---|---|---|
|
#18+
В-о-о-т, а я говорил Не знаю у кого как а я придерживаюсь стандартного для продуктов мелкософт интерфейса. Внешний вид (уже упоминалось) похоже при добавлении новой ссылки в VBA. Новая запись всегда добавляется с самым низким рейтингом. На форме есть две кнопочки вверх и вниз После добавления новой записи фокус на запись и жми кнопку вверх пока не достигнешь нужного уровня. Выгода в том, что изменяются только две записи: - при движении вверх текущая и верхняя - при движении вниз текущая и нижняя ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.09.2003, 17:24 |
|
||
|
Смена приоритета...
|
|||
|---|---|---|---|
|
#18+
2 incold: Вообщем я так и сделал, только вот никак не могу понять где ошибка. Вроде бы всё правильно... Алгоритм следующий: - создал две кнопки (вниз, вверх); - при нажатии на "вверх" сначала ищу запись на единицу большую, чем у текущей; - меняю её номер на 1 меньше; - затем прибавляю 1-цу к номеру текущей записи; - рекуери формы; - делаю текущей запись с которой всё начиналось... Так вот у текущей записи номер меняется, а у соседней, которой положено меняться - нет... Проверю запрос на обновление... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.09.2003, 17:47 |
|
||
|
Смена приоритета...
|
|||
|---|---|---|---|
|
#18+
Последний вопрос и я от вас отстану... Как осуществить переход из основной формы на определенную запись подчиненной? Дело в том что после обновления подчиненной, текущей становится первая запись. А нужно чтобы фокус был на той, что была до обновления... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.09.2003, 18:18 |
|
||
|
|

start [/forum/topic.php?fid=45&msg=32274492&tid=1679264]: |
0ms |
get settings: |
10ms |
get forum list: |
16ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
104ms |
get topic data: |
12ms |
get forum data: |
3ms |
get page messages: |
81ms |
get tp. blocked users: |
2ms |
| others: | 237ms |
| total: | 471ms |

| 0 / 0 |
