Mostrando entradas con la etiqueta Funciones y Eventos. Mostrar todas las entradas
Mostrando entradas con la etiqueta Funciones y Eventos. Mostrar todas las entradas

miércoles, 15 de junio de 2016

Obtener Fecha y Hora del Servidor PostgreSQL

Creamos un objeto Function en PowerBuilder para poder obtener la fecha del servidor PostgreSQL.

1. Clic en New del PowerBar 
2. En la siguiente ventana seleccionamos Function de la pestaña PB Object y luego clic en el botón OK.
(Imagen 1. Dar clic en la imagen para agrandar)

3. En el objeto Function establecemos y escribimos lo siguiente:
(Imagen 2. Dar clic en la imagen para agrandar)

4. Se invocara al objeto Function de la siguiente manera (ejemplo):

dw_1.Object.fecha[ll_Fila] = f_datetime_server()

domingo, 24 de enero de 2016

Obtener Fecha y Hora de Servidor Firebird

Para obtener la fecha del servidor Firebird creamos una función (Function Object):

$PBExportHeader$f_fecha_servidor.srf
global type f_fecha_servidor from function_object
end type

forward prototypes
global function datetime f_fecha_servidor ()
end prototypes

global function datetime f_fecha_servidor ();


// -------------------------------------------------------------------------------------
// Funcion : f_fecha_servidor
// Proposito: Devuelve la fecha y hora del servidor Firebird
// Creador : Jorge A. Barzola Rosadio
// Fecha : 16/07/2015

// -------------------------------------------------------------------------------------

 DateTime ldt_DateTime

SetNull(ldt_DateTime)

SELECT CURRENT_TIMESTAMP
    INTO :ldt_DateTime
  FROM RDB$DATABASE;


RETURN ldt_DateTime

end function

martes, 21 de julio de 2015

Obtener Fecha y Hora de Servidor Oracle

Para obtener la fecha del servidor Oracle creamos una función (Function Object):

$PBExportHeader$f_fecha_servidor.srf
global type f_fecha_servidor from function_object
end type

forward prototypes
global function datetime f_fecha_servidor ()
end prototypes

global function datetime f_fecha_servidor ();

// -------------------------------------------------------------------------------------
// Funcion : f_fecha_servidor
// Proposito: Devuelve la fecha y hora del servidor Oracle
// Creador : Jorge A. Barzola Rosadio
// Fecha : 12/03/2013

// -------------------------------------------------------------------------------------

DateTime ldt_fecha

 SELECT SYSDATE
  INTO :ldt_fecha
  FROM dual;

Return ( ldt_fecha )

end function

Este ejemplo es para asignar la fecha y hora del servidor Oracle a un campo del DW:

dw_1.Object.fecha[ll_Fila] = f_fecha_servidor()

sábado, 2 de octubre de 2010

Función que abre Windows desde un TreeView

Esta función permite abrir un Window desde un TreeView leyendo o recorriendo cada Item y/o Sub Item de un Objeto Menu.

Esta funcion la tengo creada en mi Objeto TreeView, en mi caso mi función tiene por nombre of_openwindow con dos parametros:

am_menu de tipo Menu
as_label de tipo String
Copiar y Pegar:

Long ll_Item
Long ll_Items
Long ll_SubItem
Long ll_SubItems
String ls_TextSubItem
Menu lm_menu

ll_Items = UpperBound(am_menu.Item)

FOR ll_Item = 1 TO ll_Items
ll_SubItems = UpperBound(am_menu.Item[ll_Item].Item)
FOR ll_SubItem = 1 TO ll_SubItems
lm_menu = am_menu.Item[ll_Item].Item[ll_SubItem]
ls_TextSubItem = am_menu.Item[ll_Item].Item[ll_SubItem].Text

IF ls_TextSubItem = as_Label THEN
lm_menu.EVENT Clicked()
EXIT

END IF
NEXT
NEXT

Luego en el Evento Clicked del Objeto TreeView:

//Creando el Objeto Menu y usando el Menu
Menu lm_Menu

lm_Menu = CREATE USING m_nombre_menu

//Declarando variable TreeviewItem
TreeViewItem itv_TreeViewItem

//Declarando variable String para obtener la Etiqueta o Label del Item del Objeto TreeView
String ls_Label
ls_Label = ltv_TreeViewItem.Label

//Invocamos a la Funcion of_openwindow dandole los parametros que necesita
of_openwindow(lm_Menu, ls_Label )

NOTA: Para el ejemplo se declararon las variables de manera local en el mismo Evento Clicked del Objeto TreeView, ya depende mucho de cada uno como implementar este aporte quizás como es mi caso declarando las variables de tipo instancia porque tengo un Objeto TreeView Ancestro y las variables las utilizo para otras funcionalidades, lo importante es poder compartir con esta función y sea de gran utilidad.

domingo, 25 de julio de 2010

Función que carga Menú a un TreeView

