Автор | Сообщение |
Vlad04
|
| постоянный участник
|
Пост 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:....
|
|
|
Ответов - 300
, стр:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
All
[только новые]
|
|
Andrey
|
| постоянный участник
|
Пост N: 6362
Зарегистрирован: 12.09.06
|
|
Отправлено: 25.07.19 17:07. Заголовок: SergKis пишет: Что ..
SergKis пишет: цитата: | Что конкретно (какое место) трудно читается ? Хочется знать, что бы пояснить. |
| Не могу использовать его для своего случая. Свой код привел выше. Как его модифицировать ?
|
|
|
SergKis
|
| постоянный участник
|
Пост N: 2689
Зарегистрирован: 17.02.12
|
|
Отправлено: 25.07.19 17:38. Заголовок: Andrey пишет Не могу..
Andrey пишет цитата: | Не могу использовать его для своего случая |
| Ты даже не попробовал разобраться. Сделай 2а массива 1-ый используй при создании тсб 2-ой на замену (без изм. nWidth колонок), у меня он aArray в AgeReport
|
|
|
Andrey
|
| постоянный участник
|
Пост N: 6419
Зарегистрирован: 12.09.06
|
|
Отправлено: 05.09.19 23:23. Заголовок: Правлю свои таблицы...
Правлю свои таблицы. До этого сделал временно и оставил. Как сделать авторасширение всех столбцов таблицы чтобы справа фантомного столбца не было видно ? Что-то ранее видел, но не успел попробовать. Читал про oBrw:lAdjColumn := .T. и oBrw:AdjColumns() Не совсем понял как их применять ?
|
|
|
SergKis
|
| постоянный участник
|
Пост N: 2807
Зарегистрирован: 17.02.12
|
|
Отправлено: 05.09.19 23:40. Заголовок: Andrey С тек. верси..
Andrey С тек. версии hmg стало 2а алгоритма по растягиванию колонок - :AdjColumns() // если ширина всех колонок < ширины тсб, - :lAdjColumn := .F.\.T. // если есть горизонтальный скролинг колонок, при .T. предпоследняя колонка растягивается до конца ширины тсб, если последняя не вмещается
|
|
|
Andrey
|
| постоянный участник
|
Пост N: 6420
Зарегистрирован: 12.09.06
|
|
Отправлено: 05.09.19 23:55. Заголовок: Спасибо ! :sm36: :..
Спасибо ! :AdjColumns() - отработал очень хорошо. :lAdjColumn := .F.\.T. - никак не отработал, хотя версия 19.08 (Update 1)
|
|
|
Andrey
|
| постоянный участник
|
Пост 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 Куда копать ?
|
|
|
SergKis
|
| постоянный участник
|
Пост N: 3008
Зарегистрирован: 17.02.12
|
|
Отправлено: 17.01.20 19:30. Заголовок: Andrey пишет Error ..
Andrey пишет цитата: | Error BASE/1004 Message not found: NIL:GOTO |
| Ты потерял объект oBrw в переменной NIL:GOTO
|
|
|
Andrey
|
| постоянный участник
|
Пост N: 6577
Зарегистрирован: 12.09.06
|
|
Отправлено: 09.02.20 00:00. Заголовок: Всем привет ! А мож..
Всем привет ! А можно сделать выгрузку всего объекта бровса на диск в файл, а потом в другой программе просто загрузить этот файл ? Именно весь, с цветами, полями, значениями и т.д. Это нужно для небольших таблиц. Типа такого: TsbrowseSave( M->oBrw3, "fileBrw3.obrw" ) TsbrowseRestore( "fileBrw3.obrw", M->oBrw3 ) P.S. Можно и без цветов для начала.
|
|
|
SergKis
|
| постоянный участник
|
Пост N: 3033
Зарегистрирован: 17.02.12
|
|
Отправлено: 09.02.20 00:13. Заголовок: Andrey пишет Именно ..
Andrey пишет цитата: | Именно весь, с цветами, полями, значениями и т.д. |
| Поиграйся ф-ями объкта ( А.Кресин http://www.kresin.ru/hrbfaq_3.html#Doc3 ) Далее следует список функций для манипуляции классами и объектами: смотрим и пробуем + ф-ии сохранения\восстановления блоков кода (забыл названия в ночи, но тема была где то) или организовывать их строковое представление для сохранения\восстановления
|
|
|
Andrey
|
| постоянный участник
|
Пост N: 6578
Зарегистрирован: 12.09.06
|
|
Отправлено: 09.02.20 00:26. Заголовок: SergKis пишет: смот..
SergKis пишет: Я до сих пор так и не пользуюсь классами... Раньше считал что не особо нужно, потом уже мозги не те, не понимаю как ими пользоваться. Начинал с твоей помощью, так и забросил.
|
|
|
SergKis
|
| постоянный участник
|
Пост 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 файле, но нет в программе из флайма
|
|
|
|
Andrey
|
| постоянный участник
|
Пост N: 6620
Зарегистрирован: 12.09.06
|
|
Отправлено: 22.04.20 22:14. Заголовок: Дали задачку, создат..
Дали задачку, создать таблицу и экспортировать его в Эксель. Вопрос возник, как делать ? Писать в Dbf-файл, а потом показывать в бровсе или сразу делать через массив с помощью SetArrayTo(). Что будет быстрей по скорости для Экспорта ? База небольшая, 2500-3000 записей, кол-во столбцов примерно 50 штук.
|
|
|
Haz
|
| |
Пост N: 1541
Зарегистрирован: 20.02.11
|
|
Отправлено: 23.04.20 17:23. Заголовок: Andrey пишет: Что б..
Andrey пишет: цитата: | Что будет быстрей по скорости |
| Само собой чтение массива быстрее чем чтение файла dbf. Но это ничтожная разница по сравнению с самим экспортом.
|
|
|
Andrey
|
| постоянный участник
|
Пост N: 6621
Зарегистрирован: 12.09.06
|
|
Отправлено: 23.04.20 19:01. Заголовок: Спасибо ! А какая ра..
Спасибо ! А какая разница будет по времени по экспорту из DBF и SetArrayTo() ? Всё равно данные уже в бровсе. Я думаю что в SetArrayTo() быстрей будет строится (так всегда делаю). Но интересно знать бы насколько быстрей...
|
|
|
Andrey
|
| постоянный участник
|
Пост N: 6622
Зарегистрирован: 12.09.06
|
|
Отправлено: 23.04.20 19:13. Заголовок: А как отсортировать ..
А как отсортировать SetArrayTo() по колонке дата только в обратном порядке ? В обычном знаю: // --------- функции сортировки колонок --------- oBrw:nColOrder := oBrw:nColumn("FDATE")
|
|
|
SergKis
|
| постоянный участник
|
Пост N: 3138
Зарегистрирован: 17.02.12
|
|
Отправлено: 23.04.20 21:22. Заголовок: Andrey Добавь или п..
Andrey Добавь или поправь (Advanced\Tsb_array_2\demo.prg) ... oBrw:lNoChangeOrd := .F. END TBROWSE Делай двойной click на заголовке колонки, сортировка будет тудой-сюдой
|
|
|
Andrey
|
| постоянный участник
|
Пост N: 6623
Зарегистрирован: 12.09.06
|
|
Отправлено: 23.04.20 21:28. Заголовок: SergKis пишет: Дела..
SergKis пишет: цитата: | Делай двойной click на заголовке колонки, сортировка будет тудой-сюдой |
| Нельзя, нужно сразу юзеру таблицу предоставить отсортированной по дате в обратном порядке. Спасибо !
|
|
|
Andrey
|
| постоянный участник
|
Пост 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 и оставить отдельную кнопку удаления ?
|
|
|
SergKis
|
| постоянный участник
|
Пост N: 3139
Зарегистрирован: 17.02.12
|
|
Отправлено: 23.04.20 23:01. Заголовок: Andrey пишет Как зап..
Andrey пишет цитата: | Как запретить удаление по клавише DEL и оставить отдельную кнопку удаления ? |
| Делай массив (строка) на несколько элементов больше (по потребности). К примеру 2 доп. элемента 1 .T.\.F. - можно ли удалять 2 RecNo() в таблице dbf из которой создавался массив (для внесения изменений из массива в dbf) Тогда в массиве Head пишешь только нужные колонки без 2х последних На кнопку и в bDelete пишешь ф-ю, которая контролирует можно ли удалять (предпоследний элемент строки\записи массива) и далее удаляешь или нет
|
|
|
Andrey
|
| постоянный участник
|
Пост 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 !!!
|
|
|
Ответов - 300
, стр:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
All
[только новые]
|
|