Club Delphi  
    Paypal   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

Coloboración Paypal con ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 11-10-2006
Avatar de Caral
[Caral] Caral is offline
Miembro Premium
 
Registrado: ago 2006
Posts: 7.659
Poder: 27
Caral Va por buen camino
Hola
Quieres un pedacito de codigo para mantenimiento de Clientes ?
Bueno este vas a tener que modificarlo, pero te serviria de ejemplo.
Saludos
Responder Con Cita
  #2  
Antiguo 11-10-2006
Delphitest Delphitest is offline
Miembro
 
Registrado: sep 2006
Ubicación: Salamanca-España
Posts: 249
Poder: 20
Delphitest Va por buen camino
Por supuesto

todo me puede venir bien.

Ya ando estudiando el tema de las bases de datos y por ahora empiezo con Paradox, espero que no sea mala elección.

Por hoy lo dejo ya, no se cuantas horas llevo entre tutoriales, trucos, ejemplos ...

Aunque mis primeras lecciones han cundido mas de lo que yo contaba, ya veremos cuando se empiece esto a complicar.

Buenas noches a todos
Responder Con Cita
  #3  
Antiguo 11-10-2006
Avatar de Caral
[Caral] Caral is offline
Miembro Premium
 
Registrado: ago 2006
Posts: 7.659
Poder: 27
Caral Va por buen camino
Bueno este es hecho con conexion ado y motor Access (de 1 Hp).
Este es el codigo, ya se que es pequeño pero por algo hay que empezar:
Código Delphi [-]
unit UFClientes;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, UDM1, ExtCtrls, StdCtrls, Mask, DBCtrls, ComCtrls, DB, ADODB,
  Buttons;

type
  TFClientes = class(TForm)
    TClientes: TADOTable;
    TClientesCodCliente: TIntegerField;
    TClientesNombreCliente: TWideStringField;
    TClientesDireccion1: TWideStringField;
    TClientesDireccion2: TWideStringField;
    TClientesPais: TWideStringField;
    TClientesProvincia: TWideStringField;
    TClientesCanton: TWideStringField;
    TClientesApartado: TWideStringField;
    TClientesContacto: TWideStringField;
    TClientesTelefono: TWideStringField;
    TClientesExtencion: TWideStringField;
    TClientesFax: TWideStringField;
    TClientesEmail: TWideStringField;
    TClientesNoEnvEmail: TBooleanField;
    TClientesTerminos: TWideStringField;
    TClientesVendedor: TWideStringField;
    TClientesSuspendido: TBooleanField;
    TClientesExcento: TBooleanField;
    TClientesFechaIngreso: TDateTimeField;
    TClientesLimiteCredito: TFloatField;
    TClientesNotas: TMemoField;
    DSClientes: TDataSource;
    PageControl1: TPageControl;
    TabSheet1: TTabSheet;
    TabSheet2: TTabSheet;
    Label1: TLabel;
    Panel1: TPanel;
    DBEdit2: TDBEdit;
    Label2: TLabel;
    Label3: TLabel;
    DBEdit3: TDBEdit;
    DBEdit4: TDBEdit;
    Label5: TLabel;
    DBEdit5: TDBEdit;
    Label6: TLabel;
    DBEdit6: TDBEdit;
    TClientesDistrito: TWideStringField;
    Label7: TLabel;
    DBEdit7: TDBEdit;
    Label8: TLabel;
    DBEdit8: TDBEdit;
    Panel2: TPanel;
    Label4: TLabel;
    DBEdit9: TDBEdit;
    Label9: TLabel;
    DBEdit10: TDBEdit;
    Label10: TLabel;
    DBEdit11: TDBEdit;
    Label11: TLabel;
    DBEdit12: TDBEdit;
    Label12: TLabel;
    DBEdit13: TDBEdit;
    Panel3: TPanel;
    Label13: TLabel;
    DBEdit14: TDBEdit;
    Label14: TLabel;
    DBLookupComboBox1: TDBLookupComboBox;
    TUsuarios: TADOTable;
    DSUsuarios: TDataSource;
    Label16: TLabel;
    Panel4: TPanel;
    DBCheckBox1: TDBCheckBox;
    DBCheckBox2: TDBCheckBox;
    DBCheckBox3: TDBCheckBox;
    Panel5: TPanel;
    DBMemo1: TDBMemo;
    DBNavigator1: TDBNavigator;
    BitBtn1: TBitBtn;
    BitBtn2: TBitBtn;
    QTemp: TADOQuery;
    DBText1: TDBText;
    Label15: TLabel;
    BitBtn3: TBitBtn;
    TClientesCatPrecio: TWordField;
    Label17: TLabel;
    DBComboBox1: TDBComboBox;
    TClientesDiasCredito: TSmallintField;
    Label18: TLabel;
    Panel6: TPanel;
    Label20: TLabel;
    Edit1: TEdit;
    Button1: TButton;
    Edit2: TEdit;
    DBEdit15: TDBEdit;
    Label21: TLabel;
    Label19: TLabel;
    DBEdit1: TDBEdit;
    BitBtn4: TBitBtn;
    Edit3: TEdit;
    Label22: TLabel;
    DBEdit16: TDBEdit;
    procedure BitBtn1Click(Sender: TObject);
    procedure BitBtn2Click(Sender: TObject);
    procedure TClientesAfterInsert(DataSet: TDataSet);
    procedure FormCreate(Sender: TObject);
    procedure FormDestroy(Sender: TObject);
    procedure BitBtn3Click(Sender: TObject);
    procedure Edit2Exit(Sender: TObject);
    procedure Button1Click(Sender: TObject);
    procedure BitBtn4Click(Sender: TObject);
    procedure Edit3Exit(Sender: TObject);
    procedure DBNavigator1Click(Sender: TObject; Button: TNavigateBtn);
    procedure DBEdit2Change(Sender: TObject);
    procedure DBEdit16Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  FClientes: TFClientes;

