MenuHelper.dll

Aquí puedes preguntar o compartir tus dudas y conocimientos acerca del programa
Hola, :pc: por ahi lei sobre como hacer reportes sqlite [AlucarWarez], se menciona una DLL en la ayuda
MenuHelper.dll, donde puedo encontrarlo para descargarlo? :SOS:
HIDE: ON
Hidebb Message Hidden Description
Aqui te dejo el enlace para descargar la DLL para realizar reportes con bases de datos en SQLite mediante S
cripting HTML.
HIDE: ON
Hidebb Message Hidden Description



Sqcript Global Fuctions
function RightAlignMenuItem(nNumItems)
	--hacer nNumItems que tiene un valor
	if nNumItems == nil then
	nNumItems = 0;
	end
	
	--hacer nNumItems que es numérico
	nNumItems = String.ToNumber(nNumItems);
	
	--llamar a la DLL
	n = DLL.CallFunction("AutoPlay\\Docs\\MenuHelper.dll", "RightAlign", Application.GetWndHandle()..","..nNumItems, DLL_RETURN_TYPE_LONG, DLL_CALL_STDCALL);
end
function SQLiteToHTML(ParentDB, ParentRS, ChildDB, sFileOut)
	--Poner la mesa formateo editando las variables de los valores por debajo
	local BorderColorSet = "#000000"
	local BorderWidthSet = "1"
	local HeadBgColorSet = "#bcc5d0"
	local HeadFontSet = "Verdana"
	local HeadFontSizeSet = "4"
	local DetailBgColorSet = "#ffffff"
	local DetailFontSet = "Verdana"
	local DetailFontSizeSet = "2"

	--NO EDITAR - Formatos de las variables anteriores como html listo para combinar en el html principal. - NO EDITAR
	local BorderColor = "bordercolor=\""..BorderColorSet.."\""
	local BorderWidth = "border=\""..BorderWidthSet.."\""
	local HeadBgColor = "bgcolor=\""..HeadBgColorSet.."\""
	local HeadFont = "<font face=\""..HeadFontSet.."\" size=\""..HeadFontSizeSet.."\">"
	local DetailBgColor = "bgcolor=\""..DetailBgColorSet.."\""
	local DetailFont = "<font face=\""..DetailFontSet.."\" size=\""..DetailFontSizeSet.."\">"
	--FIN NO EDITAR

	local n;
	local strFile;
	local strHTML;
	
	local tblQ = SQLite.QueryToTable(db, ParentRS);
	
	--el progreso conjunto metros máximo y mostrar el metro
	StatusDlg.SetMeterRange(0, tblQ.Rows);
	StatusDlg.Show(0, false);
	
	if tblQ and tblQ.Rows > 0 then
		strHTML = "<table "..BorderWidth.." width=\"100%\" style=\"border-collapse: collapse\" "..BorderColor.." cellpadding=\"2\">\r\n";
		
		--Encabezados de la columna
		strHTML = strHTML .. "<tr>\r\n";
		for m=1, tblQ.Columns do
			strHTML = strHTML .. "<td "..HeadBgColor.." nowrap>"..HeadFont .. tblQ.ColumnNames[m] .. "</td>\r\n";
		end
		strHTML = strHTML .. "\r\n</tr>";

		--Llene la tabla
		for n=1, tblQ.Rows do
			strHTML = strHTML .. "<tr>\r\n";
			for m=1, tblQ.Columns do
				strHTML = strHTML .. "<td "..DetailBgColor.." nowrap>"..DetailFont.. tblQ.Data[n][tblQ.ColumnNames[m]] .. "</td>\r\n";
			end
			strHTML = strHTML .. "\r\n</tr>";
			--Añadir celda que abarca todas las columnas para asegurar al niño la tabla registros
			if ChildDB ~= "" then
				--strHTML = strHTML .. "<td width=\"100%\" colspan=\""..tblQ.Columns.."\" bgcolor=\"#F9EFCA\">".."Order Details </td>\r\n";
				--strHTML = strHTML .. "\r\n</tr>";
				--Call the AddChildRec function to load in any child records. 
				ChildHTML = AddChildRecs(ChildDB, "Select OrderID AS [Order ID], ShipName AS [Enviado a Nombre], Freight AS [carga de carga] from Orders where CustomerID = \'"..tblQ.Data[n][tblQ.ColumnNames[1]].."\'");
				if ChildHTML ~= nil then
					strHTML = strHTML .. "<td width=\"100%\" colspan=\""..tblQ.Columns.."\" bgcolor=\"#F9EFCA\">"..ChildHTML;
				end
				
			end
			
			--Actualización de metro de estado
			StatusDlg.SetTitle("Generando Reporte . . .");
			StatusDlg.SetMessage("Generando Reporte . . . Por Favor Espere . . .");
			StatusDlg.SetMeterPos(n);
			
		end
		strHTML = strHTML .. "</table>";

	end
	
	--leer en el archivo de plantilla
	strFile = TextFile.ReadToString("AutoPlay\\Docs\\Template.htm");
	
	--Buscar posición de la tabla, y se sustituye espacio reservado con tabla generada
	strFile = String.Replace(strFile, "<!--~TABLE~-->", strHTML, false);
	
	--escribir en el fichero
	TextFile.WriteFromString(sFileOut, strFile, false);
	
	--Ocultar el contador Satus
	StatusDlg.Hide();
end

