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: 3140
Зарегистрирован: 17.02.12
ссылка на сообщение  Отправлено: 23.04.20 23:22. Заголовок: Andrey смотри METHO..


Andrey
смотри
METHOD DeleteRow( lAll ) CLASS TSBrowse
там для dbf, array удаление, как работает :bDelete

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


2е колонки я давал для примера, добавляй одну для .T.\.F. и читай ее в bDelete,
если .T., к примеру, удалять можно,
если .F., то нельзя. Т.е. возвращай это значение из блока bDelete

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




Пост N: 6626
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 24.04.20 00:11. Заголовок: SergKis пишет: если..


SergKis пишет:

 цитата:
если .F., то нельзя. Т.е. возвращай это значение из блока bDelete



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


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




Пост N: 6627
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 24.04.20 08:42. Заголовок: Всем доброго утра ! ..


Всем доброго утра !
Сделал рабочий код для SetArrayTo():
   oBrw:aColumns[2]:bPostEdit := {|xVal | xVal := oBrw:aArray[oBrw:nAt][oBrw:nCell] ,; 
xVal := CharRepl( "|\", xVal, " " ) ,;
oBrw:aArray[oBrw:nAt][oBrw:nCell] := xVal }

А по другому написать можно это действие ?
И как сделать такое же действие для Dbf

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



Пост N: 3141
Зарегистрирован: 17.02.12
ссылка на сообщение  Отправлено: 24.04.20 11:30. Заголовок: Andrey пишет А по др..


Andrey пишет
 цитата:
А по другому написать можно это действие ?


oBrw:aColumns[2]:bPostEdit := {|xv,ob,ncol| xv := CharRepl("|\", xv, " "), ob:SetValue(ncol,xv) }

 цитата:
И как сделать такое же действие для Dbf


Есть методы и ты их использовал в своих примерах, но подзабыл
xVal := oBrw:GetValue(nCol)
oBrw:SetValue(nCol, xVal)

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



Пост N: 3142
Зарегистрирован: 17.02.12
ссылка на сообщение  Отправлено: 24.04.20 12:55. Заголовок: PS В качестве nCol (..


PS
В качестве nCol (номера колонки) могут быть и имена колонок, т.е.
xVal := oBrw:GetValue("FDATE")
oBrw:SetValue("FDATE", xVal)

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




Пост N: 6628
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 25.04.20 07:18. Заголовок: Фонты не работаю в S..


Фонты не работаю в SetArrayTo()
Нашёл по хелпу типов таблицы: [ CELL | CELLED | GRID ] - а разница в чём между ними...

Как тогда для SetArrayTo() использовать фонты чтобы всегда работало ?
Фонты использую так:
 
cTbrName := "oBrwTxt"
DEFINE TBROWSE &cTbrName ;
AT nY, nX ;
WIDTH nW ;
HEIGHT nH ;
GRID ; // это oBrw:lCellBrw := TRUE
EDIT // все колонки с lEdit := .T.

END TBROWSE

// cell, head, foot
aFont := { GetFontHandle("Italic"), GetFontHandle("Bold"), GetFontHandle("Norm") }

// создаём таблицу из массива
oBrw := SetArrayTo( cTbrName, "test", aArray, aFont, aHead,;
aSize, aFoot, aPict, aAlign, aName )


Можно на лету изменять типы таблицы ?

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



Пост N: 3143
Зарегистрирован: 17.02.12
ссылка на сообщение  Отправлено: 25.04.20 08:32. Заголовок: Andrey Может повним..


Andrey
Может повнимательнее посмотришь на исп. SetArrayTo() с фонтами Tsb_array_2\demo.prg
 
// hFontHead := aFont[1] // normal Header
// hFontFoot := aFont[2] // bold Footer
// aFontHF := { hFontHead, hFontFoot }

// aFontHF := aFont[1] // normal Header, Footer
aFontHF := aFont[2] // bold Header, Footer

oBrw := SetArrayTo( "oBrw", "test", aArray, aFontHF, aHead, aSize, aFoot, aPict, aAlign, aName )

в aFontHF мах 2а элемента, если задан не массивом, то это один handle font для Header и Footer
1 handle font Header
2 habdle font Footer
Для строк в DEFINE TBROWSE ... есть FONT cFontName SIZE nFontSize
Если вместо имени хочешь исп. handle font, то это переносится после DEFINE TBROWSE ... в уст. свойства объекта
oBrw:hFont := GetFontHandle(cFontName)


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



Пост N: 3144
Зарегистрирован: 17.02.12
ссылка на сообщение  Отправлено: 25.04.20 09:03. Заголовок: PS Твой вариант долж..


PS
Твой вариант должен выглядеть, к примеру так
 
DEFINE FONT Italic FONTNAME "DejaVu Sans Mono" SIZE 11 BOLD ITALIC
DEFINE FONT Norm FONTNAME _HMG_DefaultFontName SIZE _HMG_DefaultFontSize
DEFINE FONT Bold FONTNAME _HMG_DefaultFontName SIZE _HMG_DefaultFontSize BOLD
...
aFont := { GetFontHandle("Bold"), GetFontHandle("Norm") }
...
cTbrName := "oBrwTxt"
DEFINE TBROWSE &cTbrName OBJ oBrw ;
AT nY, nX ;
WIDTH nW ;
HEIGHT nH ;
FONT "Italic" ;
CELL /*GRID*/ ; // это oBrw:lCellBrw := TRUE
EDIT // все колонки с lEdit := .T.

mySetTsb(oBrw)

:SetArrayTo( aArray, aFont, aHead, aSize, aFoot, aPict, aAlign, aName )

:AdjColumns()

END TBROWSE ON END {|obr| obr:SetNoHoles(), obr:SetFocus() }
...


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




Пост N: 6629
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 25.04.20 12:29. Заголовок: SergKis пишет: Твой..


SergKis пишет:

 цитата:
Твой вариант должен выглядеть, к примеру так



Спасибо ! Дошло наконец то до меня...
Может в примере demo3.prg показать под комментариями:
 
/* 1 вариант написания
aFont := { "Italic", "Bold", "Norm" } // cell, head, foot
DEFINE TBROWSE oBrw ;
AT nY, nX ALIAS aArray WIDTH nW HEIGHT nH CELL ;
FONT aFont ;
BRUSH { 255, 255, 240 } ;
HEADERS aHead ;
COLSIZES aSize ;
PICTURE aPict ;
JUSTIFY aAlign ;
COLNAMES aName ;
COLNUMBER { 1, 40 } ;
COLUMNS aField ;
FOOTERS aFoot ;
FIXED ADJUST COLEMPTY ;
ENUMERATOR ;
EDIT GOTFOCUSSELECT

mySetTsb( oBrw )
myColorTsb( oBrw )

END TBROWSE ON END {|ob| ob:SetNoHoles(), ob:SetFocus() } */

// 2 вариант написания
aFont := { GetFontHandle("Bold"), GetFontHandle("Norm") } // head, foot
cTbrName := "oBrwTxt"
DEFINE TBROWSE &cTbrName OBJ oBrw ;
AT nY, nX ;
WIDTH nW ;
HEIGHT nH ;
FONT "Italic" ; // cell
CELL /*GRID CELLED */ ;
EDIT // все колонки с lEdit := .T.

mySetTsb(oBrw)

:SetArrayTo( aArray, aFont, aHead, aSize, aFoot, aPict, aAlign, aName )

:AdjColumns()

END TBROWSE ON END {|obr| obr:SetNoHoles(), obr:SetFocus() }

Попробовал компилировать пример demo3.prg с
CELL /*GRID CELLED */ ;
Не увидел разницы. На внешний вид таблицы одинаковые.
Зачем такое разнообразие ?

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


Пост N: 1542
Зарегистрирован: 20.02.11
ссылка на сообщение  Отправлено: 25.04.20 22:23. Заголовок: Andrey пишет: А как..


Andrey пишет:

 цитата:
А какая разница будет по времени по экспорту из DBF и SetArrayTo() ?
Всё равно данные уже в бровсе.


Не хотел отвечать, но надо для всех.
Что значит данные в бровсе? Если это бровс по массиву, то да, массив передаётся в бровс. Если по базе, то рабочая область передаётся в бровс. Следует изучить наконеец исходники бровса, чтобы понять - бровс только рисует на экране окно данных и все. И сам бровс через свои методы может читать только текущую запись или строку массива, при этом выполняя очень много технических операций ( прорисовка, скрытые столбцы, блоки выборки данных и пр.) Если говорить о том., что данные получаем средствами бровса, то это значит что тратиться время на все эти операции и это в разы дольше прямой выборки из источника. Всё примеры типа tsb_export показавают только возможность работы с источником данных методами бровса, но ценой производительности. Разница в скорости между массивом и дбф в разнице доступа к элементу массива и полю базы, дальше математика, сколько запросов во столько раз умножение. И на закуску, SetArrayTo это всего лишь метод, позволяющий удобно инициализировать бровс по МАССИВУ. Это как что быстрее работает с дбф МиниГуи или харбур? Андрей, Вами проделана огромная работа по подготовке примеров новичкам, но такие речевые обороты сносят мозг тем же новичкам напрочь. Будьте внимательнее, хотя-бы на правах ветерана этого форума

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




Пост N: 6630
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 25.04.20 22:31. Заголовок: Спасибо за пояснения..


Спасибо за пояснения. Я это и хотел услышать и для других тоже !

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




Пост N: 6650
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 05.05.20 16:18. Заголовок: видишь суслика нет и..


видишь суслика нет и я не вижу а он есть

Использую последнюю версию МиниГуи 20.04
Сделал отдельный модуль .prg - работает отлично.
Таблица просто загляденье, столбики цветом подсвечены, шапка и подвал есть.
Добавляю его к себе в большой проект, просто его копирую в папку проекта и добавляю его в МуПроект.hbp
После сборки тестирую эту менюшку.
Таблица есть, шапка есть, а подвала НЕТ !!!
Вместо него дырка и всё...
Кто шаманский бубен продаст ?

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




Пост N: 6660
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 11.05.20 15:14. Заголовок: Andrey пишет: Табли..


Andrey пишет:

 цитата:
Таблица есть, шапка есть, а подвала НЕТ !!!


Разобрался я с этой загадкой. Как сделать это научился, а как исправить нет !
По коду это происходит так:
   .... 
aRet := myMenu(...) // отдельный prg, в нём 2 тсб, где указываю :nHeightFoot := 0 // высота подвала таблицы
....
// работа с базой
....
myTsb(...) // отдельный prg, в нём тсб, где указываю :nHeightFoot := 30
...

Вот так подвал в myTsb(...) не показывается.
Если в myMenu(...) поставить :nHeightFoot := 10, то и в myTsb(...) будет 10 и больше не делается.
Почему ?

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




Пост N: 7191
Зарегистрирован: 17.05.05
ссылка на сообщение  Отправлено: 11.05.20 15:56. Заголовок: Andrey пишет: Почем..


Andrey пишет:

 цитата:
Почему ?


Объект тсб по разному хоть называется ?

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



Пост N: 3184
Зарегистрирован: 17.02.12
ссылка на сообщение  Отправлено: 11.05.20 16:31. Заголовок: Andrey пишет:Почему ..


Andrey пишет:
 цитата:
Почему ?


Видимость переменной тсб Public ?

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




Пост N: 6661
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 11.05.20 17:52. Заголовок: Dima пишет: Объект ..


Dima пишет:

 цитата:
Объект тсб по разному хоть называется ?


SergKis пишет:

 цитата:
Видимость переменной тсб Public ?


 
Для myMenu(...)
LOCAL oBrw1, oBrw2, cTbrName1, cTbrName2
...
///////////////////// первая таблица ////////////////////////////////
aDatos := CreateDatosAdres()
aArray := aDatos[ 1 ]
.....
cTbrName1 := "oBrwTxt1"
DEFINE TBROWSE &cTbrName1 OBJ oBrw1 ;
...
:SetArrayTo( aArray, aFontHF, aHead, aSize, aFoot, aPict, aAlign, aName )
:AddSuperHead(1, 2, "Выбор адреса" ) // суперхидер
:aColumns[2]:lEdit := .F. // НЕ редактировать

mySetTsb( oBrw1 )
TsbColor( oBrw1, , , , , )
...
///////////////////// вторая таблица ////////////////////////////////
aDatos := CreateMonthYears()
aArray := aDatos[ 1 ]
.....
cTbrName2 := "oBrwTxt2"
DEFINE TBROWSE &cTbrName2 OBJ oBrw2 ;
....
:SetArrayTo( aArray, aFontHF, aHead, aSize, aFoot, aPict, aAlign, aName )
:AddSuperHead(1, 3, "Выбор месяца/года" ) // суперхидер
mySetTsb( oBrw2 )
TsbColor( oBrw2, , , , , )
....
Для myTsb(...)
LOCAL oBrw,
....
DEFINE TBROWSE oBrw ;
...
mySetTsb( oBrw ) // настройки таблицы
myColorTsb( oBrw ) // цвета на таблицу
mySumTsb( oBrw ) // суммирование колонок таблицы
myColorTsbElect( oBrw ) // цвета избранные


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



Пост N: 3186
Зарегистрирован: 17.02.12
ссылка на сообщение  Отправлено: 11.05.20 18:10. Заголовок: Andrey Поставь знач..


Andrey
Поставь значения в myMenu()
oBrw1:lFooting := .F. и oBrw1:lDrawFooters := .F.
oBrw2:lFooting := .F. и oBrw2:lDrawFooters := .F.
в myTsb()
oBrw:lFooting := .T. и oBrw:lDrawFooters := .T.
oBrw:nHeightFoot := 30
Что получишь ?

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




Пост N: 6662
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 11.05.20 18:52. Заголовок: SergKis пишет: Что ..


SergKis пишет:

 цитата:
Что получишь ?


Нет подвала !
Наверное нужно отдельный пример делать...

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




Пост N: 6663
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 12.05.20 20:32. Заголовок: Разобрался я с этой ..


Разобрался я с этой загадкой !!!
Опять моя ошибка.
  aRet := myMenu(...) // отдельный prg, в нём 2 тсб, где указываю :nHeightFoot  := 0  // высота подвала таблицы   
myTsb(...) // отдельный prg, в нём тсб, где указываю :nHeightFoot := 30

В обоих отдельных prg есть одинаковая функция.
FUNCTION mySetTsb() 
.......

Забыл сделать в обоих случаях
STATIC FUNCTION mySetTsb()
А при сборке проекта линковщик-зараза, ошибку не выдавал !
Сейчас заработало !

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



Пост N: 3187
Зарегистрирован: 17.02.12
ссылка на сообщение  Отправлено: 12.05.20 20:43. Заголовок: Andrey пишет В обоих..


Andrey пишет
 цитата:
В обоих отдельных prg есть одинаковая функция.
FUNCTION mySetTsb()


Эта функция + myColorTsb() были специально оставлены FUNCTION, чтобы применять во всех тсб.
mySetTsb() - задание общих переменных для всех тсб
myColorTsb() - задание общих цветов тсб, что бы выглядели одинаково на всех окнах
Все частные установки для тсб конкретного окна, делаешь в STATIC FUNCTION своего prg файла
К примеру
mySet_Tsb() - задание значений переменных для конкретного тсб
myColor_Tsb() - задание значений цветов для конкретного тсб

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

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