//Eseguo la stampa formattando tutti i campi e delimitando ogni tipologia di linea
        public void StampaStrForClienti(string sIDcli)
        {
            //Creo l'istanza del Report per scrivere
            cReport objcRpt = new cReport(rpt, rptPage);


            //imoisto il margine 
            mPOSdX = mMarginTop;
            mPOSdY = mMarginLeft;
            double dSize = 5;

            //Scrivo il Titolo
            double dWriteTextY = mPOSdY + dSize + 100;
            objcRpt.AddText(mPOSdX, 30, "Riepilogativo degli strumenti per il cliente", dSize, Color.Black, false);

            //Scivo l'intestazione del cliente
            WriteIntestazioneCliente(sIDcli, objcRpt, mPOSdX, mPOSdY, 0, true);

            mPOSdY += 15;
            //Carico la matrice delle tipologie di strumenti disponibili
            string[] sTipologia = null;//gestData.tipologiaStringGet();
            foreach (string sActualTipologia in sTipologia)
            {
                double sizeDati = 2.2;
                double sizeDesc = 2;
                double sizeLinee = 0.1;
                double Spazziatura = 14;
                Color colorDati = Color.Black;
                Color colorDesc = Color.Black;

                DataTable objDT = returnDataTableForLineCli(sIDcli, sActualTipologia);
                if (objDT.Rows.Count != 0)
                {
                    //Formato tutto il documento parziale.
                    mPOSdY += Spazziatura;
                    objcRpt.AddText(mPOSdX + 5, mPOSdY, sActualTipologia, 2.2, colorDesc, false);
                    //objcRpt.AddLinea(mPOSdX,mPOSdY + 2,185,0,sizeLinee,colorDesc);

                    double posTipo = mPOSdX;
                    double posMarca = posTipo + 80;
                    double posNome = posMarca + 95;
                    double posNumSerie = posNome + 95;
                    double posOmo = posNumSerie + 70;
                    double posDataSca = posOmo + 130;

                    //Titolo
                    mPOSdY += Spazziatura;
                    objcRpt.AddText(posTipo, mPOSdY, "Tipo", sizeDesc, colorDesc, false);
                    objcRpt.AddText(posMarca, mPOSdY, "Marca", sizeDesc, colorDesc, false);
                    objcRpt.AddText(posNome, mPOSdY, "Nome", sizeDesc, colorDesc, false);
                    objcRpt.AddText(posNumSerie, mPOSdY, "Num.Serie", sizeDesc, colorDesc, false);
                    objcRpt.AddText(posOmo, mPOSdY, "Omologazione", sizeDesc, colorDesc, false);
                    objcRpt.AddText(posDataSca, mPOSdY, "data scadenza", sizeDesc, colorDesc, false);
                    objcRpt.AddLineaMM(mPOSdX, mPOSdY + 2, 185, 0, sizeLinee, colorDesc);

                    //Dati
                    foreach (DataRow dr in objDT.Rows)
                    {
                        mPOSdY += Spazziatura;

                        string sTipo = dr["Tipo"].ToString();
                        objcRpt.AddText(posTipo, mPOSdY, sTipo, sizeDati, colorDati, false);
                        objcRpt.AddText(posMarca, mPOSdY, dr["Marca"].ToString(), sizeDati, colorDati, false);
                        objcRpt.AddText(posNome, mPOSdY, dr["Nome"].ToString(), sizeDati, colorDati, false);
                        objcRpt.AddText(posNumSerie, mPOSdY, dr["NumeroDiSerie"].ToString(), sizeDati, colorDati, false);
                        objcRpt.AddText(posOmo, mPOSdY, dr["Omologazione1"].ToString(), sizeDati, colorDati, false);
                        objcRpt.AddText(posDataSca, mPOSdY, Utility.setDateFormated(dr["DataScadenza"].ToString()), sizeDati, colorDati, false);

                        //Formattazioni particolari
                        if (sTipo == "Analizzatore Gas")
                        {
                            mPOSdY += Spazziatura;

                            objcRpt.AddText(posNome - 20, mPOSdY, "P.E.F.", sizeDati - 1, colorDati, false);
                            objcRpt.AddText(posNome, mPOSdY, dr["PEF"].ToString(), sizeDati, colorDati, false);
                        }
                        if (sTipo == "Prova freni")
                        {
                            mPOSdY += Spazziatura;

                            objcRpt.AddText(posNome - 25, mPOSdY, "Ser. Rulli", sizeDati - 1, colorDati, false);
                            objcRpt.AddText(posNome, mPOSdY, dr["NumSerieRulli"].ToString(), sizeDati, colorDati, false);

                            objcRpt.AddText(posNumSerie - 25, mPOSdY, "Ser. Pesa", sizeDati - 1, colorDati, false);
                            objcRpt.AddText(posNumSerie, mPOSdY, dr["NumSeriePesa"].ToString(), sizeDati, colorDati, false);
                            //Omologazione 2
                            objcRpt.AddText(posOmo - 20, mPOSdY, "Omol.2", sizeDati - 1, colorDati, false);
                            objcRpt.AddText(posOmo, mPOSdY, dr["Omologazione2"].ToString(), sizeDati, colorDati, false);

                        }
                        if (sTipo == "Fonometro")
                        {
                            mPOSdY += Spazziatura;

                            objcRpt.AddText(posNome - 30, mPOSdY, "Calibratore", sizeDati - 1, colorDati, false);
                            objcRpt.AddText(posNome, mPOSdY, dr["TipoCalibratore"].ToString(), sizeDati, colorDati, false);

                            objcRpt.AddText(posNumSerie - 35, mPOSdY, "Ser. Calibratore", sizeDati - 1, colorDati, false);
                            objcRpt.AddText(posNumSerie, mPOSdY, dr["NumSerCalibratore"].ToString(), sizeDati, colorDati, false);

                        }


                    }
                    mPOSdY += Spazziatura;
                }

            }
        }
        private void WriteIntestazioneCliente(string sIDcli, cReport objcRpt, double startX, double startY, double AddSizeToNormal, bool bViewInfo)
        {
            double sizeDati = 2.2 + AddSizeToNormal;
            double sizeDesc = 2 + AddSizeToNormal;
            double addSpazio = 0;
            if (AddSizeToNormal != 0)
                addSpazio = 15 * AddSizeToNormal;

            double Spazziatura = 14;
            Color colorDati = Color.Black;
            Color colorDesc = Color.Black;

            double Y = startY;

            string strWhere = "SELECT * FROM clienti WHERE IDCliente = " + sIDcli;
            SqlCommand cmd = new SqlCommand(strWhere, sqlCn);
            SqlDataAdapter adap = new SqlDataAdapter(cmd);
            DataTable DT = new DataTable();
            adap.Fill(DT);
            DataRow objDR = DT.Rows[0];

            startY += Spazziatura + 30;

            //Ragione Sociale
            if (bViewInfo)
                objcRpt.AddText(startX, startY, "Ragione sociale: ", sizeDesc, colorDesc, false);
            objcRpt.AddText(startX + 80 + addSpazio, startY, objDR["RagioneSoc"].ToString(), sizeDati + 0.2, colorDati, false);

            startY += Spazziatura;
            //Via
            if (bViewInfo)
                objcRpt.AddText(startX + 30, startY, "Via", sizeDesc, colorDesc, false);
            objcRpt.AddText(startX + 50 + addSpazio, startY, objDR["indirizzo"].ToString(), sizeDati, colorDati, false);

            //Località
            if (bViewInfo)
                objcRpt.AddText(startX + 200, startY, "Località", sizeDesc, colorDesc, false);
            objcRpt.AddText(startX + 240 + addSpazio, startY, objDR["localita"].ToString(), sizeDati, colorDati, false);
            startY += Spazziatura;
            //Cap
            if (bViewInfo)
                objcRpt.AddText(startX + 30, startY, "Cap", sizeDesc, colorDesc, false);
            objcRpt.AddText(startX + 50 + addSpazio, startY, objDR["CAP"].ToString(), sizeDati, colorDati, false);

            //Provincia
            if (bViewInfo)
                objcRpt.AddText(startX + 200, startY, "Provincia", sizeDesc, colorDesc, false);
            objcRpt.AddText(startX + 240 + addSpazio, startY, objDR["Provincia"].ToString(), sizeDati, colorDati, false);

            startY += Spazziatura;
            //Tel
            if (bViewInfo)
                objcRpt.AddText(startX + 30, startY, "Tel", sizeDesc, colorDesc, false);
            objcRpt.AddText(startX + 50 + addSpazio, startY, objDR["Telefono"].ToString(), sizeDati, colorDati, false);

            //Fax
            if (bViewInfo)
                objcRpt.AddText(startX + 200, startY, "Fax", sizeDesc, colorDesc, false);
            objcRpt.AddText(startX + 240 + addSpazio, startY, objDR["FAX"].ToString(), sizeDati, colorDati, false);
        }
        public void StampaModAssTecWithKM(string date, string sRespRic, bool bUrge, string sIDCli, bool bTipoAssTec
            , bool bTipoTaratur, bool bTipoConsulenza
            , bool bSedeCliente, bool bSedeRivenditore, bool bSedeLAboratorio, string sDescRichiesta
            , bool bcaricoCentroAss, bool bCaricoCliente, bool bcaricoRivenditore, bool bCaricoAltro, string sAltro
            , bool bClienteAccordoData, string dataAccordoAss, bool bClienteDeveEssereRichiamato, bool bClienteConoscePrezzi
            , bool bClienteGiaPresoAccordi, bool bClienteCiSonoTrattative, bool bClienteEInsolvente, bool bClienteHaInCorsoAzioni
            , string sResponsabileAzienda, string sKM, string sManOraria, bool bSconto, bool bAbbVisPer, bool bAbbComp, bool bOrariAM, bool bOrariPM, System.Web.UI.Page ActPage)
        {
            //Creo l'istanza del Report per scrivere
            cReport objcRpt = new cReport(rpt, rptPage);

            //imposto il margine 
            mPOSdX = mMarginTop;
            mPOSdY = mMarginLeft;

            double SizeTxt = 2.6;
            double SizeTxtInfo = 2.4;
            double SizePen = 0.5;
            //modificato da monica 4/5/05
            //preparazione Layout
            objcRpt.AddTextMM(15, 15, "Mod. PG05-7/3.00/01.03.2005", 2, Color.Black, true);
            objcRpt.AddTextMM(181, 15, "Pag. 1 di 1", 2, Color.Black, true);
            objcRpt.AddTextMM(44, 22, "MODULO CONFERMA ASSISTENZA TECNICA E/O TARATURA", 3, Color.Black, true);
            objcRpt.AddRectMM(15, 27, 180, -255, SizePen, Color.Black);
            objcRpt.AddLineaMM(102, 27, 0, -42, SizePen, Color.Black);
            objcRpt.AddLineaMM(15, 69, 180, 0, SizePen, Color.Black);

            //modificato da monica 4/5/05
            //Rivenditore
            try
            {
                string sPath = System.Configuration.ConfigurationManager.AppSettings["PathImages"].ToString() + "Logo.jpg";
                objcRpt.AddImmageMM(sPath, 20, 45, 15, 15);
            }
            catch (Exception exc)
            {
                Utility.AllertMessage(ActPage, exc.Message, "reportPdf");
            }
            objcRpt.AddTextMM(42, 35, "GRION FABRIZIO", SizeTxt, Color.Black, true);
            objcRpt.AddTextMM(42, 39, "CENTRO ASSISTENZA TECNICA", SizeTxt, Color.Black, false);
            objcRpt.AddTextMM(42, 43, "TARATURA E CONTROLLO", SizeTxt, Color.Black, false);
            objcRpt.AddTextMM(44, 53, "Viale Grado, 12", SizeTxt, Color.Black, false);
            objcRpt.AddTextMM(44, 57, "33050 PAVIA DI UDINE(UD", SizeTxt, Color.Black, false);
            objcRpt.AddTextMM(44, 61, "Tel. 0432 655292", SizeTxt, Color.Black, false);
            objcRpt.AddTextMM(44, 65, "Fax  0432 655292", SizeTxt, Color.Black, false);

            //modificato da monica 4/5/05
            //Header
            objcRpt.AddTextMM(104, 34, "Data:", SizeTxt, Color.Black, false);
            objcRpt.AddTextMM(134, 34, date, SizeTxt, Color.Black, false);
            objcRpt.AddTextMM(104, 48, "Responsabile della richiesta:", SizeTxt, Color.Black, false);
            objcRpt.AddTextMM(160, 47, sRespRic, SizeTxt, Color.Black, true);
            objcRpt.AddLineaMM(154, 48, 38, 0, SizePen, Color.Black);

            objcRpt.AddCheckBoxMM("URGENTE", bUrge, SizeTxt, Color.Black, false, 111, 62, 25);
            objcRpt.AddCheckBoxMM("NON URGENTE", !bUrge, SizeTxt, Color.Black, false, 151, 62, 30);

            //Dati Cliente
            objcRpt.AddTextMM(20, 78, "Cliente:", SizeTxt, Color.Black, false);
            objcRpt.AddLineaMM(38, 78, 150, 0, SizePen, Color.Black);

            objcRpt.AddTextMM(20, 86, "Indirizzo:", SizeTxt, Color.Black, false);
            objcRpt.AddLineaMM(38, 86, 150, 0, SizePen, Color.Black);
            objcRpt.AddLineaMM(38, 94, 110, 0, SizePen, Color.Black);
            //(Km. _________)
            objcRpt.AddTextMM(155, 94, "(Km ", SizeTxt, Color.Black, false);
            objcRpt.AddTextMM(164, 93.5, sKM, SizeTxt, Color.Black, true);
            objcRpt.AddLineaMM(164, 94, 22, 0, SizePen, Color.Black);
            objcRpt.AddTextMM(187, 94, ")", SizeTxt, Color.Black, false);

            objcRpt.AddTextMM(20, 102, "Telefono:", SizeTxt, Color.Black, false);
            objcRpt.AddLineaMM(38, 102, 50, 0, SizePen, Color.Black);

            objcRpt.AddTextMM(120, 102, "Fax:", SizeTxt, Color.Black, false);
            objcRpt.AddLineaMM(130, 102, 50, 0, SizePen, Color.Black);

            WriteIntestazioneClienteMMForModAss(sIDCli, objcRpt, 38, 77, 0, false);

            //modificato da monica 4/5/05
            //persona di riferimnto
            objcRpt.AddTextMM(20, 109, "Persona di riferimento in azienda:", SizeTxt, Color.Black, false);
            objcRpt.AddTextMM(80, 109, sResponsabileAzienda, SizeTxt, Color.Black, false);
            objcRpt.AddLineaMM(77, 109, 110, 0, SizePen, Color.Black);

            //modificato da monica 4/5/05
            //Tipo di richiesta
            objcRpt.AddTextMM(20, 117, "Tipo di richiesta:", SizeTxt, Color.Black, false);
            objcRpt.AddCheckBoxMM("Assistenza tecnica", bTipoAssTec, SizeTxt, Color.Black, false, 55, 117, 35);
            objcRpt.AddCheckBoxMM("Taratura", bTipoTaratur, SizeTxt, Color.Black, false, 104, 117, 19);
            objcRpt.AddCheckBoxMM("Consulenza/Dimostrazione", bTipoConsulenza, SizeTxt, Color.Black, false, 136, 117, 47);

            //monificato da monica 4/5/05
            //Da eseguire presso
            objcRpt.AddTextMM(20, 125, "Da eseguire presso:", SizeTxt, Color.Black, false);
            objcRpt.AddCheckBoxMM("Sede del cliente", bSedeCliente, SizeTxt, Color.Black, false, 55, 125, 35);
            objcRpt.AddCheckBoxMM("Sede del rivenditore", bSedeRivenditore, SizeTxt, Color.Black, false, 104, 125, 38);
            objcRpt.AddCheckBoxMM("Laboratorio", bSedeLAboratorio, SizeTxt, Color.Black, false, 156, 125, 27);

            //monificato da monica 4/5/05
            //Descrizione richiesta
            objcRpt.AddTextMM(20, 133, "Descrizione richiesta ( per tarature allegare alla presente elenco dispositivi da controllare):", SizeTxt, Color.Black, false);

            double dSpace = 138;
            int CharLenght = 100;
            for (int i = 0; i < 6; i++)
            {

                if (sDescRichiesta.Length > CharLenght)
                {
                    objcRpt.AddTextMM(22, dSpace, ReturnStringDesc(ref sDescRichiesta, CharLenght), SizeTxt, Color.Black, false);
                }
                else
                {
                    objcRpt.AddTextMM(22, dSpace, sDescRichiesta, SizeTxt, Color.Black, false);
                    i = 100;
                }
                dSpace += 6;
            }

            objcRpt.AddLineaMM(20, 139, 170, 0, SizePen, Color.Black);
            objcRpt.AddLineaMM(20, 145, 170, 0, SizePen, Color.Black);
            objcRpt.AddLineaMM(20, 151, 170, 0, SizePen, Color.Black);
            objcRpt.AddLineaMM(20, 157, 170, 0, SizePen, Color.Black);
            objcRpt.AddLineaMM(20, 163, 170, 0, SizePen, Color.Black);
            objcRpt.AddLineaMM(20, 169, 170, 0, SizePen, Color.Black);

            //monificato da monica 4/5/05
            //Intervento a carico di
            objcRpt.AddTextMM(20, 183, "Intervento a carico di:", SizeTxt, Color.Black, true);
            objcRpt.AddCheckBoxMM("Centro assistenza (in garanzia)", bcaricoCentroAss, SizeTxt, Color.Black, false, 61, 183, 57);
            objcRpt.AddCheckBoxMM("Cliente", bCaricoCliente, SizeTxt, Color.Black, false, 134, 183, 15);
            objcRpt.AddCheckBoxMM("Rivenditore", bcaricoRivenditore, SizeTxt, Color.Black, false, 61, 191, 23);
            objcRpt.AddCheckBoxMM("Altro", bCaricoAltro, SizeTxt, Color.Black, false, 105, 191, 13);
            objcRpt.AddLineaMM(124, 191, 40, 0, SizePen, Color.Black);
            objcRpt.AddTextMM(124, 191, sAltro, SizeTxt, Color.Black, false);

            //monificato da monica 4/5/05
            //Dati Aggiuntivi richiesta 

            objcRpt.AddTextMM(61, 199, "Cliente in Abbonamento:", SizeTxt, Color.Black, false);
            objcRpt.AddCheckBoxMM("Completo", bAbbVisPer, SizeTxt, Color.Black, false, 106, 199, 20);
            objcRpt.AddCheckBoxMM("Verifiche periodiche", bAbbComp, SizeTxt, Color.Black, false, 138, 199, 36);

            objcRpt.AddTextMM(20, 209, "Data di intervento prevista:", SizeTxt, Color.Black, true);
            if (bClienteAccordoData)
                objcRpt.AddTextMM(75, 209, dataAccordoAss, SizeTxt, Color.Black, true);
            else
                objcRpt.AddTextMM(75, 209, "( __/__/____ )", SizeTxt, Color.Black, true);
            objcRpt.AddTextMM(20, 213, "(salvo imprevisti e/o ritardi dovuti a forze di causa maggiore)", SizeTxtInfo, Color.Black, false);
            //modificato da monica 4/5/05	
            //Orario approssimativo
            objcRpt.AddCheckBoxMM("Mattina", bOrariAM, SizeTxt, Color.Black, false, 140, 209, 20);
            objcRpt.AddCheckBoxMM("Pomeriggio", bOrariPM, SizeTxt, Color.Black, false, 140, 214, 20);

            objcRpt.AddTextMM(20, 225, "Tariffe applicate:", SizeTxt, Color.Black, true);
            objcRpt.AddTextMM(64, 225, "Manodopera oraria (frazionabile in 1/2 ora)", SizeTxt, Color.Black, true);
            if (sManOraria == "NP")
                sManOraria = "45,00";
            objcRpt.AddTextMM(140, 225, "€  " + sManOraria + " + IVA", SizeTxt, Color.Black, true);
            objcRpt.AddTextMM(64, 232, "Contributo spese di trasferimento", SizeTxt, Color.Black, true);
            objcRpt.AddTextMM(140, 232, "€  20 + 0,50 Km + IVA *", SizeTxt, Color.Black, true);

            objcRpt.AddTextMM(64, 240, "*", SizeTxtInfo, Color.Black, false);
            objcRpt.AddTextMM(68, 240, "Fino ad un massimo di € 180,00 + IVA", SizeTxtInfo, Color.Black, false);
            objcRpt.AddTextMM(68, 244, "La distanza chilometrica e calcolata con l'ausilio di mappe stradali informatiche", SizeTxtInfo, Color.Black, false);
            objcRpt.AddTextMM(68, 248, "L'applicazione della tariffa non è subbordinata all'esito della riparazione", SizeTxtInfo, Color.Black, false);
            objcRpt.AddTextMM(68, 252, "Il contributo spese di trasferimento è applicato anche per gli interventi in garanzia", SizeTxtInfo, Color.Black, false);

            //Aggiunto da monica 4/5/05
            //Note
            objcRpt.AddTextMM(20, 265, "Note:", SizeTxtInfo, Color.Black, false);
            objcRpt.AddLineaMM(38, 265, 150, 0, SizePen, Color.Black);
            objcRpt.AddLineaMM(38, 270, 150, 0, SizePen, Color.Black);
            objcRpt.AddLineaMM(38, 275, 150, 0, SizePen, Color.Black);
        }
        public void stampaRiorganizzazioneAziendale(string sIDCli)
        {
            //Creo l'istanza del Report per scrivere
            cReport objcRpt = new cReport(rpt, rptPage);

            stampaDocumetoIntestato(objcRpt, "");


            double Spazziatura = 16;
            mMarginTop = 100;
            mMarginLeft = 45;
            //imoisto il margine 
            mPOSdX = mMarginLeft;
            mPOSdY = mMarginTop;

            double sizeDesc = 3.2;
            Color colorDati = Color.Black;
            Color colorDesc = Color.Black;
            string s = "";

            mPOSdY += Spazziatura;
            mPOSdY += Spazziatura;
            s = "Lauzacco    " + DateTime.Now.ToLongDateString();
            objcRpt.AddText(mPOSdX, mPOSdY, s, sizeDesc, colorDesc, false);
            mPOSdY += Spazziatura;
            mPOSdY += Spazziatura;

            s = "Spett.le   ";
            objcRpt.AddText(mPOSdX + 25, mPOSdY, s, sizeDesc, colorDati, true);

            //Scrivi l'intestazione del cliente
            mPOSdY += Spazziatura;
            WriteIntestazioneCliente(sIDCli, objcRpt, mPOSdX + 30, mPOSdY - 30, 1, false);

            //Oggetto
            mPOSdY += 60;
            mPOSdY += Spazziatura;
            mPOSdY += Spazziatura;
            s = "Oggetto:";
            objcRpt.AddText(mPOSdX, mPOSdY, s, sizeDesc, colorDesc, true);
            s = "Riorganizzazione aziendale";
            objcRpt.AddText(mPOSdX + 70, mPOSdY, s, sizeDesc, colorDesc, false);

            //Primo paragrafo
            mPOSdY += Spazziatura;
            mPOSdY += Spazziatura;
            s = "Come noto, l'adeguamento al protocollo MCTCNET dei centri di revisione ha causato ";
            objcRpt.AddText(mPOSdX, mPOSdY, s, sizeDesc, colorDati, false);
            mPOSdY += Spazziatura;
            s = "parecchie problematiche legate ad una serie di cause, quest'ultime spesso non imputabili";
            objcRpt.AddText(mPOSdX, mPOSdY, s, sizeDesc, colorDesc, false);
            mPOSdY += Spazziatura;
            s = "alla nostra Azienda, la quale ha profuso notevoli energie per poter concludere le";
            objcRpt.AddText(mPOSdX, mPOSdY, s, sizeDesc, colorDati, false);
            mPOSdY += Spazziatura;
            s = "operazioni in tempo sui termini previsti da Ministero che ha fissato il limite al 30 giugno";
            objcRpt.AddText(mPOSdX, mPOSdY, s, sizeDesc, colorDesc, false);
            mPOSdY += Spazziatura;
            s = "prossimo. ";
            objcRpt.AddText(mPOSdX, mPOSdY, s, sizeDesc, colorDati, false);

            //Secondo paragrafo
            mPOSdY += Spazziatura;
            mPOSdY += Spazziatura;
            s = "Dopo questa travagliata fase, abbiamo evidenziato la necessità di disciplinare le";
            objcRpt.AddText(mPOSdX, mPOSdY, s, sizeDesc, colorDesc, false);
            mPOSdY += Spazziatura;
            s = "consulenze telefoniche che impegnano i tecnici spesso già occupati presso i clienti.";
            objcRpt.AddText(mPOSdX, mPOSdY, s, sizeDesc, colorDati, false);

            //Terzo paragrafo
            mPOSdY += Spazziatura;
            mPOSdY += Spazziatura;
            s = "Pertanto si chiede la Vostra cortese collaborazione affinché venga rispettato il seguente";
            objcRpt.AddText(mPOSdX, mPOSdY, s, sizeDesc, colorDati, false);
            mPOSdY += Spazziatura;
            s = "orario d'ufficio entro il quale contattare il nostro centro di assistenza e taratura:";
            objcRpt.AddText(mPOSdX, mPOSdY, s, sizeDesc, colorDesc, false);

            //ORARI DI APERTURA
            mPOSdY += Spazziatura;
            mPOSdY += Spazziatura;
            s = "mattino:             ore  8.30   -    12.30";
            objcRpt.AddText(mPOSdX + 120, mPOSdY, s, sizeDesc, colorDati, true);
            mPOSdY += Spazziatura;
            s = "pomeriggio:      ore 13.30   -   17.30";
            objcRpt.AddText(mPOSdX + 120, mPOSdY, s, sizeDesc, colorDati, true);

            //Recapiti telefonici
            mPOSdY += Spazziatura;
            mPOSdY += Spazziatura;
            //telefono
            s = "Al seguente numero telefonico:";
            objcRpt.AddText(mPOSdX + 40, mPOSdY, s, sizeDesc, colorDati, false);
            s = "0432 -  655292";
            objcRpt.AddText(mPOSdX + 320, mPOSdY, s, sizeDesc, colorDati, true);
            //Fax
            mPOSdY += Spazziatura;

            s = "in alternativa potete mandare un fax al numero:";
            objcRpt.AddText(mPOSdX + 40, mPOSdY, s, sizeDesc, colorDesc, false);
            s = "178 - 2701158";
            objcRpt.AddText(mPOSdX + 320, mPOSdY, s, sizeDesc, colorDesc, true);

            //4° Paragrafo
            mPOSdY += Spazziatura;
            mPOSdY += Spazziatura;
            s = "o un e-mail ad uno dei seguenti indirizzi di posta elettronica:";
            objcRpt.AddText(mPOSdX, mPOSdY, s, sizeDesc, colorDesc, false);


            //Recapiti Informatici
            mPOSdY += Spazziatura;
            mPOSdY += Spazziatura;
            s = "*****@*****.**";
            objcRpt.AddText(mPOSdX + 140, mPOSdY, s, sizeDesc, colorDati, true);
            mPOSdY += Spazziatura;
            s = "*****@*****.**";
            objcRpt.AddText(mPOSdX + 140, mPOSdY, s, sizeDesc, colorDati, true);


            //5° paragrafo
            mPOSdY += Spazziatura;
            mPOSdY += Spazziatura;
            s = "In tale orario è possibile ottenere una consulenza nel caso il tecnico sia reperibile e ";
            objcRpt.AddText(mPOSdX, mPOSdY, s, sizeDesc, colorDesc, false);
            mPOSdY += Spazziatura;
            s = "disponibile ovvero lasciare un messaggio di chiamata cercando di descrivere il problema";
            objcRpt.AddText(mPOSdX, mPOSdY, s, sizeDesc, colorDati, false);
            mPOSdY += Spazziatura;
            s = "più dettagliatamente possibile. Nel caso venga ravvisata l'urgenza un tecnico vi richiamerà ";
            objcRpt.AddText(mPOSdX, mPOSdY, s, sizeDesc, colorDesc, false);
            mPOSdY += Spazziatura;
            s = "in tempi molto brevi, compatibilmente con le attività in corso.";
            objcRpt.AddText(mPOSdX, mPOSdY, s, sizeDesc, colorDati, false);
            mPOSdY += Spazziatura;
            s = "Qualora la richiesta non trovasse risposta entro tempi ragionevoli ( 1-2 giorni ) sarà cura";
            objcRpt.AddText(mPOSdX, mPOSdY, s, sizeDesc, colorDesc, false);
            mPOSdY += Spazziatura;
            s = "del cliente stesso ricontattarci";
            objcRpt.AddText(mPOSdX, mPOSdY, s, sizeDesc, colorDati, false);

            //6° paragrafo
            mPOSdY += Spazziatura;
            mPOSdY += Spazziatura;
            s = "Il ricorso ai cellulari del servizio tecnico dovrà essere limitato a casi di assoluta necessità";
            objcRpt.AddText(mPOSdX, mPOSdY, s, sizeDesc, colorDesc, false);

            //*********************************//

            objcRpt.newPage();
            //riazzero i marini
            mPOSdX = mMarginLeft;
            mPOSdY = mMarginTop;

            stampaDocumetoIntestato(objcRpt, "1");

            //Seconda pagina 1°Paragrafo
            mPOSdY += Spazziatura;
            mPOSdY += Spazziatura;
            mPOSdY += Spazziatura;
            s = "Abbiamo inoltre messo in funzione un software per la gestione delle assistenze e delle ";
            objcRpt.AddText(mPOSdX, mPOSdY, s, sizeDesc, colorDesc, false);
            mPOSdY += Spazziatura;
            s = "scadenze periodiche che ci dovrebbe permettere il rispetto dei tempi di intervento ";
            objcRpt.AddText(mPOSdX, mPOSdY, s, sizeDesc, colorDesc, false);
            mPOSdY += Spazziatura;
            s = "concordati con il cliente.   ";
            objcRpt.AddText(mPOSdX, mPOSdY, s, sizeDesc, colorDati, false);

            //2° Paragrafo
            mPOSdY += Spazziatura;
            mPOSdY += Spazziatura;
            s = "Anche in questo caso chiediamo la collaborazione dei centri di revisione, delle autofficine ";
            objcRpt.AddText(mPOSdX, mPOSdY, s, sizeDesc, colorDesc, false);
            mPOSdY += Spazziatura;
            s = "che eseguono controlli  “Bollino Blu” e i possessori di sistemi di autodiagnosi, per eseguire ";
            objcRpt.AddText(mPOSdX, mPOSdY, s, sizeDesc, colorDati, false);
            mPOSdY += Spazziatura;
            s = "un controllo incrociato tra i dati reali di scadenza del controllo dell'apparecchio o validità ";
            objcRpt.AddText(mPOSdX, mPOSdY, s, sizeDesc, colorDesc, false);
            mPOSdY += Spazziatura;
            s = "abilitazione per i sistemi di autodiagnosi, ( rilevabili dai libretti metrologici in Vs. possesso, ";
            objcRpt.AddText(mPOSdX, mPOSdY, s, sizeDesc, colorDati, false);
            mPOSdY += Spazziatura;
            s = "o semplicemente leggendo la data di scadenza riportata sulla stampa ufficiale dei vari ";
            objcRpt.AddText(mPOSdX, mPOSdY, s, sizeDesc, colorDesc, false);
            mPOSdY += Spazziatura;
            s = "strumenti o sul display dello strumento ) e quelli presenti nei nostri archivi dei quali  ";
            objcRpt.AddText(mPOSdX, mPOSdY, s, sizeDesc, colorDesc, false);
            mPOSdY += Spazziatura;
            s = "alleghiamo la distinta alla presente lettera. ";
            objcRpt.AddText(mPOSdX, mPOSdY, s, sizeDesc, colorDesc, false);

            //3° Paragrafo
            mPOSdY += Spazziatura;
            mPOSdY += Spazziatura;
            s = "Se doveste riscontrare delle differenze vi saremmo grati se inviaste via fax al numero";
            objcRpt.AddText(mPOSdX, mPOSdY, s, sizeDesc, colorDesc, false);

            //Numero di fax
            mPOSdY += Spazziatura;
            mPOSdY += Spazziatura;
            s = "178 - 2701158";
            objcRpt.AddText(mPOSdX + 180, mPOSdY, s, sizeDesc, colorDesc, true);


            mPOSdY += Spazziatura;
            mPOSdY += Spazziatura;
            s = "copia corretta della nostra distinta";
            objcRpt.AddText(mPOSdX, mPOSdY, s, sizeDesc, colorDesc, false);

            //Ultimo paragrafo
            mPOSdY += Spazziatura;
            mPOSdY += Spazziatura;
            s = "Augurandoci di poter migliorare il servizio offerto e ringraziandoVi per la cortese";
            objcRpt.AddText(mPOSdX, mPOSdY, s, sizeDesc, colorDesc, false);
            mPOSdY += Spazziatura;
            s = "collaborazione, cogliamo l'occasione per porgere cordiali saluti.";
            objcRpt.AddText(mPOSdX, mPOSdY, s, sizeDesc, colorDesc, false);
            mPOSdY += Spazziatura;
            mPOSdY += Spazziatura;
            s = "Grion Fabrizio ";
            objcRpt.AddText(mPOSdX + 300, mPOSdY, s, sizeDesc, colorDesc, false);


            //***************************************************
            //Stampo il riepilogativo degli strumenti
            //***************************************************
            //Terza pagina
            //*********************************//

            objcRpt.newPage();
            //riazzero i marini
            mPOSdX = mMarginLeft;
            mPOSdY = mMarginTop;

            stampaDocumetoIntestato(objcRpt, "2");


            double dSize = 5;

            //Scrivo il Titolo
            double dWriteTextY = mPOSdY + dSize + 100;
            mPOSdY += Spazziatura;
            mPOSdY += Spazziatura;
            objcRpt.AddText(mPOSdX, mPOSdY, "Riepilogativo degli strumenti per il cliente", dSize, Color.Black, false);
            mPOSdY += Spazziatura;
            //Scivo l'intestazione del cliente
            WriteIntestazioneCliente(sIDCli, objcRpt, mPOSdX, mPOSdY, 0, false);

            mPOSdY += 100;

            //Verifico se è stato inserito qualche strumento
            bool bNessunStrumento = false;
            //Carico la matrice delle tipologie di strumenti disponibili
            string[] sTipologia = null;//gestData.tipologiaStringGet();
            foreach (string sActualTipologia in sTipologia)
            {
                double sizeDati = 2.2;
                sizeDesc = 2;
                double sizeLinee = 0.1;
                Spazziatura = 14;
                colorDati = Color.Black;
                colorDesc = Color.Black;

                DataTable objDT = returnDataTableForLineCli(sIDCli, sActualTipologia);
                if (objDT.Rows.Count != 0)
                {
                    //Formato tutto il documento parziale.
                    mPOSdY += Spazziatura;
                    objcRpt.AddText(mPOSdX + 5, mPOSdY, sActualTipologia, 2.2, colorDesc, false);
                    //objcRpt.AddLinea(mPOSdX,mPOSdY + 2,185,0,sizeLinee,colorDesc);

                    double posTipo = mPOSdX;
                    double posMarca = posTipo + 80;
                    double posNome = posMarca + 95;
                    double posNumSerie = posNome + 95;
                    double posOmo = posNumSerie + 70;
                    double posDataSca = posOmo + 130;

                    //Titolo
                    mPOSdY += Spazziatura;
                    objcRpt.AddText(posTipo, mPOSdY, "Tipo", sizeDesc, colorDesc, false);
                    objcRpt.AddText(posMarca, mPOSdY, "Marca", sizeDesc, colorDesc, false);
                    objcRpt.AddText(posNome, mPOSdY, "Nome", sizeDesc, colorDesc, false);
                    objcRpt.AddText(posNumSerie, mPOSdY, "Num.Serie", sizeDesc, colorDesc, false);
                    objcRpt.AddText(posOmo, mPOSdY, "Omologazione", sizeDesc, colorDesc, false);
                    objcRpt.AddText(posDataSca, mPOSdY, "data scadenza", sizeDesc, colorDesc, false);
                    objcRpt.AddLineaMM(mPOSdX, mPOSdY + 2, 185, 0, sizeLinee, colorDesc);

                    //Dati

                    foreach (DataRow dr in objDT.Rows)
                    {
                        bNessunStrumento = true;
                        mPOSdY += Spazziatura;

                        string sTipo = dr["Tipo"].ToString();
                        objcRpt.AddText(posTipo, mPOSdY, sTipo, sizeDati, colorDati, false);
                        objcRpt.AddText(posMarca, mPOSdY, dr["Marca"].ToString(), sizeDati, colorDati, false);
                        objcRpt.AddText(posNome, mPOSdY, dr["Nome"].ToString(), sizeDati, colorDati, false);
                        objcRpt.AddText(posNumSerie, mPOSdY, dr["NumeroDiSerie"].ToString(), sizeDati, colorDati, false);
                        objcRpt.AddText(posOmo, mPOSdY, dr["Omologazione1"].ToString(), sizeDati, colorDati, false);
                        objcRpt.AddText(posDataSca, mPOSdY, Utility.setDateFormated(dr["DataScadenza"].ToString()), sizeDati, colorDati, false);

                        //Formattazioni particolari
                        if (sTipo == "Analizzatore Gas")
                        {
                            mPOSdY += Spazziatura;

                            objcRpt.AddText(posNome - 20, mPOSdY, "P.E.F.", sizeDati - 1, colorDati, false);
                            objcRpt.AddText(posNome, mPOSdY, dr["PEF"].ToString(), sizeDati, colorDati, false);
                        }
                        if (sTipo == "Prova freni")
                        {
                            mPOSdY += Spazziatura;

                            objcRpt.AddText(posNome - 25, mPOSdY, "Ser. Rulli", sizeDati - 1, colorDati, false);
                            objcRpt.AddText(posNome, mPOSdY, dr["NumSerieRulli"].ToString(), sizeDati, colorDati, false);

                            objcRpt.AddText(posNumSerie - 25, mPOSdY, "Ser. Pesa", sizeDati - 1, colorDati, false);
                            objcRpt.AddText(posNumSerie, mPOSdY, dr["NumSeriePesa"].ToString(), sizeDati, colorDati, false);
                            //Omologazione 2
                            objcRpt.AddText(posOmo - 20, mPOSdY, "Omol.2", sizeDati - 1, colorDati, false);
                            objcRpt.AddText(posOmo, mPOSdY, dr["Omologazione2"].ToString(), sizeDati, colorDati, false);

                        }
                        if (sTipo == "Fonometro")
                        {
                            mPOSdY += Spazziatura;

                            objcRpt.AddText(posNome - 30, mPOSdY, "Calibratore", sizeDati - 1, colorDati, false);
                            objcRpt.AddText(posNome, mPOSdY, dr["TipoCalibratore"].ToString(), sizeDati, colorDati, false);

                            objcRpt.AddText(posNumSerie - 35, mPOSdY, "Ser. Calibratore", sizeDati - 1, colorDati, false);
                            objcRpt.AddText(posNumSerie, mPOSdY, dr["NumSerCalibratore"].ToString(), sizeDati, colorDati, false);

                        }


                    }
                    mPOSdY += Spazziatura;
                }

            }
            if (!bNessunStrumento)
            {
                mPOSdY += Spazziatura;
                mPOSdY += Spazziatura;
                s = "Nessuna strumentazione presente nell'archivio dell'azienda";
                objcRpt.AddText(mPOSdX + 120, mPOSdY, s, sizeDesc + 1, colorDati, true);
                mPOSdY += Spazziatura;
                mPOSdY += Spazziatura;
            }


            sizeDesc = 3;
            //Parte finale
            mPOSdY += Spazziatura;
            mPOSdY += Spazziatura;
            s = "La strumentazione per l'esecuzione delle revisioni è la seguente:";
            objcRpt.AddText(mPOSdX, mPOSdY, s, sizeDesc, Color.Black, false);
            mPOSdY += Spazziatura;
            s = "Prova freni, Fonometro, Calibratore per fonometro, analizzatore gas, contagiri per analizzatore gas";
            objcRpt.AddText(mPOSdX, mPOSdY, s, sizeDesc, Color.Black, false);
            mPOSdY += Spazziatura;
            s = "opacimetro,contagiri per opacimetro, contagiri esterno, centra fari.";
            objcRpt.AddText(mPOSdX, mPOSdY, s, sizeDesc, Color.Black, false);
            mPOSdY += Spazziatura;
            mPOSdY += Spazziatura;
            s = "Nel qual caso nel nostro archivio non dovesse risultare nessun strumento vi preghiamo di ";
            objcRpt.AddText(mPOSdX, mPOSdY, s, sizeDesc, Color.Black, false);
            mPOSdY += Spazziatura;
            s = "compilare un foglio con tutti i dati degli strumenti e di farcelo pervenire ugualmente via fax.";
            objcRpt.AddText(mPOSdX, mPOSdY, s, sizeDesc, Color.Black, false);


            // create footer
            //			foreach (Page page in enum_Page) 
            //			{
            //				page.AddRightMM(185, 280, new RepString(fp, page.iPageNo.ToString() + " / " + iPageCount.ToString()));
            //			}

        }
        public void StampaTicketsReportMensile(string sIDcli, string DataDa, string DataA)
        {
            //Creo l'istanza del Report per scrivere
            cReport objcRpt = new cReport(rpt, rptPage);

            stampaDocumetoIntestato(objcRpt, "1");

            //imoisto il margine 
            mPOSdX = mMarginLeft;
            mPOSdY = mMarginTop + 90;
            double dSize = 5;


            //Scrivo il Titolo
            objcRpt.AddText(mPOSdX, mPOSdY, "Stampa riassuntiva dei Tickets", dSize, Color.Black, false);

            //Scivo l'intestazione del cliente
            WriteIntestazioneCliente(sIDcli, objcRpt, mPOSdX, mPOSdY, 0, true);

            mPOSdY += 130;
            double sizeDati = 2.2;
            double sizeDesc = 2;
            double Spazziatura = 14;
            Color colorDati = Color.Black;
            Color colorDesc = Color.Black;

            double Y = mPOSdY;
            DateTimeFormatInfo dfi = new DateTimeFormatInfo();
            dfi.ShortDatePattern = "m/d/yy";
            System.IFormatProvider format =
                new System.Globalization.CultureInfo("en-US", true);

            CultureInfo MyCultureInfo = new CultureInfo("en-US");


            DateTime dtDa = DateTime.Parse(DataDa);
            DateTime dtA = DateTime.Parse(DataA);

            string sDA = dtDa.Month + "/" + dtDa.Day + "/" + dtDa.Year;
            string sA = dtA.Month + "/" + dtA.Day + "/" + dtA.Year;

            string strWhere = "SELECT Tickets.IDTickets, Tickets.IDCli, Tickets.TotMinuti, TicketsRighe.IDTicketsRighe, TicketsRighe.IDUser, TicketsRighe.Operazione, TicketsRighe.Messaggio, TicketsRighe.nTickets, TicketsRighe.DateCreate" +
                " FROM Tickets INNER JOIN TicketsRighe ON Tickets.IDTickets = TicketsRighe.IDTickets" +
                " WHERE (((Tickets.IDCli)=" + sIDcli + ") AND ((TicketsRighe.DateCreate) Between #" + sDA + "# And #" + sA + "#))" +
                " ORDER BY TicketsRighe.DateCreate";
            SqlCommand cmd = new SqlCommand(strWhere, sqlCn);
            SqlDataAdapter adap = new SqlDataAdapter(cmd);
            DataTable objDT = new DataTable();
            adap.Fill(objDT);


            //Ammontare attuale
            objcRpt.AddText(mPOSdX, mPOSdY, "L'ammontare attuale è di  :", sizeDesc, colorDesc, true);
            objcRpt.AddText(mPOSdX + 150, mPOSdY, objDT.Rows[0]["TotMinuti"].ToString(), sizeDati + 0.2, colorDati, true);

            mPOSdY += 2 * Spazziatura;

            //TITOLI
            //Data
            objcRpt.AddText(mPOSdX + 30, mPOSdY, "Data", sizeDati + 0.2, colorDati, true);
            //Messaggio
            objcRpt.AddText(mPOSdX + 130, mPOSdY, "Messaggio", sizeDati + 0.2, colorDati, true);
            //Numero Tickets
            objcRpt.AddText(mPOSdX + 450, mPOSdY, "Numero", sizeDati + 0.2, colorDati, true);
            mPOSdY += 2 * Spazziatura;

            foreach (DataRow objDR in objDT.Rows)
            {
                //Data
                objcRpt.AddText(mPOSdX + 30, mPOSdY, objDR["DateCreate"].ToString(), sizeDati + 0.2, colorDati, false);
                //Messaggio
                objcRpt.AddText(mPOSdX + 130, mPOSdY, objDR["Messaggio"].ToString(), sizeDati + 0.2, colorDati, false);
                //Numero Tickets
                objcRpt.AddText(mPOSdX + 450, mPOSdY, objDR["nTickets"].ToString(), sizeDati + 0.2, colorDati, false);
                mPOSdY += Spazziatura;
            }

        }
        public void StampaModAssTec(string date, string sRespRic, bool bUrge, string sIDCli, bool bTipoAssTec
                    , bool bTipoTaratur, bool bTipoConsulenza, bool bTipoDimStru, bool bTipoConRpVeicolo
                    , bool bSedeCliente, bool bSedeRivenditore, bool bSedeLAboratorio, string sDescRichiesta
                    , bool bcaricoCentroAss, bool bCaricoCliente, bool bcaricoRivenditore, bool bCaricoAltro, string sAltro
                    , bool bClienteAccordoData, string dataAccordoAss, bool bClienteDeveEssereRichiamato, bool bClienteConoscePrezzi
                    , bool bClienteGiaPresoAccordi, bool bClienteCiSonoTrattative, bool bClienteEInsolvente, bool bClienteHaInCorsoAzioni
                    , string sResponsabileAzienda)
        {
            //Creo l'istanza del Report per scrivere
            cReport objcRpt = new cReport(rpt, rptPage);

            //imposto il margine 
            mPOSdX = mMarginTop;
            mPOSdY = mMarginLeft;

            double SizeTxt = 2.6;
            double SizePen = 0.5;

            //preparazione Layout
            objcRpt.AddTextMM(32, 15, "MODULO RICHIESTA ASSISTENZA TECNICA E/O TARATURA", 3, Color.Black, true);
            objcRpt.AddRectMM(15, 20, 180, -265, SizePen, Color.Black);
            objcRpt.AddLineaMM(102, 20, 0, -50, SizePen, Color.Black);
            objcRpt.AddLineaMM(15, 70, 180, 0, SizePen, Color.Black);


            //Rivenditore
            objcRpt.AddTextMM(18, 25, "Timbro del rivenditore:", SizeTxt - 0.2, Color.Black, false);
            objcRpt.AddTextMM(22, 35, "Grion Fabrizio", SizeTxt, Color.Black, false);
            objcRpt.AddTextMM(22, 40, "Centro Assistenza Tecnica", SizeTxt, Color.Black, false);
            objcRpt.AddTextMM(22, 45, "Taratura e Controllo", SizeTxt, Color.Black, false);
            objcRpt.AddTextMM(22, 50, "Viale Grado, 12 Lauzacco (UD) 33050", SizeTxt, Color.Black, false);
            objcRpt.AddTextMM(22, 55, "Tel. 0432 655292", SizeTxt, Color.Black, false);

            //Header

            objcRpt.AddTextMM(104, 28, "Data:", SizeTxt, Color.Black, false);
            objcRpt.AddTextMM(134, 28, date, SizeTxt, Color.Black, true);
            objcRpt.AddTextMM(104, 40, "Responsabile della richiesta:", SizeTxt, Color.Black, false);
            objcRpt.AddTextMM(160, 39, sRespRic, SizeTxt, Color.Black, true);
            objcRpt.AddLineaMM(154, 40, 40, 0, SizePen, Color.Black);

            objcRpt.AddCheckBoxMM("URGENTE(*)", bUrge, SizeTxt, Color.Black, false, 104, 54, 25);
            objcRpt.AddCheckBoxMM("NON URGENTE", !bUrge, SizeTxt, Color.Black, false, 144, 54, 30);

            objcRpt.AddTextMM(104, 63, "(* L'urgenza prevede una maggiorazione del 10% sui", SizeTxt, Color.Black, false);
            objcRpt.AddTextMM(104, 68, "   Prezzi in vigore al momento della assistenza", SizeTxt, Color.Black, false);

            //Dati Cliente
            objcRpt.AddTextMM(20, 78, "Cliente:", SizeTxt, Color.Black, false);
            objcRpt.AddLineaMM(38, 78, 150, 0, SizePen, Color.Black);

            objcRpt.AddTextMM(20, 86, "Indirizzo:", SizeTxt, Color.Black, false);
            objcRpt.AddLineaMM(38, 86, 150, 0, SizePen, Color.Black);
            objcRpt.AddLineaMM(38, 94, 150, 0, SizePen, Color.Black);

            objcRpt.AddTextMM(20, 102, "Telefono:", SizeTxt, Color.Black, false);
            objcRpt.AddLineaMM(38, 102, 50, 0, SizePen, Color.Black);

            objcRpt.AddTextMM(120, 102, "Fax:", SizeTxt, Color.Black, false);
            objcRpt.AddLineaMM(138, 102, 50, 0, SizePen, Color.Black);

            WriteIntestazioneClienteMMForModAss(sIDCli, objcRpt, 38, 77, 0, false);

            //persona di riferimnto
            objcRpt.AddTextMM(20, 117, "Persona di riferimento in azienda:", SizeTxt, Color.Black, false);
            objcRpt.AddTextMM(80, 117, sResponsabileAzienda, SizeTxt, Color.Black, false);

            //Tipo di richiesta
            objcRpt.AddTextMM(20, 125, "Tipo di richiesta:", SizeTxt, Color.Black, false);

            objcRpt.AddCheckBoxMM("Assistenza tecnica", bTipoAssTec, SizeTxt, Color.Black, false, 55, 125, 44);
            objcRpt.AddCheckBoxMM("Taratura", bTipoTaratur, SizeTxt, Color.Black, false, 110, 125, 38);
            objcRpt.AddCheckBoxMM("Consulenza", bTipoConsulenza, SizeTxt, Color.Black, false, 156, 125, 25);
            objcRpt.AddCheckBoxMM("Dimostrazione strumenti", bTipoDimStru, SizeTxt, Color.Black, false, 55, 132, 44);
            objcRpt.AddCheckBoxMM("Consulenza rip. veicoli", bTipoConRpVeicolo, SizeTxt, Color.Black, false, 110, 132, 38);

            //Da eseguire presso
            objcRpt.AddTextMM(20, 142, "Da eseguire presso", SizeTxt, Color.Black, false);
            objcRpt.AddCheckBoxMM("Sede del cliente", bSedeCliente, SizeTxt, Color.Black, false, 55, 142, 44);
            objcRpt.AddCheckBoxMM("Sede del rivenditore", bSedeRivenditore, SizeTxt, Color.Black, false, 110, 142, 38);
            objcRpt.AddCheckBoxMM("Laboratorio", bSedeLAboratorio, SizeTxt, Color.Black, false, 156, 142, 25);

            //Descrizione richiesta
            objcRpt.AddTextMM(20, 150, "Descrizione richiesta ( per tarature allegare alla presente elenco dispositivi da controllare):", SizeTxt, Color.Black, false);

            double dSpace = 155;
            int CharLenght = 100;
            for (int i = 0; i < 6; i++)
            {

                if (sDescRichiesta.Length > CharLenght)
                {
                    objcRpt.AddTextMM(22, dSpace, ReturnStringDesc(ref sDescRichiesta, CharLenght), SizeTxt, Color.Black, false);
                }
                else
                {
                    objcRpt.AddTextMM(22, dSpace, sDescRichiesta, SizeTxt, Color.Black, false);
                    i = 100;
                }
                dSpace += 6;
            }

            objcRpt.AddLineaMM(20, 156, 170, 0, SizePen, Color.Black);
            objcRpt.AddLineaMM(20, 162, 170, 0, SizePen, Color.Black);
            objcRpt.AddLineaMM(20, 168, 170, 0, SizePen, Color.Black);
            objcRpt.AddLineaMM(20, 174, 170, 0, SizePen, Color.Black);
            objcRpt.AddLineaMM(20, 180, 170, 0, SizePen, Color.Black);
            objcRpt.AddLineaMM(20, 186, 170, 0, SizePen, Color.Black);


            //Intervento a carico di
            objcRpt.AddTextMM(20, 200, "Intervento a carico di:", SizeTxt, Color.Black, true);
            objcRpt.AddCheckBoxMM("Centro assistenza (in garanzia)", bcaricoCentroAss, SizeTxt, Color.Black, false, 75, 200, 58);
            objcRpt.AddCheckBoxMM("Cliente", bCaricoCliente, SizeTxt, Color.Black, false, 150, 200, 20);
            objcRpt.AddCheckBoxMM("Rivenditore", bcaricoRivenditore, SizeTxt, Color.Black, false, 75, 210, 20);
            objcRpt.AddCheckBoxMM("Altro", bCaricoAltro, SizeTxt, Color.Black, false, 110, 210, 12);
            objcRpt.AddLineaMM(135, 210, 40, 0, SizePen, Color.Black);
            objcRpt.AddTextMM(135, 210, sAltro, SizeTxt, Color.Black, false);

            //Il Cliente
            objcRpt.AddTextMM(20, 220, "Il Cliente:", SizeTxt, Color.Black, true);
            objcRpt.AddCheckBoxMM("si è già accordato su una data d'intervento con il rivenditore", bClienteAccordoData, SizeTxt, Color.Black, false, 44, 220, 135);
            if (bClienteAccordoData)
                objcRpt.AddTextMM(150, 220, dataAccordoAss, SizeTxt, Color.Black, true);
            else
                objcRpt.AddTextMM(150, 220, "( __/__/____ )", SizeTxt, Color.Black, true);
            objcRpt.AddCheckBoxMM("deve essere richiamato per accordi con il centro di assistenza", bClienteDeveEssereRichiamato, SizeTxt, Color.Black, false, 44, 230, 135);
            objcRpt.AddCheckBoxMM("è già al corrente dei prezzi che il centro assistenza applica", bClienteConoscePrezzi, SizeTxt, Color.Black, false, 44, 240, 135);
            objcRpt.AddCheckBoxMM("ha già preso accordi circa i costi d'intervento con il rivenditore", bClienteGiaPresoAccordi, SizeTxt, Color.Black, false, 44, 250, 135);
            objcRpt.AddCheckBoxMM("ci sono trattative in corso per a sostituzione e/o aggiornamento", bClienteCiSonoTrattative, SizeTxt, Color.Black, false, 44, 260, 135);
            objcRpt.AddTextMM(44, 264, "dell'apparecchio su cu intervenire", SizeTxt, Color.Black, false);
            objcRpt.AddCheckBoxMM("è insolvente per motivi legati all'assistenza tecnica e che l'intervento", bClienteEInsolvente, SizeTxt, Color.Black, false, 44, 270, 135);
            objcRpt.AddTextMM(44, 274, "richiesto dovrebbe risolvere", SizeTxt, Color.Black, false);
            objcRpt.AddCheckBoxMM("ha in corso azioni legali, o ha intenzione di intraprendere,", bClienteHaInCorsoAzioni, SizeTxt, Color.Black, false, 44, 280, 135);
            objcRpt.AddTextMM(44, 284, "per motivi legati alla fornitura", SizeTxt, Color.Black, false);
        }
        public void StampaTicketsReportAggiuntaSingolo(string sIDcli, string Data, string Numero)
        {
            //Creo l'istanza del Report per scrivere
            cReport objcRpt = new cReport(rpt, rptPage);


            //imoisto il margine 
            mPOSdX = mMarginTop;
            mPOSdY = mMarginLeft;
            double dSize = 5;

            //Scrivo il Titolo
            double dWriteTextY = mPOSdY + dSize + 100;
            objcRpt.AddText(mPOSdX, 30, "Stampa riassuntiva sul acquisto di Tickets", dSize, Color.Black, false);

            //Scivo l'intestazione del cliente
            WriteIntestazioneCliente(sIDcli, objcRpt, mPOSdX, mPOSdY, 0, true);

            double sizeDati = 2.2;
            double sizeDesc = 2;
            double Spazziatura = 14;
            Color colorDati = Color.Black;
            Color colorDesc = Color.Black;

            double Y = mPOSdY;

            mPOSdY += Spazziatura + 30;

            //Ragione Sociale
            objcRpt.AddText(mPOSdX, mPOSdY, "Data :", sizeDesc, colorDesc, false);
            objcRpt.AddText(mPOSdX + 80, mPOSdY, Data, sizeDati + 0.2, colorDati, false);

            mPOSdY += Spazziatura + 30;

            //Numero Tickets
            objcRpt.AddText(mPOSdX, mPOSdY, "Numero Tickets :", sizeDesc, colorDesc, false);
            objcRpt.AddText(mPOSdX + 80, mPOSdY, Numero, sizeDati + 0.2, colorDati, false);
        }
        private void stampaDocumetoIntestato(cReport objcRpt, string numberPage)
        {
            string sPath;
            sPath = null;//ConfigurationSettings.AppSettings["PathDocAzienda"];

            string sFileName = "";

            //Imposto il logo superiore 
            sFileName = sPath + "logo" + numberPage + ".jpg";
            objcRpt.AddImmage(sFileName, 40, 100, 100, 30);

            //Imposto il logo superiore 
            sFileName = sPath + "tuv" + numberPage + ".jpg";
            objcRpt.AddImmage(sFileName, 500, 80, 15, 15);

            //Imposto l'indirizzo
            sFileName = sPath + "Indirizzo" + numberPage + ".jpg";
            objcRpt.AddImmage(sFileName, 40, 835, 180, 10);
            objcRpt = null;
        }
        private void WriteIntestazioneClienteMMForModAss(string sIDcli, cReport objcRpt, double startX, double startY, double AddSizeToNormal, bool bViewInfo)
        {
            double sizeDati = 2.2 + AddSizeToNormal;
            double sizeDesc = 2 + AddSizeToNormal;
            double addSpazio = 0;
            if (AddSizeToNormal != 0)
                addSpazio = 15 * AddSizeToNormal;

            double Spazziatura = 8;
            Color colorDati = Color.Black;
            Color colorDesc = Color.Black;

            string strWhere = "SELECT * FROM clienti WHERE IDCliente = " + sIDcli;
            SqlCommand cmd = new SqlCommand(strWhere, sqlCn);
            SqlDataAdapter adap = new SqlDataAdapter(cmd);
            DataTable DT = new DataTable();
            adap.Fill(DT);
            DataRow objDR = DT.Rows[0];

            objcRpt.AddTextMM(startX, startY, objDR["RagioneSoc"].ToString(), sizeDati + 0.2, colorDati, false);

            //Indirizzo
            startY += Spazziatura;
            objcRpt.AddTextMM(startX, startY, objDR["indirizzo"].ToString(), sizeDati, colorDati, false);

            //Località
            startY += Spazziatura;
            double dTmp = objcRpt.AddTextMM(startX, startY, objDR["localita"].ToString(), sizeDati, colorDati, false);
            //Cap
            dTmp += objcRpt.AddTextMM(startX + dTmp + 10, startY, objDR["CAP"].ToString(), sizeDati, colorDati, false);

            //Provincia
            objcRpt.AddTextMM(startX + dTmp + 20, startY, "(" + objDR["Provincia"].ToString() + ")", sizeDati, colorDati, false);

            startY += Spazziatura;

            //Tel
            objcRpt.AddTextMM(startX, startY, objDR["Telefono"].ToString(), sizeDati, colorDati, false);

            //Fax
            objcRpt.AddTextMM(startX + 100, startY, objDR["FAX"].ToString(), sizeDati, colorDati, false);
        }
