OberonCore https://forum.oberoncore.ru/ |
|
StdTables - прочитать значение из выделенной ячейки. https://forum.oberoncore.ru/viewtopic.php?f=35&t=3949 |
Страница 1 из 1 |
Автор: | Иван Кузьмицкий [ Четверг, 26 Апрель, 2012 11:53 ] |
Заголовок сообщения: | Re: StdTables - прочитать значение из выделенной ячейки. |
Так тут контрол и не нужен, работайте с интерактором StdTables.Table! |
Автор: | Пётр Кушнир [ Четверг, 26 Апрель, 2012 11:57 ] |
Заголовок сообщения: | Re: StdTables - прочитать значение из выделенной ячейки. |
в Блэкбоксе контрол связан с вашим кодом через интерактор определённого типа. http://i.minus.com/ibhVciFBX07TX.PNG |
Автор: | bl.beard [ Четверг, 26 Апрель, 2012 14:28 ] |
Заголовок сообщения: | Re: StdTables - прочитать значение из выделенной ячейки. |
Пётр Кушнир писал(а): в Блэкбоксе контрол связан с вашим кодом через интерактор определённого типа. http://i.minus.com/ibhVciFBX07TX.PNG но у меня этот интекактор типа SqlDB.Table ! ![]() Код: MODULE OraAdmin;
IMPORT Dialog, Views, TextModels, TextControllers, SqlDB, SqlControls, StdTables, StdCmds; VAR TConnectionDescr*: RECORD UserName* : ARRAY 30 OF CHAR; Password* : ARRAY 1024 OF CHAR; Database*, Driver* : ARRAY 30 OF CHAR; END; TFilter* : RECORD likeName*: ARRAY 30 OF CHAR; END; table*: SqlDB.Table; stdTable*: StdTables.Table; db: SqlDB.Database; PROCEDURE GetDB*(); VAR res: INTEGER; BEGIN SqlDB.OpenDatabase(TConnectionDescr.Driver, TConnectionDescr.UserName, TConnectionDescr.Password, TConnectionDescr.Database, SqlDB.async, SqlDB.showErrors, db, res); IF res = 0 THEN table := db.NewTable(); Dialog.ShowMsg("#Sql:Connected & table RESERVED"); StdCmds.OpenAuxDialog("Ora/Rsrc/ListOraUser", "ORACLE USERS EDITOR"); ELSIF res <= 3 THEN Dialog.ShowMsg("#Sql:CannotLoadDriver") ELSE Dialog.ShowMsg("#Sql:ConnectionFailed") END; END GetDB; PROCEDURE CheckResult (tab: SqlDB.Table; par: ANYPTR); VAR v: Views.View; BEGIN IF tab.res = 0 THEN IF tab.columns > 0 THEN v := SqlControls.dir.NewTableOn(tab); Views.OpenAux(v, "#Sql:Result"); ELSE Dialog.ShowMsg("#Sql:StatementExecuted") END ELSE Dialog.ShowMsg("#Sql:ExecutionFailed") END; END CheckResult; PROCEDURE ExecThis(stmt: ARRAY OF CHAR; table : SqlDB.Table); VAR v : Views.View; BEGIN IF (stmt # "") & (table # NIL) THEN (* allocate separate table to allow for multiple open tables *) table.Clear(); table.Exec(stmt); Dialog.Update(table); (* separate result check from execution to allow for asynchronous operation *) (* table.Call(CheckResult, NIL); *) (* v := SqlControls.dir.NewTableOn(table); *) END; END ExecThis; PROCEDURE OpenConnectDlg* (); BEGIN StdCmds.OpenToolDialog('Ora/Rsrc/TConnectionDescrDlg', 'Connect to ...'); END OpenConnectDlg; PROCEDURE OraUsersFilterNotifier* (op, from, to: INTEGER); VAR stmt : ARRAY 1024 OF CHAR; BEGIN stmt := "select * from dba_users where username like '%" +TFilter.likeName + "%'" ; ExecThis(stmt , table) ; Dialog.ShowMsg("Executed"); END OraUsersFilterNotifier; PROCEDURE OraUsersListNotifier* (t: SqlDB.Table; row, column: INTEGER; modifiers: SET); BEGIN Dialog.ShowMsg("OraUsersListNotifier"); END OraUsersListNotifier; BEGIN TConnectionDescr.Driver := "SqlOdbc3"; TConnectionDescr.UserName := "POSITION"; TConnectionDescr.Password := ""; TConnectionDescr.Database := "PROG.WORLD"; END OraAdmin. StdCmds.OpenAuxDialog('TConnectionDescrDlg', 'Connect') |
Автор: | Иван Кузьмицкий [ Четверг, 26 Апрель, 2012 15:21 ] |
Заголовок сообщения: | Re: StdTables - прочитать значение из выделенной ячейки. |
Ага, у вас же SqlControls.Control, а он поддерживает такой фокус ![]() |
Автор: | bl.beard [ Вторник, 15 Май, 2012 17:48 ] | ||
Заголовок сообщения: | Re: StdTables - прочитать значение из выделенной ячейки. | ||
Не могу понять как сделать чтобы формы открывались независимо? Интуитивно я понимаю что они должны быть связаны с разными интеракторами, но как это сделать я не понимаю. подскажите, плиз. вот на скриншоте 2 формы одинаковые. а хочется чтобы они были связаны с разными коннектами к базе. и кстати: есть в ББ аналог понятия "align" как в Delphi? чтобы они автоматически меняли размеры при изменении формы и прилипали к краям, ну я думаю все понимают о чем речь.
|
Автор: | Valery Solovey [ Пятница, 18 Май, 2012 18:17 ] |
Заголовок сообщения: | Re: StdTables - прочитать значение из выделенной ячейки. |
По первому пункту не подскажу, поскольку с данные из БД я в таблицы никогда не выводил. А "прилипания" в ББ нет. Из чего-то похожего самопального есть только открытие окошка лога. Если Вы заметили, то оно всегда открывается прижатым к левому краю. |
Автор: | Иван Денисов [ Суббота, 19 Май, 2012 19:43 ] |
Заголовок сообщения: | Re: StdTables - прочитать значение из выделенной ячейки. |
Чтобы таблица растягивалась по ширине, можете в StdTables.Paint заменить Код: width := c.width[col]; на Код: width := (w - 3*f.dot) DIV cols; Возможно добавить опцию к объекту таблицы, и в зависимости от этой опции эту часть кода делать разной. Совет — не бойтесь лезть в исходные коды, там, как вы поняли наверное уже, много не адаптировано под привычные сегодня задачи, но среда позволяет настроить себя очень гибко. Например, изменить способ отрисовки таблицы (шрифты, цвет заголовков и т.п.). При этом вся остальная логика не разрушится. |
Автор: | Пётр Кушнир [ Суббота, 19 Май, 2012 21:11 ] |
Заголовок сообщения: | Re: StdTables - прочитать значение из выделенной ячейки. |
кажется, возможности StdTables вы исчерпали довольно быстро |
Страница 1 из 1 | Часовой пояс: UTC + 3 часа |
Powered by phpBB® Forum Software © phpBB Group https://www.phpbb.com/ |