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




Пост N: 5971
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 19.07.18 12:15. Заголовок: Пример экспорта Tsbrowse в разные форматы (Tsb_Export)...


Всем привет.

Что то у меня цвета с таблицы Tsbrowse не такими экспортируются в XML.
Т.е. что-то в библиотеке hbxlsxml цвета по другому получаются...

В Tsb2xml.prg цвет задаю так:
 
nColor := oBrw:aColumns[nCol]:nClrBack
If hb_isBlock( nColor )
nColor := Eval(nColor, oBrw:nAt, nCol, oBrw )
end
// в aColors храним массивы ( строка, столбец. стиль )
Aadd( aColors, {nLine, nCol, "S" + hb_ntoc(nColor, 16)} )

Может неправильно делаю ?


Спасибо: 0 
ПрофильЦитата Ответить
Ответов - 71 , стр: 1 2 3 4 All [только новые]


moderator


Пост N: 1280
Зарегистрирован: 20.02.11
ссылка на сообщение  Отправлено: 19.07.18 12:33. Заголовок: Andrey пишет: hb_nt..


Andrey пишет:

 цитата:
hb_ntoc(nColor, 16)


Возможно такое преобразование не корректно.
Надо на конкретном цвете проверить

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




Пост N: 5975
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 19.07.18 18:28. Заголовок: Haz пишет: Возможно..


Haz пишет:

 цитата:
Возможно такое преобразование не корректно.



Вот как выглядит это на экране:


Пример сегодня на почту отправлю к тебе.

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



Пост N: 1945
Зарегистрирован: 17.02.12
ссылка на сообщение  Отправлено: 19.07.18 18:59. Заголовок: Andrey пишет: hb_nto..


Andrey пишет:
 цитата:
hb_ntoc(nColor, 16)


Что делает эта функция ?
Есть hb_NToColor( n )


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




Пост N: 3779
Зарегистрирован: 23.05.05
ссылка на сообщение  Отправлено: 19.07.18 19:10. Заголовок: Андрей, я время от в..


Андрей, я время от времени запускаю этот пример на win10 с тем самым бешеным экселем 2016, который вываливается когда хочет:

Date: 14.07.2018 Time: 13:23:03
Error WINOLE/1006 Argument error: _SIZE (DOS Error -2146777998)
Called from WIN_OLEAUTO:_SIZE(0)

Date: 14.07.2018 Time: 13:24:32
Error WINOLE/1006 Argument error: _SIZE (DOS Error -2146777998)
Called from WIN_OLEAUTO:_SIZE(0)

Date: 14.07.2018 Time: 15:46:15
Error WINOLE/1009 No exported method: FONT (DOS Error -2147418111)
Called from WIN_OLEAUTO:FONT(0)
..
Date: 14.07.2018 Time: 16:35:37
Error WINOLE/1008 No exported variable: BOLD (DOS Error -2147418111)
Called from WIN_OLEAUTO:_BOLD(0)

Date: 14.07.2018 Time: 20:32:45
Error WINOLE/1007 Argument error: FONT (DOS Error -2147418111)
Called from WIN_OLEAUTO:FONT(0)

Date: 15.07.2018 Time: 08:31:07
Error WINOLE/1006 Argument error: _NUMBERFORMAT (DOS Error -2147418111)
Called from WIN_OLEAUTO:_NUMBERFORMAT(0)

Date: 15.07.2018 Time: 08:31:21
Error WINOLE/1009 No exported method: CELLS (DOS Error -2147418111)
Called from WIN_OLEAUTO:CELLS(0)

Date: 16.07.2018 Time: 20:51:07
Time from start: 0 days 0 hours 0 mins 20 secs
Error WINOLE/1009 No exported method: FONT (DOS Error -2147418111)
Called from WIN_OLEAUTO:FONT(0)

и так далее

Вчера ночью win10 вдруг возбудился и захотел обновиться до версии 1803. Я не возражал.

Сейчас запускаю пример, и (о чудо !) бешеный эксель утихомирился и стал работать как надо.
Может дело не в экселе, а в чудо-операционке виндоуз ?


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




