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




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


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

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





Пост N: 513
Зарегистрирован: 17.06.10
ссылка на сообщение  Отправлено: 02.06.17 11:25. Заголовок: Из своей проги откры..


Из своей проги открываю файл Excel. В этом файле есть кнопка которая активирует макрос.
Макрос должен посылать сообщение - PostMessage(чего нибудь) моей проге и закрывть Excel. Не писал ли кто похожее ?

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


Пост N: 1498
Зарегистрирован: 09.10.06
ссылка на сообщение  Отправлено: 02.06.17 14:57. Заголовок: fil пишет: Не писал..


fil пишет:

 цитата:
Не писал ли кто похожее ?



Не писал, но не вижу на каком этапе могут возникнуть трудности: нажать кнопку (выполнить макрос), послать сообщение, закрыть Excel?

Добавляйте описание WinAPI функций, что-то типа

 цитата:

Public Declare Function SendMessage Lib "user32" Alias "SendMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, lParam As Any) As Long

Public Declare Function FindWindow Lib "user32" Alias "FindWindowA" (ByVal lpClassName As String, ByVal lpWindowName As String) As Long



и вперед.

UPD: наверное вам пригодится RegisterWindowMessage.

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



Пост N: 514
Зарегистрирован: 17.06.10
ссылка на сообщение  Отправлено: 02.06.17 15:13. Заголовок: Не писал, но не вижу..



 цитата:
Не писал, но не вижу на каком этапе могут возникнуть трудности



Да ни на каком, написал уже. Думал, вдруг кто халяву подкинет

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


Пост N: 1499
Зарегистрирован: 09.10.06
ссылка на сообщение  Отправлено: 02.06.17 15:17. Заголовок: fil пишет: Думал, ..


fil пишет:

 цитата:
Думал, вдруг кто халяву подкинет




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



Пост N: 516
Зарегистрирован: 17.06.10
ссылка на сообщение  Отправлено: 05.06.17 18:58. Заголовок: Динамическая погрузка макросов


Можно ли программно подгрузить в книгу макрос из внешнего*.bas файла ?

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




Пост N: 6453
Зарегистрирован: 17.05.05
ссылка на сообщение  Отправлено: 17.06.17 09:16. Заголовок: Заполняю ячейку след..


Заполняю ячейку следующим значением
hb_dtoc(Tmp123->data_z,"DD.MM.YYYY")
NumberFormat для нее поставил "@" , вместо даты получил цифры.
Глянул как в макросе делает Excel для даты , NumberFormat там "m/d/yyyy" , тоже вставил
в проге но после этого оля упала.
Какой вид NumberFormat нужно поставить что бы и оля не упала и дата корректно отобразилась ?

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


Пост N: 1523
Зарегистрирован: 09.10.06
ссылка на сообщение  Отправлено: 17.06.17 10:13. Заголовок: Dima пишет: Заполня..


Dima пишет:

 цитата:
Заполняю ячейку следующим значением
hb_dtoc(Tmp123->data_z,"DD.MM.YYYY")


Попробуйте заполнять так
:Value := Date()
:Value := hb_DateTime()
:Value := Tmp123->data_z

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




Пост N: 6454
Зарегистрирован: 17.05.05
ссылка на сообщение  Отправлено: 17.06.17 12:14. Заголовок: Петр Дело в том что..


Петр
Дело в том что есть универсальная функция (моя) , обрабатывает DBF таблицу и кидает ее в EXCEL.
Данные таблицы заполняю не по ячейкам а по строкам.
То есть Value я присваиваю массив (в данном случае) вида {"17.06.2017","ИВАНОВ",45123.10}
Если после присвоения (или до) не делать NumberFormat , то все ровно.
Но понадобилось в 3 -й колонке число бить по разрядам что бы получить 45 123.10 , если этого
не сделать получаю 45123.1
Поэтому решил диапазону (RANGE) передать массив вида {"@","@","# ##0"+GET_SDECIMAL()+"00"} через
NumberFormat , все сработало за исключением вывода строки в которой дата.
Подмена "@" на "m/d/yyyy" приводит к падению оли.
Сделал пока временное решение но пришлось отказаться от заполнения диапазона в NumberFormat
и сделал по ячейкам в цикле , скорость немного конечно упадет. Массив теперь выглядит так
{NIL,"@","# ##0"+GET_SDECIMAL()+"00"} а в цикле проверка стоит , если не NIL то работаем с NumberFormat


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


Пост N: 1524
Зарегистрирован: 09.10.06
ссылка на сообщение  Отправлено: 17.06.17 13:30. Заголовок: Фрагмент кода oAS:..


Фрагмент кода

oAS:Range( "A1:C1" ):Value := {"17.06.2017","ИВАНОВ",45123.10}
oAS:Range( "A1:C1" ):NumberFormat := {"mm/dd/yyyy","@","# ##0,00"}
oAS:Range( "A1:C1" ):Select()

