![]() |
Hola Albaran
Tambien podria decirse de una PROFORMA, archivada. La palabra clave es archivo, ya que sea inventario, proforma, documento, ect, este albaran es un archivo de esto. Viendo la definicion de Lepe, es eso, una proforma, o factura previa, osea un archivo o tabla, en donde se coloca pues eso un producto que en este caso es un documento. Saludos |
Hola Delphitest
Sigo con problemas para ver el programa, no estan lo archivos: DTMRepartidores, DTMTarifa, al no estar estos no puedo hacer nada, revisa que esten todos los archivos cuando los envies para poder verlos. Saludos |
Buenas noches Caral,
he descargado el archivo ese desde otro ordenador para ver si me daba el mismo problema que a ti, pero excepto lo de la famosa base de datos no dice nada. Recuerda que lo tengo en .../Borland/Delphi7/Projects y luego dentro de esa carpeta está Datos. Igual es por eso. Por otro lado ya ando con esto de los albaranes, no se si daré con ello. Hoy he tenido que apagar el ordenador y salir a dar un paseo porque ya no veia ni la pantalla :( A todos los efectos el albaran ha de ser identico a una factura, es decir que tiene que tener por lo que he podido concluir, una cabecera y un desglose de linea, ya que puede tener varias. Mañana continuo pero esto si que tiene tarea, no acabo de entender lo de relacionar las tablas y alguna cosa mas, pero insistiré mañana con la mente mas despejada porque hoy no da para más. Hasta Mañana |
Cita:
bueno con referente al ALBARAN, por lo que entendi de lo que uds me comentaron. es aca en Argentina, un Remito. Es decir un documento no valido como Factura, pero que se utiliza para el transporte de mercaderias, (debe llevarlo el transporte, para evitar Problemas legales). en este no hace falta que se indique importe pero si el Nº de factura al cual Corresponde. saludos |
Hola Delphitest
Sigo con el mismo problema, no tengo los archivos del data module, ni de tarifas ni de repartidores, el programa esta incompleto o no ve el mio estos archivos, me da un error que no encuentra las tablas, lo da, en la aplicacion, busca todo y ve si no has puesto algo en otro lado, el error empezo con la ampliacion que hiciste de estos. Por otro lado; Me gustaria saber: a que se dedica la empresa, vende servicios, da transporte de mercaderia por encargo, se necesita algun sistema de control del transporte, estoy bastante confundido al respecto. Es dificil sin conocer un poco en detalle como se trabaja, a que se dedica etc., para saber en que te puedo ayudar mas, el asunto de los albaranes no es complicado, pero, que haceis, sin esto no se como empezar siquiera. Si esta en tus manos envia una idea general de la empresa, y procura revisar el contenido del programa, a mi no me va. Saludos |
Hola Caral
Yo no tengo el control numedit, de donde lo instalo (uso la versión 6 del delphi).? Por otra parte cada vez que bajo un programa tengo que editar el formulario donde está el Ado con el camino porque sino delphi hace crash!! le cambio el camino desde allí y todo OK. Voy a tener que crear una carpeta como la que ienen uds. gracias, saludos |
Hola delphitest. solo queria hacerte un comentario.
La idea del DATAMODULE es: Tener un Acceso a Datos de manera Global. ya que si para cada Caso vas a crear un DATAMODULE es lo mismo que Crees Cada Ado en cada formulario. lo que tenes que hacer es modificar el Query en cada caso.. Saludos |
Buenos días,
ante todo voy a dedicar un tiempo a "sanear" todo esto que tengo. Efectivamente Ena0 lo de los DataModule no lo he entendido bien, pensaba que era uno por acceso a tablas pero ya he visto que no tiene sentido, asi que voy a agrupar todo en el mismo, espero que no me traiga muchas complicaciones. Por otro lado si que he puesto el código que me dijiste para lo del path de la base de datos, estos últimos errores deben de ser en la última tabla de repartidores, ahí se me pasó. Os intento explicar para que es la aplicación. Es una empresa de transporte, por lo tanto no facturamos articulos ni llevamos un control de stock de mercancias ya que lo único que vendemos son servicios de transporte. Por eso la tarifa que he hecho contiene principalmente el peso y las diferentes zonas, por ej. 5 Kg a la zona 1 tiene un precio, 5 Kg a la zona 2 tiene otro, esa parte es la que facturo. Lo de los albaranes le doy mucha importancia ya que es un paso previo a la facturación. No facturamos diariamente nuestros servicios, sino que los reflejamos en un albaran con su precio correpondiente para que nos quede constancia tanto al ciente como a nosotros del servicio prestado. Luego el último día del mes facturamos todos los albaranes de los clientes. Espero que entendais mas o menos la finalidad del programa. A ver si no me lío mucho quitando los DTM sobrantes y en cuanto lo tenga limpio aunque no haya terminado los albaranes os lo subo para que lo veais mas claro. Que paseis un buen día :) |
Bien, vaya paciencia que hay que tener para esto, me ha tocado cambiar uno a uno todas las referencias pero ya lo tengo.
He hecho, como decía Ena0, agrupar todo en un DTModule. Conclusión que he quitado: DTMClientes, DTMRepartidores, DTMTarifa, DTMFacturacion y lo he metido todo en un único llamado DTMGesatrans. Lógicamente he cambiado todo lo que conlleva para que funcione. Aqui lo tenies, espero que esta vez ya funcione. De paso encontrareis un archivo llamado limpiar, es de DEC (Gracias de paso) que permite quitar toda la basura de archivos temporales que crea delphi y que no son necesarios, me estaban poniendo nervioso. En el menú ficheros ya funciona todo, Clientes, Tarifas y Repartidores. Ahora voy con Ventas/Albaranes Está empezado pero no terminado, al menos asi ya teneis una idea de lo que pretendo. Como orientación: FAlbaranes tiene acceso a 3 tablas; TAlbaranes, TDesgloseAlbaran y TClientes y pretendo que a traves de un panel que se oculta y se muestra segun la necesidad poder dar de alta las lineas de este albaran teniendo en cuenta la tarifa ... en fin ... me espera una buena con esto ;) Un abrazo |
Pregunta a tu cliente si el tema de las tarifas es algo fijo.
No debe costar lo mismo llevar una cajita con un telefono móvil que una caja de un metro cúbico, aunque el peso sea el mismo. Más vale tener en cuenta el volumen del paquete además de su peso. Saludos |
El tema del volumen si hay que tenerlo en cuenta, pero en vez de ponerlo en la tarifa para no liarme lo estoy poniendo en las lineas de desglose del albaran al igual que otro campo "otros" para indicar algun posible gasto de manipulación, espera o reembolso.
Un saludo |
Hola Delphitest
Ya he podido ver el programa aunque sigo sin ver el datamodule, pero ya lo corri y se ve bien.:) Creo que vas por muy buen camino, la verdad vas muy adelandado y no se en que mas te pueda ayudar, ya me diras:rolleyes: . Hola Robert01 Con respecto al componente numedit, esta aqui: http://rapidshare.com/files/637120/NumEdit.zip.html Solo lo tienes que instalar y ya. La ventaja con este componente, es que es un edit normal, pero el intedit, solo permite ingresar datos tipo Int, y el floatedit, solo tipo float, es muy practico, ya lo veras, como lo uso mucho por eso el programa tiene estos componentes que se instalan con el numedit, que los contiene. Me alegra que sigas el progreso de Delphitest y que te sirva de algo lo que esta haciendo el.:D Saludos |
Gracias Caral,
intento adelantar un poco la parte de los albaranes, ya sabía que aquí me surgirían un montón de dudas y así es. No quiero molestar demasiado en el foro porque soy conciente de que muchas dudas ya han sido tratadas así que voy buscando muy despacio e intento entender algo mas, pero reconozco que esto va para rato, me quedo atascado en cosas y no veas para salir de ellas. Estoy intentando avanzar progresivamente para no meterme en la boca del lobo de golpe, aqui hay mucha tela que cortar. Una pequeña duda que tengo: A la hora de númeras los albaranes en un principio opte por poner un campo numerico autoincrementable, pero veo que no me interesa así, o sea que lo pongo numerico, indice y único requerido. Cuando se llega a ese DBEdit (el del núm de albaran) quiero que por defecto me ponga el número máximo + 1 que se encuentre en el campo Num_Albaran de TAlbaranes. He visto mucho relacionado con sql pero me pregunto ¿no hay algo que no sea sql para allar ese valor máximo? Me refiero igual que existe locate, filter, sort y esas ordenes que puedo utilizar sin mas, no hay algo tipo MAX() o parecido ??? No ando subiendo nada todavía porque sería liaros un poco, prefiero que se vea algo concreto hecho. Un saludo |
Hola
Con sql, es muy facil, no le tengas miedo: En un query temporal pones esto: Leera la tabla, el valor maximo y le sumara 1. Si lo quieres sin sql, en el caso que el valor sea tipo integer, es asi: Con una variable: Con esto al dbedit1 se le sumara el valor de (a) y lo optendra (b). Bueno mas o menos es una explicacion simple, para que te guies. Saludos |
Perfecto Caral, gracias.
Una cosa menos en la que pensar :) He aplicado la segunda forma, sin sql, he intentado lo primero que pero no me sacaba el max ni queriendo, algo estaba haciendo mal con total seguridad pero no he querido insitir. Siempre me ponía el valor a sumar, por ej. 1 , lo cambié a 2 para ver que hacía y me ponía 2, por lo que llego a la conclusión que sacaba el valor 0 del campo num-albaran. Lo tengo solucionado con la otra forma, me sirve por ahora, aunque he tenido que meter antes una orden para ordenar la tabla por ese numero, asi me aseguro que es el mas alto antes de sumarle 1. y ademas muevo el puntero de la tabla al final;
Mañana mas, buenas noches |
Hola Delphitest
No se porque razon no funciona bien, seguro que algun maestro lo indica, pero ya te lo hice funcionar con sql, solo pon un edit y ya. No hace falta poner la tabla en last, ni nada. Prueba asi: Como ves al final le doy el valor del edit al dbedit, asi te va a funcionar. Saludos |
A ver... esto lo pueden hacer tan fácil como esto:
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... |
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 |
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 |
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. :) |
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 |
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 :( |
:eek: yo no estoy usando access, estoy usando paradox y al mismo tiempo estoy probando con lazarus.
saludos:cool: |
¿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. |
Buenos días,
el uso de access ha sido por el hecho de que parto totalmente desde cero y prefiero dedicar mas tiempo a la programación de delphi que a entender como funciona el tema de las bases de datos pero cuando esté acabado prometo dedicar mi esfuerzo a traspasar todo a FireBird, mas que nada por aprender un poco mas. Tienes razón Robert, el tema del DT puede ser por eso de la posición en pantalla, no me he dado cuenta del detalle pero trabajo con 2 monitores y en una resolución de 1280 x 1024, me resulta muy cómodo repartir las ventanas entre las dos pantallas. Que tengais un buen día, yo empiezo con la tarea. |
Pues ahora si que necesito ayuda porque me he quedado en blanco :confused:
Ando con el tema de los famosos cálculos. Ya he conseguido, creando un campo calculado en la tabla TDesgloseAlbaran y llamado Importe, que me de un importe en cada linea de albaran. Lo he añadido desde el DTMGesatrans y en la tabla he metido en el evento OnCalcFields
Esa parte funciona sin problemas. Ahora necesito que el Campo Base de la Tabla TAlbaranes sea la suma del campo importe (de TDesgloseAlbaran) teniendo en cuenta como filtro que todas las lineas a sumar tienen en comun el campo Num_Albaran. A simple vista no tiene mucha complicación pero creo que el SQL me tiene manía, os digo lo que he hecho pero que no funciona: He creado en el form del albaran una Query llamada ADOQAlbaran enlazada logicamente con TDesgloseAlbaran, hasta ahí creo que voy bien. Ahora para el calculo (solo para probar) he puesto un botón y en el evento OnClick estoy probando esto:
De momento solo me conformo con que aparezca ese mensaje con el total para comprobar que esté bien, luego la finalidad es que lo ponga en DBEdit24. DBEdit1 para que os orienteis es la casilla donde ya está el núm de albarán. No funciona de esta manera pero soy incapaz de saber porque. Para empezar tengo que poner como nombre de tabla Desglose_Albaran (que es nombre original de access) en vez de TDesgloseAlbaran (que es el que tengo en el DT), eso me da igual pero no lo entiendo. Luego el error me lo da diciendo que TotalImporte no está declarada. Importe es de tipo Currency por cierto. No paso de aqui. Si alguno me podeis echar una mano os lo agradezco, veo que el sql y yo somos muy diferentes :o Gracias por adelantado |
Hola Delphitest.
Por los detalles que das, creo que estas mezclando churras con meninas.Me explico. "TotalImporte" es el nombre de la columna que te dara el valor en la sentencia SQL. Para recoger ese valor en delphi tienes que hacer algo parecido a esto: Es decir , no puedes tratar "TotalImporte" como una variable, puesto que delphi no sabe nada de ella. Es algo interno al componente. Una vez que tienes el valor recogido en "Mivaribledeclarada " ya puedes trabajar con ella. Saludos |
Para los que Comentaron "Solo Access"
Hola amigos, bueno para los que comentaron que era una lastima que solo se pudiera conectar Con ACCESS (ya se que muchos lo han modificado) Aca les dejo otra pequeña forma de como conectar a otra DB. Utilizando un archivo UDL.
Bueno primero que nada, en el datamodule Borren lo que contiene el ADOConnection1, en la propiedad Connection String. (En el Object Inspector). Luego en el ONCreate de dicho DAtamodule pongan este codigo reemplazando la linea que corresponde:
Bueno lo puse fijo con una Archivo llamado "Conexion.UDL" que deria encontrarse en la misma Carpeta que el "EXE". Con esto podran importar la Base de Datos de ACCESS al motor que sea posible (creo que a casi todos) y luego hacer la Conexion corresponidente mediante dicho archivo. Si no sabe como crear el archivo UDL: Creen un archivo de TEXT y cambienle la extencion por la antes citada. luego doble click y solo setear lo que corresponda. Saludos |
hola delphitest
En el archivo que subiste ayer hay un formulario Frepartidores que tiene un link a TMDRepartidores (uno de los que tenías con un datamodule antes de que los pusieras a todos en TMDGesatrans) |
Hola A todos
Siempre criticado a la pobre base de datos Access, que les ha hecho ?:confused: , si quereis liaros pues usad lo que querais, la verdad en esto hay mucha tela que cortar y tantas opiniones como foristas, me voy por lo sencillo, como buen principiante y creo en la simpleza ademas que Delphitest no habria avanzado tanto si no huviese empezado con lo mas sencillo, bueno esta es mi opinion. Delphitest sigo sin ver algunos forms, si puedes colocarlos en otra posicion en la pantalla, seria bueno en tu proxima ampliacion. Con respecto a lo relacionado con sumas etc, para mi lo estas haciendo dificil, en mi opinon el albaran se deberia hacer primero, sumar todo lo que se necesite y posteriormente, si quedo este como querias, grabarlo a la base de datos, asi podras hacer un albaran, por ejemplo, para ver a que precio saldria X transporte a X lugar por X peso, sin necesidad de grabarlo, que al cliente le parecio el precio, pues lo grabas, un albaran es en realidad una factura proforma, de una u otra manera, si todo lo haces directamente sobre la tabla, puedes equivocarte, ademas que estas consumiendo recursos sin necesidad. Otra cosa y creo es muy importante, cuando abres el datamodule, creas y abres todas las tablas de una vez, ahora tienes 4 datos, cuando tengas 1.000.000 tendras que tomarte un cafe hasta que el programa arranque, las tablas hay que iniciarlas cuando se necesitan y cerrarlas cuando no, por eso se usan los query ya que estos no traen toda la informacion, solo lo que necesitas ahorrando tiempo y recursos, sin temor a equivocarme, pienso que lo estas haciendo mal, ya se que no es tu culpa, pero estas a tiempo de cambiarlo luego sera mas dificil, si te vas fijando en tu programa te daras cuenta que cada vez es mas lento, fijate, porque luego le echaran la culpa al pobre Access, mi base de datos tiene casi 800m y corre a la perfeccion. Espero el proximo avance, ojala con los forms en su lugar para poder verlos. Saludos |
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 |
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 |
Vale Ya lo veo
En que quieres que te ayude? Quieres que te adelante algo ? Saludos |
Entra en la opción, Ventas/Albaranes
Si das de alta uno nuevo veras que despues de meter los datos de cabecera hay que pulsar el botón que pone "+" a la dcha del DBGrid. Eso permite meter las lineas del albaran y aparecen con un importe de cada linea. Mete una linea , le das a aceptar y luego otra y ya a cancelar, eso hace que las lineas aparezcan en el dbgrid. Hasta ahi todo bien, pero fijate en la base imponible , está a cero, eso es lo que quiero solucionar, que sea la suma de los importes. El iva, descuento y total ya están preparados. Gracias de nuevo. |
Hola
Dame el concepto matematico de esto, no lo entiendo. Creo que va asi: Base Imponible + IVA - Descuento = Total Es asi ??? Quieres hacer la operacion y si te apetece, lo grabas o no.?? Saludos |
Hola Delphitest
Trabaje un rato en lo de las sumas, va bien pero tengo un problema con los tipos de datos de la base de datos, tendras que verificarlo tu, si te parecen los cambios pon otro adelanto, con la base de datos completa. Veras que he puesto dos botones, uno calcula el importe del albaran y otro suma todo, base importe + iva - descuentos = Total. Bueno por hoy me canse, nos vemos el lunes, en linea. Aqui te envio los cambios, revisalos y corre el programa para que los entiendas mejor. Aqui esta: http://rapidshare.com/files/934431/Projects.zip.html Saludos y buen fin de semana |
Hola delphitest
¿podrías poner las fórmulas que usas para hacer los cálculos del albarán? Yo no tengo muchos conocimientos de contabilidad. Tampoco se que es la base imponible. ¿Como hago para cargar los datos de una tabla por partes? Caral dijo algo sobre eso hace unos días. Tengo una tabla con 1.5 millones de registros y si un programa los lee todos a la vez va a resultar extremadamente lento. saludos |
Hola Robert, ¿Qué tipo de operación quieres hacer?, ¿afectaría a todos los registros?
Lo normal sería hacerlo por una consulta (TQuery), donde se restrinja los datos:
Aunque estamos seleccionando todos los campos (columnas) de la tabla, esa consulta debería ser muy rápida, ya que afectará a 1 registro. Incluso afectando a 1.000 clientes, debe ser inmediato. Lo normal es acelerar las búsquedas creando índices secundarios (sobre los campos de búsqueda), a menos que sean clave primaria, que entonces, ya llevan un índice. Saludos |
hola lepe
con repecto a la búsqueda es para encontrar personas digamos que empiezan con una letra, sílaba o dos sílabas en un campo donde está apellido, nombres y direcciones. Yo buscaría por el apellido. Si trato de ordenar por el mismo tarda mucho en hacerlo entonces creo que la alternativa es filtrar sin ordenar. Por lo que dijeron antes si el programa lee todos los datos de la tabla va a ser muy lento pero no se cuanto saludos |
Hola Robert 01
Como dice lepe, se puede hacer una consulta con sql y es realmente rapida, tambien puedes hacer una consulta con sql y filtrarla para encontrar los datos segun quieras, por ejemplo, digamos que tienes una tabla que se llama clientes y un campo que se llama apellido que es el que quieres filtrar entonces haces una consulta y un filtro de la misma en un query, asi: Colocas un query y en el evento oncreate del form pones esto: Tambien lo puedes poner en otro evento el que te convenga. Ademas pones un edit en el form y en el evento OnChange del edit pones esto: Con esto la consulta esta hecha en sql y es rapida y el filtro esta hecho en el edit, con este ira buscando en apellido por la primera letra que introduzcas. Saludos |
| La franja horaria es GMT +2. Ahora son las 07:05:06. |
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