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

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 14-12-2009
Martin2 Martin2 is offline
Registrado
 
Registrado: dic 2009
Posts: 6
Poder: 0
Martin2 Va por buen camino
Exclamation Programade administracion

Hola a todos es mi primera ves en este foro.
Les cuento tengo que hacer un programa chiquito y me quede trabado.
La consigna es la siguiente: (en vez de las figuras adjunto archivo con lo que hice)



Administrar la cuenta corriente de un grupo de clientes de una empresa.

Se deben cargar los datos de los clientes, estos son:

1.Apellido
2.Nombre
3.Teléfono.
4.E-mail.
5.Fecha de nacimiento: Día, mes y año
6.Saldo.-

Descripción de Figura 1
La pantalla principal contara con una grilla de 4 columnas, en la primera estarán juntos Apellido y nombres, 2da. Saldo, 3ra. Teléfono y 4ta. Edad, se calcula con la fecha de nacimiento y la fecha actual.-
Además se podrá ingresar el nombre de un contacto y deberá buscarlo en la lista.- Esta deberá estar ordenada por Apellido y Nombre.
En la parte inferior tenemos 4 botones. Agregar, Ver/Editar y Eliminar que llamaran a un segundo formulario (Fig. 3) para realizar las acciones que sus nombres indican. Salir: guarda los datos en el archivo y sale de la aplicación.





Descripción de Figura 2
Deberá tener las siguientes opciones en el menú:
Archivo
  • Abrir los archivos de datos de contactos. (OpenDialog1)
  • Guardar el archivo de contactos. (SaveDialog1)










Descripción de Figura 3



Deberá tener los siguientes Botones:

Cancelar
  • Vuelve al formulario anterior sin acciones.
Guardar
  • Modifica la tabla en el formulario anterior.
Responder Con Cita
  #2  
Antiguo 14-12-2009
Avatar de afunez2007
afunez2007 afunez2007 is offline
Miembro
 
Registrado: oct 2007
Ubicación: La Ceiba, Honduras
Posts: 170
Poder: 17
afunez2007 Va por buen camino
Lightbulb

Y en sintesis cual es tu problema?, en que te quedaste trabado?

Saludos
__________________
Si robas, roba un beso, si mientes que sea por amor y si engañas que sea a la muerte!!
Responder Con Cita
  #3  
Antiguo 14-12-2009
Martin2 Martin2 is offline
Registrado
 
Registrado: dic 2009
Posts: 6
Poder: 0
Martin2 Va por buen camino
Hola Alfredo te respondi al mail de tu contacto si me ayudas te lo voy agradecer mucho ya que es muy importante terminar este trabajo.
Saludos
Martin
Responder Con Cita
  #4  
Antiguo 15-12-2009
Avatar de Neftali [Germán.Estévez]
Neftali [Germán.Estévez] Neftali [Germán.Estévez] is offline
[becario]
 
Registrado: jul 2004
Ubicación: Barcelona - España
Posts: 18.264
Poder: 10
Neftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en bruto
Hola Martín, creo que lo primero que deberías hacer es revisar la Guía de estilo de los foros.

En segundo lugar, comentarte que (al menos yo) no veo ninguna de las immágenes que has puesto.
En tercer lugar, ya que has empezado el hilo en estos foros y hay quien te ha contestado, creo que deberías continuarlo aquí; Más que nada, porque esto son unos foros y no una "página de contactos".

Si alguien posteriormente tiene la misma (o similar) duda, le gustará encontrar una respuesta y no el hilo tal y como está ahora.
Igualmente otras personas del foro podrán aportarte sus opiniones, ideas y/o comentarios.

Un saludo.
__________________
Germán Estévez => Web/Blog
Guía de estilo, Guía alternativa
Utiliza TAG's en tus mensajes.
Contactar con el Clubdelphi

P.D: Más tiempo dedicado a la pregunta=Mejores respuestas.
Responder Con Cita
  #5  
Antiguo 15-12-2009
Avatar de afunez2007
afunez2007 afunez2007 is offline
Miembro
 
Registrado: oct 2007
Ubicación: La Ceiba, Honduras
Posts: 170
Poder: 17
afunez2007 Va por buen camino
Lightbulb

Efectivamente Neftali tienes razon
Con respecto a este tema comentare lo sigiente:

