Гость
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / задачка / 25 сообщений из 72, страница 1 из 3
04.10.2012, 16:28
    #37984044
Дима1991
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
задачка
на форме стоит checkbox. как сделать так чтобы если checkbox стоит галочка в таблицу в поле slovo добавить символ 0, а если убрать checkbox то из этого поля этот символ 0 убрать. т.е. если галочка стоит ставить символ, если убрать галочку и символ убрать
...
Рейтинг: 0 / 0
04.10.2012, 17:55
    #37984262
Дима1991
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
задачка
Никто не знает как сделать?
...
Рейтинг: 0 / 0
04.10.2012, 18:08
    #37984288
ВладимирМ
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
задачка
1. При изменении значения CheckBox сработает событие CheckBox.InteractiveChange()
2. Замена значения в текущей рабочей области в текущей записи - это команда Replace

Дальше сами...
...
Рейтинг: 0 / 0
04.10.2012, 18:09
    #37984292
Дима1991
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
задачка
ВладимирМ, мне нужно не замену делать в поле а вставлять и удалять символ в зависимости от значения checkbox
...
Рейтинг: 0 / 0
04.10.2012, 18:10
    #37984293
ВладимирМ
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
задачка
Как пробовали? Что не получается?
...
Рейтинг: 0 / 0
04.10.2012, 18:10
    #37984295
Дима1991
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
задачка
и кстати в поле могут быть и другие символы. так что надо искать этот символ в строке и если есть удалять, иначе вставлять
...
Рейтинг: 0 / 0
04.10.2012, 18:11
    #37984297
Дима1991
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
задачка
ВладимирМ, не знаю как реализовать то что мне нужно.
...
Рейтинг: 0 / 0
04.10.2012, 18:11
    #37984298
ВладимирМ
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
задачка
Предположим, у Вас в поле записано "1 000 000 000". Какой из нулей Вы будете удалять?
...
Рейтинг: 0 / 0
04.10.2012, 18:11
    #37984299
BMJ
BMJ
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
задачка
Поясню тем кто в танке, вставлять 0 или 1 это заменять значение в поле. Что там по умолчанию?
...
Рейтинг: 0 / 0
04.10.2012, 18:13
    #37984303
Дима1991
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
задачка
ВладимирМ, такой пример допустим в поле есть символы 123CFH если убрал галочку надо удалить символ F, если ставить галочку вставлять F
...
Рейтинг: 0 / 0
04.10.2012, 18:14
    #37984306
Дима1991
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
задачка
вы не поняли, не все значения надо менять.. в так как я чуть выше написал. простую замену бы я и сам мог чуть повозившись
...
Рейтинг: 0 / 0
04.10.2012, 18:14
    #37984309
ВладимирМ
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
задачка
- А если вместо "123CFH" будет записано "123CFF" надо оба символа "F" удалить?
- А вставлять символ "F" куда? В начало? В конец? В середину?
...
Рейтинг: 0 / 0
04.10.2012, 18:18
    #37984315
Дима1991
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
задачка
ВладимирМ, да удалять оба, а куда вставлять без разницы но можно в конец сделать
...
Рейтинг: 0 / 0
04.10.2012, 18:21
    #37984317
Дима1991
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
задачка
вообще должно работать так эти символы соответствуют отделам с 1 до 8 или буквы разницы нет. надо ставить галочки если этот пользователь может регистрировать людей из этого отдела. так допустим. 1- это поликлиника. если этот пользователь занимается регистрацией людей в поликлинике ставим галочку и в поле записывается 1, если убрать галочку то из поля удаляется единичка
...
Рейтинг: 0 / 0
04.10.2012, 18:54
    #37984358
ВладимирМ
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
задачка
Код: sql
1.
2.
3.
4.
5.
* Удалить все указанные символы из строки
?ChrTran('12304560789','0','')

* Добавить символ в начало
?'0' + '123456'


Дима1991вообще должно работать так эти символы соответствуют отделам с 1 до 8 или буквы разницы нет. надо ставить галочки если этот пользователь может регистрировать людей из этого отдела. так допустим. 1- это поликлиника. если этот пользователь занимается регистрацией людей в поликлинике ставим галочку и в поле записывается 1, если убрать галочку то из поля удаляется единичка
Угу. А следующий Ваш вопрос будет "как узнать есть ли определенный символ в строке?".

Сама система организации - не удачная. Оставьте признак в логических полях. Точнее, связанная таблица, содержащая пары: пользователь - код отдела. Не надо делать комбинированное поле. Такое поле еще имеет смысл для отчетов, но для поиска - крайне не удобно. Вот как Вы собираетесь искать всех пользователей, которые могут регистрировать людей, скажем, в 1 отделе?
...
Рейтинг: 0 / 0
04.10.2012, 19:04
    #37984370
Дима1991
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
задачка
ВладимирМ, т.е. если я напишу например ?'0' + '123456' то добавится в поле символ 0? не могли бы вы более конкретно написать на примере какой-то таблицы
...
Рейтинг: 0 / 0
04.10.2012, 19:07
    #37984377
