Problema con StringFormat y GUICtrlCreateEdit

Pregunta Sin Miedo no te cortes cualquier cosa para empezar - Autoit se comienza facilmente.Para Ordenes o Comandos sueltos. Ver nota como preguntar.
Responder
avechuche
Hacker del Foro
Mensajes: 188
Registrado: 13 Ago 2009, 09:53

Problema con StringFormat y GUICtrlCreateEdit

Mensaje por avechuche »

Resulta que estoy haciendo un sencillo soft para trabajar con bases de datos y venia de maravillas, pero me tope con un problema de formato.
Resulta que si los resultados los escribo con "ConsoleWrite" los escribe perfecto, alineados perfectamente, ahora si lo que quiero es guardarlos en una variable para luego insertarlos en una "GUICtrlCreateEdit", pues bueno, queda horrible. Les dejo el codigo para que vean, fijense como queda

Código: Seleccionar todo

#NoTrayIcon
#RequireAdmin

#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>
#include <EditConstants.au3>
#include <StaticConstants.au3>
#include <SQLite.au3>
#include <SQLite.dll.au3>

Local $hQuery, $aRow, $aNames
Global $sMsg, $sMsg2

_SQLite_Startup()

$Apellido = '"' & InputBox("Ingrese Apellido", "Ingrese Apellido") & '"'
$Nombre = '"' & InputBox("Ingrese Nombre", "Ingrese Nombre") & '"'
$Direccion = '"' & InputBox("Ingrese dirección", "Ingrese dirección") & '"'
$DNI = '"' & InputBox("Ingrese DNI", "Ingrese DNI") & '"'
$Legajo = '"' & InputBox("Ingrese legajo", "Ingrese legajo") & '"'
$Ordenar_Por = "ID" ; Se debe especificar el nombre exacto de una de las columnas de la tabla

If FileExists(@ScriptDir & "\prueba.db") Then
	_SQLite_Open("prueba.db")
Else
	_SQLite_Open("prueba.db")
	_SQLite_Exec(-1, "CREATE TABLE aTest (ID integer primary key, Apellido, Nombre, Dirección, DNI, Legajo);")
EndIf

_SQLite_Exec(-1, "INSERT INTO aTest(Apellido, Nombre, Dirección, DNI, Legajo) VALUES (" & $Apellido & "," & $Nombre & "," & $Direccion & "," & $DNI & "," & $Legajo & ");")
_SQLite_Exec(-1, "DELETE FROM aTest WHERE Apellido = '' And Nombre = '' And Dirección = '' And DNI = '' And Legajo = '';") ; Borrar ciertos datos
_SQLite_Query(-1, "SELECT * FROM aTest;", $hQuery)
_SQLite_FetchNames($hQuery, $aNames)

$sMsg = StringFormat("%-10s  %-15s  %-15s  %-20s %-15s %-15s ", $aNames[0], $aNames[1], $aNames[2], $aNames[3], $aNames[4], $aNames[5]) & @CRLF
ConsoleWrite(StringFormat("%-10s  %-15s  %-15s  %-20s %-15s %-15s ", $aNames[0], $aNames[1], $aNames[2], $aNames[3], $aNames[4], $aNames[5]) & @CRLF)

While _SQLite_FetchData($hQuery, $aRow, False, False) = $SQLITE_OK ; Read Out the next Row
	ConsoleWrite(StringFormat("%-10s  %-15s  %-15s  %-20s %-15s %-15s ", $aRow[0], $aRow[1], $aRow[2], $aRow[3], $aRow[4], $aRow[5]) & @CRLF)
	$sMsg2 = $sMsg2 & StringFormat("%-10s  %-15s  %-15s  %-20s %-15s %-15s ", $aRow[0], $aRow[1], $aRow[2], $aRow[3], $aRow[4], $aRow[5]) & @CRLF
WEnd

_SQLite_Close()
_SQLite_Shutdown()

GUI()

Func GUI()

	$GUI_Principal = GUICreate("Mi GUI con Tab", 640, 480) ; crea una ventana que se muestra centrada

	GUICtrlCreateTab(10, 10, 620, 460)
	GUICtrlCreateTabItem("Crear/Abrir Base de Datos")
	GUICtrlCreateTabItem("Actualizar Base de Datos")

	GUISetState()

	$Edit_Princical = GUICtrlCreateEdit($sMsg, 10, 218, 618, 250, BitOR($ES_WANTRETURN, $WS_VSCROLL, $WS_HSCROLL, $ES_AUTOHSCROLL))
	GUICtrlSetData($Edit_Princical, $sMsg2, 1)

	While 1
		$msg = GUIGetMsg()

		If $msg = $GUI_EVENT_CLOSE Then ExitLoop
	WEnd

	GUIDelete($GUI_Principal)

EndFunc
Avatar de Usuario
Alastor
Aprendiz de Mago
Mensajes: 59
Registrado: 13 Dic 2009, 14:27
Ubicación: Zaragoza, España
Contactar:

Re: Problema con StringFormat y GUICtrlCreateEdit

Mensaje por Alastor »

No veo que quede tan mal, pero ¿que te parecería hacerlo en forma de tabla?

Por ejemplo mira esta que hice para un proyecto parecido:
Imagen

Si te interesa, lo puedes hacer modificando la funcion _ArrayDisplay
Aprendiendo AutoIt y C++
avechuche
Hacker del Foro
Mensajes: 188
Registrado: 13 Ago 2009, 09:53

Re: Problema con StringFormat y GUICtrlCreateEdit

Mensaje por avechuche »

Gracias :) ya lo hice pero con GUICtrlCreateListViewItem quedo mas lindo :)
Responder