| Автор | Сообщение |
|
|
| |
Пост N: 2372
Зарегистрирован: 17.05.05
|
|
Отправлено: 21.05.12 16:52. Заголовок: Снова EXCEL (продолжение)
Ранее с Excel из Harbour ни когда не работал. Поставили тут задачу. У некоторых поставщиков есть определенные формы заказов. Набраны они в Excel. Сейчас народ руками заполняет эти формы и шлет по электронке поставщикам. Задача сводится к тому что бы в этих формах находить нужные коды товара и в нужной ячейке проставлять заказ. Может ткнет кто носом с чего начать что бы не напороться на грабли. Спасибо Сами формы тут http://zalil.ru/33279066
|
 |

|
|
Ответов - 130
, стр:
1
2
3
4
5
6
7
All
[только новые]
|
|
|
|
| |
Пост N: 8299
Зарегистрирован: 17.05.05
|
|
Отправлено: 22.05.26 18:18. Заголовок: Softlog86 пишет: а ..
Softlog86 пишет: | цитата: | а как вернуть назад реагирование на ESC ? |
| oExcel:Application:OnKey( "{ESC}")
|
 |

|
|
|
| |
Пост N: 8300
Зарегистрирован: 17.05.05
|
|
Отправлено: 22.05.26 18:31. Заголовок: Softlog86 пишет: Вс..
Softlog86 пишет: | цитата: | Встречный вопрос - и чтоб нельзя было закрыть Эксель по крестику на окне ? (он то виден ) - или вообще убрать там и Minimize/Maximize |
| интересно как пользователь тогда завершит работу окна Excel ? 
|
 |

|
|
|
| |
Пост N: 8302
Зарегистрирован: 17.05.05
|
|
Отправлено: 22.05.26 19:00. Заголовок: насчет крестика копн..
|
 |

|
|
|
| |
Пост N: 418
Зарегистрирован: 03.12.08
|
|
Отправлено: 26.05.26 13:12. Заголовок: Вдогонку . Дайте син..
Вдогонку . Дайте синтаксис как в объекте oEXCEL (лист oWSheet) : 1) узнать адрес активной ячейки nRow , nCOL 2) установить активной ячейку c координатами nROW , nCOL 3) выделение всей строки nROW 4) выделение всего столбца nCOL 5) выделение определенной ячейки nROW , nCOL идея - в своей программе меняя координаты - на листе документа тут же отображать (выделять) ячейку с этими координатами .
|
 |

|
|
|
| |
Пост N: 8318
Зарегистрирован: 17.05.05
|
|
Отправлено: 26.05.26 13:47. Заголовок: 1. if hb_isobjec..
1. if hb_isobject(oExcel:ActiveCell) ? oExcel:ActiveCell:Row ? oExcel:ActiveCell:Column ? oExcel:ActiveCell:Value endif 2. Возможно так oSheet:Cells( 2, 1 ):Activate() 5. oSheet:Cells( 2, 1 ):select() Дальше сам... Спроси ИИ в гугл
|
 |

|
|
|
| |
Пост N: 8319
Зарегистрирован: 17.05.05
|
|
Отправлено: 26.05.26 16:42. Заголовок: по поводу 3 и 4 нужн..
по поводу 3 и 4 нужно вычислить сколько столбцов и колонок используется в отчете a:=oSheet:UsedRange:Rows:Count b:=oSheet:UsedRange:Columns:Count а далее имея эти значения юзаем Range и Select
|
 |

|
|
|
| |
Пост N: 419
Зарегистрирован: 03.12.08
|
|
Отправлено: 26.05.26 20:00. Заголовок: oExcel:ActiveCell:En..
oExcel:ActiveCell:EntireRow:Select() Но , что-то не выделяет ..... или слепой я А не , выделяет . Просто у меня сразу фокус возвращается из Экселя в программу и не видно рамочку :) как то нужно придумать чтоб чётче выделялось ... но не цветом заливки ячеек . тот файл нельзя трогать . только смотреть . ИИ помог : ActiveCell:EntireColumn:Interior:Color = ActiveCell:EntireRow:Interior:Color =
|
 |

|
|
|
| |
Пост N: 8320
Зарегистрирован: 17.05.05
|
|
Отправлено: 26.05.26 20:23. Заголовок: Softlog86 пишет: не..
Softlog86 пишет: сделай рамочку цветом или еще как ,но она останется там жить... проще Select ,раз файл трогать нельзя...возможно есть что то другое, не копал
|
 |

|
|
|
| |
Пост N: 8321
Зарегистрирован: 17.05.05
|
|
Отправлено: 26.05.26 20:27. Заголовок: Softlog86 пишет: Пр..
Softlog86 пишет: | цитата: | | Просто у меня сразу фокус возвращается из Экселя в программу и не видно рамочку :) |
| сделай Showexcel(oExcel) Func Showexcel(ex) local hWnd hWnd := Ex:hWnd ShowWindow(hWnd, 3) //SW_MAXIMIZE=3 SW_NORMAL=1 SW_MINIMIZE=6 BringWindowToTop(hWnd) return nil #pragma BEGINDUMP #include <windows.h> #include <hbapi.h> #include "hbapiitm.h" HB_FUNC( BRINGWINDOWTOTOP ) { BringWindowToTop( ( HWND ) hb_parnl( 1 ) ); } #pragma ENDDUMP
|
 |

|
|
|
| |
Пост N: 8322
Зарегистрирован: 17.05.05
|
|
Отправлено: 26.05.26 20:42. Заголовок: Softlog86 пишет: ИИ..
Softlog86 пишет: вот и чудно 
|
 |

