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 11-10-2006
Delphitest Delphitest is offline
Miembro
 
Registrado: sep 2006
Ubicación: Salamanca-España
Posts: 249
Poder: 18
Delphitest Va por buen camino
Mi programa de facturación paso a paso

Bueno, pues tras mis breves preguntas de ayer acerca de como y por donde empezar la programación de una aplicación de facturación, he decidido empezar cuanto antes con el Dephi 7.

Antes de nada quiero agradecer a las personas que me han echado una mano con las dudas iniciales y me han animado a empezar con esta dura tarea.

Con el permiso del moderador del foro me gustaría abrir este hilo con ánimo de ir comentando mis progresos y dudas que irán surgiendo a lo largo de este proyecto. Lo he colocado en Varios, espero que sea el sitio correcto.

Antes de empezar con la programación he pensado que me vendría bien hacer un pequeño "esquema" de lo que quiero, y así lo he hecho. Ya tengo mas o menos claro los menús que necesito y los datos que tengo que mover.

Desde luego que información no falta en internet, ya me he puesto con manuales que me habeis recomendado y he realizado muchas busquedas desde Google para intentar solucionar una dudas iniciales sin tener que molestar demasiado a los foreros.

El resultado ?? pues ya tengo el menú principal creado con las opciones dentro de cada uno. Ya se que sobre la marcha es posible que me toque cambiarlas pero siempre tiene que haber un principio. He empezado por algo muy sencillo y ademas, que quede entre nosotros, la he cagado ya dos veces y me ha tocado empezar de nuevo, pero bueno, la tercera vez que he tenido que crear el menú ya lo hacia casi sin tener que pensar

Ya tengo mi primera duda, y no penseis que no he buscado antes de preguntar. He visto que a través de esto (no se si se llama orden o función):

if MessageDlg('¿ Seguro que desea salir del programa ?',
mtConfirmation, [mbYes, mbNo], 0) = mrYes then


consigo que al pulsar sobre el botón de salir me aparezca un recuadro de confirmación, lo cual es una muy buena opción que quiero incorporar.

Problema; que aparece Yes y No en lugar de aparecer en castellano. He visto en este foro comentarios acerca de este problema y según veo tendría que meter unos recursos de idioma, supongo que seran una librerías o algo parecido. Mi duda es que no se de donde sacar esos recursos, he recurrido a una página de argentina que ponía un forero y buscado en google pero no doy con ello.

¿Me podría poner alguien un link o algun tipo de información que me ayude a conseguirlos?

Gracias a todos por adelantado, espero que mi experiencia tambien sirva a otras personas y puedan sacarle provecho.

Me gustaría ir subiendo los archivos de lo que hago a medida que avance para que los aproveche quien los necesite o los critique quien lo vea conveniente, ¿puedo hacerlo en .zip por ej o recargaría demasiado el foro?

Un abrazo.
Responder Con Cita
  #2  
Antiguo 11-10-2006
Avatar de Caral
[Caral] Caral is offline
Miembro Premium
 
Registrado: ago 2006
Posts: 7.659
Poder: 25
Caral Va por buen camino
Hola
En Español:
Código Delphi [-]
 MessageBox(Handle,
             PChar('¿ Seguro que desea salir del programa ?'),
             PChar(''),
             MB_OKCANCEL + MB_DEFBUTTON1 + MB_APPLMODAL);
Por lo menos a mi me sale asi, no se si tendra que ver que uso XP en Español.
Saludos
Responder Con Cita
  #3  
Antiguo 11-10-2006
Avatar de dec
dec dec is offline
Moderador
 
Registrado: dic 2004
Ubicación: Alcobendas, Madrid, España
Posts: 13.107
Poder: 34
dec Tiene un aura espectaculardec Tiene un aura espectacular
Hola,

Un enlace con los recursos traducidos e instrucciones de instalación.

Respecto de lo de subir archivos... por el momento, si no ocupan más de 30 KB comprimidos (no creas, cabe mucho en 30 KB comprimidos) puedes adjuntarlos a cualquiera de tus mensajes en los Foros.

Si ocupan más podrías utilizar algún servicio similar a RapidShare.de y subir los archivos allí y proporcionarnos la URL que ellos te proporcionen a ti.

Cita:
Empezado por Caral
Por lo menos a mi me sale asi, no se si tendra que ver que uso XP en Español.
Saludos
De la manera en que tú lo haces, efectivamente, parece que se cogen los recursos del propio sistema y se muestran los botones conforme a estos.
__________________
David Esperalta
www.decsoftutils.com
Responder Con Cita
  #4  
Antiguo 11-10-2006
Avatar de Caral
[Caral] Caral is offline
Miembro Premium
 
