Модуль RsTbl download предназначен для отображения базы данных
с использованием модуля RSODBC.
Load- инициализация объекта RSTBL.
Show- отображает окно таблицы.
Style- устанавливает стиль отображения окна.
Event- регистрирует события приложения.
Unload- ликвидировать объект.
hWnd- возвращает описатель окна таблицы.
Selected- возвращает номер выбранной записи.
Column- возвращает номер выбранной колонки.
LineUp- перейти на строку выше.
LineDown- перейти на строку ниже..
LineGoto- перейти к указанной строке.
Redisplay- переотобразить таблицу.
Tune- отобразить окно диалога настройки таблицы.
TuneRead- прочитать настройки из ini-файла.
Export- экспортировать отображаемые данные.
Print- печать таблицы.
ToFile- печать в файл.
Font- установить шрифт.
Seek- переход к строке по шаблону.
Назначение.Создание объекта RSTBL.
Load( LONG<hWnd>, STRING<Name> ) LONG<pClass>
hWnd - описатель родительского окна.
Name - имя окна.
Описание.При вызове функции создается объект RSTBL.
Причем Name используется как имя секции dbasic.ini файла в которм создаются поля:
[Name] TableTune=NNHNHFFNFNNFFFFFFFFF TableFont=MS Sans Serif,8,0 TableSort=NAMEдля записи настройки колонок таблиц и шрифта отображения. В качестве имени рекомендуется использовать предопределенную переменную PRGNAME.
REM WINDOW
объект следует создавать в рамках события
(см. пример).
Пример:
REM WINDOW SET Tbl= RSTBL.Load( HWND, PRGNAME ) IF EMPTY(Tbl) GOTO CLOSE ... или RES=EVENT("WINDOW") IF EMPTY(Tbl) GOTO CLOSE ... END WINDOW: SET Tbl= RSTBL.Load( HWND, PRGNAME ) END
Назначение.Отображение таблицы.
Show( OBJECT<Rs>, STRING<Title>, STRING<Syle> ) BOOL
Rs - объект RSODBC.
Title - список заголовков таблицы.
Style - опции.
Описание.Метод отображает таблицу на экране. Заголовки колонок таблицы разделяются символом "|". Кол-во отображаемых колонок может быть меньше реального кол-ва колонок в таблице, но ни наоборот. В последнем случае выдается сообщение об ошибке. Опции, так-же перечисляются через разделитель "|" и имеею вид:
Пример:
REM WINDOW TABLE="CITY" SQLSTR="SELECT CITY.NAME AS NAME, REGION, COUNTRY.NAME AS COUNTRY, CITY.ID FROM CITY, COUNTRY WHERE COUNTRY.ID=CITY.CRYID ORDER BY NAME" TITLE="Наименование|Область|Страна" SET Tbl= RSTBL.Load( HWND, PRGNAME ) IF EMPTY(Tbl) GOTO CLOSE RES= ATTACH( Tbl.hWnd(),0,0 ) IF NOT Tbl.Show( Rs, TITLE, "SCROLL|FIND" ) GOTO CLOSE EVENT Tbl.Event( "EDIT", 40203 ), EDIT EVENT Tbl.Event( "INSERT", 40201 ), APPEND EVENT Tbl.Event( "DELETE", 40202 ), DELETE EVENT Tbl.Event( "MOVE", 1 ), SELECT EVENT Tbl.Event( "TITLE", 40200 ), SORT END CLOSE: ERASE Tbl.Unload ERASE Rs.Close ERASE Shop.BaseClose BREAK END
Назначение.Устанавливает стиль отображения таблицы.
Style( STRING<Style>, BOOL<On> )
Style - строка стилей.
On - включить/выключить опцию.
Описание.Хотя данному методу доступны все опции упомянутые в Show практически следует использовать лишь опции FOOTER, SCROLL, GRID.
Пример:
REM WINDOW IsGrid=CBOOL(0) ... EVENT Tbl.Event( "TAB", 1 ), TABSEL ... END TABSEL: IsGrid=NOT(IsGrid) Tbl.Style("GRID",IsGrid) Tbl.Redisplay(0) END
Назначение.Регистрировать событие.
Event( STRING<Msg>, LONG<Cod> ) LONG
Msg - имя события.
Cod - код обслуживаемого события меню в диапазоне 40001..41000 или 1/0.
Описание.Метод активизирует обработку соответствующего события, и возвращает код события которое будет генерировать RSTBL при его возникновении. Если данному событию нет адекватного кода, то параметр Cod следует установить равным 1. Для отмены обработки события следует передать Cod равный 0. В RSTBL определены следующие события:
Назначение.Ликвидация объекта RSTBL.
Unload
Пример:
ERASE Tbl.Unload
Назначение.Возвращает описатель окна таблицы.
hWnd() LONG
Пример:
hTbl=Tbl.hWnd()
Назначение.Возвращает номер выбранной записи.
Selected() LONG
Пример:
REC=Tbl.Selected()
Назначение.Возвращает номер выбранной колонки.
Column() LONG
Описание.Для работы метода необходимо установить стиль GRID
Пример:
EDIT: REC=PARAM Col=Tbl.Column() Name=Rs.Field(STR(Col)) ... END
Назначение.Переход на строку вверх.
LineUp() BOOL
Описание.Если перемещение на строку возможно, то метод выполняет это перемещение и возвращает истину, иначе ложь.
Пример:
UP: IF Tbl.LineUp() GOTO MOVE END MOVE: REC= Tbl.Selected() IF Rs.RecGet( REC ) GOTO EDIT11 END
Назначение.Перейти на строку вниз.
LineDown() BOOL
Описание.Если перемещение на строку вниз, то метод выполняет это перемещение и возвращает истину, иначе ложь.
Пример:
DOWN: IF Tbl.LineDown() GOTO MOVE END MOVE: REC= Tbl.Selected() IF Rs.RecGet( REC ) GOTO EDIT11 END
Назначение.Перейти к указанной строке.
LineGoto( LONG<REC> ) BOOL
REC - номер строки начиная с 1.
Описание.Если перемещение к строке возможно, то метод выполняет это перемещение и возвращает истину, иначе ложь.
Пример:
ok=Tbl.LineGoto(3)
Назначение.Метод переотображает таблицу.
Redisplay( LONG<Flag> )
Flag - метод переотображения.
Описание.
Флаг | Действие |
---|---|
0 | заголовок не перестраивается, куроср не перемещается. |
1 | заголовок перестраивается, курсор перемещается на первую строку. |
2 | заголовок перестраивается, курсор не перемещается. |
3 | заголовок не перестраивается, куроср перемещается на первую строку. |
Пример:
TUNE: PARAM= Tbl.Tune(); Cmd=2 IF PARAM > 1 THEN Rs.Refresh(0);Cmd=1 IF PARAM > 0 THEN Tbl.Redisplay(Cmd) END
Назначение.Отобразить окно диалога настройки таблицы.
Tune() LONG
Описание.Метод отображает окно вида
и возвращает
0-в случае нажатия кнопки Cancel.
1-в случае изменения настройки колонок.
2-в случае изменения поля сортировки.
Пример:
RES=Tbl.Tune()
Назначение.Прочитать настройки из ini-файла.
TuneRead() BOOL
Описание.Метод читает настройки из ini-файла и возвращает истину, если в результате требуется перестройка заголовка таблицы. При изменении только шрифта, толщины визира или отсутствии каких-либо изменений возвращается ложь.
Пример:
Cmd=IIF(Tbl.TuneRead(),2,0) Tbl.Redisplay(Cmd)
Назначение.Экспорт данных таблицы.
Export( LONG<Cod> ) BOOL
Cod - код события.
Описание.Метод отображает окно вида
в котором пользователь выбирает куда следует экспортировать
данные из таблицы. В экспорт попадают все отфильтрованные
строки и отмечанные как видимые колонки. В процессе экспорта
метод генерирует события с указанным кодом и параметром равным:
0-начало копирование, -1-окончание копирование, иначе - номер
копируемой строки. Метод позволяет копировать в файл и
буфер Windows. В случае успеха возвращается истина,
иначе ложь
Пример:
EXPORT: REC=Rs.RecCnt() IF REC=0 THEN END EVENT 3000,PBAR ok=Tbl.Export( 3000 ) EVENT 3000 END PBAR: IF PARAM=0 THEN PB=DBDLG!PBOPEN( Tbl.hWnd(), "Копирую" ) IF PARAM>0 THEN DBDLG!PBPOSITION( PB, PARAM, REC ) IF PARAM=-1 THEN DBDLG!PBCLOSE( PB ) END
Назначение.Печать таблицы.
Print( STRING<Title> ) BOOL
Title - заголовок или 0.
Описание.Метод печатает таблицу на принторе. На печать попадают все нескрытые колонки, сколько умещается на заданном листе. Причем ширина колонок определяется шириной полей RSODBC, а не экранными установками. Шрифт печати и отступы от краев определяются установками принтера (SELFONT, SETMARGIN). Если задана строка заголовка Title, то она печатается на первой странице перед шапкой таблицы.
Пример:
ok=Tbl.Print("Карточка товара "+NAME)
Назначение.Печать таблицы в файл.
ToFile( STRING<Title> ) LONG
Title - заголовок или 0.
Описание.Метод печатает таблицу в файл. На печать попадают все нескрытые колонки, сколько умещается на заданном листе. Причем ширина колонок определяется шириной полей RSODBC, а не экранными установками. Шрифт печати и отступы от краев определяются установками принтера (SELFONT, SETMARGIN). Если задана строка заголовка Title, то она печатается на первой странице перед шапкой таблицы. В результате выполнения метода получается файл, который позднее может быть просмотрен и распечатан с помощью объекта VWFRM. При успехе метод возвращает хэндел открытого файла, иначе 0.
Пример:
PRINT: File=Tbl.ToFile("Карточка товара "+NAME) IF File=0 THEN END RES=RUN( PRGDIR+"View.bas", 0 ) END
Назначение.Установить шрифт таблицы.
Font( STRING<Name>, LONG<Height> ) LONG<hFont>
Name - имя шрифта,
Height - высота шрифта.
Описание.Метод устанавливает шрифт таблицы и в случае успеха возвращает его хэндел, иначе 0.
Пример:
hFont=Tbl.Font("Pragmatica",8)
Назначение.Переход к строке по шаблону.
Seek( STRING<Pattern> ) BOOL
Pattern - шаблон для поиска.
Описание.Метод производит быстрый поиск заданной подстроки в колонке по которой отсортирована таблца. Если колонки нет, то поиск не производится. Для поиска используется метод Seek объекта RSODBC. В случае успеха курсор перемещается к найденной строке и метод возвращает истину, иначе ложь.
Пример:
ok=Tbl.Seek("133")