|
Página 7 de 8
|
Autor |
Mensaje |
jsbsan
Analista Programador
Registrado: Septiembre 2009
Mensajes: 4175
Edad: 51 Ubicación: dos hermanas, sevilla
|
Re: Proyecto Fin De Grado
rescobar:
Citar: . Cual es el mejor para usar,
Gran pregunta... yo siempre he usado gb.qt4, porque me ha ido mejor en las distros que he usado (linux mint y minino PicarOS).
Todo depende de la distribución y que tenga esta (gnome, kde, etc) y que use (qt4,qt5,gtk).
Lo suyo, para tu proyecto, es que recomiendes una distribución, versión, y entorno de escritorio (gnome, kde, etc..) de uso para tu aplicación, y que te centres y asegures que en esa todo va bien. (menus, iconos, etc).
Nota:
Con las nuevas versiones de las distribuciones, se van actualizando las librerias, y a lo mejor, donde antes te iba bien la qt4, ahora tienes que cambiar al componente qt5 (y de camino tener que revisar por ejemplo , los formularios, para ajustar controles e iconos para que queden bien.) Esto es asi: Siempre en movimiento, siempre actualizando...
|
#61 Miercoles, 01 Noviembre 2017, 13:55 |
|
|
rescobar
Usuario
Registrado: Junio 2017
Mensajes: 42
Edad: 50 Ubicación: Espejo ,Cordoba
|
Re: Proyecto Fin De Grado
Buenas.
Tengo un formulario donde tengo todas las facturas realizadas, elijo uno y muestro un segundo formulario para poder editar dicha factura.
Mi problema es como actualizo automáticamente en el primer formulario los datos modificados en el segundo formulario.
Estoy probando con el _gotfocus() en el primer formulario, pero no ocurre nada cuando cierro el segundo formulario y el primero coge el foco.
Saludos.
|
#62 Domingo, 05 Noviembre 2017, 18:50 |
|
|
jsbsan
Analista Programador
Registrado: Septiembre 2009
Mensajes: 4175
Edad: 51 Ubicación: dos hermanas, sevilla
|
Re: Proyecto Fin De Grado
rescobar:
Citar: Mi problema es como actualizo automáticamente en el primer formulario los datos modificados en el segundo formulario.
Hay varias maneras:
Desde el 2º formulario, cuando cambias y guardas los datos, haz una llamada a una función o subrutina del 1º formulario, que actualice los datos que este mostrando. La subrutina o funcion del 1º formulario debe de ser Publica para poder acceder a ella.
Otra forma de hacerlo: cuando haces la llamada al 2º formulario lo hagas como .ShowModal , asi cuando cierras ese 2º formulario, el controlo l recuperas donde a continuacion de la llamada que hiciste al 2º formularioe, y alli le dices que actualice los datos mostrados.
'en el formulario principal
Public Sub Editando()
...
FormularioEditor.showmodal() 'hasta que no se cierra el formulario, en formulario principal esta inactivo
ActualizarDatos 'funcion que actualiza los datos mostrados
...
end
|
#63 Domingo, 05 Noviembre 2017, 21:11 |
|
|
rescobar
Usuario
Registrado: Junio 2017
Mensajes: 42
Edad: 50 Ubicación: Espejo ,Cordoba
|
Re: Proyecto Fin De Grado
Buenas.
Gracias Jsbsan, he usado la segunda y va bien.
Estoy con la generación de facturas y estoy utilizando el método de generar el html y después convertirlo en pdf.
Hasta ahí todo bien, el problema me viene cuando intento abrirlo después.
Procedimiento para la generacion de la factura.
Public Sub Generar_Factura_Albaran(NumeroFactura As String)
Dim Tipo As String
Dim cadena As String
Tipo = Mid(NumeroFactura, 1, 1)
cadena = "<html>"
cadena &= " <body>"
cadena &= "<div>Factura Numero<h1>: " & NumeroFactura & " </h1></div> "
cadena &= "</body></html>"
File.Save(FMain.CarpetaCarnea & "/informe.html", cadena)
Exec ["wkhtmltopdf", FMain.CarpetaCarnea & "/informe.html", FMain.CarpetaCarnea & "/informe.pdf "] Wait
Exec ["evince", FMain.CarpetaCarnea & "/informe.pdf"]
End
El problema es que al abrir evince me dice que no encuentra el fichero, he probado desde consola con :
Y me dice lo mismo, también lo he probado en una maquina virtual con Mint.
Mas concretamente al haberlo creado con wkhtmltopdf, si abro otro fichero pdf si lo abre.
¿Alguien ha tenido el mismo problema?
Solucionado el problema no se que ha pasado, pero me ha empezado a funcionar.
Saludos.
última edición por rescobar el Lunes, 06 Noviembre 2017, 12:50; editado 2 veces
|
#64 Lunes, 06 Noviembre 2017, 10:50 |
|
|
jsbsan
Analista Programador
Registrado: Septiembre 2009
Mensajes: 4175
Edad: 51 Ubicación: dos hermanas, sevilla
|
Re: Proyecto Fin De Grado
rescobar:
Citar: no se que ha pasado...
Puede ser la ruta donde guardas el pdf creado. Te cuento:
A mi me ha pasado a veces, que usaba directorios distintos para leer/guardar datos, y si no especificaba comillas al empezar y terminar el nombre, las rutas con nombres con espacio, me daban problemas.
Por ejemplo:
Usa:
Exec ["evince", "\"" & FMain.CarpetaCarnea & "/informe.pdf" & "\""]
En vez de usar
Exec ["evince", FMain.CarpetaCarnea & "/informe.pdf"]
El problema que algunas veces no da problemas y otras (cuando usas directorios con espacios en el nombre), si los da. Si usa comillas , delante y detras del nombre del fichero, ya no te dará problemas. O por lo menos asi lo solucioné yo.
Saludos.
Julio
|
#65 Lunes, 06 Noviembre 2017, 18:19 |
|
|
tincho
Analista Programador
Registrado: Noviembre 2014
Mensajes: 2565
Edad: 48 Ubicación:
|
Re: Proyecto Fin De Grado
Se puede usar tambien comillas simples para los directorios en comandos shell, la ventaja es que no hat que escaparlas. (\")
Saludos.
|
#66 Miercoles, 08 Noviembre 2017, 21:19 |
|
|
rescobar
Usuario
Registrado: Junio 2017
Mensajes: 42
Edad: 50 Ubicación: Espejo ,Cordoba
|
Re: Proyecto Fin De Grado
Buenas.
Tengo un problema al recorrer un Result me da el siguiente error:
Me hace solo una Iteracion y tengo dos iteraciones.
Es un procedimiento para crear asientos de las facturas y pasarlas a Contaplus.
Os pongo el codigo completo de la procedimiento:
Public Sub BtnIniciar_Click()
Dim xDiario As File
Dim XSubCta As File
Dim RutaPasoContabilidad As String
Dim Facturas_NoContabilizadas As Result
Dim Asiento As Float
' Lineas para montar los asientos
Dim Aux_Linea_Subcuenta As String
Dim Linea_Subcuenta As String
Dim Linea_Cliente As String
Dim Linea_Venta As String
Dim Linea_Iva As String
Dim Linea_Recargo As String
Dim Linea_Cobro As String
Dim Sql As String
' Datos para pasar a contabilidad
Dim Cliente_Codigo As String
Dim Cliente_Recargo As String
Dim Cliente_Subcuenta As String
' Datos Facturas
Dim Factura_Numero As String
Dim Factura_Fecha As String
Dim Factura_Base As String
Dim Factura_Iva As String
Dim Factura_Recargo As String
Dim Factura_ImporteIva As String
Dim Factura_ImporteRecargo As String
Dim Factura_Total As String
Aux_Linea_Subcuenta = "\";;;;;;;;;;;;;;;;"
Asiento = 1.0
If DirPasoContabilidad.value = "" Then
Balloon.Error("Debe elegir directorio con permisos para poder realizar el paso a contabilidad.", DirPasoContabilidad)
Else
RutaPasoContabilidad = DirPasoContabilidad.Value
If Exist(RutaPasoContabilidad & "/xDiario.txt") Or Exist(RutaPasoContabilidad & "/xSubcta.txt") Then
Kill RutaPasoContabilidad & "/xSubcta.txt"
Kill RutaPasoContabilidad & "/xDiario.txt"
xDiario = Open RutaPasoContabilidad & "/xDiario.txt" For Write Append
xSubCta = Open RutaPasoContabilidad & "/xSubcta.txt" For Write Append
Else
xDiario = Open RutaPasoContabilidad & "/xDiario.txt" For Write Append
xSubCta = Open RutaPasoContabilidad & "/xSubcta.txt" For Write Append
Endif
FMain.Conexion_Base_Datos.Close
FMain.Conexion_Base_Datos.Open
sql = "select numerofactura,fecha,base,iva,recargo,importeiva,importerecargo,total,cliente from facturas where contabilizada='N' order by 1"
Facturas_NoContabilizadas = FMain.Conexion_Base_Datos.Exec(Sql)
Facturas_NoContabilizadas.MoveFirst
While Facturas_NoContabilizadas.Available
Cliente_Codigo = Facturas_NoContabilizadas["cliente"]
Factura_Numero = Facturas_NoContabilizadas["numerofactura"]
Factura_Fecha = Facturas_NoContabilizadas["fecha"]
Factura_Base = Facturas_NoContabilizadas["base"]
Factura_Iva = Facturas_NoContabilizadas["iva"]
Factura_Recargo = Facturas_NoContabilizadas["recargo"]
Factura_ImporteIva = Facturas_NoContabilizadas["importeiva"]
Factura_ImporteRecargo = Facturas_NoContabilizadas["importerecargo"]
Factura_Total = Facturas_NoContabilizadas["total"]
Cliente_Recargo = Utilidades.Obtener_Campo_Tabla("select recargo from clientes where codigocliente='" & Cliente_Codigo & "'", "recargo")
Cliente_Subcuenta = Utilidades.Obtener_Campo_Tabla("select subcuentaiva from clientes where codigocliente='" & Cliente_Codigo & "'", "subcuentaiva")
Linea_Cliente = CStr(Asiento) & ";" & Factura_Fecha & ";\"" & Cliente_Subcuenta & "\";;;\"Fra-" & Factura_Numero & "\";;0.00;;0.00;0.00;;;;;;;;;;;;;;;;;" &
Factura_Total & ";0.00;0.00;;;;;;;;;;;;;;;;;"
Linea_Subcuenta = "\"" & Cliente_Subcuenta & Aux_Linea_Subcuenta
Print #xDiario, Linea_Cliente
Print #xSubCta, Linea_Subcuenta
Linea_Venta = CStr(Asiento) & ";" & Factura_Fecha & ";\"" & TxtVenta.Text & "\";;;\"Fra-" & Factura_Numero & "\";;0.00;;0.00;0.00;;;;;;;;;;;;;;;;;0.00;" &
Factura_Base & ";0.00;;;;;;;;;;;;;;;;;"
Linea_Subcuenta = "\"" & TxtVenta.Text & Aux_Linea_Subcuenta
Print #xDiario, Linea_Venta
Print #xSubCta, Linea_Subcuenta
Linea_Iva = CStr(Asiento) & ";" & Factura_Fecha & ";\"" & TxtIva.Text & "\";\"" & Cliente_Subcuenta & "\";;\"Fra-" & Factura_Numero & "\";;" &
Factura_Numero & ";;" & Factura_Iva & ";" & CStr(CFloat(Factura_Recargo)) & ";;;;;;;;;;;;;;;;;0.00;" & Factura_ImporteIva & ";" & Factura_Base & ";;;;;;;;;;;;;;;;" & Factura_Fecha & ";"
Print #xDiario, Linea_Iva
If Cliente_Recargo = "S" Then
Linea_Subcuenta = "\"" & TxtIvaRe.Text & Aux_Linea_Subcuenta
Print #xSubCta, Linea_Subcuenta
Linea_Recargo = CStr(Asiento) & ";" & Factura_Fecha & ";\"" & TxtRecargoE.Text & "\";\"" & Cliente_Subcuenta & "\";;\"Fra-" & Factura_Numero & "\";;" &
"0.00;;0.00;0.00;;;;;;;;;;;;;;;;;0.00;" & Factura_ImporteRecargo & ";0.00;;;;;;;;;;;;;;;;;"
Print #xDiario, Linea_Recargo
Linea_Subcuenta = "\"" & TxtRecargoE.Text & Aux_Linea_Subcuenta
Print #xSubCta, Linea_Subcuenta
Else
Linea_Subcuenta = "\"" & TxtIva.Text & Aux_Linea_Subcuenta
Print #xSubCta, Linea_Subcuenta
Endif
Asiento = Asiento + 1
Linea_Cobro = CStr(Asiento) & ";" & Factura_Fecha & ";\"" & TxtCobro.Text & "\";;;\"Fra-Cobro-" & Factura_Numero & "\";;0.00;;0.00;0.00;;;;;;;;;;;;;;;;;" &
Factura_Total & ";0.00;0.00;;;;;;;;;;;;;;;;;"
Linea_Subcuenta = "\"" & TxtCobro.Text & Aux_Linea_Subcuenta
Print #xDiario, Linea_Cobro
Print #xSubCta, Linea_Subcuenta
Linea_Cliente = CStr(Asiento) & ";" & Factura_Fecha & ";\"" & Cliente_Subcuenta & "\";;;\"Fra-Cobro-" & Factura_Numero & "\";;0.00;;0.00;0.00;;;;;;;;;;;;;;;;;0.00;" &
Factura_Total & ";0.00;;;;;;;;;;;;;;;;;"
Linea_Subcuenta = "\"" & TxtVenta.Text & Aux_Linea_Subcuenta
Print #xDiario, Linea_Cliente
Print #xSubCta, Linea_Subcuenta
Facturas_NoContabilizadas.MoveNext
'sql = "update facturas set contabilizada='S' where numerofactura='" & Factura_Numero & "'"
'Utilidades.In_Act_Bor(sql)
Wend
xSubCta.Close
xDiario.Close
Endif
End
Me hace la primera la iteracion pero al pasar al siguiente registro del Result me da "objeto no valido" y antes de entrar en el bucle hago un .count y me muestra dos registros, apareciendo el error al pasar al segundo registro.
Muestro solo el codigo del result.
Dim Facturas_NoContabilizadas As Result
Facturas_NoContabilizadas = FMain.Conexion_Base_Datos.Exec(Sql)
Facturas_NoContabilizadas.MoveFirst
While Facturas_NoContabilizadas.Available
'' REALIZO LAS OPERACIONES
Facturas_NoContabilizadas.MoveNext
Wend
Si no probare con otro bucle o de otra forma. Siempre lo he usado asi y nunca he tenido este problema.
Saludos.
|
#67 Sabado, 25 Noviembre 2017, 20:15 |
|
|
shordi
Analista Programador
Registrado: Septiembre 2009
Mensajes: 4982
Edad: 64 Ubicación: Albacete
|
Re: Proyecto Fin De Grado
El problema no es el bucle, es que te aborta en la primera iteración o que la consulta sólo devuelve una fila. No es posible decir dónde sin el proyecto y la base de datos.
=================== No podemos regresar
|
#68 Sabado, 25 Noviembre 2017, 21:04 |
|
|
rescobar
Usuario
Registrado: Junio 2017
Mensajes: 42
Edad: 50 Ubicación: Espejo ,Cordoba
|
Re: Proyecto Fin De Grado
Buenas.
He probado lo siguiente y me va bien iré metiendo linea a linea a ver donde me falla:
FMain.Conexion_Base_Datos.Open
sql = "select numerofactura,fecha,base,iva,recargo,importeiva,importerecargo,total,cliente from facturas where contabilizada='N' order by 1"
Facturas_NoContabilizadas = FMain.Conexion_Base_Datos.Exec(Sql)
Facturas_NoContabilizadas.MoveFirst
While Facturas_NoContabilizadas.Available
Cliente_Codigo = Facturas_NoContabilizadas["cliente"]
Factura_Numero = Facturas_NoContabilizadas["numerofactura"]
Factura_Fecha = Facturas_NoContabilizadas["fecha"]
Factura_Base = Facturas_NoContabilizadas["base"]
Factura_Iva = Facturas_NoContabilizadas["iva"]
Factura_Recargo = Facturas_NoContabilizadas["recargo"]
Factura_ImporteIva = Facturas_NoContabilizadas["importeiva"]
Factura_ImporteRecargo = Facturas_NoContabilizadas["importerecargo"]
Factura_Total = Facturas_NoContabilizadas["total"]
Facturas_NoContabilizadas.MoveNext
Message.Info(Cliente_Codigo)
Wend
Message.Info("terminado")
Meto una linea antes de Facturas_NoContabilizadas.MoveNext y error, lo pongo:
FMain.Conexion_Base_Datos.Open
sql = "select numerofactura,fecha,base,iva,recargo,importeiva,importerecargo,total,cliente from facturas where contabilizada='N' order by 1"
Facturas_NoContabilizadas = FMain.Conexion_Base_Datos.Exec(Sql)
Facturas_NoContabilizadas.MoveFirst
While Facturas_NoContabilizadas.Available
Cliente_Codigo = Facturas_NoContabilizadas["cliente"]
Factura_Numero = Facturas_NoContabilizadas["numerofactura"]
Factura_Fecha = Facturas_NoContabilizadas["fecha"]
Factura_Base = Facturas_NoContabilizadas["base"]
Factura_Iva = Facturas_NoContabilizadas["iva"]
Factura_Recargo = Facturas_NoContabilizadas["recargo"]
Factura_ImporteIva = Facturas_NoContabilizadas["importeiva"]
Factura_ImporteRecargo = Facturas_NoContabilizadas["importerecargo"]
Factura_Total = Facturas_NoContabilizadas["total"]
Cliente_Recargo = Utilidades.Obtener_Campo_Tabla("select recargo from clientes where codigocliente='" & Cliente_Codigo & "'", "recargo")
Facturas_NoContabilizadas.MoveNext
Message.Info(Cliente_Codigo)
Wend
Message.Info("terminado")
No veo que puede producir el error, lo único que hace la nueva linea es meter en una variable el contenido de un campo de la base de datos.
Cliente_Recargo = Utilidades.Obtener_Campo_Tabla("select recargo from clientes where codigocliente='" & Cliente_Codigo & "'", "recargo")
Si no encuentro el error probare con un datagrid oculto, para almacenar la información y después recorrerlo.
Saludos.
última edición por rescobar el Sabado, 25 Noviembre 2017, 22:04; editado 2 veces
|
#69 Sabado, 25 Noviembre 2017, 21:20 |
|
|
shordi
Analista Programador
Registrado: Septiembre 2009
Mensajes: 4982
Edad: 64 Ubicación: Albacete
|
Re: Proyecto Fin De Grado
Buenas.
He probado lo siguiente y me va bien iré metiendo linea a linea a ver donde me falla:
FMain.Conexion_Base_Datos.Open
sql = "select numerofactura,fecha,base,iva,recargo,importeiva,importerecargo,total,cliente from facturas where contabilizada='N' order by 1"
Facturas_NoContabilizadas = FMain.Conexion_Base_Datos.Exec(Sql)
Facturas_NoContabilizadas.MoveFirst
While Facturas_NoContabilizadas.Available
Cliente_Codigo = Facturas_NoContabilizadas["cliente"]
Factura_Numero = Facturas_NoContabilizadas["numerofactura"]
Factura_Fecha = Facturas_NoContabilizadas["fecha"]
Factura_Base = Facturas_NoContabilizadas["base"]
Factura_Iva = Facturas_NoContabilizadas["iva"]
Factura_Recargo = Facturas_NoContabilizadas["recargo"]
Factura_ImporteIva = Facturas_NoContabilizadas["importeiva"]
Factura_ImporteRecargo = Facturas_NoContabilizadas["importerecargo"]
Factura_Total = Facturas_NoContabilizadas["total"]
Facturas_NoContabilizadas.MoveNext
Message.Info(Cliente_Codigo)
Wend
Message.Info("terminado")
Meto una linea antes de Facturas_NoContabilizadas.MoveNext y error, lo pongo:
FMain.Conexion_Base_Datos.Open
sql = "select numerofactura,fecha,base,iva,recargo,importeiva,importerecargo,total,cliente from facturas where contabilizada='N' order by 1"
Facturas_NoContabilizadas = FMain.Conexion_Base_Datos.Exec(Sql)
Facturas_NoContabilizadas.MoveFirst
While Facturas_NoContabilizadas.Available
Cliente_Codigo = Facturas_NoContabilizadas["cliente"]
Factura_Numero = Facturas_NoContabilizadas["numerofactura"]
Factura_Fecha = Facturas_NoContabilizadas["fecha"]
Factura_Base = Facturas_NoContabilizadas["base"]
Factura_Iva = Facturas_NoContabilizadas["iva"]
Factura_Recargo = Facturas_NoContabilizadas["recargo"]
Factura_ImporteIva = Facturas_NoContabilizadas["importeiva"]
Factura_ImporteRecargo = Facturas_NoContabilizadas["importerecargo"]
Factura_Total = Facturas_NoContabilizadas["total"]
Cliente_Recargo = Utilidades.Obtener_Campo_Tabla("select recargo from clientes where codigocliente='" & Cliente_Codigo & "'", "recargo")
Facturas_NoContabilizadas.MoveNext
Message.Info(Cliente_Codigo)
Wend
Message.Info("terminado")
No veo que puede producir el error, lo único que hace la nueva linea es meter en una variable el contenido de un campo de la base de datos.
Cliente_Recargo = Utilidades.Obtener_Campo_Tabla("select recargo from clientes where codigocliente='" & Cliente_Codigo & "'", "recargo")
Si no encuentro el error probare con un datagrid oculto, para almacenar la información y después recorrerlo.
Saludos.
Habría que ver el código de la función obtener_campo_tabla. Si el error no está ahí entonces codigocliente es numérico en la base de datos.
=================== No podemos regresar
última edición por shordi el Domingo, 26 Noviembre 2017, 01:31; editado 3 veces
|
#70 Sabado, 25 Noviembre 2017, 23:08 |
|
|
|
Temas parecidos
Temas parecidos
|
Página 7 de 8
|
Usuarios navegando en este tema: 0 registrados, 0 ocultos y 1 invitado Usuarios registrados conectados: Ninguno
|
No puede crear mensajes No puede responder temas No puede editar sus mensajes No puede borrar sus mensajes No puede votar en encuestas No puede adjuntar archivos Puede descargar archivos No puede publicar eventos en el calendario
|
|
|
|
|