Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Varios
Registrarse FAQ Miembros Calendario Guía de estilo Buscar Temas de Hoy Marcar Foros Como Leídos

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 28-10-2013
feliz-58 feliz-58 is offline
Miembro
 
Registrado: sep 2012
Posts: 249
Poder: 6
feliz-58 Va por buen camino
Post Crear un calendario y que los eventos esten almacenados en access.

Muy buenas noches & Saludos a todos.

He dado muchas vueltas buscando como hacer un calendario, pero no he podido encontrar lo que quiero, me explico, esto es mas o menos lo que pienso hacer:

1-Quiero hacer un calendario, con los meses de los próximo diez años.
2-luego, que cuando yo seleccione un día, por ejemplo: hoy 27, del mes de octubre, que me muestre en los DBedits los datos que ya anterior mente se hayan guardado ese día.
3-Que cuando se guarde un evento en ese día, en el calendario se resalte de alguna forma ese día.

Alguien tiene idea de que puedo utilizar, para hacer este proyecto?

Muchas gracias a todos.

Saludos.
Responder Con Cita
  #2  
Antiguo 28-10-2013
Avatar de José Luis Garcí
[José Luis Garcí] José Luis Garcí is offline
Miembro Premium
 
Registrado: may 2003
Ubicación: Las Palmas de G.C.
Posts: 1.337
Poder: 16
José Luis Garcí Va por buen camino
Hola feliz-58, te pongo dos links que te pueden ayudar, 1 es como resaltar los días en el calendario y la otra es para cargar los datos desde una tabla a un listview.

Cita:
1-Quiero hacer un calendario, con los meses de los próximo diez años.
2-luego, que cuando yo seleccione un día, por ejemplo: hoy 27, del mes de octubre, que me muestre en los DBedits los datos que ya anterior mente se hayan guardado ese día.
3-Que cuando se guarde un evento en ese día, en el calendario se resalte de alguna forma ese día.
1.- por que limitarlo en el tiempo
2.- en el ejemplo 2 te lo he puesto en un listview, pero lo mismo puedes hacer en un Grid, etc, yo usaría un querry con la información del día y listo para obtener los datos


3.- para eso te vale el primer ejemplo, aunque no se aprecia bien en la imagen las marca en negrita
__________________
Un saludo desde Canarias, "El abuelo Cebolleta"
Responder Con Cita
  #3  
Antiguo 29-10-2013
feliz-58 feliz-58 is offline
Miembro
 
Registrado: sep 2012
Posts: 249
Poder: 6
feliz-58 Va por buen camino
ok, algo asi es mas o menos lo que quiero.

Saludos, ahora fue que vi tu mensaje.

Lo que quiero hacer es parecido, por ejemplo, que a un lado (Izquierdo) este el calendario, y que al otro lado (derecho) estén los campos para introducirle los datos, de los eventos y abajo para visualizar los datos, según se seleccione el día que ya tiene información y que por lo tanto esta marcado.



Gracias de antemano.
Responder Con Cita
  #4  
Antiguo 29-10-2013
Avatar de José Luis Garcí
[José Luis Garcí] José Luis Garcí is offline
Miembro Premium
 
Registrado: may 2003
Ubicación: Las Palmas de G.C.
Posts: 1.337
Poder: 16
José Luis Garcí Va por buen camino
Hola Feliz-58, como te dije por el privado, público el resultado para que sea útil para otros compañeros, tal como te dije lo he hecho en firebird con sólo una tabla, muy sencilla cuyo código es

Cita:
/******************************************************************************/
/* Tables */
/******************************************************************************/



CREATE TABLE CALENDARIO (
ID INTEGER NOT NULL,
FECHA DATE,
NOTA VARCHAR(100)
);




/******************************************************************************/
/* Primary Keys */
/******************************************************************************/

ALTER TABLE CALENDARIO ADD CONSTRAINT PK_CALENDARIO PRIMARY KEY (ID);
Le añadí los siguientes campos