в Excell 2016 не приводит к падению

Можно попробовать использовать (до или после)
oAS:Columns( 3 ):NumberFormat.. или oAS:Range( "С3:C100" ):NumberFormat..

UPD.
oAS:Range( "A1:C1" ):Value := {Date(),"ИВАНОВ",45123.10} - тоже работает как просили..

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




Пост N: 6455
Зарегистрирован: 17.05.05
ссылка на сообщение  Отправлено: 17.06.17 13:45. Заголовок: Петр пишет: в Excel..


Петр пишет:

 цитата:
в Excell 2016 не приводит к падению


Возможно , у меня Excel 2000
У юзверей стоит , поэтому и у себя держу такую версию.

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



Пост N: 118
Зарегистрирован: 09.09.11
ссылка на сообщение  Отправлено: 18.06.17 10:13. Заголовок: Добрый день, формиру..


Добрый день, формирую DBF файл и выводе в Excel использую NaumberFormat только где надо разделить разряды, убрать 0, перенос текста - пока все ОК (Excel 2010 - 2016)


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




Пост N: 3566
Зарегистрирован: 23.05.05
ссылка на сообщение  Отправлено: 20.06.17 16:13. Заголовок: Как вариант: перед з..


Как вариант: перед заполнением таблицы по строкам можно установить NumberFormat для тех столбцов, для которых это надо, т.е:

oSheet:Columns( nCol1 ):NumberFormat := cFormat1
..
oSheet:Columns( nColN ):NumberFormat := cFormatN

а затем сделать цикл по строкам с их заполнением

Если есть шапка таблицы, то после форматирования всего столбца NumberFormat для шапки можно очистить, или установить другой:

oSheet:Rows('1'+':'+AllTrim(Str(nRow))):NumberFormat := ...

С точки зрения оптимизации так будет лучше всего, т.к. число вызовов NumberFormat будет минимально.


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




Пост N: 6461
Зарегистрирован: 17.05.05
ссылка на сообщение  Отправлено: 20.06.17 16:32. Заголовок: Pasha пишет: Как ва..


Pasha пишет:

 цитата:
Как вариант: перед заполнением таблицы по строкам можно установить NumberFormat для тех столбцов, для которых это надо, т.е:




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




Пост N: 3568
Зарегистрирован: 23.05.05
ссылка на сообщение  Отправлено: 21.06.17 14:54. Заголовок: Как уже отмечалось, ..


Как уже отмечалось, харбор не поддерживает создание двумерных массивов Variant, и из-за этого
в Excel не получается присвоить значение диапазону ячеек, состоящему из нескольких строк.
Приходится присваивать значение построчно, что намного медленнее. Или копировать диапазон через
буфер обмена. Это быстро, но сносит форматирование, что тоже не всегда приемлемо.

Написал функцию, которая позволяет это делать.

Ссылка на функцию с примером:

http://my-files.ru/n4n4id


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




Пост N: 6464
Зарегистрирован: 17.05.05
ссылка на сообщение  Отправлено: 21.06.17 15:04. Заголовок: Pasha пишет: Написа..


Pasha пишет:

 цитата:
Написал функцию, которая позволяет это делать.


Гениально , работает однако
Спасибо !

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





Пост N: 44
Зарегистрирован: 18.06.15
ссылка на сообщение  Отправлено: 22.06.17 08:55. Заголовок: Dima пишет: Гениаль..


Dima пишет:

 цитата:
Гениально , работает однако



у меня нет ...
http://shot.qip.ru/00U6oZ-3JqTa71XL/

чего не хватает ?

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


Пост N: 1532
Зарегистрирован: 09.10.06
ссылка на сообщение  Отправлено: 22.06.17 09:05. Заголовок: Alex_Cher пишет: че..


Alex_Cher пишет:

 цитата:
чего не хватает ?



hbwin включена в проект?

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




Пост N: 6466
Зарегистрирован: 17.05.05
ссылка на сообщение  Отправлено: 22.06.17 09:05. Заголовок: Alex_Cher пишет: че..


Alex_Cher пишет:

 цитата:
чего не хватает ?


HBWIN

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





Пост N: 45
Зарегистрирован: 18.06.15
ссылка на сообщение  Отправлено: 22.06.17 09:49. Заголовок: ... дальше больше ..


... дальше больше

http://shot.qip.ru/00U6oZ-6JqTa71XM/

надо было с С ++ начинать ...

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


Пост N: 1533
Зарегистрирован: 09.10.06
ссылка на сообщение  Отправлено: 22.06.17 10:01. Заголовок: Alex_Cher пишет: ...


Alex_Cher пишет:

 цитата:

... дальше больше



Больше чего?

В MiniGUI (последней версии) правите файл сборки
call ..\..\..\batch\compile.bat _set2a /L hbwin %1 %2 %3 %4 %5 %6 %7 %8 %9
и спокойно компилируете.


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

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