Модуль RsTbl


Модуль RsTbl download предназначен для отображения базы данных с использованием модуля RSODBC. Load- инициализация объекта RSTBL.
Show- отображает окно таблицы.
Style- устанавливает стиль отображения окна.
Event- регистрирует события приложения.
Unload- ликвидировать объект.
hWnd- возвращает описатель окна таблицы.
Selected- возвращает номер выбранной записи.
Column- возвращает номер выбранной колонки.
LineUp- перейти на строку выше.
LineDown- перейти на строку ниже..
LineGoto- перейти к указанной строке.
Redisplay- переотобразить таблицу.
Tune- отобразить окно диалога настройки таблицы.
TuneRead- прочитать настройки из ini-файла.
Export- экспортировать отображаемые данные.
Print- печать таблицы.
ToFile- печать в файл.
Font- установить шрифт.
Seek- переход к строке по шаблону.

Список функций

Load

Назначение.Создание объекта 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.
Следует обратить внимание, что в случае использования объекта в dbasic программе без опции 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

Назначение.Отображение таблицы.

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

Назначение.Устанавливает стиль отображения таблицы.

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

Назначение.Регистрировать событие.

Event( STRING<Msg>, LONG<Cod> ) LONG

Msg - имя события.
Cod - код обслуживаемого события меню в диапазоне 40001..41000 или 1/0.

Описание.Метод активизирует обработку соответствующего события, и возвращает код события которое будет генерировать RSTBL при его возникновении. Если данному событию нет адекватного кода, то параметр Cod следует установить равным 1. Для отмены обработки события следует передать Cod равный 0. В RSTBL определены следующие события:

Unload

Назначение.Ликвидация объекта RSTBL.

Unload

Пример:

ERASE Tbl.Unload

hWnd

Назначение.Возвращает описатель окна таблицы.

hWnd() LONG

Пример:

hTbl=Tbl.hWnd()

Selected

Назначение.Возвращает номер выбранной записи.

Selected() LONG

Пример:

REC=Tbl.Selected()

Column

Назначение.Возвращает номер выбранной колонки.

Column() LONG

Описание.Для работы метода необходимо установить стиль GRID

Пример:

EDIT:
 REC=PARAM
 Col=Tbl.Column()
 Name=Rs.Field(STR(Col))
 ...
END

LineUp

Назначение.Переход на строку вверх.

LineUp() BOOL

Описание.Если перемещение на строку возможно, то метод выполняет это перемещение и возвращает истину, иначе ложь.

Пример:

UP:
 IF Tbl.LineUp() GOTO MOVE
END

MOVE:
 REC= Tbl.Selected()
 IF Rs.RecGet( REC ) GOTO EDIT11
END

LineDown

Назначение.Перейти на строку вниз.

LineDown() BOOL

Описание.Если перемещение на строку вниз, то метод выполняет это перемещение и возвращает истину, иначе ложь.

Пример:

DOWN:
 IF Tbl.LineDown() GOTO MOVE
END

MOVE:
 REC= Tbl.Selected()
 IF Rs.RecGet( REC ) GOTO EDIT11
END

LineGoto

Назначение.Перейти к указанной строке.

LineGoto( LONG<REC> ) BOOL

REC - номер строки начиная с 1.

Описание.Если перемещение к строке возможно, то метод выполняет это перемещение и возвращает истину, иначе ложь.

Пример:

ok=Tbl.LineGoto(3)

Redisplay

Назначение.Метод переотображает таблицу.

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

Назначение.Отобразить окно диалога настройки таблицы.

Tune() LONG

Описание.Метод отображает окно вида

и возвращает
0-в случае нажатия кнопки Cancel.
1-в случае изменения настройки колонок.
2-в случае изменения поля сортировки.

Пример:

RES=Tbl.Tune()

TuneRead

Назначение.Прочитать настройки из ini-файла.

TuneRead() BOOL

Описание.Метод читает настройки из ini-файла и возвращает истину, если в результате требуется перестройка заголовка таблицы. При изменении только шрифта, толщины визира или отсутствии каких-либо изменений возвращается ложь.

Пример:

Cmd=IIF(Tbl.TuneRead(),2,0)
Tbl.Redisplay(Cmd)

Export

Назначение.Экспорт данных таблицы.

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

Назначение.Печать таблицы.

Print( STRING<Title> ) BOOL

Title - заголовок или 0.

Описание.Метод печатает таблицу на принторе. На печать попадают все нескрытые колонки, сколько умещается на заданном листе. Причем ширина колонок определяется шириной полей RSODBC, а не экранными установками. Шрифт печати и отступы от краев определяются установками принтера (SELFONT, SETMARGIN). Если задана строка заголовка Title, то она печатается на первой странице перед шапкой таблицы.

Пример:

ok=Tbl.Print("Карточка товара "+NAME)

ToFile

Назначение.Печать таблицы в файл.

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

Назначение.Установить шрифт таблицы.

Font( STRING<Name>, LONG<Height> ) LONG<hFont>

Name - имя шрифта,
Height - высота шрифта.

Описание.Метод устанавливает шрифт таблицы и в случае успеха возвращает его хэндел, иначе 0.

Пример:

hFont=Tbl.Font("Pragmatica",8)

Seek

Назначение.Переход к строке по шаблону.

Seek( STRING<Pattern> ) BOOL

Pattern - шаблон для поиска.

Описание.Метод производит быстрый поиск заданной подстроки в колонке по которой отсортирована таблца. Если колонки нет, то поиск не производится. Для поиска используется метод Seek объекта RSODBC. В случае успеха курсор перемещается к найденной строке и метод возвращает истину, иначе ложь.

Пример:

ok=Tbl.Seek("133")

Hosted by uCoz