Робота з табличним полем

Ця частина документації описує роботу з ЕУ "ТаблічноеПоле".

Елемент управління, який представляє дані у вигляді таблиці. Працює зі спеціальними об'єктами - джерелами даних, званими постачальниками даних табличного поля. Постачальники даних забезпечують спеціальний інтерфейс, через який табличное поле отримує дані. Саме табличное поле не працює з джерелами даних (бази даних, файлом, таблицями в пам'яті і т.п.), воно користується тільки тим, що надає йому постачальник даних.

Табличне поле може генерувати події у вигляді виклику процедур модуля форми, на якій воно розташоване, імена яких повинні бути складені з імені реквізиту форми та імені події. Кожна подія, крім описаних параметрів, завжди має перший параметр, який має значення об'єкта - джерела подій (саме табличное поле).

Підтримка поліморфного поведінки при обробці подій

Події табличного поля може обробляти КОП-спадкоємець від ТаблічногоПоля. Процедури-обробники подій повинні бути оголошені з ключовим словом Експорт (protected або public) і повинні мати ім'я, що збігається з ім'ям оброблюваного події.

Події можуть бути задані в Копе і в модулі форми одночасно, в цьому випадку спочатку відбувається виклик події в Копе, потім в модулі форми.

ТаблічноеПоле

У всіх об'єктах табличного поля і в ньому самому, властивості, що визначають колір різних елементів задаються стандартним числом RGB. Крім того, властивості можуть приймати спеціальне значення кольору, рівне -1. Це означає авто-колір - значення кольору буде визначатися з налаштувань операційної системи.

Створення табличного поля.

Для створення об'єкта потрібно розмістити на формі кнопку - вона буде реквізитом форми. Після того, як вікно форми створено (наприклад в процедурі ПослеОткритія ()), необхідно отримати об'єкт АтрібутФорми, відповідний цій кнопці і викликати його метод АтрібутФорми :: СоздатьЕлементУправленія () | _1cpp_Formex_CreateControl_. передавши в нього:

  • рядок "ТаблічноеПоле": в цьому випадку буде створено об'єкт типу ТаблічноеПоле;
  • об'єкт типу ТаблічноеПоле. для створення ЕУ буде використаний переданий об'єкт.
  • об'єкт КОПа спадкоємця від об'єкта ТаблічноеПоле (причому не обов'язково безпосередній спадкоємець): для створення ЕУ буде використаний об'єкт базового класу.

Метод повертає об'єкт типу ТаблічноеПоле або переданий параметром об'єкт.

Колонки / Columns

Доступ: тільки читання.

Встановлює картинку осередку табличного поля і властивість ОтображатьКартінку в 1.

Якщо передано Число, це повинен бути індекс піктограми в зображенні, переданої в метод КолонкаТаблічногоПоля :: УстановітьКартінкіСтрок;

Якщо передана Рядок, це повинен бути спискок індексів піктограм в зображенні, переданої в метод КолонкаТаблічногоПоля :: УстановітьКартінкіСтрок;

Якщо переданий об'єкт Картинка, то відображається сама передана картинка. Картинка відображається без використання кольору прозорості. Правила масштабування картинки задаються в об'єкті Картинка.

Масштабування виведення картинки йде завжди зі збереженням пропорцій її оригінальних розмірів і залежить від режиму малювання (Картинка :: РежімРісованія ()):

  • 1 - картинка відображається за оригінальними розмірами або якщо вони більше осередку, то за розмірами осередку;
  • 2 - картинка відображається за оригінальними розмірами (якщо вони більше розмірів осередку - ми побачимо не всю картинку, а тільки лівий верхній кут картинки);
  • 3 - картинка відображається за розмірами осередку;

УстановітьСістемнуюКартінку / SetSysPicture

ПоставщікДаннихODBC.<ТипИсточника> / ODBCDataProvider

Використовується для відображення в табличному полі таблиць баз даних. Для отримання даних використовується драйвер ODBC. Підключення задається об'єктом ODBCDataBase | _1cpp_odbc_Database.

Одержані дані визначаються SQL запитом. Формат SQL запиту визначається суворіше, ніж загальний формат SQL запиту джерела даних або драйвера ODBC.

Можливе використання метаімен і типізації полів, як визначено для об'єкта ODBCRecordset | _1cpp_odbc_recordset в Додатку А | _1cpp_SQLQuery_Metanames. Дані виходять частинами по кілька записів, як це необхідно для відображення.

Цей постачальник даних підтримує функціонал виключення полів з тексту запиту, якщо дані не потрібні для відображення (через видалення або невидимості колонки табличного поля).

Крім тексту запиту, для роботи також необхідно задати ключ порядку. Ключ порядку - це набір полів із зазначенням упорядкування (порядку проходження записів). Значення цих полів повинні однозначно ідентифікувати кожну запис.

Формат ключа порядку:

У ключі порядку ім'я поля необхідно вказувати без типізації. (Зверніть увагу, що поля з ключа порядку повинні бути обов'язково визначені в запиті.)

