lunes, 7 de mayo de 2018

Texto en Item de control Toolbar Strip de PB Ultimate Suite

Recibí un correo de un compañero que también trabaja con PB Ultimate Suite, en la cual preguntaba como se puede tener uno o algunos items con texto en el control Toolbar Strip.

Pues este es el código:

En el evento Constructor del objeto (u_cst_toolbarstrip, heredado en la ventana) codificamos:

Long ll_Aceptar

ll_Aceptar = uo_toolbar.of_AddItem('Aceptar', n_cst_imagelist.Accept, 'Aceptar')
uo_toolbar.of_AddSeparator()
uo_toolbar.of_AddItem('First', n_cst_imagelist.VCRFirst, 'Primera')
uo_toolbar.of_AddItem('Prior', n_cst_imagelist.VCRPrior, 'Anterior')
uo_toolbar.of_AddItem('Next', n_cst_imagelist.VCRNext, 'Siguiente')
uo_toolbar.of_AddItem('Last', n_cst_imagelist.VCRLast, 'Ultima')

This.of_displaytext(ll_Aceptar, True,1)

(*) n_cst_imagelist es un objeto no visual, en la que tengo constantes de tipo string que tienen como valor la ruta de las imágenes que uso en mi aplicación.

Porque tener las este objeto no visual para constantes pues:

1. Por orden, es mas fácil darle mantenimiento, si en algún momento se quiere cambiar el valor de la constante.
2. Puedo usar una constante,en cualquier parte de mi aplicación.
3. Evito cargar constantes al iniciar la aplicación. He visto muchas aplicaciones que declaran constantes como variables globales, recuerden que al ejecutar la aplicación carga todas las variables globales.

Así se declara:

















Así logramos tener un item con texto en el control Toolbar Script:

miércoles, 11 de abril de 2018

String Service - Servicio de manejo de cadenas (n_cst_string)

Proporciona funciones que se pueden llamar para operar con cadenas. El servicio se activa mediante el objeto n_cst_string. Entre las operaciones que se pueden realizar están:

  • Separar una cadena delimitada en un array.
  • Convertir un array en una cadena delimitada.
  • Determinar si una cadena está en minúsculas, mayúsculas, si es alfabética o alfanumérica.
  • Reemplazamiento global.
  • Contar el número de apariciones de una determinada cadena.
  • Eliminar espacios y caracteres no imprimibles del principio o final de una cadena.
  • Determinar si una cadena es un operador de comparación o aritmético.
  • Capitalizar todas las palabras en una cadena.

Hay que definir n_cst_string como una variable global, de instancia o local según convenga en la aplicación.

Para habilitar el servicio:
n_cst_string  inv_string

Este objeto utiliza la opción autoinstantiate, que elimina la necesidad de codificar sentencias CREATE o DESTROY.

Para llamar una función del servicio:
n_cst_string  lnv_string 
Integer  li_newlines 
String  ls_line[ ] 
... 
li_newlines = lnv_string.of_ParseToArray(as_text, "~r~n", ls_line)

P.D.: Este objeto es propio de las librerías PowerBuilder Foundation Class, para su entendimiento y uso puede leer el manual de PowerBuilder Foundation Classen el articulo Objetos PFC para aplicaciones no PFC (PFC Objects for Non PFC Applications) encontrara el link de descarga para utilizar este objeto libre.

Objetos PFC para aplicaciones no PFC (PFC Objects for Non PFC Applications)

La web PFC Guide es un sitio dedicado a la información sobre las librerias PowerBuilder Foundation Class, en la sección Download encontramos la descarga PFC Objects for Non PFC Applications que es una librería que contiene objetos separados de PFC y modificados para su uso en cualquier proyecto, se encuentra en versión PB 6.0.

Los objetos que tiene esta librería son:


1) String Service
Para usar el objeto de servicio de cadena, se tiene que copiar el objeto n_cst_string en su aplicación.

2) Date and Time Service
Para usar el objeto de servicio de fecha y hora, se tiene que copiar el objeto n_cst_datetime en su aplicación.

3) Resize Service
Para usar el objeto de servicio de cambio de tamaño, se tiene que copiar el objeto n_cst_resize en su aplicación.

4) DataWindow Resize Service
Para usar el servicio de cambio de tamaño de DataWindow, se tiene que copiar los objetos n_cst_dwsrv_resize, n_cst_infoattrib y n_cst_propertyattrib en su aplicación.

5) Dropdown Calendar
Para el uso del dropdown calendar, copiar los objetos u_calendar, d_calender, n_cst_infoattrib, n_cst_propertyattrib, n_cst_dropdown, n_cst_calenderattrib y n_cst_datetime en su aplicación.

6) Dropdown Calculator
Para el uso del dropdown calculadora, copiar los objetos u_calculator, d_calculator, n_cst_infoattrib, n_cst_propertyattrib, n_cst_dropdown y n_cst_calculatorattrib into en su aplicación.

7) Progress Bar
Para el uso de la barra de progreso, copiar los objetos u_progressbar, d_progress y n_cst_infoattrib en su aplicación.

sábado, 1 de julio de 2017

miércoles, 22 de febrero de 2017

Conexión a SQL Server 2014 desde PowerBuilder Classic 12.6

Para conectarse a una Base de Datos SQL Server 2014 desde PowerBuilder Classic 12.6 seguimos los siguientes pasos:

1. En PowerBuilder, clic derecho al driver SNC SQL Native Client, clic en New Profile



2. En la siguiente ventana Database Profile Setup.

Primero: En la pestaña Connection ingresamos los datos de conexión:

Segundo: En la pestaña Preview clic en botón Test Connection y listo.

3. En el evento open del objeto Application, se debe colocar la cadena de conexión:

SQLCA.DBMS = "SNC SQL Native Client(OLE DB)"
SQLCA.LogPass = "CONTRASEÑA"
SQLCA.ServerName = "NOMBRE DE SERVIDOR"
SQLCA.LogId = "USUARIO"
SQLCA.AutoCommit = False
SQLCA.DBParm = "Database='NOMBRE DE BASE DE DATOS',Provider='SQLNCLI11'"

domingo, 12 de febrero de 2017

Conexión a SQL Server 2008 R2 desde PowerBuilder Classic 12.6

Para conectarse a una Base de Datos SQL Server 2008 R2 desde PowerBuilder Classic 12.6 seguimos los siguientes pasos:

1. En PowerBuilder, clic derecho al driver SNC SQL Native Client, clic en New Profile

2. En la siguiente ventana Database Profile Setup.

Primero: En la pestaña Connection ingresamos los datos de conexión:

Segundo: En la pestaña Preview clic en botón Test Connection y listo.

3. En el evento open del objeto Application, se debe colocar la cadena de conexión:

SQLCA.DBMS = "SNC SQL Native Client(OLE DB)"
SQLCA.LogPass = "CONTRASEÑA"
SQLCA.ServerName = "NOMBRE DE SERVIDOR"
SQLCA.LogId = "USUARIO"
SQLCA.AutoCommit = False
SQLCA.DBParm = "Database='NOMBRE DE BASE DE DATOS',Provider='SQLNCLI10'"