powered by simpleCommunicator - 2.0.38     © 2025 Programmizd 02
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / УДАЛЕНИЕ ЗАПИСЕЙ ИЗ < GRID >
13 сообщений из 13, страница 1 из 1
УДАЛЕНИЕ ЗАПИСЕЙ ИЗ < GRID >
    #32171978
WASA2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
У МЕНЯ В ФОРМЕ ЕСТЬ LIST box и GRID
Я ИЗ LIST ВЫБЕРАЮ НУЖНУЮ МНЕ ЗАПИСЬ ТИПА
НАЗВАНИЕ ТОВАРА ЩЁЛКАЮ ПО НЕЙ
ОНА ПЕРЕНОСИТСЯ В GRID ПОСЛЕ Я В ЭТОЙ СТРОКЕ ДОПИСЫВАЮ
ФАМИЛИЮ И КОЕ КАКИЕ ДАННЫЕ ОНА СОХРАНЯЕТ ЭТУ ЗАПИСЬ
НО ДОПУСТИМ Я НЕ ВВЁЛ ДАННЫЕ ТИПА ФАМИЛИЯ А СТРОКА С НАЗВАНИЕМ
ТОВАРА ОСТАЛАСЬ ЧТОБЫ ЕЁ НЕ УДАЛЯТЬ В РУЧНУЮ Я СДЕЛАЛ ТАК:
SET DELE ON
DELE FOR FAMILIA=" " && если пусто значит удалить
В GRID ОНА ПОКАЗЫВАЕТ ЧТО УДАЛИЛА
НО НА САМОМ ДЕЛЕ КОГДА ПРОСМАТРИВАЕШЬ В РЕЖИМЕ BROWSE
ОНА НЕ УДАЛИЛА А ТОЛЬКО ПОМЕТИЛА НА УДАЛЕНИЕ
КАК МНЕ ПРАВИЛЬНО УДАЛИТЬ ПОСОВЕТУЙТЕ
...
Рейтинг: 0 / 0
УДАЛЕНИЕ ЗАПИСЕЙ ИЗ < GRID >
    #32171998
Фотография ВладимирМ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
В формате DBASE реализовано 2-х тактное удаление записей

1) Сначала записи помечаются как удаленные (командой DELETE)
2) Затем физически удаляются из таблицы (команда PACK)

Физическое удаление записей требует специального режима открытия таблиц (EXCLUSIVE), поэтому применяется не сразу после пометки записи на удаление, а при регламентных работах с базой. Например раз в неделю очищается вся база данных от записей помеченных как удаленные.

Чтобы записи помеченные как удаленные не путались под ногами, используют специальную настройку SET DELETED ON, которая и "прячет" все такие записи.

PS.

При проверке строковых данных на пустое значение разумнее использовать функцию EMPTY(), а не сравнение с пустой строкой. В противном случае возможны недоразумения. Т.е. команда удаления должна выглядеть примерно так:

DELETE FOR Empty(Familia)
...
Рейтинг: 0 / 0
УДАЛЕНИЕ ЗАПИСЕЙ ИЗ < GRID >
    #32172000
WASA2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ДОПОЛНЕНИЕ К ПРЕВЫДУЩЕЙ ЗАПИСИ.
КОГДА Я ЩЁЛКАЮ НА LIST И ЗАПИСЬ ПЕРЕНОСИТСЯ
ПОЯВЛЯЕТСЯ ЗАПИСЬ В СТРОКЕ СОСТОЯНИЯ < 1 ЗАМЕЩЕНО >
А ЧЕРЕЗ 5 СЕКУНД <ЗАПИСЬ НЕ БЛАКИРОВАНА>
ЧТО ОЗНАЧАЕТ ЗАПИСЬ < ЗАМЕЩЕНО >
ЭТА ЗАПИСЬ ЗАМЕЩЕНО У МЕНЯ РАНЬШЕ НЕБЫЛО ОНА ПОЯВИЛАСЬ ПОСЛЕ ТОГО КАК Я ПЕРЕУСТАНОВИЛ WINDOWS И VISUAL FOXPRO 5.0
...
Рейтинг: 0 / 0
УДАЛЕНИЕ ЗАПИСЕЙ ИЗ < GRID >
    #32172127
Фотография ВладимирМ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
В статусной строке отображается информация о состоянии текущей строки в текущей рабочей области ("Запись не блокирована"). Подавить ее нельзя, можно только затереть, но очень это муторно - отлавливать каждый раз момент ее появления.

