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


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




Пост N: 5786
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 22.03.18 20:15. Заголовок: SergKis пишет: Убра..


SergKis пишет:

 цитата:
Убрал в самый низ


Поторопился я ... Как всегда.

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




Пост N: 5788
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 23.03.18 15:35. Заголовок: Сделал пример ! Tsb ..


Сделал пример !
Tsb кладу на уже готовую форму в другом модуле.
Всё показывает нормально, кроме вертикального скролинга. Должен быть, а не показывает при старте.
Если стрелками(мышкой) подёргать, то линия скролинга появляется... обгрызанная, без стрелки вверху и внизу.
Можно ли как то перерисовать весь вертикальный скролинг ?

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




Пост N: 5827
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 19.04.18 11:36. Заголовок: Новая версия МиниГуи..


Новая версия МиниГуи - 18.04
Метод oBrw:ExcelOle().
При экспорте в таблице столбец с номерами домов (примерно такой порядок: 1, 2, 5, 9/2 и т.д.) неправильно экспортирует.
Превращает этот столбец в 1,2,5, 09 февраля.
Григорий, я сделаю тестовый пример с этим и вышлю на почту.

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




Пост N: 5829
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 19.04.18 23:03. Заголовок: Как указать правильн..


Как указать правильно формат показа в Tsbrowse для текстового поля (значения "123300") по шаблону "@R 99:99:99" ?
Для числового поля показ идёт правильный, а как задать такой же шаблон для текстового поля ?

Если создаём aPict := { nil, nil, nil, nil, nil, "@R 99:99:99", nil }
и передаём в
oBrw:SetArrayTo(aArray, aFontHF, aHead, aSize, aFoot, aPict, aAlign, aName)

То показ 6 колонки будет так - "123300"

Если сделать
 
oBrw:SetArrayTo(aArray, aFontHF, aHead, aSize, aFoot, aPict, aAlign, aName)
oBrw:aColumns[6]:cPicture := '@R 99:99:99'

То показ в 6 колонке будет уже "12:33:00"

Опять глюк нашёл в Tsb ?


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



Пост N: 1806
Зарегистрирован: 17.02.12
ссылка на сообщение  Отправлено: 20.04.18 00:17. Заголовок: Andrey пишет Опять г..


Andrey пишет
 цитата:
Опять глюк нашёл в Tsb ?


Это от того, что игнорируешь исходники.
:SetArrayTo не обрабатывает сложные Picture, а делает расчет ширины колонок для размещения правильно данных header, строк, footer (что бы помещалось все в колонке при просмотре), превращая Picture в простой вид для строки к примеру
cPict := Replicate( "X", Len( ::aDefValue[ nI ] ) ).
Все что не устраивает, в полученном варианте, правишь сам после создания тсб.

К примеру, в массиве в колонке мах длина всех элементов 20 символов, но в процессе работы может быть 30 длина, тогда можешь регулировать колонкой задав ширину в пикселях или задав aPict[6] := repl('X', 30), ::aDefValue[ 6 ], будет от заданного aPict[6].



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




Пост N: 5833
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 21.04.18 20:07. Заголовок: Предложение по METHO..


Предложение по METHOD Excel2() - сделать как у METHOD ExcelOle() в самом конце метода:
   If lActivate 
ShellExecute( 0, "Open", If( lSave, cFile, cWork ),,, 3 )
EndIf

::Display()

If hProgress != Nil
SendMessage( hProgress, PBM_SETPOS, 0, 0 )
EndIf

Return Nil


В METHOD ExcelOle() предлагаю сделать в самом начале:
   Default lSave    := ! lActivate .and. ! Empty( cXlsFile ), ; 
cXlsFile := "", ;
hFntTitle := hFont

CursorWait()

// Check the file name for the number of points
If AtNum( ".", HB_FNameName( cFile ) ) > 0
cMsg := 'Calling from: ' + ProcName(0) + '(' + hb_ntos( ProcLine(0) )
cMsg += ') --> ' + ProcFile(0) + ';;'
cMsg += 'Output File Name - "' + HB_FNameName( cFile ) + '";'
cMsg += 'contains several signs dot !;'
cMsg += 'Excel can "truncate" the file name !;;'
cMsg := AtRepl( ";", cMsg, CRLF )
MsgStop( cMsg , "Error" )
Endif


If ::lSelector

Только это обязательно нужно сделать, я ОЧЕНЬ ДОЛГО не мог понять почему у меня режет имя файла,
а на некоторых компах нет ! Чтобы потом другим было легче это понять !!!

