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


Пост 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 
ПрофильЦитата Ответить
Ответов - 279 , стр: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 All [только новые]


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




Пост N: 5964
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 15.07.18 15:28. Заголовок: Всем привет ! Обнару..


Всем привет !
Обнаружил в методе ExcelOle() баг. Удаляет часть данных из Второй колонке в конце таблицы.
Версия МиниГуи последняя. Пробовал в нескольких задачах.
Вот так это выглядит, 0-к съедает в последней ячейке 2-ой колонки:


Если стоит 001, то удаляет два нолика.
Как бы исправить это ?
В Tsb4xlsOle.prg экспорт отрабатывает на отлично.

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




Пост N: 5965
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 16.07.18 16:14. Заголовок: Ещё обнаружил в мето..


Ещё обнаружил в методе ExcelOle() баг.
Если буквы при экспорте в эксель больше Z, т.е. колонок больше 26 - то ломается экспорт.
Попробую сделать свою функцию для названия колонок и заменить везде CHR(64 +....

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



Пост N: 1936
Зарегистрирован: 17.02.12
ссылка на сообщение  Отправлено: 16.07.18 16:46. Заголовок: Andrey пишет Попробу..


Andrey пишет
 цитата:
Попробую сделать свою функцию для названия колонок и заменить везде CHR(64 +....


Паша тебе дал хорошие функции, зачем велосипед гонять
 
Function ExcelAdr(nRow, nCol)
Return if(nCol>26,Chr(Int((nCol-1)/26)+64),'')+Chr((nCol-1)%26+65) + LTrim(Str(Int(nRow)))

и до кучи еще одну функцию (для адреса диапазона ячеек):

Function ExcelAdr2(nRow1, nCol1, nRow2, nCol2)
Return ExcelAdr(nRow1, nCol1) + ':' + ExcelAdr(nRow2, nCol2)

Под них скорее надо method ExcelOle заточить, вместо
 
aCol := { 26, 52, 78, 104, 130, 156 }, ;
aLet := { "", "A", "B", "C", "D", "E" }, ;
...
cLet := aLet[ AScan( aCol, {|e| Len( If( aColSel != Nil, aColSel, ::aColumns ) ) <= e } ) ]

If ! Empty( cLet )
nCol := AScan( aLet, cLet ) - 1
cLet += Chr( 64 + Len( If( aColSel != Nil, aColSel, ::aColumns ) ) - aCol[ Max( 1, nCol ) ] )
Else
cLet := Chr( 64 + Len( If( aColSel != Nil, aColSel, ::aColumns ) ) )
EndIf
...


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




Пост N: 5966
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 16.07.18 16:59. Заголовок: SergKis пишет: Паша..


SergKis пишет:

 цитата:
Паша тебе дал хорошие функции, зачем велосипед гонять



Да забыл про них. А где давал уже и не помню !

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




Пост N: 6872
Зарегистрирован: 17.05.05
ссылка на сообщение  Отправлено: 16.07.18 17:20. Заголовок: Andrey пишет: А гд..


Andrey пишет:

 цитата:
А где давал уже и не помню


тут )) http://clipper.borda.ru/?1-1-0-00000531-000-0-0-1531592334

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




Пост N: 5967
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 17.07.18 13:45. Заголовок: Григорий, я исправил..


Григорий, я исправил h_tbrowse.prg
У меня заработал экспорт с большим количеством колонок.
Исправленный h_tbrowse.prg - оправил к тебе на почту.

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




Пост N: 1328
Зарегистрирован: 11.02.10
ссылка на сообщение  Отправлено: 17.07.18 14:53. Заголовок: Andrey пишет: зараб..


Andrey пишет:

 цитата:
заработал экспорт с большим количеством колонок


Проверил на базе с 28 полями - экспорт работает нормально.
Благодарю за помощь

Andrey пишет:

 цитата:
Исправленный h_tbrowse.prg


Обрати внимание, что у тебя старая версия этого файла

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




Пост N: 5968
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 17.07.18 17:44. Заголовок: gfilatov2002 пишет: ..


gfilatov2002 пишет:

 цитата:
Обрати внимание, что у тебя старая версия этого файла


Да, я брал из предыдущей версии.
Буду ждать новую версию МиниГуи.

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




Пост N: 6019
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 31.08.18 14:30. Заголовок: SergKis пишет: И ещ..


SergKis пишет:
И еще, если добавить в TsColumn
DATA bDecode // Charset decode or other
DATA bEncode // Charset encode or other

Не совсем понятно зачем это нужно.
Можно пояснить ?

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



Пост N: 1985
Зарегистрирован: 17.02.12
ссылка на сообщение  Отправлено: 31.08.18 15:30. Заголовок: Andrey пишет Можно п..


Andrey пишет
 цитата:
Можно пояснить ?


см. http://clipper.borda.ru/?1-1-0-00000532-000-80-0-1535705309 пост 1960 и далее
Можно применить для др. действий, к примеру своя шифровка\расшифровка символьных полей

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



Пост N: 1986
Зарегистрирован: 17.02.12
ссылка на сообщение  Отправлено: 31.08.18 15:32. Заголовок: PS Обрати внимание н..


PS
Обрати внимание на пример поста 1962

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



Пост N: 1987
Зарегистрирован: 17.02.12
ссылка на сообщение  Отправлено: 31.08.18 15:46. Заголовок: PS Описание примера ..


PS
Описание примера - пост 1940, тема та же

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




Пост N: 6020
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 31.08.18 23:56. Заголовок: SergKis пишет: Можн..


SergKis пишет:
Можно применить для др. действий, к примеру своя шифровка\расшифровка символьных полей
Давно об этом мечтал. Пример будет на эту тему ?

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