А вот сообщени о вставке/модификации записи подавляется настройкой

SET TALK OFF

Еще одна настройка, подавляющая кое-какие системные сообщения

SET NOTIFY OFF
...
Рейтинг: 0 / 0
УДАЛЕНИЕ ЗАПИСЕЙ ИЗ < GRID >
    #32172777
wasa2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
В ОБЩЕМ МНЕ НАДО ЧТОБЫ УДАЛЯЛАСЬ ЗАПИСЬ
КОТОРАЯ ПОМЕЧЕНА КАК УДАЛЁННАЯ СРАЗУ ПОТОМУ ЧТО
ЭТО ПРОГРАММА СКЛАД И КЛИЕНТ ВЫБИРАЕТ ТОВАРЫ НА СВОЁ УСМОТРЕНИЕ
КОГДА ОН ВЫБИРАЕТ КАКОЙ ЛИБО ТОВАР ОН ПЕРЕНОСИТСЯ ИЗ
<LIST BOX> В <GRID> ПЕРЕНОСИТСЯ ТАКЖЕ: ЦЕНА ЗА ЕДЕНИЦУ ТОВАРА, КОД ТОВАРА, НАЗВАНИЕ ТОВАРА, ТАМ ЖЕ В ЭТОЙ СТРОКЕ В GRIDE КУДА ПЕРЕНИСЛАСЬ ЗАПИСЬ, В ЯЧЕЙКИ ОПЕРАТОР ЗАПИСЫВАЕТ КОЛИЧЕСТВО ТОВАРА
КОТОРОЕ ОН ХОЧЕТ КУПИТЬ. ЭТО КОЛИЧЕСТВО ТОВАРА УМНОЖАЕТСЯ
НА ЦЕНУ ЗА ЕДЕНИЦУ ТОВАРА И ВЫХОДИТ ИТОГ В СЛЕДУЖЕЙ ЯЧЕЙКИ ( НА ЭТОЙ ЖЕ СТРОКЕ в GRIDe) А ЕСЛИ ОН НЕ ВВЁЛ СВОЮ ФАМИЛИЮ И НАЗВАНИЕ ФИРМЫ
(В ЭТОЙ ЖЕ СТРОКЕ в GRIDe) ТО СТРОКА УДАЛЯЕТСЯ. ОПЕРАТОР КОТОРЫЙ ВВОДИТ ЗАПИСИ СЛИШКОМ ЧАСТО МОЖЕТ ЩЁЛКАТЬ ПО ЗАПИСЯМ В < LISTBOX > ПОТОМУ ЧТО КЛИЕНТ ПРОСИТ ПРОСМОТРЕТЬ СМОЖЕТ ЛИ ОН КУПИТЬ ЭТОТ ТОВАР В ОПРЕДЕЛЁННОМ КОЛИЧЕСТВЕ ТАК КАК ТАМ СРАЗУ ИДЁТ ПОДСЧЁТ
КОЛИЧЕСТВА КОТОРОЕ ОН ХОЧЕТ КУПИТЬ
ТАБЛИЦА В КОТОРОЙ ЭТИ ЗАПИСИ СОХРАНЯЮТСЯ КАК ПОМЕЧЕНЫЕ ДЛЯ УДАЛЕНИЯ СЛИШКОМ БОЛЬШАЯ СТАНОВИТСЯ, И ЕЩЁ ОНА ДОЛЖНА УЧАСТВОВАТЬ В ДРУГИХ ПРОГРАММАХ И Я НЕ ЗНАЮ КАК ОНА СЕБЯ ПОВЕДЁТ ТАМ.
поэтому мне нужно хотя бы когда я покидаю форму ( а не выхожу из этой программы) записи которые были помечены как удалённые удалились.
...
Рейтинг: 0 / 0
УДАЛЕНИЕ ЗАПИСЕЙ ИЗ < GRID >
    #32172864
Dimon-1
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
>>ПОТОМУ ЧТО КЛИЕНТ ПРОСИТ ПРОСМОТРЕТЬ СМОЖЕТ ЛИ ОН КУПИТЬ ЭТОТ ТОВАР В ОПРЕДЕЛЁННОМ КОЛИЧЕСТВЕ ТАК КАК ТАМ СРАЗУ ИДЁТ ПОДСЧЁТ
КОЛИЧЕСТВА КОТОРОЕ ОН ХОЧЕТ КУПИТЬ
Рекомендую выводить в ListBox также кол-во (остаток) товара.

