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


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




Пост N: 5981
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 23.07.18 21:14. Заголовок: Haz пишет: копай лу..


Haz пишет:

 цитата:
копай лучше ExcelOle , где примерно так uData := Str( uData )


Да, я там уже исправил. Т.е. у себя в модуле. А исходник h_tbrowse.prg - не трогал.
Haz пишет:

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


Ну если не задавать формата, то получиться фигня:

, т.е. потом самому юзеру придётся формат ставить на колонку.
А если задать формат, то всё нормально получается, с разделителем на 2 знака.
Я понимаю что может быть другой разделитель, т.е. как в Экселе заданы установки.
И сумма колонки теперь считается !
Спасибо за подсказки !

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




Пост N: 6887
Зарегистрирован: 17.05.05
ссылка на сообщение  Отправлено: 23.07.18 21:26. Заголовок: Andrey пишет: Я пон..


Andrey пишет:

 цитата:
Я понимаю что может быть другой разделитель, т.е. как в Экселе заданы установки.


Ну так делай сразу правильно и не через

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




Пост N: 1290
Зарегистрирован: 20.02.11
ссылка на сообщение  Отправлено: 23.07.18 21:36. Заголовок: Andrey пишет: Ну ес..


Andrey пишет:

 цитата:
Ну если не задавать формата


Ты с темы не соскакивай вопрос был почему не считает, ответ - потому что строки суммировать эксель не умеет. И формат тут по любому не причём.
Как сделать красиво вопроса не было
Что касается формата, есть еще разделители групп разрядов и как любят все финансисты - отрицательные числа в скобках и без минуса. Так что и красота у каждого своя



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




Пост N: 6888
Зарегистрирован: 17.05.05
ссылка на сообщение  Отправлено: 23.07.18 21:44. Заголовок: Подсказка: ищи по ф..


Подсказка:
ищи по форуму GET_SDECIMAL Павел выкладывал а остальные 2 параметра сможешь считать из объекта Excel

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




Пост N: 5982
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 23.07.18 22:08. Заголовок: Спасибо ВАМ !!! :sm..


Спасибо ВАМ !!!

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




Пост N: 5986
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 31.07.18 17:31. Заголовок: Всём привет ! В ново..


Всём привет !
В новой версии МиниГуи 18.07 смотрите пример SAMPLES\Advanced\Tsb_Export
В примере:
1) Экспорт Tsbrowse в Word/Excel/OO Calc, форматы файлов: xls/xml/doc/dbf/csv
по дефолту - вывод только видимых колонок, но можно задать и свой вывод колонок.
2) Таблица может быть многостроковой (MULTILINE on) и экспорт на лист так же многостроковый.
3) Показ различных видов раскраски таблицы
4) Использование GRADIENTFILL для кнопок на форме
5) Можно загрузить/сохранить Tsbrowse из/в внешнего файла (TSB_NEW_FILE_EXTERN)
6) Величину строк в таблице и кол-во колонок можно задавать в CreateDatos()
7) Время экспорта в тот или иной формат можно посмотреть в _MsgLog.txt

Кто сможет сделать для этого примера ещё один экспорт в PDF ?
Т.е. нужно на основе Tsb4xlsOle.prg сделать экспорт в PDF.
Будет вообще отличный и законченный пример экспорта для МиниГуи.

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




Пост N: 5991
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 04.08.18 17:54. Заголовок: Всем привет. Кто зна..


Всем привет.
Кто знает, как картинку разместить на листе Экселя ?
Какие команды нужно использовать ?

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




Пост N: 6899
Зарегистрирован: 17.05.05
ссылка на сообщение  Отправлено: 04.08.18 17:59. Заголовок: oRange:=oSheet:Range..


oRange:=oSheet:Range(osheet:cells(2,1),osheet:cells(2,1))
oExcel:ActiveSheet:Shapes:AddPicture(GetTempFolder()+"\logo.png",.F., .T., oRange:Left, oRange:Top, 78,59)


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




Пост N: 5992
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 04.08.18 21:06. Заголовок: Спасибо Dima ! :sm3..


Спасибо Dima !

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




Пост N: 5999
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 10.08.18 00:45. Заголовок: Ну и засада - вывест..


Ну и засада - вывести картинку на лист Экселя.
Беру размеры картинки через hb_GetImageSize( cDiskFile ), получаю размеры в пикселах (128х128).
Вывожу на лист Экселя - картинка раза в 2 больше оригинала.
Беру картинку через буфер обмена и видна БОЛЬШАЯ разница при выводе картинки.

Покопал в инете, нашёл интересные данные:
Эта хрень, очевидно, меряется в микрософтах. 1000 микрософтов = 1 миллисофт, 1000 миллисофтов = 1 софт. Эталонный экземпляр 1 софта хранится в Парижской Палате Мер и Софтов. В пиксели переводится по формуле 4 пикселя = 3 микрософта.
Интересна историческая подоплека появления такой единицы. Когда выбирался размер пикселя, ответственный за это Уильям Ворота (Сиэтл, США), выбрал пиксель равным 1/1024 ширины своей задницы. Когда дело дошло до выбора единицы измерений для свойств .Top и .Left у формы в Экселе, Уильям вспомнил о той своей концепции, и принял за единицу 1/1024 ширины своего зада. Однако он забыл учесть, что ввиду большого коммерческого успеха предыдущих продуктов его фирмы задница Уильяма стала шире на 33.3%. Так получилась новая единица измерения - микрософт....
На счет выбора единици измерений, points это еще не конец спектакля - в том же Access разработчикам очень полюбились
твипы (Твип - это 1/1440 дюйма). Вообщем, больше единиц измерений, хороших и разных, даешь.....
наверное такой плакат висит в комнате у программистов майкрософта....
Придётся наверное писать свою функцию для Экселя,
стандартная функция Экселя - oExcel:ActiveWindow:PointsToScreenPixelsY(128) какую то фигню выдаёт...

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