Пост N: 6879
Зарегистрирован: 17.05.05
ссылка на сообщение  Отправлено: 19.07.18 22:13. Заголовок: Pasha пишет: Может ..


Pasha пишет:

 цитата:
Может дело не в экселе, а в чудо-операционке виндоуз ?


Как говорил HAS , дело в правильном БИЛДЕ самого оффиса , не все они работают одинаково

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


Пост N: 1283
Зарегистрирован: 20.02.11
ссылка на сообщение  Отправлено: 20.07.18 11:33. Заголовок: Andrey пишет: Приме..


Andrey пишет:

 цитата:
Пример сегодня на почту отправлю к тебе.


не надо мне на почту
замени там где цвет преобразуется в hex строку вместо ntoc(n. 16 ) на n2hex(n, 16)

Func N2HEX(n, b) 
local c := ntoc(n, b)
return right(c,2) + substr( c, 3, 2 ) + Left(c,2)



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


Пост N: 1284
Зарегистрирован: 20.02.11
ссылка на сообщение  Отправлено: 20.07.18 11:43. Заголовок: SergKis пишет: hb_..


SergKis пишет:

 цитата:

hb_ntoc(nColor, 16)
Что делает эта функция ?
Есть hb_NToColor( n )



очепятка, не hb_ntoc(nColor, 16) , а просто ntoc( nColor, 16 ) . работает так же как hb_ntoHex( n )

к примеру цвет nColor := RGB(159,191,236)
ntoc( nColor, 16 ) выдаст "ECBF9F" как и hb_ntoHex (nColor ), но этому цвету соответствует "9FBFEC" - то есть крайние байты надо поменять. Мож еть что готовое , я не искал и сделал тупо через самописную N2HEX для этого случая


PS hb_NToColor( n ) у меня выдает непонятно что

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




Пост N: 5976
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 20.07.18 14:31. Заголовок: Pasha пишет: Может ..


Pasha пишет:

 цитата:
Может дело не в экселе, а в чудо-операционке виндоуз ?



Отличная новость. Будем знать теперь что влияет на программы.
Ниже версии 1803 - не использовать !

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




Пост N: 5977
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 20.07.18 14:47. Заголовок: Haz пишет: замени т..


Haz пишет:

 цитата:
замени там где цвет преобразуется в hex строку вместо ntoc(n. 16 ) на n2hex(n, 16)


Заменил. Цвета стали похожими. СПАСИБО !
Код был твой, я там мало что исправил...

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


Пост N: 1286
Зарегистрирован: 20.02.11
ссылка на сообщение  Отправлено: 20.07.18 15:38. Заголовок: Andrey пишет: Код б..


Andrey пишет:

 цитата:
Код был твой, я там мало что исправил...


мой код , я и исправил

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




Пост N: 3785
Зарегистрирован: 23.05.05
ссылка на сообщение  Отправлено: 20.07.18 16:34. Заголовок: Andrey пишет: Отлич..


Andrey пишет:

 цитата:
Отличная новость. Будем знать теперь что влияет на программы.
Ниже версии 1803 - не использовать !



Я бы не стал торопиться. И с 1709 экспорт в Excel временами работал, а потом вдруг начинал глючить. Подождем

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


Пост N: 331
Зарегистрирован: 29.05.10
ссылка на сообщение  Отправлено: 20.07.18 19:22. Заголовок: Dima пишет: Как гов..


Dima пишет:

 цитата:
Как говорил HAS , дело в правильном БИЛДЕ самого оффиса , не все они работают одинаково



Офисы разные , сборки офисов разные, инсталяции разные, системы разные , сборки систем разные, драйвера, машины и т.д.
Но дело в том , что не работает пример. Вот с ним и надо разбираться :))

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




Пост N: 3786
Зарегистрирован: 23.05.05
ссылка на сообщение  Отправлено: 20.07.18 20:14. Заголовок: ММК пишет: Но дело ..


ММК пишет:

 цитата:
Но дело в том , что не работает пример. Вот с ним и надо разбираться :))



