Russian Qt Forum
Ноябрь 22, 2024, 18:12 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: [1]   Вниз
  Печать  
Автор Тема: Печать n-ценников на А4 как решить в NCReport?  (Прочитано 5561 раз)
sergun1604
Гость
« : Июнь 15, 2011, 11:25 »

Здравствуйте знатоки NCReport?
Реально ли печатать ценники в NCReport.
Суть - ценников например вмещается 8 на лист в 4 колонки и две строки.
Кто нибудь пробывал такое реализовать?
Записан
sergun1604
Гость
« Ответ #1 : Июнь 15, 2011, 11:55 »

Или хотя бы какими средствами кому удалось это решить? Вопрос трудный потому что на просторах интернета ничего по этому поводу нет. Может самопальное что нибудь можно придумать
Записан
Пантер
Administrator
Джедай : наставник для всех
*****
Offline Offline

Сообщений: 5876


Жаждущий знаний


Просмотр профиля WWW
« Ответ #2 : Июнь 15, 2011, 11:59 »

Формируй html и его печатай.
Записан

1. Qt - Qt Development Frameworks; QT - QuickTime
2. Не используйте в исходниках символы кириллицы!!!
3. Пользуйтесь тегом code при оформлении сообщений.
sergun1604
Гость
« Ответ #3 : Июнь 15, 2011, 13:21 »

Понятно тоже вариант. Правда я еще не реализовывал печать через html
Просто использую NCReport и поэтому думаю а вдруг...
Ладно тогда буду разбираться
Спасибо за совет!
Записан
sergun1604
Гость
« Ответ #4 : Июнь 15, 2011, 13:47 »

а можно узнать что лучше использовать
QTextDocument, QTableView, QWebView
для реализации такой задачи.
Записан
Пантер
Administrator
Джедай : наставник для всех
*****
Offline Offline

Сообщений: 5876


Жаждущий знаний


Просмотр профиля WWW
« Ответ #5 : Июнь 15, 2011, 13:49 »

Я формирую просто в QStringList, который потом запихиваю в QTextDocument и им печатаю.
Записан

1. Qt - Qt Development Frameworks; QT - QuickTime
2. Не используйте в исходниках символы кириллицы!!!
3. Пользуйтесь тегом code при оформлении сообщений.
sergun1604
Гость
« Ответ #6 : Июнь 15, 2011, 14:11 »

Хорошо буду пытать потом отпишу кодик в сказе о том как я печатал ценники
Записан
sergun1604
Гость
« Ответ #7 : Июнь 22, 2011, 10:58 »

Значит вот ответ ребята которые задаются тем же вопросом что и я
Я не профессионал поэтому на идеальность не претендую. Главное работает поэтому я не думаю
Я узнал список товаров которые мне надо напечатать ценники
создал форму кинул туда webview
открываю эту форму через слот передаю туда параметры
бью html следующего плана
Код:
sHtml ="<html>";
    sHtml ="<meta http-equiv=Content-Type content=text/html; charset=utf-8 />";
    sHtml+="<body>";
    sHtml+="<div align=center><table><tr><td>";
n=lst.count(); //это мои данные в стринглисте
QString sHtml;
    sHtml ="<html>";
    sHtml ="<meta http-equiv=Content-Type content=text/html; charset=utf-8 />";
    sHtml+="<body>";
    sHtml+="<div align=center><table><tr><td>";
    int x,y;
    x=0; //ячейки - ценники
    y=0; //строки
//у меня вмещаются 6 ценников на лист по 3 в строчке
sHtml+="<table align=center valign=middle cellpadding=7 border=2 cellspacing=-3 style=border-color: #000000;>";
    sHtml+="<tr>";
    for(i=0;i<n;i++)
    {
                  sHtml+="<td WIDTH=250 height=600 VALIGN=top>";
                  sHtml+="<table><tr><td ALIGN=center height=70 VALIGN=top>";
                  sHtml+="<FONT SIZE=+1>REKV<br /><b>REKV</b></font><br /><br />";
                  sHtml+="</td></tr>";
                  sHtml+="<tr><td ALIGN=center height=170>";
                  sHtml+="<FONT SIZE=+3><b>NAME</b></font>";
                  sHtml.replace(QString("NAME"), name);
                  sHtml+="</td></tr>";
                  sHtml+="<tr><td height=50>";
                  sHtml+="<BIG><b>ВЕС: VES</b></BIG><br /><br />";
                  sHtml.replace(QString("VES"), output+" гр." );
                  sHtml+="<BIG><b>ЦЕНА:</b></BIG><br /><br /><br />";
                  sHtml+="</td></tr>";
                  sHtml+="<tr><td ALIGN=center height=250>";
                  sHtml+="<font style=font-size:50pt><b><i>PRICE</i></b></font><br /><br /><br />";
                  sHtml.replace(QString("PRICE"), QString::number(pri,'f',1)+"0" );
                  sHtml+="</td></tr>";
                  sHtml+="<tr><td height=30 VALIGN=bottom>";
                  sHtml+="<FONT SIZE=-2><i>№: NUM дата: DATA</font></i></td>";
                  sHtml+="</td></tr>";
                  sHtml+="</table>";
                  sHtml+="</td>";
                  x=x+1;

                  if(x==3)
                  {
                            sHtml+="</tr>";
                            sHtml+="<tr>";
                            x=0;
                            y=y+1;

                  }
                  if(y==2)
                  {
                      sHtml+="</table>";
                      sHtml+="<br /><br />";
                      sHtml+="<table align=center valign=middle cellpadding=7 border=2 cellspacing=-3 style=border-color: #000000;>";
                      y=0;
                  }


    }

        sHtml+="</tr>";
        sHtml+="</table>";

    sHtml.replace(QString("REKV"), rekv );
    sHtml.replace(QString("NUM"), QString::number(num) );
    sHtml.replace(QString("DATA"), data );


    sHtml+="</td></tr></table></div>";
    sHtml+="</body></html>";

ui->webView->setHtml(sHtml.toAscii());


Вот и все если у когото есть светлые идеи выкладываете наверняка есть что то лучшее
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.157 секунд. Запросов: 22.