Код: Выделить всё
xb long(999), bindable('xbb', xb, 123, file, driver, pre, create, Google)
Модератор: Дед Пахом
Код: Выделить всё
xb long(999), bindable('xbb', xb, 123, file, driver, pre, create, Google)
А ему действительно по барабану, т.к. для переменной простого типа BINDABLE (и видимо все его параметры) - игнорируется.
У LONG нет такого атрибута, но тут проблема в том, что у BINDABLE нет параметров. Это просто атрибут.
Что-то смотрю и смотрю и не могу понять - а что не работает, что не так в связке Bind...?Игорь Столяров писал(а): ↑28 Апрель 2019, 8:51Т.е. складывается такое интересное впечатление, что для BindExpression() привязка наименований
полей таблицы выполняется только при её открытии … Так и должно быть ?
Если Вы примените BindExpression к полям таблиц/файлов до их открытия, то результат будет нулевой. А вот Bind сработает как надо.
Да. В начале топика это описано. Повторяю, проблема в том, что Bind работает по-другому и ошибки нет. Скорее, не проблема, а фича. Ожидается, что Bind и BindExpression будут работать подобно. Ан нет!
При чём тут открытие файла? С биндами всё нормально, и обрабатываются они правильно.Игорь Столяров писал(а): ↑29 Апрель 2019, 19:20Есть в какой-то таблице Tovar поле Tov:Number. Если посмотреть описание - то получается, что имя "Tov:Number" объявлено
всегда и везде … Но это не так. Получается, что имя "Tov:Number" действует только после открытия файла Tovar в потоке.
Код: Выделить всё
test Procedure()
clafile File, Driver('TOPSPEED'), Pre(cf), Name('clafile.tps'), Create, Bindable
rec Record
field1 Long
field2 Long, Name('Bind_field2')
field3 Long
field4 Long ..
rez Real
Code
Bind(cf:rec)
Bind('cffield4', cf:field4)
BindExpression('rezult', '(cf:field1 - Bind_field2 + cffield4) * ACOS(cf:field3)')
cf:field1 = 3
cf:field2 = 2
cf:field4 = 1
rez = Evaluate('rezult')
Message('error = ' & ErrorCode() & chr(13) & 'rez = ' & rez)
Return
Абсолютно верно. Потому, что Вы всю работу метода ABC, который биндит поля списка при открытии - делаете вручную:
Код: Выделить всё
Bind(cf:rec)
Так всё-таки, что не так с биндами?Игорь Столяров писал(а): ↑29 Апрель 2019, 19:20Есть в какой-то таблице Tovar поле Tov:Number. Если посмотреть описание - то получается, что имя "Tov:Number" объявлено
всегда и везде … Но это не так. Получается, что имя "Tov:Number" действует только после открытия файла Tovar в потоке.
С биндами - всё прекрасно !
Откуда идёт это непонимание, где в описании намёк на предварительную привязку? Не атрибут ли Bindable в объявлении структуры файла имеете ввиду?Игорь Столяров писал(а): ↑16 Май 2019, 13:07Есть непонимание описания, по которому все поля таблиц являются как бы предварительно забинденными.