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 25-10-2006
[maeyanes] maeyanes is offline
Capo de los Capos
 
Registrado: may 2003
Ubicación: Campeche, México
Posts: 2.732
Poder: 26
maeyanes Va por buen camino
A ver... esto lo pueden hacer tan fácil como esto:

Código Delphi [-]
function GetAlbaranNextNo: Integer;
begin
  with TADOQuery.Create(nil) do
    try
      // Aquí inicializas con la conexión a la base de datos...
      SQL.Text := 'select max(Num_Albaran) from Albaranes';
      try
        Open;
        Result := Fields[0].AsInteger + 1;
        Close
      except
        ShowMessage('Ocurrió un error obteniendo número de Albarán')
      end
    finally
      Free
    free
end;

// Como usarlo:
procedure DataModule1.TablaAlbaranNewRecord(ADataSet: TDataSet);
begin
  TablaAlbaran.FieldByName('Num_Albaran').AsInteger := GetAlbaranNextNo
end;

Esto es, al usar el evento OnNewRecord de la tabla albaranes, le asignas el número que le corresponde. Al hacer esto, si llegas a cancelar el albarán no pasa nada...


Saludos...
Responder Con Cita
  #2  
Antiguo 26-10-2006
Robert01 Robert01 is offline
Miembro
 
Registrado: feb 2006
Ubicación: Córdoba, Argentina
Posts: 895
Poder: 21
Robert01 Va por buen camino
Gracias caral por el dato.

Bajé uno de este enlace, no se si será el mismo pero con tu código anduvo todo ok.

saludos
Responder Con Cita
  #3  
Antiguo 26-10-2006
Avatar de kalimero
kalimero kalimero is offline
Miembro
 
Registrado: may 2003
Ubicación: Alicante
Posts: 289
Poder: 24
kalimero Va por buen camino
Hola Delphitest.

En relacion a la numeracion de los Albaranes, te aconsejo que el dar numero al nuevo albaran sea la ultima operacion que se realice y no la primera como creo que estas planteando. Me explico: inicias la creación de un nuevo albaran y el sistema te asigna, por ejemplo, el numero 100. Un compañero tuyo inicia otro albaran y el sistema le asigna tambien el numero 100 (suponiendo que tu no hayas terminado todavia). Ahora resulta que tu compañero es mas rapido que tu y graba los datos de su albaran antes que tu. Cuando tu termines y vayas a grabar los datos de tu albaran nos encontraremos con que el albaran numero 100 ya está introducido(el de tu compañero). Por eso te recomiendo que asignar el numero debe ser lo ultimo de lo ultimo. Para esto, en los datasets hay un evento que se llama "beforePost". Coloca ahi el codigo de asignar el numero del albaran.

Saludos
Responder Con Cita
  #4  
Antiguo 26-10-2006
Delphitest Delphitest is offline
Miembro
 
Registrado: sep 2006
Ubicación: Salamanca-España
Posts: 249
Poder: 20
Delphitest Va por buen camino
Bueno, allá vamos ...

Buenas tardes ante todo.

Gracias Marcos por el código pero por lo que se ve esas 3 letras (SQL) me tienen manía, no creas que no lo he intentado pero no sabía donde había que meter la función (el procedure) y me he liado de nuevo, asi que lo dejo como está de momento.

Kalimero, buena observación eso de los números. Tendré que cambiarlo pero antes debo pensar como y donde . No veas como me está costando esta parte. al estar divido en varios trozos, el albaran puede terminar parcialemente antes de meter las lineas o totalmente despues de ponerlas, pero de entrada debo poner un número aunque sea de referencia, ya le daré vueltas al tema.


Ya tengo muy adelantada la opción Ventas/Albaranes aunque no terminada aún pero os cuento los adelantos.

He optado por por dividir un solo form en varias partes.

Intervienen 3 tablas; Albaranes, DesgloseAlbaran (que contiene las lineas de los albaranes) y clientes (solo para sacar los datos de ahí)

