コード例 #1
0
        private void печать2квитанции_работ()
        {
            //  записать();
            //          DataSet.оплатаRow uRow = (оплатаBindingSource.Current as DataRowView).Row as DataSet.оплатаRow;
            оплаты uRow = bindingSource1.Current as оплаты;

            клОплата.оплата = uRow.оплата;
            de = new domofon14Entities();

            //        domofon10.DataClasses1DataContext db1 = new DataClasses1DataContext();

            //int номерКвитанции = 0;
            //if (db1.опл_работы
            //    .Any(n => n.оплата == клОплата.оплата))
            //{
            //    номерКвитанции = db1.опл_работы
            //    .Where(n => n.оплата == клОплата.оплата)
            //    .Max(n => n.код);
            //}

            //        var yRow = db1.опл_работы
            //.Where(n => n.оплата == клОплата.оплата)
            //.GroupBy(n => n.работа1)
            //.Select(n => new { n.Key, цена = n.Max(z => z.стоимость), сумма = n.Sum(z => z.оплачено) });

            var query = de.опл_работы
                        .Where(n => n.оплата == клОплата.оплата)
                        .OrderBy(n => n.работы.порядок);

            квитанцияЛист.Clear();

            foreach (var kRow in query)
            {
                квитанция NewRow = new квитанция();
                NewRow.услуга        = kRow.работа;
                NewRow.наимен_услуги = kRow.работы.наимен.Trim();
                NewRow.прейскурант   = kRow.работы.прейскурант.Trim();
                //   NewRow.наряд = kRow.задание;
                NewRow.сумма       = kRow.стоимость;
                NewRow.материалы   = (int)kRow.ст_материалов;
                NewRow.зарплата    = (int)NewRow.сумма - NewRow.материалы;
                NewRow.фио_мастера = kRow.сотрудники.фио;
                квитанцияЛист.Add(NewRow);
                //     dsТабель1.квитанция.Rows.Add(NewRow);
            }


            Word.Application oWord = new Word.Application();

            string curDir = System.IO.Directory.GetCurrentDirectory();

            object шаблон = curDir + @"\квитанция3работы.dot";

            if (!System.IO.File.Exists(шаблон.ToString()))
            {
                MessageBox.Show("Нет файла " + шаблон.ToString());
                return;
            }

            клФирма.init();
            клФилиал.init();

            Word.Document o = oWord.Documents.Add(Template: шаблон);
            o.Bookmarks["менеджер"].Range.Text  = uRow.сотрудники.фио;
            o.Bookmarks["менеджер2"].Range.Text = uRow.сотрудники.фио;

            o.Bookmarks["дата"].Range.Text  = uRow.дата.ToLongDateString();
            o.Bookmarks["дата2"].Range.Text = uRow.дата.ToLongDateString();

            o.Bookmarks["филиал"].Range.Text          = клФилиал.наимен;
            o.Bookmarks["адрес_филиала"].Range.Text   = клФилиал.адрес.Trim();
            o.Bookmarks["телефон_филиала"].Range.Text = клФилиал.deRow.телефон.Trim();

            o.Bookmarks["филиал2"].Range.Text         = клФилиал.наимен;
            o.Bookmarks["адрес2филиала"].Range.Text   = клФилиал.адрес.Trim();
            o.Bookmarks["телефон2филиала"].Range.Text = клФилиал.deRow.телефон.Trim();


            o.Bookmarks["номер_квитанции"].Range.Text = uRow.номер.ToString();
            o.Bookmarks["номер2квитанции"].Range.Text = uRow.номер.ToString();

            o.Bookmarks["фио"].Range.Text = uRow.клиенты.фио;
            //string адрес_абонента = "ул. " + uRow.наимен_улицы.Trim()
            //    + "   д. " + uRow.номер_дома.Trim() + " "
            //    + uRow.корпус.Trim() + " кв. " + uRow.квартира.Trim();
            //if (uRow.ввод > 0)
            //{
            //    адрес_абонента += " ввод " + uRow.ввод.ToString();
            //}

            o.Bookmarks["адрес"].Range.Text = uRow.клиенты.адрес;

            o.Bookmarks["фио2"].Range.Text   = uRow.клиенты.фио;
            o.Bookmarks["адрес2"].Range.Text = uRow.клиенты.адрес;

            o.Bookmarks["наимен_фирмы"].Range.Text   = клФирма.deRow.наимен.Trim();
            o.Bookmarks["наимен2фирмы"].Range.Text   = клФирма.deRow.наимен.Trim();
            o.Bookmarks["инн"].Range.Text            = "ИНН " + клФирма.deRow.инн.Trim();
            o.Bookmarks["инн2"].Range.Text           = "ИНН " + клФирма.deRow.инн.Trim();
            o.Bookmarks["кпп"].Range.Text            = "КПП " + клФирма.deRow.код.Trim();
            o.Bookmarks["кпп2"].Range.Text           = "КПП " + клФирма.deRow.код.Trim();
            o.Bookmarks["расчетный_счет"].Range.Text = "р/с " + клФирма.deRow.р_счет.Trim();
            o.Bookmarks["расчетный2счет"].Range.Text = "р/с " + клФирма.deRow.р_счет.Trim();
            o.Bookmarks["наимен_банка"].Range.Text   = " " + клФирма.deRow.банк.Trim();
            o.Bookmarks["наимен2банка"].Range.Text   = " " + клФирма.deRow.банк.Trim();
            o.Bookmarks["город"].Range.Text          = клФирма.deRow.город.Trim();
            o.Bookmarks["город2"].Range.Text         = клФирма.deRow.город.Trim();
            o.Bookmarks["кор_счет"].Range.Text       = "к/с " + клФирма.deRow.к_счет.Trim();
            o.Bookmarks["кор2счет"].Range.Text       = "к/с " + клФирма.deRow.к_счет.Trim();
            o.Bookmarks["адрес_фирмы"].Range.Text    = клФирма.deRow.адрес.Trim();
            o.Bookmarks["адрес2фирмы"].Range.Text    = клФирма.deRow.адрес.Trim();


            int     j     = 1;
            decimal итого = 0;

            foreach (квитанция kRow in квитанцияЛист)
            {
                //   string текст1 = kRow.начало + " - " + kRow.конец + " " + kRow.год.ToString();
                j++;
                o.Tables[5].Cell(j, 1).Range.Text = kRow.наряд.ToString("0;#;#");

                o.Tables[5].Cell(j, 2).Range.Text = kRow.прейскурант;
                o.Tables[5].Cell(j, 3).Range.Text = kRow.наимен_услуги.Trim() + "  мастер " + kRow.фио_мастера.Trim();
                //  o.Tables[5].Cell(j, 4).Range.Text = kRow.материалы.ToString("0.00;#;#");
                o.Tables[5].Cell(j, 4).Range.Text = kRow.сумма.ToString("0.00;#;#");
                o.Tables[5].Rows.Add();
                итого += kRow.сумма;

                o.Tables[11].Cell(j, 1).Range.Text = kRow.наряд.ToString("0;#;#");

                o.Tables[11].Cell(j, 2).Range.Text = kRow.прейскурант;
                o.Tables[11].Cell(j, 3).Range.Text = kRow.наимен_услуги.Trim() + "  мастер " + kRow.фио_мастера.Trim();
                o.Tables[11].Cell(j, 4).Range.Text = kRow.материалы.ToString("0.00;#;#");
                o.Tables[11].Cell(j, 5).Range.Text = kRow.сумма.ToString("0.00;#;#");
                o.Tables[11].Rows.Add();
            }
            o.Tables[5].Cell(j + 1, 4).Range.Text  = итого.ToString("0.00");
            o.Tables[11].Cell(j + 1, 5).Range.Text = итого.ToString("0.00");


            клTemp.Caption            = o.ActiveWindow.Caption;
            oWord.Application.Visible = true;
        }