Beispiel #10
0
    public Report StampaRigheRapportino(int IDRapportino)
    {
        _sTitolo = "";

        rPosLeft = 3;
        rPosRight = 215;
        rPosTop = 142;
        rPosBottom = 230;

        mMarginLeft = 10;
        mMarginRight = 190;
        mMarginTop = 140;
        mMarginBottom = 200;



        rPosTop = rPosTop + 30;

        FontProp fp = new FontPropMM(fd, 2);
        FontProp fp_Header = new FontPropMM(fd, 2);

        //imposto le informazioni per HEADER della tabella
        fp_Header.bBold = true;
        fp_Header.color = HeaderForeColor;

        // create table
        using (TableLayoutManager tlm = new TableLayoutManager(fp_Header))
        {
            tlm.rContainerHeightMM = rPosBottom - rPosTop;  // set height of table
            
            //Imposto le informazioni di allineamento e di sfondo del HEADER
            tlm.headerCellDef.rAlignV = RepObj.rAlignLeft;  // set vertical alignment of all header cells
            tlm.headerCellDef.bp_Back.color = HeaderBackColor;

            tlm.cellDef.pp_LineBottom = new PenProp(rpt, 0.05, Color.LightGray);

            //Creo l'eento per ogni nuova pagina
            tlm.eNewContainer += new TableLayoutManager.NewContainerEventHandler(Tlm_NewContainer);

            // Definizione delle colonne
            TableLayoutManager.Column col;

            col = new TableLayoutManager.ColumnMM(tlm, "Q.ta", 15);
            col.cellDef.textMode = TableLayoutManager.TextMode.MultiLine;
            col = new TableLayoutManager.ColumnMM(tlm, "Modello", 25);
            col = new TableLayoutManager.ColumnMM(tlm, "Descrizione", 103);
            col = new TableLayoutManager.ColumnMM(tlm, "Prezzo Unitario", 30);
            col = new TableLayoutManager.ColumnMM(tlm, "Importo", 30);

            //Ritorna il dataset
            string strWhere = @"SELECT     IDRapportinoRighe, IDRapportino,IDArticolo, Descrizione, PrezzoUnitario, Quantita, Totale
                                    FROM         dbo.RapportinoRighe
                                    WHERE     (IDRapportino = @Rapportino)";
            SqlCommand cmd = new SqlCommand(strWhere, _sqlCn);


            SqlParameter parIDRapportino = new SqlParameter("@Rapportino", SqlDbType.Int);
            parIDRapportino.Value = IDRapportino;
            cmd.Parameters.Add(parIDRapportino);

            SqlDataAdapter adap = new SqlDataAdapter(cmd);
            DataTable DT = new DataTable();
            adap.Fill(DT);

            //Imposto intestazione
            cReport objReport = new cReport(rpt, rptPage);

            //				read rows
            for (int r = 0; r < DT.Rows.Count; r++)
            {
                tlm.NewRow();
                float f = 0;
                float.TryParse(DT.Rows[r]["Quantita"].ToString(), out f);
                tlm.Add(0, new RepString(fp, f.ToString("0.##")));
                
                tlm.Add(1, new RepString(fp, DT.Rows[r]["IDArticolo"].ToString()));
                tlm.Add(2, new RepString(fp, DT.Rows[r]["Descrizione"].ToString()));
                float.TryParse(DT.Rows[r]["PrezzoUnitario"].ToString(), out f);
                tlm.Add(3, new RepString(fp, f.ToString("0.00")));
                float.TryParse(DT.Rows[r]["Totale"].ToString(), out f);
                tlm.Add(4, new RepString(fp, f.ToString("0.00")));

            }
            if (DT.Rows.Count == 0)
            {
                tlm.NewRow();
                tlm.Add(0, new RepString(fp, ""));
                tlm.Add(1, new RepString(fp, ""));
                tlm.Add(2, new RepString(fp, ""));
                tlm.Add(3, new RepString(fp, ""));
                tlm.Add(4, new RepString(fp, ""));
            }

        }


        // print page number and current date/time
        foreach (Root.Reports.Page page in rpt.enum_Page)
        {
            Double rY = rPosBottom + 1.5;
            //page.AddLT_MM(rPosLeft, rY, new RepString(fp, DateTime.Now.ToShortDateString() + "  " + DateTime.Now.ToShortTimeString()));
            page.AddRT_MM(rPosRight, rY, new RepString(fp, page.iPageNo.ToString() + " / " + rpt.iPageCount.ToString()));
        }
        return rpt;
    }
