Автор | Сообщение |
|
| |
Пост N: 2
Зарегистрирован: 22.04.15
|
|
Отправлено: 22.04.15 20:48. Заголовок: шаблон Microsoft Word
Кто подскажет (и покажет) - требуется использовать шаблон Word (взаимодействие - подготовка, открытие, передача параметров и т.д.), то есть требуется подготовить определенный шаблон Word, передать параметры с программы, сохранить в формате docx в определенном месте или направить на печать.
|
|
|
Ответов - 103
, стр:
1
2
3
4
5
6
All
[только новые]
|
|
|
| |
Пост N: 4757
Зарегистрирован: 17.05.05
|
|
Отправлено: 23.04.15 15:27. Заголовок: Вероятно все действи..
Вероятно все действия проделать в WORD с записью в макрос а затем пробовать все повторить в Harbour используя текст макроса.
|
|
|
|
| |
Пост N: 4
Зарегистрирован: 22.04.15
|
|
Отправлено: 25.04.15 10:39. Заголовок: шаблон Microsoft Word
спс но... данный вариант я итак использую... - то есть я в программе создаю весь документ Word, а при изменении текста в Word, соответственно приходится изменять исходный код в программе. - хотелось бы использовать шаблон Word, чтобы при изменении текста в документе - пользователям и мне достаточно было изменить этот шаблон не изменяя исходный код программы И во-вторых, в дальнейшем мне было бы достаточно предоставить =Справочник выходных переменных=, с помощью которого пользователи могли бы создавать свои любые отчеты, документы - просто создав шаблон, указав переменные и установив в определенную директорию моей программы.
|
|
|
|
| |
Пост N: 4761
Зарегистрирован: 17.05.05
|
|
Отправлено: 25.04.15 13:17. Заголовок: Так сразу и храни эт..
Так сразу и храни эти переменные в шаблоне. Затем его грузим , поиск и замена переменных по тексту из справочника. И все. Например шаблон: Директор [value1] Бухгалтер [blabla] В справочнике есть value1 и есть на что ее заменять , как и blabla.
|
|
|
|
| |
Пост N: 3
Зарегистрирован: 28.11.14
|
|
Отправлено: 27.04.15 08:00. Заголовок: если я правильно пон..
если я правильно понял проблему то возможно подойдет мое решение (о котором я уже здесь упоминал) 1. Нужные места в документе ворд помечаю именами. В 2003-м - Меню/Вставка/Закладка 2. в программе делаю так .... aAdd(aBookMarks, {"Team", s}) aAdd(aBookMarks, {"Sign3", wMain.txt_Manager3.Value}) aAdd(aBookMarks, {"Sign4", wMain.txt_Manager4.Value}) aAdd(aBookMarks, {"Sign2", wMain.txt_Manager2.Value}) If oResDoc:Bookmarks:Count > 0 BkMrk:="" For Each BkMrk In oResDoc:Bookmarks bmName:=BkMrk:Name if (n:=AScan( aBookMarks, {|x| x[ 1 ] == bmName} ))>0 //BkMrk:Range := BkMrk:Name BkMrk:Range := aBookMarks[n,2] endif Next //BkMrk EndIf
|
|
|
|
| |
Пост N: 4782
Зарегистрирован: 17.05.05
|
|
Отправлено: 27.04.15 18:59. Заголовок: SadStar3333 пишет: ..
SadStar3333 пишет: цитата: | то возможно подойдет мое решение |
| Да тоже нормальный вариант !
|
|
|
|
| постоянный участник
|
Пост N: 5175
Зарегистрирован: 12.09.06
|
|
Отправлено: 23.11.16 22:17. Заголовок: Думал что не буду по..
Думал что не буду пользоваться таблицами Ворда. А не получилось, нужно делать.... Подскажите решение (может кто поделиться функциями) как сделать из шаблона таблицы Ворда: как найти в тексте таблицу, как сделать добавление столбца и вставку данных из базы ? Хочу использовать простой шаблон, типа:
|
|
|
|
| Администратор
|
Пост N: 3502
Зарегистрирован: 23.05.05
|
|
Отправлено: 24.11.16 08:08. Заголовок: Если поставить закла..
Если поставить закладку внутри таблицы, то найти ее можно так: oSelect:Goto(-1,,, <BookmarkName>) Вставить столбец в таблицу в указанном месте можно вызовами методов: oSelect:InsertColumns() или oSelect:InsertColumnsRight() Вставить текст: oSelect:TypeText(<text>) Перемещение между ячейками таблицы: oSelect:MoveRight(1, 1) аналогично есть методы MoveLeft, MoveUp, MoveDown, и еще несколько Move*
|
|
|
|
| постоянный участник
|
Пост N: 5176
Зарегистрирован: 12.09.06
|
|
Отправлено: 24.11.16 10:58. Заголовок: Pasha пишет: Если п..
Pasha пишет: цитата: | Если поставить закладку внутри таблицы, то найти ее можно так: |
| Спасибо БОЛЬШОЕ !
|
|
|
|
| постоянный участник
|
Пост N: 5192
Зарегистрирован: 12.09.06
|
|
Отправлено: 30.11.16 21:48. Заголовок: Всем привет ! Вопрос..
Всем привет ! Вопрос возник по ходу решения поиск/замена выражения в Ворде. Не хочу делать закладку, уже имел печальный опыт, юзера при правке шаблона стирают закладки. Если будет стоять текст другого цвета (у меня в шаблоне синий) то они этот текст не трогают. Сделал макрос поиск/замена всех строк: Selection.Find.ClearFormatting Selection.Find.Replacement.ClearFormatting With Selection.Find .Text = "#M->Date1" .Replacement.Text = "01/01/2016" .Forward = True .Wrap = wdFindContinue .Format = False .MatchCase = False .MatchWholeWord = False .MatchWildcards = False .MatchSoundsLike = False .MatchAllWordForms = False End With Selection.Find.Execute Replace:=wdReplaceAll Как его перевести на Харбор ? Помогите пожалуйста, уже лет 5 не занимался этим.
|
|
|
|
| Администратор
|
Пост N: 3510
Зарегистрирован: 23.05.05
|
|
Отправлено: 01.12.16 08:10. Заголовок: Вместо точки ставить..
Вместо точки ставить двоеточие После вызова метода ставить скобки Так: oFind := oSelec:Find oFind:ClearFormatting() oFind:Replacement:ClearFormatting() oFind:Text := "#M->Date1" oFind:Replacement:Text := "01/01/2016" oFind:Forward := .T. oFind:Wrap := 1 и так далее в конце oFind:Execute(,,,,,,,,,, 2) справку по методам смотреть в файле VBAWD10.CHM Из этого файла: Runs the specified find operation. Returns True if the find operation is successful. Boolean. expression.Execute(FindText, MatchCase, MatchWholeWord, MatchWildcards, MatchSoundsLike, MatchAllWordForms, Forward, Wrap, Format, ReplaceWith, Replace, MatchKashida, MatchDiacritics, MatchAlefHamza, MatchControl) видно, что Replace - это 11-й параметр метода Execute. В таком порядке и надо передавать значения ну и подставлять значения констант wd* поправил опечатки
|
|
|
|
| постоянный участник
|
Пост N: 5194
Зарегистрирован: 12.09.06
|
|
Отправлено: 01.12.16 14:39. Заголовок: Pasha СПАСИБО БОЛЬШО..
Pasha СПАСИБО БОЛЬШОЕ !!! Пошёл делать...
|
|
|
|
|
| постоянный участник
|
Пост N: 5197
Зарегистрирован: 12.09.06
|
|
Отправлено: 01.12.16 18:57. Заголовок: Сразу большая непоня..
Сразу большая непонятка. Открываю Ворд так: oWord := TOleAuto():New( "Word.Application" ) oDocs := oWord:Documents oDocs:Open( cFileDoc ) oActive := oWord:ActiveDocument oSelect := oWord:Selection oFind: нужно менять на что ? Не пойму где здесь работа с oFind И ещё вопрос, если есть #include "word.ch" можно же не менять значения констант wd* ?
|
|
|
|
| |
Пост N: 6163
Зарегистрирован: 17.05.05
|
|
Отправлено: 01.12.16 19:04. Заголовок: Andrey Попробуй вар..
Andrey Попробуй вариант с созданием таблицы в EXCEL и после просто скопируй ее и вставь в WORD , должно сработать , да и гимора меньше мне кажется. PS Проверил в рукопашную , работает на ура
|
|
|
|
| постоянный участник
|
Пост N: 5198
Зарегистрирован: 12.09.06
|
|
Отправлено: 01.12.16 19:21. Заголовок: Dima пишет: Попробу..
Dima пишет: цитата: | Попробуй вариант с созданием таблицы в EXCEL и после просто скопируй ее и вставь в WORD , должно сработать , да и гимора меньше мне кажется. |
| Не пойдёт. Нужно пример сделать для учёбы. Чтобы потом любой желающий к себе в прогу забирал. Пример работы с EXCEL я сделал ( с вашей помощью). Теперь нужно так же с Вордом сделать. У меня есть вставка/замена через rtf файл, есть с закладками. Но это не то. Этот пример гибче будет. Да и работы с таблицами в Ворде так и не нашёл нигде. Будем биться с Вордом !
|
|
|
|
| |
Пост N: 6164
Зарегистрирован: 17.05.05
|
|
Отправлено: 01.12.16 19:44. Заголовок: Andrey пишет: Будем..
Andrey пишет: Удачи !
|
|
|
|
| постоянный участник
|
Пост N: 5200
Зарегистрирован: 12.09.06
|
|
Отправлено: 03.12.16 18:47. Заголовок: Вот здесь есть похож..
|
|
|
|
| постоянный участник
|
Пост N: 5201
Зарегистрирован: 12.09.06
|
|
Отправлено: 03.12.16 20:35. Заголовок: Как получить хендл о..
Как получить хендл открытого Вордом окна ? Для Экселя знаю как получить: // окно таблицы Excel на передний план hWnd := oExcel:hWnd ShowWindow( hWnd, 3 ) //SW_MAXIMIZE=3 SW_NORMAL=1 SW_MINIMIZE=6 BringWindowToTop( hWnd ) Для Ворда не срабатывает... hWnd := oWord:hWnd Выдаёт ошибку: Error Word.Application/0 S_OK: HWND</p> Called from TOLEAUTO:HWND(0) Called from MYWORD2OLE(56)
|
|
|
|
| постоянный участник
|
Пост N: 1355
Зарегистрирован: 09.10.06
|
|
Отправлено: 03.12.16 21:23. Заголовок: Если для Excel exp..
Если для Excel expression .Hwnd expression A variable that represents an Application object. то в Word expression .Hwnd expression A variable that represents a Window object. Поэтому, должно сработать что-то типа hWnd := oWord:ActiveDocument:ActiveWindow:Hwnd или oWord:Windows("Document1"):Hwnd ShowWindow( hWnd, 3 ).. можно заменить на :Windows("Document1"):Activate :Windows("Document1"):WindowState := wdWindowStateMaximize
|
|
|
|
| постоянный участник
|
Пост N: 5202
Зарегистрирован: 12.09.06
|
|
Отправлено: 03.12.16 22:28. Заголовок: Петр пишет: oWord:W..
Петр пишет: цитата: | oWord:Windows("Document1"):Hwnd |
| Не работает ! Причём у меня Русский MS Word и всегда создаётся "Документ2", у юзеров тоже может быть по другому. Вот и не хочется делать перебор разных вариантов: cTitle := "Документ2 - MICROSOFT WORD" cTitle2 := "Документ2 [Режим ограниченной функциональности] - MICROSOFT WORD" hWnd := FindWindowEx(,,, cTitle ) hWnd2 := FindWindowEx(,,, cTitle2 ) А получить хенд созданного ворд-документа: oWord:Documents:Add() oActive := oWord:ActiveDocument() oMarks := oActive:BookMarks oText := oWord:Selection() Как это сделать ?
|
|
|
|
| постоянный участник
|
Пост N: 1356
Зарегистрирован: 09.10.06
|
|
Отправлено: 04.12.16 00:08. Заголовок: Andrey пишет: Не ра..
Andrey пишет: Да, действительно, хотя по документации должно бы работать. Andrey пишет: цитата: | А получить хенд созданного ворд-документа: oWord:Documents:Add() oActive := oWord:ActiveDocument() |
| Пробуйте так oWord:Documents:Add() oActive := oWord:ActiveDocument() cTitle := oActive:Name hWnd := FindWindowEx(,,, cTitle )
|
|
|
|
| постоянный участник
|
Пост N: 5203
Зарегистрирован: 12.09.06
|
|
Отправлено: 04.12.16 00:44. Заголовок: Петр пишет: oWord:D..
Петр пишет: цитата: | oWord:Documents:Add() oActive := oWord:ActiveDocument() cTitle := oActive:Name hWnd := FindWindowEx(,,, cTitle ) |
| Не пашет ! Додумался до следующего: cTitle := oActive:Name hWnd := FindWindowEx(,,, cTitle ) ? cTitle, hWnd cTitle += " - MICROSOFT WORD" hWnd := FindWindowEx(,,, cTitle ) ? cTitle, hWnd Результат такой: Документ1 0 Документ1 - MICROSOFT WORD 396408 Как быть с таким окном Ворда (у юзеров периодически попадают) ? cTitle := "Документ2 [Режим ограниченной функциональности] - MICROSOFT WORD"
|
|
|
|
|
| постоянный участник
|
Пост N: 1357
Зарегистрирован: 09.10.06
|
|
Отправлено: 04.12.16 01:05. Заголовок: Andrey пишет: Додум..
Andrey пишет: Нет универсальности, лучше сначала использовать коллекцию Documents, а потом Windows cTitle := oActive:Name hWnd := FindWindowEx(,,, cTitle ) IF hWnd == 0 cTitle := oWord:Windows(1):Caption hWnd := FindWindowEx(,,, cTitle ) ENDIF если нет уверенности, сколько окон открыто в Ворде, а нужно последнее цитата: | nCount := oWord:Windows:Count cTitle := oWord:Windows(nCount ):Caption |
| или перебор можно сделать cTitle := oActive:Name FOR nI := 1 TO nCount IF cTitle $ oWord:Windows(nI):Caption .. В отличие от коллекции Documents, в коллекцию Windows попадут и служебные окна (диалоги) Word, имейте ввиду. В общем выход есть - пробуйте, и не ждите готового ответа.
|
|
|
|
| постоянный участник
|
Пост N: 5204
Зарегистрирован: 12.09.06
|
|
Отправлено: 04.12.16 02:34. Заголовок: Петр пишет: В отлич..
Петр пишет: цитата: | В отличие от коллекции Documents, в коллекцию Windows попадут и служебные окна (диалоги) Word, имейте ввиду. |
| Что-то не работает: nCount := oWord:Windows:Count ? nCount ? oWord:Windows(1):Caption Выдает 1 и вылет с ошибкой на следующем операторе: Error Word.Application/0 S_OK: WINDOWS Called from TOLEAUTO:WINDOWS(0) Called from MYWORD1OLE(83) Хотя по Менеджеру памяти 5 скрытых процесса Ворд висят....
|
|
|
|
| постоянный участник
|
Пост N: 1285
Зарегистрирован: 27.01.07
|
|
Отправлено: 04.12.16 12:07. Заголовок: Andrey Может ЭТО по..
Andrey Может ЭТО поможет?
|
|
|
|
| постоянный участник
|
Пост N: 5205
Зарегистрирован: 12.09.06
|
|
Отправлено: 04.12.16 13:41. Заголовок: PSP пишет: Может ЭТ..
PSP пишет: Не, не понимаю... Уже совсем заработался... Достали эти окна...
|
|
|
|
| постоянный участник
|
Пост N: 1358
Зарегистрирован: 09.10.06
|
|
Отправлено: 04.12.16 14:45. Заголовок: Andrey пишет: Выдае..
Andrey пишет: цитата: | Выдает 1 и вылет с ошибкой на следующем операторе: Error Word.Application/0 S_OK: WINDOWS Called from TOLEAUTO:WINDOWS(0) Called from MYWORD1OLE(83) |
| Замените библиотеку hbole на hbwin.
|
|
|
|
| постоянный участник
|
Пост N: 5207
Зарегистрирован: 12.09.06
|
|
Отправлено: 04.12.16 16:06. Заголовок: Петр пишет: Заменит..
Петр пишет: цитата: | Замените библиотеку hbole на hbwin. |
| Поменял местами библиотеки, совсем избавиться не могу, т.е. проверка на наличие ВОРДА - требуется hbole. Сразу не работает код: oWord := TOleAuto():NEW( "Word.Application" ) IF Ole2TxtError() != 'S_OK' MsgStop( "На этом компьютере MS Word не установлен !" , "Ошибка!" ) RETURN .F. ENDIF Если убрать выход, то ошибка пропадает, код этот работает: nCount := oWord:Windows:Count ? nCount ? "Caption=",oWord:Windows(1):Caption Но результат всё равно не верен: 1 Caption= Документ5 Хотя 7 штук скрытых WORD сидят в памяти. Опять перебора не получается...
|
|
|
|
| постоянный участник
|
Пост N: 1359
Зарегистрирован: 09.10.06
|
|
Отправлено: 04.12.16 16:46. Заголовок: Andrey пишет: прове..
Andrey пишет: цитата: | проверка на наличие ВОРДА - требуется hbole |
| Да вы что, IF ( oWord := win_oleCreateObject( "Word.Application" ) ) != NIL oWord:Documents:Add() .. ELSE ? "Error. MS Word not available.", win_oleErrorText() ENDIF Я вас не понимаю, что значит поменял библиотеки местами - просто используйте hbwin вместо hbole! ВСЕ! Что значит убрать выход? При чем здесь скрытые Word в памяти - что вы от них хотите? Что значит верно - не верно? Это согласно документации или вашим ожиданиям? Если вы хотите бороться с Word - боритесь. Если хотите, что бы кто-то помог - приведите полноценный фрагмент кода, в котором вы сомневаетесь, укажите, что и как используете и т.д.
|
|
|
|
| |
Пост N: 6170
Зарегистрирован: 17.05.05
|
|
Отправлено: 04.12.16 17:17. Заголовок: Петр пишет: IF ( o..
Петр пишет: цитата: | IF ( oWord := win_oleCreateObject( "Word.Application" ) ) != NIL |
| А не лучше ли так ? IF ( oWord := win_oleCreateObject( "Word.Application" ) ) == "O" PS Я про Valtype забыл , нужно его туда прицепить
|
|
|
|
| постоянный участник
|
Пост N: 5208
Зарегистрирован: 12.09.06
|
|
Отправлено: 04.12.16 17:21. Заголовок: Петр пишет: Я вас н..
Петр пишет: цитата: | Я вас не понимаю, что значит поменял библиотеки местами - просто используйте hbwin вместо hbole! ВСЕ! |
| Убрал воообще hbole. На экране 3 открытых вордовых документов. Ещё один WORD скрытый процесс. Вот полноценный фрагмент кода: oWord := TOleAuto():NEW( "Word.Application" ) oWord:Documents:Add() oActive := oWord:ActiveDocument() oText := oWord:Selection() oWord:ActiveDocument:PageSetup:Orientation := wdOrientLandscape oWord:ActiveDocument:PageSetup:LeftMargin := 72.0 //~2.5 см ....// построение таблицы и т.д. nCount := oWord:Windows:Count ? nCount Выдает 1. Почему ?
|
|
|
|
| |
Пост N: 6171
Зарегистрирован: 17.05.05
|
|
Отправлено: 04.12.16 17:22. Заголовок: Andrey пишет: Вот п..
Andrey пишет: цитата: | Вот полноценный фрагмент кода: nCount := oWord:Windows:Count ? nCount |
| Начни с самого начала , где создается объект
|
|
|
|
|
| постоянный участник
|
Пост N: 1360
Зарегистрирован: 09.10.06
|
|
Отправлено: 04.12.16 17:38. Заголовок: Andrey пишет: Вот п..
Andrey пишет: цитата: | Вот полноценный фрагмент кода: nCount := oWord:Windows:Count ? nCount |
| Полноценный - так полноценный.. Вы каким-то образом создали экземпляр OLE обьекта Дальше, наверное, вы создали новый документ добавив его в коллекцию Documents oWord:Documents:Add() При этом, поскольку документы Word живут в Window, добавился также обьект в коллекцию Windows (заметим, что 1 обьект!) Поэтому oWord:Windows:Count вернет 1 Если вызвать oWord:Documents:Add() oWord:Documents:Add() получим 2 и т.д. Все ваши действия относятся к конкретному OLE экземпляру, а не к процессам в памяти или чему вы там решили.
|
|
|
|
| постоянный участник
|
Пост N: 1361
Зарегистрирован: 09.10.06
|
|
Отправлено: 04.12.16 17:41. Заголовок: Dima пишет: А не лу..
Dima пишет: цитата: | А не лучше ли так ? IF ( oWord := win_oleCreateObject( "Word.Application" ) ) == "O" |
| win_oleCreateObject в случае неуспеха вернет NIL, когда-то это активно обсуждалось разработчиками. На том и порешили
|
|
|
|
| постоянный участник
|
Пост N: 1362
Зарегистрирован: 09.10.06
|
|
Отправлено: 04.12.16 17:49. Заголовок: Andrey пишет: Убрал..
Andrey пишет: цитата: | Убрал воообще hbole. На экране 3 открытых вордовых документов. Ещё один WORD скрытый процесс. Вот полноценный фрагмент кода: oWord := TOleAuto():NEW( "Word.Application" ) |
| Класс TOleAuto определен в библиотеке hbole. Что вы там делаете не знаю, но часть ваших слов вызывает определенные сомнения.
|
|
|
|
| постоянный участник
|
Пост N: 5209
Зарегистрирован: 12.09.06
|
|
Отправлено: 04.12.16 18:02. Заголовок: Петр пишет: Все ваш..
Петр пишет: цитата: | Все ваши действия относятся к конкретному OLE экземпляру, а не к процессам в памяти или чему вы там решили. |
| А я решил что это относиться к процессам в памяти. Вопрос был изначален - как узнать хендл окна Worda с открытым документом, чтобы его на экран впереди всех задач вынести. В противном случае он остается после МиниГуи задачи.
|
|
|
|
| |
Пост N: 6172
Зарегистрирован: 17.05.05
|
|
Отправлено: 04.12.16 18:41. Заголовок: Andrey А ты пробова..
Andrey А ты пробовал вообще , то что Петр советовал ? Использовать для создания объекта Word , win_oleCREATEOBJECT , ну а далее то что он предлагал.
|
|
|
|
| постоянный участник
|
Пост N: 1364
Зарегистрирован: 09.10.06
|
|
Отправлено: 04.12.16 18:41. Заголовок: Andrey пишет: Вопро..
Andrey пишет: цитата: | Вопрос был изначален - как узнать хендл окна Worda с открытым документом, чтобы его на экран впереди всех задач вынести. |
| Вы сами дали на него ответ - FindWindowEx В чем затык?
|
|
|
|
| постоянный участник
|
Пост N: 5211
Зарегистрирован: 12.09.06
|
|
Отправлено: 04.12.16 19:10. Заголовок: Петр пишет: Вы сами..
Dima пишет: цитата: | А ты пробовал вообще , то что Петр советовал ? Использовать для создания объекта Word , win_oleCREATEOBJECT , ну а далее то что он предлагал. |
| Пробовал. Разница в одном операторе, который мне не нужен. Мне нужен хендл открытого документа, который я сам создал. Петр пишет: цитата: | Вы сами дали на него ответ - FindWindowEx В чем затык? |
| Это моё временное решение. Нужно добавлять к названию документа такую штуку: cTitle := "Документ2 - MICROSOFT WORD" cTitle2 := "Документ2 [Режим ограниченной функциональности] - MICROSOFT WORD" А для английской версии Ворда что нужно добавлять ? Вот и озадачился я сделать как в Excel'е - он же сразу правильно выдаёт хендл созданного окна.
|
|
|
|
| постоянный участник
|
Пост N: 1365
Зарегистрирован: 09.10.06
|
|
Отправлено: 04.12.16 19:17. Заголовок: Andrey пишет: Это м..
Andrey пишет: цитата: | Это моё временное решение. |
| И опять позвольте усомниться в ваших словах Andrey пишет: цитата: | Нужно добавлять к названию документа такую штуку: cTitle := "Документ2 - MICROSOFT WORD" cTitle2 := "Документ2 [Режим ограниченной функциональности] - MICROSOFT WORD" А для английской версии Ворда что нужно добавлять ? |
| Нужно добавлять ТАКУЮ штуку cTitle := oWord:ActiveDocument():Name + "-" + oWord:Caption или nIndex := 1 cTitle := oWord:Windows(nIndex):Caption + "-" + oWord:Caption И еще раз: hbole старая версия OLE из hbwin, в ней больше ошибок, в частности не исправлена работа с коллекциями по индексу. А значит вы не можете использовать циклы по коллекциям. Но, по моему, это вас и не интересует.
|
|
|
|
| постоянный участник
|
Пост N: 5212
Зарегистрирован: 12.09.06
|
|
Отправлено: 04.12.16 19:42. Заголовок: Петр пишет: Но, по ..
Петр пишет: цитата: | Но, по моему, это вас и не интересует. |
| Интересует. Понял что hbwin лучше ! А хендл окна сразу можно получить, без FindWindowEx() ?
|
|
|
|
| Администратор
|
Пост N: 3511
Зарегистрирован: 23.05.05
|
|
Отправлено: 05.12.16 09:45. Заголовок: Что-то не работает: ..
цитата: | Что-то не работает: nCount := oWord:Windows:Count ? nCount ? oWord:Windows(1):Caption |
| К элементу коллекции надо обращаться не через круглые скобки, это же не метод, а через квадратные, т.е: oWord:Windows[1] Свойство Caption объекта Window r/w, т.е ему можно присвоить что хочется, без головняка с получением хэндла окна: oWord:Windows[1]:Caption := "blabla.." дополню: с экселем заголовок окна можно также изменить стандартным способом. вот пример из хэлпа по vba: ActiveWorkbook.Windows(1).Caption = "Consolidated Balance Sheet"
|
|
|
|
|
| Администратор
|
Пост N: 3512
Зарегистрирован: 23.05.05
|
|
Отправлено: 05.12.16 09:51. Заголовок: По поводу примеров р..
По поводу примеров работы с таблицами word из fw: в том разделе это не по теме, напишу здесь Андрей, я тебе дал пример заполнения таблицы. Если ты не хочешь использовать закладки, то надо только заменить начальное позиционирование на 1-й элемент таблицы вместо oSelect:Goto(-1, ... поставить <table>:Cells(nR, nC):Range:Select() и оставить последующий код без изменений
|
|
|
|
| постоянный участник
|
Пост N: 5214
Зарегистрирован: 12.09.06
|
|
Отправлено: 05.12.16 12:57. Заголовок: Pasha пишет: Андрей..
Pasha пишет: цитата: | Андрей, я тебе дал пример заполнения таблицы. Если ты не хочешь использовать закладки, то надо только заменить начальное позиционирование на 1-й элемент таблицы |
| А я никак сделать его под себя не могу... Пошёл переделывать. Pasha пишет: цитата: | Свойство Caption объекта Window r/w, т.е ему можно присвоить что хочется, без головняка с получением хэндла окна: |
| Мне нужен хенд окна, для того чтобы переместить это окно поверх всех окон. Чтобы юзер не искал на рабочем столе созданный документ. С Экселем получилось, с Вордом нет !
|
|
|
|
| |
Пост N: 6173
Зарегистрирован: 17.05.05
|
|
Отправлено: 05.12.16 13:53. Заголовок: Andrey пишет: С Экс..
Andrey пишет: цитата: | С Экселем получилось, с Вордом нет ! |
| Вероятно так Hwnd:=oWord:Windows[1]:hwnd
|
|
|
|
| постоянный участник
|
Пост N: 5215
Зарегистрирован: 12.09.06
|
|
Отправлено: 05.12.16 13:57. Заголовок: Pasha получилось ! З..
Pasha получилось ! Заработало.... Спасибо огромное !
|
|
|
|
| постоянный участник
|
Пост N: 5216
Зарегистрирован: 12.09.06
|
|
Отправлено: 05.12.16 14:00. Заголовок: Dima пишет: Вероятн..
Dima пишет: цитата: | Вероятно так Hwnd:=oWord:Windows[1]:hwnd |
| Ошибка: Error 3277332/0 S_OK: HWND Called from TOLEAUTO:HWND(0) Called from MYWORD2OLE(105)
|
|
|
|
| |
Пост N: 6174
Зарегистрирован: 17.05.05
|
|
Отправлено: 05.12.16 14:21. Заголовок: Andrey А так Hwnd:=..
Andrey А так Hwnd:=oWord:Windows:hwnd
|
|
|
|
| Администратор
|
Пост N: 3514
Зарегистрирован: 23.05.05
|
|
Отправлено: 05.12.16 14:37. Заголовок: Свойство hWnd присут..
Свойство hWnd присутствует у объекта Window, а не у коллекции Windows, что логично. По-видимому, в ранних версиях офиса его нет, поэтому и происходит ошибка.
|
|
|
|
| постоянный участник
|
Пост N: 5217
Зарегистрирован: 12.09.06
|
|
Отправлено: 05.12.16 15:27. Заголовок: Pasha пишет: Свойст..
Dima пишет: Ошибка ! Pasha пишет: цитата: | Свойство hWnd присутствует у объекта Window, а не у коллекции Windows, что логично. По-видимому, в ранних версиях офиса его нет, поэтому и происходит ошибка. |
| А как правильно узнать хенл окна у современных версиях офиса ? Чтобы точно работало !
|
|
|
|
| Администратор
|
Пост N: 3515
Зарегистрирован: 23.05.05
|
|
Отправлено: 05.12.16 15:34. Заголовок: В Office 2010 свойст..
В Office 2010 свойство hWnd у объекта Window еще отсутствует. В Office 2013, судя по доке, уже есть. А как узнать хендл - ну так и узнать, обратиться к свойству hWnd, если версия office выше, чем 2013
|
|
|
|
| Администратор
|
Пост N: 3516
Зарегистрирован: 23.05.05
|
|
Отправлено: 05.12.16 15:41. Заголовок: Насчет hWnd так и е..
Насчет hWnd так и есть: Window.Hwnd Property (Word) Returns a Long that indicates the window handle of the specified window. Read-only. Collapse sectionVersion information Version Added: Word 2013 т.е, обращаться к нему можно, если oWord:Version больше чем значение (определенная константа) для office 2013
|
|
|
|
| постоянный участник
|
Пост N: 5219
Зарегистрирован: 12.09.06
|
|
Отправлено: 05.12.16 15:43. Заголовок: Понял. Пока писал, у..
Понял. Пока писал, уже сделал. Word 2014 выдает правильно и по ошибке не слетает... hWnd := oWord:ActiveDocument:ActiveWindow:Hwnd Спасибо, понял в чем моя ошибка - искал там, где нет. У меня у юзеров еще 2003 офисы стоят...
|
|
|
|
| |
Пост N: 6175
Зарегистрирован: 17.05.05
|
|
Отправлено: 05.12.16 15:59. Заголовок: Вообще не много стра..
Вообще не много странно. В Excel 2003 можно поймать хендл окна Excel по Excel:Hwnd а в той же версии Word уже нет.
|
|
|
|
| Администратор
|
Пост N: 3517
Зарегистрирован: 23.05.05
|
|
Отправлено: 05.12.16 16:06. Заголовок: Странно и то, что в ..
Странно и то, что в Excel 2003 свойство hWnd есть у объекта Application, а не у Window. Может так оказаться, что это хендл не того окна, которое нужно. В Excel 2013 свойство hWnd добавили и у Window.
|
|
|
|
| |
Пост N: 6176
Зарегистрирован: 17.05.05
|
|
Отправлено: 05.12.16 16:08. Заголовок: Pasha пишет: Может ..
Pasha пишет: цитата: | Может так оказаться, что это хендл не того окна, которое нужно. |
| Пока ни кто не жаловался , и промахов не было В основном у юзеров стоит 2003 офис.
|
|
|
|
| постоянный участник
|
Пост N: 5220
Зарегистрирован: 12.09.06
|
|
Отправлено: 05.12.16 16:22. Заголовок: Dima пишет: В основ..
Dima пишет: цитата: | В основном у юзеров стоит 2003 офис. |
| А как делаешь ?
|
|
|
|
| |
Пост N: 6177
Зарегистрирован: 17.05.05
|
|
Отправлено: 05.12.16 16:34. Заголовок: Andrey пишет: А как..
Andrey пишет: чито ?
|
|
|
|
| постоянный участник
|
Пост N: 5221
Зарегистрирован: 12.09.06
|
|
Отправлено: 05.12.16 16:46. Заголовок: Хендл окна поймал. ..
Хендл окна поймал. Вывожу на передний план так: ShowWindow( hWnd, 3 ) //SW_MAXIMIZE=3 SW_NORMAL=1 SW_MINIMIZE=6 BringWindowToTop( hWnd ) MsgDebug(hWnd) Не выводится... Фар всё равно на переднем плане... Как правильно поместить окно Word поверх всех окон ?
|
|
|
|
| |
Пост N: 6178
Зарегистрирован: 17.05.05
|
|
Отправлено: 05.12.16 16:49. Заголовок: Andrey Для Excel та..
Andrey Для Excel так , норм вроде Func Showexcel(ex) local hWnd hWnd := Ex:hWnd ShowWindow(hWnd, 3) BringWindowToTop(hWnd) return nil
|
|
|
|
| постоянный участник
|
Пост N: 5222
Зарегистрирован: 12.09.06
|
|
Отправлено: 05.12.16 16:53. Заголовок: Dima пишет: Для Exc..
Dima пишет: цитата: | Для Excel так , норм вроде |
| Да у меня с ним тоже в порядке, а с Вордом проблема.... Делаю так: ShowWindow( hWnd, 6 ) //SW_MAXIMIZE=3 SW_NORMAL=1 SW_MINIMIZE=6 INKEYGUI(800) ShowWindow( hWnd, 3 ) //SW_MAXIMIZE=3 SW_NORMAL=1 SW_MINIMIZE=6 BringWindowToTop( hWnd ) MsgDebug(hWnd) Окно Ворда исчезает, а потом появляется. Но окно Проводника или Фара не перекрывают, почему то Ворд на заднем плане.
|
|
|
|
| |
Пост N: 6179
Зарегистрирован: 17.05.05
|
|
Отправлено: 05.12.16 17:05. Заголовок: Возможно не тот хенд..
Возможно не тот хендл поймал у Word
|
|
|
|
| постоянный участник
|
Пост N: 5223
Зарегистрирован: 12.09.06
|
|
Отправлено: 05.12.16 17:09. Заголовок: Dima пишет: Возможн..
Dima пишет: цитата: | Возможно не тот хендл поймал у Word |
| Нет, то окно. Окно Ворда исчезает, а потом появляется. Разобрался.Нужно ставить задержку. Потом желающие смогут проверить у себя.
|
|
|
|
| постоянный участник
|
Пост N: 5224
Зарегистрирован: 12.09.06
|
|
Отправлено: 05.12.16 17:37. Заголовок: Остался ещё один воп..
Остался ещё один вопрос: Как сделать в таблице авто суммирование столбца ? Т.е. я в конце таблицы добавляю колонку и хочу сделать в ней сумму столбца. Хотя можно и самому в цикле посчитать, но лучше сделать как положено. oTbl:Cell(nRowDbf,2):Range:ParagraphFormat:Alignment:= wdAlignParagraphRight oTbl:Cell(nRowDbf,2):Range:Font:Bold = .T. // ------------ как сделать автосумирование колонки ??? //oTbl:Cell(nRowDbf,2):Range:InsertFormula := "=Sum()"
|
|
|
|
| |
Пост N: 6180
Зарегистрирован: 17.05.05
|
|
Отправлено: 05.12.16 17:42. Заголовок: SUM (ABOVE)..
SUM (ABOVE) ЗЫ Всегда можно спросить гугл
|
|
|
|
| постоянный участник
|
Пост N: 5225
Зарегистрирован: 12.09.06
|
|
Отправлено: 05.12.16 18:42. Заголовок: Dima пишет: Всегда ..
Dima пишет: цитата: | Всегда можно спросить гугл |
| Не всегда... Не получается вставит формулу. По макросу так: Selection.InsertFormula Formula:="=SUM(ABOVE)", NumberFormat:="# ##0,00" А как оператором написать формулу и формат ? oTbl:Cell(nRowDbf,2):Range:InsertFormula????? := "=Sum(ABOVE)" Перебрал несколько вариантов. Так не работает: oTbl:Cell(nRowDbf,3):Range:InsertFormula:Formula := "=Sum(ABOVE)" - ошибка oTbl:Cell(nRowDbf,3):Range:InsertFormula := "=Sum(ABOVE)" - ошибка oTbl:Cell(nRowDbf,3):Range:Formula := "=Sum(ABOVE)" - ошибка
|
|
|
|
| |
Пост N: 6181
Зарегистрирован: 17.05.05
|
|
Отправлено: 05.12.16 18:51. Заголовок: Andrey пишет: Не по..
Andrey пишет: цитата: | Не получается вставит формулу. |
| Подсмотри как это делается в Excel , делал же наверное уже.
|
|
|
|
| постоянный участник
|
Пост N: 5226
Зарегистрирован: 12.09.06
|
|
Отправлено: 05.12.16 18:57. Заголовок: Dima пишет: Подсмот..
Dima пишет: цитата: | Подсмотри как это делается в Excel , делал же наверное уже. |
| Вот так: oSheet:Cells( nLine, nI ):SET( 'NumberFormat', '## ### ###0,00' ) // числовая ячейка и oSheet:Cells[ nI, nRowXls + 1 ] := "=СУММ(R[-" + HB_NtoS(nRowXls + 1 - nLine) + "]C:R[-1]C)"
|
|
|
|
| постоянный участник
|
Пост N: 1366
Зарегистрирован: 09.10.06
|
|
Отправлено: 05.12.16 21:00. Заголовок: Andrey пишет: По ма..
Andrey пишет: цитата: | По макросу так: Selection.InsertFormula Formula:="=SUM(ABOVE)", NumberFormat:="# ##0,00" |
| Selection:InsertFormula( "=SUM(ABOVE)", "# ##0,00" )
|
|
|
|
| |
Пост N: 6182
Зарегистрирован: 17.05.05
|
|
Отправлено: 05.12.16 22:27. Заголовок: Andrey пишет: Хотя ..
Andrey пишет: цитата: | Хотя можно и самому в цикле посчитать, но лучше сделать как положено. |
| Я делаю в цикле , ведь это же отчет по реальным цифрам а иначе это будет подгонка нужного результата.
|
|
|
|
| постоянный участник
|
Пост N: 5227
Зарегистрирован: 12.09.06
|
|
Отправлено: 06.12.16 02:09. Заголовок: Петр пишет: Selecti..
Петр пишет: цитата: | Selection:InsertFormula( "=SUM(ABOVE)", "# ##0,00" ) |
| Сделал так: oTbl:Cell(nRowDbf,3):Range:Select() // перейти и выделить ячейку таблицы Selection:InsertFormula( "=SUM(ABOVE)", "# ##0,00" ) Не проходит... Выдаёт ошибку: Error BASE/1003 Переменная не существует: SELECTION Called from MYWORD1OLE(148)
|
|
|
|
| постоянный участник
|
Пост N: 5228
Зарегистрирован: 12.09.06
|
|
Отправлено: 06.12.16 03:42. Заголовок: Уф... Сделал ... :sm..
Уф... Сделал ... Надо так: oText := oWord:Selection() .... // ---------- сделать автосуммирование колонки ----------- FOR nI := 3 TO 7 oTbl:Cell(nRowDbf,nI):Range:Select() // перейти и выделить ячейку таблицы oText:InsertFormula( "=SUM(ABOVE)", "# ##0,00" ) NEXT
|
|
|
|
| Администратор
|
Пост N: 3518
Зарегистрирован: 23.05.05
|
|
Отправлено: 09.12.16 09:51. Заголовок: Оставлю здесь ссылку..
|
|
|
|
| постоянный участник
|
Пост N: 5245
Зарегистрирован: 12.09.06
|
|
Отправлено: 14.12.16 14:24. Заголовок: По просьбе желающих ..
По просьбе желающих выложил готовые примеры у Григория на сайте - http://hmgextended.com/applications.html Преобразование DBF в DOC через объект ОЛЕ в МиниГуи / Convert DBF to DOC via the OLE object in MiniGui Преобразование DBF в XLS через объект ОЛЕ в МиниГуи / Convert DBF to XLS via the OLE object in MiniGui
|
|
|
|
| постоянный участник
|
Пост N: 258
Зарегистрирован: 29.05.10
|
|
Отправлено: 14.12.16 15:55. Заголовок: Andrey пишет: Преоб..
Andrey пишет: цитата: | Преобразование DBF в DOC Преобразование DBF в XLS |
| Вам бы надо было все это в TsBrows вклюючить. И добавить преобразование DBF в PDF
|
|
|
|
| постоянный участник
|
Пост N: 5248
Зарегистрирован: 12.09.06
|
|
Отправлено: 15.12.16 10:55. Заголовок: ММК пишет: Вам бы н..
ММК пишет: цитата: | Вам бы надо было все это в TsBrows вклюючить. |
| Это только Григорий может.... ММК пишет: цитата: | И добавить преобразование DBF в PDF |
| Я не делал такого. Может присоединишься ? Сейчас делаю: DBF_to_PostgreSQL
|
|
|
|
| постоянный участник
|
Пост N: 261
Зарегистрирован: 29.05.10
|
|
Отправлено: 15.12.16 18:40. Заголовок: Andrey пишет: Я не ..
Andrey пишет: цитата: | Я не делал такого. Может присоединишься ? Сейчас делаю: DBF_to_PostgreSQL |
| Понимаете Андрей , когда Вам нужна помощь при разработке какой-то задачи - понимаю. Но зачем заниматься Минигуи если все это есть в FW ? Какой смысл? :)
|
|
|
|
| постоянный участник
|
Пост N: 5250
Зарегистрирован: 12.09.06
|
|
Отправлено: 15.12.16 22:11. Заголовок: ММК пишет: Но зачем..
ММК пишет: цитата: | Но зачем заниматься Минигуи если все это есть в FW ? Какой смысл? |
| Не нашел я что-то вариант DBF в DOC в FW... DBF в PostgreSQL тоже нет в FW... Или есть ? На МиниГуи это уже работает, правда привыкнуть надо к PostgreSQL. FW платный продукт, покупать нужно, осваивать тоже нужно... А МиниГуи бесплатен, правда время много потратил на освоение, но чтобы уходить на другую платформу тоже придётся тратить время. Да и подсказки Григория, и других форумчан тоже много дают. На МиниГуи классные примеры получаются... Да и с терминалки мигрировать в МиниГуи возможно, чем и занимаюсь. FW тоже хороший продукт, смотрел в своё время, но подкупил МиниГуи с русскоязычной поддержкой.
|
|
|
|
| Администратор
|
Пост N: 3519
Зарегистрирован: 23.05.05
|
|
Отправлено: 16.12.16 08:43. Заголовок: Как-то здесь все в к..
Как-то здесь все в кучу намешано. Есть харбор с библиотекой hbwin, которая позволяет выгружать документы в word/excel посредством механизма ole. Пример использования этого механизма можно сделать с использованием интерфейса хоть fw/hmg/hwgui, хоть консольного. Консольный пример даже будет предпочтительнее, так как в нем не будет ничего лишнего. Надо выдать на экран какое-то окно с кнопочкой, вот и вся функция fw или hmg Окно с кнопочкой можно сделать красивым, но эта красота никак не связана с выгрузкой таблицы в word. Вот если для класса tsbrowse hmg добавить метод выгрузки в word аналогично методу ExcelOle, тогда это станет частью hmg, и можно будет говорить и примере его использования в hmg. Тоже самое касается и конвертации в pdf или postgres.
|
|
|
|
| постоянный участник
|
Пост N: 5252
Зарегистрирован: 12.09.06
|
|
Отправлено: 16.12.16 14:58. Заголовок: Спасибо Pasha - всё ..
Спасибо Pasha - всё по полочкам поставил ! Осталось только сделать - Консольный пример или для класса tsbrowse hmg добавить метод выгрузки в word аналогично методу ExcelOle.
|
|
|
|
| |
Пост N: 6206
Зарегистрирован: 17.05.05
|
|
Отправлено: 16.12.16 15:05. Заголовок: Andrey пишет: Остал..
Andrey пишет: цитата: | Осталось только сделать - Консольный пример |
| А я сразу и писал про консоль ))
|
|
|
|
| постоянный участник
|
Пост N: 5257
Зарегистрирован: 12.09.06
|
|
Отправлено: 18.12.16 16:41. Заголовок: Всем привет ! Для ц..
Всем привет ! Для центровки строки в таблице по горизонтали использую так: oTbl:Cell(nI,nJ):Range:ParagraphFormat:Alignment:= wdAlignParagraphCenter А как сделать центровку строки по вертикали ? Пробовал так - oTbl:Cell(nI,nJ):Range:VerticalAlignment := wdCellAlignVerticalCenter - не работает....
|
|
|
|
| постоянный участник
|
Пост N: 5258
Зарегистрирован: 12.09.06
|
|
Отправлено: 18.12.16 17:15. Заголовок: Нашёл как: ..
Нашёл как: // ветикальная ценровка строки в ячейке oTbl:Cell(nI,nJ):Cells:VerticalAlignment := wdCellAlignVerticalCenter
|
|
|
|
| постоянный участник
|
Пост N: 5259
Зарегистрирован: 12.09.06
|
|
Отправлено: 19.12.16 13:05. Заголовок: Печатаю в Ворде 2010..
Печатаю в Ворде 2010 таблицу из 400 записей... Простая таблица 5 граф: ФИО, номер документа, дата документа, ну и ещё 2 номера. Сдыхает Ворд, и закрывается программа, таблицу не доделывает... Пишет что слишком много ошибок при проверки правописания... Как программно отключить проверку правописания в Ворде ?
|
|
|
|
| |
Пост N: 6216
Зарегистрирован: 17.05.05
|
|
Отправлено: 19.12.16 13:07. Заголовок: wdApp.Options.CheckS..
wdApp.Options.CheckSpellingAsYouType = False
|
|
|
|
| постоянный участник
|
Пост N: 266
Зарегистрирован: 29.05.10
|
|
Отправлено: 19.12.16 14:20. Заголовок: Уже достаточно давн..
Уже достаточно давно пользуюсь вот таким классом - https://cloud.mail.ru/public/8Xve/UTv9YCg65/RTFTEKST.7z Здесь исходники и примеры. Написан для FW поэтому подойдет для минигуи. Удобно и просто формировать отчеты, на выходя файл RTF что позволяет не заморачиваться версией офиса.
|
|
|
|
| постоянный участник
|
Пост N: 5261
Зарегистрирован: 12.09.06
|
|
Отправлено: 19.12.16 14:28. Заголовок: Dima пишет: wdApp.O..
Dima пишет: цитата: | wdApp.Options.CheckSpellingAsYouType = False |
| А как для Харбора это сделать ?
|
|
|
|
| |
Пост N: 6217
Зарегистрирован: 17.05.05
|
|
Отправлено: 19.12.16 14:39. Заголовок: Andrey пишет: А как..
Andrey пишет: цитата: | А как для Харбора это сделать ? |
| А поиграться... oWord:Options:CheckSpellingAsYouType:= .F.
|
|
|
|
| постоянный участник
|
Пост N: 267
Зарегистрирован: 29.05.10
|
|
Отправлено: 19.12.16 15:51. Заголовок: Andrey пишет: Остал..
Andrey пишет: цитата: | Осталось только сделать - Консольный пример или для класса tsbrowse hmg добавить метод выгрузки в word аналогично методу ExcelOle. |
| Совершенно правильно. Сделать консольный пример , потом добавить все это в TsBrows, потом туда же добавить конвертацию в PDF и другие возможности, потом сделать так ,что бы бровс нормально работал с базами SQL и т.д. и т.п. ... И таких вопросов много не только на уровне бровса. Другими словами нужно сделать инструмент с помощью которого любой мог бы писать пр-мы ,а не делать из крестовидной отвертки плоскую ,что бы прикрутить костылик . Andrey пишет: цитата: | Не нашел я что-то вариант DBF в DOC в FW... DBF в PostgreSQL тоже нет в FW... |
| Думаю Андрей Вы искали, но Вас кто-то отвлек . В бровсе есть возможность формировать таблицы различной конфигурации, формирования филтров ( все встроенно , придумывать не надо ) .... А дальше - Все эти возможности уже включены в бровс METHOD ToWord( bProgress, aCols, nTableFormat, nOrientation ) METHOD ToHTML( cHtmlFile, [lShow := .t.] ) --> Saved cHtmlFile with full path METHOD Report( cTitle, lPreview, lModal, bSetUp, aGroupBy, cPDF ) // PDF METHOD ToExcel( bProgress, nGroupBy, aCols, lShow ) Включая картинки , с группами, можно выгружать в ексел .. А можно формировать бровс не из DBF, а прямо из екселя. Или в бровсе работать с текстом. Можно с SQL. Это ADORDD 13) What SQL engines can I use ? ADS ACCESS ANYWHERE DBASE POSTGRE FIREBIRD FOXPRO INFORMIX MSSQL MYSQL ORACLE POSTGRE SQLITE But others can be easily added to be supported. Кстати в бровсе можно работать и с таким синтаксисом - cSql := ; "SELECT COUNT(*) AS EMPLOYEES, SUM(SALARY) AS TOTSALARY FROM CUSTOMER" Все. Надо останавливаться :)) Тут столько возможностей ,что хоть отдельную тему создавай. Даже самому стало интересно :) Andrey пишет: цитата: | FW платный продукт, покупать нужно, осваивать тоже нужно... |
| Да, осваивать нужно :(( Действительно FW платный ,но с учетом потраченного времени и сил на решение давно решенных вопросов МиниГуи обходится дороже.
|
|
|
|
| |
Пост N: 17
Зарегистрирован: 07.02.13
|
|
Отправлено: 19.12.16 16:12. Заголовок: ММК пишет: Все. Над..
|
|
|
|
| постоянный участник
|
Пост N: 5262
Зарегистрирован: 12.09.06
|
|
Отправлено: 19.12.16 19:44. Заголовок: ММК пишет: Да, осва..
ММК пишет: цитата: | Да, осваивать нужно :(( Действительно FW платный ,но с учетом потраченного времени и сил на решение давно решенных вопросов МиниГуи обходится дороже. |
| Не знаю сейчас как FW, но пока МиниГуи менять не согласен. Ещё свою большую систему не переделал на него ! 2 менюшки осталось переделать... Надеюсь в след.году доделаю.... ММК пишет: цитата: | METHOD ToExcel( bProgress, nGroupBy, aCols, lShow ) Включая картинки , с группами, можно выгружать в ексел .. |
| Пробовал использовать - что-то не сложилось. Нужно тоже самостоятельно где-то хранить высоту шапки, строк и т.д. для Экселя. Покрутил и бросил... Да и не всегда нужно строить бровс, а потом выводить через Эксель. Проще сделать самому. Сделал из-за этого свой пример DBF_to_XLS
|
|
|
|
| постоянный участник
|
Пост N: 5267
Зарегистрирован: 12.09.06
|
|
Отправлено: 19.12.16 23:06. Заголовок: // ветикал..
// ветикальная ценровка строки в ячейке oTbl:Cell(nI,nJ):Cells:VerticalAlignment := wdCellAlignVerticalCenter Вот такая конструкция в Ворде 2003 работает, а в 2010 нет. Как можно модифицировать этот код для 2010 и выше ?
|
|
|
|
| постоянный участник
|
Пост N: 5268
Зарегистрирован: 12.09.06
|
|
Отправлено: 20.12.16 14:14. Заголовок: Я так понял, что офи..
Я так понял, что офисы работают по разному ? У заказчика одно, а у себя ставишь как у заказчика офис - ошибка такая же не получается...
|
|
|
|
| постоянный участник
|
Пост N: 638
Зарегистрирован: 13.10.05
|
|
Отправлено: 20.12.16 14:49. Заголовок: ММК Да, осваивать ну..
ММК цитата: | Да, осваивать нужно :(( Действительно FW платный |
| К сожалению отсутствие Визуального дизайнера сводит все эти плюсы к нулю (для меня).
|
|
|
|
| постоянный участник
|
Пост N: 5269
Зарегистрирован: 12.09.06
|
|
Отправлено: 20.12.16 15:08. Заголовок: Vlad04 пишет: К сож..
Vlad04 пишет: цитата: | К сожалению отсутствие Визуального дизайнера сводит все эти плюсы к нулю (для меня). |
| Я тоже с этим согласен.
|
|
|
|
| постоянный участник
|
Пост N: 268
Зарегистрирован: 29.05.10
|
|
Отправлено: 20.12.16 19:19. Заголовок: Andrey пишет: Я тож..
Andrey пишет: И Вы тоже... Один раз Вы уже разыгривали меня визуальным дизайнером для Харбора :) Vlad04 пишет: цитата: | К сожалению отсутствие Визуального дизайнера сводит все эти плюсы к нулю (для меня). |
| Ну, насчет нуля это перебор :) Тем более ,что альтернативы нет. Если не ошибаюсь мы с Вами уже как-то обсуждали этот вопрос :)) Что на сегодня - 1.можно использовать Visual Studio IDE .Все настойки для FW сделаны 2.можно использовать UEStudio и здесь все настройки есть 3.http://forums.fivetechsupport.com/viewtopic.php?f=3&t=29991&start=240 это скорее IDE , но они его постоянно дорабатывают, что-то может и будет 4.Разные Visual (включая поставку ) Они периодически всплывают и так же тихо исчезают. Но , тем не менее обновляются. Видимо с ними надо просто работать 5.Ну и на уровне "форм" и "экранов" работает наверное любой ресурсредактор. Сам использовал два. В каких-то ситуациях удобно...
|
|
|
|
| постоянный участник
|
Пост N: 5270
Зарегистрирован: 12.09.06
|
|
Отправлено: 20.12.16 20:23. Заголовок: ММК Спасибо за полны..
ММК Спасибо за полный обзор по FW ! Жалко, что такого нет для МиниГуи... Про ResHack для МиниГу у Григория спрашивал уже, не помню что он ответил...
|
|
|
|
| |
Пост N: 6220
Зарегистрирован: 17.05.05
|
|
Отправлено: 20.12.16 22:30. Заголовок: Andrey пишет: ММК ..
Andrey пишет: цитата: | ММК Спасибо за полный обзор по FW ! |
| Это далеко не полный обзор. И да , лично мне такой дизайнер не нужен , спокойно можно обойтись и без него. Михаил такого же мнения , во всяком случае Михаил из прошлого ...лет так 5 назад или более. Но на вкус и цвет как говорится.........
|
|
|
|
| |
Пост N: 335
Зарегистрирован: 03.12.08
|
|
Отправлено: 21.12.16 09:11. Заголовок: Поддержу слова Димы ..
Поддержу слова Димы . Дизайнер форм вещь хорошая , но ручками делать (лично мне) удобнее . Львиная доля времени при написании программ уходит не на написание форм , а на логику , работы с базами и т д .... Сколько той формы : поля ввода , таблицы , надписи .... : для каждого контрола всего 1-2 строки кода ....;
|
|
|
|
| постоянный участник
|
Пост N: 269
Зарегистрирован: 29.05.10
|
|
Отправлено: 21.12.16 10:13. Заголовок: Dima пишет: Михаил ..
Dima пишет: цитата: | Михаил такого же мнения , во всяком случае Михаил из прошлого ...лет так 5 назад или более. |
| Все по прежнему , Дима :)) Действительно, в этом нет особой необходимости тем более ,что в FW очень много примеров. Совсем в сложном случае можно нарисовать экран в Ресхакере. Может только настройка цветов, гамы, картинок..... Не знаю, как это правильно назвать :)) Одним словом раскрасить этот экран. Вот для этого есть пр-мы Ukoenig'а ( поиск по этому слову на форуме ) Он их регулярно выкладывает . Удобный инструмент :)) Поищите по форуму, ссылок много будет. Посмотрите просто картинки, это интересно ! http://forums.fivetechsupport.com/viewtopic.php?f=3&t=31388&hilit=ukoenig http://forums.fivetechsupport.com/viewtopic.php?f=3&t=31622&hilit=ukoenig
|
|
|
|
| |
Пост N: 6221
Зарегистрирован: 17.05.05
|
|
Отправлено: 21.12.16 10:54. Заголовок: ММК пишет: Может то..
ММК пишет: цитата: | Может только настройка цветов, гамы, картинок..... Не знаю, как это правильно назвать |
| Я делаю по простому. Снимаю скрин своей формы , гружу его в Paint и там "издеваюсь" над цветовой гаммой :) Опа , подобрал цвет , списал RGB , занес в код проги.
|
|
|
|
| постоянный участник
|
Пост N: 270
Зарегистрирован: 29.05.10
|
|
Отправлено: 21.12.16 18:06. Заголовок: Dima пишет: Опа , п..
Dima пишет: цитата: | Опа , подобрал цвет , списал RGB , занес в код проги. |
| Можно и так. Но там более конкретно. Т.е. можно , к примеру , сделать градиент и добавить картинку, сместить и т.д. Т.е. сделать все по месту. Надписи... Хотя, повторюсь, для меня это не принципиально :)) Кстати там екзешники поэтому их можно использовать и для МиниГуи
|
|
|
|
| постоянный участник
|
Пост N: 639
Зарегистрирован: 13.10.05
|
|
Отправлено: 22.12.16 20:25. Заголовок: Видел такой Дизайн..
Видел такой Дизайнер форм лет 5 назад. Но толком неработающий. Может , сейчас улучшили или совсем забросили. цитата: | Действительно, в этом нет особой необходимости |
| А в этом вы ММК , Softlog86 неправы. Платформа, претендующая на популярность, обязательно должна иметь Визуальный дизайнер или какой-то механизм создания форм.
|
|
|
|
| постоянный участник
|
Пост N: 1287
Зарегистрирован: 27.01.07
|
|
Отправлено: 22.12.16 20:33. Заголовок: Dima пишет: Я делаю..
Dima пишет: цитата: | Я делаю по простому. Снимаю скрин своей формы , гружу его в Paint и там "издеваюсь" над цветовой гаммой :) Опа , подобрал цвет , списал RGB , занес в код проги. |
| Вот http://www.nattyware.com/pixie.php еще проще)
|
|
|
Ответов - 103
, стр:
1
2
3
4
5
6
All
[только новые]
|
|