On-line: PSP, гостей 0. Всего: 1 [подробнее..]
АвторСообщение
постоянный участник


Пост N: 420
Зарегистрирован: 13.10.05
ссылка на сообщение  Отправлено: 19.12.13 18:16. Заголовок: TsBrowse в Минигуи (продолжение)


TsBrows определяется в виде строки ПАРМЕТРОВ объекта и их значений
К примеру

 цитата:

DEFINE TBROWSE oBrw2 ;
AT 60,450 ;
ALIAS cAlias ;
OF Form1 ;
WIDTH 330 ;
HEIGHT 340 ;
FONT "Verdana" ;
SIZE 9 ;
ON DBLCLICK CopyRec();
ON GOTFOCUS fModelo_Hab(2) ;
AUTOFILTER ;
CELLED EDIT;
VALUE nRec;
GRID


Здесь я собрал параметры из разных tBrows
Можно или нет и какие парметры заменить
выражением ( и каким) ?
oBrw2:....
oBrw2:....

























<a href=http://www.bestmarket.com.ua >ноутбуки</a>























<a href=http://www.bestmarket.com.ua >ноутбуки</a>
Спасибо: 0 
ПрофильЦитата Ответить
Ответов - 86 , стр: 1 2 3 4 5 All [только новые]


постоянный участник




Пост N: 6362
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 25.07.19 17:07. Заголовок: SergKis пишет: Что ..


SergKis пишет:

 цитата:
Что конкретно (какое место) трудно читается ?
Хочется знать, что бы пояснить.



Не могу использовать его для своего случая.
Свой код привел выше.
Как его модифицировать ?

Спасибо: 0 
ПрофильЦитата Ответить



Пост N: 2689
Зарегистрирован: 17.02.12
ссылка на сообщение  Отправлено: 25.07.19 17:38. Заголовок: Andrey пишет Не могу..


Andrey пишет
 цитата:
Не могу использовать его для своего случая


Ты даже не попробовал разобраться.

 цитата:
Как его модифицировать ?


Сделай 2а массива
1-ый используй при создании тсб
2-ой на замену (без изм. nWidth колонок), у меня он aArray в AgeReport

Спасибо: 0 
ПрофильЦитата Ответить
постоянный участник




Пост N: 6419
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 05.09.19 23:23. Заголовок: Правлю свои таблицы...


Правлю свои таблицы. До этого сделал временно и оставил.
Как сделать авторасширение всех столбцов таблицы чтобы справа фантомного столбца не было видно ?
Что-то ранее видел, но не успел попробовать.
Читал про oBrw:lAdjColumn := .T. и oBrw:AdjColumns()
Не совсем понял как их применять ?

Спасибо: 0 
ПрофильЦитата Ответить



Пост N: 2807
Зарегистрирован: 17.02.12
ссылка на сообщение  Отправлено: 05.09.19 23:40. Заголовок: Andrey С тек. верси..


Andrey
С тек. версии hmg стало 2а алгоритма по растягиванию колонок
- :AdjColumns() // если ширина всех колонок < ширины тсб,
- :lAdjColumn := .F.\.T. // если есть горизонтальный скролинг колонок, при .T. предпоследняя колонка растягивается до конца ширины тсб, если последняя не вмещается

Спасибо: 0 
ПрофильЦитата Ответить
постоянный участник




Пост N: 6420
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 05.09.19 23:55. Заголовок: Спасибо ! :sm36: :..


Спасибо !
:AdjColumns() - отработал очень хорошо.
:lAdjColumn := .F.\.T. - никак не отработал, хотя версия 19.08 (Update 1)

Спасибо: 0 
ПрофильЦитата Ответить
постоянный участник




Пост N: 6560
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 17.01.20 15:42. Заголовок: Всем привет ! Что т..


