On-line: tnsr2, гостей 0. Всего: 1 [подробнее..]
АвторСообщение
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:....



Спасибо: 0 
Профиль
Ответов - 300 , стр: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 All [только новые]


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




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


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


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

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




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


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

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




Пост 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 
Профиль
Haz
администратор




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


SergKis пишет:

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


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

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




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


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

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


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



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


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

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




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


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

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




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


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


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

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




Пост 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 
Профиль
SergKis
постоянный участник




Пост 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 
Профиль
Andrey
постоянный участник




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


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

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


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


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




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


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


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

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




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


SergKis пишет:

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



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

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

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




Пост 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 
Профиль
SergKis
постоянный участник




Пост 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 
Профиль
SergKis
постоянный участник




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


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


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




Пост 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 
Профиль
Andrey
постоянный участник




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


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


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

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




Пост 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 
Профиль
SergKis
постоянный участник




Пост 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 
Профиль
Ответов - 300 , стр: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 All [только новые]
Тему читают:
- участник сейчас на форуме
- участник вне форума
Все даты в формате GMT  3 час. Хитов сегодня: 33
Права: смайлы да, картинки да, шрифты да, голосования нет
аватары да, автозамена ссылок вкл, премодерация откл, правка нет