Aquí tenéis la pantalla inicial Form2 tanto en fase de diseño, como de uso



El código de este form

Código Delphi [-]
unit Unit2;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, DB, IBCustomDataSet, IBDatabase;

type
  TForm2 = class(TForm)
    Button1: TButton;
    DB: TIBDatabase;
    IBT: TIBTransaction;
    Tabla: TIBDataSet;
    TablaID: TIntegerField;
    TablaFECHA: TDateField;
    TablaNOTA: TIBStringField;
    DS1: TDataSource;
    procedure Button1Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form2: TForm2;

implementation

{$R *.dfm}

uses Unit1;

procedure TForm2.Button1Click(Sender: TObject);
begin
//   ZeroMemory(@Dia,SizeOf(Dia));    //PAra vaciar el array
   Form1.Show;
end;

end.

y la unidad que realmente lo hace todo



y como no su código

Código Delphi [-]
unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, ExtCtrls, DBCtrls, ComCtrls, Mask, DB, IBQuery,
  IBCustomDataSet, IBDatabase, UxTheme, Grids, DBGrids, DateUtils;

type
  TForm1 = class(TForm)
    Panel1: TPanel;
    butSalir: TButton;
    IBQ1: TIBQuery;
    Label2: TLabel;
    DBEdit2: TDBEdit;
    Label3: TLabel;
    DBEdit3: TDBEdit;
    LV: TListView;
    DBNavigator1: TDBNavigator;
    Panel2: TPanel;
    IBQ2: TIBQuery;
    dsIBq1: TDataSource;
    dsIBQ2: TDataSource;
    DSPrincipal: TDataSource;
    MonthCalendar1: TMonthCalendar;
    DBGrid1: TDBGrid;
    procedure butSalirClick(Sender: TObject);
    procedure MonthCalendar1Click(Sender: TObject);
    procedure MonthCalendar1GetMonthInfo(Sender: TObject; Month: Cardinal; var MonthBoldInfo: Cardinal);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

uses Unit2;

procedure TForm1.butSalirClick(Sender: TObject);
begin
   Application.Terminate;
end;

function Cambiafecha(ffecha:tDateTime):string;
var
    fec2:string;
    Present: TDateTime;
    Year, Month, Day, Hour, Min, Sec, MSec: Word;
begin
        Present:= ffecha;
        DecodeDate(Present, Year, Month, Day);
        fec2:=inttostr(month)+'/'+inttostr(day)+'/'+inttostr(year);
        result:=fec2;
end;

procedure TForm1.MonthCalendar1Click(Sender: TObject);
//------------------------------------------------------------------------------
//*************************************[ MonthCalendar Click (ANOTACIONES) ]****
//------------------------------------------------------------------------------
var Item: TListItem;
    Contador:Integer;
begin
   try
      IBQ2.Active:=false;
      IBQ2.SQL.Clear;
      IBQ2.SQL.Text:='SELECT * FROM CALENDARIO WHERE (CALENDARIO.FECHA='+QuotedStr(Cambiafecha(MonthCalendar1.Date))+')';
      IBQ2.Active:=true;
   except
      on E: Exception do
      begin
        ShowMessage('Se ha producido el error [ '+E.Message+' ]');
      end;
   end;
   with dsIBq2.DataSet do
   begin
     Close;
     Filtered := False;
     Filter := 'FECHA = ' + QuotedStr(DateTimeToStr(MonthCalendar1.Date));
     Filtered := True;
     Open;
     if not IsEmpty then
     begin
       Panel2.Caption := 'Notas para el día ' + FieldByName('FECHA').AsString;
       DSPrincipal.DataSet.Locate('FECHA', FieldByName('FECHA').value,[loPartialKey,loCaseInsensitive]);
     end else Panel2.Caption := 'No hay notas para este día';
   end;
   //Aqui cargamos en el listview=LV
   LV.Clear;
   LV.GridLines := True;
   Contador:=0;
   if IBQ2.IsEmpty=false then
   begin
      IBQ2.First;
      while not IBQ2.Eof do
      begin
        item:=LV.Items.Add;
        item.SubItems.add(IBQ2.FieldByName('NOTA').AsString);
        item.SubItems.add(IBQ2.FieldByName('NOTA').AsString);
        IBQ2.Next;
      end;
   end;