Beispiel #11
0
    //public void VisualizzaWwwPDF(System.Web.UI.Page AspxPage, string sNomeFile)
    //{
    //    AspxPage.Response.Clear();
    //    AspxPage.Response.ContentType = "application/octet-stream";
    //    AspxPage.Response.AppendHeader("Content-Disposition", "attachment; filename=" + sNomeFile + "\"");
    //    rpt.formatter.Create(rpt, AspxPage.Response.OutputStream);
    //    AspxPage.Response.End();
    //}


    public bool StampaDocumento(string sWhereDati, string CodiceStampa)
    {
        //Creo l'istanza del Report per scrivere
        cReport objcRpt = new cReport(rpt, rptPage);
        try
        {
            #region ricerco informazioni stampa
            //Recupero informazioni di Stampa
            string sqlWhere = "SELECT * FROM Stampa WHERE Codice='" + CodiceStampa + "'";
            SqlCommand cmdStampa = new SqlCommand(sqlWhere, _sqlCn);

            SqlDataAdapter adapStampa = new SqlDataAdapter(cmdStampa);
            DataTable dtStampa = new DataTable();
            adapStampa.Fill(dtStampa);

            //Recupero informazioni delle stampe righe
            sqlWhere = "SELECT * FROM StampaRighe WHERE Codice='" + CodiceStampa + "'";
            SqlCommand cmdStampaRighe = new SqlCommand(sqlWhere, _sqlCn);

            SqlDataAdapter adapStampaRighe = new SqlDataAdapter(cmdStampaRighe);
            DataTable dtStampaRighe = new DataTable();
            adapStampaRighe.Fill(dtStampaRighe);
            #endregion

            #region Stampa Documento



            foreach (DataRow dtRow in dtStampaRighe.Rows)
            {
                int iTipo = (int)dtRow["Tipo"];
                double dStartX = (double)dtRow["StartX"];
                double dStartY = (double)dtRow["StartY"];
                double dEndX = (double)dtRow["EndX"];
                double dEndY = (double)dtRow["EndY"];
                double dLenghtY = (double)dtRow["Altezza"];
                double dLenghtX = (double)dtRow["Lunghezza"];
                double dSize = (double)dtRow["FontSize"];
                string sValore = dtRow["Valore"].ToString();
                Color BackColor = Color.FromName(dtRow["BackColor"].ToString());
                bool bBold = (bool)dtRow["FontBold"];

                switch (iTipo)
                {
                    case 1: //Disegno LINEA
                        objcRpt.AddLineaMM(dStartX, dStartY, dLenghtX, dLenghtY, dSize, BackColor);
                        break;
                    case 2: //Disegno Quadrato
                        objcRpt.AddRectMM(dStartX, dStartY, dLenghtX, dLenghtY, dSize, BackColor);
                        break;
                    case 3: //Scrivo Testo
                        objcRpt.AddTextMM(dStartX, dStartY, sValore, dSize, BackColor, bBold);
                        break;
                    case 4: //Diegno Immagine
                        objcRpt.AddImmageMM(sValore, dStartX, dStartY, dLenghtX, dLenghtY);
                        break;
                }


            }
            double sizeDesc = 2;
            Color colorDati = Color.Green;
            string s = "Automotive Service SRL test di stampa OK:" + DateTime.Now.ToLongDateString();
            objcRpt.AddText(40, 10, s, sizeDesc, colorDati, false);
            #endregion
        }
        catch (Exception exc)
        {
            double sizeDesc = 2;
            Color colorDati = Color.Red;
            string s = "Errore durante la fase di stampa:\n" + exc.Message;
            objcRpt.AddText(40, 10, s, sizeDesc, colorDati, false);
        }
        return false;
    }
