View previous topic :: View next topic |
Author |
Message |
Pal
Joined: 07 Sep 2005 Posts: 10 Location: Pal Occupation: Pal Interests: Владивосток
|
Posted: 08 Sep 2005 12:45 Post subject: Как открыть разом все закрытые карточки партий? |
|
|
Как открыть разом все закрытые карточки партий? |
|
Back to top |
|
|
shura_k
Joined: 10 Oct 2003 Posts: 342 Location: Александр Occupation: Специалист Interests: Калининград
|
Posted: 08 Sep 2005 16:30 Post subject: |
|
|
Обнулить поле в базе данных. |
|
Back to top |
|
|
Олег Смирнов
Joined: 06 Sep 2004 Posts: 821 Location: Олег Смирнов Occupation: Раут (поганист-сисадмин) Interests: Новосибирск
|
Posted: 08 Sep 2005 17:40 Post subject: |
|
|
shura_k wrote: | Обнулить поле в базе данных. |
Этак то мы (advanced user's ) все умеем... А штатных средств нетути.
А вот кстати: не мог бы Отдел разработок сделать такую фишечку - иногда, после "Восстановления целостности данных" оказывается, что остатки по некоторым карточкам вовсе даже и не нулевые...
А нельзя ли добавить в архив закрытых карточек режим - "Открыть все карточки с ненулевыми остатками"?.. А то закрываются-то они на ура! - а открывать надобно каждую отдельно. _________________ С уважением, Олег Р. Смирн |
|
Back to top |
|
|
nordk
Joined: 27 Jun 2005 Posts: 1000 Location: Горбунов Константин Occupation: БЭСТ-Партнер Interests: СПб
|
Posted: 09 Sep 2005 10:35 Post subject: |
|
|
Не вижу препятствий господа
Пишется скромненькая прога на HFileEval которая делает интересующий Вас анализ и меняет значение поля статус - тем самым открывая карточки.
Хотите - можем поэтапно совместно такое сделать в целях обучения ? |
|
Back to top |
|
|
Pal
Joined: 07 Sep 2005 Posts: 10 Location: Pal Occupation: Pal Interests: Владивосток
|
Posted: 10 Sep 2005 05:44 Post subject: |
|
|
nordk wrote: | Хотите - можем поэтапно совместно такое сделать в целях обучения ? |
Спасибо, именно для этого эта тема и затевалась.
Как всё это сделать через bro, я знаю, но для этого надо выгнать всех пользователей, удалить индексы, обнулить поле, переиндексировать. Всё это слишком долго. Хочется всё это делать через CTRL-F5. |
|
Back to top |
|
|
nordk
Joined: 27 Jun 2005 Posts: 1000 Location: Горбунов Константин Occupation: БЭСТ-Партнер Interests: СПб
|
Posted: 12 Sep 2005 10:08 Post subject: |
|
|
Хорошо
Давайте для начала определим цель решения.
Мы знаем что нам надо открыть карточки партий - представьвте что Вы этого добились - не возникнет ли желание сказать что допустим эти карточки слишком старые и их не надо было открывать или по таким-то карточкам закрыт номенклатурный номер и их само собой открывать не надо было....
Вот давайте обдумаем всесторонне и Вы мне напишите условия которые необходимо учитывать при открытии карточек. То есть напишите как Вы себе видите сам принцип работы не внутри программы а глазами пользователя - что она должна отслеживать и т.п.. Представьте на секунду что она есть Вы ей пользуетесь и что в Вашем представлении должно произойти в итоге работы программы |
|
Back to top |
|
|
shura_k
Joined: 10 Oct 2003 Posts: 342 Location: Александр Occupation: Специалист Interests: Калининград
|
Posted: 12 Sep 2005 10:47 Post subject: |
|
|
Pal wrote: |
Как всё это сделать через bro, я знаю, но для этого надо выгнать всех пользователей, удалить индексы, обнулить поле, переиндексировать. Всё это слишком долго. Хочется всё это делать через CTRL-F5. |
Я не настаиваю на ручном варианте, просто, если воспользоваться другим инструментом, к примеру BDBFS, ничего кроме обнуления поля делать не надо!!! |
|
Back to top |
|
|
nordk
Joined: 27 Jun 2005 Posts: 1000 Location: Горбунов Константин Occupation: БЭСТ-Партнер Interests: СПб
|
Posted: 12 Sep 2005 13:41 Post subject: |
|
|
Все способы хороши для достижения цели, если результат в итоге положительный. Но в этом разделе мы учимся программировать в БЭСТ, пусть на примерах, которые можно не хуже решить "снаружи", но наш путь лежит от простого к сложном |
|
Back to top |
|
|
Pal
Joined: 07 Sep 2005 Posts: 10 Location: Pal Occupation: Pal Interests: Владивосток
|
Posted: 14 Sep 2005 02:19 Post subject: |
|
|
Cейчас надо просто открыть все партии.
т.е. человек должен нажать определенное сочетание клавиш и все партии должны открыться.
Давайте идти от простого к сложному.
На первом этапе сделаем это, на втором этапе добавим условие, на третьем этапе сделаем запрос параметров условия. |
|
Back to top |
|
|
nordk
Joined: 27 Jun 2005 Posts: 1000 Location: Горбунов Константин Occupation: БЭСТ-Партнер Interests: СПб
|
Posted: 14 Sep 2005 13:30 Post subject: |
|
|
Понятно.........
Продолжаем разговор
Теперь давайте обратим внимание что у нас есть база spr_part.dbf внутри которой есть поле STATUS - если занести туда "1" то программа считает карточку партии закрытой. У нас задача обратная значит туда нужно положить "" или NIL
Дальше необходимо написать программу, которая сможет пройтись по всем записям указанной выше БД и на тех позициях, где у нас значение поля STATUS=="1" переприсвоить это значение на ""
Теперь вопрос - это действие Вам по силам или вместе будем писать и еще решение такой задачки смешно полагать каким-то коммерческим решением, поэтому разместите пожалуйста текст Вашей программы - мы его вместе рассмотрим и обсудим - ОК ? |
|
Back to top |
|
|
Олег Смирнов
Joined: 06 Sep 2004 Posts: 821 Location: Олег Смирнов Occupation: Раут (поганист-сисадмин) Interests: Новосибирск
|
Posted: 14 Sep 2005 17:26 Post subject: |
|
|
nordk wrote: | Дальше необходимо написать программу, которая сможет пройтись по всем записям указанной выше БД и на тех позициях, где у нас значение поля STATUS=="1" переприсвоить это значение на ""
|
Наверное, коли уж так вопрос изначально ставился, что, мол, "все" партии - так и проверять STATUS можно не надо...
А вот мне стало стр-рашно интересно - если из плагина поменять эти поля - как БЭСТ заставить обновить свои буфера - там же уже есть данные о том, что карточки закрыты - стало быть, надо заставить БЭСТ прочитать базу/CDX заново? _________________ С уважением, Олег Р. Смирн |
|
Back to top |
|
|
gor966
Joined: 07 Mar 2003 Posts: 26 Location: Михаил
|
Posted: 14 Sep 2005 17:40 Post subject: |
|
|
Вопрос конечно интересный. Выйти из модуля и войти еще раз |
|
Back to top |
|
|
nordk
Joined: 27 Jun 2005 Posts: 1000 Location: Горбунов Константин Occupation: БЭСТ-Партнер Interests: СПб
|
Posted: 14 Sep 2005 18:58 Post subject: |
|
|
Господа !!!!
При работе с БД все индексы автоматически меняются.
Разве в БЭСТе когда вы закрываете карточки Вам надо выходить - заходить???! Там делается все тоже самое. Ну допустим с кучей проверок - но вы же от них отказались.........
На самом деле если на то дело пошло - выбираете нужный индекс, накладываете на него скоб и перебором всех записей сверху вниз - в списке будут только удаленные.... А когда пройдете, то список будет пуст и соответственно полон среди неудаленных.
Только лучше бы конечно это сделать отдельным пунктом меню - мы к этому еще не подошли (стояло в планах), потому что при CTRL-F5 никаких циклов не надо - просто помечаете все, блокируете запись и меняете значение (даже неинтересно.... )
Поиск наиболее оптимального решения в середине рабочего дня не всегда удачен - поэтому к длине пути решения относитесь с пониманием плз.... Тоже могу допускать неточности в принятии метода решения - моя задача открыть функционал и там в его описании ошибок не допускать, а как его применить это уже Ноу-хау (пусть и маленькое) и каждый найдет его по-свое |
|
Back to top |
|
|
Олег Смирнов
Joined: 06 Sep 2004 Posts: 821 Location: Олег Смирнов Occupation: Раут (поганист-сисадмин) Interests: Новосибирск
|
Posted: 15 Sep 2005 19:31 Post subject: |
|
|
nordk wrote: | При работе с БД все индексы автоматически меняются. |
Я, может, невнятно сформулировал, но вопрос был не про индексы: коли БЭСТ - сетевая прилада, так и индексы, естественно, должны меняться автоматически...
Мне вот что интересно стало: если у меня на экране есть некоторый список карточек (документов etc.), и я из плагина меняю статус некоторых карточек (опять же - документов etc.) - БЭСТ сообразит сам поменять картинку на экране - или надо предпринимать какие-то дополнительные действия?
nordk wrote: | как его применить это уже Ноу-хау (пусть и маленькое) и каждый найдет его по-своему |
Что касается "know-how" - это да, это есть такая штука... Вот кто бы из разработчиков-владельцев этого самого "know-how" объяснил бы мне - что за такая хитровыдуманная технология заставляет БЭСТ-4+ 11.03 обновлять экран после отработки каждой строки накладной при записи этой самой накладной?!. Вот поправил я накладную из 600-700 позиций, сказал - "записать" - и уныло смотрю на специфическое подёргивание экрана - а нафига эти обновления? Ну пусть уже весь документ запишет - а потом и экран обновит... _________________ С уважением, Олег Р. Смирн |
|
Back to top |
|
|
nordk
Joined: 27 Jun 2005 Posts: 1000 Location: Горбунов Константин Occupation: БЭСТ-Партнер Interests: СПб
|
Posted: 19 Sep 2005 11:11 Post subject: |
|
|
Извините за задержку с ответом - болель...
Насчет обновления картинки на экране - когда вы меняете значение записи через плагин, меняются индексные ключи по этой записи, а поскольку картинка на экране выводится по конкретному индексу на который наложен скоб, то соответственно запись либо появляется на экране либо уходит (в зависимости от значения), потому что при любом нажатии кнопок у вас происходит обновление экрана (принцип работы InitList на котором собственно и построены все экраны БЭСТа типа реестров)
Вот как если вы допустим наложите фильтр на группу и в какой-то позиции группу поменяете на другую - эта запись из списка отфильтрованных позиций исчезнет - это тоже результат того, что фильтр базируется на временном индексе и значение ключа по записи изменилось и не соответствует условиям индекса, осуществляющего фильтрацию данных.
Что касается строк в накладной - отмечу что при изменении строк - пересчитываются все проводки в типовой операции по документу - а они считаются построчно, не думаю что задержка в обновлении экрана - поскольку в номенклатурном справочнике строк значительно больше 700 и обновление экрана Вы там не замечаете совершен |
|
Back to top |
|
|
|