///***************** para hacer lineas
Printer.Canvas.MoveTo(0,0);              // punto 1
Printer.Canvas.LineTo(9900,14000);       // punto 2
//******************
{
a la hora de imprimir q solo haya trabajado una vez ese dia !!!!!!!!!!
}
unit Unit15;
interface
uses
  Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
  StdCtrls, ExtCtrls, DBCtrls, Db, DBTables, ComCtrls, Printers;
type
  TForm15 = class(TForm)
    Button1: TButton;
    Database1: TDatabase;
    DataSource1: TDataSource;
    Table1: TTable;
    DataSource2: TDataSource;
    Table2: TTable;
    GroupBox1: TGroupBox;
    Label1: TLabel;
    Label2: TLabel;
    Label3: TLabel;
    DBText1: TDBText;
    DBText2: TDBText;
    DBText3: TDBText;
    DBText4: TDBText;
    ComboBox1: TComboBox;
    DateTimePicker1: TDateTimePicker;
    DateTimePicker2: TDateTimePicker;
    Label4: TLabel;
    Label5: TLabel;
    Button2: TButton;
    DBNavigator1: TDBNavigator;
    procedure FormCreate(Sender: TObject);
    procedure Button1Click(Sender: TObject);
    procedure FormActivate(Sender: TObject);
    procedure ComboBox1Change(Sender: TObject);
    procedure Button2Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;
var
  Form15: TForm15;
  function GetFecha: String;
implementation
uses Unit1;
{$R *.DFM}
//*******************************************************************
procedure TForm15.FormCreate(Sender: TObject);
var
i: integer;
a,b,c,d: integer;
begin
i:=2;
a:=screen.Width;
b:=screen.Height;
form15.left:= (a div i) - form15.width div i;
form15.top:= (b div i) - form15.Height div i;
end;
//**************************************************************
procedure TForm15.Button1Click(Sender: TObject);
begin
form15.hide;
form1.enabled:=true;
form1.show;
end;
//********************************************************
procedure TForm15.FormActivate(Sender: TObject);
var
i: integer;
begin
combobox1.clear;
table1.close;
table1.open;
table1.first;
for i:=0 to Table1.RecordCount-1 do
begin
if table1.Fieldvalues['borrado'] = false then
begin
combobox1.items.add(table1.Fieldvalues['id']);
end;  // if
table1.next;
end;
table1.first;
datetimepicker1.date:= strtodate(GetFecha());
datetimepicker2.date:= strtodate(GetFecha());
end;
//*****************************************************************************
procedure TForm15.ComboBox1Change(Sender: TObject);
var
i: integer;
begin
table1.open;
table1.first;
for i:=0 to Table1.RecordCount-1 do
begin
if table1.Fieldvalues['id'] = combobox1.text then
begin
exit;
end;  // if
table1.next;
end;
end;
//*************************************************************** fecha
function GetFecha: String;
var
   stSystemTime : TSystemTime;
   aux,fecha: string;
begin
   Windows.GetLocalTime( stSystemTime );
   aux:=DateTimeToStr( SystemTimeToDateTime( stSystemTime ));
   fecha:= aux[1]+aux[2]+aux[3]+aux[4]+aux[5]+aux[6]+aux[7]+aux[8]+aux[9]+aux[10];
   Result:= fecha;
end;
//*************************
//****************************************************************
procedure TForm15.Button2Click(Sender: TObject);
var
aux: string;
veces,x,y,salto,i: integer;
aux2,turno,fechaS,horaE,horaS,llamadas, entrantes, salientes, minutos: string;
begin
veces:=0;
table2.close;
table2.open;
table2.first;
for i:=0 to Table2.RecordCount-1 do
begin
if table2.Fieldvalues['trabajador'] = dbtext1.Field.AsString then
begin
aux2:= datetostr(datetimepicker2.date);
if strtodate(aux2) = table2.Fieldvalues['fechaS']  then
begin
horaE:=table2.Fieldvalues['horaE'];
horaS:=table2.Fieldvalues['horaS'];
fechaS:=table2.Fieldvalues['fechaS'];
llamadas:=table2.Fieldvalues['llamadas'];
entrantes:=table2.Fieldvalues['entrantes'];
salientes:=table2.Fieldvalues['salientes'];
minutos:=table2.Fieldvalues['minutos'];
turno:=table2.Fieldvalues['turno'];
veces:=veces+1;
end;
end;
table2.next;
end;
if (veces=0) then
begin
showmessage('Este empleado no ha trabajado ese día.');
exit;
end;
//showmessage('Imprimiendo ...');
Printer.BeginDoc; // INICIO UN NUEVO DOCUMENTO
With Printer.canvas do //CON EL OBJETO PRINTER.CANVAS HAGO LO SIGUIENTE
Begin
//TITULO QUE APARECE EN LA COLA DE IMPRESION
Printer.Title := 'Impresión de Dia de Trabajo';
Font.Color := ClBlack; //LE ASIGNO UN COLOR A LA LETRA
Pen.Color := ClBlack; //COLOR DE LA LINE DE LOS RECUADROS
Font.Size := 12; //TAMAÑO DE LA LETRA
Font.Name := 'Times New Roman';
aux:= 'Alicante ' + datetostr(datetimepicker1.date);
Printer.Canvas.TextOut(1000,1000,aux);
x:=1500;
y:=2000;
aux:= 'Resumen de Día de Trabajo:';
Printer.Canvas.TextOut(x,y,aux);
x:=1500;
y:=y+800;
aux:= '-   ID:   ' + dbtext1.Field.AsString;
Printer.Canvas.TextOut(x,y,aux);
y:=y+300;
aux:= '-   NOMBRE:   ' + dbtext2.Field.AsString;
Printer.Canvas.TextOut(x,y,aux);
y:=y+300;
aux:= '-   APELLIDOS:   ' + dbtext3.Field.AsString + ' ' + dbtext4.Field.AsString;
Printer.Canvas.TextOut(x,y,aux);
y:=y+300;
aux:= '-   DIA:   ' + datetostr(datetimepicker2.date);
Printer.Canvas.TextOut(x,y,aux);
y:=y+800;
aux:= '-   TURNO:   ' + turno;
Printer.Canvas.TextOut(x,y,aux);
y:=y+300;
aux:= '-   HORA ENTRADA:   ' + horaE;
Printer.Canvas.TextOut(x,y,aux);
y:=y+300;
aux:= '-   HORA SALIDA:   ' + horaS;
Printer.Canvas.TextOut(x,y,aux);
y:=y+300;
aux:= '-   NUM. LLAMADAS:   ' + llamadas;
Printer.Canvas.TextOut(x,y,aux);
y:=y+300;
aux:= '-   NUM. LLAMADAS ENTRANTES:   ' + entrantes;
Printer.Canvas.TextOut(x,y,aux);
y:=y+300;
aux:= '-   NUM. LLAMADAS SALIENTES:   ' + salientes;
Printer.Canvas.TextOut(x,y,aux);
y:=y+300;
aux:= '-   NUM. MINUTOS:   ' + minutos;
Printer.Canvas.TextOut(x,y,aux);
y:=y+5000;
aux:= 'FIRMA CONFORME:';
Printer.Canvas.TextOut(x,y,aux);
end;
Printer.EndDoc;
end;   // fin procedure
end.
sábado, 12 de mayo de 2007
Suscribirse a:
Enviar comentarios (Atom)
No hay comentarios:
Publicar un comentario