Buscar

jueves, 26 de junio de 2008

Leer y modificar un XML desde C# .NET

Este código muestra una forma fácil de leer y modificar un
archivo XML desde .NET , utilizando un DataSet.

Espacio de nombres “System.Data”

Archivo XML (Config.xml)
-----------------------------------------------------------
<?xml version="1.0" standalone="yes"?>
<config>
<asesor>
<cedula>123456</cedula>
<email>jaas.jaas@gmail.com</email>
</asesor>
</config>

----------------------------------------------------------

Código:

using System.Data;

public
static void LeerYModificarXML()
{
/*********Para leer un valor*********************/

DataSet ds = new DataSet();//Se crea un dataset
ds.ReadXml("Config.xml");//Dirección del archivo xml
string Valor = ds.Tables["asesor"].Rows[0]["cedula"].ToString(); //Leemos el primer valor (Rows[0])

/*******Para Guardar un valor*******************/

ds.Tables["asesor"].Rows[0]["cedula"] = Valor; // Modificar un valor
ds.WriteXml("Config.xml"); // Guardamos las modificaciones

}

Copiar hojas de Excel con macros (VBA)

Este código copia una hoja de Excel a otro documento de Excel.
Este código nos resulto muy útil, cuando teníamos que generar reportes en Excel con macros, nosotros generábamos el reporte y copiábamos las hojas en otro Excel para que el usuario trabajara con el

Sub CopiarHoja(Hoja As Integer)
Dim AppExceldestino As Object
Set AppExceldestino = New Excel.Application
AppExceldestino.Workbooks.Add
AppExceldestino.Workbooks(1).Activate
Dim i As Integer
Application.CutCopyMode = False
For i = 1 To Hoja
ActiveWorkbook.Sheets(i).Activate
AppExceldestino.Sheets(i).Select
ActiveWorkbook.ActiveSheet.Range("A1:A1").Select 'se para en la primera fila
ActiveWorkbook.ActiveSheet.Range("A1:U65").Select 'se selecciona el rango de la hoja a copiar
ActiveWorkbook.ActiveSheet.Application.CutCopyMode = False
Selection.Copy 'se copia el rango selecionado
'Abro el destino y pego su contenido
AppExceldestino.ActiveWorkbook.ActiveSheet.Cells(1, 1).Select 'Selecciono la primera linea del documento nuevo
AppExceldestino.ActiveWorkbook.ActiveSheet.Paste 'Lo pego
ActiveSheet.Select
Selection.Copy
AppExceldestino.ActiveSheet.Paste
AppExceldestino.Visible = True
Next

AppExceldestino.Sheets(3).Delete
AppExceldestino.Sheets(1).Activate
AppExceldestino.ActiveWorkbook.SaveAs Filename:="Ruta", FileFormat:=xlNormal, _
Password
:="", WriteResPassword:="", ReadOnlyRecommended:=False, _
CreateBackup:=False 'Se guarda el archivo con el nombre "Ruta"
AppExceldestino.Workbooks.Close
' Se cierra
ActiveWorkbook.Sheets(1).ActivateActiveWorkbook.Activate

End Sub

martes, 24 de junio de 2008

crear citas en el Outlook desde C#

Esta es una función para crear citas en el Outlook desde C#.
para utilizar esta funcion se debe referenciar el espacio de nombre, Tambien se debe agregar a las referencias el objeto COM "Microsoft OutLook 11.0 Object Library"

using Outlook = Microsoft.Office.Interop.Outlook;

public static void CrearCita(string Asunto, string Comentario, string Ubicacion, DateTime FechaIni, DateTime FechaFin, int Aviso)
{

Outlook.Application outlookApp = (Outlook.Application)new Outlook.Application(); //Crea un objeto de OutLook Outlook.AppointmentItem Cita; //Instanciamos Un objeto de tipo Cita(AppointmentItem)

Cita = (Outlook.AppointmentItem)outlookApp.CreateItem(Microsoft.Office.Interop.Outlook.OlItemType.olAppointmentItem); Cita.Subject = Asunto;
Cita.Body = Comentario;
Cita.Location = Ubicacion;
Cita.Start = FechaIni;
Cita.End = FechaFin;
Cita.ReminderSet = true; //Para que saque el avisito de recordar cita
Cita.ReminderMinutesBeforeStart = Aviso; //El Tiempo antes de la cita que se recordará (Minutos)
Cita.BusyStatus = Microsoft.Office.Interop.Outlook.OlBusyStatus.olBusy; //Para que en el calendario salga el estado de ocupado
Cita.Save(); //Para guardar la cita

}

Digito de verificacion DIAN (Colombia)

Hace poco un amigo mió necesitaba calcular el digito
de verificación de la DIAN
(Colombia), así que me puse la tarea de buscar el código ya que
yo en cierto momento también lo necesité y es algo muy normal en
las empresas de hoy, así que aquí esta.

public string CalcularDigitoVerificacion(string Nit)
{
string
Temp;
int
Contador;
int
Residuo;
int
Acumulador;
int[] Vector = new int
[15];

Vector[0] = 3;
Vector[1] = 7;
Vector[2] = 13;
Vector[3] = 17;
Vector[4] = 19;
Vector[5] = 23;
Vector[6] = 29;
Vector[7] = 37;
Vector[8] = 41;
Vector[9] = 43;
Vector[10] = 47;
Vector[11] = 53;
Vector[12] = 59;
Vector[13] = 67;
Vector[14] = 71;

Acumulador = 0;

Residuo = 0;

for
(Contador = 0; Contador < Nit.Length; Contador++)
{
Temp = Nit[(Nit.Length - 1) - Contador].ToString();
Acumulador = Acumulador + (
Convert.ToInt32
(Temp) * Vector[Contador]);
}

Residuo = Acumulador % 11;

if
(Residuo > 1)
return Convert.ToString
(11 - Residuo);

return
Residuo.ToString();
}