implementation

uses UFBuscaCliente;

{$R *.dfm}

procedure TFClientes.BitBtn1Click(Sender: TObject);
begin
   If (TClientes.State = dsEdit) or (TClientes.State = dsInsert) then
      DBEdit16.Text := DateToStr(now);
      TClientes.Post;
   Close;
end;

procedure TFClientes.BitBtn2Click(Sender: TObject);
begin
   Close;
end;

procedure TFClientes.TClientesAfterInsert(DataSet: TDataSet);
begin
   QTemp.SQL.Text := 'Select Max(CodCliente) From Clientes';
   QTemp.Active := true;
   DBText1.Field.AsInteger := QTemp.Fields[0].AsInteger+1;
   QTemp.Active :=False;
   DBCheckBox1.Field.AsBoolean := False;
   DBCheckBox2.Field.AsBoolean := False;
   DBCheckBox3.Field.AsBoolean := False;
   DBEdit15.Field.AsString     := '0';
end;

procedure TFClientes.FormCreate(Sender: TObject);
begin
   TClientes.Active := True;
   TUsuarios.Active := True;
   Panel6.Visible := False;
end;

procedure TFClientes.FormDestroy(Sender: TObject);
begin
   TClientes.Active := False;
   TUsuarios.Active := False;
end;

procedure TFClientes.BitBtn3Click(Sender: TObject);
begin
   FBuscaCliente:=TFBuscaCliente.Create(self);
   try
      FBuscaCliente.ShowModal;
   finally
      If FBuscaCliente.Cod_Cliente <> '' then
         TClientes.Locate('codcliente',QuotedStr(FBuscaCliente.Cod_Cliente),[]);
      FBuscaCliente.Free;
   end;
end;

procedure TFClientes.Edit2Exit(Sender: TObject);
begin
   If Edit2.Text > '200000.00' then
   begin
   MessageBox(Handle,
             PChar('Para Poner ese limite de Credito' + #13#10 +
                   'Necesita Autorizacion'),
             PChar('Limite de Credito'),
             MB_OK + MB_DEFBUTTON1 + MB_APPLMODAL);
   Edit2.Text:= '0';
   DBEdit15.Text := Edit2.Text;