Если в имени файла использовать несколько точек, то САМ EXCEL "режет" имя файла.
Можно конечно сделать немного по другому: переименовать входящее имя файла, но тогда нужно будет потом закрывать
Ole-Эксель, и открывать его заново с переименованным файлом. Не очень красивое решение здесь для Экселя.
Этот вариант сделал для Экспорта Dbf-файла.


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


Пост N: 1228
Зарегистрирован: 20.02.11
ссылка на сообщение  Отправлено: 21.04.18 23:28. Заголовок: Andrey пишет: пред..


Andrey пишет:

 цитата:
предлагаю сделать


Поддержу Андрея.
По первому предложению лишним не будет. В принципе хорошийстиль за собой все проводить в исходное состояние.
По второму думаю все сложнее, проблема может быть не только в количестве точек. Как вариант - может сообщать о недопустимости такого имени файла, а со временем критерии могут быть расширены.



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



Пост N: 1807
Зарегистрирован: 17.02.12
ссылка на сообщение  Отправлено: 22.04.18 00:34. Заголовок: Andrey пишет If AtNu..


Andrey пишет
 цитата:
If AtNum( ".", HB_FNameName( cFile ) ) > 0 ...


Не уверен, скорее уверен, что этого в ExelOle делать не надо.
Как пишет Игорь варианты возможны разные, все не засунешь, да и процедура ExelOle вызывается где то, вот там как надо и лепим имя файла, если очень надо, то и excel можно запустить отдельно не в ExcelOle. Второе предложение это перегруз

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




Пост N: 5835
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 22.04.18 17:15. Заголовок: SergKis пишет: проц..


SergKis пишет:

 цитата:
процедура ExelOle вызывается где то, вот там как надо и лепим имя файла, если очень надо, то и excel можно запустить отдельно не в ExcelOle. Второе предложение это перегруз


Я проверял поведение Excel. Имя файла с несколькими точками - режется ТОЛЬКО при вызове через OLE !
Если делать вызов Excel по другому, то всё нормально. Меню экспорта 1 и 3 в программе работает нормально.

В конце метода ExcelOle() вызов экселя запускается НЕ ОТДЕЛЬНО !!!
   If ! Empty( cXlsFile ) .and. lSave 
oBook:SaveAs( cXlsFile, xlWorkbookNormal ) // вот здесь и режется...

If ! lActivate
CursorArrow()
oExcel:Quit()
::Reset()
Return Nil
EndIf
EndIf

CursorArrow()

If lActivate
oSheet:Range( "A1" ):Select()
oExcel:Visible := .T. // показ Экселя
EndIf

Из-за этого я и предлагаю для ЭТОГО варианта разместить предупреждения, чтобы потом кто-то не налетел на !
Я Григория замучил - что режется имя файла, месяца 2 не мог понять почему.
А решение оказывается совсем ПРОСТОЕ !


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


Пост N: 1404
Зарегистрирован: 27.01.07
ссылка на сообщение  Отправлено: 22.04.18 20:14. Заголовок: Андрей, нужно абстра..


Андрей, нужно абстрагироваться от конкретного случая. Все обработки вариантов нужно делать "до того, как". Методу нужно предоставить данные в том виде, в котором они будут на 100% обработаны предсказуемым образом без всяких MsgStop(...)

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




Пост N: 6817
Зарегистрирован: 17.05.05
ссылка на сообщение  Отправлено: 22.04.18 21:24. Заголовок: PSP +1..


PSP
+1

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


Пост N: 1229
Зарегистрирован: 20.02.11
ссылка на сообщение  Отправлено: 23.04.18 20:38. Заголовок: PSP пишет: Все обра..


PSP пишет:

 цитата:
Все обработки вариантов нужно делать "до того, как"


+500
Под конкретный случай, нужно конкретно и решать

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




Пост N: 5836
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 24.04.18 15:10. Заголовок: Andrey пишет: Новая..


Понял ваше мнение !

Andrey пишет:

 цитата:
Новая версия МиниГуи - 18.04
Метод oBrw:ExcelOle().
При экспорте в таблице столбец с номерами домов (примерно такой порядок: 1, 2, 5, 9/2 и т.д.) неправильно экспортирует.
Превращает этот столбец в 1,2,5, 09 февраля.



А как это исправить ?
В методе :Excel2(...) выгрузка идёт правильно.

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