function AddChildRecs(db, RS)
	--Poner la mesa formateo editando las variables de los valores por debajo
	local BorderColorSet = "#000000";
	local BorderWidthSet = "0";
	local HeadBgColorSet = "#bcc5d0";
	local HeadFontSet = "Verdana";
	local HeadFontSizeSet = "1";
	local DetailBgColorAlt1Set = "#ffffff"; --Para la fila alternativo sombreado
	local DetailBgColorAlt2Set = "#ffffff"; --Para la fila alternativo sombreado
	local DetailFontSet = "Verdana";
	local DetailFontSizeSet = "1";

	--NO EDITAR - Formatos de las variables anteriores como html listo para combinar en el html principal. - NO EDITAR
	local BorderColor = "bordercolor=\""..BorderColorSet.."\"";
	local BorderWidth = "border=\""..BorderWidthSet.."\"";
	local HeadBgColor = "bgcolor=\""..HeadBgColorSet.."\"";
	local HeadFont = "<font face=\""..HeadFontSet.."\" size=\""..HeadFontSizeSet.."\">";
	local DetailBgColorAlt1 = "bgcolor=\""..DetailBgColorAlt1Set.."\"";
	local DetailBgColorAlt2 = "bgcolor=\""..DetailBgColorAlt2Set.."\"";
	local DetailFont = "<font face=\""..DetailFontSet.."\" size=\""..DetailFontSizeSet.."\">";
	--FIN NO EDITAR

	local n;
	local strHTML;
	local DetailBgColor
	
	local tblQ = SQLite.QueryToTable(db, RS);
	if tblQ and tblQ.Rows > 0 then
		strHTML = "<table "..BorderWidth.." width=\"100%\" style=\"border-collapse: collapse\" "..BorderColor.." cellpadding=\"2\">\r\n";
		
		--Añadir pequeña columna Encabezados
		strHTML = strHTML .. "<tr>\r\n";

		for m=1, tblQ.Columns do
			strHTML = strHTML .. "<td "..HeadBgColor.." nowrap>"..HeadFont ..  tblQ.ColumnNames[m] .. "</td>\r\n";
		end
		strHTML = strHTML .. "\r\n</tr>";

		--Llene la tabla secundaria
		for n=1, tblQ.Rows do
			strHTML = strHTML .. "<tr>\r\n";
			
			--Aplicar alternativa fila sombreado
			OddEvenRow = Math.Mod(n, 2)
			if OddEvenRow == 0 then
				DetailBgColor = DetailBgColorAlt1
			else
				DetailBgColor = DetailBgColorAlt2
			end
			
			for m=1, tblQ.Columns do
				
				strHTML= strHTML .. "<td "..DetailBgColor.." nowrap>"..DetailFont.. tblQ.Data[n][tblQ.ColumnNames[m]] .. "</td>\r\n";

			end
			strHTML = strHTML .. "\r\n</tr>";
		end
		strHTML = strHTML .. "</table>";
	end

--Devuelve el HTML para generar la función de los padres
return strHTML
end
Script On Show de tu Formulario adaptandolo a tu(s) tablas.
Web.LoadURL("Web1", "AutoPlay\\Docs\\plantilla.htm");
ParentQuery = "SELECT Proveedor, Contacto, Telefono, Fax, Email, Direccion from Proveedores ORDER BY RecordID";


SQLiteToHTML(db, ParentQuery, "", "AutoPlay\\Docs\\plantilla.htm");		

Web.LoadURL("Web1", "AutoPlay\\Docs\\plantilla.htm");
Bueno esta es la manera de usarla tu puedes adaptar tu script a tus necesidades y conveniencia espero te sea de ayuda esta dll y script.
Interesante
Gracias, agotaras123 :ohyeah: claro que me sirve lo necesitaba de urgencias y por supuesto que esto es interesante, voy a ponerme a ensayar... :pc:,

Ahora si no es mucha molestia, queria saber como hacer relaciones en sqlite, al igual que en acces, pero por supuesto en ams, me he documentado bastante, he leido foros, pero aun no consigo hacer eso :SOS: , [Soy novato], pero en realidad quiero hacerlo.. me refiero exactamente a tener varias tablas, y a consultar informacion de varias de ellas, tal vez con un ejemplo seria suficiente.. por eso necesitaba el menuhelper.dll, teniendo ya las relaciones, de esta manera podria hacer los reportes... :pc:
Yo seguiré trabajando en eso....
.... "Con un buen ejemplo seria suficiente :friends: , "
j2a2foros escribió:
Imagen

compañero si puedes ahórrate los gif en el foro! ;)
En las consultas SQL que hagas en tu script debes de crear index para poder hacer tus realciones ejemplo de ello.

SQL CREATE INDEX Syntax

Crea un índice en una tabla. Los valores duplicados están permitidos:

CREATE INDEX index_Nombre
ON Nombre_Tabla (Nombre_Columna)


Esto es si quieres indexar pero las relaciones debes de hacerlas de igual manera

para que sea un poco mas funcional usas esto mejor:


SQL UNION Syntax

SELECT Nombre_Columna(s) FROM Nombre_Tabla1
UNION
SELECT Nombre_Columna(s) FROM Nombre_Tabla2


El operador UNION sólo selecciona valores distintos por defecto, Para permitir que los valores duplicados, usa UNION ALL.

Bueno espero ayas comprendido un poco lo que te explique.
O.K lo de los GIF, ceone y nuevamente gracias Agotaras123 (sin el gif), aprecio mucho el que compartas tus conocimientos :yes:
"El conocimiento es libre"
de nada estamos para ayudar en lo que podamos.
Como siempre Agotaras eres un maestro....

thnaksss

thanks

Interesante

gracias :yes:

thanks
Thank You
Gracias ...
manda pra mim
Gracias :friends:
tnks my friend