On-line: AndreyZh, гостей 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 
ПрофильЦитата Ответить
Ответов - 22 , стр: 1 2 All [только новые]





Пост N: 2478
Зарегистрирован: 17.02.12
ссылка на сообщение  Отправлено: 28.04.19 13:24. Заголовок: Haz пишет Может обра..


Haz пишет
 цитата:
Может обработку bEditLog поднять перед этой подготовкой?


По мне, не стоит. Это в If ... else ... min 2 раза вставлять.
Не пробовал, но если :nEditMove := 0, то :nCell и nCol должны быть равными.
Достаточно, по мне, сохранить, установить и восстановить :nCell, как показал выше

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



Пост N: 2479
Зарегистрирован: 17.02.12
ссылка на сообщение  Отправлено: 28.04.19 13:36. Заголовок: PS Но если :nEditMod..


PS
Но если :nEditMode будет с перескоком на другую строку тсб, то RecNo(), (:cAlias)->ID, ... будут неверными.
И поэтому, Игорь, твое предложение будет, наверно, правильнее.

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



Пост N: 2480
Зарегистрирован: 17.02.12
ссылка на сообщение  Отправлено: 28.04.19 13:56. Заголовок: Haz пишет Может обра..


Haz пишет
 цитата:
Может обработку bEditLog поднять перед этой подготовкой?


Поднял
 
METHOD PostEdit( uTemp, nCol, bValid ) CLASS TSBrowse
...
( cAlias )->( DbSkip( 0 ) ) // refresh relations just in case that a relation field changes

xNewEditValue := ::bDataEval( ::aColumns[ nCol ], , nCol ) //Igor Nazarov

If hb_isBlock( ::bEditLog ) .and. ::aColumns[ nCol ]:xOldEditValue != xNewEditValue
Eval( ::bEditLog, ::aColumns[ nCol ]:xOldEditValue, xNewEditValue, Self )
EndIf

::SetFocus()

If nLastKey == VK_UP .and. ::lPostEditGo
...
If lAppend .and. ::bChange != Nil
Eval( ::bChange, Self, ::oWnd:nLastKey )
EndIf

xNewEditValue := ::bDataEval( ::aColumns[ nCol ], , nCol ) //Igor Nazarov

If hb_isBlock( ::bEditLog ) .and. ::aColumns[ nCol ]:xOldEditValue != xNewEditValue
Eval( ::bEditLog, ::aColumns[ nCol ]:xOldEditValue, xNewEditValue, Self )
EndIf

::SetFocus()

If nLastKey == VK_UP .and. ::lPostEditGo
...
// xNewEditValue := ::bDataEval( ::aColumns[ nCol ], , nCol ) //Igor Nazarov

// If hb_isBlock( ::bEditLog ) .and. ::aColumns[ nCol ]:xOldEditValue != xNewEditValue
// Eval( ::bEditLog, ::aColumns[ nCol ]:xOldEditValue, xNewEditValue, Self )
// EndIf

Return Nil
...

Пример отработал нормально

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


Пост N: 1498
Зарегистрирован: 20.02.11
ссылка на сообщение  Отправлено: 28.04.19 14:09. Заголовок: SergKis пишет: Прим..


SergKis пишет:

 цитата:
Пример отработал нормально


Сергей, спасибо за помощь.

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




Пост N: 6276
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 28.04.19 14:26. Заголовок: Наверное всё таки жу..


Наверное всё таки журнал правки лучше держать в виде базы ?
А то за несколько лет текстовый лог разрастётся непомерно и поиск в нем будет идти долго.

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


Пост N: 828
Зарегистрирован: 13.10.05
ссылка на сообщение  Отправлено: 28.04.19 15:50. Заголовок: А то за несколько ле..



 цитата:
А то за несколько лет текстовый лог разрастётся


Веди в разрезе года. Новый год, новый файл

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