He tenido que crear una relacion entre las tablas de los albaranes para que a cada albaran se le relacione con las lineas suyas unicamente, es decir que cada linea tiene el numero del albaran al que corresponde (es algo interno y eso no se ve)

Al entrar en esta opcion desde el menú;

Podemos:

Recorrer a traves de los tipicos botones los diferentes albaranes viendo su contenido, edit o borrar si es necesario un albaran y dar de alta uno nuevo.

En este último punto:

El número aparece por defecto buscando el mas alto actual +1 pero se puede cambiar, es un campo único pero no autoincrementable (por ahora mejor asi para no liarme), la fecha por defecto es la actual pero tb se puede cambiar. Al poner un codigo de cliente aparecen sus datos de forma automatica, si no conocemos el codigo podemos darle a ... y buscar el cliente con el sistema que hice la semana pasada, doble click en el y se ponen sus datos. Me falta la posibilidad de dar de alta un cliente desde aqui en caso de que no esté dado de alta. El resto son datos que se ven.

Una vez completada esa parte de datos de cabecera hay que añadir las lineas pulsando el signo + que aparece a la dcha del DBGrid.

Eso nos muestra un panel que hay que rellenar. Aceptar para tener en cuenta esa linea y pasar a la siguiente o cancelar para descartarla.

Un vez añadida las lineas necesarias basta con pulsa el icono Aceptar (el del Disco) y ya está, tenemos un albaran creado.

Me faltan por calcular las casillas, todavía no me he puesto con ello, os anticipo lo que quiero;

Cuando se da de alta una linea al poner Portes, reexpedicion y otros o parte de ellos deberia aparecer el total de esos campos sumados en importe (parcial), al aceptar la linea ese importe se tiene que sumar al campo Base y quedar reflejado por debajo del DBGrid. A medida que se añadan mas lineas la base se tiene que incrementar.

El iva estaría basado en el % de valor indicado en la cabecera del albaran al igual que el descuento, y finalmente el Total seria base-descuento+iva

Ahora me pongo con eso de los calculos, es algo que no he tocado nunca y me toca investigar de nuevo.

Tampoco imprime todavia pero eso lo dejo para mas tarde, primero los calculos.


Aqui esta lo nuevo

A ver si tenemos suerte y podeis descargarlo y probarlo sin muchos problemas.

Sería de agradecer que alguien lo probase porque estoy seguro que tiene un monton de fallos que para mi están pasando desapercibidos.

Un abrazo y ya mañana vuelvo a la carga con los cálculos.
__________________
Mi proyecto paso a paso (Parte I)
Responder Con Cita
  #5  
Antiguo 26-10-2006
Robert01 Robert01 is offline
Miembro
 
Registrado: feb 2006
Ubicación: Córdoba, Argentina
Posts: 895
Poder: 21
Robert01 Va por buen camino
hola a todos

Yo probé el código de maeyanes. A la función la puse en la unidad del datamodule. Agregué Dialogs en la unidad para poder usar showmessage.

Al ejecutar el código surgió un error cuando quise ingresar datos en el formulario de albaranes.

Con respecto a lo que decía caral que no veía el formulario del datamodule es por los valores de coordenadas que tenía (left y top), yo abrí el datamodule.dfm y le cambié por valores adecuados para que quede más o menos centrado en la pantalla.

saludos
Responder Con Cita
  #6  
Antiguo 27-10-2006
[David] David is offline
Miembro Premium
 
Registrado: may 2003
Ubicación: Málaga
Posts: 417
Poder: 24
David Va por buen camino
Lo que dice Caral de traerte todos los datos con la tabla , me pregunto si habrá alguna instrucción para no permitir que vengan más de 50 registros de una vez .

En cuanto al programa , le he echado un vistazo por encima y lo que no me acaba de convencer es poner en enabled := False , cuando no esta en modo de insert or edit . El caso es que con poner el DBGrid , ReadOnly vale , y además así se ve muy mal los datos , mejor es si quieres cambiar el color del dbedit , ponle el color clInfoBk , cuando este en modo de edición , pero lo de enabled := false ,no me gusta , no he visto que los programas esten así . Esto es más un dato de decoración , pero bueno .

