martedì 26 gennaio 2016

Crystal Report somma di un campo

Nel caso che dobbiamo effettuare la somma di un campo, possiamo utilizzare la parola chiave di Crystal report "SUM" da utilizzare nelle formule.
Oltre ad indicare il campo su cui effettuare la somma, possiamo anche dire in base a quale campo raggruppare i valori, ossia selezionarli secondo un certo valore.
Qui di seguito si riporta un frammento di codice da utilizzare nella finestra delle formule di Crystal Report.
Sum({@Formula},{NomeTabella.NomeCampo})
come si vede nell'esempio precedente, il primo parametro riguarda una formula che trasforma il campo della tabella in un valore numerico, mentre il secondo, il campo di riferimento su cui raggruppare i dati.

Qui di seguito invece
Sum({Tabella.NomeCampo},{Tabella.NomeCampo})
un esempio, in cui il primo parametro è il campo di tipo numerico ed il secondo il campo di raggupamento.

lunedì 18 gennaio 2016

crystal report is number verificare se un valore è numerico

Nel caso che dovete verificare nella finestre delle formule di Crystal Report, se un valore è numerico oppure no, tramite la funzione IsNumeric(Valore) potete verificare se il valore è un numerico.

Esempio:

If (IsNumeric({NomeTabella.NomeCampo} = True ) then
'Ok Numerico
else
'False no numero


domenica 17 gennaio 2016

Free ebook: Enterprise Cloud Strategy

Enterprise Cloud Strategy















Altro nuovo ebook gratuito offerto da Microsoft Press, questa volta dedicato al mondo Cloud.

Come potete riporto qui http://blogs.msdn.com/b/microsoft_press/archive/2016/01/15/free-ebook-enterprise-cloud-strategy.aspx la possibilità di scaricare un ebook in formato pdf o versione per dispositivi mobili, in lingua inglese, sul mondo Cloud.

Per maggiori informazioni ed altro visitate il sito indicato.

mercoledì 13 gennaio 2016

Sviluppo di applicazioni per Office 2016 .Net

Si riporta l'articolo scritto per il sito http://www.iprogrammatori.it/articoli/programmazione/art_configurazione-office-2016-e-visual-stud_1462.aspx 


In questo articolo vedremo come sviluppare applicazioni per office 2016 in ambiente .Net 2015, ed in particolare tramite Visual Studio 2015. Utilizzeremo la versione di prova di Office 2016 e in ambiente Windows 10.

Prima di tutto dobbiamo installare o scaricare la versione di Office2016, premessa, al momento della stesura di questo articolo la versione trial, per tanto invitiamo le persone ad utilizzarlo su pc di prova, di test, ricordiamo che l’installazione di Office2016 può sostituire ed aggiornare una versione presente, con la conseguenza di perdere la licenza.

Configurazione ambiente di sviluppo

Da questo sito https://products.office.com/it-it/home si può scaricare la versione di prova. Dopo aver fatto doppio click sul file di setup (installazione) verrà avviata l’installazione, nel quale ci fornisce indicazioni sui vari applicativi che verranno installati, il tutto come mostrato in figura 1.


Figura 1 – i programmi che verranno installati.


Durante l’installazione i loghi dei vari prodotti prenderanno colore, e la barra che sta ad indicare l’attuale installazione avanzerà (figura 2)


Figura 2 – L’installazione dei vari applicativi.


A questo punto, una finestra amichevole (figura 3) ci informerà che l’installazione è andata a buon fine e possiamo iniziare ad utilizzare office 2016.


Figura 3 – la finestra dell’avvenuta installazione.


A questo punto se apriamo Visual Studio 2015, non troviamo la voce per sviluppare in ambito office, dobbiamo scaricare il tools per office.
Il programmazione d’installazione si scarica dal seguente sito http://aka.ms/officedevtoolsforvs2015 .
A questo punto facciamo doppio click sul programma d’installazione, verrà avviata un wizard, ossia l’assistenza durante l’installazione.
La prima schermata ci fornisce un riepilogo di ciò che verrà installato (figura 4 ) con le informazioni di download, delle dimensione dell’installazione e tanto altro.


Figura 4 – la finestra che fornisce informazioni sull’installazione.


Se facciamo click sulla voce “Opzioni” (figura 5) viene aperta in cui ci chiede alcune informazioni sull’installazione in particolare se partecipare o no al programma di utilizzo del software ai fini statistici per Microsoft.

Figura 5 – La finestra delle opzioni.


Se vogliamo possiamo togliere la spunta su “Si, Desidero partecipare al programma analisi di utilizzo software”.

Facciamo click sul pulsante “Installa”, verrà avviato il programma di installazione (figura 6 ).



Figura 6 – Installazione dei componenti per lo sviluppo di Office

Se facciamo click sul pulsante “Accetto” verrà avviato il programma d’installazione.

Figura 7 – L’avvio del programma d’installazione.


Al click del pulsante “Installa” verrà avviata l’installazione, che installerà tutti i componenti (figura 8).



Figura 8 – I componenti che verranno installati.

A questo punto avremmo tutti i componenti per sviluppare applicazioni per office.

Creazione della prima applicazione

Apriamo Visual Studio 2015 community e selezioniamo la categoria Office/Sharepoint nel linguaggio di nostro interesse. Tra i modelli presenti, selezioniamo “App per Office”, a questo punto confermiamo il tutto.
Selezionando tale progetto, il programmatore verrà guidato nella creazione di un app per office, nel passaggio successivo, ci verrà chiesto che tipo di applicazione creare il tutto come mostrato in figura 9.


Figura 9 – La scelta del tipo di app.

Le scelte che abbiamo a disposizione sono tre, il riquadro attività, ossia la possibilità di programmare la parte situata nel lato destro, il contenuto, all’interno di un documento di Microsoft Office, e quindi dove si interagisce più spesso, ed infine uno per il programma di posta elettronica.
Lasciamo il valore di default, ossia “Riquadro attività”.
Se facciamo click sul pulsante “Avanti” ci verrà chiesto per quali applicativi di Office, vogliamo creare la nostra app, il tutto come mostrato in figura 10.


Figura 10 - La scelta dell’applicativo su cui vogliamo creare app


Facciamo click sul pulsante “Fine”.
Verrà aperto il progetto con tutti i file. Come si nota, troviamo alcuni file di tipo web, questo perché le app per Office, non sono altro che semplici pagine web. Di default, la pagina che viene creata si chiama home.html, nel quale troviamo le impostazioni per la visualizzazione del riquadro attività.


Figura 11 – la pagina home


Se eseguiamo il programma, ci verrà chiesto se il certificato per la nostra applicazione è attendibile, ossia che certifica l’integrità del nostro programma.
Facciamo click sul pulsante “Si”.

Figura 12 – la finestra di sicurezza per il certificato.


Di conseguenza verrà installato il certificato, e la sicurezza del nostro sistema, ci informa se vogliamo procedere all’installazione di tale certificato, il tutto come mostrato in figura 13.



Figura 13 – L’installazione del certificato.

Dopo aver fatto click sul pulsante “SI”, viene visualizzata una finestra (14 ) che indica che la nostra app, verrà testata su IIS Express, nel caso che abbiamo installato solo come webserver tale dispositivo.

Figura 14 – la richiesta del webserver


Può capitare che durante l’apertura del programma di office (Excel o Word ) venga visualizzata una schermata in cui ci chiede di fare attenzione, la stessa che troviamo nel browser di Internet Explorer quando visitiamo alcuni siti con certificati scaduti o altro.
Facciamo click sulla voce “Continuare con il sito web”.



Figura 15 - La visualizzazione della sicurezza web


A questo punto verrà visualizzata la nostra app in uno dei programma di office



Figura 16 – L’app in esecuzione.

A questo punto non ci resta che eseguire il nostro programma, in particolare, il frammento di codice che troviamo di default durante la creazione.

Conclusioni

La configurazione dell'ambiente di sviluppo sviluppo di Office in ambito App non è complesso, il programmatore troverà la creazione di applicazioni per Office agevolato se proveniente dalla programmazione web, trovandosi il modo di lavoro simile.
Questa nuova architettura di sviluppare app, offre opportunità che ogni programmatore deve valutare, perché si possono realizzare interessanti progetti che possono portare a guadagni. La creazione di app per Office, permetterà di pubblicarli nello store di Office ed avere la possibilità che questi vengono acquistate ed utilizzati sia da aziende che da utilizzatori finali.

martedì 12 gennaio 2016

Crystal Report formula Select Case

Nelle formule delle funzioni di Crystal Report, possiamo utilizzare la parola chiave select case, come avviene per la maggior parte dei linguaggi di programmazione.

Qui di seguito un esempio.

Select {Tabella.Campo}

Case 1,2,3:

"Risultato A"


Case 4 to 9:

"Risultato B"

Case 5

"Risultato C"

Default:
"Nessun Risultato"

lunedì 11 gennaio 2016

C# Calculating MD5 of UTF-8 encoded string

L'esempio qui di seguito, illustra una tecnica nel linguaggio di programmazione C#, di come ottenere un valore MD5 da una variabile di tipo string.

private string GetTextMD5EncodingUtf8(string Testo)
    {
     
        using (MD5 md5Hash = MD5.Create())
        {
            byte[] dati = md5Hash.ComputeHash(Encoding.UTF8.GetBytes(Testo));
            StringBuilder sBuilder = new StringBuilder();
            for (int i = 0; i < dati.Length; i++)
            {
                sBuilder.Append(dati[i].ToString("x2"));
            }
            return sBuilder.ToString();
        }
    }

domenica 10 gennaio 2016

Crystal Report cercare del testo in una stringa tramite la funzione Instr

Nel caso che nelle formule di Crystal Report dobbiamo cercare del testo in un determinato campo possiamo utilizzare la funzione Instr, che passando come parametri, la stringa da esaminare (o campo db) e testo da cercare ci restituisce la posizione.

Qui di seguito un esempio di codice.

if (Instr({Tabella.Campo}, 'Valore')> 0 then
"Trovato"
else
"Non Trovato"

sabato 9 gennaio 2016

.Net Convertire un array di byte in String

Il frammento di codice qui di seguito, illustra una tecnica di come convertire un array di byte in una string.


C#
Byte[] ArrBytes = Metodo();
var MiaVariabile = System.Text.Encoding.Default.GetString(ArrBytes);

VB.Net
Dim ArrBytes() as Byte= Metodo
dim MiaVariabile = System.Text.Encoding.Default.GetString(ArrBytes)

venerdì 8 gennaio 2016

Download Free ebook Introducing Microsoft SQL Server 2016: Mission-Critical Applications, Deeper Insights, Hyperscale Cloud, Preview Edition
















Un piccolo ma interessante manualetto in lingua inglese da scaricare gratuitamente sulla nuova versione di Sql Server 2016.
Come riportato in questo post http://blogs.msdn.com/b/microsoft_press/archive/2015/12/22/free-ebook-introducing-microsoft-sql-server-2016-mission-critical-applications-deeper-insights-hyperscale-cloud-preview-edition.aspx potete scaricare in formato "Pdf" oppure mobile, un manuale introduttivo alla nuova versione del database di Microsoft.


Che dirvi.... buona lettura....






giovedì 7 gennaio 2016

.Net Generare un file PDF contenente una tabella tramite ItextSharp VB.Net e C#

Si riporta l'articolo scritto per il sito http://www.iprogrammatori.it/articoli/programmazione/art_generare-un-file-pdf-contenente-una-tabe_1419.aspx

In questo articolo vedremo come generare un file “Pdf” tramite la tecnologia .Net sia in ambiente Web che in ambiente Windows Application, utilizzando i due linguaggi di programmazione più utilizzati VB.Net e C#
La generazione del file avviene tramite il componente iTextSharp. che abbiamo visto il relativo utilizzo in un precedente articolo http://www.iprogrammatori.it/articoli/programmazione/art_generare-file-pdf-in-net-vbnet-e-c_1417.aspx

Stesura del codice

Creare un progetto di tipo Web e Windows Application in base al proprio linguaggio di programmazione.
Nella form, aggiungete un pulsante, il quale permetterà di generare una tabella con tre colonne ed un titolo.
Passate in visualizzazione codice, ed aggiungere il seguente spazio dei nomi, ricordando di aver aggiunto tra i riferimenti la libreria "ItextSharp".


VB.Net

Imports iTextSharp.text

Imports iTextSharp.text.pdf

 

C#

using iTextSharp.text;

using iTextSharp.text.pdf;

 

 A questo punto nell’evento click del pulsante dobbiamo scrivere il codice che permette tramite la classe “PdfTable” di creare una tabella, se viene passato un valore di tipo numero, indicherà  il numero delle colonne.
Naturalmente l’oggetto PdfTable contiene diverse proprietà che ci permette di gestire l’allineamento, se visualizzare o no il border, ed altro ancora.
Qui di seguito si riporta il frammento di codice per entrambi i linguaggi e per entrambi l’architettura.

 
Web.

VB.Net

Protected Sub BtnGeneraTable_Click(sender As Object, e As EventArgs) Handles BtnGeneraTable.Click

        Dim Documento As New Document(PageSize.A4, 100, 100, 25, 25)

 

        Dim output = New MemoryStream()

 

 

        'Dim fileStream As New FileStream("E:\test.pdf", FileMode.Create, FileAccess.Write, FileShare.None)

 

        Dim Scrittura As PdfWriter = PdfWriter.GetInstance(Documento, output)

 

        Documento.Open()

 

        'Tabella con tre colonne

        Dim tabella As New PdfPTable(3)

        'dimensione

        tabella.TotalWidth = 550.0F

        'larghezza colonne

        Dim larghezzaColonne As Single() = New Single() {150.0F, 150.0F, 150.0F}

        tabella.SetWidths(larghezzaColonne)

        tabella.HorizontalAlignment = 0  'left

        'titolo

        Dim cellaTitolo As New PdfPCell(New Phrase("Iscritti "))

        cellaTitolo.HorizontalAlignment = 1 'center

        cellaTitolo.Border = 0

        cellaTitolo.Colspan = 3

        tabella.AddCell(cellaTitolo)

        Dim SottoTitolo = FontFactory.GetFont("Arial", 14, iTextSharp.text.Font.BOLD)

        tabella.AddCell(New Phrase("Nome", SottoTitolo))

        tabella.AddCell(New Phrase("Cognome", SottoTitolo))

        tabella.AddCell(New Phrase("Città", SottoTitolo))

        'valorizzo con il  testo

        tabella.AddCell("Emanuele")

        tabella.AddCell("Mattei")

        tabella.AddCell("Roma")

        tabella.AddCell("Marco")

        tabella.AddCell("Maffei")

        tabella.AddCell("Mantova")

 

        Documento.Add(tabella)

 

        Documento.Close()


        Me.Response.BufferOutput = True

        Me.Response.Clear()

        Me.Response.ClearHeaders()

        Me.Response.ContentType = "application/octet-stream"

 

        Me.Response.AddHeader("Content-Disposition", "attachment; filename=test.pdf")

 

        Me.Response.BinaryWrite(output.GetBuffer())

 

        Me.Response.Flush()

        Me.Response.End()

 

    End Sub

 

C#

    protected void BtnGeneraTable_Click(object sender, EventArgs e)

        {

            Document Documento = new Document(PageSize.A4, 100, 100, 25, 25);

 

 

            MemoryStream output = new MemoryStream();

 

 

            PdfWriter Scrittura = PdfWriter.GetInstance(Documento, output);

 

            Documento.Open();

 

            //Tabella con tre colonne

            PdfPTable tabella = new PdfPTable(3);

            //dimensione

            tabella.TotalWidth = 550f;

            //larghezza colonne

            float[] larghezzaColonne = new float[] { 150f, 150f, 150f };

            tabella.SetWidths(larghezzaColonne);

            tabella.HorizontalAlignment = 0; //left

            //titolo

            PdfPCell cellaTitolo = new PdfPCell(new Phrase("Iscritti "));

            cellaTitolo.HorizontalAlignment = 1; //center

            cellaTitolo.Border = 0;

            cellaTitolo.Colspan = 3;

            tabella.AddCell(cellaTitolo);

            var SottoTitolo = FontFactory.GetFont("Arial", 14, iTextSharp.text.Font.BOLD);

            tabella.AddCell(new Phrase("Nome", SottoTitolo));

            tabella.AddCell(new Phrase("Cognome", SottoTitolo));

            tabella.AddCell(new Phrase("Città", SottoTitolo));

            //valorizzo con il  testo

            tabella.AddCell("Emanuele");

            tabella.AddCell("Mattei");

            tabella.AddCell("Roma");

            tabella.AddCell("Marco");

            tabella.AddCell("Maffei");

            tabella.AddCell("Mantova");

            Documento.Add(tabella);

            Documento.Close();

 
           this.Response.BufferOutput = true;

            this.Response.Clear();

            this.Response.ClearHeaders();

            this.Response.ContentType = "application/octet-stream";
            this.Response.AddHeader("Content-Disposition", "attachment; filename=test.pdf");

             this.Response.BinaryWrite(output.GetBuffer());

             this.Response.Flush();

            this.Response.End();

        }


Qui di seguito il codice per lo sviluppo di tipo applicazioni per Windows, ossia desktop.




Windows Application

 

VB.Net

  'Tabella con tre colonne

        Dim tabella As New PdfPTable(3)

        'dimensione

        tabella.TotalWidth = 550.0F

        'larghezza colonne

        Dim larghezzaColonne As Single() = New Single() {150.0F, 150.0F, 150.0F}

        tabella.SetWidths(larghezzaColonne)

        tabella.HorizontalAlignment = 0  'left

        'titolo

        Dim cellaTitolo As New PdfPCell(New Phrase("Iscritti "))

        cellaTitolo.HorizontalAlignment = 1 'center

        cellaTitolo.Border = 0

        cellaTitolo.Colspan = 3

        tabella.AddCell(cellaTitolo)

        Dim SottoTitolo = FontFactory.GetFont("Arial", 14, iTextSharp.text.Font.BOLD)

        tabella.AddCell(New Phrase("Nome", SottoTitolo))

        tabella.AddCell(New Phrase("Cognome", SottoTitolo))

        tabella.AddCell(New Phrase("Città", SottoTitolo))

        'valorizzo con il  testo

        tabella.AddCell("Emanuele")

        tabella.AddCell("Mattei")

        tabella.AddCell("Roma")

        tabella.AddCell("Marco")

        tabella.AddCell("Maffei")

        tabella.AddCell("Mantova")

        Dim Documento As New Document(PageSize.A4, 100, 100, 25, 25)

        Dim fileStream As New FileStream("E:\testTabellavb.pdf", FileMode.Create, FileAccess.Write, FileShare.None)

 

        Dim Scrittura As PdfWriter = PdfWriter.GetInstance(Documento, fileStream)

 

        Documento.Open()

 
        Documento.Add(tabella)

 
        Documento.Close()

 

C#

//Tabella con tre colonne

            PdfPTable tabella = new PdfPTable(3);

            //dimensione

            tabella.TotalWidth = 550f;

            //larghezza colonne

            float[] larghezzaColonne = new float[] { 150f, 150f, 150f };

            tabella.SetWidths(larghezzaColonne);

            tabella.HorizontalAlignment = 0; //left

            //titolo

            PdfPCell cellaTitolo = new PdfPCell(new Phrase("Iscritti "));

            cellaTitolo.HorizontalAlignment = 1; //center

            cellaTitolo.Border = 0;

            cellaTitolo.Colspan = 3;

            tabella.AddCell(cellaTitolo);

            var SottoTitolo = FontFactory.GetFont("Arial", 14, iTextSharp.text.Font.BOLD);

            tabella.AddCell(new Phrase("Nome", SottoTitolo));

            tabella.AddCell(new Phrase("Cognome", SottoTitolo));

            tabella.AddCell(new Phrase("Città", SottoTitolo));

            //valorizzo con il  testo

            tabella.AddCell("Emanuele");

            tabella.AddCell("Mattei");

            tabella.AddCell("Roma");

            tabella.AddCell("Marco");

            tabella.AddCell("Maffei");

            tabella.AddCell("Mantova");

 
            Document Documento = new Document(PageSize.A4, 100, 100, 25, 25);

            FileStream fileStream = new FileStream("E:\\testTabella.pdf", FileMode.Create, FileAccess.Write, FileShare.None);

            PdfWriter Scrittura = PdfWriter.GetInstance(Documento, fileStream);

 
            Documento.Open();

 

            Documento.Add(tabella);

 
            Documento.Close();

 








Come si vede dal codice precedente, la classe PdfTable, permette di creare una tabella, che impostando varie proprietà, possiamo definire la larghezza, il bordo, il tipo di carattere etc.
Mentre la classe di tipo "PdfCell" ci permette di gestire le singole celle.
Il metodo "AddCell", crea a sua volta le varie celle con i valori che andremo ad impostare.

Conclusioni

L’articolo ha voluto fornire le basi per la creazione di un file pdf contenente una tabella. L'utilizzo della libreria gratuita ItextSharp, offre al programmatore diverse funzionalità per la manipolazione dei file pdf, oltre che alla creazione dei file. I metodi e proprietà di facile interpretazione, agevolano il lavoro di ogni programmatore.