Guardar Pdf en BD y Visualizarlo en Objeto Pdf
Publicado: 12 Jul 2015 04:31
Hola Mis Jeropas de AmsSpecialist espero me ayuden en esta duda, ingresar un pdf y visualizarlo, hasta el momento he hecho lo siguiente:
1. Crear la Bd de mi proyecto
2.-Guardar Registros en mi BD
3.-Consultas de Datos de mi BD
Lo que deseo hacer:
1.- Guardar Pdf en mi BD
2.- Que al consultar también se me visualice el Pdf guardado utilizando el Objeto Pdf que trae Ams
Adjunto Imagen

Código de Proyect Actions
Código Boton Guardar
Código Boton Buscar
Código de ListBoxEx(OnSelect)
Espero su ayuda yo también estaré viendo la gran variedad de ejemplos que tienen ustedes en este foro, son muy buenos
1. Crear la Bd de mi proyecto
2.-Guardar Registros en mi BD
3.-Consultas de Datos de mi BD
Lo que deseo hacer:
1.- Guardar Pdf en mi BD
2.- Que al consultar también se me visualice el Pdf guardado utilizando el Objeto Pdf que trae Ams
Adjunto Imagen

Código de Proyect Actions
--Buscar la tabla en el directorio \\AutoPlay\\Docs\\
sDatabaseFile = _SourceFolder .. "\\AutoPlay\\Docs\\LABORALES.db";
--si no existe creara una nueva con los campos que agregamos
---Abra la base de datos, o en abscence, crear una
db = SQLite.Open(sDatabaseFile);
nLastError = Application.GetLastError();
if nLastError ~= SQLite.OK then
Dialog.Message("Error Opening File", SQLite.GetLastErrorString());
end
SQLite.Query(db,"CREATE Table Usuarios(RecordID integer primary key, Usuario text, Contrasena text, TipoCuenta text )");
SQLite.Query(db,"CREATE Table Registro(Usuario text, Fecha text, Hora text )");
SQLite.Query(db,"CREATE Table TECNICO(RecordID integer primary key, DOCUMENTOPDF text, REGISTRO text, EXPEDIENTE text, APELLIDOSNOMBRES text, DNI text, TITULO text, INSTITUCION text, RESIDENCIA text, TELEFONO text, FECHAINSCRIPCION text, ENVIADO text, SELECCION text, OBSERVADO text, NOTAOBSERVACION text, HOJAVIDA text, Img64 text)");
bNewRecord = true
function Escape (sSourceString)
sSourceString = String.Replace(sSourceString, "'", "''", false);
return sSourceString;
end
-- Obtener información de los objetos de entrada y almacenar
-- En las variables de transferir a la base de datos
sDOCUMENTOPDF = Input.GetText("INP_DOCUMENTOPDF");
sREGISTRO = Input.GetText("INP_REGISTRO");
sEXPEDIENTE = Input.GetText("INP_EXPEDIENTE");
sAPELLIDOSNOMBRES = Input.GetText("INP_APELLIDOSNOMBRES");
sDNI = Input.GetText("INP_DNI");
sTITULO = Input.GetText("INP_TITULO");
sINSTITUCION = ComboBox.GetText("CBX_INSTITUCION");
sRESIDENCIA = Input.GetText("INP_RESIDENCIA");
sTELEFONO = Input.GetText("CBX_TELEFONO")
sFECHAINSCRIPCION = Input.GetText("INP_FECHAINSCRIPCION")
sENVIADO = ComboBox.GetText("CBX_ENVIADO");
sSELECCION = ComboBox.GetText("CBX_SELECCION");
sOBSERVADO = ComboBox.GetText("CBX_OBSERVADO");
sNOTAOBSERVACION = Input.GetText("INP_NOTAOBSERVACION");
--SI ESTAMOS CREANDO UN NUEVO REGISTRO, INSERTAR EN LOS PRÓXIMOS DISPONIBLES
--POSICIÓN, DE LO CONTRARIO INSERTAR EN LA POSICIÓN DEL REGISTRO ACTUAL
if bNewRecord then
nSelection = SQLite.QueryToTable(db,"SELECT * FROM TECNICO WHERE REGISTRO='"..sREGISTRO.."'");
if nSelection == nil then -- Si no hay registros con el mismo Nombre y Apellidos inserta los datos
SQLite.Query(db,"insert into TECNICO values(NULL, '"..sDOCUMENTOPDF.."', '"..sREGISTRO.."', '"..sEXPEDIENTE.."', '"..sAPELLIDOSNOMBRES.."', '"..sDNI.."', '"..sTITULO.."', '"..sINSTITUCION.."', '"..sRESIDENCIA.."', '"..sTELEFONO.."', '"..sFECHAINSCRIPCION.."', '"..sENVIADO.."', '"..sSELECCION.."', '"..sOBSERVADO.."', '"..sNOTAOBSERVACION.."')");
if Application.GetLastError() ~= SQLite.OK then
Dialog.Message("Error: " .. nLastError, SQLite.GetLastErrorString());
else
Dialog.TimedMessage("Registro", "Estimado(a) Usuario(a) se Registro la Información del Técnico con Éxito", 3000, MB_ICONEXCLAMATION);
--else
StatusDlg.Hide();
Page.Jump("INGRESO POSTULANTES TECNICOS");
end
else -- Si hay registros con el NOMBRESAPELLIDOS entonces...
nData = nil;
rData = nil;
for nRow = 1, nSelection.Rows do
nData = nSelection.Data[nRow]["REGISTRO"];
if nData == sREGISTRO then
rData = true;
break
end
end
if not rData then
SQLite.Query(db,"insert into TECNICO values(NULL, '"..sDOCUMENTOPDF.."', '"..sREGISTRO.."', '"..sEXPEDIENTE.."', '"..sAPELLIDOSNOMBRES.."', '"..sDNI.."', '"..sTITULO.."', '"..sINSTITUCION.."', '"..sRESIDENCIA.."', '"..sTELEFONO.."', '"..sFECHAINSCRIPCION.."', '"..sENVIADO.."', '"..sSELECCION.."', '"..sOBSERVADO.."', '"..sNOTAOBSERVACION.."')");
if Application.GetLastError() ~= SQLite.OK then
Dialog.Message("Error: " .. nLastError, SQLite.GetLastErrorString());
else
Dialog.TimedMessage("Registro", "Estimado(a) Usuario(a) se Registro la Información del Técnico con Éxito", 3000, MB_ICONEXCLAMATION);
--else
StatusDlg.Hide();
Page.Jump("INGRESO POSTULANTES TECNICOS");
end
else
Dialog.Message("Error por Duplicidad", "Ya existe un registro del Técnico en la Base de Datos ");
end
end
end
--Funcion Buscar
---Desactive todas las casillas
ListBoxEx.DeleteAllItems("Listado")
---obtener una entrada de bsqueda
sSearch = Dialog.Input("Buscar", "Coloque el Dato del que desea Buscar:", "", MB_ICONQUESTION);
if sSearch ~= "" then
tblRS = SQLite.QueryToTable(db, "Select * from TECNICO where (REGISTRO LIKE '%"..sSearch.."%') or (APELLIDOSNOMBRES LIKE '%"..sSearch.."%')")
nLastError = Application.GetLastError();
if nLastError ~= SQLite.OK then
Dialog.Message("Error", SQLite.GetLastErrorString());
end
-- si no hay errores, continuar, de lo contrario no hacer nada
if nLastError == SQLite.OK then
--recorrer la tabla
for nRow = 1,tblRS.Rows do
--obtener el ttulo del registro actual
nRecordID = tblRS.Data[nRow]["RecordID"];
--sTitle = tblRS.Data[nRow]["Marca"];
sREGISTRO = tblRS.Data[nRow]["REGISTRO"];
sAPELLIDOSNOMBRES = tblRS.Data[nRow]["APELLIDOSNOMBRES"];
--aadir el elemento a la lista con el texto title =
---Mostrar dilogo de estado para el progreso de actualizacin
--ncount = Table.Count(tMatriculas);
StatusDlg.Show(MB_ICONNONE, false);
StatusDlg.SetMeterRange(1, 50);
StatusDlg.SetMeterPos(1);
StatusDlg.SetTitle("Refrescar la Busqueda por Apellidos y Nombres");
StatusDlg.SetMeterRange(1, nCount);
--******************************************************* y el RecordID
nIndex = ListBoxEx.AddItem("Listado", "|| REGISTRO: ".. "<b><i>"..sREGISTRO .."</i></b>", sREGISTRO, tblRS.Data[nRow]["RecordID"], "", 1, LBXITEM_HTML, 0, nil, {16316664,16764057,16316664}, nil);
ListBoxEx.SetItemGStyle("Listado", nIndex, BACKWARD_DIAGONAL, LBXISTATE_NORMAL);
ListBoxEx.SetItemIconSize("Listado", nIndex, 20);
ListBoxEx.SetUpdate("Listado", true);
ListBoxEx.SetVisible("Listado", true);
end
end
StatusDlg.Hide();
else
end
tSelected = ListBoxEx.GetSelectedItem("Listado")
ListBoxEx.GetItemText("Listado", -1, true)
if tSelected then
nRecordID = String.ToNumber(ListBoxEx.GetItemData("Listado", tSelected));
tSeleccion = SQLite.QueryToTable(db, "Select * from TECNICO where RecordID="..nRecordID)
nRecordID = tSeleccion.Data[1]["RecordID"];
sDOCUMENTOPDF = tSeleccion.Data[1]["DOCUMENTOPDF"];
sREGISTRO = tSeleccion.Data[1]["REGISTRO"];
sEXPEDIENTE = tSeleccion.Data[1]["EXPEDIENTE"];
sEPELLIDOSNOMBRES = tSeleccion.Data[1]["APELLIDOSNOMBRES"]
sDNI = tSeleccion.Data[1]["DNI"];
sTITULO = tSeleccion.Data[1]["TITULO"];
sINSTITUCION = tSeleccion.Data[1]["INSTITUCION"];
sRESIDENCIA = tSeleccion.Data[1]["RESIDENCIA"];
sTELEFONO = tSeleccion.Data[1]["TELEFONO"]
sFECHAINSCRIPCION = tSeleccion.Data[1]["FECHAINSCRIPCION"];
sENVIADO = tSeleccion.Data[1]["ENVIADO"];
sSELECCION = tSeleccion.Data[1]["SELECCION"];
sOBSERVADO = tSeleccion.Data[1]["OBSERVADO"];
sNOTAOBSERVACION = tSeleccion.Data[1]["NOTAOBSERVACION"];
Input.SetText("INP_DOCUMETOPDF", sDOCUMENTOPDF);
Input.SetText("INP_REGISTRO", sREGISTRO);
Input.SetText("INP_EXPEDIENTE", sEXPEDIENTE);
Input.SetText("INP_APELLIDOSNOMBRES", sAPELLIDOSNOMBRES);
Input.SetText("INP_DNI", sDNI);
Input.SetText("INP_TITULO", sTITULO);
ComboBox.SetText("CBX_INSTITUCION", sINSTITUCION);
Input.SetText("INP_RESIDENCIA", sRESIDENCIA);
Input.SetText("INP_TELEFONO", sTELEFONO);
Input.SetText("INP_FECHAINSCRIPCION", sFECHAINSCRIPCION);
ComboBox.SetText("CBX_ENVIADO", sENVIADO);
ComboBox.SetText("CBX_SELECCION", sSELECCION);
ComboBox.SetText("CBX_OBSERVADO", sOBSERVADO);
Input.SetText("INP_NOTAOBSERVACION", sNOTAOBSERVACION);
end