Пост N: 6325
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 05.07.19 18:22. Заголовок: Искал, искал и не на..


Искал, искал и не нашёл.
Как убрать в таблице в колонках дата пустые даты - ". ." ?

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



Пост N: 2623
Зарегистрирован: 17.02.12
ссылка на сообщение  Отправлено: 05.07.19 20:05. Заголовок: Andrey пишет Как убр..


Andrey пишет
 цитата:
Как убрать в таблице в колонках дата пустые даты - ". ." ?


oCol:lEmptyValToChar := .T.
нули тоже убирает

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




Пост N: 6326
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 05.07.19 20:35. Заголовок: SergKis пишет: oCol..


SergKis пишет:

 цитата:
oCol:lEmptyValToChar := .T.
нули тоже убирает


Не совсем понял... Это по колонкам нужно пробежаться ?
А сразу на всю таблицу нет команды ?

Как например oBrw:lPickerMode := .F.

P.S. Да проверил, нужно самому пробежаться по колонкам.
      For nI := 1 To :nColCount() 
oCol := :aColumns[ nI ]
// центровка подвала таблицы
oCol:nFAlign := DT_CENTER
If oCol:cName == 'Name_1'
oCol:nAlign := DT_CENTER // центровка колонки 'Name_1'
EndIf
// фонты для строк таблицы
oCol:hFont := {|nr,nc,ob| TsbFont(nr, nc, ob)}
// убрать пустую дату и 0 в колонках
oCol:lEmptyValToChar := .T.

Next

СПАСИБО БОЛЬШОЕ !

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



Пост N: 2624
Зарегистрирован: 17.02.12
ссылка на сообщение  Отправлено: 05.07.19 20:44. Заголовок: Andrey пишет Это по ..


Andrey пишет
 цитата:
Это по колонкам нужно пробежаться ?


Да.

 цитата:
А сразу на всю таблицу нет команды ?


AEval(oBrw:aColumns, {|oc| oc:lEmptyValToChar := .T. })
У меня в tscolumns.prg стоит
DATA lEmptyValToChar AS LOGICAL INIT .T. // .F. True if show of empty string for empty values of D,N,T,L types

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




Пост N: 6340
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 17.07.19 10:06. Заголовок: Очередная непонятка ..


Очередная непонятка с SetArrayTo()
Создаю массив для него, создается 9 элементов.
Когда считываю его размер oBrw:nLen, пишет что 8.
Как такое может быть ? Что неправильно делаю ?

Вот код:
Скрытый текст


Вот лог-файл:
Скрытый текст


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



Пост N: 2651
Зарегистрирован: 17.02.12
ссылка на сообщение  Отправлено: 17.07.19 16:07. Заголовок: Andrey пишет Очередн..


Andrey пишет
 цитата:
Очередная непонятка с SetArrayTo()


Что то ты мутишь с массивами.
Вот пример https://TransFiles.ru/bq2op
Работает

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




Пост N: 6341
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 17.07.19 19:45. Заголовок: SergKis пишет: Что ..


SergKis пишет:

 цитата:
Что то ты мутишь с массивами.
Вот пример
Работает



Что то в коде у тебя не наблюдаю:
  oBrw:DeleteRow( .T. )           // Delete All         

И нет конструкции создания массива...
У меня не пойдёт - oBrw:AddItem(aDim), нужно увеличить на 1 элемент массив.

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



Пост N: 2652
Зарегистрирован: 17.02.12
ссылка на сообщение  Отправлено: 17.07.19 20:13. Заголовок: Andrey пишет Что то ..


Andrey пишет
 цитата:
Что то в коде у тебя не наблюдаю:
oBrw:DeleteRow( .T. ) // Delete All


Как бы и не надо, заново массив создаем

 цитата:
У меня не пойдёт - oBrw:AddItem(aDim), нужно увеличить на 1 элемент массив.