Beispiel #12
0
    public Report StampaScadenzeClientePerPianificazione(int IDCliente)
    {
        _sTitolo = "";

        rPosLeft = 10;
        rPosRight = 190;
        rPosTop = 150;
        rPosBottom = 288;

        mMarginLeft = 20;
        mMarginRight = 190;
        mMarginTop = 150;
        mMarginBottom = 278;



        rPosTop = rPosTop + 30;

        FontProp fp = new FontPropMM(fd, 1.6);
        FontProp fp_Header = new FontPropMM(fd, 1.6);

        //imposto le informazioni per HEADER della tabella
        fp_Header.bBold = true;
        fp_Header.color = HeaderForeColor;

        // create table
        using (TableLayoutManager tlm = new TableLayoutManager(fp_Header))
        {
            tlm.rContainerHeightMM = rPosBottom - rPosTop;  // set height of table

            //Imposto le informazioni di allineamento e di sfondo del HEADER
            tlm.headerCellDef.rAlignV = RepObj.rAlignLeft;  // set vertical alignment of all header cells
            tlm.headerCellDef.bp_Back.color = HeaderBackColor;

            tlm.cellDef.pp_LineBottom = new PenProp(rpt, 0.05, Color.LightGray);

            //Creo l'eento per ogni nuova pagina
            tlm.eNewContainer += new TableLayoutManager.NewContainerEventHandler(Tlm_NewContainer);

            // Definizione delle colonne
            TableLayoutManager.Column col;

            col = new TableLayoutManager.ColumnMM(tlm, "Tipologia", 20);
            col.cellDef.textMode = TableLayoutManager.TextMode.MultiLine;
            col = new TableLayoutManager.ColumnMM(tlm, "Tipo", 23);
            col = new TableLayoutManager.ColumnMM(tlm, "Marca", 23);
            col = new TableLayoutManager.ColumnMM(tlm, "Modello", 25);
            col = new TableLayoutManager.ColumnMM(tlm, "Matricola", 18);
            col = new TableLayoutManager.ColumnMM(tlm, "Omologazione", 35);
            col = new TableLayoutManager.ColumnMM(tlm, "Pef", 8);
            col = new TableLayoutManager.ColumnMM(tlm, "Data scadenza", 17);
            col = new TableLayoutManager.ColumnMM(tlm, "Nuova data", 21);



            //Ritorna il dataset
            string strWhere = @"SELECT     tblScadenze.DataScadenza, Clienti.RagioneSoc, Clienti.bElimina, Marche.Marca, Tipo.Tipo, tblScadenze.Tipologia, Clienti.IDCliente, 
                      tblScadenze.NumeroDiSerie, Strumenti.Nome, tblScadenze.Omologazione1, tblScadenze.PEF, Clienti.Localita, Clienti.Provincia, Clienti.Telefono, 
                      Clienti.Cap, Clienti.Indirizzo, Clienti.Fax, Clienti.Cellulare, Clienti.Mail, Clienti.kmDistanza, Clienti.Note
                        FROM         Tipo INNER JOIN
                      Marche INNER JOIN
                      Strumenti INNER JOIN
                      Clienti INNER JOIN
                      tblScadenze ON Clienti.IDCliente = tblScadenze.IDCliente ON Strumenti.idStrumenti = tblScadenze.IdStrumento ON 
                      Marche.IDMarca = Strumenti.IDMarca ON Tipo.IDTipo = Strumenti.IDTipo
                        GROUP BY tblScadenze.DataScadenza, Clienti.RagioneSoc, Clienti.bElimina, Marche.Marca, Tipo.Tipo, tblScadenze.Tipologia, Clienti.bElimina, Clienti.IDCliente, 
                      tblScadenze.NumeroDiSerie, Strumenti.Nome, tblScadenze.Omologazione1, tblScadenze.PEF, Clienti.Localita, Clienti.Provincia, Clienti.Telefono, 
                      Clienti.Cap, Clienti.Indirizzo, Clienti.Fax, Clienti.Cellulare, Clienti.Mail, Clienti.kmDistanza, Clienti.Note
                        HAVING      (Clienti.IDCliente = @IDCliente)
                        ORDER BY tblScadenze.Tipologia";
            SqlCommand cmd = new SqlCommand(strWhere, _sqlCn);
            SqlParameter parIDCliente = new SqlParameter("@IDCliente", SqlDbType.Int);
            parIDCliente.Value = IDCliente;
            cmd.Parameters.Add(parIDCliente);

            SqlDataAdapter adap = new SqlDataAdapter(cmd);
            DataTable DT = new DataTable();
            adap.Fill(DT);

            //Imposto intestazione
            cReport objReport = new cReport(rpt, rptPage);

            string ripTipologia = "";
            string s = "";
            for (int r = 0; r < DT.Rows.Count; r++)
            {
                tlm.NewRow();


                if (ripTipologia == DT.Rows[r]["Tipologia"].ToString())
                    s = "";
                else
                    s = ripTipologia = DT.Rows[r]["Tipologia"].ToString();

                tlm.Add(0, new RepString(fp, s));
                tlm.Add(1, new RepString(fp, DT.Rows[r]["Tipo"].ToString()));
                tlm.Add(2, new RepString(fp, DT.Rows[r]["Marca"].ToString()));
                tlm.Add(3, new RepString(fp, DT.Rows[r]["Nome"].ToString()));
                tlm.Add(4, new RepString(fp, DT.Rows[r]["NumeroDiSerie"].ToString()));
                tlm.Add(5, new RepString(fp, DT.Rows[r]["Omologazione1"].ToString()));
                tlm.Add(6, new RepString(fp, DT.Rows[r]["Pef"].ToString()));
                string sDate = ((DateTime)DT.Rows[r]["DataScadenza"]).ToShortDateString();
                tlm.Add(7, new RepString(fp, sDate));
            }

        }


        // print page number and current date/time
        foreach (Root.Reports.Page page in rpt.enum_Page)
        {
            Double rY = rPosBottom + 1.5;
            page.AddLT_MM(rPosLeft, rY, new RepString(fp, DateTime.Now.ToShortDateString() + "  " + DateTime.Now.ToShortTimeString()));
            page.AddRT_MM(rPosRight, rY, new RepString(fp, page.iPageNo.ToString() + " / " + rpt.iPageCount.ToString()));
        }
        return rpt;
    }