Всем привет !
Что то опять бровс чудит.
Вот такая ошибка:
Error BASE/1004 Message not found: NIL:GOTO 
--------------------------------- Stack Trace ---------------------------------
Called from __ERRRT_SBASE(0)
Called from NIL:ERROR(0)
Called from (b)HBOBJECT(0)
Called from NIL:MSGNOTFOUND(0)
Called from NIL:GOTO(0)
Called from LOADSITEPASSDIM(236) in module: Source\form_transferM1pass.prg
Called from MYINITM1SITEPASS(129) in module: Source\form_transferM1pass.prg

Куда копать ?

Спасибо: 0 
ПрофильЦитата Ответить



Пост N: 3008
Зарегистрирован: 17.02.12
ссылка на сообщение  Отправлено: 17.01.20 19:30. Заголовок: Andrey пишет Error ..


Andrey пишет
 цитата:
Error BASE/1004 Message not found: NIL:GOTO


Ты потерял объект oBrw в переменной
NIL:GOTO

Спасибо: 0 
ПрофильЦитата Ответить
постоянный участник




Пост N: 6577
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 09.02.20 00:00. Заголовок: Всем привет ! А мож..


Всем привет !

А можно сделать выгрузку всего объекта бровса на диск в файл,
а потом в другой программе просто загрузить этот файл ?
Именно весь, с цветами, полями, значениями и т.д.
Это нужно для небольших таблиц.

Типа такого:
 
TsbrowseSave( M->oBrw3, "fileBrw3.obrw" )
TsbrowseRestore( "fileBrw3.obrw", M->oBrw3 )


P.S. Можно и без цветов для начала.

Спасибо: 0 
ПрофильЦитата Ответить



Пост N: 3033
Зарегистрирован: 17.02.12
ссылка на сообщение  Отправлено: 09.02.20 00:13. Заголовок: Andrey пишет Именно ..


Andrey пишет
 цитата:
Именно весь, с цветами, полями, значениями и т.д.


