Прошу разъяснить
Модератор: Andrew™
Правила форума
При написании вопроса или обсуждении проблемы, не забывайте указывать версию Clarion и MAV который Вы используете.
А так же пользуйтесь спец. тегами при вставке исходников!!!
При написании вопроса или обсуждении проблемы, не забывайте указывать версию Clarion и MAV который Вы используете.
А так же пользуйтесь спец. тегами при вставке исходников!!!
Прошу разъяснить
1. Для чего предназначены
Select record
constraint record
additional record
я обхожусь только селектом (можно ли так)
2. В базе организовано соединение таблиц через primary по коду
таблица код, название.
Как сделать чтоб по просмотру в вроуз другой таблицы вместо кода отображал название с первой а не его код.
Select record
constraint record
additional record
я обхожусь только селектом (можно ли так)
2. В базе организовано соединение таблиц через primary по коду
таблица код, название.
Как сделать чтоб по просмотру в вроуз другой таблицы вместо кода отображал название с первой а не его код.
Re: Прошу разъяснить
selected record - правило поиска в справочнике, например контрагента ищем по ИНН, и присваиваем Ref (primary key field), ИНН в документе не держим а держим Ref контрагента, вот по Ref - constraint record запись из справочника и подывается при повторном входе в формуAnd234 писал(а):1. Для чего предназначены
Select record
constraint record
additional record
я обхожусь только селектом (можно ли так)
Additional record - ну это если в одной таблице лежит несколько справочников - доп WHERE поставщики клиенты, дружественые фирмы
не понял вопроса, если в DCT описана связь одной таблицы с другой, то как и штатно можно в File Schematic заюзать обе таблицы и отображать в LIST любые поля из этих таблиц.And234 писал(а): 2. В базе организовано соединениprimary key fieldе таблиц через primary по коду
таблица код, название.
Как сделать чтоб по просмотру в вроуз другой таблицы вместо кода отображал название с первой а не его код.
всё равно не понял о чём речьAnd234 писал(а):А красиво бы выглядело. (а то непонятные юзеру коды какие-то.)
Позже подумаю.
Может через виртуальную таблицу у которой одно поле сформировано по условию, подсовываемую в оконную таблицу с невидимой колонкой заменяемого кода.
правило хорошего тона Primary key field не показывать конечному пользователю, он работает с названиями, условными кодами и т д
в БД же все связки FOREIGN KEY идут именно по Primary Key field
Это наверное не разработчику MAV, но может есть идеи.всё равно не понял о чём речь
правило хорошего тона Primary key field не показывать конечному пользователю, он работает с названиями, условными кодами и т д
в БД же все связки FOREIGN KEY идут именно по Primary Key field
В таблице платежи есть по крайней мере 4 колонки
1. IDP (primary key) - код платежа
2. IDD (FOREIGN KEY) - связь с таблицей плательщиков
3. IDType (FOREIGN KEY) - связь с таблицей типов платежа
4. Summa - цель хранения
Запись в Brouse такая
2653 | 69 | 11 | 5000.00
Это дело выглядит красиво в двухтабличном броувзе (как у вас в примере для просмотра плательщиков) где вторая таблица отображает результат фильтра по выбранному плательщику с первой.
Но не устранен просмотр типа платежа (вместо 11 хотелось бы видеть без нал)
Я вот это хотел.
всё же штатно, в DCT опиши связь файла платежи с файлом типы платежейAnd234 писал(а):Это наверное не разработчику MAV, но может есть идеи.всё равно не понял о чём речь
правило хорошего тона Primary key field не показывать конечному пользователю, он работает с названиями, условными кодами и т д
в БД же все связки FOREIGN KEY идут именно по Primary Key field
В таблице платежи есть по крайней мере 4 колонки
1. IDP (primary key) - код платежа
2. IDD (FOREIGN KEY) - связь с таблицей плательщиков
3. IDType (FOREIGN KEY) - связь с таблицей типов платежа
4. Summa - цель хранения
Запись в Brouse такая
2653 | 69 | 11 | 5000.00
Это дело выглядит красиво в двухтабличном броувзе (как у вас в примере для просмотра плательщиков) где вторая таблица отображает результат фильтра по выбранному плательщику с первой.
Но не устранен просмотр типа платежа (вместо 11 хотелось бы видеть без нал)
Я вот это хотел.
в Browse в File Schematic появится возможность подцепить к файлу Платежи файл типы Платежей, и отображай в Browse вместо IDType поле из файла тип платежей.
2 вопроса.
1. Сущестуют 2 связанные по коду таблицы
Как мне сделать в форме редактирования записи одной таблицы просмотр элементов другой таблицы отличной от кода.
(может это настраивается штатно) без запроса с известным кодом(связи).
2. Где найти пример с выполнением SQL запроса и возвратом таблицы результата.
Что нить по проще чем в Импорте таблиц в примере ABCMAV
1. Сущестуют 2 связанные по коду таблицы
Как мне сделать в форме редактирования записи одной таблицы просмотр элементов другой таблицы отличной от кода.
(может это настраивается штатно) без запроса с известным кодом(связи).
2. Где найти пример с выполнением SQL запроса и возвратом таблицы результата.
Что нить по проще чем в Импорте таблиц в примере ABCMAV
ставишь в форме Browse по другой таблице, на закладке Condition behaviour - default - выставляешь фильтр по коду not equate коду первой таблицыAnd234 писал(а):2 вопроса.
1. Сущестуют 2 связанные по коду таблицы
Как мне сделать в форме редактирования записи одной таблицы просмотр элементов другой таблицы отличной от кода.
(может это настраивается штатно) без запроса с известным кодом(связи).
самое простое:And234 писал(а): 2. Где найти пример с выполнением SQL запроса и возвратом таблицы результата.
Что нить по проще чем в Импорте таблиц в примере ABCMAV
Код: Выделить всё
myQueue Queue
Field1 LONG
END
CODE
IF MAVLOAD('select Field from myTable1',myQueue)
MAVSHOWERROR
ELSE
! Ok, залили в Queue результат запроса
END
- Admin
- Администратор
- Сообщения: 3995
- Зарегистрирован: 05 Июль 2005, 15:59
- Откуда: Хабаровск
- Благодарил (а): 46 раз
- Поблагодарили: 26 раз
- Контактная информация:
простое то простое.... но!самое простое:
Код: Выделить всё
myQueue Queue Field1 LONG END CODE IF MAVLOAD('select Field from myTable1',myQueue) MAVSHOWERROR ELSE ! Ok, залили в Queue результат запроса END
вот смотри после MAVLOAD у меня результат ошибки Запись не найдена[35]
А как мне код ошибки получить? Не текст ошибки а именно код.
Мне нужно найти запись в таблице. Если она есть - Ok
А если ее нет мне нужно ее добавить. А у тебя в данном случае при отсутствии записи выскочит ошибка...
во первых проверил, в случае если записей по условию нет, MAVLOAD возвращает НОЛЬ и условие отсутвия записиAdmin писал(а):простое то простое.... но!самое простое:
Код: Выделить всё
myQueue Queue Field1 LONG END CODE IF MAVLOAD('select Field from myTable1',myQueue) MAVSHOWERROR ELSE ! Ok, залили в Queue результат запроса END
вот смотри после MAVLOAD у меня результат ошибки Запись не найдена[35]
А как мне код ошибки получить? Не текст ошибки а именно код.
Мне нужно найти запись в таблице. Если она есть - Ok
А если ее нет мне нужно ее добавить. А у тебя в данном случае при отсутствии записи выскочит ошибка...
Код: Выделить всё
IF NOT MAVLOAD() AND NOT RECORDS(LoadQueue)
END
если подымаешь запись по Primary Key:
Код: Выделить всё
File.Field1 = value
CASE MAVGET(File)
OF NoError
! запись есть
OF NoRecErr
! записи нет
ELSE
! ошибка чтения
END
Код: Выделить всё
MAVCLEAR(File)
File.Field2 = val2
File.field3 = val3
CASE MAVGETFROMRECORD(File)
OF NoError
! запись есть
OF NoRecErr
! записи нет
ELSE
! ошибка чтения
END
1. КУРСОР ПРЕПАРИРУЕТСЯ НА ПОЛУЧЕНИЕ ИЗ бд 1 ЗАПИСИ, ДЛЯ mavload КОЛ-ВО ЗАПИСЕЙ - ВСЕ СКОКА ЕСТЬ В бд
2. НА MAVLOAD ВСЕГДА ИДЁТ SQLDESCRIBE ЗАПРОСА, ДЛЯ mavget И ВСЕХ КУРСОРНЫХ ОБЪЕКТОВ SQLDESCRIBE ДКЛАЕТСЯ ТОЛЬКО ОДИН РАЗ ПРИ ПЕРВОМ ОБРАЩЕНИИ К ФАЙЛУ ИЗ dct
MAVLOAD в своих трёх вариациях необходимо использовать для получения произвольных запросов по структурам, которые не описаны в словаре
ЗЫ
а уведомления об ответах в ветках мне так и не приходят вааще ;(
- Admin
- Администратор
- Сообщения: 3995
- Зарегистрирован: 05 Июль 2005, 15:59
- Откуда: Хабаровск
- Благодарил (а): 46 раз
- Поблагодарили: 26 раз
- Контактная информация:
Вот еще трабла!
Смотри:
почему мне пришлось использовать INSTANCE а не ADDRESS как у тебя?
C ADDRESS не работает. Адрес группы не верно возвращает...
Код: Выделить всё
xAccessDMClass.GetName PROCEDURE(*GROUP File,STRING Name)!,STRING,VIRTUAL
CODE
CASE INSTANCE(File,THREAD())
OF ADDRESS(xaccLinks)
RETURN 'xa_links'
OF ADDRESS(xaccLogs)
C ADDRESS не работает. Адрес группы не верно возвращает...
Re: Вот еще трабла!
кто сказал, что я юзаю ADDRESS, погляди что шаблоны генерят, у меня для совместимости со всеми версиями Clarion существует своя функция MAVADDRESS, которая и юзается в .GetName()Admin писал(а):Смотри:
почему мне пришлось использовать INSTANCE а не ADDRESS как у тебя?Код: Выделить всё
xAccessDMClass.GetName PROCEDURE(*GROUP File,STRING Name)!,STRING,VIRTUAL CODE CASE INSTANCE(File,THREAD()) OF ADDRESS(xaccLinks) RETURN 'xa_links' OF ADDRESS(xaccLogs)
C ADDRESS не работает. Адрес группы не верно возвращает...
- Admin
- Администратор
- Сообщения: 3995
- Зарегистрирован: 05 Июль 2005, 15:59
- Откуда: Хабаровск
- Благодарил (а): 46 раз
- Поблагодарили: 26 раз
- Контактная информация:
Re: Вот еще трабла!
Да. Каюсь. Сам прогнал. Спасибо!у меня для совместимости со всеми версиями Clarion существует своя функция MAVADDRESS, которая и юзается в .GetName()