powered by simpleCommunicator - 2.0.56     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Заполнение полей циклом
13 сообщений из 13, страница 1 из 1
Заполнение полей циклом
    #35653476
gromozeka2007
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Люди добрые прошу вас помогите... Есть табличка в ней даные, как заполнить с помощью цикла или не цикла поле "p" числами от 01 до 28 , 01,02,03,04,05,06,07,08,...28. но при этом не один раз, а чтоб это действие повторялось на всю длину таблицы.
...
Рейтинг: 0 / 0
Заполнение полей циклом
    #35653497
Фотография Анатолий Широков
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
gromozeka2007,


значение поля p вычисляется по формуле

number = i % 28 + 1

где i - порядковый номер записи
...
Рейтинг: 0 / 0
Заполнение полей циклом
    #35653777
Фотография ВладимирМ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Анатолий Широковзначение поля p вычисляется по формуле

number = i % 28 + 1

где i - порядковый номер записи
В этом случае нумерация начнется с 2. Значение 1 вообще никогда не будет получено.

Что-то делать с результатом нужно только для значения i кратного 28. Для всех остальных случаев надо оставить полученное значение. Причем прибавление 1 проблему не решает

Другими словами, надо проверить результат на ноль и в этом случае присвоить значение 28.

Код: plaintext
number = EVL(MOD(i, 28 ), 28 )
...
Рейтинг: 0 / 0
Заполнение полей циклом
    #35653789
Фотография ВладимирМ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Поторопился. Был не прав.

Значение 1 будет, конечно, только порядок нумерации будет не совмсем правильный. Сначала 2, 3, 4,... и в конце 1.
...
Рейтинг: 0 / 0
Заполнение полей циклом
    #35653800
Фотография Анатолий Широков
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ВладимирМПоторопился. Был не прав.

Значение 1 будет, конечно, только порядок нумерации будет не совмсем правильный. Сначала 2, 3, 4,... и в конце 1.

Опс, я исходил из начала нумерации с 0.
...
Рейтинг: 0 / 0
Заполнение полей циклом
    #35653946
gromozeka2007
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Шото я не пойму ... Как мне заполнить это поле типа Character
...
Рейтинг: 0 / 0
Заполнение полей циклом
    #35653956
Galyamov Rinat
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Как один из вариантов:

lnNum=0

repl p with trans(GetNum(@lnNum)) all

func GetNum
lpara lnNum
lnRetu = lnNum % 28 + 1

if lnNum=28
lnNum=0
else
lnNum=lnNum+1
endif


Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
Заполнение полей циклом
    #35653961
Galyamov Rinat
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
> Как один из вариантов:
>
> lnNum=0
>
> repl p with trans(GetNum(@lnNum)) all
>
> func GetNum
> lpara lnNum
> lnRetu = lnNum % 28 + 1
>
> if lnNum=28
> lnNum=0
> else
> lnNum=lnNum+1
> endif

НЕ дописал вот это:

return lnRetu
endfunc


Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
Заполнение полей циклом
    #35653979
Galyamov Rinat
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
PS Там остаток и не нужен вовсе :)

Ну или даже можно вот так:

lnNum=0

repl p with trans(GetNum(@lnNum)) all

func GetNum
lpara lnNum
if lnNum=28
lnNum=1
else
lnNum=lnNum+1
endif
return lnNum
endfunc


PPS Почему не следует брать остаток от RecNo() - потому что иначе будут
выпадения нумерации при наличии удаленных записей.


Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
Заполнение полей циклом
    #35653985
Фотография ВладимирМ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
gromozeka2007Шото я не пойму ... Как мне заполнить это поле типа Character
Код: plaintext
1.
2.
select MyTab
REPLACE ALL PADL(EVL(MOD(Recno(), 28 ), 28 ), 2 ,'0')
...
Рейтинг: 0 / 0
Заполнение полей циклом
    #35653991
Фотография ВладимирМ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Опять поторопился
Код: plaintext
1.
2.
select MyTab
REPLACE ALL MyField WITH PADL(EVL(MOD(Recno(), 28 ), 28 ), 2 ,'0')
...
Рейтинг: 0 / 0
Заполнение полей циклом
    #35654009
Фотография ВладимирМ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Соответственно циклом (если есть удаленные записи)

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
LOCAL lnNextI
lnNextI =  0 

select MyTab
SCAN
    lnNextI = m.lnNextI +  1 
    if (m.lnNextI >  28 )
        m.lnNextI =  1 
    endif
    REPLACE MyField WITH PADL(m.lnNextI, 2 ,'0')
ENDSCAN
...
Рейтинг: 0 / 0
Заполнение полей циклом
    #35654068
gromozeka2007
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Всем большое спасибо!!! Так как написал Ренат ПОЙДЕТ...
...
Рейтинг: 0 / 0
13 сообщений из 13, страница 1 из 1
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Заполнение полей циклом
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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