|
|
|
Разработка конвертора данных Powersoft Report -> Excel
|
|||
|---|---|---|---|
|
#18+
Разработка конвертора данных Powersoft Report -> Excel Предлагается разовая (для начала) работа Необходимо разработать хороший конвертер данных dw PowerBuilder или файлов Powersoft Report в Excel ( Word) Кто возьмется? Оплата по факту при результатах лучше чем "dw2xls" Возможен % от продаж заинтересованным клиентам ( а это весь круг пользователей приложений Powerbuilder ) Нужна скорость - десятки тысячи строк - за секунды и точное соответсвие внешнего вида для любых видов dw включая вложенные отчеты и графику. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.12.2005, 11:36 |
|
||
|
Разработка конвертора данных Powersoft Report -> Excel
|
|||
|---|---|---|---|
|
#18+
А что, где-то появилось описание формата PSR? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.12.2005, 11:43 |
|
||
|
Разработка конвертора данных Powersoft Report -> Excel
|
|||
|---|---|---|---|
|
#18+
Боюсь, что за это мало кто возьмётся! Ибо задача достаточно объёмная и требующая огромных ресурсов, в том числе, хорошее знание VB. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.12.2005, 11:49 |
|
||
|
Разработка конвертора данных Powersoft Report -> Excel
|
|||
|---|---|---|---|
|
#18+
VB тут вообще никаким боком. тут скорее знание формата xls чтоб напрямую писать и то не факт что получится сделать лучше чем dw2xls. ИМХО за это не возьмется никто ибо задача абсолютно нереальная. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.12.2005, 12:03 |
|
||
|
Разработка конвертора данных Powersoft Report -> Excel
|
|||
|---|---|---|---|
|
#18+
ЗоринАндрейVB тут вообще никаким боком. тут скорее знание формата xls чтоб напрямую писать и то не факт что получится сделать лучше чем dw2xls. ИМХО за это не возьмется никто ибо задача абсолютно нереальная. Да получится, сделать быстрее и лучше - вполне реально. Но для всех типов отчетов + скорость + точное соответствие виду... (а в xls вообще можно применять "слои" в документе)? Давайте прикинем... Мое мнение - один человекогод для такого проекта - весьма оптимистическая оценка. Программист с низкой квалификацией такую работу не сделает. Соответственно для Москвы 2000$ в месяц 25000$ за год. Если это не частное лицо, то минимум *2. Частное лицо, я думаю, тоже захочет какой-то коэффициент. Если не Москва, то все можно на 2 и поделить. Соответственно 25000-50000$ - оптимистические затраты на реализацию проекта. Я думаю, что на такие расходы никто просто так не пойдет с оплатой по факту. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.12.2005, 12:30 |
|
||
|
Разработка конвертора данных Powersoft Report -> Excel
|
|||
|---|---|---|---|
|
#18+
К тому же у вас противоречие в требованиях AVGritsenkoОплата по факту при результатах лучше чем "dw2xls" Возможен % от продаж заинтересованным клиентам ( а это весь круг пользователей приложений Powerbuilder ) т.е. я покупаю исходники dw2xls, несколько правлю их, чтобы было лучше и уже вправе требовать с вас денег? AVGritsenkoНужна скорость - десятки тысячи строк - за секунды и точное соответсвие внешнего вида для любых видов dw включая вложенные отчеты и графику. а это уже совсем другие требования. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.12.2005, 12:35 |
|
||
|
Разработка конвертора данных Powersoft Report -> Excel
|
|||
|---|---|---|---|
|
#18+
boogiman.... в том числе, хорошее знание VB. Да... Это круче китайской грамоты - практически импосибл :-). По сабжу есть некоторый опыт -имеется собственный вариант WYSIWYG для grid-а , Вот здесь я уже выступал как-то /topic/114801&pg=1&hl=zhv#927237 1) в принципе VB не понадобился – просто нужно пользовать функции Excel-а через OLE , а их удобнее отлаживать и смотреть как работают с помощью известной методы работы с макросами ; в проекте "dw2xls" сделано круче – напрямую работа с файлом Excel-я Надеюсь автор этого проекта Anatoly Moskovsky не обидится за повторение его ссылки http://www.sql.ru/forum/actualthread.aspx?tid=163701&hl=zhv#1360021 2) знание формат PSR … может и не нужно. В принципе можно считать , что это примерно равно Describe(datawindow.Syntax) + Describe(datawindow.data) . Исключение – композитные и nested отчеты – там много хитрее и геморройнее Важно - парсить синтакс – он достаточно нагляден. Но выяснилась странная вещь – огромная "тормознутость" строковых функций PowerBuilder – типа POS, MID… С такой скоростью для сложных datawindow (от полусотни datawindow.objects) – 10000 вызовов POS – это до десяти секунд. Пришлось писать отдельную dll-ку под API-вызов на С++ для строковых функций. Оказалось , что VC++ с PB работат глючно. Потратил время – Vatcom C++ из PB пакета версии 6.5 – нормально – разница в скорости раз в сто. Что бы это значило ? 3) проблема для free формы – нужно заниматься топологией – привязки "свободных координат" к "решетке" ячеек Excel –а . ИМХО – из-за допускаемых для DW перекрытий - иногда просто невозможно точное соответствие 4) отдельная и страшно неудобная тема – композитные отчеты . Есть относительно простой вариант грузить на разные листы Excel-a , но это не всегда приемлимо . Иначе – нужно снова заниматься расчетом топологий размещения разноформатных отчетов в единой сетке листа В общем заказчик "простил" мне композитные отчеты – я по жизни их "не люблю" :-) Лично меня давно интересовал вопрос - почему subj не озадачилась сама Sybase ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.12.2005, 12:37 |
|
||
|
Разработка конвертора данных Powersoft Report -> Excel
|
|||
|---|---|---|---|
|
#18+
ZhV4) отдельная и страшно неудобная тема – композитные отчеты . Есть относительно простой вариант грузить на разные листы Excel-a , но это не всегда приемлимо . Иначе – нужно снова заниматься расчетом топологий размещения разноформатных отчетов в единой сетке листа А Graph,N-Up,Rich Text еще делать. Graph-то тоже весьма и весьма не просто сделать... А всякие линии, овальчики прозрачности, один объект под другим. Брр... ZhVDescribe(datawindow.Syntax) + Describe(datawindow.data) Это с таким подходом все expression'ы нужно будет самому вычислять, можно несколько хитрее сделать, да и синтаксис, опять же не документирован + полноценный парсер тоже не так просто. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.12.2005, 12:48 |
|
||
|
Разработка конвертора данных Powersoft Report -> Excel
|
|||
|---|---|---|---|
|
#18+
Локшин МаркА Graph,N-Up,Rich Text еще делать. Graph-то тоже весьма и весьма не просто сделать... А всякие линии, овальчики прозрачности, один объект под другим. Брр.... Да забыл сказать - с графикой как таковой я вообще не занимался - не ставилась задача. В этой части - я пас. Могу предположить - что действительно - брр... Локшин Марк Это с таким подходом все expression'ы нужно будет самому вычислять, можно несколько хитрее сделать, да и синтаксис, опять же не документирован + полноценный парсер тоже не так просто. Не знаю – кому как ... Два программиста – три алгоритма . А в чем проблема сделать вот так ? lds.dataobject = "file_name.psr" И всё - можно отдельно извлекать синтакс и работать с данными. Выражения - как положено - через evaluate("col_name",row) . А как еще можно иначе ? Что такое полноценный парсер ? Просто последовательно разлагаешь на лексемы строку ls_synt = lds.Describe("datawindow.syntax") Что надо и понятно – x,y,width, font.height,dddwname... - используешь или при необходимости модифицируешь . Что непонятно - html.valueishtml - просто не трогаешь и оставляешь как есть . ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.12.2005, 13:13 |
|
||
|
Разработка конвертора данных Powersoft Report -> Excel
|
|||
|---|---|---|---|
|
#18+
ZhVА в чем проблема сделать вот так ? lds.dataobject = "file_name.psr" И всё - можно отдельно извлекать синтакс и работать с данными. Выражения - как положено - через evaluate("col_name",row) . А как еще можно иначе ? Есть способы несколько быстрее. А то для каждого свойства для каждой строки evaluete - это не быстро... ZhVЧто такое полноценный парсер ? Просто последовательно разлагаешь на лексемы строку ls_synt = lds.Describe("datawindow.syntax") Ну вообще-то для однозначного разложения нужно полностью знать правила построения синтаксиса DataWindow (например БНФ). Там синтаксис сделан все таки не так, как в html - нашел тэг, знаешь - обрабатываешь, не знаешь - пропускаешь. Тут однозначно тег не так-то просто найти - а гарантировано - только зная полный синтаксис. До этих x,y и т.д. еще нужно добраться пропустив солидный кусок описания, а его нужно корректно пропустить, а не начать разбор с похожих конструкций внутри него. Можно все-же обойтись без такого рода проблем. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.12.2005, 14:09 |
|
||
|
Разработка конвертора данных Powersoft Report -> Excel
|
|||
|---|---|---|---|
|
#18+
а зачем мучится делать такое теперь ? ведь новая версия офиса будет на базе XML, так что подождем ее и пусть все клиенты переходят на новую версию офиса ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.12.2005, 14:26 |
|
||
|
Разработка конвертора данных Powersoft Report -> Excel
|
|||
|---|---|---|---|
|
#18+
Локшин Марк ... Ну вообще-то для однозначного разложения нужно полностью знать правила построения синтаксиса DataWindow (например БНФ). Там синтаксис сделан все таки не так, как в html - нашел тэг, знаешь - обрабатываешь, не знаешь - пропускаешь. /topic/114801&pg=2&hl=zhv#928715 автоцитата Парсится и переносится в обьект описателя datawindow строка вида ls_syntax= dw.Describe("DataWindow.Syntax") Хранить такую "строку" (до 80 кб) можно и в файле-шаблоне , и в базе данных … и не одну. Она хорошо структурирована [тип_обьекта]( [имя_параметра]=[значение или выражение]…..) PB9 от PB6 отличается только номером в самом заголовке и наличием специальных [тип_обьекта] для выгрузку в xml и pdf. Но я такие режимы пока не ковырял - не было нужды. Отдельно и специально - [для тип_обьекта] = table - это есть описатель datasource column . Наверняка Sybase где-то спрятала аналогичный обьект где-то внутри private переменных - свойств datawindow . Может кто-то добрался или сможет это сделать ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.12.2005, 14:33 |
|
||
|
Разработка конвертора данных Powersoft Report -> Excel
|
|||
|---|---|---|---|
|
#18+
ZhV[тип_обьекта]( [имя_параметра]=[значение или выражение]…..) Этого для однозначного разбора - мало. Такая последовательность может встретится еще до начала описания объектов отчета. Нужно знать полный синтаксис, иначе можно ошибиться при разборе, а синтаксис разный! Перевод строки в комментариях выглядит как ~r~n а в описании объекта обычным кодом перевода строки. А мало ли что там в PowerSoft'е понапридумывали. Они намудрить любят. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.12.2005, 15:14 |
|
||
|
Разработка конвертора данных Powersoft Report -> Excel
|
|||
|---|---|---|---|
|
#18+
Локшин Марк Этого для однозначного разбора - мало. Такая последовательность может встретится еще до начала описания объектов отчета. Нужно знать полный синтаксис, иначе можно ошибиться при разборе, а синтаксис разный! Перевод строки в комментариях выглядит как ~r~n а в описании объекта обычным кодом перевода строки. А мало ли что там в PowerSoft'е понапридумывали. Они намудрить любят. Мне хватило… Вроде работает [значение или выражение] - может быть : 1) число или идентификатор (по назначению обьекта) - лексическая единица до первого пробела или скобки 2) строчное выражение – обязательно начинается и заканчивается символом (” ) - «двойные кавычки» ASCII-код 0x22 ; если внутри выражения есть необходимость разместить этот же символ – PB по умолчанию ставит перед ним маркер и записывает в строку в виде (~”) – просто нужно игнорировать это сочетание символов при поиске конца строчного выражения. Перевод строки – просто включается в выражение , за пределами лексем - игнорируется. Распарсенный описатель datawindow раскладывается в спец.обьект с более удобными для работы структурами . После необходимых обработок или модификаций – обратный процесс – сборка строки синтаксиса из структур обьекта . После выгребания кучи огрехов – достаточно стабильно работает без видимых проблем ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.12.2005, 15:33 |
|
||
|
Разработка конвертора данных Powersoft Report -> Excel
|
|||
|---|---|---|---|
|
#18+
А каким образом найти хотя бы первое вхождение [тип_обьекта]? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.12.2005, 16:00 |
|
||
|
Разработка конвертора данных Powersoft Report -> Excel
|
|||
|---|---|---|---|
|
#18+
Локшин МаркА каким образом найти хотя бы первое вхождение [тип_обьекта]? Проэкспортируйте и посмотрите в notepad синтаксис datawindow . Примерно так : release 9; datawindow(units=0 … ) header(height=136 color="536870912" ) . . . . table(column=(type=decimal(0) update=yes updatewhereclause=yes key=yes name=is_name1 dbname="TABLE.IS_NAME1" ) . . . . retrieve=" SELECT … " text(band=header alignment="2" text="????" … ) . . . . export.pdf(method=0 distill.custompostscript="0" xslfop.print="0" ) Итак первое вхождение – это всегда datawindow( …. ) Нужно выбрать и разложить всё что внутри скобок . После закрытия скобки – работа по данному обьекту закончена . Сканируем строку до следующиего обьекта – в данном случае " header" - всегда начинается с буквенного символа , символы перевода строк просто игнорирутся . Нужно учесть , что возможны вложенные описатели - главный и очень важный это table c вложенными column Ну примерно … и так далее … ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.12.2005, 16:16 |
|
||
|
Разработка конвертора данных Powersoft Report -> Excel
|
|||
|---|---|---|---|
|
#18+
ZhVНу примерно … и так далее … А если есть какие-либо секции, которые включаются в зависимости от условий или синтаксис внутри секций более хитрый? Не документировано, поэтому предположить можно все что угодно... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.12.2005, 16:31 |
|
||
|
Разработка конвертора данных Powersoft Report -> Excel
|
|||
|---|---|---|---|
|
#18+
Локшин Марк А если есть какие-либо секции, которые включаются в зависимости от условий или синтаксис внутри секций более хитрый? Не документировано, поэтому предположить можно все что угодно... Что вы понимаете по словом " секция" ? Простейшие datawidow – это freeform и grid - опция processing = 0 и 1 соответственно Базовые обьекты это - table, header, detail, summary , footer – кажется всё . При наличии группировок – header.N/trailer.N – шапка и подвал группы , где N – ее номер Описатели визульных обьектов – column,compute и text . Есть еще для графики - но я их на память не помню , да и обработок над ними не делаю. Для более экзотических типов datawindow – CrossTab,N-Up, Label – есть еще свои специфические обьекты – тоже редко приходится иметь дело , но в принципе ничего сильно выпадающего из общей логики . Отдельно – nested и composite . Там в качестве обьекта появляется report - очень краткий описатель и ссылка на имя обьекта вложенного datawindow - и всё . Нужно искать тот обьект и парсить отдельно Я не возьмусь утверждать точно – но каких либо условных операторов или конструкций в стиле макросов времени исполнения dw.Create(ls_synt) не попадалось ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.12.2005, 17:01 |
|
||
|
Разработка конвертора данных Powersoft Report -> Excel
|
|||
|---|---|---|---|
|
#18+
авторЯ не возьмусь утверждать точно – но каких либо условных операторов или конструкций в стиле макросов времени исполнения dw.Create(ls_synt) не попадалось Так вот, не попадалось и будет работать корректно для всех вариантов синтаксиса DataWindow - это, как говорится, две большие разницы. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.12.2005, 17:16 |
|
||
|
Разработка конвертора данных Powersoft Report -> Excel
|
|||
|---|---|---|---|
|
#18+
Локшин Марк Так вот, не попадалось и будет работать корректно для всех вариантов синтаксиса DataWindow - это, как говорится, две большие разницы. Будем решать проблемы по мере поступления ТЗ и оплаты :-) Я вообще-то не вижу жестокой необходимости в тотальном конверетере psr->xls Таблицы - уже есть в продаже Графики и диаграммы - лучше в pdf rtf - в Word ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.12.2005, 17:36 |
|
||
|
Разработка конвертора данных Powersoft Report -> Excel
|
|||
|---|---|---|---|
|
#18+
ZhVЛично меня давно интересовал вопрос - почему subj не озадачилась сама Sybase ? Кстати, вопрос интересный, и часть ответа, я думаю, можно найти в моих прикидках. Для США и Sybase это бы было, я думаю, раз в 5-10 дороже, даже с учетом китайского аутсорсинга. ZhVГрафики и диаграммы - лучше в pdf Дык в Excel'е то её больше хочется видеть, там тормально и поправить-перестроить то её потом можно будет. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.12.2005, 19:24 |
|
||
|
Разработка конвертора данных Powersoft Report -> Excel
|
|||
|---|---|---|---|
|
#18+
ZhVв проекте "dw2xls" сделано круче – напрямую работа с файлом Excel-я Надеюсь автор этого проекта Anatoly Moskovsky не обидится за повторение его ссылки Я не обижусь, тем более что я не автор :)) А настоящий автор - Андрей Никулица. ZhVЛично меня давно интересовал вопрос - почему subj не озадачилась сама Sybase ? А кстати вот и нет, они давно озадачились и даже приняли решение не делать встроенный экспорт один в один в Excel. См. список фич в очереди на реализации у Сайбейса - эта фича с пометкой "не планируется в ближайшие 2 версии" ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.12.2005, 21:12 |
|
||
|
Разработка конвертора данных Powersoft Report -> Excel
|
|||
|---|---|---|---|
|
#18+
AVGritsenkoРазработка конвертора данных Powersoft Report -> Excel Предлагается разовая (для начала) работа Необходимо разработать хороший конвертер данных dw PowerBuilder или файлов Powersoft Report в Excel ( Word) Кто возьмется? Оплата по факту при результатах лучше чем "dw2xls" Возможен % от продаж заинтересованным клиентам ( а это весь круг пользователей приложений Powerbuilder ) Нужна скорость - десятки тысячи строк - за секунды и точное соответсвие внешнего вида для любых видов dw включая вложенные отчеты и графику. Рекомендую подождать до 2006Q3 (или около того) и дождаться выхода DW2XLS с драйвером записи в Excel написанном на C++. А еще ранее ожидается более полная поддержка композитных DW. Правда насчет изображений - ничего не могу сказать. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.12.2005, 21:21 |
|
||
|
Разработка конвертора данных Powersoft Report -> Excel
|
|||
|---|---|---|---|
|
#18+
Локшин Маркт.е. я покупаю исходники dw2xls, несколько правлю их, чтобы было лучше и уже вправе требовать с вас денег? И тут же Desta будет вправе стребовать с кое-кого денег (даже фамилия известна) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.12.2005, 21:25 |
|
||
|
Разработка конвертора данных Powersoft Report -> Excel
|
|||
|---|---|---|---|
|
#18+
Anatoly MoskovskyИ тут же Desta будет вправе стребовать с кое-кого денег (даже фамилия известна) Ой, ну можно без исходных текстов распространять, или на C/Delphi переписть :) Anatoly MoskovskyРекомендую подождать до 2006Q3 (или около того) и дождаться выхода DW2XLS с драйвером записи в Excel написанном на C++. А что так долго? Там работы то не слишком много... особенно если один в один переписывать. Я вот таким же образом свой экспорт в HTML собираюсь переписать, но все пока только примеряюсь :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.12.2005, 09:50 |
|
||
|
|

start [/forum/topic.php?fid=15&msg=33438669&tid=1337319]: |
0ms |
get settings: |
9ms |
get forum list: |
15ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
81ms |
get topic data: |
9ms |
get forum data: |
2ms |
get page messages: |
58ms |
get tp. blocked users: |
1ms |
| others: | 229ms |
| total: | 412ms |

| 0 / 0 |
