Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > C++ Builder
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 06.04.2015, 13:12   #1
SashOkSerg
mother russia
Пользователь
 
Аватар для SashOkSerg
 
Регистрация: 09.11.2012
Сообщений: 25
По умолчанию Печать

Добрый день! Помогите пожалуйста реализовать такой пример печати:



Есть поле в которое задается количество копий для печати (в моем случае три). Когда нажимаю кнопку печать, выбираю "стр 1" мне необходимо чтобы сначала распечаталась первая страница в количестве 3 копий, переворачиваю страницы, выбираю "стр 2" соответственно вторая страница также в количестве 3 копий!

P.S. двусторонняя "Товарно-транспортная накладная (ТТН)"! Когда была одна сторона тогда запускал на печать все подряд, а сейчас не знаю как быть... Хоть бери и делай отдельно каждую страницу в отдельном файле excel!
Мне все равно что вы обо мне думаете, я о вас не думаю вообще.
SashOkSerg вне форума Ответить с цитированием
Старый 06.04.2015, 13:25   #2
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
в отдельном файле excel!
Опа! Экзель? А нескромный вопрос тогда - почему в настройках принтера не желаешь указывать печать четных\нечетных страниц? Смысл писать программу, если это делается на уровне настроек принтера?
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 06.04.2015, 13:37   #3
SashOkSerg
mother russia
Пользователь
 
Аватар для SashOkSerg
 
Регистрация: 09.11.2012
Сообщений: 25
По умолчанию

