gennaio 2005 Blog Posts

Data entry - Come quando e che cosa controllare

Con alcuni colleghi è stata aperta una quasi "furibonda" disputa sulla filosofia dei controlli.Il fattore "scatenante" è stato che nel database in oggetto molti controlli (direi tutti) sono sotto forma di trigger.Questo determina il fatto che tutti i dati immessi da qualsiasi parte provengano sono controllati nel medesimo modo.La cosa è molto utile quando si ha a che fare con operatori poco accorti ma diventa oltremodo fastidiosa in presenza di personale esperto oppure in presenza di procedure automatizzate di importazione.Normalmente in tutte le procedure del mondo i controlli sono impostati sulla form o in alcuni ben determinati punti cruciali della...

Impostare il colore di sfondo delle colonne di una listview singolarmente

Per poter impostare il BackColor di una colonna è necessario agire durante la creazione / aggiunta degli items nella collection della ListView. Il valore UseItemStyleForSubItems di default impostato a true va impostato a false. L'impostazione va fatta PRIMA dell'aggiunta dell'item alla collection "Items" della ListView.Dopo è possibile in ogni momento settare individualmente il BackColor di ciascun SubItem.Si può arrivare alla situazione di poter impostare una singola cella in tutta la ListView con un colore diverso. Piccolo esempio (la tabella di provenienza è "Customers" di NorthWind).   for (int k = 0; k < custDS.Tables["Customers"].Rows.Count; k++)   {    DataRow dr = custDS.Tables["Customers"].Rows[k];    ListViewItem item = new ListViewItem();    item.SubItems.Clear();    //prima di aggiungere si imposta UseItemStyleForSubItems =...

YAC2L ovvero Yet Another Cifre to Lettere - Trasformazione di cifre in lettere

Dedico questa funzione ai pochi che ancora non si sono dilettati nell'esercizio.Sono interessato alla medesima soluzione magari realizzata con altro metodo (o anche come miglioramento di questa!).Per i pochi a cui interessa ho pubblicato anche una versione per MBS Navision Attain using System;using System.Data;namespace ProvaModuliCs{     /// <summary>    /// Description of CifreLettere.    /// </summary>    public class CifreLettere    {         public CifreLettere()        {        }        private string Unita(int k)       {            string[] lettere = {"","uno","due","tre","quattro","cinque","sei","sette",                                           "otto","nove","dieci","undici","dodici","tredici","quattordici",                                           "quindici","sedici","diciassette","diciotto","diciannove"};             if ((k < 0) || (k > lettere.Length - 1))                return "";            return lettere[k];       }        private string Decine(int k)       {           string[] lettere = {"","dieci","venti","trenta","quaranta","cinquanta","sessanta","settanta","ottanta","novanta"};            if ((k < 0) || (k > lettere.Length -...

Verificare se i moduli di office sono installati

Una piccola funzione per la verifica dell'installazione di office e dei suoi moduli. using Microsoft.Win32;  // Office Applications Enumeration  enum OfficeApplications  {      Word = 0,      Access = 1,      Excel = 2,      PowerPoint = 3,      Outlook = 4  }   /// <summary>  /// Test per Verifica se installazione office presente  /// </summary>  /// <param name="office">Enum OfficeApplications Parameter</param>  /// <returns>bool</returns>  private bool IsOfficeInstalled(OfficeApplications office)  {   string s = "";   bool result;    switch(office)   {    case OfficeApplications.Word:     s = "Word.Document";     break;    case OfficeApplications.Excel:     s = "Excel.Sheet";     break;    case OfficeApplications.Access:     s = "Access.Database";     break;    case OfficeApplications.PowerPoint:     s = "PowerPoint.Slide";     break;    case OfficeApplications.Outlook:     s = "Outlook.Envelope";     break;   }   s += "\\CurVer";   try   {    RegistryKey regKey = Registry.ClassesRoot;    regKey = regKey.OpenSubKey(s);    result = (regKey != null);   }   catch   {    result = false;   }   return result;  }  

Copyright © Luciano Bastianello

Design by Bartosz Brzezinski

Design by Phil Haack Based On A Design By Bartosz Brzezinski