У тексті запиту допустимо використання текстових параметрів. Формат визначення текстового параметра в тексті запиту:

Можливе використання модифікаторів, як визначено для об'єкта ODBCRecordset | _1cpp_odbc_recordset. Текстові параметри повинні бути встановлені до установки тексту запиту.

У тексті запиту допустимо використання SQL параметрів. Формат визначення SQL параметра в тексті запиту:

Після установки тексту запиту, доступ значенням параметрів забезпечується колекцією параметрів постачальника даних.

Властивість ТекущаяСтрока табличного поля:

  • приймає значення ідентифікує поля в разі, коли ідентифікує поле було визначено методом УстІДПоле.
  • в разі якщо ідентифікує поле не було визначено - то властивість ТекущаяСтрока при читанні буде повертати значення невизначеного типу. При записи в це властивість допустимо передавати об'єкт, у властивостях якого будуть значення для ключа порядку поточної рядки.

<ТипИсточника>

Визначає тип джерела даних. Від типу джерела залежить стиль кінцевих запитів до сервера. Від типу джерела також можуть залежати способи і можливості оптимізації. Визначено такі типи джерел даних:

УстТекстЗапроса / SetQueryText

  • ТекстЗапроса - тип: Рядок. Текст запиту, який визначає дані, які буде видавати постачальник даних.

Опис: Встановлює текст запиту. При цьому відбувається скидання ключа порядку, скидання установки ідентифікаційного поля. Відбувається повна ініціалізація стану постачальника даних. При установці тексту запиту відбувається також парсинг тексту запиту парсером метаімен, як визначено для об'єкта ODBCRecordset | _1cpp_odbc_recordset.

Примітка: Відразу після установки тексту запиту постачальник даних знаходиться в непрацездатному стані, тому що відбувається скидання, без ключа порядку він працювати не може.

УстКлючПорядка / SetOrderKey

  • КлючПорядка - тип: Рядок. Текст ключа порядку.

Опис: Установка можлива тільки після установки тексту запиту.

УстановітьТекстовийПараметр / SetTextParam

Синтаксис: УстановітьТекстовийПараметр (ІмяПараметра, ЗначеніеПараметра)

  • ІмяПараметра - тип: Рядок. Ім'я параметра.
  • ЗначеніеПараметра - тип: Рядок. Значення параметра.

Опис: Встановлює значення параметра.

УстІДПоле / SetIDField

  • ІмяПоля - тип: Рядок. Ім'я поля.

Опис: Встановлює поле, яке буде прийнято постачальником даних як поле, яке ідентифікує рядок даних. Значення цього поля буде забезпечуватися постачальником даних, як значення для властивості ТекущаяСтрока табличного поля.

Оновити / Refresh

  • ТекущаяСтрока - тип: будь-хто. Необов'язковий. Залежить від установки ідентифікує поля.

Опис: Якщо параметр не вказано, то відбувається початкове заповнення табличного поля, враховуючи значення властивості табличного поля НачальноеПредставленіе. Якщо вказано параметр, то початкове заповнення табличного поля відбудеться з активізацією переданої поточного рядка.

Поточний рядок можна задавати двома способами:

  • Якщо встановлено ідентифікує поле, то можна передати значення ідентифікує поля.
  • Можна передати будь-який об'єкт, що має властивості з іменами полів ключа порядку, і відповідними значеннями цих властивостей, як значення полів ключа порядку необхідної поточного рядка. Наприклад - об'єкт типу Структрура.

Налагодження / Debug

Синтаксис: Налагодження (флРежім = 1)

Опис: включає / відключає оцінний режим.

Схожі статті