Дима1991
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
задачка
ВладимирМ, это не я делал такое поле а до меня еще сделано и много лет функционирует предприятие так. мне просто надо написать программу которая делает следующее. вот поле содержит символы 1345CGF если ставить галочку то добавлять например F, если убирать галочку то удалять F. напишите пожалуйста код который делает это и больше ничего ненадо
...
Рейтинг: 0 / 0
04.10.2012, 19:40
    #37984413
Дима1991
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
задачка
пишу так чтобы удалить символ, но не удаляется

авторChrTran(tablica.slovo,'0','')
...
Рейтинг: 0 / 0
04.10.2012, 19:54
    #37984428
ВладимирМ
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
задачка
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
* Переходим в нужную рабочую область
select tablica

* Выполняем поиск нужной записи (где будем выполнять замену)
* Если уже стоим на нужной записи, то этот этап пропускается
(...)

* Заменяем значение в поле
replace slovo with ChrTran(tablica.slovo,'0','')

* Для добавления символа соответственно
* replace slovo with '0' + alltrim(tablica.slovo)
...
Рейтинг: 0 / 0
04.10.2012, 20:04
    #37984432
Дима1991
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
задачка
ВладимирМ, спасибо, сейчас буду пробовать
...
Рейтинг: 0 / 0
04.10.2012, 20:14
    #37984440
Дима1991
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
задачка
а если это надо сделать на записи которая активна в грид. у меня делается так в грид вывожу записи из таблицы нажимаю на какую-то запись и для этой записи открывается форма где делается удаление или замена. у записей есть поле id идентификатор можно по этому полю как-то идентифицировать и при открытии формы для активной записи делать эти вещи?

т.е. имею ввиду к этому коду replace slovo with '0' + alltrim(personal.slovo) добавить условие того что это делается для выбранного из грид человека(записи)
...
Рейтинг: 0 / 0
04.10.2012, 20:17
    #37984444
задачка
Дима1991вообще должно работать так эти символы соответствуют отделам с 1 до 8 или буквы разницы нет. надо ставить галочки если этот пользователь может регистрировать людей из этого отдела. так допустим. 1- это поликлиника. если этот пользователь занимается регистрацией людей в поликлинике ставим галочку и в поле записывается 1, если убрать галочку то из поля удаляется единичка
Переводим с русского на русский:
В текстовом поле таблицы каждый символ обозначает конкретный отдел предприятия. Строка (содержимое поля) анализируется и динамически формируется интерфейс. Например, для соответствующих строк в лист-боксе ставится отметка в виде "галочки".
Вопрос: как сделать так, чтобы запомнить (в виде строки в текстовом поле) в режиме множественного выбора "галочки" пользователя...

Алгоритм решения:
1. Найти какому символу соответствует выбор (постановка или снятие "галочки") пользователя. В специальной переменной запомнить какое событие произошло: снятие "галочки" или ее установка.
2. Если была поставлена "галочка" и такого символа в строке нет, то дописать символ в строку. Например:
Код: sql
1.
2.
3.
 if AT("b",stroka) = 0 
                             stroka = stroka + "b"
                           endif 


3. Если галочка была снята, то удалить символ из строки. Например:
Код: sql
1.
2.
3.
4.
 pos = AT("b",stroka)
if pos > 0
  stroka = substr(stroka,1,pos-1)+substr(stroka,pos+1)
endif

либо (мне нравится больше)
Код: sql
1.
2.
 
  stroka = chrtran(stroka,"b",'')



Примерно как-то так. Но это сырое решение. Его еще допиливать и допиливать "по месту"...
...
Рейтинг: 0 / 0
04.10.2012, 20:23
    #37984449
Дима1991
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
задачка
Станислав С...кий, вот первый шаг я тоже думаю что так надо делать потому-что каждый раз а то ставить убирать символы если в поле каша получится много повторяющихся значений будет. но только вот не понимаю как реализовать запоминание установлена галочка или нет
...
Рейтинг: 0 / 0
04.10.2012, 20:30
    #37984456
задачка
Дима1991,
Ну, если делать немного подумав, то:
1.Эти "буквы" должны быть = идентификатору записи в справочнике отделов.
2. Буквы должны отделяться друг от друга разделителями. Тогда можно будет вводить двухсимвольные идентификаторы, трехсимвольные и т.д.
3. Строку надо "парсить", то есть разбирать на отдельные значения.
4. При вызове формы редактирования распарсенные значения дают "галочки" в соответствующих строках справочника отделов....
5. Можно не запоминать состояние КАЖДОЙ "галочки", а при сохранении формировать строку заново.
...
Рейтинг: 0 / 0
04.10.2012, 20:35
    #37984460
Jonny540
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
задачка
Дима1991а если это надо сделать на записи которая активна в грид. у меня делается так в грид вывожу записи из таблицы нажимаю на какую-то запись и для этой записи открывается форма где делается удаление или замена. у записей есть поле id идентификатор можно по этому полю как-то идентифицировать и при открытии формы для активной записи делать эти вещи?

т.е. имею ввиду к этому коду replace slovo with '0' + alltrim(personal.slovo) добавить условие того что это делается для выбранного из грид человека(записи)Когда жмешь на строку грида, соответствующая запись таблицы (которая, собственно, отображается в гриде)
становится текущей.

ps что-то мне напоминает фирму А&K'89 :)
...
Рейтинг: 0 / 0
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / задачка / 25 сообщений из 72, страница 1 из 3
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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