229 messaggi dal 20 novembre 2014
Ciao a tutti,
da ore sto impazzendo su un errore senza senso, provo a stampare una tabella in pdf usando Rotativa, preciso che le stesse funzioni le uso altrove e vanno bene qui mi chiama la prima funzione ma non chiama quella che fa la vera e propria stampa... ovviamente non restituisce nessun errore per cui le ho provate tutte ma non capisco perchè non la chiama, posto un po di codice

html
<text> |</text><input type="button" class="button-less" value="Scarica PDF" onclick="getValuePDF();"/>
<script>

    var eventsUrl1 = '/ProgrammazioneAT/GeneratePDFAttivita';
    function getValuePDF() {
        var calendar = $("#calendar");
        calendar.fullCalendar('removeEventSources');
        calendar.fullCalendar('addEventSource', eventsUrl1 + '?filter=' + arrSelected);
    }

    </script>


controller
public ActionResult pdfAttivita(DateTime pstart, DateTime pend, string pfilter)
        {
            
            //Faccio la query per prendere tutti i committenti
            SqlConnection connection = new SqlConnection(System.Configuration.ConfigurationManager.ConnectionStrings["analisidb"].ConnectionString);
            string queryString = queryString = "select Cod_Cliente,Rag_Sociale,Indirizzo,Localita,CAP from t_clienti";

            SqlCommand command = new SqlCommand(queryString, connection);

            var model = new List<V_Clienti>();
            try
            {
                connection.Open();
                SqlDataReader reader = command.ExecuteReader();

                while (reader.Read())
                {
                    var clienti = new V_Clienti();
                    clienti.ID = reader[0].ToString();
                    clienti.ragsociale = reader[1].ToString();
                    clienti.indirizzo = reader[2].ToString();
                    clienti.Localita = reader[3].ToString();
                    clienti.CAP = reader[4].ToString();
                    model.Add(clienti);
                }
                reader.Close();
            }
            catch (Exception ex)
            {
                Console.WriteLine(ex.Message);
            }

            var que0 = (from p in db.ProgrammazioneAT
                        join per in db.Personale
                        on p.OperatoreResponsabile equals per.IDPersonale
                        //where (p.DataInizio >= System.DateTime.Today) && (per.NomeUtente == User.Identity.Name || p.OperatoriProgAT.Any(x => x.nomeUtenteOperatore == User.Identity.Name))
                        where (p.DataInizio >= pstart) && (p.DataFine <= pend)
                        select new V_ProgrammazioneAT()
                        {
                            Attivita = p.Attivita,
                            Attivo = p.Attivo,
                            DataFine = p.DataFine,
                            DataInizio = p.DataInizio,
                            IDProgrammazioneAT = p.IDProgrammazioneAT,
                            Luogo = p.Luogo,
                            Note = p.Note,
                            NumTecnici = p.NumTecnici,
                            OperatoreResponsabile = per.Nome + " " + per.Cognome,
                            Modifica = p.Modifica,
                            Utente = p.Utente,
                            Committente = p.Committente.ToString(),
                            Colore = p.Colore
                        }).ToList();

            if (User.Identity.Name.Equals("administrator") || User.Identity.Name.Equals("fgiglio") || User.Identity.Name.Equals("frgiglio"))
            {
                que0 = (from p in db.ProgrammazioneAT
                        join per in db.Personale
                        on p.OperatoreResponsabile equals per.IDPersonale
                        select new V_ProgrammazioneAT()
                        {
                            Attivita = p.Attivita,
                            Attivo = p.Attivo,
                            DataFine = p.DataFine,
                            DataInizio = p.DataInizio,
                            IDProgrammazioneAT = p.IDProgrammazioneAT,
                            Luogo = p.Luogo,
                            Note = p.Note,
                            NumTecnici = p.NumTecnici,
                            OperatoreResponsabile = per.Nome + " " + per.Cognome,
                            Modifica = p.Modifica,
                            Utente = p.Utente,
                            Committente = p.Committente.ToString(),
                            Colore = p.Colore
                        }).ToList();
            }

            var que = from p in que0
                      join c in model
                      on p.Committente equals c.ID
                      select new V_ProgrammazioneAT()
                      {
                          Attivita = p.Attivita,
                          Attivo = p.Attivo,
                          Committente = c.ragsociale,
                          DataFine = p.DataFine,
                          DataInizio = p.DataInizio,
                          IDProgrammazioneAT = p.IDProgrammazioneAT,
                          Luogo = p.Luogo,
                          Note = p.Note,
                          NumTecnici = p.NumTecnici,
                          OperatoreResponsabile = p.OperatoreResponsabile,
                          Modifica = p.Modifica,
                          Utente = p.Utente,
                          Colore = p.Colore
                      };

            que = que.OrderBy(x => x.DataInizio);
            return View(que.ToList());

        }

        public ActionResult GeneratePDFAttivita(DateTime start, DateTime end, string filter)
        {
            return new Rotativa.ActionAsPdf("pdfAttivita", new { pstart = start, pend = end, pfilter = filter })
            {
                FileName = "AttivitaProgrammate.pdf",
                PageOrientation = Rotativa.Options.Orientation.Landscape,
                PageSize = Rotativa.Options.Size.A4
            };
        }


Come si capisce dal codice js chiama "GeneratePDFAttivita" passando dei parametri e fin li tutto bene, poi Rotativa dice che posso chiamare l'altra funzione, quella che crea il modello html e lo stampa e fin qui ok, il problema è che questa maledetta pdfAttivita non viene chiamata! ma cosa c'è che non la fa partire?

Grazie
229 messaggi dal 20 novembre 2014
Nessuno ha idea? sono l'unico che usa questa libreria?
229 messaggi dal 20 novembre 2014
Se può servire a qualcuno... il problema sta in almeno 2 punti:1 non posso chiamare la funzione con ajax, 2 il controller che gestisce la stampa non deve essere [Authorize]

Torna al forum | Feed RSS

ASPItalia.com non è responsabile per il contenuto dei messaggi presenti su questo servizio, non avendo nessun controllo sui messaggi postati nei propri forum, che rappresentano l'espressione del pensiero degli autori.