MAV Direct ODBC
Модератор: Andrew™
Правила форума
При написании вопроса или обсуждении проблемы, не забывайте указывать версию Clarion и MAV который Вы используете.
А так же пользуйтесь спец. тегами при вставке исходников!!!
При написании вопроса или обсуждении проблемы, не забывайте указывать версию Clarion и MAV который Вы используете.
А так же пользуйтесь спец. тегами при вставке исходников!!!
Lookup Button control template
Для организации работы выбирается ENTRY контрол для которого будет работать лукап, далее настраиваются правила:
1. поиска записи по этому вводному полю - Selected record, т е если у нас есть справочник товаров, то по вводному полю ищем по наименованию.
2. подкачки записи при входе в форму - Constraint record, т е если у нас есть справочник товаров, то подкачиваем запись справочник не по наименованию а по ID товара, что более логично и правильно.
Можно установить зависимость лукап контрола от других полей - Reset Fields, например есть лукап по фирмам, далее лукап по адресам фирмы, выбрали фирму, выбрали адрес, а потом заново выбрали новую фирму, лукап по адресу проверит правильность адреса, если адрес по правилу п.1 не удовлетворяет, то лукап очистится.
Реализован механизм авто ввода - Auto entry, что это такое:
Вы начинаете набирать в водном поле что то и на каждое изменение вводного поля будет происходить поиск по п.1, если в результате поиска запись из справочника будет найдена, она будет подставлена в ENTRY поле и будет выделена та часть значения, какая ещё пользователем не была введена, т е он может либо продолжить ввод, либо увидев, что уже нашёл искомую запись перейти на ввод следующего поля в форме. Для строковых полей лучше всего высталять условие поиска "начинается на"
1. поиска записи по этому вводному полю - Selected record, т е если у нас есть справочник товаров, то по вводному полю ищем по наименованию.
2. подкачки записи при входе в форму - Constraint record, т е если у нас есть справочник товаров, то подкачиваем запись справочник не по наименованию а по ID товара, что более логично и правильно.
Можно установить зависимость лукап контрола от других полей - Reset Fields, например есть лукап по фирмам, далее лукап по адресам фирмы, выбрали фирму, выбрали адрес, а потом заново выбрали новую фирму, лукап по адресу проверит правильность адреса, если адрес по правилу п.1 не удовлетворяет, то лукап очистится.
Реализован механизм авто ввода - Auto entry, что это такое:
Вы начинаете набирать в водном поле что то и на каждое изменение вводного поля будет происходить поиск по п.1, если в результате поиска запись из справочника будет найдена, она будет подставлена в ENTRY поле и будет выделена та часть значения, какая ещё пользователем не была введена, т е он может либо продолжить ввод, либо увидев, что уже нашёл искомую запись перейти на ввод следующего поля в форме. Для строковых полей лучше всего высталять условие поиска "начинается на"
SingleFileTree
Контрольный пример для C6.1 ABC
шаблонная версия
Структура каталогов закачивается в талицу MSSQL верно
все Tree_Id и PARENT Tree_id формируются верно.
Но в дереве виден только первй уровень Parent=0
Плюсики и минусики отсутствуют - как раскрыть ветки
В чем грабли ?
шаблонная версия
Структура каталогов закачивается в талицу MSSQL верно
все Tree_Id и PARENT Tree_id формируются верно.
Но в дереве виден только первй уровень Parent=0
Плюсики и минусики отсутствуют - как раскрыть ветки
В чем грабли ?
Первый глюк
Контрольный пример для С6.1 шаблонная версия
1.
Процедура RunSQLscript
Метод MAV:WindowManager.Process
File = c:\temp\mssql.sql
Если такого файла по какой либо причине нет, то:
IF SELF.File._Open(File)
SELF.ShowError('Open file - ' & File)
RETURN
END
ошибка не возвращается, а создается пустой файл
с заданным именем
SELF.File._Bytes() возвращает 0
SELF.Buffer.Reset(ALL('<0>',SELF.File._Bytes()))
Программа падает
2.
Аналогично предыдущему письму - в конторольном примере не работает SingleTree - виден первый уровень, как увидеть остальные
непонятно. При попытке изменить, удалить запись на этом уровне все падает
1.
Процедура RunSQLscript
Метод MAV:WindowManager.Process
File = c:\temp\mssql.sql
Если такого файла по какой либо причине нет, то:
IF SELF.File._Open(File)
SELF.ShowError('Open file - ' & File)
RETURN
END
ошибка не возвращается, а создается пустой файл
с заданным именем
SELF.File._Bytes() возвращает 0
SELF.Buffer.Reset(ALL('<0>',SELF.File._Bytes()))
Программа падает
2.
Аналогично предыдущему письму - в конторольном примере не работает SingleTree - виден первый уровень, как увидеть остальные
непонятно. При попытке изменить, удалить запись на этом уровне все падает
- Admin
- Администратор
- Сообщения: 4010
- Зарегистрирован: 05 Июль 2005, 15:59
- Откуда: Хабаровск
- Благодарил (а): 53 раза
- Поблагодарили: 33 раза
- Контактная информация:
Вот Вам еще немного рекламы по поводу MAV
Читаем статью ...
http://zero.clarionlife.net/Articles/OT ... alin.shtml
Читаем статью ...
http://zero.clarionlife.net/Articles/OT ... alin.shtml
Re: SingleFileTree
Anonymous писал(а):Контрольный пример для C6.1 ABC
шаблонная версия
Структура каталогов закачивается в талицу MSSQL верно
все Tree_Id и PARENT Tree_id формируются верно.
Но в дереве виден только первй уровень Parent=0
Плюсики и минусики отсутствуют - как раскрыть ветки
В чем грабли ?
Возми текущие примеры с сайта или в настройках дерева на закладке Condditional Behaviour в строке Default убей Where - фильтр строку
Демка немного не обновлённая оказалась и была поправлена, раньше для загрузки дерева устанавливалось условие закрузки первого уровня, а дальше шла рекурсивная загрузка всех веток дерева, что на больших объёмах приводило к тормозам, теперь задаётся условие для загрузки всего дерева, и дерево грузиться в момент
А я сейчас в отпуске, Псков, появлюсь на работе 25 числа сего месяца
Insert, Identity
Решена ли проблема связанная с получением значения Identity поля после добавления записи?
Если да, то где спрятаны эти возможности?
Спасибо.
Если да, то где спрятаны эти возможности?
Спасибо.
По поводу identity
А вот интересно, как работает функция mavinsert? Т.е. если она посылает обычный запрос вида insert into ... values ..., то может быть добавить в туда (ну или сделать новую функцию) еще и select max(IdentityField) from ... чтобы она так или иначе вернула нужное значение?
Или в моей идее что-то не так?
Или в моей идее что-то не так?
Re: Insert, Identity
В словаре - в таблице - в поле на закладке AttributesАрсений писал(а):Решена ли проблема связанная с получением значения Identity поля после добавления записи?
Если да, то где спрятаны эти возможности?
Спасибо.
ставишь Read Only, что бы библиотека знала - это поле не изменяется клиентским приложением при MAVINSERT и MAVUPDATE.
в поле Initial Value пишешь запрос, который будет выполняться при MAVInsert сразу за ним (Запрос можно указать переменной через воскл.знак)
Значение, которое вернул запрос - в этом поле
пример запроса: Select @@identity
Re: Insert, Identity
Спасибо. А как в программе пощупать это значение после добавления?Tolmachev Igor писал(а): Значение, которое вернул запрос - в этом поле
пример запроса: Select @@identity