Пост N: 6901
Зарегистрирован: 17.05.05
ссылка на сообщение  Отправлено: 10.08.18 09:05. Заголовок: Andrey Ты читал воо..


Andrey
Ты читал вообще какие параметры ?
https://msdn.microsoft.com/en-us/vba/excel-vba/articles/shapes-addpicture-method-excel

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




Пост N: 6000
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 10.08.18 11:46. Заголовок: Dima пишет: Ты чита..


Dima пишет:

 цитата:
Ты читал вообще какие параметры ?


Это не читал, читал на могучем:
https://msdn.microsoft.com/ru-ru/vba/excel-vba/articles/shapes-addpicture-method-excel
Не то, не срабатывает -1 !

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




Пост N: 6902
Зарегистрирован: 17.05.05
ссылка на сообщение  Отправлено: 10.08.18 12:01. Заголовок: Andrey Можно еще пр..


Andrey
Можно еще пробнуть
oExcel:ActiveSheet:Pictures:Insert

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




Пост N: 6001
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 10.08.18 13:04. Заголовок: Вот Александр сделал..


Вот Александр сделал для этого функции 2:
 
aXY := hb_GetImageSize( cDiskFile )
aImage := { cDiskFile, aXY[1], aXY[2] }

oRange:=oSheet:Range(osheet:cells(1,1),osheet:cells(1,1))
oExcel:ActiveSheet:Shapes:AddPicture(aImage[1],0, -1, oRange:Left, oRange:Top, ;
PixelToPointX(aImage[2]),PixelToPointY(aImage[3]))
.....

///////////////////////////////////////////////////////////////////////////////////////////
Function PixelToPointX(iPixels)
Local lngDPI, rPixelToPoint
lngDPI = GetDPIX()
rPixelToPoint = (iPixels / lngDPI) * 72
Return rPixelToPoint

///////////////////////////////////////////////////////////////////////////////////////////
Function PixelToPointY(iPixels)
Local lngDPI, rPixelToPoint
lngDPI = GetDPIY()
rPixelToPoint = (iPixels / lngDPI) * 72
Return rPixelToPoint

#pragma BEGINDUMP

#include <windows.h>

HB_FUNC( GETDPIX )
{
HDC hDC = GetDC( GetDesktopWindow() );
hb_retni( ( LONG ) GetDeviceCaps(hDC, LOGPIXELSX) );
return;
}
HB_FUNC( GETDPIY )
{
HDC hDC = GetDC( GetDesktopWindow() );
hb_retni( ( LONG ) GetDeviceCaps(hDC, LOGPIXELSY) );
return;
}

#pragma ENDDUMP


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



Пост N: 208
Зарегистрирован: 19.05.05
ссылка на сообщение  Отправлено: 10.08.18 14:44. Заголовок: Вот получил ошибку п..


Вот получил ошибку при попытке экспорта
Export to OLE-EXCEL 1 (XLS files)
Export to OLE-EXCEL 2 (XLS files)
в обеих случаях Excel нормально стартовал и выводил данные
Скрытый текст




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




Пост N: 1336
Зарегистрирован: 11.02.10
ссылка на сообщение  Отправлено: 10.08.18 15:55. Заголовок: nick_mi пишет: полу..


nick_mi пишет:

 цитата:
получил ошибку при попытке экспорта


Благодарю за ссобщение.
Поправил исходник библиотеки TsBrowse для следующей сборки

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




Пост N: 6002
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 12.08.18 15:11. Заголовок: nick_mi пишет: Вот ..


nick_mi пишет:

 цитата:
Вот получил ошибку при попытке экспорта


А другой экспорт "New: Export to Ole-Excel 1 (xls)" - работает ?

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



Пост N: 209
Зарегистрирован: 19.05.05
ссылка на сообщение  Отправлено: 13.08.18 15:39. Заголовок: Да! Все остальные ча..


Да! Все остальные части нормально отработали

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




Пост N: 6003
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 13.08.18 19:14. Заголовок: Всем привет ! А мож..


Всем привет !

А можно как то убрать белые края на иконках в Tsbrowse ?
Если картинка квадратная, то красиво получается, а если нет то вот так получается:


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




Пост N: 6018
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 29.08.18 17:40. Заголовок: Сделал добавление в ..


Сделал добавление в пример (версия 9.7 - отправлена Григорию).
Вывод картинки и подзаголовка для модулей Tsb4DocOle.prg и Tsb4xlsOle.prg


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

1) Модуль - h_tbrowse.prg в библиотеке MiniGUI\SOURCE\TsBrowse и Tsb2xlsOleExtern.prg
2) Модуль - Tsb2doc.prg
Экспорт через буфер обмена.
При маленьких таблицах работает отлично, на больших таблицах НЕЛЬЗЯ делать другую работу, пока таблица не создастся. Юзера вечно открывают другие документы и начинают copy/paste использовать.
В результате в таблице пишется фигня всякая.... И вообще, очень нестабилен это метод.

3) Модуль - Tsb4xlsOle.prg
Экспорт через создание таблицы через массив ! Самый быстрый метод ! Большое спасибо за него, Pasha !
Таблица пишется блоками и их количество можно менять:
#define LINE_WRITE       100   // Количество строк для записи блоками 

4) Модуль - Tsb4DocOle.prg
Экспорт через метод Word'a создание таблицы.
oPar:Range:ConvertToTable(WordSeparatorBox,nRowDbf,nColDbf)


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

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