Registrado: ago 2006
Posts: 7.659
Poder: 25
Caral Va por buen camino
La verdad Dec es que soy un perezoso y uso un programa para hacer estos mensajes, los hace muy rapido y con valores de retorno si quiero, If , Case Of etc... esta practico para el principiante como yo va bien.
Saludos
Responder Con Cita
  #5  
Antiguo 11-10-2006
Avatar de dec
dec dec is offline
Moderador
 
Registrado: dic 2004
Ubicación: Alcobendas, Madrid, España
Posts: 13.107
Poder: 34
dec Tiene un aura espectaculardec Tiene un aura espectacular
Hola,

¿Cuál usas? ¿El que viene con las herramientas de GExperts?
__________________
David Esperalta
www.decsoftutils.com
Responder Con Cita
  #6  
Antiguo 11-10-2006
Avatar de Ñuño Martínez
Ñuño Martínez Ñuño Martínez is offline
Moderador
 
Registrado: jul 2006
Ubicación: Ciudad Catedral, Españistán
Posts: 6.000
Poder: 25
Ñuño Martínez Tiene un aura espectacularÑuño Martínez Tiene un aura espectacular
Cita:
Empezado por Delphitest
Bueno, pues tras mis breves preguntas de ayer acerca de como y por donde empezar la programación de una aplicación de facturación, he decidido empezar cuanto antes con el Dephi 7.
No es por malmeter pero, ¿por qué no has empezado con Turbo Delphi, que es bastante más barato? Por lo que sé es muy similar al Delphi "de toda la vida" (fijate que ni nombro Lázarus para evitar liarte más ). En fin, suerte.

Cita:
Empezado por Delphitest
Antes de empezar con la programación he pensado que me vendría bien hacer un pequeño "esquema" de lo que quiero, y así lo he hecho. Ya tengo mas o menos claro los menús que necesito y los datos que tengo que mover.
Una magnífica idea que la mayora parte de los programadores olvidamos. Y un consejito: haz también diagramas de flujo. Te diría que los hicieras todos ya, antes de empezar a codificar, pero como los programadores somos impacientes por naturaleza, te pediré que los hagas cuando no tengas claro qué hacer.

Lo ideal sería hacer un diagrama de flujo por procedimiento, función o método. Cuando hagas el diagrama no vayas al detalle, en vez de eso haz un diagrama general aunque no sepas cómo hacer todo. Luego, haz otro diagrama de flujo por cada parte del diagrama que no sepas como hacerlo diréctamente.

¡Ah! Y haz los diagramas en papel y con un bolígrafo o lapicero, nunca con un programa de dibujo: es mucho mejor. Lo digo por experiencia.

Cita:
Empezado por Delphitest
Ya tengo mi primera duda (...) (no se si se llama orden o función):

if MessageDlg('¿ Seguro que desea salir del programa ?',
mtConfirmation, [mbYes, mbNo], 0) = mrYes then
Deberías aprender a usar las etiquetas [code] y [delphi]. Así, el trozo de código que has puesto se verá:
Código Delphi [-]
  if MessageDlg('¿ Seguro que desea salir del programa ?',mtConfirmation, [mbYes, mbNo], 0) = mrYes then

Y esto es una sentencia, llamada condicional que incluye una función cuyo nombre es MessageDlg...


Cita:
Empezado por Delphitest
Me gustaría ir subiendo los archivos de lo que hago a medida que avance para que los aproveche quien los necesite o los critique quien lo vea conveniente, ¿puedo hacerlo en .zip por ej o recargaría demasiado el foro?
No subas código, a menos que sea para ilustrar una pregunta. Si alguien quiere verlo que lo pida y se lo envías por correo. Creo que es la mejor solución.

Última edición por Ñuño Martínez fecha: 11-10-2006 a las 18:57:23.
Responder Con Cita
  #7  
Antiguo 11-10-2006
Avatar de Caral
[Caral] Caral is offline
Miembro Premium
 
Registrado: ago 2006
Posts: 7.659
Poder: 25
Caral Va por buen camino
No Dec. El de GExprert lo tengo tambien, en una consulta me lo indico Roman, pero me resulta mas engorroso, no se la verdad talvez no le he puesto cuidado.
El que uso se llama Constructor es muy pequeño y facil de usar.
Saludos
Responder Con Cita
  #8  
Antiguo 11-10-2006
Delphitest Delphitest is offline
Miembro
 
Registrado: sep 2006
Ubicación: Salamanca-España
Posts: 249
Poder: 18
Delphitest Va por buen camino
Perfecto Dec,

Ya lo he descargado y seguido los pasos, funciona a la perfección, ya aparecen los textos en español.

