On-line: гостей 3. Всего: 3 [подробнее..]
АвторСообщение
администратор




Пост N: 2372
Зарегистрирован: 17.05.05
ссылка на сообщение  Отправлено: 21.05.12 16:52. Заголовок: Снова EXCEL (продолжение)


Ранее с Excel из Harbour ни когда не работал.
Поставили тут задачу.
У некоторых поставщиков есть определенные формы заказов.
Набраны они в Excel. Сейчас народ руками заполняет эти формы
и шлет по электронке поставщикам.
Задача сводится к тому что бы в этих формах находить
нужные коды товара и в нужной ячейке проставлять заказ.
Может ткнет кто носом с чего начать что бы не напороться на грабли.
Спасибо
Сами формы тут http://zalil.ru/33279066

Спасибо: 0 
ПрофильЦитата Ответить
Ответов - 190 , стр: 1 2 3 4 5 6 7 8 9 10 All [только новые]





Пост N: 102
Зарегистрирован: 09.09.11
ссылка на сообщение  Отправлено: 05.01.17 14:32. Заголовок: Dima вылетает по оши..


Dima
вылетает по ошибке Warning W8065 Call to function 'HB_ISNUM' with no prototype in function HB_FUN_SHOWWINDOW

вот фрагмент головного модуля...

Procedure MAIN(Shifr) //INGAZ
# Include 'Achoice.Ch'
# Include 'Inkey.Ch'
# Include 'Directry.Ch'
# Include 'Setcurs.Ch'
# Include 'Dbstruct.Ch'
# Include 'Command.Ch'
# Include 'Dbedit.Ch'
# Include 'Excel.Ch'
# Include 'Hbgtinfo.Ch'
# Include 'Dbedit.Ch'

Public Ctitle
Ctitle:='INGAZ'
C_Title=Ctitle+'.EXE'
//
SetConsoleTitle(cTitle)
hWnd := FindWindow( cTitle )
DeleteCloseButton( hWnd )

#PRAGMA BEGINDUMP
# include "Hbapi.h"
# include "Windows.h"
# include "Hbapiitm.h"
HB_FUNC( SETCONSOLETITLE )
{
hb_retl( SetConsoleTitle( hb_parc( 1 ) ) ) ;
}
HB_FUNC( FINDWINDOW )
{
hb_retnl( (LONG)FindWindow( NULL, hb_parc( 1 ) ) ) ;
}
HB_FUNC( DELETECLOSEBUTTON )
{
DeleteMenu(GetSystemMenu( (HWND)hb_parnl( 1 ), FALSE), SC_CLOSE,
MF_BYCOMMAND ) ;
DrawMenuBar( (HWND)hb_parnl( 1 ) ) ;
}
HB_FUNC_STATIC( SETFILEAPIS ) // OEM
{
SetFileApisToOEM();
}

HB_FUNC (GETFOREGROUNDWINDOW)
{
HWND hWnd = GetForegroundWindow();
hb_retnl ((LONG) hWnd);
}

HB_FUNC( BRINGWINDOWTOTOP )
{
BringWindowToTop( ( HWND ) hb_parnl( 1 ) );
}

HB_FUNC( SHOWWINDOW )
{
ShowWindow( ( HWND ) hb_parnl( 1 ), HB_ISNUM( 2 ) ? hb_parni( 2 ) : SW_SHOW );
}

HB_FUNC( SETFOCUS )
{
hb_retnl( ( LONG_PTR ) SetFocus( ( HWND ) hb_parnl( 1 ) ) );
}

HB_FUNC( SETFOREGROUNDWINDOW )
{
SetForegroundWindow( ( HWND ) hb_parnl( 1 ) );
}

#pragma ENDDUMP
//
REQUEST HB_CODEPAGE_RU866
REQUEST DBFCDX,DBFFPT
HB_SetCodePage( "RU866" )
RDDSetDefault('DBFCDX')
SetMode(25,80)




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




Пост N: 6238
Зарегистрирован: 17.05.05
ссылка на сообщение  Отправлено: 05.01.17 15:13. Заголовок: Oskar_AAA пишет: вы..


Oskar_AAA пишет:

 цитата:
вылетает по ошибке Warning W8065 Call to function 'HB_ISNUM'


Нужно смотреть какой аналог этой функции в Xharbour , я "сижу" на Harbour

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