end;
end;

procedure TFClientes.Button1Click(Sender: TObject);
begin
   if Edit1.Text = 'carorl' then
   begin
   DBEdit15.ReadOnly := False;
   DBEdit1.ReadOnly := False;
   DBCheckBox1.Enabled := True;
  end
   else
   Panel6.Visible := False;
   Edit1.Text := '';
end;

procedure TFClientes.BitBtn4Click(Sender: TObject);
begin
  Panel6.Visible := True;
end;

procedure TFClientes.Edit3Exit(Sender: TObject);
begin
    MessageBox(Handle,
             PChar('Para modificar los DIAS de Credito' + #13#10 +
                   '      Necesita Autorizacion'  + #13#10 +
                   '   Deje Este Espacio en Blanco ' + #13#10 +
                   'Para Compras o Clientes de CONTADO'),
             PChar('DIAS de Credito'),
             MB_OK + MB_DEFBUTTON1 + MB_APPLMODAL);
     Edit3.Text := '0';
end;

procedure TFClientes.DBNavigator1Click(Sender: TObject;
  Button: TNavigateBtn);
begin
   Edit2.Text:= DBEdit15.Text;
   Edit3.Text:= DBEdit1.Text;
end;

procedure TFClientes.DBEdit2Change(Sender: TObject);
begin
   Edit2.Text:= DBEdit15.Text;
   Edit3.Text:= DBEdit1.Text;
end;

procedure TFClientes.DBEdit16Click(Sender: TObject);
begin
     MessageBox(Handle,
             PChar('NO Necesita colocar la Fecha ' + #13#10 +
                   ' Se colocara automaticamente'),
             PChar('MENSAJE'),
             MB_OK + MB_DEFBUTTON1 + MB_APPLMODAL);
end;

end.
Por supuesto vas a tener que cambiar los nombres de las tablas etc. pero es una manera de ver un programa que hace lo que quieres.
Espero te sirva, es el principio, ya se .
Saludos
Responder Con Cita
  #4  
Antiguo 13-10-2006
Delphitest Delphitest is offline
Miembro
 
Registrado: sep 2006
Ubicación: Salamanca-España
Posts: 249
Poder: 20
Delphitest Va por buen camino
Muchas gracias Caral por facilitarme el código,

de momento me suena todo un poco a chino, lo que he hecho es copiarlo al bloc de notas e imprimirlo, asi voy aislando lo que voy entiendo y poniendo comentarios de lo que hace.

Ayer me lo tomé libre por el día festivo pero ya estoy de nuevo con ello. Parece que esto de las BD me va a costar un poco y ya temo llegar a la parte de las facturas pero no pierdo el animo.

Os mantendré informados sobre mi evolución

gracias de nuevo por vuestra ayuda.

Un saludo y que tengais buen día
Responder Con Cita
  #5  
Antiguo 13-10-2006
Delphitest Delphitest is offline
Miembro
 
Registrado: sep 2006
Ubicación: Salamanca-España
Posts: 249
Poder: 20
Delphitest Va por buen camino
Hola de nuevo Caral,

te importaría poner un pantallazo de la ficha de clientes, es para ver los objetos que hay en ella e intentar entender algo mejor el código.

por mi parte ya he hecho una ficha pero reconozco que me está costando entender alguna cosa.

Por ahora, os pongo lo que tengo.

He creado a través del Data Bases Desktop una tabla llamada clientes (no la ando subiendo pq es muy sencilla, si alguien la quiere que me la pida).

Como campos claves he puesto el código de cliente y el dni, el resto de datos son los tipicos ... solo un detalle para el campo código y es que lo he puesto para que se autoincremente (asi a parte de ser único se rellena solo)