Martin no estaba usando base de datos y yo le recomende que lo hiciera
Luego le explique como hacer para trabajar con tablas y grids para que la informacion se viera reflejada.
Seguidamente agregue un par de eventos para el manejo del alias de la base: Este crea el alias o lo modifica si hace falta ademas configura la sesion
Código Delphi [-]
procedure TForm1.FormCreate(Sender: TObject);
var
MyList: TStringList;
Lista:TStringList;
begin
  Lista:= TStringList.Create;
  Session1.GetAliasNames(Lista);
  Session1.Active:=False;
  Database1.Connected:=False;
  MyList := TStringList.Create;
  with MyList do
  begin
    Add('DEFAULT DRIVER=PARADOX');
    Add('ENABLE BCD=FALSE');
    Add('PATH='+ExtractFilePath(Application.ExeName));
  end;
  IF  AnsiContainsStr(Lista.GetText, 'CUENTAS') then
  begin
    try
     Form1.Session1.ModifyAlias('CUENTAS', MyList);
     Form1.Session1.SaveConfigFile;
    except

    end;
  end else
  begin
    try
      Form1.Session1.AddAlias('CUENTAS', 'STANDARD', MyList);
    except

    end;
    MyList.Free;
  end;
   IF  not DirectoryExists(ExtractFilePath(Application.ExeName)+'PRIV') then
   begin
      CreateDir(ExtractFilePath(Application.ExeName)+'PRIV');
      Session1.PrivateDir := ExtractFilePath(Application.ExeName)+'PRIV';
   end;
   IF  not DirectoryExists(ExtractFilePath(Application.ExeName) +'NET') then
   begin
      CreateDir(ExtractFilePath(Application.ExeName) +'NET');
   end;
  try
    Session1.NetFileDir := ExtractFilePath(Application.ExeName) + 'NET';
  except

  end;
  Session1.Active:=True;
  Database1.Connected:=True;  
end;

Y la insercion de registros en la tabla: desde el form2
Código Delphi [-]
procedure TForm2.Button2Click(Sender: TObject);
var
  FECHANAC:TDateTime;
  EDAD:Integer;
begin
FORM1.TABLE1.Open;
FORM1.TABLE1.Insert;
FORM1.Table1.FieldByName('NOMBRE').Text:=Trim(Edit1.Text)+', '+TRIM(Edit2.Text);
FORM1.Table1.FieldByName('TELEFONO').aSINTEGER:=StrToInt(Edit3.Text);
FORM1.Table1.FieldByName('SALDO').AsFloat:=StrTofLOAT(Edit4.Text);
FORM1.Table1.FieldByName('LOCALIDAD').Text:=Edit5.Text;
FORM1.Table1.FieldByName('EMAIL').Text:=Edit6.Text;
FECHANAC:=StrToDate(Edit7.Text+'/'+Edit8.Text+'/'+Edit9.Text);
EDAD:=YearsBetween(FECHANAC,Now);
FORM1.Table1.FieldByName('EDAD').ASINTEGER:=EDAD;
FORM1.Table1.Post;
FORM1.Table1.Active:=False;
FORM1.Table1.Active:=True;
end;

Espero haber ilustrado un poco la situcion

Saludos
__________________
Si robas, roba un beso, si mientes que sea por amor y si engañas que sea a la muerte!!
Responder Con Cita
  #6  
Antiguo 16-12-2009
Martin2 Martin2 is offline
Registrado
 
Registrado: dic 2009
Posts: 6
Poder: 0
Martin2 Va por buen camino
Exclamation Respuesta PROGRAMA DE ADMINISTRACION

Hola a todos antes que nada pido disculpas pero es que soy nuevo en lo que refiere a foros, programacion DELPHI y vincularme de esta manera con la gente no asi con la pcs que hace mucho que estoy en esto.
No respondi antes porque estaba muy ocupado tratando de hacer este trabajo ya que lo tenia que presentar para la facu.
Agradesco a Afunez2007 que me dio una mano muy grande en la puesta a punto del programa, lamentablemente no lo pude presentar asi por la forma en que exigian que lo presente.
Asi que presente lo que tenia echo hasta el momento.
Quiero destacar y resaltar la ayuda desinteresada y RAPIDA que recibi por medio de este foro y epero mas adelante hacer aportes de mas valor.
Por ahora y si les sirve aca les envio el codigo que hice (no esta completo).
Saludos!
Responder Con Cita
  #7  