end;

procedure TForm1.MonthCalendar1GetMonthInfo(Sender: TObject; Month: Cardinal;
  var MonthBoldInfo: Cardinal);
//------------------------------------------------------------------------------
//*******************************[ MonthCalendar (anotaciones)  preparamos ]****
// MArcamos lo días para los que hay notas y coloreamos
//------------------------------------------------------------------------------
var    ano,mes,dia : word;
xDataAtual : TDateTime;
x: array of Cardinal;
i: integer;
varFinicio,varfFin,varFactual:TDate;
begin
   uxtheme.SetWindowTheme(MonthCalendar1.Handle, '', '');  //Desactiva los temas usar uses UxTheme
   x := Nil;
   DecodeDate(MonthCalendar1.Date, ano, mes, dia);
   case Month of
      1: if mes = 12 then  ano := ano + 1;
      12: if mes = 1 then  ano := ano - 1;
   end;
   varFinicio:=strtodate('01/'+inttostr(mes)+'/'+IntToStr(ano));
   if mes<12 then varffin:=strtodate('01/'+inttostr(mes+1)+'/'+inttostr(ano))
           else varffin:=strtodate('01/01/'+inttostr(ano+1));
   xDataAtual := EncodeDate(ano, Month, 1);
   i := -1;
   try
      IBQ1.Active:=false;
      IBQ1.SQL.Clear;
      IBQ1.SQL.Text:='SELECT * FROM CALENDARIO WHERE (CALENDARIO.FECHA BETWEEN '+QuotedStr(Cambiafecha(varFinicio))+' AND '+QuotedStr(Cambiafecha(EndOfTheMonth(varFinicio)))+') ORDER BY CALENDARIO.FECHA';
      IBQ1.Active:=true;
      IBQ2.Active:=false;
      IBQ2.SQL.Clear;
      IBQ2.SQL.Text:='SELECT count(FECHA) FROM CALENDARIO WHERE (CALENDARIO.FECHA BETWEEN '+QuotedStr(Cambiafecha(varFinicio))+' AND '+QuotedStr(Cambiafecha(EndOfTheMonth(varFinicio)))+')';
      IBQ2.Active:=true;
   except
      on E: Exception do
      begin
        ShowMessage('Se ha producido el error [ '+E.Message+' ]');
      end;
   end;
   with dsIBq1.DataSet do
   begin
      mes := mes +1;
      Close;
      Filtered := False;
      Filter := 'FECHA >= ' + QuotedStr(DateTimeToStr(StartOfTheMonth(xDataAtual)))+ ' AND FECHA <= ' + QuotedStr(DateTimeToStr(EndOfTheMonth(xDataAtual)));
      Filtered := True;        // StartOfTheMonth y EndOfTheMonth // Unit DateUtils
      Open;
      if IsEmpty then Exit;
      SetLength(x, IBQ2.FieldByName('COUNT').AsInteger);
      while not(Eof) do
      begin
         Inc(i);
         DecodeDate(FieldByName('FECHA').AsDateTime, ano, mes, dia);
         x[i] := dia;
         Next;
      end;
      Close;
   end;
   MonthCalendar1.BoldDays(x, MonthBoldInfo);
end;

end.

Ahora te toca implementarlo en tu sistema y a tu tipo de base de datos.

Un saludo y que te sea útil.
__________________
Un saludo desde Canarias, "El abuelo Cebolleta"
Responder Con Cita
  #5  
Antiguo 30-10-2013
feliz-58 feliz-58 is offline
Miembro
 
Registrado: sep 2012
Posts: 249
Poder: 6
feliz-58 Va por buen camino
Exclamation HOla

