Manual Power Builder

  • Published on
    09-Jul-2015

  • View
    2.568

  • Download
    4

Embed Size (px)

Transcript

<p>-1-Power Builder 9.0POWERBUILDER 9.0Ing. Alberto Moreno C.Universidad Nacional de Ingenieria-2-Power Builder 9.0CONTENIDO Entorno del PowerBuilder Propiedades de controles. Funciones de cadena, numricas y fechas. Aplicacin con Arreglos y Funciones de Usuario DFU. Objeto DataWindow. Aplicaciones con DataWindowFilter y Find. Datawindow con Retrieval Arguments y Campos calculados. Validaciones de campo y mantenimiento de una tabla. Aplicacin elaboracin de un factura. Estructura de datos y OpenWithParm. Objetos de usuario, visuales y no visuales. Grficos uso del estilo Graph. Animaciones. DataWindow Dinamicos. Enviar Correo. Api's en Power Control treeview Trucos en Power.Profesor:Ing.Alberto Moreno C..Prohibida cualquier copia sin permiso del autor Correo :am_alberto@hotmail.com"La frase debo hacer algo resuelve mas problemas que la frase hay que hacer algo-3-Power Builder 9.0Que es Power Builder?Es una herramienta de desarrollo de aplicaciones grficas, principalmente para eldesarrollo de aplicaciones Cliente/Servidor de N capas.Antes de empezar a desarrollar cualquier aplicacin se debe crear:a)Un espacio de trabajo Workspace, que asignara la extensin ( *.pbw)b)Una aplicacin que esta ligado a una librera o biblioteca(*.pbl)-4-Power Builder 9.0TemplateApplication .- es cuando se abre una nueva aplicacinpero con una plantillade trabajoExistingApplication.-Paraabrirunaaplicacinqueseencuentraenotraversindelpower.-5-Power Builder 9.0CAPITULO DE FUNCIONESFunciones del Control:CLEAR()Borra el contenido de un objetoSyntaxobjectname.Clear ( )ControlsDataWindow, EditMask, MultiLineEdit, SingleLineEdit, RichTextEdit,DropDownListBox, DropDownPictureListBox, OLE controls, and OLEStorageobjectsDELETEITEM()Borra un item desde una lista de valoresSyntaxobjectname.DeleteItem ( index )ControlsListBox, DropDownListBox, PictureListBox, and DropDownPictureListBox controlsEjemplo:Esta sentencia borra el primer item seleccionado en Lb_productosinteger Xindex// Variable de tipo enteroXindex = lb_software.SelectedIndex()// Capturamos la posicin del cursor en lalistalb_ software.DeleteItem(Xindex) // Eliminamos el item seleccionadoADDITEM()Adiciona nuevos items para una lista de valoresSyntaxobjectname.AddItem ( item )ControlsListBox and DropDownListBox controlsEjemplo:integer Xrow // Variable de tipo entero-6-Power Builder 9.0string s // Variable de tipo cadenas = "Insertar Item"// Almacenamos un valor a la variableXrow = lb_software.AddItem(s) // Insertamos el valor de la variable (s) en ellistboxFINDITEM()Busca un texto dentro de una lista de valores, retorna un valor 1 si no encuentra el datoa buscar.Syntaxobjectname.FindItem (text, index)ControlsListBox, DropDownListBox, PictureListBox, and DropDownPictureListBox controlsEjemploInserta en un control listbox el siguiente contenido:integer XIndexXIndex = lb_software.FindItem("Power Builder", 1)En este ejemplo el valor de index ser 6INSERTITEMInserta un item dentro de una lista de valoresSyntaxobjectname.InsertItem (item, index)ControlsListBox and DropDownListBox controls-7-Power Builder 9.0Respecto al ejemplo anterior:Lb_software.InsertItem("Apache,6)// inserta el item en la sexta posicin, es decir en el item 6SELECTEDTEXTObtiene el texto seleccionado en un control editableSyntaxeditname.SelectedText ( )ControlsDataWindow, EditMask, MultiLineEdit, SingleLineEdit, RichTextEdit,DropDownListBox, and DropDownPictureListBox controlsejemplo: inserta un dropdownpicturelistbox e ingresale como minumo 5 items, en uncontrol, y en el evento que desees ingresa lo siguientestring XubicaXubica = ddlb_software.SelectedText()SELECTITEMEncuentra y resalta un item dentro de una lista.ControlsListBox, DropDownListBox, PictureListBox, and DropDownPictureListBox controlsSyntaxa)objectname.SelectItem (item, index)ejemplo:integer XIndexXIndex = lb_software.SelectItem("Power Builder", 2) // si encuentra el texto lo resalta y si no// el valor devuelto es 0b)lobjectname.SelectItem (itemnumber)Resalta el item especificado en la lista, si el valor es cero no se selecciona ningn temSyntaxobjectname.SelectItem (itemnumber)-8-Power Builder 9.0ControlsListBox, DropDownListBox, PictureListBox, and DropDownPictureListBox controlsejemplo ddlb_software.Selecitem(0)// ningn tem es seleccionado lb_software.SelectItem(5) // resalta el item 5TOTALITEMSDetermina el nmero total de itemsSyntaxlistcontrolname.TotalItems ( )ControlsListBox, DropDownListBox, PictureListBox, DropDownPictureListBox, and ListViewcontrolsSTATEDetermina si un elemento de la lista esta resaltada.SyntaxListboxname.State ( index )ControlsListBox and PictureListBox controlsejemplo:integer XItemTotal, XItemCountXItemTotal = lb_software.TotalItems( )//Verifica que items esta seleccionadoFOR XItemCount = 1 to XItemTotalIFlb_software.State(XItemCount) = 1 THEN// Si esta seleccionadoMessageBox("Selected Item", lb_software.text(XItemCount))END IFNEXTSETSTATEResalta un item dentro de una lista solo es aplicable cuando esta lista es de mltipleseleccin esdecir propiedad Multiselect = TRUE-9-Power Builder 9.0Syntaxobjectname.SetState (index, state)ControlsListBox and PictureListBox controlsejemplolb_software.SetState(6, TRUE)-10-Power Builder 9.0FUNCIONES DE CADENA.ASCObtiene el cdigo ASCII correspondiente, de un carcter de tipo cadena.ejemplo :Asc("A)// retorna 65CHARRetorna el carcter correspondiente al cdigo ASCIIStringXSXS=Char(42)// retorna*FILL retorna una cadena con una longitud determinada del carcter especificado.ejemploFill("*,5) //*****LEFTRetorna un nmero especificado de caracteres comenzado por la izquierdaEjemplo:String XcadXcad = Left("Claudia,3)//ClaLEFTTrim Retorna una copia de una cadena sin los espacios en blanco del ladoizquierdo.Ejemplo:String XcadXcad = LeftTrim(" Claudia)//Retorna "ClaudiaLEN(Cad) Retorna la longitud de una cadenaEjemplo:String XcadXcad = Len("Claudia)//Retorna 7LOWER(Cad) Convierte toda la cadena a minsculasEjemplo:String XcadXcad = Lower("CLAUDIA)//Retorna claudiaMATCH Determina si la cadena contiene un patrn particular de caracteres.Ejemplo:-11-Power Builder 9.0Esta sentencia retorna TRUE si el texto contiene una letra Mayscula:Match(sle_Id.Text, "[A-Z]")MID Extrae caracteres a partir de una PosicinEjemplo:String XcadXcad = Mid("Claudia,4,2)// retorna"udPOSretorna la posicin donde comienza una cadena dentro de otra cadena .Ejemplo:Integer XposXpos = Pos("Power Builder,Bu)//Retorna 7REVERSE(Cad) Cambia el orden de los caracteres de una cadena.EjemploString XrevXrev = Reverse("Hola)//aloHRIGHT(CAD, n) devuelve caracteres a partir de la derechaEjemplo:String XcadXcad = right("Claudia,3) //diaSPACE(N) Inserta espacios en blancoEjemplo:Cad=Space(5)// devuelve " , cinco espacios en blanco.TRIM(Cad)suprimeblancos a ambos extremos de la cadena.Ejemplo:Cad= claudia "// devuelve "claudia, cadena sin espacios en blanco a loscostados.UPPER(cad) Convierte toda la cadena a letras maysculasEjemplo:-12-Power Builder 9.0Cad= "especializacin// devuelve ESPECIALIZACION.FUNCIONES FECHADAY Retorna el da de una fecha.Ejemplo:Dia = String(Day(2001-04-21)) // retorna 21, convertimos el dato de tiponmerico a cadena, con la funcion string.DAYNAME Retorna el nombre de da de la semana Ejemplo:Cad = DayName(2001-04-22)//retorna Sunday.DAYNUMBERRetorna el nmero de da de la semanaEjemplo:Cad = string(DayNumber(2001-04-22)) // Retorna 1DAYAFTER Devuelve los das que hay entre dos fechasEjemploCad = DayAfter(2001-04-22, 2001-04-18) // retorna-4HOURRetorna un entero que corresponde al nmero de horas, que se encuentre en undato detipo horaEjemplo:Hour(19:12:42)//retorna 19.MINUTE retorna los minutosEjemplo:Minute(19:42:13)//retorna 42.MONTHRetorna el nmero correspondiente al mes de una fechaEjemplo:Month(2001-04-22)// retorna 4NOW devuelve laHora del sistema-13-Power Builder 9.0EjemploHora = String(now(),HH:mm:ss) // string(dato,tipo de salida del dato), en estecaso eshora:minuto:segundo.RELATIVEDATERetorna la fecha con respecto a un determinado nmero de da.Ejemplo:DateFechaFecha=Relativedate(today(), -25)// la fecha hace 25 das respecto a la fechaactual.SECOND Retorna el nmero de segundos.Ejemplo:Cad = string(Second(14:13:45)) // retorna 45 expresado en un dato de tipocadena.TODAY Retorna la Fecha y hora del sistemaEjemplo:Cad = string(today(),"DD/MM/YY)// retorna una cadena con la fecha del sistemaen un formato de dd/mm/y yes decir ,12/04/03YEAR Retorna el ao de una fecha.EjemploNum = year(today())-14-Power Builder 9.0FUNCIONESNUMRICASABS obtiene el valor absoluto de un nmeroEjemplo:Num= (abs(-34) // retorna 34CEILING Obtiene el menor nmero entero que es menor o igual al nmero especificadoEjemplo: Donde Deci es una variable de tipo decimalDeci = String(Ceiling(-4.8))//retorna 4COSObtiene el coseno de un nguloel ngulo debe estar en radianesEXP El resultado de un nmero elevado a la potencia.Ejemplo:Deci = String(exp(1))// 2.718FACTObtiene el factorial de un nmeroEjemplo:Num= Fact(4) // retorna 24MAX Retorna el mayor de dos nmerosEjemplo:Num = Max(-4,-7)//retorna -4MINMenor entre dos nmerosEjemplo:Num = Min(4,7)// retorna 4MODObtiene el residuo de dos nmerosEjemplo:Num = Mod(20,7)//retorna 6PI (n)multiplica PI(3.1416 por un numero)Ejemplo:Deci = Pi(1)// devuelve 3.14159.....RAND(10)Obtiene un nmero entero aleatorio entre 1 y el nmero especificado-15-Power Builder 9.0Ejemplo:Num = Rand(10)// devuelve un nmero comprendido entre el 1 a 10RANDONMIZE(0) Randomize Regenera o inicializa el nmero aleatorio generador.Ejemplo:Randomize(0)ROUND Obtiene el nmero entero comprendidoen un nmero decimalEjemplo:Num = Round(3.598,0)// devuelve 4-16-Power Builder 9.0AplicacionesDFU (Funciones Defindas por el Usuario).Pueden ser a nivel de Ventana o a nivel de toda la aplicacinEjemplo: Ingresar un monto en soles y lo convierta a letraspor ejemplo si:Funciones a crearEs ms simple hacer la conversin trabajando con vectoresPaso 1.- Declarar a nivel de instancia (Pestaa Instancia)Declare InstanciaString vec1[]={"Uno","dos","Tres","cuatro","cinco","seis","siete","ocho","nueve"}String vec2[]={"Once","doce","trece","catorce","quince","dieciseis", "diecisiete", &amp; "dieciocho","diecinueve"}String vec3[]={"Diez","viente","trienta","cuarenta","cincuenta","sesenta", &amp;"setenta","ochenta","noventa"}String vec4[]={"Ciento","Doscientos","trescientos","cuatroscientos","quinientos", &amp; "seiscientos", "setecientos","ochocientos","novecientos"}Em_1 control deedicionMle_1 Contol demltiple lineaF_centenaNum=345Devuelve en letras:Trescientos cuarenta y cimcoF_milF_millNumLetraNumTipo intLetra-17-Power Builder 9.0Paso 2.- Crear las funciones: NumLetras (a nivel de ventana)a)Clic en (Insert) del men principal.b)Clic en (Function).a)Tipo de acceso a la funcin.b)Tipo de dato de retorno.c)Nombre de la funcin.d)Tipo de datos que se va a referenciar, en este caso ser un valor.e)Tipo de dato del valor.En la ventana de cdigo, tipeamos la siguiente estructura:String cad1,cad2Int c,res,d,unic=num/100res= mod(num,100)if c&gt;0 Thenif c=1 and res=0 thencad1="Cien"elsecad1=vec4[c]end ifchoose case rescase 1 to 9cad2=vec1[res]case 11 to 19cad2=vec2[res - 10]case 10, is &gt;=20d=res/10uni=mod(res,10)if uni=0 thencad2=vec3[d]elsecad2=vec3[d]+ " y "+ vec1[uni]end ifend choosereturn cad1 + cad2b a c f d g-18-Power Builder 9.0Funcion milesTipeamos el siguiente cdigo:String cad1,cad2Int res,milmil=num/1000res= mod(num,1000)if mil&gt;0 thenif mil=1 then cad1="Mil " elseCad1=f_centena(mil)+" Mil"end ifif res&gt;0 Thencad2=f_centena(res)end ifreturn cad1 + " " + cad2Procedemos a ejecutar la aplicacion y veremos los resultados.-19-Power Builder 9.0FUNCIONES APLICADAS A CONTROL DATA WINDOWSEstructura de un DatawindowsDatawindows.- Es una carateristicas ms importante del Power Builder. El DataWindowseslaformaenquesusaplicacionespresentanlosdatosdelabasededatosyquizasinclusodatosnoespecficamentedeunabasededatosalusuariofinal;DataWindowspueden ser pantalla de consulta, formato de entrada de datos, reportes de impresin, etc.Un objeto DataWindow debe ser insertado con una ventana regular, en todo diseo de unDataWindowforman parte dos objetos.1.- DataWindow Object.- que es diseado con el DataWindow Painter.2.- DataWindow Control.- Es un control donde se insertar el DataWindows Object.Edit Control-20-Power Builder 9.0Funciones principales de un DatawindowsSetTransObjectHacequeuncontrolDataWindowuseunobjetodetransaccinespecificadoporelprogramador.Elobjetodetransaccinproporcionalainformacinnesecesariaparacomunicarse con la Base de Datos. Retorna -1 si ha ocurrido un error.Sintaxis Dwn. Settransobject(Transaccin)ArgumentDescriptionDwn ElnombredelControldatawindow,conelcualsedeseausarunobjeto de transaccin.TransaccinNombre del Objeto de transaccin, por defecto es SQLCA.GeneralmenteseestableceelobjetodetransaccineneleventoOpendelaventanaque contiene el control DataWindow.EnresumenelSettransObject(SQLCA)asociaelobjetotransacinconelcontrolDataWindow.Ejemplo:DwnSoftware.settransobject(SQLCA)InsertRowInserta una fila en un DataWindow, Si alguna columna tiene valores por defecto, La fila esinicializada con estos valores, retorna el nmero de la fila que se ha aadido, retorna -1si ha ocurrido un error.Sintaxis Dwn.InsertRow(fila)ArgumentDescripcionDwn El nombre del control DataWindow en el cual se desea insertar unafila.Fila UnenteroLargo(long)queidentificalafilaantesdelacualdeseainsertarunafilanueva.Sielvaloresceroinsertaralfinaldelatabla.Ejemplo:-21-Power Builder 9.0DwnSoftware.InsertRow(0)Retrieve()Recuperatodaslas filas deunatabladelaBDD enuncontrolDataWindow,Siincluyenargumentos, estos son usados por los argumentos de recuperacion de la sentenciaSQLSELECT del objeto DataWindow. Retorna el nmero de filas recuperadas, -1 si ocurre unerror.Sintaxis Dwn.Retrieve({Arg1, Arg2,.})ArgumentDescripcionArg1, Arg2Argumentos de recuperacion, de la tabla de BDDEjemplo:DwnSoftware.Retrieve("C001)SetRowFocusIndicatorEspecifica el indicador visual que identifica la fila actual en un control DataWindow.Sintaxis Dwn.SetRowFocusIndicator (Indicador)IndicadorEl indicador visual para la fila actual, los valores validos son:Off!Sin indicador.FocusRect! Un rectangulo de puntos alrededor de la fila.Hand!Un dedo indice.El nombre de un Picture Control.SelectRowSelecciona la fila especificada en el control de un DataWindows.Sintaxis Dwn.SelectRow (Fila, Boolean)Ejemplo:DwnSoftware.SelectRow(0,False) // desactiva la fila anteriorDwnSoftware.SelectRow(15,true) // resalta toda la fila 15-22-Power Builder 9.0SetItemEstableceelvalorenunafilaycolumnaespecificada,unvalordentrodeldatawindow,retorna -1 si ocurre un error.Sintaxis DwnSoftware.Setitem (Fila, columna/campo, valor)Ejemplo:Dwn.SetItem(5, "sueldo",670)En la fila 5, en el campo sueldose asigna 670.Tambin en vez del nombre de campo, puede ser el nmero de campo de acuerdo comoha sidoseleccionado en el objeto DataWindow.GetItemStringObtiene datos de tipo cadena de un buffer especificado de un control DataWindow.Sintaxis Dwn.GetitemString (Fila, Columna)EjemploString cadCad=DwnSoftware.GetItemString(3, "sfw_Nombre")Extraeeldatoqueseencu...</p>