Программа уже давно написана только необходимо как то выйти из этой ситуации! Попробуй научить старших людей к Excel! В Excel им не удобно править данные под разные машины + типы грузов, причин может быть море!
Мне все равно что вы обо мне думаете, я о вас не думаю вообще.
SashOkSerg вне форума Ответить с цитированием
Старый 06.04.2015, 13:57   #4
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
причин может быть море!
Это решаемо с помошью административного распоряжения )
Впрочем не важно. Хотя бы покажи код пуска на печать. Иначе с таким успехом можно посоветовать почитать описание метода PrintOut() (https://msdn.microsoft.com/ru-ru/lib....printout.aspx) для Экзеля и вызывать его из программы передав параметр ManualDuplexPrint:=true, как описано по ссылке.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 06.04.2015, 14:03   #5
SashOkSerg
mother russia
Пользователь
 
Аватар для SashOkSerg
 
Регистрация: 09.11.2012
Сообщений: 25
По умолчанию

Когда была одна страница в ТТН я передавал данные в Excel и сразу печатал... А сейчас добавили вторую страницу...

Код:
Variant App, Books, Book, Sheets, Sheet, Cells, Cell;
	try
	{
		App=CreateOleObject("Excel.Application");
	}
	catch (...)
	{
		ShowMessage("Не могу запустить сервер Microsoft Excel. Продолжение невозможно.");
		return;
	}
App.OlePropertySet("Visible",true);
Books = App.OlePropertyGet("Workbooks");

WideString path1 = GetCurrentDir()+"\\Data\\3.xlsx" ;
	Books.OleProcedure("Open",path1);

Book=Books.OlePropertyGet("Item",1);
   Sheets=Book.OlePropertyGet("Worksheets");
	 Sheet=Sheets.OlePropertyGet("Item",1);
	 Sheet.OleProcedure("Activate");

Cells=Sheet.OlePropertyGet("Cells");
Cell=Cells.OlePropertyGet("Item",193,4);
Cell.OlePropertySet("Value", WideString(CSpinEdit1->Value));

Cells=Sheet.OlePropertyGet("Cells");
Cell=Cells.OlePropertyGet("Item",194,3);
Cell.OlePropertySet("Value", WideString(ComboBox1->Text.c_str()));

Cells=Sheet.OlePropertyGet("Cells");
Cell=Cells.OlePropertyGet("Item",194,4);
Cell.OlePropertySet("Value", WideString(ComboBox2->Text.c_str()));

Cells=Sheet.OlePropertyGet("Cells");
Cell=Cells.OlePropertyGet("Item",18,10);
Cell.OlePropertySet("Value", WideString(Edit1->Text.c_str()));

Cells=Sheet.OlePropertyGet("Cells");
Cell=Cells.OlePropertyGet("Item",202,4);
Cell.OlePropertySet("Value", WideString(Edit2->Text.c_str()));

Cells=Sheet.OlePropertyGet("Cells");
Cell=Cells.OlePropertyGet("Item",199,4);
Cell.OlePropertySet("Value", WideString(Edit5->Text.c_str()));

Cells=Sheet.OlePropertyGet("Cells");
Cell=Cells.OlePropertyGet("Item",26,3);
Cell.OlePropertySet("Value", WideString(ComboBox3->Text.c_str()));

Cells=Sheet.OlePropertyGet("Cells");
Cell=Cells.OlePropertyGet("Item",217,4);
Cell.OlePropertySet("Value", WideString(ComboBox4->Text.c_str()));

Cells=Sheet.OlePropertyGet("Cells");
Cell=Cells.OlePropertyGet("Item",218,4);
Cell.OlePropertySet("Value", WideString(ComboBox5->Text.c_str()));

Cells=Sheet.OlePropertyGet("Cells");
Cell=Cells.OlePropertyGet("Item",200,4);
Cell.OlePropertySet("Value", DateTimePicker1->Date);

Cells=Sheet.OlePropertyGet("Cells");
Cell=Cells.OlePropertyGet("Item",195,4);
Cell.OlePropertySet("Value", WideString(Edit4->Text.c_str()));

Cells=Sheet.OlePropertyGet("Cells");
Cell=Cells.OlePropertyGet("Item",197,4);
Cell.OlePropertySet("Value", WideString(Edit3->Text.c_str()));

Cells=Sheet.OlePropertyGet("Cells");
Cell=Cells.OlePropertyGet("Item",205,4);
Cell.OlePropertySet("Value", WideString(ComboBox6->Text.c_str()));

Cells=Sheet.OlePropertyGet("Cells");
Cell=Cells.OlePropertyGet("Item",35,2);
Cell.OlePropertySet("Value", WideString(Edit6->Text.c_str()));

App.OlePropertyGet("WorkBooks", 1).OleProcedure("Save");
App.OlePropertyGet("WorkBooks", 1).OleProcedure("PrintOut");
			App.OleProcedure("Quit");
Мне все равно что вы обо мне думаете, я о вас не думаю вообще.

Последний раз редактировалось Stilet; 06.04.2015 в 14:35.
SashOkSerg вне форума Ответить с цитированием
Старый 07.04.2015, 17:10   #6
SashOkSerg
mother russia
Пользователь
 
Аватар для SashOkSerg
 
Регистрация: 09.11.2012
Сообщений: 25
По умолчанию

Как мне подружить / переписать этот кусок кода с PrintDialog ?
Мне все равно что вы обо мне думаете, я о вас не думаю вообще.
SashOkSerg вне форума Ответить с цитированием
Старый 07.04.2015, 17:17   #7
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Я может сейчас глупую идею подам, но когда-то мы страницы в экзеле разволили по листам (которые sheets). И соответственно (была тоже старая программа печати на плоттере, которая не умела печатать ничего кроме одной самой первой страницы, и переписать ее не было возможности) при печати последовательно задавали эти "листы". может и тебе так разводить? На разные "щиты" книги?
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 07.04.2015, 17:42   #8
SashOkSerg
mother russia
Пользователь
 
Аватар для SashOkSerg
 
Регистрация: 09.11.2012
Сообщений: 25
По умолчанию

Интересный способ... Возьму на заметку!!! Но остается еще одна проблема как задать сразу n-количество страниц для печати, а не жать каждый раз печать!
Мне все равно что вы обо мне думаете, я о вас не думаю вообще.
SashOkSerg вне форума Ответить с цитированием
Старый 07.04.2015, 18:29   #9
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

А это зависит от того как ты на печать подаешь.
В смысле если это метод PrintOut то там в параметрах задается кол-во копий. Ссуль выше
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 07.04.2015, 19:07   #10
SashOkSerg
mother russia
Пользователь
 
Аватар для SashOkSerg
 
Регистрация: 09.11.2012
Сообщений: 25
По умолчанию

Как их задать и что это за параметры? На одном из форумов нашел пример но он мне ничего не говорит:

Код:
int Bounds[2] = {0,-1};
vWDocument.OleFunction("PrintOut", VarArrayCreate(Bounds, 1, varVariant));
Мне все равно что вы обо мне думаете, я о вас не думаю вообще.
SashOkSerg вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Печать Газовый Microsoft Office Excel 0 22.06.2010 23:18
Печать MSD Помощь студентам 3 07.06.2010 12:48
Печать <<>>KaRaPuz<<>> Общие вопросы Delphi 3 31.05.2008 20:59
печать Илюха Общие вопросы Delphi 2 23.10.2007 21:15