saludos , gracias por el aporte , estuve adaptando tu codigo a lo que necesito, hice algo de prueba para ver si tenia éxito, y me pasa lo siguiente:

tengo una duda y un problema.
1-A que query esta conectado el tercer datasource "DSPrincipal" (si me pudieras explicar alguito las conexiones te lo agradecería.)
2-en el código donde dice : "EndOfTheMonth" y en "StartOfTheMonth" dice que no lo he declarado, que hago?

Disculpa las molestias, no tengo un amplio conocimiento, intento aprender.

Gracias por todo.
Responder Con Cita
  #6  
Antiguo 30-10-2013
Avatar de José Luis Garcí
[José Luis Garcí] José Luis Garcí is offline
Miembro Premium
 
Registrado: may 2003
Ubicación: Las Palmas de G.C.
Posts: 1.337
Poder: 16
José Luis Garcí Va por buen camino
hola feliz-88, te respondo a tus dudas

1.- El dsPrincipal esta conectado a la tabla que tienes en el unit2 (Form2)
2.- StartOfTheMonth y EndOfTheMonth // Unit DateUtils esta tiene que ponerla en el uses que viene despues de interface, que versión de Delphi tienes, por lo que puede ser un problema de la versión de delphi que tienes, si este es el caso, busca en internet, que hay funciones para decirte el último día del mes y la sustituyes
__________________
Un saludo desde Canarias, "El abuelo Cebolleta"
Responder Con Cita
  #7  
Antiguo 30-10-2013
Avatar de José Luis Garcí
[José Luis Garcí] José Luis Garcí is offline
Miembro Premium
 
Registrado: may 2003
Ubicación: Las Palmas de G.C.
Posts: 1.337
Poder: 16
José Luis Garcí Va por buen camino
Cita:
Empezado por feliz-58 Ver Mensaje
(si me pudieras explicar alguito las conexiones te lo agradecería.)

Cita:
Form2 (unit2)-----------------------------------------------
DB: TIBDatabase; //Base de datos
IBT: TIBTransaction; //Transiciones de la base de datos
Tabla: TIBDataSet; //Tabla usada
Form1 (unit1)-----------------------------------------------
IBQ1: TIBQuery; //Querry princincipal paara hacer la consulta de 1 mes es que tienes en el monthCalendar
IBQ2: TIBQuery; //Este querry hace dos funciones, la 1º saber el numero de registros que tiene en un día para la linea SetLength(x, IBQ2.FieldByName('COUNT').AsInteger); usada en el código, ya que en firebird no funciona el RecordCount y la segunda para dar los registros de un único día
dsIBq1: TDataSource; //Conectado al IBQ1 (Querry 1)
dsIBQ2: TDataSource; //Conectado al IBQ2 (Querry 2)
DSPrincipal: TDataSource; //Conectado a la tabla del Form 2
El motivo de no hacerlo en un único Form, es que necesitaba que la tabla estuviese cargada antes de mostrar el calendario, si hubiese tenido un form de petición de claves, splash o simplemente un datamodule, lo hubiese hecho en un sólo Form.

El resto es leer el código e interpretarlo, yo no me he inventado nada, esta todo en internet, simplemente es buscarlo y adaptarlo a tú código y necesidades.
__________________
Un saludo desde Canarias, "El abuelo Cebolleta"
Responder Con Cita
  #8  
Antiguo 31-10-2013
feliz-58 feliz-58 is offline
Miembro
 
Registrado: sep 2012
Posts: 249
Poder: 6
feliz-58 Va por buen camino
Cita:
Empezado por José Luis Garcí Ver Mensaje
hola feliz-88, te respondo a tus dudas

1.- El dsPrincipal esta conectado a la tabla que tienes en el unit2 (Form2)
2.- StartOfTheMonth y EndOfTheMonth // Unit DateUtils esta tiene que ponerla en el uses que viene despues de interface, que versión de Delphi tienes, por lo que puede ser un problema de la versión de delphi que tienes, si este es el caso, busca en internet, que hay funciones para decirte el último día del mes y la sustituyes
Tengo la versión 7