1. Можно иметь больше колонок и не нужным сделать oCol:Visible := .F. или :nWidth := 1 или 2 пикселя
2. Можно попробовать использовать вместо :AddItem(...) метод:SetArray( aArray, lAutoCols, aHead, aSizes )

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



Пост N: 2653
Зарегистрирован: 17.02.12
ссылка на сообщение  Отправлено: 18.07.19 10:19. Заголовок: Andrey пишет У меня ..


Andrey пишет
 цитата:
У меня не пойдёт - oBrw:AddItem(aDim), нужно увеличить на 1 элемент массив


Немного модифицировал пример https://TransFiles.ru/5zbz9
На кнопке All на 1 колонку больше, чем на др. кнопках
Вместо :AddItem использовал :SetArray

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



Пост N: 2654
Зарегистрирован: 17.02.12
ссылка на сообщение  Отправлено: 18.07.19 13:01. Заголовок: Andrey Забыл про :H..


Andrey
Забыл про :HideColumns(...).
С ним еще проще и можно на несколько колонок распространить Скрытый текст


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




Пост N: 6344
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 20.07.19 19:36. Заголовок: SergKis пишет: 2. М..


SergKis пишет:

 цитата:
2. Можно попробовать использовать вместо :AddItem(...) метод:SetArray( aArray, lAutoCols, aHead, aSizes )


Дошли руки разбираться дальше.
Не понял как в моём случае это поможет.
Куда в мой код это вставить, что заменить и т.д.
Код примера Tsb_ReportAge.7z трудно читаемый для меня.
Пока у себя сделал просто (работает однако):
FOR nI := 1 TO LEN(aMassiv) + 1  
// нужно сделать массив на +1 больше
aRows := Array(1, 13)


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




Пост N: 6361
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 25.07.19 15:14. Заголовок: Всем привет ! Делаю ..


Всем привет !
Делаю новый пример на базе примера MiniGUI\SAMPLES\Advanced\Tsb_Basic\demo2.prg
Поймал вот такой косяк с таймером (2 окна одной и той же программы):


Т.е. таймер не пашет и Refresh по таймеру не происходит.
Перезапустил, пропало.
А частенько так таймер работает в МиниГуи ?

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



Пост N: 2687
Зарегистрирован: 17.02.12
ссылка на сообщение  Отправлено: 25.07.19 16:21. Заголовок: Andrey пишет Код при..


Andrey пишет
 цитата:
Код примера Tsb_ReportAge.7z трудно читаемый для меня.


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

 цитата:
Куда в мой код это вставить, что заменить и т.д.


Формируй тсб с max кол-вом колонок (чтобы не делать Insert\Add\Delete columns) и массивы в мах кол-ве колонок (нужны надписи Header, Footer для колонок) и лишние колонки делай :HideColumns(...) в примере см. AgeReport() ф-ю, там
 
...
:SetArray(aArray, .T.) // замена предыдущего массива в тсб массивом aArray
:Reset()
:GetColumn('AGE'):cFooting := hb_ntos(:nLen) // последнюю колонку убираем
:ResetVScroll( .T. )
:oHScroll:SetRange(0,0)
...


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



Пост N: 2688
Зарегистрирован: 17.02.12
ссылка на сообщение  Отправлено: 25.07.19 16:47. Заголовок: PS Извини с HidColum..


PS
Извини с HidColumns др. кусок кода
 
nCol := :nCell
AEval(:aColumns, {|oc,nc| oc:nWidth := aSize[ nc ] }) // восстанавливаем размеры колонок базовые
:HideColumns( 'STREET', ! 'All' $ cCapt ) // убираем колонку не нужную
// :cTextSupHdSet( 1, This.ToolBar_1.Caption + ' ' + cCapt )
:aSuperHead[1][3] := This.ToolBar_1.Caption + ' ' + cCapt // навание в superheader
:Display()
:AdjColumns() // растягиваем колонки до размеров тсб


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




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

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