Не работает не только этот пример, но и все средства взаимодействия с экселем в моих программах. То есть не работает механизм работы с экселем через ole.
Я как-то с таким уже сталкивался, наверное все-таки это было в начале 16-го. Тогда я ничего не понял. А вот теперь счастье такое привалило: этот механизм не работает у меня на домашнем компе.
Вернее, то работает, то не работает. Сейчас вот работает. Я по прежнему ничего не понимаю, но хоть наблюдаю за пациентом, меряю температуру, так сказать.

Кстати, есть подозрение, что это связано с активацией офиса. Она время от времени слетает, и.. По хорошему на взаимодействие через ole это не должно влиять, но кто знает, что там в кишках у них

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




Пост N: 5978
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 23.07.18 16:23. Заголовок: Всем привет ! Пример..


Всем привет !
Пример закончил, однако вылезла одна неприятность.
После экспорта (модуль Tsb4xlsOle.prg или метод ExcelOle), пытаюсь поставить внизу колонки формулу суммы колонки.
Для целых чисел сумма создаётся, для дробной суммы пишет 0.
Вот так это выглядит:


Хотя тип колонки перед экспортом в Экселе указываю что колонка числовая.
Что делать/добавить/исправить нужно ?

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


Пост N: 1287
Зарегистрирован: 20.02.11
ссылка на сообщение  Отправлено: 23.07.18 16:55. Заголовок: Andrey пишет: Хотя ..


Andrey пишет:

 цитата:
Хотя тип колонки перед экспортом в Экселе указываю что колонка числовая.


у тебя в Excel десятичный разделитель это точка ? что то мне подсказывает что должна быть запятая , а ты упорно кормишь excel точкой.
Excel давится и воспринимает это как строку и потом ты его просишь эти строки сложить математически


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




Пост N: 5979
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 23.07.18 17:14. Заголовок: Haz пишет: Excel да..


Haz пишет:

 цитата:
Excel давится и воспринимает это как строку


Понял. Спасибо !
Буду копать формат. Я у тебя нашёл - oBrw:aColumns[9]:XML_Format := "0.00_ ;[Red]\-0.00\ "

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


Пост N: 1288
Зарегистрирован: 20.02.11
ссылка на сообщение  Отправлено: 23.07.18 17:54. Заголовок: Andrey пишет: уду к..


Andrey пишет:

 цитата:
уду копать формат. Я у тебя нашёл - oBrw:aColumns[9]:XML_Format := "0.00_ ;[Red]\-0.00\ "


Не трать время
копай лучше ExcelOle , где примерно так uData := Str( uData )
в харбур в качестве разделителя точка и точка будет в полученной строке. Все твои примеры выгрузки через олю дробные числа пишут как строку


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




Пост N: 6886
Зарегистрирован: 17.05.05
ссылка на сообщение  Отправлено: 23.07.18 18:49. Заголовок: Haz пишет: у тебя ..


Haz пишет:

 цитата:

у тебя в Excel десятичный разделитель это точка


Мне думается по началу нужно считать системный разделитель , после проверить какой разделитель
использует Excel и уже его и тулить

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




Пост N: 5980
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 23.07.18 18:51. Заголовок: Да я уже оказывается..


Да я уже оказывается уже делал такое...
Блин, памяти нет вообще.
Вот делал в примере DBF_to_XLS_03.7z :
         nDecPole := FieldDec( FIELDNUM( cPole ) )  // для формата числа  
....
ELSEIF FIELDTYPE( cPole ) == "N"
IF nDecPole == 0 // значит целое число
oSheet:Cells( nLine, nI ):SET( 'NumberFormat', '## ### ###0' ) // числовая ячейка
ELSE
oSheet:Cells( nLine, nI ):SET( 'NumberFormat', '## ### ###0,00' ) // числовая ячейка
ENDIF
....

Пошёл исправлять.

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


Пост N: 1289
Зарегистрирован: 20.02.11
ссылка на сообщение  Отправлено: 23.07.18 19:58. Заголовок: Andrey пишет: Пошёл..


Andrey пишет:

 цитата:
Пошёл исправлять


Ты не понял о чем я и Дима.
Далеко не уходи в исправлениях т. к. формат ячейки тут не причём.

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

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