Beispiel #13
0
    public bool StampaDocumentoFile(string NomeFileStampa, string sqlWhere)
    {
        string sPathReport = ConfigurationManager.AppSettings["PathReport"].ToString();
        NomeFileStampa = sPathReport + NomeFileStampa;
        //Creo l'istanza del Report per scrivere
        cReport objcRpt = new cReport(rpt, rptPage);

        #region Recupero Dati dal DB
        SqlCommand cmdStampa = new SqlCommand(sqlWhere, _sqlCn);

        SqlDataAdapter adapStampa = new SqlDataAdapter(cmdStampa);
        DataTable dtStampa = new DataTable();
        adapStampa.Fill(dtStampa);
        DataRow drStampa = dtStampa.Rows[0];
        #endregion

        StreamReader sr = new StreamReader(File.OpenRead(NomeFileStampa));
        try
        {
            double dErrStartX = 50;
            double dErrStartY = 20;
            double dErrSize = 2;

            string sLinea;
            while ((sLinea = sr.ReadLine()) != null)
            {
                try
                    {
                string[] arLinea = sLinea.Split("\t".ToCharArray());

                double dStartX = 0;
                double dStartY = 0;
                double dLenghtX = 0;
                double dLenghtY = 0;
                double dSize = 0;
                string sValore = "";
                Color BackColor = Color.Black;
                bool bBold = false;
                bool bValue = false;
                int iCharMax = 0;
                double dNextRow = 0;
                

                if (arLinea[0] == "Linea")
                {
                    try
                    {
                        dStartX = double.Parse(arLinea[1]);
                        dStartY = double.Parse(arLinea[2]);
                        dLenghtX = double.Parse(arLinea[3]);
                        dLenghtY = double.Parse(arLinea[4]);
                        dSize = double.Parse(arLinea[5]);
                        BackColor = Color.FromName(arLinea[6]);
                        objcRpt.AddLineaMM(dStartX, dStartY, dLenghtX, dLenghtY, dSize, BackColor);
                    }
                    catch (Exception exc)
                    {

                        objcRpt.AddTextMM(dErrStartX, dErrStartY, sLinea + " - " + exc.Message, dErrSize, Color.Red, true);
                        dErrStartY += 10;
                    }
                }
                if (arLinea[0] == "Quad")
                {
                    try
                    {
                        dStartX = double.Parse(arLinea[1]);
                        dStartY = double.Parse(arLinea[2]);
                        dLenghtX = double.Parse(arLinea[3]);
                        dLenghtY = double.Parse(arLinea[4]);
                        dSize = double.Parse(arLinea[5]);
                        BackColor = Color.FromName(arLinea[6]);
                        objcRpt.AddRectMM(dStartX, dStartY, dLenghtX, dLenghtY, dSize, BackColor);
                    }
                    catch (Exception exc)
                    {

                        objcRpt.AddTextMM(dErrStartX, dErrStartY, sLinea + " - " + exc.Message, dErrSize, Color.Red, true);
                        dErrStartY += 10;
                    }
                }
                if (arLinea[0] == "Testo")
                {
                    try
                    {
                        dStartX = double.Parse(arLinea[1]);
                        dStartY = double.Parse(arLinea[2]);
                        dSize = double.Parse(arLinea[3]);
                        sValore = arLinea[4];
                        sValore = sValore.Replace(" ", " ");
                        BackColor = Color.FromName(arLinea[5]);
                        bBold = bool.Parse(arLinea[6]);
                        objcRpt.AddTextMM(dStartX, dStartY, sValore, dSize, BackColor, bBold);

                    }
                    catch (Exception exc)
                    {

                        objcRpt.AddTextMM(dErrStartX, dErrStartY, sLinea + " - " + exc.Message, dErrSize, Color.Red, true);
                        dErrStartY += 10;
                    }
                }

                if (arLinea[0] == "DataNow")
                {
                    try
                    {
                        dStartX = double.Parse(arLinea[1]);
                        dStartY = double.Parse(arLinea[2]);
                        dSize = double.Parse(arLinea[3]);
                        sValore = DateTime.Now.ToShortDateString();
                        BackColor = Color.FromName(arLinea[4]);
                        bBold = bool.Parse(arLinea[5]);
                        objcRpt.AddTextMM(dStartX, dStartY, sValore, dSize, BackColor, bBold);
                    }
                    catch (Exception exc)
                    {

                        objcRpt.AddTextMM(dErrStartX, dErrStartY, sLinea + " - " + exc.Message, dErrSize, Color.Red, true);
                        dErrStartY += 10;
                    }
                }
                if (arLinea[0] == "Dato" || arLinea[0] == "DatoDate")
                {
                    try
                    {
                        dStartX = double.Parse(arLinea[1]);
                        dStartY = double.Parse(arLinea[2]);
                        dSize = double.Parse(arLinea[3]);
                        sValore = drStampa[arLinea[4]].ToString();
                        if (arLinea[0] == "DatoDate")
                        {
                            DateTime dt = DateTime.MinValue;
                            DateTime.TryParse(drStampa[arLinea[4]].ToString(),out dt);
                            sValore = dt.ToShortDateString();
                        }
                        BackColor = Color.FromName(arLinea[5]);
                        bBold = bool.Parse(arLinea[6]);
                        objcRpt.AddTextMM(dStartX, dStartY, sValore, dSize, BackColor, bBold);
                    }
                    catch (Exception exc)
                    {

                        objcRpt.AddTextMM(dErrStartX, dErrStartY, sLinea + " - " + exc.Message, dErrSize, Color.Red, true);
                        dErrStartY += 10;
                    }
                }
                if (arLinea[0] == "DatoNumber")
                {
                    try
                    {
                        dStartX = double.Parse(arLinea[1]);
                        dStartY = double.Parse(arLinea[2]);
                        dSize = double.Parse(arLinea[3]);
                        sValore = drStampa[arLinea[4]].ToString();
                        int iNumber = 2;
                        string sFormat = "0.00";
                        try
                        {
                            iNumber = int.Parse(arLinea[7]);
                            if (iNumber==0)
                                sFormat = "0";
                            if (iNumber == 1)
                                sFormat = "0.0";
                            if (iNumber == 2)
                                sFormat = "0.00";
                            if (iNumber == 3)
                                sFormat = "0.000";
                        }
                        catch { }

                        bool bWithEuro = false;
                        try
                        {
                            bWithEuro = bool.Parse(arLinea[8]);
                            if (bWithEuro == true)
                                sFormat = "€ " + sFormat; 
                        }
                        catch{}

                        float f = 0;
                        float.TryParse(sValore, out f);
                        sValore = f.ToString(sFormat);

                        BackColor = Color.FromName(arLinea[5]);
                        bBold = bool.Parse(arLinea[6]);
                        objcRpt.AddTextMM(dStartX, dStartY, sValore, dSize, BackColor, bBold);
                    }
                    catch (Exception exc)
                    {

                        objcRpt.AddTextMM(dErrStartX, dErrStartY, sLinea + " - " + exc.Message, dErrSize, Color.Red, true);
                        dErrStartY += 10;
                    }
                }
                if (arLinea[0] == "DatoBox")
                {
                    try
                    {
                        dStartX = double.Parse(arLinea[1]);
                        dStartY = double.Parse(arLinea[2]);
                        dSize = double.Parse(arLinea[3]);
                        sValore = drStampa[arLinea[4]].ToString();
                        BackColor = Color.FromName(arLinea[5]);
                        bBold = bool.Parse(arLinea[6]);
                        iCharMax = int.Parse(arLinea[7]);
                        dNextRow = double.Parse(arLinea[8]);

                        while (sValore.Length > 0)
                        {
                            if (iCharMax > sValore.Length)
                                iCharMax = sValore.Length;
                            string sRiga = sValore.Substring(0, iCharMax);
                            sValore = sValore.Remove(0, iCharMax);
                            objcRpt.AddTextMM(dStartX, dStartY, sRiga, dSize, BackColor, bBold);
                            dStartY += dNextRow;
                        }
                    }
                    catch (Exception exc)
                    {

                        objcRpt.AddTextMM(dErrStartX, dErrStartY, sLinea + " - " + exc.Message, dErrSize, Color.Red, true);
                        dErrStartY += 10;
                    }
                }

                if (arLinea[0] == "Img")
                {
                    try
                    {
                        dStartX = double.Parse(arLinea[1]);
                        dStartY = double.Parse(arLinea[2]);
                        dLenghtX = double.Parse(arLinea[3]);
                        dLenghtY = double.Parse(arLinea[4]);
                        sValore = arLinea[5];
                        //Se il valore dell'immagine è NoSignature.jpg allora non la inserisco


                        objcRpt.AddImmageMM(sValore, dStartX, dStartY, dLenghtX, dLenghtY);
                    }
                    catch (Exception exc)
                    {

                        objcRpt.AddTextMM(dErrStartX, dErrStartY, sLinea + " - " + exc.Message, dErrSize, Color.Red, true);
                        dErrStartY += 10;
                    }
                }
                if (arLinea[0] == "ImgDataSignature")
                {
                    try
                    {
                        dStartX = double.Parse(arLinea[1]);
                        dStartY = double.Parse(arLinea[2]);
                        dLenghtX = double.Parse(arLinea[3]);
                        dLenghtY = double.Parse(arLinea[4]);
                        sValore = drStampa[arLinea[5]].ToString().Replace("~/DocWeb/", "");
                        //Se l'immagine è di nessuna uimmagine allora non faccio visualizzare nulla.
                        if ("NoSignature.jpg" == sValore)
                        {
                            sValore = "";
                        }
                        else
                        {

                            sValore = ConfigurationManager.AppSettings["PathDocs"].ToString() + sValore;
                            objcRpt.AddImmageMM(sValore, dStartX, dStartY, dLenghtX, dLenghtY);
                        }
                    }
                    catch (Exception exc)
                    {

                        objcRpt.AddTextMM(dErrStartX, dErrStartY, sLinea + " - " + exc.Message, dErrSize, Color.Red, true);
                        dErrStartY += 10;
                    }
                }


                if (arLinea[0] == "CheckBox")
                {
                    try
                    {
                        dStartX = double.Parse(arLinea[1]);
                        dStartY = double.Parse(arLinea[2]);
                        dLenghtY = double.Parse(arLinea[3]);
                        dSize = double.Parse(arLinea[4]);
                        sValore = arLinea[5];
                        bValue = bool.Parse(arLinea[6]);
                        bBold = bool.Parse(arLinea[7]);
                        BackColor = Color.FromName(arLinea[8]);
                        objcRpt.AddCheckBoxMM(sValore, bValue, dSize, BackColor, bBold, dStartX, dStartY, dLenghtY);
                    }
                    catch (Exception exc)
                    {

                        objcRpt.AddTextMM(dErrStartX, dErrStartY, sLinea + " - " + exc.Message, dErrSize, Color.Red, true);
                        dErrStartY += 10;
                    }
                }
                if (arLinea[0] == "CheckBoxData")
                {
                    try
                    {
                        dStartX = double.Parse(arLinea[1]);
                        dStartY = double.Parse(arLinea[2]);
                        dLenghtY = double.Parse(arLinea[3]);
                        dSize = double.Parse(arLinea[4]);
                        sValore = arLinea[5];
                        bValue = (bool)drStampa[arLinea[6]];
                        bBold = bool.Parse(arLinea[7]);
                        BackColor = Color.FromName(arLinea[8]);
                        objcRpt.AddCheckBoxMM(sValore, bValue, dSize, BackColor, bBold, dStartX, dStartY, dLenghtY);
                    }
                    catch (Exception exc)
                    {

                        objcRpt.AddTextMM(dErrStartX, dErrStartY, sLinea + " - " + exc.Message, dErrSize, Color.Red, true);
                        dErrStartY += 10;
                    }
                }
                    }
                catch (Exception exc)
                {

                    objcRpt.AddTextMM(dErrStartX, dErrStartY, sLinea + " - " + exc.Message, dErrSize, Color.Red, true);
                    dErrStartY += 10;
                }
            }


            //If Stampa Pianificazione
            if (Path.GetFileName(NomeFileStampa) == "ModuloRichiestaAssistenza.report")
            {
                StampaScadenzeClientePerPianificazione((int)drStampa["IDCli"]);
            }
            //If Stampa Rapportino
            if (Path.GetFileName(NomeFileStampa) == "ModuloRapportoTecnico.report")
            {
                StampaRigheRapportino((int)drStampa["IDRapportino"]);
            }
        }
        catch { }
        finally
        {
            sr.Close();
        }
        return true;
    }