А вообще-то лучше писать во временную таблицу (которая живет пока открыта форма), а только потом, при подтверждении заказа, записывать в основную таблицу, где Вы ведете (если я правильно понял) статистику заказов клиента.
...
Рейтинг: 0 / 0
УДАЛЕНИЕ ЗАПИСЕЙ ИЗ < GRID >
    #32173568
WASA2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
У МЕНЯ ТАК И ЕСТЬ КОГДА КЛИЕНТ ЗАНЁС СВОИ ДАННЫЕ И ПОДТВЕРЖДЕНО
ТО ИЗ LISTBOX УДАЛЯЕТСЯ КОЛИЧЕСТВО О ТОМ ЧТО <ЭННОЕ> КОЛИЧЕСТВО
ДОПУСТИМ ТУФЛЕЙ ИЛИ ЕЩЁ КАКОГО ЛИБО ТОВАРА КУПЛЕНО А ЕСЛИ ЗАПИСЬ
УЖЕ ВВЕДЕНА И КЛИЕНТ ОТКАЗАЛСЯ ОТ КАКОГО ЛИБО ТОВАРА ТО ЗАПИСЬ
В GRID МОЖНО УДАЛИТЬ И ОНА СНОВА ПРИБАВЛЯЕТСЯ В LISTBOX.
...
Рейтинг: 0 / 0
УДАЛЕНИЕ ЗАПИСЕЙ ИЗ < GRID >
    #32181456
WASA2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
А ВООБЩЕ КАК УДАЛИТЬ ЭКСКЛЮЗИВНО

ЕСЛИ ДРУГИХ НЕТ ВАРИАНТОВ ??????????
...
Рейтинг: 0 / 0
УДАЛЕНИЕ ЗАПИСЕЙ ИЗ < GRID >
    #32181493
Фотография ВладимирМ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Это Вы о чем? Что значит удалить эксклюзивно?

Для возможности отката внесенных изменений существует буферизация. В этом случае вообще ничего не удаляется, а просто не записывается.
...
Рейтинг: 0 / 0
УДАЛЕНИЕ ЗАПИСЕЙ ИЗ < GRID >
    #32181518
NE_Dimon
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А ВООБЩЕ КАК УДАЛИТЬ ЭКСКЛЮЗИВНО

Раз в неделю выгоняешь из программы оператора (и всех, кто с ним), а потом
USE My_tab1 EXCLUSIVE
PACK
USE My_tab2 EXCLUSIVE
PACK
......
USE My_tabn EXCLUSIVE
PACK
...
Рейтинг: 0 / 0
УДАЛЕНИЕ ЗАПИСЕЙ ИЗ < GRID >
    #32181525
NE_Dimon
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Поправка:
USE My_tab1 EXCLUSIVE 'открыть эксклюзивно (т.е. никто кроме ты)
PACK 'физически удалить
USE 'закрыть
USE My_tab2 EXCLUSIVE 'открыть эксклюзивно (т.е. никто кроме ты)
PACK 'физически удалить
USE 'закрыть
...........
USE My_tabn EXCLUSIVE 'открыть эксклюзивно (т.е. никто кроме ты)
PACK 'физически удалить
USE 'закрыть
...
Рейтинг: 0 / 0
УДАЛЕНИЕ ЗАПИСЕЙ ИЗ < GRID >
    #32181686
Фотография ВладимирМ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Мог бы и не поправлять. И так сойдет. Открытие таблицы в рабочей области где в данный момент открыта другая таблица автоматически приведет к закрытию этой другой таблицы. Т.е. в твоем примере:

USE My_tab1 EXCLUSIVE 'открыть эксклюзивно (т.е. никто кроме ты)
PACK 'физически удалить
USE My_tab2 EXCLUSIVE 'открыть эксклюзивно (т.е. никто кроме ты), предварительно закрыв My_tab1
PACK 'физически удалить
...
...
Рейтинг: 0 / 0
УДАЛЕНИЕ ЗАПИСЕЙ ИЗ < GRID >
    #32186101
JustDoIt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
вообще в таких случаях хорошо использовать представления локальные или удалённые (в зависимости от места хранения данных). А базу паковать периодически, либо при выходе из приложения. Хотя проблема паковки только для баз .dbf. Представления позволяют более гибко работать с данными.
...
Рейтинг: 0 / 0
13 сообщений из 13, страница 1 из 1
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / УДАЛЕНИЕ ЗАПИСЕЙ ИЗ < GRID >
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]