|
|
|
| |
Пост N: 8323
Зарегистрирован: 17.05.05
|
|
Отправлено: 27.05.26 08:14. Заголовок: Softlog86 пишет: т..
Softlog86 пишет: | цитата: | | тот файл нельзя трогать . только смотреть |
| поставь пароль на лист и все oSheet:Protect("Harbour:)")
|
 |

|
|
|
|
|
| |
Пост N: 420
Зарегистрирован: 03.12.08
|
|
Отправлено: 27.05.26 11:05. Заголовок: Dima пишет: поставь..
Dima пишет: | цитата: | поставь пароль на лист и все oSheet:Protect("Harbour:)") |
| Разумеется , я так и сделал :) Теперь новая идея :) Как организовать показ своего окошка сообщения при открытии файла .XLS ? Я туда хочу поместить информацию , например легенду с указанием цвета ячеек , соответствующих определенным свойствам : "не найдено" , "изменено" , "новое" и т д .... на вскидку - есть функция MsgBox в VBA (Excel) . (только не могу пока найти правильный синтаксис для вызова этой функции ....) Ну или подскажите другой способ/идею как это организовать . Всем хорошего дня !
|
 |

|
|
|
| |
Пост N: 8324
Зарегистрирован: 17.05.05
|
|
Отправлено: 27.05.26 12:32. Заголовок: окошко можно сделать..
окошко можно сделать в Harbour wapi_MessageBoxTimeOut а так танцы с бубном на счет Msgbox и подобных через вызовы типа oExcel:Run( "Evaluate"... oExcel:Evaluate(.. oExcel:ExecuteExcel4Macro(.. ни к чему не привели кнопку например сделать можно и на ней чего написать...далее не копал так как не надо было ЗЫ Еще вариант показа contrib\hbwin\tests\dlg.prg
|
 |

|
|
|
| |
Пост N: 8325
Зарегистрирован: 17.05.05
|
|
Отправлено: 29.05.26 20:17. Заголовок: Softlog86 как дела ..
Softlog86 как дела ? 
|
 |

|
|
|
| |
Пост N: 388
Зарегистрирован: 05.10.06
|
|
Отправлено: 01.06.26 10:03. Заголовок: Softlog86 пишет: Ну..
Softlog86 пишет: | цитата: | Ну или подскажите другой способ/идею как это организовать . |
| есть встроенные события при открытии книги или активации листа, погугли это стандартные вещи... Пример кода: Private Sub Workbook_Open() Application.WindowState = xlMaximized End Sub
|
 |

|
|
|
| |
Пост N: 8326
Зарегистрирован: 17.05.05
|
|
Отправлено: 01.06.26 13:40. Заголовок: MIKHAIL Покажешь ка..
MIKHAIL Покажешь как использовать подобный код в Harbour ? Я так понимаю через вызов макроса.... Как то игрался и ни чего не получилось.
|
 |

|
|
|
| |
Пост N: 389
Зарегистрирован: 05.10.06
|
|
Отправлено: 01.06.26 16:30. Заголовок: Dima пишет: Покажеш..
Dima пишет: | цитата: | | Покажешь как использовать подобный код в Harbour ? |
| Ну на сколько я понимаю, это внутренние события Excel, они происходят при определенных действиях и выполняются например, как в примере ранее, при открытии книги или иных стандартных событиях..., они хранятся в VBA разделе книги. Как запустить какой то VBA скрипт из книги через Харбор я не разбирался, но вероятно он есть... можно посмотреть тут https://learn.microsoft.com/ru-ru/office/vba/api/Excel.Application.Run У меня был опыт по написанию VBA скриптов, а данные предварительно я готовил в Харбуре, и пользователь работая с книгой, получал какой то интерактив, например скачивал и открывал картинки с сайта, масштабировал их, получал онлайн данные для тех данных что есть в таблице и обрабатывал их каким то образом, вообще VBA дает хороший простор для фантазии, единственное что ограничивает распространение таких проектов широкому кругу пользователей - это отсутствие доверенного сертификата на свои проекты...
|
 |

|
|
|
| |
Пост N: 390
Зарегистрирован: 05.10.06
|
|
Отправлено: 01.06.26 17:05. Заголовок: Dima бегло глянул, п..
Dima бегло глянул, пишут что это интерфейсные события, поэтому напрямую их вызвать нельзя, они сами сработают когда ты программно создашь такое действие, например откроешь книгу или активируешь лист, смотря какое событие требуется... Формализуй задачу, что бы было понятней, чего добиться нужно... Я помню как то ранее ты интересовался как отправлять заказы от разных клиентов тебе в базу, это можно прямо из интерфейса Excel сделать, интерактивно, по каждой позиции, еще и доп информацию получать из базы если она нужна ...
|
 |

|
|
|
| |
Пост N: 8327
Зарегистрирован: 17.05.05
|
|
Отправлено: 01.06.26 17:10. Заголовок: MIKHAIL пишет: Appl..
MIKHAIL пишет: | цитата: | | Application.WindowState = xlMaximized |
| сразу в Harbour oExcel:WindowState :=xlMaximized //-4137
|
 |

|
|
|
| |
Пост N: 8328
Зарегистрирован: 17.05.05
|
|
Отправлено: 01.06.26 17:14. Заголовок: MIKHAIL пишет: Форм..
MIKHAIL пишет: | цитата: | | Формализуй задачу, что бы было понятней, чего добиться нужно... |
| Смотри, создал средствами Harbour кнопку в Excel. Далее надо повесить некую процедуру на нажатие кнопки , допустим это будет некий Alert или Msg. Я было пытался подгрузить макрос такой из строки...но сколько не бился ни чего не получилось и бросил это дело
|
 |

|
|
Ответов - 130
, стр:
1
2
3
4
5
6
7
All
[только новые]
|
|