Power Builder Lic. Vladimir Cotaquispe Gutiérrez. 1 E.P. DE INGENIERIA DE SISTEMA E INFORMATICA Exportar e Importar Datawindow Implemente la siguiente Base de datos Universidad Desarrollar la Siguiente aplicación. Objeto Datawindow: Dw_Alumnos Tabla : Alumno Tipo: Grid Control Datawindow: Dw_data Command Button: Cb_Registrar Cb_Importar Cb_Exportar Cb_Guardar Cb_Eliminar Script En el Evento open de la Aplicación: // Profile Venta SQLCA.DBMS = "ODBC" SQLCA.AutoCommit = False SQLCA.DBParm = "Connectstring='DSN=UNiversidad" Connect using SQLCA; If Sqlca.Sqlcode=0 then open(W_Exportar) else Messagebox ("Error de Conexión",Sqlca.SqlErrText) Halt end if Power Builder Lic. Vladimir Cotaquispe Gutiérrez. 2 E.P. DE INGENIERIA DE SISTEMA E INFORMATICA Script Open de la Ventana Dw_data.DataObject="Dw_Alumno" Dw_data.SetTransObject(Sqlca) Dw_data.Retrieve() Script Clicked Para Botón Cb_Exportar string ls_nombre,ls_archivo TRY if getfilesavename("Guardar Archivo",ls_archivo,ls_nombre,"xls","Archivo de excel(*.xls),*.xls")= 1 then dw_data.saveas(ls_archivo,excel! ,True) MessageBox ("Mensaje","los datos exportados con exito") else MessageBox ("error","los datos no fueron exportados con exito") dw_data.saveas() end if //dw_data.saveas("reporteenexcel.xls",excel! ,false) //MessageBox ("error","datos exportados con exito") CATCH (runtimeerror msg) MessageBox ("error",msg.text) END TRY // Script Clicked Para Botón Cb_Importar string ls_nombre,ls_archivo TRY GetFileOpenName("Importar archivo",ls_archivo, ls_nombre,"CSV","Archivos (*.CSV),*.CSV") dw_data.ImportFile(ls_archivo) CATCH (runtimeerror msg) MessageBox ("error",msg.text) END TRY //dw_1.ImportFile("reporteenexcel1111.csv")
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Power Builder
Lic. Vladimir Cotaquispe Gutiérrez. 1 E.P. DE INGENIERIA DE SISTEMA E INFORMATICA
Exportar e Importar Datawindow
Implemente la siguiente Base de datos Universidad
Desarrollar la Siguiente aplicación.
Objeto Datawindow: Dw_Alumnos Tabla : Alumno Tipo: Grid Control Datawindow: Dw_data Command Button: Cb_Registrar Cb_Importar Cb_Exportar Cb_Guardar Cb_Eliminar
Script En el Evento open de la Aplicación: // Profile Venta SQLCA.DBMS = "ODBC" SQLCA.AutoCommit = False SQLCA.DBParm = "Connectstring='DSN=UNiversidad" Connect using SQLCA; If Sqlca.Sqlcode=0 then open(W_Exportar) else Messagebox ("Error de Conexión",Sqlca.SqlErrText) Halt end if
Power Builder
Lic. Vladimir Cotaquispe Gutiérrez. 2 E.P. DE INGENIERIA DE SISTEMA E INFORMATICA
Script Open de la Ventana
Dw_data.DataObject="Dw_Alumno"
Dw_data.SetTransObject(Sqlca)
Dw_data.Retrieve()
Script Clicked Para Botón Cb_Exportar
string ls_nombre,ls_archivo TRY if getfilesavename("Guardar Archivo",ls_archivo,ls_nombre,"xls","Archivo de excel(*.xls),*.xls")= 1 then dw_data.saveas(ls_archivo,excel! ,True) MessageBox ("Mensaje","los datos exportados con exito") else MessageBox ("error","los datos no fueron exportados con exito") dw_data.saveas() end if //dw_data.saveas("reporteenexcel.xls",excel! ,false) //MessageBox ("error","datos exportados con exito") CATCH (runtimeerror msg) MessageBox ("error",msg.text) END TRY // Script Clicked Para Botón Cb_Importar
elseif lb_producto.selectedindex()<0 or lb_venta.selectedindex()<0 then
Messagebox("Error","Seleccione un Registro")
end if
Script Clicked Para Botón Borrartodo
if lb_producto.selectedindex()=-1 and lb_venta.selectedindex()=-1 then
Messagebox("Error","seleccione La lista a eliminar")
Else
INSTITUTO SUPERIOR TECNOLOGICO JHALEBET
Lic. Vladimir Cotaquispe Gutiérrez. 3
if lb_producto.selectedindex()>=1 then
lb_producto.reset()
end if
if lb_venta.selectedindex()>=1 then
lb_venta.Reset()
end if
end if
Power Builder
Lic. Vladimir Cotaquispe Gutiérrez. 1 E.P. DE INGENIERIA DE SISTEMA E INFORMATICA
Llamados A Las Api’s De Windows Desde Power Builder
Power Builder al igual que otros lenguajes de programación, provee la capacidad de extender las posibilidades del lenguaje tomando funcionalidades que pertenecen al sistema operativo o controles de terceras partes. Este proceso es lo que se llama API (Application Programming Interface). Algunas personas incluyen DLLs que han realizado en C o C++, para usarlos en Power Builder. Pero los mas comunes llamados son los que se hacen a las API del sistema operativo, para que el programador acceda directamente a funciones que desde power builder tocaría desarrollarlas, y el sistema operativo ya las tiene implementadas.
Declaración de funciones externas en PowerBuilder para llamadas a API's de
32bit
Para declarar funciones externas en Power Builder se debe indicar el nombre de la
función, así como los parámetros que recibe y los tipos de datos equivalentes de cada
parámetro en Power Builder; además de la librería DLL que contiene a la función a
declarar.
FUNCTION <Tipo_Dato_Devuelto_Función> <Nombre_Función> (<Tipo_Acceso_Parámetro> <Tipo_Dato_Parámetro> <Parámetro>[,...]) LIBRARY <Librería DLL>
Declaración de funciones externas en PowerBuilders para llamadas a API's de 32bit
Función Devuelve Parámetros que recibe
Librería Ver también
_access Long Ref string filename, int
mode msvcrt.dll
_lclose long Long hfile Kernel32.dll
_lopen long Ref string lsfile, long
fnmode Kernel32.dll
Arc Boolean
ulong hwnd, long r1,
long r2, long r3, long r4,
long a1, long a2, long
a3, long a4
Gdi32.dll
Beep Boolean long freq,long dur Kernel32.dll
BitBlt Long
ulong hDC, long num,
long num, long num,
long num, ulong hDC,
long num, long num,
Gdi32.dll
Power Builder
Lic. Vladimir Cotaquispe Gutiérrez. 2 E.P. DE INGENIERIA DE SISTEMA E INFORMATICA
sndPlaySoundA boolean String wavfile, uint flag Winmm.dll
SwapMouseButton Boolean boolean var User32.dll
VerQueryValueA Boolean
Ref string lpblock, string
lpsubblock, ref long
lpbuffer, ref uint pulen
Version.dll
waveOutGetNumDevs Ulong Winmm.dll
WinExec uint ref string filename, uint
wstyle Kernel32.dll
Power Builder
Lic. Vladimir Cotaquispe Gutiérrez. 10 E.P. DE INGENIERIA DE SISTEMA E INFORMATICA
Ejemplo: En el script de una ventana la cual va utilizar la función de un DLL
existente. Elegimos Declare y seguidamente elegimos Local External Functions.
Luego
FUNCTION integer SQLAllocEnv(ref long henv) LIBRARY "odbc32.dll"
Usando API
Aquí se ha puesto una serie de llamadas a API's de 32 bits. en general se ha puesto sin
explicación, puesto creo que no las necesitan. Estos ejemplos se obtuvieron de la página
web: http://lonestar.texas.net/~chakes y se ha traducido al castellano.
Ejemplo: Llamadas a API's del entorno de Windows
//Nombre de Equipos
function long GetComputerNameA(ref string equipo, ref ulong
areatrabajo)library "kernel32.dll" alias for "GetComputerNameA;Ansi"
long ll_valor
string ls_equipo , ls_usuario
ulong lul_at1=20
//nombre equipo
ls_equipo=space(lul_at1)
ll_valor=GetComputerNameA(ls_equipo,lul_at1)
st_1.text=ls_equipo
Power Builder
Lic. Vladimir Cotaquispe Gutiérrez. 11 E.P. DE INGENIERIA DE SISTEMA E INFORMATICA
function long GetUserNameA(ref string usuario, ref ulong areatrabajo)library
"advapi32.dll" alias for "GetUserNameA;Ansi"
// usuario
ulong lul_at2=20
ls_usuario=space(lul_at2)
ll_valor=GetUserNameA(ls_usuario,lul_at2)
st_2.text=ls_usuario
//buscador de fichero
FUNCTION long SearchTreeForFile(String RootPath ,String InputPathName,ref
String OutputPathBuffer) LIBRARY "imagehlp.dll" alias for
"SearchTreeForFile;Ansi"
CONSTANT long MAX_PATH = 260
string tempStr,ls_buscar,ls_unidad
long Ret
ls_buscar=sle_buscar.text
ls_unidad=sle_unidad.text
tempStr = space(MAX_PATH)
//'retorna 1 si lo encuentra, 0 si falla en la busqueda
Ret = SearchTreeForFile(ls_unidad,ls_buscar,tempStr)
if ret=1 then
st_ruta.text = tempStr //muestra el path
else
messagebox("Error...","El fichero no encontrado.")
end if
Power Builder
Lic. Vladimir Cotaquispe Gutiérrez. 1 E.P. DE INGENIERIA DE SISTEMA E INFORMATICA
Conectarse a SQL Server desde PowerBuilder 10 PowerBuilder desde la versión 10 ya no tiene la opción de configuración de drivers nativos (MSS Microsoft SQL Server) en el DBProfile. Ahora para conectarse "Nativamente" debe utilizar ADO.NET, JDBC, o OLE DB. O si lo prefiere por el tradicional ODBC con sus limitantes de rendimiento conocidas. A continuación le mostramos la manera de conectarse: "Nativamente" por OLE DB a SQL Server.
Abra el Database Profiles: Allí seleccione OLE Microsoft OLE DB y haga click en Nuevo: Luego seleccione en la pestaña conexión: Profile Name --> nombre de la conexiòn Provider --> SQLOLEDB DataSource --> Nombre del Servidor de Base de datos (nombre o IP) User ID --> Nombre del usuario de la base de datos Password --> Clave del Usuario de la base de datos Extended --> Aqui se define la base de datos asi :
Database=NOMBRE_DE_LA_BASE_DE_DATOS
Si deseas utilizar la seguridad integrada de Windows. En la Pestaña Security: Persist Security Info: (activar la casilla) Integrated: SSPI (digitar en la caja de texto)
Power Builder
Lic. Vladimir Cotaquispe Gutiérrez. 2 E.P. DE INGENIERIA DE SISTEMA E INFORMATICA
Nos pasamos a la ficha PREVIEW, Probamos la conexión y si es satisfactoria.
Copiamos la línea de conexión.
Normalmente el objeto transacción (transaction) se configura y se conecta cuando se inicia la aplicación, es decir en el open de la aplicación. Para hacer esto abra el objeto aplicación (file/open/aplication) en el evento open donde está el código de abrir la ventana inicial, borrelo y remplace por este código:
Para conectarse desde el PowerScript use la siguiente sintaxis:
Connect using SQLCA; If Sqlca.Sqlcode=0 then open(W_Buscar) else Messagebox ("Error de Conexión",Sqlca.SqlErrText) Halt end if
Tradicional ODBC con sus limitantes de rendimiento Por ODBC.
Pasos 1.- La BD NORTHWIND se encuentra de forma predeterminada en el motor de Base de dato SQL server, para este caso se hace uso del SQL server.
Pasos 2.- Acceder al panel de control \ Herramientas administrativas \ ODBC \ DSN USUARIO.
Click en el Botón Agregar.
Power Builder
Lic. Vladimir Cotaquispe Gutiérrez. 3 E.P. DE INGENIERIA DE SISTEMA E INFORMATICA
Seleccionamos el origen de Datos SQL Server
Activamos las Opciones:
Con la autentificación de Windows NT, mediante el ID de autentificación de Red.
Luego establecer la Base de datos Northwind.
Luego en adelante pulsar siguiente, probar la conexión de Base de datos y luego aceptar.
Pasos 3.- Desde el Entorno del PowerBuilder 10
Ventana DATABASE. Luego obtenemos las siguientes vistas
Power Builder
Lic. Vladimir Cotaquispe Gutiérrez. 4 E.P. DE INGENIERIA DE SISTEMA E INFORMATICA
Agregamos una nueva conexión NEW PROFILE.
Nos pasamos a la ficha PREVIEW, Probamos la conexión y si es satisfactoria.
Copiamos la línea de conexión.
Normalmente el objeto transacción (transaction) se configura y se conecta cuando se inicia la aplicación, es decir en el open de la aplicación. Para hacer esto abra el objeto aplicación (file/open/aplication) en el evento open donde está el código de abrir la ventana inicial, borrelo y remplace por este código:
Para conectarse desde el PowerScript use la siguiente sintaxis:
// Profile Venta
SQLCA.DBMS = "ODBC" SQLCA.AutoCommit = False SQLCA.DBParm = "Connectstring='DSN=venta" Connect using SQLCA; If Sqlca.Sqlcode=0 then open(W_Buscar) else Messagebox ("Error de Conexión",Sqlca.SqlErrText) Halt end if