コード例 #2
0
        private void button5_Click(object sender, EventArgs e)
        {
            оплаты uRow = bindingSource1.Current as оплаты;

            клОплата.оплата = uRow.оплата;
            de = new domofon14Entities();

            string[] aMez = de.месяцы
                            .OrderBy(n => n.месяц)
                            .Select(n => n.наимен)
                            .ToArray();

            var услугиQuery = de.оплачено
                              .Where(n => n.оплата == клОплата.оплата)
                              .GroupBy(n => new { n.услуги, n.год, n.сумма })
                              .Select(n => new
            {
                n.Key.услуги,
                n.Key.услуги.наимен,
                n.Key.услуги.порядок,
                цена  = n.Key.сумма,
                сумма = n.Sum(p => p.сумма),
                n.Key.год,
                minMez = n.Min(p => p.месяц),
                maxMez = n.Max(p => p.месяц)
            })
                              .OrderBy(n => n.порядок);



            //dsТабель1.квитанция.Clear();
            квитанцияЛист.Clear();
            foreach (var kRow in услугиQuery)
            {
                //  dsТабель1.за_месяца.Clear();
                //           за_месяцЛист.Clear();

                //                dsТабель.квитанцияRow NewRow = dsТабель1.квитанция.NewквитанцияRow();
                квитанция NewRow = new квитанция();


                NewRow.услуга        = kRow.услуги.услуга;
                NewRow.наимен_услуги = kRow.наимен;
                NewRow.тариф         = kRow.цена;
                NewRow.месяцы        = "";
                NewRow.начало        = aMez[kRow.minMez - 1];
                if (kRow.maxMez > kRow.minMez)
                {
                    NewRow.конец = aMez[kRow.maxMez - 1];
                }
                NewRow.сумма = kRow.сумма;
                NewRow.год   = kRow.год;
                квитанцияЛист.Add(NewRow);

                //dsТабель1.квитанция.Rows.Add(NewRow);
            }


            Word.Application oWord = new Word.Application();

            string curDir = System.IO.Directory.GetCurrentDirectory();

            object шаблон = curDir + @"\квитанция.dot";

            if (!System.IO.File.Exists(шаблон.ToString()))
            {
                MessageBox.Show("Нет файла " + шаблон.ToString());
                return;
            }


            клФирма.init();
            клФилиал.init();

            Word.Document o = oWord.Documents.Add(Template: шаблон);
            //  oWord.Application.Visible = true;
            o.Bookmarks["менеджер"].Range.Text  = uRow.сотрудники.фио;
            o.Bookmarks["менеджер2"].Range.Text = uRow.сотрудники.фио;

            o.Bookmarks["дата"].Range.Text  = uRow.дата.ToLongDateString();
            o.Bookmarks["дата2"].Range.Text = uRow.дата.ToLongDateString();

            o.Bookmarks["филиал"].Range.Text          = клФилиал.наимен;
            o.Bookmarks["адрес_филиала"].Range.Text   = клФилиал.адрес.Trim();
            o.Bookmarks["телефон_филиала"].Range.Text = клФилиал.deRow.телефон.Trim();

            o.Bookmarks["филиал2"].Range.Text         = клФилиал.наимен;
            o.Bookmarks["адрес2филиала"].Range.Text   = клФилиал.адрес.Trim();
            o.Bookmarks["телефон2филиала"].Range.Text = клФилиал.deRow.телефон.Trim();


            o.Bookmarks["номер_квитанции"].Range.Text = uRow.номер.ToString();
            o.Bookmarks["номер2квитанции"].Range.Text = uRow.номер.ToString();

            o.Bookmarks["фио"].Range.Text = uRow.клиенты.фио;
            //string адрес_абонента = "ул. " + uRow.наимен_улицы.Trim()
            //    + "   д. " + uRow.номер_дома.Trim() + " "
            //    + uRow.корпус.Trim()
            //    + " кв. " + uRow.квартира.Trim();
            string адрес_абонента = uRow.клиенты.адрес;

            if (uRow.клиенты.ввод > 0)
            {
                адрес_абонента += " ввод " + uRow.клиенты.ввод.ToString();
            }

            o.Bookmarks["адрес"].Range.Text = адрес_абонента;

            o.Bookmarks["фио2"].Range.Text   = uRow.клиенты.фио;
            o.Bookmarks["адрес2"].Range.Text = адрес_абонента;

            o.Bookmarks["наимен_фирмы"].Range.Text   = клФирма.deRow.наимен.Trim();
            o.Bookmarks["наимен2фирмы"].Range.Text   = клФирма.deRow.наимен.Trim();
            o.Bookmarks["инн"].Range.Text            = "ИНН " + клФирма.deRow.инн.Trim();
            o.Bookmarks["инн2"].Range.Text           = "ИНН " + клФирма.deRow.инн.Trim();
            o.Bookmarks["кпп"].Range.Text            = "КПП " + клФирма.deRow.код.Trim();
            o.Bookmarks["кпп2"].Range.Text           = "КПП " + клФирма.deRow.код.Trim();
            o.Bookmarks["расчетный_счет"].Range.Text = "р/с " + клФирма.deRow.р_счет.Trim();
            o.Bookmarks["расчетный2счет"].Range.Text = "р/с " + клФирма.deRow.р_счет.Trim();
            o.Bookmarks["наимен_банка"].Range.Text   = " " + клФирма.deRow.банк.Trim();
            o.Bookmarks["наимен2банка"].Range.Text   = " " + клФирма.deRow.банк.Trim();
            o.Bookmarks["город"].Range.Text          = клФирма.deRow.город.Trim();
            o.Bookmarks["город2"].Range.Text         = клФирма.deRow.город.Trim();
            o.Bookmarks["кор_счет"].Range.Text       = "к/с " + клФирма.deRow.к_счет.Trim();
            o.Bookmarks["кор2счет"].Range.Text       = "к/с " + клФирма.deRow.к_счет.Trim();
            o.Bookmarks["адрес_фирмы"].Range.Text    = клФирма.deRow.адрес.Trim();
            o.Bookmarks["адрес2фирмы"].Range.Text    = клФирма.deRow.адрес.Trim();


            int     j     = 1;
            decimal итого = 0;

            foreach (квитанция kRow in квитанцияЛист)
            {
                string текст1 = kRow.начало + " - " + kRow.конец + " " + kRow.год.ToString();
                j++;
                o.Tables[5].Cell(j, 1).Range.Text = kRow.наимен_услуги;
                o.Tables[5].Cell(j, 2).Range.Text = kRow.тариф.ToString("0.00;#;#");
                o.Tables[5].Cell(j, 3).Range.Text = текст1;
                o.Tables[5].Cell(j, 4).Range.Text = kRow.сумма.ToString("0.00");
                o.Tables[5].Rows.Add();
                итого += kRow.сумма;

                o.Tables[11].Cell(j, 1).Range.Text = kRow.наимен_услуги;
                o.Tables[11].Cell(j, 2).Range.Text = kRow.тариф.ToString("0.00;#;#");
                o.Tables[11].Cell(j, 3).Range.Text = текст1;
                o.Tables[11].Cell(j, 4).Range.Text = kRow.сумма.ToString("0.00");
                o.Tables[11].Rows.Add();
            }
            o.Tables[5].Cell(j + 1, 4).Range.Text  = итого.ToString("0.00");
            o.Tables[11].Cell(j + 1, 4).Range.Text = итого.ToString("0.00");


            клTemp.Caption            = o.ActiveWindow.Caption;
            oWord.Application.Visible = true;
        }