Пост N: 1988
Зарегистрирован: 17.02.12
ссылка на сообщение  Отправлено: 01.09.18 01:03. Заголовок: Andrey пишет Пример..


Andrey пишет
 цитата:
Пример будет на эту тему ?


 
1.
:lEdit := .T.
:bData := FieldWBlock('NAME', select(cAlias))
:bDecode := {|cv| sx_Decrypt(cv, 'MyPassword') }
:bEncode := {|cv| sx_Encrypt(cv, 'MyPassword') }

2.
oKey := oKeyData()
oKey:Set(1, 'Name 1')
oKey:Set(2, 'Name 2')
oKey:Set(3, 'Name 3')
...
oKey:Set(9, 'Name 9')

:lEdit := .F.
:bData := FieldWBlock('NUMKEY', select(cAlias))
:bDecode := {|nk| oKey:Get(nk, '????????') }


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




Пост N: 6030
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 17.09.18 00:32. Заголовок: Всем привет ! Пытаюс..


Всем привет !
Пытаюсь понять метод oBrw:DeleteRow() для DBF.
Что-то не работает...
Модифицировал пример Tsb_linedrag для вставки/удаления записей.
Вставка работает, удаление нет. Что не так делаю ?

Проект вот - https://cloud.mail.ru/public/4kmS/Ad1Xf9Sy2

И ещё пара вопросов:
1) Не отрабатывает вставка вертикального скролинга - oBrw:ResetVScroll(). Почему ?
2) Как сделать заново полное считывание базы для этой программы ?
можно обойтись без удаления объекта, а просто заново считать базу в готовый объект ?

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



Пост N: 1999
Зарегистрирован: 17.02.12
ссылка на сообщение  Отправлено: 17.09.18 08:26. Заголовок: Andrey пишет Пытаюсь..


Andrey пишет
 цитата:
Пытаюсь понять метод oBrw:DeleteRow() для DBF


Для этого определись с режимом работы SET DELETED ON\OFF
Если OFF, то записи удаленные так же на экране, только помечаются deleted, :DeleteRow() тогда делает recall для удаленной, для разделения при показе вкл. цвета для удаленных.
Если ON и без индекса, то сам управляй переменной :nLen, т.е. уст. блок :bLogicLen для "правильного" счета записей в просмотре.
Если с индексом, то делай его FOR ! deleted() - тогда тсб кое что сделает сама, это кое что иногда нужно менять.
В этом примере для исчезновения строк при удалении сделать
 
GO TOP
INDEX ON RecNo() TAG ID FOR ! Deleted()
GO TOP

DEFINE WINDOW Form_0 ;
...
STATIC FUNCTION RecnoInsert(oBrw)
...
// IF INDEXORD() == 0
oBrw:GoToRec( nRecno )
// ENDIF
// oBrw:Refresh( .T. ) // перечитать записи таблицы
? "Insert=", nRecno
ENDIF

oBrw:SetFocus()
...
STATIC FUNCTION RecnoDelete(oBrw)
LOCAL nRow := oBrw:nRowPos
...
lDelete := oBrw:DeleteRow()
? "Delete=",nRecno, lDelete
If nRow == oBrw:nRowCount()
oBrw:PostMsg( WM_KEYDOWN, VK_END, 0 )
EndIf

oBrw:SetFocus()
...


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



Пост N: 2000
Зарегистрирован: 17.02.12
ссылка на сообщение  Отправлено: 17.09.18 08:27. Заголовок: PS и SET DELETED ON..


PS
и
SET DELETED ON
поставить конечно

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



Пост N: 2001
Зарегистрирован: 17.02.12
ссылка на сообщение  Отправлено: 17.09.18 08:31. Заголовок: PPS оговорюсь сразу,..


PPS
оговорюсь сразу, что
 
If nRow == oBrw:nRowCount()
oBrw:PostMsg( WM_KEYDOWN, VK_END, 0 )
EndIf

не решает всех проблем, это только пример варианта, т.к. есть еще значение :nLen его тоже учитывать надо.

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




Пост N: 6031
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 17.09.18 08:39. Заголовок: SergKis пишет: Для ..


SergKis пишет:

 цитата:
Для этого определись с режимом работы SET DELETED ON\OFF


Спасибо большое за разъяснения !

А как быть с :
2) Как сделать заново полное считывание базы для этой программы ?
можно обойтись без удаления объекта, а просто заново считать базу в готовый объект ?

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



Пост N: 2002
Зарегистрирован: 17.02.12
ссылка на сообщение  Отправлено: 17.09.18 08:49. Заголовок: Andrey пишет Не отра..


Andrey пишет
 цитата:
Не отрабатывает вставка вертикального скролинга - oBrw:ResetVScroll()


 
FUNCTION CreateBrowse()
...
// oBrw:ResetVScroll() // показ вертикального скролинга можно не ставить
если ставить, то лучше парой строк
// oBrw:ResetVScroll() // показ вертикального скролинга
// oBrw:oHScroll:SetRange( 0, 0 )
VScroll появляется при :nLen > :nRowCount() и потом остается. При задании ширины тсб это надо учитывать.
Если VScroll не нужен в твоем примере, то делаем
oBrw:lNoVScroll := .T. // у тебя он уже так стоит
и
STATIC FUNCTION RecnoInsert(oBrw)
...
If oBrw:lNoVScroll
oBrw:oVScroll := Nil
EndIf
oBrw:GoToRec( nRecno )
...
STATIC FUNCTION RecnoDelete(oBrw)
...
lDelete := oBrw:DeleteRow()
? "Delete=",nRecno, lDelete
If oBrw:lNoVScroll
oBrw:oVScroll := Nil
EndIf
If nRow == oBrw:nRowCount()
...


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

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