Antiguo 16-12-2009
Martin2 Martin2 is offline
Registrado
 
Registrado: dic 2009
Posts: 6
Poder: 0
Martin2 Va por buen camino
Exclamation Respuesta programa de administracion

El programa consta de dos Units
Unit 1:

Codigo

unit Unit1;

interface

uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, Grids, StdCtrls, Menus, cliente;

type
TForm1 = class(TForm)

MainMenu1: TMainMenu;
OpenDialog1: TOpenDialog;
SaveDialog1: TSaveDialog;
Archivo1: TMenuItem;
Abrir1: TMenuItem;
Guardar1: TMenuItem;
Salir1: TMenuItem;
Buscar: TButton;
Salir: TButton;
Agregar: TButton;
verEditar: TButton;
Eliminar: TButton;
Label1: TLabel;
Edit1: TEdit;
StringGrid1: TStringGrid;
Label13: TLabel;
procedure Abrir1Click(Sender: TObject);
procedure Guardar1Click(Sender: TObject);
procedure Salir1Click(Sender: TObject);
procedure BuscarClick(Sender: TObject);
procedure SalirClick(Sender: TObject);
procedure AgregarClick(Sender: TObject);
procedure EliminarClick(Sender: TObject);
procedure FormCreate(Sender: TObject);
procedure StringGrid1Click(Sender: TObject);

private
{ Private declarations }
public
{ Public declarations }
end;

var
Form1: TForm1;
Form2: TForm2;
nu : TManejoSocios;
nombreArchivo : String;
buscarSocio : boolean;
eliminarSocio : boolean;
numeroDeRegistro : integer;
volver : boolean;

implementation

{$R *.dfm}

procedure TForm1.Abrir1Click(Sender: TObject);

var cod : byte;
var nomarchivo : string;



begin
nu := TManejoSocios.Create;

OpenDialog1.Execute;


nomarchivo:=form1.OpenDialog1.FileName;
if nomarchivo = '' then
begin

exit
end
else
begin
{$I-}
nu.AbrirArchivo(nomarchivo);
{$I+}
cod := IOResult;

if cod=0 then
begin

form1.Label13.Caption := '00';
nombreArchivo := nomarchivo;
end
else
begin

exit
end

end;

end;

procedure TForm1.Guardar1Click(Sender: TObject);

var nombreNuevo : string;

begin
Form1.SaveDialog1.Execute ;

nombreNuevo:= Form1.SaveDialog1.FileName;

if nombreNuevo = '' then
begin
showMessage('No se guardo con otro nombre');
exit;
end

else
begin
if nombreArchivo = '' then
begin
ShowMessage('No hay archivo abierto para copiar.');
end
else
begin
nu.GuardarComo(nombreArchivo, nombreNuevo);
end;
end;

end;

procedure TForm1.Salir1Click(Sender: TObject);
begin
form1.Close;
end;

procedure TForm1.BuscarClick(Sender: TObject);

begin

if Form1.Label13.Caption = '00' then
begin
buscarSocio:= true;
form1.Buscar.Enabled := true;

ShowMessage('Ingrese el numero de NOMBRE en el campo NOMBRE y preciones el boton Aceptar.');

exit;
end
else
begin
ShowMessage('Primero hay que abrir el archivo');
//cod:= 1;
end;


end;

procedure TForm1.SalirClick(Sender: TObject);
begin



if form1.Label13.Caption = '' then
begin
ShowMessage('No se puede cerrar el archivo porque no esta abierto.');
end
else

begin
nu.CerrarArchivo ;
form1.Label13.Caption := '';
nombreArchivo := '';
end;

end;

procedure TForm1.AgregarClick(Sender: TObject);

begin
Form2 := TForm2.Create(nil);
Try
Form2.ShowModal;
Finally
FreeAndNil(Form2);
End;
end;


procedure TForm1.EliminarClick(Sender: TObject);

begin

if Form1.Label13.Caption = '00' then
begin
form2.Edit2.Enabled := false;
form2.Edit3.Enabled := false;
form2.Edit4.Enabled := false;
form2.Edit5.Enabled := false;
form2.Edit6.Enabled := false;

ShowMessage('Precione el boton Eliminar y el Cliente sera eliminado.');

eliminarSocio := true;