Se debe crear una función en la ventana que contenga el Objeto TreeView, en mi caso mi función tiene por nombre of_loadmenu, con dos parametros:
am_menu de tipo Menu
ai_nodoarbol de tipo Integer
Copiar y Pegar:

Long li_i, li_Lugar ,li_TotSub, li_NuevoNodo
String ls_Nombre
TreeViewItem ltvi_TreeItem

FOR li_i = 1 TO UpperBound(am_menu.item)
//Elinina el simbolo & de la etiqueta del menu
li_lugar = Pos(am_menu.item[li_i].Text,"&")
IF li_lugar > 0 THEN
ls_Nombre = Replace(am_menu.item[li_i].Text,li_lugar,1,"")
ELSE
ls_Nombre = am_menu.item[li_i].Text
END IF
ltvi_TreeItem.label=ls_Nombre
//Para diferenciar submenus de opciones
li_TotSub = UpperBound(am_menu.item[li_i].item)
IF li_TotSub>0 THEN
ltvi_TreeItem.Bold = TRUE
ltvi_TreeItem.PictureIndex = 2
ltvi_TreeItem.SelectedPictureIndex = 2
ELSE
ltvi_TreeItem.Bold = FALSE
ltvi_TreeItem.PictureIndex = 3
ltvi_TreeItem.SelectedPictureIndex = 3
END IF
li_nuevoNodo = This.InsertItemLast(ai_nodoarbol,ltvi_TreeItem)
of_loadmenu(am_menu.item[li_i],li_nuevoNodo)
NEXT

Para seguir con el ejemplo, en el Evento Open de la Ventana:

m_menu_principal lm_Menu
lm_Menu = CREATE USING m_menu_principal

//Insertando Item Principal al TreeView
Integer li_Integer
li_Item = This.InsertItemLast(0, "Menu Principal", 1)


//Invocando a la Funcion of_load_menu para cargar el Objeto Menu al Objeto TreeView
of_loadmenu(im_Menu, li_Item)

Nota 1: Agradecimiento a Raúl Valverde quien ya que hace mucho tiempo atras dejo este código en el Foro de Sybase en Español.

Nota 2: Para el ejemplo se detalla crear la función en la ventana que contiene al Objeto TreeView pero ya depende de cada uno como implementar esta función en mi caso tengo un Standar User Object de tipo TreeView en el cual tengo esta función of_loadmenu.

lunes, 28 de junio de 2010

Obtener Nombre del Servidor SQL Server 2005

Esta funcion me devuelve el nombre del servidor SQL Server 2005, valido tambien para la versión 2008:

$PBExportHeader$f_server_name.srf
global type f_server_name from function_object
end type

forward prototypes
global function string f_server_name ()
end prototypes

global function string f_server_name ();

// -------------------------------------------------------------------------------------
// Funcion : f_server_name
// Proposito: Devuelve Nombre del Servidor SQL Server 2005
// Creador : Jorge A. Barzola Rosadio
// Fecha : 27/06/2010
// -------------------------------------------------------------------------------------

String ls_ServerName

SELECT srvname
INTO :ls_ServerName
FROM sys.sysservers;

RETURN ls_ServerName

end function

viernes, 18 de julio de 2008

Llamando a Eventos de Usuario

Para llamar Eventos de Usuario o User Events en PowerBuilder contamos con 2 funciones que nos permitiran trabajar de manera facil:
  • TriggerEvent()

Sincrono

  • PostEvent()

Asíncrono

TriggerEvent

Dispara un evento asociado con el objeto especifico.

Sintaxis

objectname.TriggerEvent ( event )

Valores de Retorno

  • 1 El Evento existe y existe un script para él.
  • -1 Evento no válido para ObjectName o no hay script para el evento ObjectName

Ejemplo

Parent.TriggerEvent("ue_new")

PostEvent

Adiciona un evento al final de la cola del evento para el objeto.

Sintaxis

objectname.PostEvent ( event )

Valores de Retorno

  • TRUE Existe un evento con un strng.
  • FALSE Evento no válido para objecto o no hay script para el evento.

Ejemplo

Parent.PostEvent("ue_save")

Creando un Objeto Función

El Objeto Funciones (Function Object) nos permiten hacer más fácil la programación. Un objeto función es definida por el usuario.

Creando un Objeto Función
  • Click en el icono New del PowerBar
  • Click en el icono Function del Tab PB Object, luego click en OK
    • Dentro del Painter del Objeto Función, podremos realizar la codificación que necesitamos. (Para el ejemplo f_pc_user es una funcion que no tiene argumento)

    Painter Funcion

    Como esta función me devuelve el nombre del usuario de la pc, solo para tomar un ejemplo la quiero visualizar en el Titulo del Window Principal, entonces en el Open de este coloco:

    This.Title = f_pc_user()

    Como dije antes f_pc_user no tiene argumento, cuando un Objeto Función tiene argumento o argumentos se debe hacer asignar valores dentro de los parentisis ( ) .