Página 1 de 1

Problema con StringFormat y GUICtrlCreateEdit

Publicado: 25 Nov 2010, 05:39
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

Re: Problema con StringFormat y GUICtrlCreateEdit

Publicado: 25 Nov 2010, 16:44
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

Re: Problema con StringFormat y GUICtrlCreateEdit

Publicado: 25 Nov 2010, 21:45
por avechuche
Gracias :) ya lo hice pero con GUICtrlCreateListViewItem quedo mas lindo :)