pero no he podido sacar a flote el asunto, dicen que esa funcion no esta para disponible en delphi 7.

y ademas delphi me dice lo siguiente:

[Hint] Unit1.pas(60): Variable 'Hour' is declared but never used in 'Cambiafecha'
[Hint] Unit1.pas(60): Variable 'Min' is declared but never used in 'Cambiafecha'
[Hint] Unit1.pas(60): Variable 'Sec' is declared but never used in 'Cambiafecha'
[Hint] Unit1.pas(60): Variable 'MSec' is declared but never used in 'Cambiafecha'
[Hint] Unit1.pas(99): Value assigned to 'Contador' never used
[Error] Unit1.pas(136): Undeclared identifier: 'EndofaMonth'
[Error] Unit1.pas(140): Undeclared identifier: 'EndOfTheMonth'
[Error] Unit1.pas(153): Undeclared identifier: 'StartOfTheMonth'
[Error] Unit1.pas(170): '.' expected but ';' found
[Fatal Error] Project2.dpr(6): Could not compile used unit 'Unit1.pas'

Última edición por feliz-58 fecha: 31-10-2013 a las 03:24:55.
Responder Con Cita
  #9  
Antiguo 31-10-2013
Avatar de José Luis Garcí
[José Luis Garcí] José Luis Garcí is offline
Miembro Premium
 
Registrado: may 2003
Ubicación: Las Palmas de G.C.
Posts: 1.337
Poder: 16
José Luis Garcí Va por buen camino
Cita:
Empezado por feliz-58 Ver Mensaje
Tengo la versión 7

pero no he podido sacar a flote el asunto, dicen que esa funcion no esta para disponible en delphi 7.

y ademas delphi me dice lo siguiente:

[Hint] Unit1.pas(60): Variable 'Hour' is declared but never used in 'Cambiafecha'
[Hint] Unit1.pas(60): Variable 'Min' is declared but never used in 'Cambiafecha'
[Hint] Unit1.pas(60): Variable 'Sec' is declared but never used in 'Cambiafecha'
[Hint] Unit1.pas(60): Variable 'MSec' is declared but never used in 'Cambiafecha'
[Hint] Unit1.pas(99): Value assigned to 'Contador' never used
[Error] Unit1.pas(136): Undeclared identifier: 'EndofaMonth'
[Error] Unit1.pas(140): Undeclared identifier: 'EndOfTheMonth'
[Error] Unit1.pas(153): Undeclared identifier: 'StartOfTheMonth'
[Error] Unit1.pas(170): '.' expected but ';' found
[Fatal Error] Project2.dpr(6): Could not compile used unit 'Unit1.pas'

Vamos por parte, las variables Hour, min, Sec y msec, no son marcadas como error, sino que han sido declaradas y no han sido usadas, por lo que pasa tal cual, te pongo el código de dicha función, para que veas y lo entiendas.

Antes del begin ... end, declaramos las variables, pero fíjate que que, las que te esta marcando como [hint], no son usadas en el bloque de la función

Código Delphi [-]
function Cambiafecha(ffecha:tDateTime):string;
var
    fec2:string;
    Present: TDateTime;
    Year, Month, Day, Hour, Min, Sec, MSec: Word;
begin
        Present:= ffecha;
        DecodeDate(Present, Year, Month, Day);
        fec2:=inttostr(month)+'/'+inttostr(day)+'/'+inttostr(year);
        result:=fec2;
end;


Asi como el valor de contador, que es declarado en el programa y no tiene uso, esto es debido a las pruebas que fui haciendo con el código.

En cuanto a 'EndofaMonth' no tengo ni idea, revisa el código y mira a ver de donde viene, o si te has equivocado al escribirlo, no seria EndOfTheMonth.

Por último 'EndOfTheMonth' y 'StartOfTheMonth', como ya te comentaba están en la unidad DataUtils que tienes que llamara en el uses despues de interface, pero por si no están en el Delphi 7, búscando en internet, di con este procedure en la página http://www.planetadelphi.com.br/dica...imo-dia-do-mes

