Страница 1 из 2

Проблема при переходе с С5.5 на С6.2

Добавлено: 15 Декабрь 2005, 9:04
gudkov
Здравствуйте.

Ситуация такая, перевожу проект с С5.5F ШВС на С6.2(9049)ШВС. В проекте есть форма редактирования основного файла, на ней Drop List'ы для выбора значений из справочников.

Cправочники имеют структуру типа:
spr:id(уникальный код)
spr:name

Основной файл связан со справочниками по этому spr:id, как много к одному, что в принципе логично. Так вот, в листформатере дроплиста, определено поле из справочника: spr:name, в use-переменной определено поле из основного файла, которое содержит уникальный код записи справочника, и тут возникла проблема в С5.5, при открытии формы, дроплист справочника автоматически позиционируется на spr:name соответствующий коду справочника в основном файле(т.е. полю определенному в use-переменной), в С6.2 позиционирования не происходит, т.е. дроплист просто позиционируеться на первую запись справочника и все.
Не пойму в чем проблема, может кто подскажет, очень не хочеться делать позиционирование руками.
ШВС вроде практически не поменялись, что для C5.5, что для С6, так что дело наверное не в них.

В приатаченых скринах видно, как позиционируеться запись в зависимости от версии Clarion'a(zapis-вид записи основного файла, form_C5.5-вид формы в С5.5F, form_C6.2-вид формы в С6.2 соотвественно)

Добавлено: 15 Декабрь 2005, 9:36
Admin
в use-переменной определено поле из основного файла, которое содержит уникальный код записи справочника
Я здесь всегда ставлю не поле из основного файла а поле наименования из справочника. В твоем случае spr:name ...
В добавок ты не сказал заполняешь ли ты в шаблоне поля:
Field to fill from: и Target field:

Попробовал в C6.2 9049 сделать как у тебя. В дроп-листе вообще не встает ни на какую запись.
Даже если ставишь галку на Default to first entry if USE variable empty

Добавлено: 15 Декабрь 2005, 10:21
gudkov
Хмм...., сделал, как ты сказал, и в дроплисте пусто, да и по логике в use-переменной должны быть переменная из основного файла, чтоб дроплист "знал" на что спозиционироваться. Поля Field to fill from: и Target field:, заполняю(правда в ШВС они называются Заполняеться полем: и Ввод в поле:, но это сути конечно не меняет. А заполняю их так - Заполняеться полем:spr:id, Ввод в поле:glo:upd_publ(это промежуточная переменная для апдейта основного файла). Галку на Default to first entry if USE variable empty: не ставлю, мне не нужно в начало позиционировать. Но я думаю заполнение вышеописанных полей никак не должно влиять на позиционирование записи в дропе, тут решающее значение имеет use-переменная.
Кстати если в форматере листа поставить вместо spr:name, spr:id, то позиционирование этого дропа по spr:id происходит, как надо, т.е. соответствует значению spr:id из общего файла.
Вот я и не пойму, что изменилось в С6.2 в отличие от С5.5, как ты заметил по скринам в С5.5, все, что я описал выше работает на ура, а в С6 нет :cry:. Я уж тут подумал, может Вадим, чтото поменял в шаблонах, хотя это маловероятно, в ШВС уже 100 лет ничего не менялось, кроме совместимости с новыми версиями Клары.

Добавлено: 15 Декабрь 2005, 10:36
softcreator
Тут есть принципиальная ошибка - и не совсем понятно, почему все позиционируется в C55 нормально. Ошибка в том, что для use-переменной используется целевое поле таблицы. Подправленная логика данного шаблона требует, что бы:
1. В Target Field (Ввод в поле) было указано именно целевое поле таблицы, куда должно попадать значение Field to fill from (Заполняеться полем).
2. Use-переменная должна быть того же типа, что и Target Field и не быть полем Target Field - например просто локальной переменной.

т.е. Use - glo:upd_publ (или что-то другое - логичнее все ж локальная переменная)
Target Field - поле основного файла
Field to fill from - spr:id

А судя по описанию сделано наоборот.

Добавлено: 15 Декабрь 2005, 12:17
gudkov
Сделал, так как сказал, Вадим, все по старому не позиционируеться :cry: . Кстати, через переменную пришлось работать, потому что, по той схеме, которую подсказал Вадим, запись не апдейтилась(было просто пустое поле), пришлось заводить переменную и руками приравнивать, поле общего файла к этой переменной.

Прилагаю пример, в нем: аппликация для С6.2(9049)ШВС, аппликация для С5.5F ШВС, шаблоны supertagging от boxsoft(без них не компилится, а чистить там до фига, они почти в каждой процедуре), directexcel от О. Руденко(тоже почти в каждой процедуре).

Отправлю еще Вадиму в личку

Добавлено: 15 Декабрь 2005, 12:35
Admin
gudkov - а у тебя точно droplist а не dropcombo?

Добавлено: 15 Декабрь 2005, 12:36
softcreator
честно говоря очень лениво ставить какие-то чужие шаблоны, потом что-то еще не будет хватаить, потом искать что поставил и удалять...
сделай простейшее приложение с одним окном - тебе дела на 15 минут же.

Добавлено: 15 Декабрь 2005, 12:44
gudkov
Однозначно дроплист, хорошо сейчас почищу аппку от этих boxsoft

Добавлено: 15 Декабрь 2005, 12:51
Admin
Сюда пример цепляй. Не нужно мылом. Все и посмотрим ...

Добавлено: 15 Декабрь 2005, 12:57
softcreator
да сделай же простой пример!!!
тебе же проще и мне очевидней будет!

Добавлено: 15 Декабрь 2005, 12:58
gudkov
Да я уже прицепил, (смотри выше), только там надо boxsoft'овские темплейты доставить, счас вот сижу чищу от них аппликацию, чтоб пример более голый был, как почищу прицеплю еще один

Добавлено: 15 Декабрь 2005, 13:00
gudkov
Так в том то и дело, что надо посмотреть на рабочей аппликации, может там чего не так, хотя все переносилось простой конвертацией аапликации, без всяких изменений

Добавлено: 15 Декабрь 2005, 14:49
gudkov
Вот выкладываю почищеный пример(только ШВС и кларин код).

Возможно проблема всетаки в шаблоне, если вы помните, я уже обращался с подобной проблемой(насчет скроллинга в дроплистах), там была такая же ситуация, в С5.5F ШВС, все нормально, в более поздних версиях клары(включая С6.2), скроллинг глючил безбожно. Вадим подправил шаблон и все нормализовалось, может и здесь такая же проблема.

Ключевые процедуры: brw_books_all и upd_all, это чтоб не рыться там особо :roll:

Добавлено: 15 Декабрь 2005, 15:16
softcreator
Я же просил сделать тестовый пример - чистый от сторонных шаблонов и библиотек? В прилагаемом приложении используются шаблоны:
1. от MikeHanson
2. от SuperBrowse
3. от MAV
4. от MAVSEC

У меня этого нет и никогда не будет.

Я еще раз говорю - нужен чистый простой пример. Если на нем проблем
нет - нужно искать в куче навесных шаблонов - кто косячит.
Если проблема есть - тогда можно локализовать ее.

Добавлено: 15 Декабрь 2005, 15:53
gudkov
Прошу прощения, сделал сейчас чистые примеры с нуля, проблема остаеться, выкладываю.

Просьба к адину, удалить два предыдущих сообщения с приатачеными архивами.