//habilitamos el boton.
form1.Eliminar.Enabled := true;

end
else
begin
ShowMessage('Primero hay que abrir el archivo');

end;

end;

procedure TForm1.FormCreate(Sender: TObject);

begin
with StringGrid1 do
begin
// Título de las columnas
Cells[0, 0] := 'APELLIDO NOMBRES';
Cells[1, 0] := 'SALDO';
Cells[2, 0] := 'TELEFONO';
Cells[3, 0] := 'EDAD';

end;
end;
procedure TForm1.StringGrid1Click(Sender: TObject);

begin

with StringGrid1 do
begin
// Título de las columnas
Cells[0, 0] := 'APELLIDO NOMBRES';
Cells[1, 0] := 'SALDO';
Cells[2, 0] := 'TELEFONO';
Cells[3, 0] := 'EDAD';

end;

end;

end.
Responder Con Cita
  #8  
Antiguo 16-12-2009
Martin2 Martin2 is offline
Registrado
 
Registrado: dic 2009
Posts: 6
Poder: 0
Martin2 Va por buen camino
Exclamation Respuesta programa de Administracion

Unit2 se llama cliente

Código Delphi [-]

Unit cliente;

interface

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

type
  TForm2 = class(TForm)
    Edit1: TEdit;
    Edit2: TEdit;
    Edit3: TEdit;
    Edit4: TEdit;
    Edit5: TEdit;
    Edit6: TEdit;
    Label1: TLabel;
    Label2: TLabel;
    Label3: TLabel;
    Label4: TLabel;
    Label5: TLabel;
    Label6: TLabel;
    Label7: TLabel;
    Label8: TLabel;
    Edit7: TEdit;
    Label9: TLabel;
    Edit8: TEdit;
    Label10: TLabel;
    Edit9: TEdit;
    Button1: TButton;
    Button2: TButton;
    procedure Button1Click(Sender: TObject);
    end;


    //declaracion de la estructura tipo record Socio
    Type
    Socio= Record
    Apellido, nombres: string[20];
    DNI, dn, mn, an : Real;
    end;

    //declaracion de la estructura tipo record SocioPro
    Type
      SocioPro= Record
      Apellido, nombres: string[20];
      edad : Real;
    end;

  //declaracion de la clase TManejoSocios
  TManejoSocios = class


  private
  
    { Declaracion parte privada }
     Archi:File of Socio;

  public
    { Public declarations }

    Lista: array of SocioPro;



    procedure AbrirArchivo(ArchiFisico:string);
    procedure ArchivoNuevo(ArchiFisico:string);
    procedure GrabarSocio(c:Socio ;var cod:byte);
    procedure BuscarSocio(var i:integer; var c:Socio ; var m:string; numDoc:longint);
    procedure EliminarSocio(c:Socio; i:integer; var mensaje : string);
    procedure CerrarArchivo;
    procedure GuardarComo(viejo, nuevo : string);





  end;

var
  Form2: TForm2;

implementation

{$R *.dfm}

//---------------------------------------------
procedure TManejoSocios.AbrirArchivo(ArchiFisico:string);
begin
  AssignFile(Archi,ArchiFisico);
  Reset(Archi);
end;

//---------------------------------------------
procedure TManejoSocios.ArchivoNuevo(ArchiFisico:string);
begin
AssignFile(Archi,ArchiFisico);
Rewrite(Archi);
end;

//---------------------------------------------
procedure TManejoSocios.GrabarSocio(c:Socio; var
cod:byte);
begin
{$I-}
Seek(Archi, FileSize(archi));
{$I+};
cod:=IOResult;
If cod=0 then
Write(Archi,c);
end;

//---------------------------------------------
procedure TManejoSocios.BuscarSocio(var i:integer; var c:Socio; var m:string; numDoc:longint);

    var
       Largo:word;
       ii:integer;




    begin
{$I-}
 Largo:=FileSize(archi);
{$I+};

  If (IOResult<>0)
  then
    begin
      m:='Problemas con el archivo. Está creado o abierto ?';
      exit // sale del procedure
    end;

    //con un FOR, vamos a recorrer del primer al ultimo registro
    //y vemos con un IF si el string que mandamos a buscar coincide con
    //el que esta almacenado en el campo.
    for ii:= 0 to Largo - 1 do
    begin
       seek(Archi, ii);

        Read(archi,c);

        if c.DNI = numDoc then
            begin
              i:=ii;
              m:='Ok';
              exit;

            end
        else

    end;

   ShowMessage('No hay coincidencias');

  end;


