Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Varios
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 04-06-2006
Avatar de Enan0
Enan0 Enan0 is offline
Miembro
 
Registrado: may 2004
Ubicación: Argentina
Posts: 565
Poder: 20
Enan0 Va por buen camino
CDO.DLL Creacion/Modificacion

aca dejo documantada informacion sobre como crear modificar y borrar citas en Outlook. lo dejo aca porque no se donde se postea
Si esta mal pido disculpas.
Saludos....


Código Delphi [-]
(* OBtener las Citas desde outlook*) (* se debe Impotar la Libreria Microsoft CDO .... desde
Proyects -> import Lybrary*) (*Luego debe ser agregada en el USES la UNIT
 MAPI_TLB, Recomiendo ponerla en la carpeta de trabajo asi tenes acceso
 a su informacion haciendo CTRL+CLIck*)  Var    F:Folder; //Carptea donde se almacenan los datos
   login :_Session; //Sesion dentro de outlook
   msgs:mapi_tlb.messages; //Lista Total de mensajes seleccionados
   msg:mapi_tlb.appointmentitem;//Mensaje (item)
   CnxTxt:string;
   aux:string;
   I:integer;

begin    login:=nil;
   //creo el objecto de connección.
   login:=CoSession.Create;
   //Conformacion de la cadena de conexion para loguearse en un servidor de Exchange.
   a:= trim(trim('ServerName') +#10+trim('UserName'));
   login.Logon('','',true,true,0,true,a);
   //Obtengo la Carpeta donde se almacenan las Citas
   //esta informacion se encuentra en la CDO.DLL
   f:=idispatch(login.GetDefaultFolder(0)) as mapi_tlb.folder;
   //Obtengo Toda la lista de Mensajes almacenados
   msgs:= idispatch(f.messages) as mapi_tlb.messages;
   //Realizo un Filtrado para obtener solo las Citas
   //esto puede ser mas especifico como filtrar por fechas Etc
   //se obtiene el primer item de la lista.
   msg:=Idispatch(msgs.GetFirst('IPM.Appointment')) as appointmentitem;
   while msg<>nil do    begin        memo1.lines.add('*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*');
       memo1.lines.add('Subject: ' + string(msg.subject));
       memo1.lines.add('ID: ' + string(msg.id));
       Memo1.lines.add('Start Date: ' + string(msg.starttime));
       Memo1.lines.add('End Date: ' + string(msg.endtime));
       Memo1.lines.add('TimeCreated: ' + string(msg.TimeCreated));
       memo1.lines.add('*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*');
       //los nombre de los Campos los podes obtener de la mapi_tlb
       //Obtengo el Siguiente iTem de la lista
       msg:=Idispatch(msgs.GetNext ) as AppointmentItem;
    end;

    //PAra modificar algun valor simplemente asignarle el nuevo valor al campo
    //y finalmente ejecutar:'
    // msg.Update(true,True);
 // Ejemplo voy a editar a todas las Descripciones agregandoles el numero de Item
   msg:=Idispatch(msgs.GetFirst('IPM.Appointment')) as appointmentitem;
   i:=1;
   while msg<>nil do    begin       aux:=msg.subject;       msg.subject:=aux + ' Item Nº: (' + inttostr(i) +')';
      msg.update(true,True);
      inc(i);
      msg:=Idispatch(msgs.GetNext ) as AppointmentItem;
    end;


//Para borrar simplemente llamar el metodo
 msg.delete;   end;

// Crear nueva CITA
 Const   CdoPropSetID1 = '0220060000000000C000000000000046'; // Used in appointment item properties. Message class: IPM.Appointment
  CdoPropSetID2 = '0320060000000000C000000000000046'; // Used in task item properties. Message class: IPM.Task
  CdoPropSetID3 = '0420060000000000C000000000000046'; // Used in contact item properties. Message class: IPM.Contact
  CdoPropSetID4 = '0820060000000000C000000000000046'; // Common Outlook ID. Used with common contact, task and appointment item properties (e. g. reminders)
  CdoPropSetID5 = '2903020000000000C000000000000046'; // Generic MAPI ID. Used with all type of item properties (e. g. categories)
  CdoPropSetID6 = '0E20060000000000C000000000000046'; // Used in note item properties. Message class: IPM.StickyNote
  CdoPropSetID7 = '0A20060000000000C000000000000046'; // Used in journal item properties. Message class: IPM.Activity
     //TaskCategories       = 'Keywords'; {CdoPropSetID5}
  TaskReminderOverride     = '0x851C'; {CdoPropSetID4}   TaskReminderSound        = '0x851E'; {CdoPropSetID4}   TaskReminderSet          = '0x8503'; {CdoPropSetID4}   TaskReminderFile         = '0x851F'; {CdoPropSetID4}   TaskReminderTime         = '0x8502'; {CdoPropSetID4}   TaskBillingInformation   = '0x8535'; {CdoPropSetID4}   TaskMileage              = '0x8534'; {CdoPropSetID4}   TaskCompanies            = '0x8539'; {CdoPropSetID4}   TaskContactNames         = '0x853A'; {CdoPropSetID4}   TaskStartDate            = '0x8104'; {CdoPropSetID2}   TaskCommonStart          = '0x8516'; {CdoPropSetID4}   TaskDueDate              = '0x8105'; {CdoPropSetID2}   TaskCommonEnd            = '0x8517'; {CdoPropSetID4}   TaskPercentComplete      = '0x8102'; {CdoPropSetID2}   TaskDateCompleted        = '0x810F'; {CdoPropSetID2}   TaskDuration             = '0x8106'; {CdoPropSetID2}   TaskTeamTask             = '0x8103'; {CdoPropSetID2}   TaskComplete             = '0x811C'; {CdoPropSetID2}   TaskTotalWork            = '0x8111'; {CdoPropSetID2}   TaskActualWork           = '0x8110'; {CdoPropSetID2}   TaskOwner                = '0x811F'; {CdoPropSetID2}   TaskStatus               = '0x8101'; {CdoPropSetID2}   TaskIsRecurring          = '0x8126'; {CdoPropSetID2}  var   cdoAppt: MAPI_TLB.Message;
  tmpCdoApptFolder : MAPI_TLB.Folder;
  cdoApp: AppointmentItem;
  AUX:String;
  auxT:TTime;
begin          tmpCdoApptFolder := idispatch(login.GetDefaultFolder(0)) as mapi_tlb.folder;
        cdoApp:=IDispatch(tmpCdoApptFolder.Messages.Add) as AppointmentItem;
        CdoApp.Subject := 'ASUNTO';
        //Importancia
        cdoApp.Importance :=  mapiLow ;
//                              mapiNormal;
//                              mapiHigh
         //Confidencialidad: 2=privado cualquier otro = publico
        cdoApp.Sensitivity := 2;

        //se agrega el campo fecha de inicio con su valor por defecto hoy=date
        cdoApp.Fields.Add(TaskStartDate,vbDate,date,CdoPropSetID2);

        //Idem anterior Fecha de Finalizacion
        cdoApp.Fields.Add(TaskDueDate,vbDate,(date+0.1),CdoPropSetID2)
        CdoApp.StartTime := date;
        CdoApp.EndTime := date+0.1;

        //Porcentaje completo
        cdoApp.Fields.Add(TaskPercentComplete,vbInteger,0,CdoPropSetID2);
        //Fecha de finalizacion
        cdoApp.Fields.Add(TaskDateCompleted,vbDate,date,CdoPropSetID2);
        //Duracion
        cdoApp.Fields.Add(TaskDuration,vbLong,(0.1),CdoPropSetID2);
         //Ponerle Alarma
        cdoApp.Fields.Add(TaskReminderOverride,vbBoolean,False,CdoPropSetID5);
        cdoApp.Fields.Add(TaskReminderSound,vbBoolean,True,CdoPropSetID4);
        cdoApp.Fields.Add(TaskReminderSet,vbBoolean,True,CdoPropSetID4);
        cdoApp.Fields.Add(TaskReminderFile,vbString,'reminder.wav',CdoPropSetID4);
        // hora de la alarma
        cdoApp.Fields.Add(TaskReminderTime,vbDate,(strtotime('00:15')),CdoPropSetID4);

       //Sin alarma...
       (*
             Fields.Add(TaskReminderOverride,vbBoolean,True,CdoPropSetID5);
             Fields.Add(TaskReminderSound,vbBoolean,False,CdoPropSetID4);
             Fields.Add(TaskReminderSet,vbBoolean,False,CdoPropSetID4);
             Fields.Add(TaskReminderFile,vbString,'reminder.wav',CdoPropSetID4);
             Fields.Add(TaskReminderTime,vbDate,Appt.Alarm,CdoPropSetID4);
         *)           cdoApp.Fields.Add(TaskOwner,vbString,'',CdoPropSetID2);
         cdoApp.Update(True,True);

 end;

Saludos

Última edición por Enan0 fecha: 04-06-2006 a las 02:27:53.
Responder Con Cita
  #2  
Antiguo 04-06-2006
Avatar de Sotrono
Sotrono Sotrono is offline
Miembro
 
Registrado: abr 2004
Ubicación: Buenos Aires - Argentina
Posts: 396
Poder: 21
Sotrono Va por buen camino
Che, muy buen aporte!!

Cita:
Empezado por Enan0
lo dejo aca porque no se donde se postea
Si esta mal pido disculpas.
Bueno por hoy pasa, pero que no se vuelva a repetir, está??

Bytes!!
Responder Con Cita
  #3  
Antiguo 04-06-2006
Avatar de Enan0
Enan0 Enan0 is offline
Miembro
 
Registrado: may 2004
Ubicación: Argentina
Posts: 565
Poder: 20
Enan0 Va por buen camino
Cita:
Empezado por Sotrono

Bueno por hoy pasa, pero que no se vuelva a repetir, está??

Bytes!!

mm pero sigo sin saber en donde va ..
saludos
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Modificacion masiva Spynosa Firebird e Interbase 7 07-10-2010 06:06:05
Última Modificación de un archivo [Gunman] API de Windows 1 15-11-2005 22:39:01
modificacion tabla paradox cyberjuanra Tablas planas 4 06-03-2005 21:18:57
modificación de TFlatComboBox Er_Manué OOP 3 11-08-2003 10:19:41


La franja horaria es GMT +2. Ahora son las 12:14:57.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi