Гость
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / печать ценников в windows forms / 12 сообщений из 12, страница 1 из 1
24.10.2019, 20:06
    #39881226
jeanssp
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
печать ценников в windows forms
Здравствуйте! Подскажите, как мне создать отчет с ценниками в windows forms на C# наподобие отчета в мастере наклеек в access ?
Изначально есть datagridview связанный с бд через EF. Не пойму по каким ключевым словам искать . Дайте пожалуйста ссылку или пример. Должно получиться примерно вот так.
...
Рейтинг: 0 / 0
24.10.2019, 20:10
    #39881229
fkthat
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
печать ценников в windows forms
Можно вот это , например, использовать.
...
Рейтинг: 0 / 0
25.10.2019, 11:01
    #39881407
Worobjoff
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
печать ценников в windows forms
Я бы это сделал через файл html и печатал бы его через браузер
Вот пример:
Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
68.
69.
70.
71.
72.
73.
74.
75.
76.
77.
78.
79.
80.
81.
82.
83.
        public Form1()
        {
            InitializeComponent();
            var t = new DataTable();
            t.Columns.Add("ID");
            t.Columns.Add("Size");
            t.Columns.Add("Brand");
            t.Columns.Add("XZ");
            t.Columns.Add("Name");
            t.Columns.Add("Price", typeof(decimal));
            t.Rows.Add("L45FFWLH", "L", "Lee", "0", "РубашкаДР", 6290M);
            t.Rows.Add("L45FFWLH", "XL", "Lee", "0", "РубашкаДР", 6290M);
            t.Rows.Add("L45FFWLH", "XXL", "Lee", "0", "РубашкаДР", 6290M);
            t.Rows.Add("L45FFWLH", "L", "Lee", "0", "РубашкаДР", 6290M);
            t.Rows.Add("L45FFWLH", "XL", "Lee", "0", "РубашкаДР", 6290M);
            t.Rows.Add("L45FFWLH", "XXL", "Lee", "0", "РубашкаДР", 6290M);
            t.Rows.Add("L45FFWLH", "XXL", "Lee", "0", "РубашкаДР", 6290M);
            t.Rows.Add("L87ARDJK", "3XL", "Lee", "0", "КурткаДЖ", 10699M);
            t.Rows.Add("L87ARDJK", "3XL", "Lee", "0", "КурткаДЖ", 10699M);
            t.Rows.Add("L87ARDJK", "5XL", "Lee", "0", "КурткаДЖ", 10699M);
            t.Rows.Add("L87ARDJK", "5XL", "Lee", "0", "КурткаДЖ", 10699M);
            string html = GetHtml(t);
            webBrowser1.DocumentText = html;
        }

        string GetHtml(DataTable t)
        {
            var sb = new StringBuilder(@"<!DOCTYPE html>

<html lang='en' xmlns='http://www.w3.org/1999/xhtml'>
<head>
    <meta charset='utf-8' />
    <title></title>
    <style>
        body > div {
            border: 1px solid black;
            float: left;
            font-family: Verdana;
            width: 150px;
            margin: 3px;
        }
            body > div > div {
                border-top: 1px solid black;
                height: 20px;
            }
    </style>
</head>
<body>
");
            foreach (DataRow row in t.Rows)
            {
                sb.Append($@"
<div>
        <table>
            <tr>
                <td>{row[0].ToString()}</td>
                <td width='50px' align='right'>{row[1].ToString()}</td>
            </tr>
            <tr>
                <td>{row[2].ToString()}</td>
                <td rowspan='2' align='right' valign='middle' style='background - color:red'>{row[3].ToString()}</td>
            </tr>
            <tr>
                <td>{row[4].ToString()}</td>
            </tr>
            <tr>
                <td><b>{((decimal)row[5]).ToString("N2")}р.</b></td>
                <td></td>
            </tr>
            <tr>
                <td></td>
                <td></td>
            </tr>
        </table>
        <!--полоска внизу-->
        <div></div>
    </div>");
            }
            sb.Append(@"
</body>
</html>");
            return sb.ToString();
        }


На форме лежит стандартный контрол WebBrowser
...
Рейтинг: 0 / 0
25.10.2019, 12:24
    #39881488
vb_sub
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
печать ценников в windows forms
Worobjoff,
а браузер будет все время спрашивать, на какой принтер отправлять печать?
...
Рейтинг: 0 / 0
25.10.2019, 12:25
    #39881490
vb_sub
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
печать ценников в windows forms
jeanssp,плользуйся генератором отчетов.
...
Рейтинг: 0 / 0
25.10.2019, 12:26
    #39881496
fkthat
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
печать ценников в windows forms
WorobjoffНа форме лежит стандартный контрол WebBrowser
Зачем делать ректальный велосипед, когда есть куча готовых репортинговых решений.
...
Рейтинг: 0 / 0
25.10.2019, 13:22
    #39881532
Worobjoff
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
печать ценников в windows forms
vb_subWorobjoff,
а браузер будет все время спрашивать, на какой принтер отправлять печать?
У меня не спрашивает, т.к. настроен принтер по умолчанию.
Печатаешь через webBrowser1.Print(); ?
...
Рейтинг: 0 / 0
25.10.2019, 13:28
    #39881541
vb_sub
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
печать ценников в windows forms
Worobjoff,
не я просто делал веб-приложение на Vue, так там никак не получается установить принтер по умолчанию, поэтому и спросил.
...
Рейтинг: 0 / 0
27.10.2019, 11:08
    #39882032
jeanssp
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
печать ценников в windows forms
WorobjoffЯ бы это сделал через файл html и печатал бы его через браузер
Вот пример:
Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
68.
69.
70.
71.
72.
73.
74.
75.
76.
77.
78.
79.
80.
81.
82.
83.
        public Form1()
        {
            InitializeComponent();
            var t = new DataTable();
            t.Columns.Add("ID");
            t.Columns.Add("Size");
            t.Columns.Add("Brand");
            t.Columns.Add("XZ");
            t.Columns.Add("Name");
            t.Columns.Add("Price", typeof(decimal));
            t.Rows.Add("L45FFWLH", "L", "Lee", "0", "РубашкаДР", 6290M);
            t.Rows.Add("L45FFWLH", "XL", "Lee", "0", "РубашкаДР", 6290M);
            t.Rows.Add("L45FFWLH", "XXL", "Lee", "0", "РубашкаДР", 6290M);
            t.Rows.Add("L45FFWLH", "L", "Lee", "0", "РубашкаДР", 6290M);
            t.Rows.Add("L45FFWLH", "XL", "Lee", "0", "РубашкаДР", 6290M);
            t.Rows.Add("L45FFWLH", "XXL", "Lee", "0", "РубашкаДР", 6290M);
            t.Rows.Add("L45FFWLH", "XXL", "Lee", "0", "РубашкаДР", 6290M);
            t.Rows.Add("L87ARDJK", "3XL", "Lee", "0", "КурткаДЖ", 10699M);
            t.Rows.Add("L87ARDJK", "3XL", "Lee", "0", "КурткаДЖ", 10699M);
            t.Rows.Add("L87ARDJK", "5XL", "Lee", "0", "КурткаДЖ", 10699M);
            t.Rows.Add("L87ARDJK", "5XL", "Lee", "0", "КурткаДЖ", 10699M);
            string html = GetHtml(t);
            webBrowser1.DocumentText = html;
        }

        string GetHtml(DataTable t)
        {
            var sb = new StringBuilder(@"<!DOCTYPE html>

<html lang='en' xmlns='http://www.w3.org/1999/xhtml'>
<head>
    <meta charset='utf-8' />
    <title></title>
    <style>
        body > div {
            border: 1px solid black;
            float: left;
            font-family: Verdana;
            width: 150px;
            margin: 3px;
        }
            body > div > div {
                border-top: 1px solid black;
                height: 20px;
            }
    </style>
</head>
<body>
");
            foreach (DataRow row in t.Rows)
            {
                sb.Append($@"
<div>
        <table>
            <tr>
                <td>{row[0].ToString()}</td>
                <td width='50px' align='right'>{row[1].ToString()}</td>
            </tr>
            <tr>
                <td>{row[2].ToString()}</td>
                <td rowspan='2' align='right' valign='middle' style='background - color:red'>{row[3].ToString()}</td>
            </tr>
            <tr>
                <td>{row[4].ToString()}</td>
            </tr>
            <tr>
                <td><b>{((decimal)row[5]).ToString("N2")}р.</b></td>
                <td></td>
            </tr>
            <tr>
                <td></td>
                <td></td>
            </tr>
        </table>
        <!--полоска внизу-->
        <div></div>
    </div>");
            }
            sb.Append(@"
</body>
</html>");
            return sb.ToString();
        }


На форме лежит стандартный контрол WebBrowser
Спасибо большое! У меня на это ума не хватит. Сейчас пытаюсь через devexpress . Там вроде есть мастер этикеток.
...
Рейтинг: 0 / 0
27.10.2019, 11:20
    #39882037
fkthat
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
печать ценников в windows forms
jeanssp,

Это трешак. Собирать ХТМЛ конкатенацией строк, захардкоженных в исходниках, с нетипизированным датасетом для хранения данных. Впрочем, для какой-нибудь самодельной говнобухгалтерии, возможно, вполне пойдет.
...
Рейтинг: 0 / 0
27.10.2019, 11:47
    #39882045
Ролг Хупин
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
печать ценников в windows forms
fkthatjeanssp,

Это трешак. Собирать ХТМЛ конкатенацией строк, захардкоженных в исходниках, с нетипизированным датасетом для хранения данных. Впрочем, для какой-нибудь самодельной говнобухгалтерии, возможно, вполне пойдет.

ручная работа всегда ценилась
...
Рейтинг: 0 / 0
28.10.2019, 10:30
    #39882205
Worobjoff
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
печать ценников в windows forms
fkthatjeanssp,

Это трешак. Собирать ХТМЛ конкатенацией строк, захардкоженных в исходниках, с нетипизированным датасетом для хранения данных. Впрочем, для какой-нибудь самодельной говнобухгалтерии, возможно, вполне пойдет.
Все что сделано на C# - говнобухгалтерия.

Потому что есть 1С
...
Рейтинг: 0 / 0
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / печать ценников в windows forms / 12 сообщений из 12, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]