Поиграйся ф-ями объкта ( А.Кресин http://www.kresin.ru/hrbfaq_3.html#Doc3 )
Далее следует список функций для манипуляции классами и объектами:
смотрим и пробуем
+ ф-ии сохранения\восстановления блоков кода (забыл названия в ночи, но тема была где то)
или организовывать их строковое представление для сохранения\восстановления

Спасибо: 0 
ПрофильЦитата Ответить
постоянный участник




Пост N: 6578
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 09.02.20 00:26. Заголовок: SergKis пишет: смот..


SergKis пишет:

 цитата:
смотрим и пробуем


Я до сих пор так и не пользуюсь классами...
Раньше считал что не особо нужно, потом уже мозги не те, не понимаю как ими пользоваться.
Начинал с твоей помощью, так и забросил.

Спасибо: 0 
ПрофильЦитата Ответить



Пост N: 3034
Зарегистрирован: 17.02.12
ссылка на сообщение  Отправлено: 09.02.20 00:28. Заголовок: PS При исп. :SetArra..


PS
При исп. :SetArrayTo(...) сохраняй\восстанавливай массивы - уже практичечки все готово, делай
В примере о курсах валют от ЦБ РФ (во флайме) у меня сделано
 
DEFINE TBROWSE oBrw AT nY, nX ALIAS cAlias WIDTH nW HEIGHT nH GRID ;
FONT { "Normal", "Header", "Footer" } ;
COLORS { CLR_BLACK, CLR_BLUE } ;
HEADERS { "Char;Code", "Num;Code", "Name" , "Nominal", "Value" } ;
COLSIZES { 40 , 40 , 250 , 50 , 50 } ;
PICTURE { , , "@R "+Repl('X',50), , } ;
JUSTIFY { DT_CENTER , DT_CENTER , DT_LEFT , DT_CENTER, DT_CENTER } ;
COLUMNS { "CHARCODE" , "NUMCODE" , "NAME" , "NOMINAL", "VALUE" } ;
COLNAMES { "CHAR" , "NUM" , "NAME" , "NOM" , "VAL" } ;
FOOTERS { "Char;Code", "Num;Code", "Name" , "Nominal", "Value" } ;

BRUSH { 255, 255, 240 } ;
LOADFIELDS FIXED
:InsColumn( 1, oColsData( cAlias ):Get('OrdKeyNo') ) // колонку # добавили
:GetColumn( 1 ):nWidth := 30
:nCell := 2
:nFreeze := 1
:lLockFreeze := .T.
:nHeightFoot := :nHeightCell
:nHeightCell += 4
:nClrLine := RGB(180,180,180) // COLOR_GRID
// :SetColor( { 11 }, { { || RGB( 255, 255, 255 ) } } )
:SetColor( { 11 }, { { || RGB(0,0,0) } } )
:SetColor( { 2 }, { { || RGB(255,255,240) } } )
:SetColor( { 5 }, { { || RGB(0,0,0) } } )
:SetColor( { 6 }, { { |a,b,c| iif( c:nCell == b, -CLR_HRED , -RGB(128,225,225) ) } } )
:SetColor( { 12 }, { { |a,b,c| iif( c:nCell == b, -RGB(128,225,225), -RGB(128,225,225) ) } } )
:AdjColumns()
END TBROWSE

Тоже практически все готово для save\restore (кроме блоков кода цветов)
Цветом выделена строка (как пример), которая есть в ch файле, но нет в программе из флайма

Спасибо: 0 
ПрофильЦитата Ответить
постоянный участник




Пост N: 6620
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 22.04.20 22:14. Заголовок: Дали задачку, создат..


Дали задачку, создать таблицу и экспортировать его в Эксель.
Вопрос возник, как делать ?
Писать в Dbf-файл, а потом показывать в бровсе или сразу делать через массив с помощью SetArrayTo().
Что будет быстрей по скорости для Экспорта ?
База небольшая, 2500-3000 записей, кол-во столбцов примерно 50 штук.

Спасибо: 0 
ПрофильЦитата Ответить
moderator


Пост N: 1541
Зарегистрирован: 20.02.11
ссылка на сообщение  Отправлено: 23.04.20 17:23. Заголовок: Andrey пишет: Что б..


Andrey пишет:

 цитата:
Что будет быстрей по скорости


Само собой чтение массива быстрее чем чтение файла dbf. Но это ничтожная разница по сравнению с самим экспортом.

Спасибо: 0 
ПрофильЦитата Ответить
постоянный участник




Пост N: 6621
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 23.04.20 19:01. Заголовок: Спасибо ! А какая ра..


Спасибо !
А какая разница будет по времени по экспорту из DBF и SetArrayTo() ?
Всё равно данные уже в бровсе.
Я думаю что в SetArrayTo() быстрей будет строится (так всегда делаю).
Но интересно знать бы насколько быстрей...

Спасибо: 0 
ПрофильЦитата Ответить
постоянный участник




Пост N: 6622
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 23.04.20 19:13. Заголовок: А как отсортировать ..


А как отсортировать SetArrayTo() по колонке дата только в обратном порядке ?
В обычном знаю:
 
// --------- функции сортировки колонок ---------
oBrw:nColOrder := oBrw:nColumn("FDATE")


Спасибо: 0 
ПрофильЦитата Ответить



Пост N: 3138
Зарегистрирован: 17.02.12
ссылка на сообщение  Отправлено: 23.04.20 21:22. Заголовок: Andrey Добавь или п..


Andrey
Добавь или поправь (Advanced\Tsb_array_2\demo.prg)
 
...
oBrw:lNoChangeOrd := .F.

END TBROWSE

Делай двойной click на заголовке колонки, сортировка будет тудой-сюдой

Спасибо: 0 
ПрофильЦитата Ответить
постоянный участник




Пост N: 6623
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 23.04.20 21:28. Заголовок: SergKis пишет: Дела..


SergKis пишет:

 цитата:
Делай двойной click на заголовке колонки, сортировка будет тудой-сюдой


Нельзя, нужно сразу юзеру таблицу предоставить отсортированной по дате в обратном порядке.
Спасибо !

Спасибо: 0 
ПрофильЦитата Ответить
постоянный участник




Пост N: 6624
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 23.04.20 22:50. Заголовок: А как в SetArrayTo()..


А как в SetArrayTo() удалять строки в таблице.
На отдельную кнопку повесил функцию удаления TsbDeleteMemo() , не работает.
      IF MG_YesNo( cMsg, , "Удаление записи" ) 
oStatBrw:DeleteRow( ) // Delete selected row
oStatBrw:Reset()
oStatBrw:SetOrder(3, , .T. ) // сортировка по столбцу
ItogoNN(oStatBrw) // GetColumn("NN")
oStatBrw:Refresh(.T.)
ENDIF

Если подключить следующий код:
 
// --------- блок удаления записи ---------
bDelete := { | nAt, oBrw | nAt:=nil, ItogoNN(oBrw) } // отрабатыват после DEL !!!
oBrw:SetDeleteMode( .T., .F., bDelete ) // так включаем клавишу DEL !!!

То удаление работает, но у меня отдельные проверки в TsbDeleteMemo(), при некоторых условиях удалять запись НЕЛЬЗЯ !
Как запретить удаление по клавише DEL и оставить отдельную кнопку удаления ?

Спасибо: 0 
ПрофильЦитата Ответить



Пост N: 3139
Зарегистрирован: 17.02.12
ссылка на сообщение  Отправлено: 23.04.20 23:01. Заголовок: Andrey пишет Как зап..


Andrey пишет
 цитата:
Как запретить удаление по клавише DEL и оставить отдельную кнопку удаления ?


Делай массив (строка) на несколько элементов больше (по потребности). К примеру 2 доп. элемента
1 .T.\.F. - можно ли удалять
2 RecNo() в таблице dbf из которой создавался массив (для внесения изменений из массива в dbf)
Тогда в массиве Head пишешь только нужные колонки без 2х последних
На кнопку и в bDelete пишешь ф-ю, которая контролирует можно ли удалять (предпоследний элемент строки\записи массива) и
далее удаляешь или нет

Спасибо: 0 
ПрофильЦитата Ответить
постоянный участник




Пост N: 6625
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 23.04.20 23:06. Заголовок: SergKis пишет: 2 Re..


SergKis пишет:

 цитата:
2 RecNo() в таблице dbf из которой создавался массив (для внесения изменений из массива в dbf)
Тогда в массиве Head пишешь только нужные колонки без 2х последних
На кнопку и в bDelete пишешь ф-ю, которая контролирует можно ли удалять (предпоследний элемент строки\записи массива) и
далее удаляешь или нет


Нет вообще DBF, чистый массив из мемо-поля.

Допустим написал отдельную функцию проверки - CheckDel(), возвращает T.\.F. - можно ли удалять
Как её использовать в коде ?
 
// --------- блок удаления записи ---------
bDelete := { | nAt, oBrw | nAt:=nil, ItogoNN(oBrw) } // отрабатыват после DEL !!!
oBrw:SetDeleteMode( .T., .F., bDelete ) // так включаем клавишу DEL !!!


Спасибо: 0 
ПрофильЦитата Ответить
Ответов - 86 , стр: 1 2 3 4 5 All [только новые]
Ответ:
1 2 3 4 5 6 7 8 9
большой шрифт малый шрифт надстрочный подстрочный заголовок большой заголовок видео с youtube.com картинка из интернета картинка с компьютера ссылка файл с компьютера русская клавиатура транслитератор  цитата  кавычки моноширинный шрифт моноширинный шрифт горизонтальная линия отступ точка LI бегущая строка оффтопик свернутый текст

показывать это сообщение только модераторам
не делать ссылки активными
Имя, пароль:      зарегистрироваться    
Тему читают:
- участник сейчас на форуме
- участник вне форума
Все даты в формате GMT  3 час. Хитов сегодня: 336
Права: смайлы да, картинки да, шрифты да, голосования нет
аватары да, автозамена ссылок вкл, премодерация откл, правка нет