Attribute VB_Name = "ModuloDecodTipoDati"
'La Funzione copntenuta in questo modulo mi restituisce o "S" o "N" a seconda che il valore del _
 Tipo del Campo della tabella SQL interessata sia di tipo Stringa o Numerico. _
 La codifica l'ho verificata guardando la proprietà "RS.Fields(Index).Type" dell'oggetto Recordset
    
    
'VALORI CAMPI DATABASE SQL SERVER:
'  bigint            = 20     N
'  binary            = 128    -
'  bit               = 11     N
'  char              = 129    S
'  datetime          = 135    S
'  decimal           = 131    N
'  float             = 5      N
'  image             = 205    -
'  integer           = 3      N
'  money             = 6      N
'  nchar             = 130    S
'  ntext             = 203    S
'  numeric           = 131    N
'  nvarchar          = 202    S
'  real              = 4      N
'  smalldatetime     = 135    S
'  smallint          = 2      N
'  smallmoney        = 6      N
'  sql_variant       = 12     -
'  text              = 201    S
'  timestamp         = 128    -
'  tinyint           = 17     N
'  uniqueidentifier  = 72     -
'  varbinary         = 204    -
'  varchar           = 200    S


Public Function DecodTipoCampo(Codice_Tipo As Integer) As String

   Select Case Codice_Tipo
   Case 20, 11, 131, 5, 3, 6, 4, 2, 17
      DecodTipoCampo = "N"
   Case 129, 135, 130, 203, 202, 201, 200
      DecodTipoCampo = "S"
   Case Else
      DecodTipoCampo = "S"
   End Select

End Function

'Public Function DecodNomeCampo(NomeCampo As String) As String
'   Dim RS As ADODB.Recordset
'   Dim strRicerca As String
'
'   strRicerca = "Select * from DECOD_CAMPI where CAM_NOM = '" & NomeCampo & "'"
'   Set RS = New ADODB.Recordset
'   RS.Open strRicerca, ConnessioneGenerale, adOpenStatic
'   If RS.EOF Then
'      DecodNomeCampo = ""
'   Else
'      DecodNomeCampo = NonNullo(RS!CAM_DES)
'   End If
'   RS.Close
'End Function
'
'Public Function DecodWidthColonna(NomeCampo As String) As Integer
'   Dim RS As ADODB.Recordset
'   Dim strRicerca As String
'
'   strRicerca = "Select * from DECOD_CAMPI where CAM_NOM = '" & NomeCampo & "'"
'   Set RS = New ADODB.Recordset
'   RS.Open strRicerca, ConnessioneGenerale, adOpenStatic
'   If RS.EOF Then
'      DecodWidthColonna = 0
'   Else
'      DecodWidthColonna = RS!CAM_LEN
'   End If
'   RS.Close
'End Function

Public Sub ImpostaTxtRicercaSuTipoDato(par_TipoDato As String, CtlText As Object, par_LenCampo As Integer, par_Decimali As Byte)
   'Qui controllo ed imposto il text se deve essere STRINGA o NUMERICO! _
    Passo il valore del tipo di dato della colonna selezionata e poi passo il Text su cui effetttuare le modifiche
   
   If par_TipoDato = "N" Then
      CtlText.Alignment = vbRightJustify
      CtlText = FormattaCampoNumerico(0, par_Decimali)
      CtlText.HelpContextID = par_Decimali 'Imposto il numero dei decimali nella proprieta' cosi' posso controllare nella Funzione "ControlloCampiNumero" del modulo CControl (Multicasting)
   ElseIf par_TipoDato = "S" Then
      CtlText.Alignment = vbLeftJustify
      CtlText = ""
      CtlText.MaxLength = par_LenCampo
   End If
   If CtlText.Enabled And CtlText.Visible Then CtlText.SetFocus
End Sub

Public Function ImpostaFormatStringGriglia(ctlGriglia As Object) As String
   Dim i As Byte

   'Scorro le Righe della Griglia
   For i = 1 To ctlGriglia.Rows - 1
      Select Case ctlGriglia.TextMatrix(i, 1)
         Case "N"
            ImpostaFormatStringGriglia = ImpostaFormatStringGriglia & ">" & ctlGriglia.TextMatrix(i, 2) & "|"
         Case "S"
            ImpostaFormatStringGriglia = ImpostaFormatStringGriglia & "<" & ctlGriglia.TextMatrix(i, 2) & "|"
      End Select
   Next i
End Function

'Public Function ImpostaWidthGriglia(ctlGriglia As Object, ctlGrigliaPrincipale As Object) As String
'   Dim i As Byte
'
'   'Scorro le righe della Griglia
'   For i = 1 To ctlGriglia.Rows - 1
'      ctlGrigliaPrincipale.ColWidth(i - 1) = ctlGriglia.TextMatrix(i, 5)
'   Next i
'   ctlGrigliaPrincipale.ColWidth(ctlGrigliaPrincipale.Cols - 1) = ctlGrigliaPrincipale.Width
'End Function