Código Delphi [-]
Procedure PrmeiroEUltimoDiaDoMes(mes,ano:String; var dataIni,dataFin:string);
var
 MesAux,AnoAux:Integer;
Begin

  {Procedimento recebe um mes e um ano como parametro.
  E retorna nas variaveis DataIni e DataFin o primeiro e
  o ultimo dia daquele mes. Bem simples e eficiente}

  //primeiro dia
  dataIni:='01/'+FormatCurr('00',StrToInt(mes))+'/'+ano;

  //ultimo dia
  MesAux:=StrToInt(mes);
  AnoAux:=StrToInt(ano);

  //se ja estivesse em dezembro
  MesAux:=MesAux+1;
  if MesAux = 13 then
  begin
    MesAux:=1;
    AnoAux:=AnoAux+1;
  end;//if MesAux = 13 then

  dataFin:='01/'+IntToStr(MesAux)+'/'+IntToStr(AnoAux);
  dataFin:=DateToStr(StrToDate(dataFin)-1);

End;//procedure

Ten en cuenta que tanto los datos que te pide como los datos que devuelve son dataIni,dataFin, son String, por los que tendrás que convertirlos a TDate.

los errores

Cita:
[Error] Unit1.pas(170): '.' expected but ';' found
[Fatal Error] Project2.dpr(6): Could not compile used unit 'Unit1.pas'
Se refiere a que tienes un problema con un (.) y un ( en la linea 170, supongo que no has terminado la linea o simplemente te falta poner un ( al final y la última es que no ha podido compilar el proyecto, simplemente, cuando te da errores el compilador, siempre da este último, por lo que del número de errores tienes que descontar 1.

Si me permites darte un consejo, es mejor que la próxima vez, estés un par de días intentando solucionar las cosas y busques en la red, normalmente en el club se da consejos y algo de código, para ayudar a encontrar la solución, pero si te acostumbras a que te den la mayor parte echa, no terminaras por aprender. Se que es complicado entender muchas veces el código de otros compañeros, sobre todo al principio y de hecho es complicado muchas veces, pero debes tomarlo como una referencia y procurar seguir los consejos que te dan.

Te digo esto ya que en mi post anterior en este tema ya te decía

Cita:
ola feliz-88, te respondo a tus dudas

1.- El dsPrincipal esta conectado a la tabla que tienes en el unit2 (Form2)
2.- StartOfTheMonth y EndOfTheMonth // Unit DateUtils esta tiene que ponerla en el uses que viene despues de interface, que versión de Delphi tienes, por lo que puede ser un problema de la versión de delphi que tienes, si este es el caso, busca en internet, que hay funciones para decirte el último día del mes y la sustituyes
y por lo que he visto, pienso que ni te has molestado en buscar en internet.

Espero no te tomes a mal mi comentario.
__________________
Un saludo desde Canarias, "El abuelo Cebolleta"

Última edición por José Luis Garcí fecha: 31-10-2013 a las 11:10:04.
Responder Con Cita
  #10  
Antiguo 31-10-2013
feliz-58 feliz-58 is offline
Miembro
 
Registrado: sep 2012
Posts: 249
Poder: 6
feliz-58 Va por buen camino
Post

Saludos.

disculpa por todo, lo que pasa es que mi conocimiento teórico es muy limitado, ni te imaginas como conoci este lenguaje, pero no es el caso.
Entendí lo de las variables.

lo de 'EndofaMonth' era una prueba que estaba haciendo, de alguien que dijo algo al respecto, pero se me olvido borrarlo.

'EndOfTheMonth' y 'StartOfTheMonth' sobre esto, si investigue, y asi como tu, no encontre una forma directa de utilizar el procedimiento, y por lo tanto abria que convertir.

El error

Código Delphi [-]
Quote:
[Error] Unit1.pas(170): '.' expected but ';' found

esta resuelto, solo queria que te fijaras en el asunto de Endofthemonth y Startofthemonth



el asunto es que tengo mucha prisa y casi no tengo tiempo para sentarme por el trabajo, disculpa si te llevo a un ritmo incomodo, pero un cliente me tiene a jugo para que termine esto, me llama mucho, no te imaginas.

pero nadie tiene la culpa.

Saludos y gracias por todo.
Responder Con Cita
  #11  
Antiguo 31-10-2013
Avatar de José Luis Garcí
[José Luis Garcí] José Luis Garcí is offline
Miembro Premium
 
Registrado: may 2003
Ubicación: Las Palmas de G.C.
Posts: 1.337
Poder: 16
José Luis Garcí Va por buen camino
Cita:
Empezado por feliz-58 Ver Mensaje
Saludos.

disculpa por todo, lo que pasa es que mi conocimiento teórico es muy limitado, ni te imaginas como conoci este lenguaje, pero no es el caso.
Entendí lo de las variables.

lo de 'EndofaMonth' era una prueba que estaba haciendo, de alguien que dijo algo al respecto, pero se me olvido borrarlo.

'EndOfTheMonth' y 'StartOfTheMonth' sobre esto, si investigue, y asi como tu, no encontre una forma directa de utilizar el procedimiento, y por lo tanto abria que convertir.

El error

Código Delphi [-]
Quote:
[Error] Unit1.pas(170): '.' expected but ';' found

esta resuelto, solo queria que te fijaras en el asunto de Endofthemonth y Startofthemonth



el asunto es que tengo mucha prisa y casi no tengo tiempo para sentarme por el trabajo, disculpa si te llevo a un ritmo incomodo, pero un cliente me tiene a jugo para que termine esto, me llama mucho, no te imaginas.

pero nadie tiene la culpa.

Saludos y gracias por todo.
No hombre no hay por que pedir disculpas, simplemente que intentes por tu propio bien estudiar un poco, en cuanto al tema de 'EndOfTheMonth' y 'StartOfTheMonth', te puse un procedure que te permite sustituir estas llamadas, simplemente lee con calma mi post anterior y aplica este procedure, recuerda que convertir una variable String en una Tdate lo logras con StrToDate(var:String)

Código Delphi [-]
Procedure PrmeiroEUltimoDiaDoMes(mes,ano:String; var dataIni,dataFin:string);
var
 MesAux,AnoAux:Integer;
Begin

  {Procedimento recebe um mes e um ano como parametro.
  E retorna nas variaveis DataIni e DataFin o primeiro e
  o ultimo dia daquele mes. Bem simples e eficiente}

  //primeiro dia
  dataIni:='01/'+FormatCurr('00',StrToInt(mes))+'/'+ano;

  //ultimo dia
  MesAux:=StrToInt(mes);
  AnoAux:=StrToInt(ano);

  //se ja estivesse em dezembro
  MesAux:=MesAux+1;
  if MesAux = 13 then
  begin
    MesAux:=1;
    AnoAux:=AnoAux+1;
  end;//if MesAux = 13 then

  dataFin:='01/'+IntToStr(MesAux)+'/'+IntToStr(AnoAux);
  dataFin:=DateToStr(StrToDate(dataFin)-1);

End;//procedure
__________________
Un saludo desde Canarias, "El abuelo Cebolleta"
Responder Con Cita
Respuesta


Herramientas Buscar en Tema
Buscar en Tema:

Búsqueda Avanzada
Desplegado

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
Crear un calendario alopete Varios 9 03-04-2017 11:48:12
Crear Calendario con SQL gcaffe SQL 8 14-12-2012 09:38:22
Crear calendario con StringGrid borlandpablo C++ Builder 2 25-10-2012 15:27:35
Crear tablas con calendario Vlady Conexión con bases de datos 6 17-11-2011 03:51:35
procedimientos almacenados en access odin SQL 2 22-09-2004 18:57:01


La franja horaria es GMT +2. Ahora son las 07:23:57.


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