Спасибо создателю за программу!
Хочется понять как работают функции.
Вот например что делает функция RECNO ?
написано: Определяет номер текущей записи формы или запроса.
Это означает что если у меня есть форма "Форма1" с текстовым полем и я ставлю значение по умолчанию: RECNO('Форма 1'), то что пользователь увидит в поле при попытке записи? Я так понимаю что пользователь должен увидить номер текущей(той которую он создает) записи, но это не так.
Или что понимается под "текущей"?


Примеры выражений и работы функций
Re: Примеры выражений и работы функций
Попробую наглядно показать.
Имеется список записей:
RECID Почему выпали номера 3,4,8?
Ответ: мы открыли форму. Она отлистала себе следующий уникальный номер для ID из базы. От сохранения отказались (или же сохранили, но затем удалили запись) и RECID "сгорел".
Счетчик Почему выпали номера 6,7,10? Ответ: записи были удалены пользователем.
Возражение: Хорошо, почему тогда следующий номер "счетчика" не 10 а 11? Ведь 10й "освободился".
Ответ: По кочану. "Счетчик" как и RECID генерируется на уровне базы. Он был. Вы его удалили но предыдущее значение счетчика так и осталось 10, чтобы выдать следующей записи номер 11. (Так надо. Чтобы вы не дурили руководителя, выписав вчера несколько штук "левых" десятых накладных и теперь типа "с нумерацией все в порядке")
Попробуем отсортировать таблицу по убыванию RECID:
Остались еще вопросы по RECNO?
Имеется список записей:
Код: Выделить всё
RECID Счетчик RECNO
1 1 1
2 2 2
5 3 3
6 4 4
7 5 5
9 8 6
10 9 7
RECID Почему выпали номера 3,4,8?
Ответ: мы открыли форму. Она отлистала себе следующий уникальный номер для ID из базы. От сохранения отказались (или же сохранили, но затем удалили запись) и RECID "сгорел".
Счетчик Почему выпали номера 6,7,10? Ответ: записи были удалены пользователем.
Возражение: Хорошо, почему тогда следующий номер "счетчика" не 10 а 11? Ведь 10й "освободился".
Ответ: По кочану. "Счетчик" как и RECID генерируется на уровне базы. Он был. Вы его удалили но предыдущее значение счетчика так и осталось 10, чтобы выдать следующей записи номер 11. (Так надо. Чтобы вы не дурили руководителя, выписав вчера несколько штук "левых" десятых накладных и теперь типа "с нумерацией все в порядке")
Попробуем отсортировать таблицу по убыванию RECID:
Код: Выделить всё
RECID Счетчик RECNO
10 10 1
9 9 2
7 5 3
6 4 4
5 3 5
2 2 6
1 1 7
Остались еще вопросы по RECNO?
Последний раз редактировалось Гocть 31 июл 2018, 19:15, всего редактировалось 4 раза.
Причина: Ссылка+якорь на конкретный пост без указания номера форума (например http://forum.mydataexpress.ru/viewtopic.php?p=20403#p20403) будет работать при перемещении темы в любой подфорум.
Причина: Ссылка+якорь на конкретный пост без указания номера форума (например http://forum.mydataexpress.ru/viewtopic.php?p=20403#p20403) будет работать при перемещении темы в любой подфорум.
Фрилансер. Разработка на заказ. Консультирование.
-
- Интересующийся
- Сообщения: 113
- Зарегистрирован: 28 июн 2018, 00:07
- Благодарил (а): 4 раза
- Поблагодарили: 1 раз
Re: Примеры выражений и работы функций
Большое спасибо за такой развернутый ответ.
Я создал новую базу. Создал форму "Форма1". Добавил поле со значением по умолчанию RECNO('Форма1'').
Пользователь создает запись и поле всегда содержит ноль.
Вопрос заключается в том как правильно использовать RECNO.
В примере просто написано: RECNO принимает текст-имя формы. У меня он принимает имя формы, но почему он ноль возвращает всегда?
при этом RECID работает как надо и не вызывает вопросов.
Я создал новую базу. Создал форму "Форма1". Добавил поле со значением по умолчанию RECNO('Форма1'').
Пользователь создает запись и поле всегда содержит ноль.
Вопрос заключается в том как правильно использовать RECNO.
В примере просто написано: RECNO принимает текст-имя формы. У меня он принимает имя формы, но почему он ноль возвращает всегда?
при этом RECID работает как надо и не вызывает вопросов.
Re: Примеры выражений и работы функций
Блиин! Зачем вам RECNO? Ведь наглядно показано, что это указатель порядка видимых строк а не "счётчик" или "нумератор документов". Вы щёлкнули мышью по какой нибудь колонке и строки перестроились в новый порядок. Соответственно был для какой то определенной записи RECNO 5м, стал после сортировки 25й.
Фрилансер. Разработка на заказ. Консультирование.
-
- Эксперт
- Сообщения: 408
- Зарегистрирован: 02 июл 2018, 21:45
- Благодарил (а): 5 раз
- Поблагодарили: 47 раз
Re: Примеры выражений и работы функций
На форме таблица, в таблице счетчик - нумерация сквозная, те в первой записи формы в таблице счетчик 1,2,3, во второй записи формы в таблице счетчик 4,5,6.
Как получить правильную нумерацию ? Самому что ли высчитывать, что-то вроде
Мне все равно какой номер показывается рядом с записью в таблице, лишь бы он начинался с 1 и увеличивался на 1
Как получить правильную нумерацию ? Самому что ли высчитывать, что-то вроде
Код: Выделить всё
OnEnter: self['num']:=self.recordcount;
Мне все равно какой номер показывается рядом с записью в таблице, лишь бы он начинался с 1 и увеличивался на 1
Re: Примеры выражений и работы функций
А если
recno
в "значение по умолчанию" попробовать?Фрилансер. Разработка на заказ. Консультирование.
-
- Эксперт
- Сообщения: 408
- Зарегистрирован: 02 июл 2018, 21:45
- Благодарил (а): 5 раз
- Поблагодарили: 47 раз
Re: Примеры выражений и работы функций
результат - пустое поле. Вопрос к admin'у: как по логике программы правильно организовать счетчик в таблице, чтобы в каждой записи формы в таблице он начинался с 1 ?
Re: Примеры выражений и работы функций
А, да, что то я затупил.
Добавьте в форму числовое поле ("нумератор") с выражением
В таблицу добавьте числовое поле ("счетчик") и в его значении по умолчанию указывайте
Добавьте в форму числовое поле ("нумератор") с выражением
max('таблица','счетчик')
В таблицу добавьте числовое поле ("счетчик") и в его значении по умолчанию указывайте
[!нумератор]+1
.Фрилансер. Разработка на заказ. Консультирование.
-
- Знаток
- Сообщения: 479
- Зарегистрирован: 14 май 2017, 14:53
- Благодарил (а): 105 раз
- Поблагодарили: 20 раз
Re: Примеры выражений и работы функций
Гocть писал(а):А, да, что то я затупил.
Добавьте в форму числовое поле ("нумератор") с выражениемmax('таблица','счетчик')
В таблицу добавьте числовое поле ("счетчик") и в его значении по умолчанию указывайте[!нумератор]+1
.
Забывается, потому что два года назад уже это обжевали