|
Esta sección te permite ver todos los posts escritos por este usuario. Ten en cuenta que sólo puedes ver los posts escritos en zonas a las que tienes acceso en este momento.
Mensajes - softevolutions
26
« en: Martes 18 de Enero de 2011, 20:46 »
Yo uso Report Manager y no me va mal. http://reportman.sourceforge.net/Tienes que incluir en tu c++ Builder los componentes correspodientes. En el manual viene todo muy bien explicado.
27
« en: Lunes 17 de Enero de 2011, 18:18 »
SI se puede hacer, pero .... con que herramienta quieres hacerlo??
28
« en: Miércoles 15 de Diciembre de 2010, 19:35 »
Es normal que se te dupliquen los datos con esa estructura. Te pasará siempre que un alumno tenga mas de un registro en "tabla_notas_alumnos".
La consulta sería tal que así:
select a.rut_alumno, a.nom_alumno, asig.nom_asignatura, na.nota, na.porcentaje, anot.anotacion from alumnos a left join asignatura asig on asig.rut.alumno = a.rut_alumno left join notas_alumno na on na.rut_alumno=a.rut_alumno and na.cod_asignatura=asig.cod_asignatura left join anotaciones anot on anot.rut_alumno=a.rut_alumno
No lo he probado, pero creo que sería así.
29
« en: Viernes 10 de Diciembre de 2010, 19:00 »
Usa TADOConnection.
Te descargas el ODBC de MySQL de la propia pagina de MySQL.
Usa como cadena lo siguiente:
"Provider=MSDASQL.1;Password=TuContraseña;Extended Properties=DRIVER={MySQL ODBC 5.1 Driver};PWD=TuContraseña;SERVER=ElServidor;DATABASE=LaBasededatos;USER=TuUsuario;OPTION=3;"
30
« en: Jueves 25 de Noviembre de 2010, 10:23 »
MIra bien lo que estás haciendo en esta linea: Edit3->Caption = sumar(dato1, dato2);
Y preguntate por que en esta otra no tienes problemas: dato1 = Edit1->Text.ToInt();
Para los controles TEdit, la propiedad de lectura y escritura de valores es Text, NO Caption. Prueba de esta otra manera: Edit3->Text = sumar(dato1, dato2);
31
« en: Miércoles 24 de Noviembre de 2010, 20:12 »
Al responderte no me di cuenta de que te sobraba un paréntesis de cierre:
PlaySound( (ExtractFilePath(Application->ExeName)+"\Sound\tap.mp3").c_str() ),NULL,SND_RESOURCE || SND_ASYNC)
Sería así:
PlaySound( (ExtractFilePath(Application->ExeName)+"\Sound\tap.mp3").c_str(), NULL, SND_RESOURCE || SND_ASYNC)
32
« en: Miércoles 24 de Noviembre de 2010, 16:41 »
Usa la función Send para enviar un mensaje con la pulsación de la tecla Enter
Send ( handle de la ventana o componente, WM_CHAR, 13, 0 )
Creo que es así. De todas formas busca información sobre SendMessage y WM_CHAR
33
« en: Miércoles 24 de Noviembre de 2010, 16:31 »
PlaySound( (ExtractFilePath(Application->ExeName)+"\Sound\tap.mp3").c_str() ),NULL,SND_RESOURCE || SND_ASYNC)
34
« en: Martes 23 de Noviembre de 2010, 13:47 »
¿En que base de datos quieres guardarlo?
¿Es imprescindible guardar la imagen en base de datos?, ¿no puedes guardar la imagen en una carpeta dada con CopyFile y luego guardar en base de datos la ruta de la imagen?, eso libera carga a la base de datos.
35
« en: Miércoles 10 de Noviembre de 2010, 19:09 »
Tienes un componente llamado TFileListBox. Hechale un vistazo a ve si te sirve.
Ahí tienes todos los ficheros de una ubicación concreta.
36
« en: Martes 9 de Noviembre de 2010, 08:54 »
Mejor solución aún.
Yo no la tengo en c++ Builder o no la conozco.
saludos
37
« en: Lunes 8 de Noviembre de 2010, 16:45 »
Tendras que hacerlo uno por uno, pero....
opcion 1 - Si los creas mediante un array, podrás hacerlo con un blucle
opcion 2 - Si los pones en un Panel y habilitas o deshabilitas el panel, lo haces todo a la vez
Prueba con la opción 2, ya que la 1 es un poco compleja.
suerte
38
« en: Lunes 8 de Noviembre de 2010, 16:42 »
Usa la propiedad Parent del nodo seleccionado para recorrerlo en orden ascendente buscando sus padres.
39
« en: Lunes 8 de Noviembre de 2010, 16:39 »
Me parece que el problema no debe venir del FoxPro, ya que los triggers los dispara el propio motor de base de datos en el momento del alter, insert o delete de los registros.
Intenta hacer un seguimiento de si se lanzan o no los triggers y si por alguna razon se produce alguna excepcion.
40
« en: Lunes 8 de Noviembre de 2010, 16:35 »
Creo que no vas a poder saberlo excepto interpretanto lo que te devuelve.
Recuerda que un lector de barras lo único que hace es interpretar el codigo y convertirlo en carácteres ASCII.
41
« en: Lunes 8 de Noviembre de 2010, 16:31 »
Sería interesante conocer el mensaje de error para poder ayudarte
42
« en: Lunes 8 de Noviembre de 2010, 16:18 »
Aqui tienes una solucion alternativa de 5 minutos.
1) Cargas en un combobox los campos de la tabla mediante la propiedad GetFieldNames del tipo TDataSet.
2) La información de la tabla la muestras en un TDBGRid
3) En un TEdit, a medida que escribes, en el evento OnKeyUp o OnKeyDown, escribes el codigo correspondiente e Locate() de TDataSet para que vaya buscando el registro que coincida con lo que el usuario escribe en el TEdit. Eso hará búsquedas parciales.
No es exactamente lo que necesitas, pero si te da una pista de por donde ir.
43
« en: Lunes 8 de Noviembre de 2010, 16:07 »
Esto no da ningun error:
OleVariant WordFile = "nombre del fichero que vas a modificar.doc";
Una pregunta... ¿quieres modificar un word ya creado?, ¿y no te sirve este ejemplo?, ¿que quieres hacer entonces?
Este ejemplo te permite modificar una plantilla de word.
Intenta ser un poco más específica de lo que necesitas hacer en word para ver si podemos ayudarte
44
« en: Viernes 5 de Noviembre de 2010, 18:27 »
Para exportar a word, usa dos componentes TWordApplication y TWordDocument OleVariant WordVisible = True; OleVariant NewDoc = False; OleVariant SoloLectura = False; OleVariant WordFile = <nombre del fichero que vas a modificar.doc>; OleVariant ItemIndex = 1; //creo los componentes TWordDocument *WordDocument = new TWordDocument(this); TWordApplication *WordApplication = new TWordApplication(this); WordApplication->Connect(); WordApplication->Documents->Add(WordFile, NewDoc, EmptyParam, EmptyParam); WordDocument->ConnectTo(WordApplication->Documents->Item(ItemIndex)); //creo el codigo de mi marcador y lo asigno //recuerda que en documento de word que vayas a usar, estos marcadores sirven para sustituirlos por el texto que indiques int mimarcador; mimarcador = 1; WordDocument->Bookmarks->Item(OleVariant(mimarcador))->Select(); WordApplication->Selection->set_Text(WideString("texto que quiero poner").c_bstr()); //cierro la conexion con el documento WordApplication->Disconnect();
Ya se que no es mucho, pero puedes empezar por aquí. Yo lo estoy usando en una aplicación y me funciona muy bien, pero claro, un poco mas extenso y para mi caso particular. Espero que te sirva para ir empezando
45
« en: Viernes 5 de Noviembre de 2010, 18:13 »
Yo uso MUCHO MUCHO MUCHO MySQL con c++ Builder y nunca he tenido ese tipo de problemas.
Uso ADO para la mipulación con la base de datos. Te recomiendo descargues el último ODBC de MySQL, que es la versión 5.1.7 que soluciona algunos bugs.
Si tienes dudas sobre como usarlo, comentalo por aquí.
46
« en: Viernes 5 de Noviembre de 2010, 18:08 »
Hazlo directamente desde el Query.
Si en la consulta tienes dos campos subtotal y descuento, añade otro con la diferencia de ambos, algo así como:
select campo1, campo2, campo3, subtotal, descuento, (subtotal - descuento) total from mitabla
Así no tendrás problema al añadir esa columna en el DBGrid
47
« en: Sábado 30 de Octubre de 2010, 19:31 »
stLinkCriteria = "[IdCliente]=[IdCliente]" And "[comptador]= Forms![clientes1]![subpedidos]![comptador]" ' aqui me sale el error
¿Creo que estas asignando un valor BOOLEANO a una cadena de texto?
stLinkCriteria es de tipo String, pero lo que hay a la derecha del = es una condición lógica, ¿No?, pones "texto" AND "texto".
un saludo
48
« en: Sábado 30 de Octubre de 2010, 19:25 »
Y concretamente .... ¿cual es tu duda?. Para que podamos orientarte un poco.
49
« en: Jueves 28 de Octubre de 2010, 21:01 »
Para comprobar si la balanza te envia los datos, puedes probar con el HiperTerminal y leer. Yo lo usé para ver si una centralita siemens h150e enviaba o no por el com1. Una vez comprobado que con el HiperTerminal recibia datos, implementé mi aplicación. Yo trabajo con c++ builder, pero la comprobacion inicial es independiente.
50
« en: Lunes 25 de Octubre de 2010, 19:54 »
Usa la ultima version del ODBC para MySQL y los componentes ADO del c++ Builder.
Es bastante secilla la conexion si lo haces así, pero ten en cuenta el orden de los parametros en la cadena de conexión.
|
|
|