No lo sabía pero sobre la marcha he visto que tengo que crear otro Form para la ficha del cliente, casi mejor asi lo tengo de forma independiente y quizas me sirva para otros programas. En lugar de Unit2 lo he renombrado a clientes, suena mejor

Veo que no es demasiado dificil por ahora hacer lo "gordo" ya que hay objetos que simplifican las tareas, pero claro, en cuanto quiere uno hacer algo mas pues ya llegan las dudas.

Para la base de datos he tenido que insertar en el Form los compomentes Table y DataSource, parece que con eso ya se indica donde está la base de datos y el nombre de la tabla.

Despues para el diseño he recurrido a los "Data Controls" y a simples etiquetas de texto para las cabeceras de las lineas.

He insertado una historia muy cómoda que se encarga de todos los controles de la tabla (insertar, borrar ...) menudo ahorro de tiempo, pensaba que todo eso lo tenía que hacer a mano con botones independientes

Por cierto, este form lo muestro al pulsar la opción Ficheros/Clientes.

Ahora voy con alguna duda a ver si me podeis echar una mano:

- Por defecto todos los campos que he añadido con DBEdit son editables directamente sin hacer nada, eso tiene su peligro y ademas he visto que en los controles existe una flecha que supuestamente es para editar el registro. ¿Hay alguna forma de hacer que los campos no se dejen modificar mientras no pulse ese boton edit o es mejor dejarlo asi ?

- A la hora de crear la ficha inevitablemente he ido poniendo los campos a mi aire, lo que hace que ahora al rellenar la ficha siga el orden de creación y no el que aparece en la pantalla, o sea que salta de Nombre comercial a Codigo postal y cosas de esas, ¿para solucionarlo es necesario respetar el orden a la hora de crearlo o puedo cambiarlo ahora que ya está hecho?

En cuanto solucione esto paso a la siguiente fase, gracias a todos de nuevo.
Archivos Adjuntos
Tipo de Archivo: zip Ficha clientes.zip (16,2 KB, 400 visitas)

Última edición por Delphitest fecha: 13-10-2006 a las 13:45:37.
Responder Con Cita
  #6  
Antiguo 13-10-2006
Delphitest Delphitest is offline
Miembro
 
Registrado: sep 2006
Ubicación: Salamanca-España
Posts: 249
Poder: 20
Delphitest Va por buen camino
La segunda duda ya está solucionada, he encontrado que pulsando en el Form de clientes con el boton derecho del ratón aparece una opción llamaba Tab Order y que permite indicar el orden de los campos a la hora de saltar con la tecla TAB.

un problema menos ...
Responder Con Cita
  #7  
Antiguo 13-10-2006
Avatar de Paoti
Paoti Paoti is offline
Miembro
 
Registrado: may 2003
Ubicación: Monterrey. N.L., México
Posts: 612
Poder: 24
Paoti Va por buen camino
Hola Delphitest.



¡Adivina que!



Hay un sistemita en sourceforge, que es un punto de venta, creado con Delphi y firebird, lamentablemente no puedo ponderte el link, ya que tengo restringida esa página en mi trabajo.


pero entra en sourceforge.net busca "punto de venta" delphi.


y te tiene que treaer esa aplicación, con la cual la curva de aprendizaje que requieras va a ser menos.



Saludos del Paoti.
__________________
Estudia y anda en la calle.... que asi serás el doble de listo que los demás...

análisis de información
análisis y diseño de sistemas

Paoti Rios Reséndiz
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
Ejecutar Query Paso a Paso??? juliopag1 SQL 0 17-06-2006 01:51:10
Novato (Paso a Paso de una consulta) enecumene Conexión con bases de datos 2 29-05-2006 20:52:19
Motor Paso a Paso jluisx C++ Builder 3 12-09-2005 16:48:07
Red Paradox paso a paso Aldo Josué Conexión con bases de datos 2 13-12-2003 13:53:37
procedure paso a paso Silver Varios 1 26-08-2003 20:24:00


La franja horaria es GMT +2. Ahora son las 07:09:38.


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