Пост N: 3521
Зарегистрирован: 23.05.05
ссылка на сообщение  Отправлено: 05.01.17 15:36. Заголовок: ISNUM( 2 ) регистр ..


ISNUM( 2 )

регистр существенен.

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



Пост N: 103
Зарегистрирован: 09.09.11
ссылка на сообщение  Отправлено: 05.01.17 18:37. Заголовок: Коллеги, функция SE..


Коллеги, функция SETCONSOLETITLE (удаление возможности закрыть программу по "крестику") работает не зависимо от регистра..
в HbApi.h нашел
#define ISNUM( n ) ( hb_param( n, HB_IT_NUMERIC ) != NULL )

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




Пост N: 6239
Зарегистрирован: 17.05.05
ссылка на сообщение  Отправлено: 05.01.17 18:53. Заголовок: Oskar_AAA пишет: Ко..


Oskar_AAA пишет:

 цитата:
Коллеги, функция SETCONSOLETITLE (удаление возможности закрыть программу по "крестику") работает не зависимо от регистра..


Не вижу связи крестика и функции что рисует заголовок у окна. Или я вопрос не понял ?

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



Пост N: 104
Зарегистрирован: 09.09.11
ссылка на сообщение  Отправлено: 05.01.17 18:57. Заголовок: Pasha пишет: ISNUM( ..


Pasha пишет:
ISNUM( 2 )

регистр существенен.




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



Пост N: 105
Зарегистрирован: 09.09.11
ссылка на сообщение  Отправлено: 05.01.17 21:09. Заголовок: Добрый вечер, с Ваше..


Добрый вечер, с Вашей помощью вот что получилось:
В головной программе, после вывода меню на экран
Handl_Win=GetForeGroundWindow()
?Handl_Win
5178634
далее обработка БД и создание Xls файлов (43 шт)

создание из макета сводного отчета Xls с 42 листами

oExcel_S:=ToleAuto():New("Excel.Application")
oExcel_S:Workbooks:Open(Day_Excel)
oExcel_S:Set("DisplayAlerts",.F.)
oExcel_S:Visible :=.T. // ¢¨§ã «¨§ æ¨ï ᢮¤-®£® ®âç¥â 
oBook_S :=oExcel_S:ActiveWorkBook
oAs_S :=oExcel_S:ActiveSheet()
oSheet_S:=oBook_S :Sheets(1):Select()
oSheet_S:=oBook_S :Sheets(1)
oAs_S :Cells(1,15):Select()
oSheet_S:Cells(1,15):Value=Cdata // ¤ â  ®âç¥â 
oSheet_S:Cells(1,18):Value=Bom(Cdata) // ¤ â  - ç «  ¬¥áïæ 
oAs_S :Cells(1,1):Select()
//
ShowWindow(Handl_Win)
BringWindowToTop(Handl_Win)
SetFocus(Handl_Win)
?Handl_Win
5178634
wait

перехода (активации) к программе из Excel не происходит...

что сделано не так???





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




Пост N: 5284
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 05.01.17 21:52. Заголовок: Oskar_AAA пишет: пе..


Oskar_AAA пишет:

 цитата:
перехода (активации) к программе из Excel не происходит...

что сделано не так???



Найди хендл окна Excel и потом переключись на него !
Хенд у окна Excel получить просто - смотреть пример ExcelOle.prg
.... выложил готовые примеры у Григория на сайте - http://hmgextended.com/applications.html

    // окно таблицы Excel на передний план 
hWnd := oExcel:hWnd
ShowWindow( hWnd, 6 ) //SW_MAXIMIZE=3 SW_NORMAL=1 SW_MINIMIZE=6
INKEYGUI(100)
ShowWindow( hWnd, 3 ) //SW_MAXIMIZE=3 SW_NORMAL=1 SW_MINIMIZE=6
BringWindowToTop( hWnd )


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



Пост N: 106
Зарегистрирован: 09.09.11
ссылка на сообщение  Отправлено: 05.01.17 21:58. Заголовок: Andrey окно Excel и ..


Andrey
окно Excel и так является активным, мне надо его сделать видимым но не активным, т.е пусть будет на экране в фоновом режиме...
или если Хенд Excel просто получить, надо сделать окно таблицы на второй план
как?
Спасибо.
Посмотрю ссылки Григория

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




Пост N: 6240
Зарегистрирован: 17.05.05
ссылка на сообщение  Отправлено: 05.01.17 22:31. Заголовок: Oskar_AAA пишет: Sh..


Oskar_AAA пишет:

 цитата:
ShowWindow(Handl_Win)


Тут имеет значение 2 параметр если не ошибаюсь.
Андрей уже показал.
У Вас его нет совсем.

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



Пост N: 107
Зарегистрирован: 09.09.11
ссылка на сообщение  Отправлено: 05.01.17 22:57. Заголовок: поставил из из его м..


поставил из из его модуля
hWnd := oExcel_S:hWnd
ShowWindow( hWnd, 6 ) //SW_MAXIMIZE=3 SW_NORMAL=1 SW_MINIMIZE=6

окно Excel стало маленьким, но осталось на переднем плане, как его сделать на ВТОРОМ плане?


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



Пост N: 490
Зарегистрирован: 17.06.10
ссылка на сообщение  Отправлено: 05.01.17 23:13. Заголовок: Поменять Z-последова..


Поменять Z-последовательность окна можно через SetWindowPos, а проще ShowWindow
другого-какого окна вот Excel и уйдет в фон. Можно свое окно посадить на передний план

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



Пост N: 108
Зарегистрирован: 09.09.11
ссылка на сообщение  Отправлено: 05.01.17 23:29. Заголовок: FIL Как свое окно СН..


FIL
Как свое окно СНОВА посадить на Передний план (вычислил Хедлы по своей программе и Excel). но :
в головном модуле:
Askar_Win=GetForeGroundWindow()


hWnd := oExcel_S:hWnd
*ShowWindow(hWnd,6) //SW_MAXIMIZE=3 SW_NORMAL=1 SW_MINIMIZE=6
ShowWindow(hWnd,3) //SW_MAXIMIZE=3 SW_NORMAL=1 SW_MINIMIZE=6
//
ShowWindow(Askar_Win,3) //SW_MAXIMIZE=3 SW_NORMAL=1 SW_MINIMIZE=6
BringWindowToTop(Askar_Win)

на передний план сове окно не возвращается..

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



Пост N: 491
Зарегистрирован: 17.06.10
ссылка на сообщение  Отправлено: 05.01.17 23:42. Заголовок: SetWindowPos(hWnd, ..


SetWindowPos(hWnd, -1, 0,0,0,0,3)



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




Пост N: 6241
Зарегистрирован: 17.05.05
ссылка на сообщение  Отправлено: 06.01.17 10:59. Заголовок: Oskar_AAA А если та..


Oskar_AAA
А если так
 
if isiconic(Askar_Win)
SetForeGroundWindow(Askar_Win)
endif
ShowWindow(Askar_Win, 9) //SW_MAXIMIZE=3 SW_NORMAL=1 SW_MINIMIZE=6 RESTORE=9
BringWindowToTop(Askar_Win)



Задача под каким терминалом собрана ?
Под GTWVT у меня такая связка работает.

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



Пост N: 109
Зарегистрирован: 09.09.11
ссылка на сообщение  Отправлено: 06.01.17 11:02. Заголовок: Dima попробуем, рахм..


Dima
попробуем, рахмат...
программа xHarbour - консольный 25 х 80,


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



Пост N: 110
Зарегистрирован: 09.09.11
ссылка на сообщение  Отправлено: 06.01.17 12:58. Заголовок: Dima где взять функ..


Dima
где взять функцию Isconic()?
if isiconic(Askar_Win) ///

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




Пост N: 5285
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 06.01.17 13:41. Заголовок: Oskar_AAA пишет: гд..


Oskar_AAA пишет:

 цитата:
где взять функцию Isconic()?



Смотри в этой ветке Пост N: 5282
HB_FUNC( ISICONIC )

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



Пост N: 111
Зарегистрирован: 09.09.11
ссылка на сообщение  Отправлено: 06.01.17 13:50. Заголовок: ok..


ok

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




Пост N: 6242
Зарегистрирован: 17.05.05
ссылка на сообщение  Отправлено: 06.01.17 16:25. Заголовок: Oskar_AAA Наваял пр..


Oskar_AAA
Наваял простой пример на Harbour , терминал STD.
Запускаем пример и после куда то переключаемся. Через 10 секунд , окно примера появляется ,
но окно фокус ввода не получает , даже если и указать Setfocus(Askar_Win).
Но если собрать под терминалом GTWVT , добавив REQUEST HB_GT_WVT_DEFAULT
то все работает , как я выше и писал.

PS
Может Паша или Пётр чего подскажут

Скрытый текст



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

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