Mirá Delphitest , hay un programador famoso de Delphi , que escribe libros , yo tengo uno de ellos y en él hay ejemplos de cada capítulo , ejemplos de programas pequeños claro esta . Te envio uno de esos programas pequeños , en un archivo de sólo 22 kb , para que analices como programa este hombre . Aquí lo tienes : http://www.megaupload.com/es/?d=HBGZCIWU

Última edición por David fecha: 27-10-2006 a las 18:44:06.
Responder Con Cita
  #7  
Antiguo 27-10-2006
Delphitest Delphitest is offline
Miembro
 
Registrado: sep 2006
Ubicación: Salamanca-España
Posts: 249
Poder: 20
Delphitest Va por buen camino
Buenas tardes,

ando un poco liado hoy, os pongo las actualizaciones.

He cambiado lo que comentas David, es cosa de gustos supongo pero lo he puesto como dices.

Caral ya he movido todo a la misma pantalla, ahora seguro que lo puedes ver sin problema. Eso que dices de las BD en el DTM es cierto, se nota que poco a poco va tardando mas en abrir. Ya lo intentaré solucionar este fin de semana.

Probar lo de los albaranes si quereis, pero me sigue faltando lo de la Base Imponible, supongo que no puede ser tan complicado pero ya no veo mas alla de lo que tengo, a ver si me despejo un poco estos días y encuentro la solución.

Aquí está lo nuevo

Buen fin de semana para todos
__________________
Mi proyecto paso a paso (Parte I)
Responder Con Cita
  #8  
Antiguo 27-10-2006
Avatar de xander
xander xander is offline
Miembro
 
Registrado: jul 2006
Posts: 499
Poder: 21
xander Va por buen camino
Dos cosas:

1.- Que bueno que estén haciendo un programita de Facturación entre todos aqui, de P.M....

2.- Que malo que lo estén haciendo en Access
__________________
"Hey, nena, debe ser genial ser tú y verme a mí mismo..."
Responder Con Cita
  #9  
Antiguo 27-10-2006
Robert01 Robert01 is offline
Miembro
 
Registrado: feb 2006
Ubicación: Córdoba, Argentina
Posts: 895
Poder: 21
Robert01 Va por buen camino
yo no estoy usando access, estoy usando paradox y al mismo tiempo estoy probando con lazarus.
saludos
Responder Con Cita
  #10  
Antiguo 27-10-2006
Robert01 Robert01 is offline
Miembro
 
Registrado: feb 2006
Ubicación: Córdoba, Argentina
Posts: 895
Poder: 21
Robert01 Va por buen camino
¿Porque usamos access?

En en mensaje anterior quise decir también lo estoy haciendo con paradox.

Debe haber muchos integrantes en el foro que al igual que yo no son profesionales en sistemas.

Los que estamos en estas condiciones tal vez carezcamos de los suficientes conocimientos de programación para empezar a utilizar bases de datos más poderosas y seguramente también más difíciles de usar.

Además hay muchos casos en que para pequeñas aplicaciones creo que con access es suficiente y por otra parte, siempre hay tiempo para cambiar porque en todo caso el cambio siempre va a insumir mucho menos tiempo que si no tuviéramos ningún conocimiento.

Yo no tengo demasiados conocimientos de paradox, access y ninguno de las otras bases de datos, etc pero con lo publicado estoy tratando de aprender un poco más.

Hace unos días traté de hacer las cosas usando firebird y mysql pero no conseguí entender como empezar.

Imagínense si en un curso de algo nos enseñan a sumar, restar, etc , a realizar operaciones básicas, y luego alguien nos dice que se puede hacer las cosas de otra forma: supongamos que tenemos que aprender álgebra, cálculo, etc en unos pocos días.

Si uno tiene conocimientos de visual basic resulta más fácil aprender delphi aunque sean diferentes y lo mismo ocurre con access.

Yo me doy cuenta de los vastos conocimientos que tienen muchos foristas y de lo acertadas que seguramente estarán sus preferencias, espero que mi humilde crítica no sea mal recibida.
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 22:41:35.


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