Проблема при переходе с С5.5 на С6.2
Clarion, Clarion 7
Модератор: Дед Пахом
Правила форума
При написании вопроса или обсуждении проблемы, не забывайте указывать версию Clarion который Вы используете.
А так же пользуйтесь спец. тегами при вставке исходников!!!
При написании вопроса или обсуждении проблемы, не забывайте указывать версию Clarion который Вы используете.
А так же пользуйтесь спец. тегами при вставке исходников!!!
Проблема при переходе с С5.5 на С6.2
Здравствуйте.
Ситуация такая, перевожу проект с С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 соотвественно)
Ситуация такая, перевожу проект с С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 соотвественно)
Удачи!
gudkov
- Admin
- Администратор
- Сообщения: 4010
- Зарегистрирован: 05 Июль 2005, 15:59
- Откуда: Хабаровск
- Благодарил (а): 53 раза
- Поблагодарили: 33 раза
- Контактная информация:
Я здесь всегда ставлю не поле из основного файла а поле наименования из справочника. В твоем случае spr:name ...в use-переменной определено поле из основного файла, которое содержит уникальный код записи справочника
В добавок ты не сказал заполняешь ли ты в шаблоне поля:
Field to fill from: и Target field:
Попробовал в C6.2 9049 сделать как у тебя. В дроп-листе вообще не встает ни на какую запись.
Даже если ставишь галку на Default to first entry if USE variable empty
Admin
Хмм...., сделал, как ты сказал, и в дроплисте пусто, да и по логике в 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 нет
. Я уж тут подумал, может Вадим, чтото поменял в шаблонах, хотя это маловероятно, в ШВС уже 100 лет ничего не менялось, кроме совместимости с новыми версиями Клары.
Кстати если в форматере листа поставить вместо spr:name, spr:id, то позиционирование этого дропа по spr:id происходит, как надо, т.е. соответствует значению spr:id из общего файла.
Вот я и не пойму, что изменилось в С6.2 в отличие от С5.5, как ты заметил по скринам в С5.5, все, что я описал выше работает на ура, а в С6 нет

Удачи!
gudkov
-
- Ветеран движения
- Сообщения: 78
- Зарегистрирован: 04 Август 2005, 9:35
- Контактная информация:
Тут есть принципиальная ошибка - и не совсем понятно, почему все позиционируется в 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
А судя по описанию сделано наоборот.
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
А судя по описанию сделано наоборот.
softcreator
Сделал, так как сказал, Вадим, все по старому не позиционируеться
. Кстати, через переменную пришлось работать, потому что, по той схеме, которую подсказал Вадим, запись не апдейтилась(было просто пустое поле), пришлось заводить переменную и руками приравнивать, поле общего файла к этой переменной.
Прилагаю пример, в нем: аппликация для С6.2(9049)ШВС, аппликация для С5.5F ШВС, шаблоны supertagging от boxsoft(без них не компилится, а чистить там до фига, они почти в каждой процедуре), directexcel от О. Руденко(тоже почти в каждой процедуре).
Отправлю еще Вадиму в личку

Прилагаю пример, в нем: аппликация для С6.2(9049)ШВС, аппликация для С5.5F ШВС, шаблоны supertagging от boxsoft(без них не компилится, а чистить там до фига, они почти в каждой процедуре), directexcel от О. Руденко(тоже почти в каждой процедуре).
Отправлю еще Вадиму в личку
Удачи!
gudkov
Admin
-
- Ветеран движения
- Сообщения: 78
- Зарегистрирован: 04 Август 2005, 9:35
- Контактная информация:
softcreator
gudkov
Admin
-
- Ветеран движения
- Сообщения: 78
- Зарегистрирован: 04 Август 2005, 9:35
- Контактная информация:
softcreator
gudkov
gudkov
Вот выкладываю почищеный пример(только ШВС и кларин код).
Возможно проблема всетаки в шаблоне, если вы помните, я уже обращался с подобной проблемой(насчет скроллинга в дроплистах), там была такая же ситуация, в С5.5F ШВС, все нормально, в более поздних версиях клары(включая С6.2), скроллинг глючил безбожно. Вадим подправил шаблон и все нормализовалось, может и здесь такая же проблема.
Ключевые процедуры: brw_books_all и upd_all, это чтоб не рыться там особо
Возможно проблема всетаки в шаблоне, если вы помните, я уже обращался с подобной проблемой(насчет скроллинга в дроплистах), там была такая же ситуация, в С5.5F ШВС, все нормально, в более поздних версиях клары(включая С6.2), скроллинг глючил безбожно. Вадим подправил шаблон и все нормализовалось, может и здесь такая же проблема.
Ключевые процедуры: brw_books_all и upd_all, это чтоб не рыться там особо

Удачи!
gudkov
-
- Ветеран движения
- Сообщения: 78
- Зарегистрирован: 04 Август 2005, 9:35
- Контактная информация:
Я же просил сделать тестовый пример - чистый от сторонных шаблонов и библиотек? В прилагаемом приложении используются шаблоны:
1. от MikeHanson
2. от SuperBrowse
3. от MAV
4. от MAVSEC
У меня этого нет и никогда не будет.
Я еще раз говорю - нужен чистый простой пример. Если на нем проблем
нет - нужно искать в куче навесных шаблонов - кто косячит.
Если проблема есть - тогда можно локализовать ее.
1. от MikeHanson
2. от SuperBrowse
3. от MAV
4. от MAVSEC
У меня этого нет и никогда не будет.
Я еще раз говорю - нужен чистый простой пример. Если на нем проблем
нет - нужно искать в куче навесных шаблонов - кто косячит.
Если проблема есть - тогда можно локализовать ее.
softcreator
gudkov
Вернуться в «CLARION for Windows»
Перейти
- CW
- ↳ CLARION for Windows
- ↳ CLARION for Internet
- ↳ Clarion.NET
- Эксклюзив
- ↳ Приват
- CLARION и...
- ↳ Reports
- ↳ Железо
- ↳ Готовые программы, шаблоны, библиотеки...
- ↳ cJSON
- ↳ LibCurl
- ↳ MAV
- ↳ SQL, Oracle, ...
- ↳ Multi-программирование(Pascal/Delphi, и т.д.)
- ↳ WinDev
- DOS
- ↳ CLARION for DOS
- Разное
- ↳ Новости
- ↳ English
- ↳ Ресурсы
- ↳ Работа
- ↳ Обо всем ...
- ↳ Обсуждение этого Форума (типа, Гостевая книга)