Автор | Сообщение |
|
| постоянный участник
|
Пост 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)} ) Может неправильно делаю ?
|
|
|
Ответов - 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 знака. Я понимаю что может быть другой разделитель, т.е. как в Экселе заданы установки. И сумма колонки теперь считается ! Спасибо за подсказки !
|
|
|
|
| |
Пост N: 6887
Зарегистрирован: 17.05.05
|
|
Отправлено: 23.07.18 21:26. Заголовок: Andrey пишет: Я пон..
Andrey пишет: цитата: | Я понимаю что может быть другой разделитель, т.е. как в Экселе заданы установки. |
| Ну так делай сразу правильно и не через
|
|
|
|
| |
Пост N: 1290
Зарегистрирован: 20.02.11
|
|
Отправлено: 23.07.18 21:36. Заголовок: Andrey пишет: Ну ес..
Andrey пишет: цитата: | Ну если не задавать формата |
| Ты с темы не соскакивай вопрос был почему не считает, ответ - потому что строки суммировать эксель не умеет. И формат тут по любому не причём. Как сделать красиво вопроса не было Что касается формата, есть еще разделители групп разрядов и как любят все финансисты - отрицательные числа в скобках и без минуса. Так что и красота у каждого своя
|
|
|
|
| |
Пост N: 6888
Зарегистрирован: 17.05.05
|
|
Отправлено: 23.07.18 21:44. Заголовок: Подсказка: ищи по ф..
Подсказка: ищи по форуму GET_SDECIMAL Павел выкладывал а остальные 2 параметра сможешь считать из объекта Excel
|
|
|
|
| постоянный участник
|
Пост N: 5982
Зарегистрирован: 12.09.06
|
|
Отправлено: 23.07.18 22:08. Заголовок: Спасибо ВАМ !!! :sm..
Спасибо ВАМ !!!
|
|
|
|
| постоянный участник
|
Пост 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. Будет вообще отличный и законченный пример экспорта для МиниГуи.
|
|
|
|
| постоянный участник
|
Пост N: 5991
Зарегистрирован: 12.09.06
|
|
Отправлено: 04.08.18 17:54. Заголовок: Всем привет. Кто зна..
Всем привет. Кто знает, как картинку разместить на листе Экселя ? Какие команды нужно использовать ?
|
|
|
|
| |
Пост 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)
|
|
|
|
| постоянный участник
|
Пост N: 5992
Зарегистрирован: 12.09.06
|
|
Отправлено: 04.08.18 21:06. Заголовок: Спасибо Dima ! :sm3..
Спасибо Dima !
|
|
|
|
| постоянный участник
|
Пост 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) какую то фигню выдаёт...
|
|
|
|
| |
Пост N: 6901
Зарегистрирован: 17.05.05
|
|
Отправлено: 10.08.18 09:05. Заголовок: Andrey Ты читал воо..
|
|
|
|
|
| постоянный участник
|
Пост N: 6000
Зарегистрирован: 12.09.06
|
|
Отправлено: 10.08.18 11:46. Заголовок: Dima пишет: Ты чита..
|
|
|
|
| |
Пост N: 6902
Зарегистрирован: 17.05.05
|
|
Отправлено: 10.08.18 12:01. Заголовок: Andrey Можно еще пр..
Andrey Можно еще пробнуть oExcel:ActiveSheet:Pictures:Insert
|
|
|
|
| постоянный участник
|
Пост 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
|
|
|
|
| |
Пост 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 нормально стартовал и выводил данные Скрытый текст Application: C:\MiniGUI\SAMPLES\Advanced\Tsb_Export\demo.exe Date: 10.08.2018 Time: 14:24:06 Time from start: 0 days 0 hours 0 mins 11 secs Error BASE/1132 Bound error: array access Called from TSBROWSE:DRAWSUPER(3769) in module: h_tbrowse.prg Called from TSBROWSE:PAINT(9235) in module: h_tbrowse.prg Called from TSBROWSE:DISPLAY(2447) in module: h_tbrowse.prg Called from TOEXCEL2(951) in module: demo.prg Called from (b)TABLEEXPORT(740) in module: demo.prg Called from _DOCONTROLEVENTPROCEDURE(0) Called from EVENTS(0) Called from INKEYGUI(0) Called from TABLEEXPORT(765) in module: demo.prg Called from (b)MAIN(152) in module: demo.prg Called from _DOCONTROLEVENTPROCEDURE(0) Called from EVENTS(0) Called from DOMESSAGELOOP(0) Called from _ACTIVATEWINDOW(0) Called from MAIN(190) in module: demo.prg ----------------------------- System Information ------------------------------ Workstation name...: 195-7104 Active user name...: user Available memory...: 774 MB Current disk.......: C Current directory..: MiniGUI\SAMPLES\Advanced\Tsb_Export Free disk space....: 20933 MB Operating system...: Windows XP 5.1 SP3 MiniGUI version....: Harbour MiniGUI Extended Edition 18.07 (32-bit) Harbour version....: Harbour 3.2.0dev (r1806032230) Harbour built on...: Jun 25 2018 21:32:00 C/C++ compiler.....: Borland C++ 5.5.1 (32-bit) Multi Threading....: NO Current Work Area..: 1 -------------------------- Environmental Information -------------------------- SET ALTERNATE......: OFF SET ALTFILE........: SET AUTOPEN........: ON SET AUTORDER.......: 0 SET AUTOSHARE......: 0 SET CENTURY........: ON SET COUNT..........: 0 SET DATE FORMAT....: DD.MM.YYYY SET DBFLOCKSCHEME..: 0 SET DEBUG..........: OFF SET DECIMALS.......: 4 SET DEFAULT........: SET DEFEXTENSIONS..: ON SET DELETED........: OFF SET DELIMCHARS.....: :: SET DELIMETERS.....: OFF SET DIRCASE........: 0 SET DIRSEPARATOR...: \ SET EOL............: 13 SET EPOCH..........: 2000 SET ERRORLOG.......: C:\MiniGUI\SAMPLES\Advanced\Tsb_Export\ErrorLog.htm SET EXACT..........: ON SET EXCLUSIVE......: ON SET EXTRA..........: OFF SET EXTRAFILE......: SET FILECASE.......: 0 SET FIXED..........: OFF SET FORCEOPT.......: OFF SET HARDCOMMIT.....: ON SET IDLEREPEAT.....: ON SET LANGUAGE.......: en SET MARGIN.........: 0 SET MBLOCKSIZE.....: 64 SET MFILEEXT.......: SET OPTIMIZE.......: ON SET PATH...........: SET PRINTER........: OFF SET PRINTFILE......: LPT1 SET SOFTSEEK.......: OFF SET TRIMFILENAME...: .F. SET UNIQUE.........: OFF -------------------------- Detailed Work Area Items --------------------------- --------------------- Internal Error Handling Information --------------------- Subsystem Call ....: BASE System Code .......: 1132 Default Status ....: .F. Description .......: Bound error Operation .........: array access Involved File .....: Dos Error Code ....: 0 +++++++++++++++++++++++++ Available Memory Variables ++++++++++++++++++++++++++
|
|
|
|
|
| moderator
|
Пост N: 1336
Зарегистрирован: 11.02.10
|
|
Отправлено: 10.08.18 15:55. Заголовок: nick_mi пишет: полу..
nick_mi пишет: цитата: | получил ошибку при попытке экспорта |
| Благодарю за ссобщение. Поправил исходник библиотеки TsBrowse для следующей сборки
|
|
|
|
| постоянный участник
|
Пост N: 6002
Зарегистрирован: 12.09.06
|
|
Отправлено: 12.08.18 15:11. Заголовок: nick_mi пишет: Вот ..
nick_mi пишет: цитата: | Вот получил ошибку при попытке экспорта |
| А другой экспорт "New: Export to Ole-Excel 1 (xls)" - работает ?
|
|
|
|
| |
Пост N: 209
Зарегистрирован: 19.05.05
|
|
Отправлено: 13.08.18 15:39. Заголовок: Да! Все остальные ча..
Да! Все остальные части нормально отработали
|
|
|
|
| постоянный участник
|
Пост N: 6003
Зарегистрирован: 12.09.06
|
|
Отправлено: 13.08.18 19:14. Заголовок: Всем привет ! А мож..
Всем привет ! А можно как то убрать белые края на иконках в Tsbrowse ? Если картинка квадратная, то красиво получается, а если нет то вот так получается:
|
|
|
|
| постоянный участник
|
Пост 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)
|
|
|
Ответов - 75
, стр:
1
2
3
4
All
[только новые]
|
|