Acabo de preparar el ZIP con lo que tengo hecho, me ha costado enterarme de que archivos tenía que comprimir, por lo que veo el que mas ocupa lo genera de nuevo Delphi al abrir el proyecto por lo tanto no es necesario incluirlo.

Iba a subirlo pero por lo que comenta Nuño es mejor no hacerlo, lo que veais, no tiene ningún secreto, cuando empiece a tener algun dato que quiera ocultar procuraré omitirlo en los ficheros que suba.

Bueno, lo tengo preparado, si hay que subirlo se sube y sino el que lo quiera que me lo pida.

Gracias por vuestra ayuda, mañana empiezo con las fichas de los clientes, ya estoy temblando
Responder Con Cita
  #9  
Antiguo 11-10-2006
Delphitest Delphitest is offline
Miembro
 
Registrado: sep 2006
Ubicación: Salamanca-España
Posts: 249
Poder: 18
Delphitest Va por buen camino
Iba a subir un pantallazo pero casi me cuesta menos meter todo los archivos en un .zip, visto que por ahora no tiene mucho que ver os lo adjunto a este mensaje por si quereis echarle un vistazo y decirme si voy por buen camino o ya empiezo a cojear en algo.

Lo he llamado Gesatrans (Gestion agencia de transporte)

Por ahora solo tiene un menu con la opciones que he visto suficiente y únicamente funcionan las opciones Salir de gesatrans.... (Ficheros) y Calculadora (Herramientas)

El próximo objetivo como digo por encima es la opción clientes, seguro que esta va para largo ...
Archivos Adjuntos
Tipo de Archivo: zip Gesatrans.zip (1,5 KB, 563 visitas)
Responder Con Cita
  #10  
Antiguo 11-10-2006
Avatar de Caral
[Caral] Caral is offline
Miembro Premium
 
Registrado: ago 2006
Posts: 7.659
Poder: 25
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
  #11  
Antiguo 11-10-2006
Delphitest Delphitest is offline
Miembro
 
Registrado: sep 2006
Ubicación: Salamanca-España
Posts: 249
Poder: 18
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
  #12  
Antiguo 11-10-2006
Avatar de Caral
[Caral] Caral is offline
Miembro Premium
 
Registrado: ago 2006
Posts: 7.659
Poder: 25
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
  #13  
Antiguo 13-10-2006
Delphitest Delphitest is offline
Miembro
 
Registrado: sep 2006
Ubicación: Salamanca-España
Posts: 249
Poder: 18
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
  #14  
Antiguo 13-10-2006
Delphitest Delphitest is offline
Miembro
 
Registrado: sep 2006
Ubicación: Salamanca-España
Posts: 249
Poder: 18
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, 399 visitas)

Última edición por Delphitest fecha: 13-10-2006 a las 13:45:37.
Responder Con Cita
  #15  
Antiguo 13-10-2006
Delphitest Delphitest is offline
Miembro
 
Registrado: sep 2006
Ubicación: Salamanca-España
Posts: 249
Poder: 18
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
  #16  
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: 21
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
  #17  
Antiguo 13-10-2006
Avatar de Caral
[Caral] Caral is offline
Miembro Premium
 
Registrado: ago 2006
Posts: 7.659
Poder: 25
Caral Va por buen camino
Hola
Vas bien, en realidad son los primeros pasos, pero poco a poco se llega.
Tienes una pantalla normal, el caso es que en esta puedes editar, insertar,borrar, etc. de la tabla clientes, ya que pusiste en el from un DBNavigator, bueno luego veras otras maneras de hacer lo mismo, por ahora continua con lo que tienes.
Hay que pensar en, que hara el que use la pantalla:
Bueno, al iniciarla se mostrara el primer cliente que pusiste.
? Que pasa si quieres buscar un cliente en especial, pues con las flechas del dbnavigator tendras que recorer la tabla hasta llegar al que buscas, solucion, hacer un flitro, sea por codido o nombre comercial, como ? asi:
El componente que enlaza tu tabla debe terner un nombre, puede ser table1 u otro, este es el nombre que vas a poner en este codigo:
Supongamos que el campo codigo es el DBEdit1, Bueno filtraremos por codigo los clientes asi:
En el evento OnChange del DBEdit1, pondras este codigo, con el nombre de la tabla que tienes, yo le he puesto table1:
Código Delphi [-]
var
   Filtro : String;
begin
   If (DBEdit1.Text <> '') then
   begin
      Table1.Filtered := False;
      Filtro := 'Codigo Like '+DBEdit1.Text;
      Table1.Filter := Filtro;
      Table1.Filtered := True
   end
   else Table1.Filtered := False;
end;
Cada vez que cambies el numero de codigo, este filtrara la tabla y regresara los datos, esto mismo se puede hacer con el nombre comercial etc.
Con este paso solo trato de hacerte ver que el programa tiene que ofrecer varias alternativas de uso y que son realmente faciles de progamar.
Cuando quieras vamos a por otro, vas bien.
Saludos
Responder Con Cita
  #18  