Пост N: 5837
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 24.04.18 18:32. Заголовок: Пробовал задавать яв..


Пробовал задавать явно формат столбца, всё равно не помогает.
 
// только для 6 и 10 колонки
oBrw:aColumns[6]:cPicture := '@R 99:99:99' // без этого нет показа в колонке ":"
oBrw:aColumns[10]:cPicture := 'xxxxxxxxx'


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




Пост N: 6818
Зарегистрирован: 17.05.05
ссылка на сообщение  Отправлено: 24.04.18 18:44. Заголовок: Andrey глянь..


Andrey
глянь

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




Пост N: 5838
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 24.04.18 21:28. Заголовок: Спасибо Дима ! Не по..


Спасибо Дима !
Не получается...
добавить перед числом апостроф (‘). Например: ’11-53 или ‘1/47. Апостроф не отображается после нажатия клавиши ВВОД;
Поставил в колонке 10 апостроф (‘) - выгружате через Оле-Эксель так же ‘3/2 или ‘9/3
Конечно как самый примитив пойдёт, только юзера будут очень недовольны таким номером дома...
Можно сделать первым символом знак "_" или "~" ставить.
Но потом бы из документа этот знак желательно убрать...
Тогда нужно ставить обработку удаления, после вставки из буфера...

А лучше надо бы в конвертацию формата для текстового поля явно в исходниках указать, типа:
oSheet:Cells( nLine, nI ):SET( "NumberFormat", '@' ) // текстовая ячейка

Пытался разобраться сaм, ничего не понял...
Там идёт накопление в буфер, а потом идёт вставка из буфера.
Как до этого указать формат столбца не знаю.


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




Пост N: 5839
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 24.04.18 22:13. Заголовок: Ура ! Получилось... ..


Ура ! Получилось... Нужна правка в исходнике h_tbrowse.prg:
      For nCol := 1 To Len( ::aColumns ) 
If aColSel != Nil .and. AScan( aColSel, nCol ) == 0
Loop
EndIf

uData := Eval( ::aColumns[ nCol ]:bData )

If ValType( uData ) == "C"
oSheet:Cells( nLine, nCol ):SET( "NumberFormat", '@' ) // text cell
EndIf

If ValType( uData ) == "C" .and. At( CRLF, uData ) > 0
uData := StrTran( uData, CRLF, "&&" )

If AScan( aRepl, nCol ) == 0
AAdd( aRepl, nCol )
EndIf
EndIf

В METHOD ExcelOle() предлагаю сделать эту правку !


Pasha пишет:

 цитата:
Как вариант: перед заполнением таблицы по строкам можно установить NumberFormat для тех столбцов, для которых это надо, т.е:



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




Пост N: 6819
Зарегистрирован: 17.05.05
ссылка на сообщение  Отправлено: 25.04.18 08:39. Заголовок: Andrey пишет: SET( ..


Andrey пишет:

 цитата:
SET( "NumberFormat", '@' )


Может не сработать в ряде случаев когда много цифр в ячейке и Excel по своему покажет

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




Пост N: 5840
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 25.04.18 13:27. Заголовок: Dima пишет: Может н..


Dima пишет:

 цитата:
Может не сработать в ряде случаев когда много цифр в ячейке и Excel по своему покажет


В каких случаях ?
Я тестировал столбец из номеров домов - вида: 1,2,3/2, 4, 5/3, 6А, 112Б, 94 стр.3 и т.д.
ТОЛЬКО для текстового столбца делаю формат :SET( "NumberFormat", '@' ) // text cell
Остальные столбцы НЕ ТРОГАЮ.

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




Пост N: 6820
Зарегистрирован: 17.05.05
ссылка на сообщение  Отправлено: 25.04.18 13:43. Заголовок: Andrey пишет: В как..


Andrey пишет:

 цитата:
В каких случаях ?


Да был случай лет 5 назад , вываливал в Excel коды морозильных камер (штук 500 примерно)
В этих кодах были цифры , пробелы , точки и тире. Все коды разные. Из 500 штук , штуки
3 всегда показывало криво , и шаблон подобрать не удалось (руками тоже пробовали) .

PS
Это был файл формата CSV

Спасибо: 0 
ПрофильЦитата Ответить
Ответов - 277 , стр: 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 час. Хитов сегодня: 600
Права: смайлы да, картинки да, шрифты да, голосования нет
аватары да, автозамена ссылок вкл, премодерация откл, правка нет