Beruflich Dokumente
Kultur Dokumente
1
AMBIENTE DE DESARROLLO
Formularios
Son los elementos que se utilizan para crear aplicaciones personales en el ambiente de
desarrollo de MyBusiness POS, así como, modificar aquellos que ya existen, para poder
personalizarlos.
1. Barra de Herramientas.
2. Caja de Herramientas.
3. Área de Trabajo.
4. Propiedades.
5. Botón Ejecutar.
2
Procedimientos
Representan código predeterminado que tiene relación con las funciones que desempeña
el sistema de MyBusiness POS y puede ser modificado.
3
Formatos
Son los elementos predeterminados en MyBusiness, que se utilizan para dar salida a la
información que es procesada por el sistema. Ya sea a través de la pantalla o en un
formato impreso.
4
Reportes
Son los elementos que se pueden crear y/o modificar para dar salida a la información
procesada por el sistema en un formato impreso.
5
SENTENCIAS BÁSICAS
7 6 5 4 3 2 1 0 ----Las potencias de 2
128 64 32 16 8 4 2 1 ----Su resultado
0 1 0 0 0 0 0 1 ----El número 65 en binario
La secuencia “Hola mundo” está formado por 10 caracteres o diez bytes, la mayor parte
de los lenguajes de programación utilizan las comillas dobles “ o sencillas para indicar el
inicio y el fin de la secuencia de caracteres, Para el caso Visual Basic™ se utilizan las
comillas dobles.
Las variables
6
Ejemplo:
Sub Main()
Dim strMensaje
strMensaje = "Hola mundo"
MsgBox strMensaje
End Sub
En la línea 2 del programa vemos como se declara una variable con la sentencia DIM,
esto se hace para que la memoria que ocupa sea liberada una vez terminado el
procedimiento y para que no sea confundida con otras dentro del programa por lo que una
variable declarada así se llama de Alcance local, existen variables privadas y públicas
pero para nuestro caso solo podemos declarar variables locales.
En la línea 4 mostramos una asignación de valor a la variable strMensaje con el valor
“Hola mundo”, las variables en Visual Basic Script no tienen un tipo definido esto significa
que a una variable le puedo asignar un numero o una secuencia de caracteres sin que se
provoque un error, esto quiere decir que las variables son del tipo Variant (Variantes).
Aquí también usamos el operador Binario (de dos partes) “=” para asignar el valor aquí
unos ejemplos de asignaciones:
Ejemplo:
Sub Main()
Dim strMensaje
Dim intEdad
strMensaje = "Hola mundo"
MsgBox strMensaje
intEdad = 30
MsgBox intEdad
End Sub
La concatenación
Sub Main()
Dim strNombre
Dim intEdad
Dim strMensaje
strNombre = "Karina Hernandez"
intEdad = 23
strMensaje = strNombre & intEdad
MsgBox strMensaje
End Sub
7
Observe como en la variable strNombre guardamos una secuencia de caracteres (que de
ahora en adelante le llamaremos String) conteniendo el nombre de una persona y en la
variable intEdad su edad, en la variable strMensaje depositamos el valor de las dos
anteriores para crear un mensaje.
Observe como se usa el operador binario “&” para unir las cadenas, este operador tiene la
habilidad de convertir los numero en Strings por lo que si el programa se escribió de forma
correcta se debe de enviar el mensaje “Karina Hernandez23” como podrá observar existe
un error ya que hace falta un espacio en blanco entre el nombre y la edad corrijamos el
programa:
Sub Main ()
Dim strNombre
Dim intEdad
Dim strMensaje
strNombre = "Karina Hernandez"
intEdad = 23
strMensaje = strNombre & " edad " & intEdad
MsgBox strMensaje
End Sub
Existe una gran cantidad de libros de programación sin embargo casi ninguno habla del
estilo al programar, esto es muy importante ya que un código claro y simple es fácil de
mantener y de entender por el mismo programador que desarrollo el programa o por otros
que pudieran modificarlo, Visual Basic Script no es de los lenguajes llamados Case
Sensitive o sea que no es sensible a las mayúsculas o minúsculas y además los espacios
en blanco entre líneas o entre operadores son ignorados, aunque esto es así, habrá
observado como los ejemplos siguen una estricta norma de mayúsculas con minúsculas y
ocupa muchos espacios en blanco, además de realizar un sangrado que permite ver
claramente el inicio y el fin del procedimiento, esto tiene el propósito de que sea fácil para
usted el entender el código del programa, le sugiero que siga esto lineamientos y otros
que se irá encontrando en el resto de los ejemplos dentro de la guía.
Otra forma muy útil de hacer entendible el programa a los demás es colocando
comentarios que ayuden a entender la lógica del código, los comentarios comienzan con
una comilla sencilla y el interprete de Visual Basic Ignora todo a partir de este carácter
hasta el final de la línea.
Por último una forma muy útil de hacer fácil la lectura del código del programa es utilizar
nombres de procedimientos, funciones y variables que por sí mismas sean muy
descriptivas de lo que hacen o de lo que contienen, observe los dos ejemplos:
Ejemplo de cómo no debe de hacerlo:
8
SUB MAIN()
DIM CVE_CL_VE
DIM CANT_SL_DR
DIM CANT_SL_SM
CVE_CL_VE="Daniel Oliver Rojas"
CANT_SL_DR=450
CANT_SL_SM=CANT_SL_DR*7
MSGBOX CVE_CL_VE&CAN_SL_DR&CANT_SL_SM
END SUB
Sub Main()
Dim vendedor „ Este es un comentario enfrente de la línea
Dim salariodiario
Dim salariosemanal
Dim strMensaje „ Utilizo una variable para almacenar el mensaje
vendedor = "Daniel Oliver Rojas"
salariodiario = 450.00
salariosemanal = 450.00 * 7
strMensaje = ""
„ La constante vbCrLf inserta una linea nueva y un retorno de carro
strMensaje = strMensaje & "El salario de : " & vendedor & vbCrLf
strMensaje = strMensaje & "es de : " & salariodiario & vbCrLf
strMensaje = strMensaje & "Salario semanal: " & salariosemanal & vbCrLf
MsgBox strMensaje
End Sub
9
LAS ESTRUCTURAS DE CONTROL
La mayor parte de los programas parece que toman decisiones inteligentes y hasta cierto
punto lo son, esto se debe a que los programas toman decisiones lógicas por medio de
unos circuitos especiales llamados puertas lógicas, a nivel de programación son las
siguientes:
If condición Then
[Código]
[ElseIf condición-n Then
[Código] . . .
[Else
[Código]
End If
Es la estructura condicional más simple donde “condición” es cualquier cosa que devuelva
un valor lógico, en Visual Basic existe el valor de tipo booleano True (Verdadero) y False
(falso) pero también se pueden valores numéricos donde un valor igual a cero es falso y
cualquier valor diferente de cero es igual a verdadero el valor nulo (Null) también es
tomado como falso.
Ejemplo:
Sub Main ()
Dim intEdad
intEdad = 30
If intEdad <= 10 Then
MsgBox “Es necesario que se vacune contra el sarampión”
Else
MsgBox “Ya está muy grande para vacunarse”
End If
End Sub
La estructura SELECT permite ejecutar el código dentro de la sentencia CASE que sea
igual a expresión.
10
Ejemplo:
Sub Main ()
Dim intEdad
intEdad = 30
End Sub
La estructura While es un ciclo, esto quiere decir que todo lo que se encuentra dentro de
su cuerpo se repetirá mientras la condición sea verdadera.
Ejemplo:
Sub Main ()
Dim n
n=0
While n < 10
n=n+1
MsgBox n
Wend
End Sub
11
Para que este ciclo se ejecute la condición debe ser verdadera desde la primera vez,
algunas veces quisiéramos no validar la condición al principio si no al final para eso
podemos usar la siguiente estructura: Loop- While
Do
[statements]
[Exit Do]
[statements]
Loop [{While | Until} condition]
Ejemplo:
Sub Main()
Dim n
n=0
Do While n < 10
n=n+1
MsgBox n
Loop
n=0
Do
n=n+1
MsgBox n
„Salgo del ciclo antes de que se cumpla la condición
If n = 3 Then
Exit Do
End If
Loop Until n < 10
End Sub
La tercera estructura de control es la sentencia FOR – NEXT que es la más popular entre
los lenguajes de programación ya que hace muy simple y elegante el control de los ciclos.
12
Ejemplo:
Sub Main ()
Dim n
For n = 1 To 10
MsgBox n
Next
End Sub
Compárelo con el código del ciclo While, resulta un ejercicio interesante observar como
mejora la lógica del programa.
Estos ejemplos son muy sencillos si desea profundizar sobre estos consulte la referencia
del lenguaje VBScript que se encuentra en el CD de instalación de MyBusiness POS.
Función: clAT
Definición: Public Function clAT( ByVal strSearch, ByVal strText As String ) As Long
Propósito: Devolver la posición que tiene un conjunto de caracteres dentro de otra cadena
de caracteres.
Observaciones
Esta función se utiliza para buscar uno o más caracteres dentro de una cadena mas larga
Ejemplo:
If clAt( “Hola”, “Hola como están” ) > 0 Then
MsgBox “Hola”
End If
Función: Val2
Definición: Public Function Val2( uDato ) As Double
Propósito: Convertir dado en un valor numérico donde esto sea posible, por cualquier otro
motivo devolverá cero
Observaciones
Esta función es semejante a Val() de Visual Basic a diferencia de que ésta puede
transformar valores de tipo carácter en valores numéricos aun cuando incluyan formato o
valores tipo lógico en números cero o uno
Ejemplo:
nSuma = Val2( “142,123.25” ) + 15
13
Función: PadL
Definición: Public Function PadL( str, nVeces ) As String
Propósito: Rellena con espacios a la izquierda una cadena
Observaciones
Esta función es muy útil cuando se trata de alinear cantidades numéricas a la izquierda
haciendo coincidir el punto decimal
Ejemplo:
MsgBox PadL(“Le ponemos 50 espacios a la izquierda”, 50)
Función: clEmpty
Definición: Public Function clEmpty (cDato As String) As Boolean
Propósito: Devuelve verdadero en caso de que una cadena pasada este vacía o solo
contenga espacios en blanco.
Ejemplo:
strMensaje = “”
MsgBox clEmpty( strMensaje )
strMensaje = “Hola”
MsgBox clEmpty( strMensaje )
Función: strCero
Definición: Public Function strCero( nNumero As Long, nCeros As Integer )
Propósito: Devolver una cadena con un numero relleno con ceros a la izquierda
Ejemplo:
MsgBox strCero( 457, 7 )
Función: Question
Definición: Public Function Question (strMensaje As String) As Boolean
Propósito: Envía una caja de texto esperando una respuesta positiva o negativa a la
pregunta pasada como parámetro, devolviendo verdadero o falso según corresponda
Ejemplo:
If Question (“Desea continuar”) = False Then
Exit Sub
End If
Procedimiento: Out
Definición: Public Sub Out (cPuerto As Variant, cCode As Variant )
Propósito: Envía el String indicado en cCode al Puerto paralelo indicado en el primer
parámetro.
Ejemplo:
Out “LPT1”, “Esto se va directo a la impresora”
Función: Formato
Definición: Public Function Formato ( var, strFormat ) As String
Propósito: Trabaja exactamente como la función Format de Visual Basic, dando formato a
fechas y números.
14
Ejemplo:
MsgBox Formato( 1234.45, “##,##.00” )
MsgBox Formato( Date, “dd-MM-yyyy” )
Microsoft Access™
Microsoft SQL Server™
Sin embargo teóricamente se puede usar cualquiera por medio de un ODBC que es una
tecnología de Microsoft que significa Open Data Base Connectivity, las bases de datos
anteriormente mencionadas no se abren por medio de un ODBC ya que eso disminuye el
desempeño del programa se utilizan Acceso nativo o por medio de OLE DB que es otra
tecnología de Microsoft más eficiente que ODBC.
SQL es un lenguaje de consultas diseñado por IBM para facilitar la obtención de datos,
fue pensado originalmente para que los ejecutivos que usaban bases de datos, pero este
lenguaje se convirtió en un estándar de la industria abalado por la American Standard
Institute (ANSI), MyBusiness POS usa únicamente sentencias de SQL ANSI
La instrucción más usada en SQL es la instrucción SELECT que tiene la siguiente
sintaxis:
15
Ejemplos:
Si deseamos obtener un listado de productos ordenado por descripción y solo los que
tienen existencia:
SELECT descrip, articulo FROM prods WHERE existencia > 0 ORDER BY descrip
Estos son solo ejemplos de cómo se puede usar la sentencia select con una sola tabla
observe un ejemplo de cómo se haría con dos tablas:
Observe como después del comando FROM se colocan las tablas que se van a usar y
después del comando WHERE la condición por la cual se van a unir los campos
Funciones y procedimientos
Función: CreaRecordSet
Definición: Public Function CreaRecordSet( strSQL As String, Connection As
ADODB.Connection, Optional porPantalla As Bolean = True ) As ADODB.RecordSet
Propósito: Devolver un conjunto de registros de la base de datos
Observaciones:
Esta función es de las más utilizadas en el sistema, por medio de esta interactuamos con
la base de datos. Su primer parámetro es una sentencia SQL, esta sentencia debe de ser
únicamente de consulta, el segundo parámetro es la conexión con la base de datos de
donde se va a realizar la consulta, el último parámetro indica si los mensajes de error se
16
van a desplegar en la pantalla, o si se van a ignorar, en ambos casos en caso de error se
devuelve un objeto de tipo Nothing.
Ejemplo:
Set rstVentasDeHoy = CreaRecordSet( “SELECT * FROM ventas WHERE
f_emisión = „2003-01-01‟”, Ambiente.Connection )
Función: CreaRecordSetEnCliente
Definición: Public Function CreaRecordSetEnCliente( strSQL As String, Connection As
ADODB.Connection ) As ADODB.RecordSet
Propósito: Devolver un conjunto de registros de la base de datos con el cursor del lado del
cliente
Observaciones:
Esta función al igual que CreaRecordSet, tiene como propósito el devolver un conjunto de
registros pero utilizando los servicios de cursor del lado del cliente, simplificando con esto
la propiedad RecordCount o el numero de registros leídos si tiene valor con esta función.
Ejemplo:
Set rstVentasDeHoy = CreaRecordSetEnCliente( “SELECT * FROM venta
WHERE f_emisión = „2003-01-01‟”, Ambiente.Connection )
MsgBox rstVentasDeHoy.RecordCount
Función: TraeSiguiente
Definición: Public Function TraeSiguiente( campo As String, Connection As
ADODB.Connection, Optional ByRef nErrores As Long ) As Long
Propósito: Crear un consecutivo único para una tabla dada
Observaciones:
Esta función se utiliza para traer consecutivos, con esto no se depende de los
consecutivos creados de forma automática por el servidor de base de datos
Ejemplo:
nSiguiente = TraeSiguiente( “Venta”, Ambiente.Connection )
Función: PonLetra
Definición: Public Function PonLetra( Numero As Double, Leyenda As String,
bolDecimales As Bolean, Optional strMoneda As String = ””) As String
Propósito: Escribe la leyenda en letra de un número dado
Ejemplo:
MsgBox PonLetra( “1245.25”, “MONEDA NACIONAL”, True, “MN” )
17
Función: ExisteArchivo
Definición: Public Function ExisteArchivo( strArchivo ) As Boolean
Propósito: Devuelve verdadero si el parámetro dado es un archivo de disco
Ejemplo:
If ExisteArchivo( “C:\leame.txt” ) Then
MsgBox “Por favor lea el archivo leame”, vbInformation
End If
Procedimiento: EliminaArchivo
Definición: Public Sub EliminaArchivo( strArchivo )
Propósito: Elimina un archivo de disco
Ejemplo:
If ExisteArchivo( “c:\leame.txt” ) Then
EliminaArchivo “c:\leame.txt”
End If
Función: FechaSQL
Definición: Public Function FechaSQL( dFecha, Optional Connection As
ADODB.Connection ) As String
Propósito: Devuelve una cadena que representa una fecha para usarse con SQL Server
Observaciones
Ejemplo:
Set rstVentasDelDia = CreaRecordSet( “SELECT * FROM ventas WHERE
f_emisión” & FechaSQL( Date ), Ambiente.Connection )
Función: Prepara
Definición: Public Function Prepara( cString As String ) As String
Propósito: Cambia las comillas simples por unas dobles en un string
Ejemplo:
MsgBox Prepara (“‟Hola‟”)
Procedimiento: Eventos
Definición: Public Sub Eventos ()
Propósito: Realiza la misma función del método DoEvents de Visual Basic, que es la de
ejecutar los eventos pendientes del sistema. Utilizando este método se puede aparentar
multitarea o procesos concurrentes
18
Ejemplo:
Para iniciar con un reporte es necesario que abra el Business Manager en y busque la
carpeta Configuración – Personalización – Reporte de un clic en nuevo
Ejemplo de reporte:
19
Funciones y procedimientos especiales para la impresión en
Mybusiness pos
Procedimiento: IniciaDocumento
Propósito: Inicia el administrador de impresión de Windows
Ejemplo:
Public Sub Main()
IniciaDocumento()
..
..
FinDocumento()
End Sub
Procedimiento: FinDocumento
Propósito: Termina el documento que se va a imprimir
Ejemplo:
Public Sub Main()
IniciaDocumento()
..
..
FinDocumento()
End Sub
20
Procedimiento: FilledBox( bLeft, bTop, bWitdth, bHeight )
Propósito: Pinta una caja con relleno que inicia en bLeft y bTop indicando el ancho y largo
de la caja por medio de bWitdth y bHeight
Procedimiento: PaginaNueva
Propósito: Crea una página nueva de impresión y aumenta el contador de páginas en uno
if nRenglon > 55 Then
PaginaNueva
Call Encabezado ()
nRenglon = 10
j=1
end if
Picture "C:\SARA2.JPEG", 5, 2, 2, 2
Row (10)
Col (10)
FontBold True
21
Función: FontItalic( Italic )
Propósito: Activa la función de itálica para la fuente seleccionada, dependiendo si el
parámetro Italic está en verdadero o falso.
FontItalic True
Función: Portrait()
Propósito: Indica que la forma se va a imprimir en formato vertical
Portrait()
Función: LandScape()
Propósito: Indica que la forma se va a imprimir en formato horizontal
LandScape ()
22