Antiguo 13-10-2006
Avatar de Caral
[Caral] Caral is offline
Miembro Premium
 
Registrado: ago 2006
Posts: 7.659
Poder: 25
Caral Va por buen camino
Hola
Con respecto a esto:
Cita:
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 ?
Cuando usas un DBNavegator esto sucede se pone en modo edicion en cuanto se toca un dbedit, no es conveniente, ya te esplicare como eliminar el dbnavegator, por ahora una a una.
Necesito saber que motor de base de datos usas y los nombres de los componentes que as puesto, asi te voy dando el dato correcto.
Prefiero que se pones la pntalla sea en modo diseño, he tratado de poner la mia pero es de 830k no se puede.
Saludos
Responder Con Cita
  #19  
Antiguo 13-10-2006
Delphitest Delphitest is offline
Miembro
 
Registrado: sep 2006
Ubicación: Salamanca-España
Posts: 249
Poder: 18
Delphitest Va por buen camino
Adjunto lo último y completo (con BD) para que veais por donde voy.

Ando buscando una alternativa para subir los archivos y poneros solo un link, mas que nada para no sobrecargar el foro (supongo que a muchos no les parecerá bien que ponga estas cosas tan sencillas), seguro que encuentro algo para la semana que viene en algun servidor.

Muchas gracias de nuevo a los que me estais auydando, asi da gusto

Esto de la busqueda que indicas Caral había pensado poner un botón que me lleve a una ventana de buscar pero todavía busco la forma. He probado con lo que me pones y no consigo hacerlo funcionar, he sustituido el campo codigo por el del nombre comercial, no se si tendrá algo que ver la longitud y el tipo, el caso es que el error que da es que no encuentra la cadena que busca, pero si que está ...

La verdad es que hoy me duele un poco la cabeza, no veas las vueltas que le estoy dando . Tengo varios codigos fuentes que me habeis estado pasando, tutoriales, articulos ... me sale humo del craneo.

Buen fin de semana a todos, a ver si mañana o el lunes estoy mas despejado y consigo avanzar
Archivos Adjuntos
Tipo de Archivo: zip Gesatrans.zip (6,4 KB, 344 visitas)
Responder Con Cita
  #20  
Antiguo 16-10-2006
Delphitest Delphitest is offline
Miembro
 
Registrado: sep 2006
Ubicación: Salamanca-España
Posts: 249
Poder: 18
Delphitest Va por buen camino
Buenas tardes a tod@s,

os cuento por donde voy en este momento.

En primer lugar para no ocupar espacio en el foro voy a subir los ficheros a través de rapidshare, lo ultimo que tengo hecho está aquí:

http://rapidshare.de/files/36976866/Gesatrans.zip.html

- He añadido un campo F_Pago a la base de datos, se me había pasado y creo que lo voy a necesitar. Para mostrarlo en el Form he utilizado el DBComboBox que parecía el mas apropiado.

- Recorriendo foros y articulos he encontrado la forma (muy sencilla por cierto) para que el usuario no pueda cambiar el tamaño de la ventana, solo lo he aplicado a Clientes añadiendo este código en el evento OnCreate:

Código:
procedure TForm2.FormCreate(Sender: TObject);
begin
  Constraints.Minheight := Height;
  Constraints.Maxheight := Height;
  Constraints.Minwidth := Width;
  Constraints.Maxwidth := Width;
end;
- Por otra parte, y esto es lo que me está empezando a traer de cabeza, necesito un sistema sencillo pero completo de busqueda que me permita localizar un cliente por su razon social o nombre comercial, pero con algo que haga la comprobación de "contiene" sin necesidad de que coincida al 100% con el contenido del campo. Solo he conseguido de forma muy sencilla buscar a traves del código de cliente, que resulta ser el campo clave de la BD, ha sido con esto creando un botón y metiendo este código en el evento onClick:

Código:
procedure TForm2.BitBtn1Click(Sender: TObject);
var Buscar:Integer;
begin
Buscar:=strtoint(inputbox('Buscar Cliente','Indique el código de cliente','1'));
if Not Table1.FindKey([Buscar]) then
messagedlg('Código inexistente',mtConfirmation,[mbok],0);
end;
¿Se os ocurre algo para lo que necesito de la busqueda ?
(si se resolviese dentro de este mismo form sería lo mejor )

Hasta aquí he dado de sí hoy, por cierto Caral, he probado lo que ponías par buscar pero no hay manera, no lo hago funcionar y me da errores que no consigo solucionar.

Hasta la próxima y gracias
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
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 21:52:47.


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