//----------------------------------------------
procedure TManejoSocios.CerrarArchivo;
begin
CloseFile(Archi)
end;

//----------------------------------------------
procedure TManejoSocios.GuardarComo(viejo, nuevo: string);
var
arch_entrada, arch_salida: file;
buffer: array[1..2048] of char;
numleido, numescrito: longint;
begin
// open files - no error checking you should add that
assign(arch_entrada, viejo);
reset(arch_entrada, 1);
assign(arch_salida, nuevo);
rewrite(arch_salida, 1);

// copy file
repeat
blockread(arch_entrada, buffer, sizeof(buffer), numleido);
blockwrite(arch_salida, buffer, numleido, numescrito);
until (numleido = 0) or (numescrito <> numleido);
close(arch_entrada);
close(arch_salida);
ShowMessage('El archivo fue guardado como: ' + nuevo);
end;



//---------------------------------------------
procedure TManejoSocios.EliminarSocio (c:Socio; i:integer; var mensaje : string);

var cod:byte;

begin
{$I-}
Seek(Archi, i);
{$I+};
cod:=IOResult;

c.Apellido :='';
c.nombres :='';
c.DNI :=0;
c.dn := 0;
c.mn := 0;
c.an := 0;


If cod=0 then

  begin
    Write(Archi,c);
  end

else

  begin
   mensaje := 'Ha ocurrido un error y no pudo realizarce la operacion';
  end



end;


procedure TForm2.Button1Click(Sender: TObject);
begin
Close;
end;

end.

Última edición por Neftali [Germán.Estévez] fecha: 16-12-2009 a las 09:19:58. Razón: Añadir etiquetas delphi
Responder Con Cita
  #9  
Antiguo 16-12-2009
Martin2 Martin2 is offline
Registrado
 
Registrado: dic 2009
Posts: 6
Poder: 0
Martin2 Va por buen camino
Exclamation Respuesta Programa de Administracion

Aca envio las captura de pantalla del Form1 que pertecene a la Unit1
Dentro del MainMenu Archivo contiene las opciones Abrir y Guardar

(ver imagen)

y el form2 que pertenece a la unit Cliente

(ver imagen)

Si no les llego las imagenes avisen no las pude pasar por aca porque dice que no tengo todavia esa autorizacion
Responder Con Cita
  #10  
Antiguo 16-12-2009
Avatar de Neftali [Germán.Estévez]
Neftali [Germán.Estévez] Neftali [Germán.Estévez] is offline
[becario]
 
Registrado: jul 2004
Ubicación: Barcelona - España
Posts: 18.264
Poder: 10
Neftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en bruto
Cita:
Empezado por Martin2 Ver Mensaje
Aca envio las captura de pantalla del Form1 que pertecene a la Unit1
Dentro del MainMenu Archivo contiene las opciones Abrir y Guardar

(ver imagen)

y el form2 que pertenece a la unit Cliente

(ver imagen)

Si no les llego las imagenes avisen no las pude pasar por aca porque dice que no tengo todavia esa autorizacion
Hola Martin2, gracias por el código.
Cuando añadas código delphi utiliza los TAG's verás que se lee mucho mejor (arriba ya te los he añadido yo).

En cuanto a las imágenes, todavía no tienes permiso para añadirlas ya que eres nuevo en los foros. Puedes enviarme un privado con los links y yo te modifico el mensaje.
__________________
Germán Estévez => Web/Blog
Guía de estilo, Guía alternativa
Utiliza TAG's en tus mensajes.
Contactar con el Clubdelphi

P.D: Más tiempo dedicado a la pregunta=Mejores respuestas.
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
Administración remota!! acertij022 Varios 8 11-10-2006 21:33:18
Administracion Interbase 7 Rabata Conexión con bases de datos 1 13-10-2004 15:19:46
Administracion de Versiones JorgeBec Varios 2 10-09-2004 11:28:32
Administracion remota buitrago Varios 6 27-07-2004 19:57:12
Ayuda con administracion de archivos Waldo API de Windows 1 09-07-2004 19:18:12


La franja horaria es GMT +2. Ahora son las 09:50:53.


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