Publicado el Dejar un comentario

Solución a error: Trazador de Procesos

 

MyBusiness POS

Trazador de Procesos

Este error aparece porque se activa una casilla en la que el sistema hace una revisión de procesos internos.

Para solucionarlo, es necesario cambiar un valor del trazador de procesos de 1 a 0

Publicado el Dejar un comentario

Instalar SQL Server Management Studio 2012

Una vez descargado el programa de instalación, debes proceder a la instalación y cuando lo pongas a funcionar te mostrará una pantalla así.

sql_management_studio_2012

Pulsa en la primera opción (como puedes comprobar lo tengo en inglés): New SQL Server stand-alone installation or add features to an existing installation que viene a significar: Nueva instalación o añadir características a una instalación existente.

Al pulsar en esa opción me ha salido una ventana para aceptar los términos de licencia (License Terms). Después de aceptarlos, me ha mostrado una ventana indicando que hay actualizaciones disponibles. En este caso es el SP1 de SQL Server 2012.

sql_management_studio_2012_2

Me avisa de que necesitará reiniciar el equipo al finalizar la instalación, lo aceptamos y seguimos.

Vemos que están seleccionadas todas las opciones, pero hay algunas que no se pueden cambiar, supongo que serán de una instalación anterior.

sql_management_studio_2012_3

Fíjate en la opción “Management Tools” esa es la que permite instalar, entre otras cosas, el Management Studio. Pulsamos en siguiente.

Ahora nos pregunta el nombre de la instancia, dejamos los valores indicados.

(Es posible que estos pasos no los veas porque ya tengas esto instalado)

sql_management_studio_2012_4

Pulsamos en siguiente y nos pide que configuremos el servidor, yo lo he dejado como está. Pulsa en Siguiente.

sql_management_studio_2012_5

En el siguiente paso nos pide que configuremos el motor de bases de datos, principalmente la configuración del servidor, con idea de saber cómo nos “autenticaremos”, yo he elegido el modo mixto (por defecto está la autenticación de Windows). Ahí indica el password (contraseña) del administrador de SQL Server (sa) además de que puedes añadir algún otro usuario de Windows.

sql_management_studio_2012_10

Después de indicar la clave (no lo dejes en blanco, porque seguramente no te lo permitirá) le he dado a siguiente dejando los valores predeterminados de las otras pestañas.

El siguiente paso es indicar los reportes de error (Error Reporting) a mandar a Microsoft, selecciona lo que quieras o te muestre (si quieres) y pulsa en siguiente.

Ya no tienes que hacer nada más, salvo esperar a que se instalen las cosas y te pida reiniciar el equipo.

sql_management_studio_2012_12

Pulsa en OK (aceptar) y después tendrás que cerrar la ventana del instalador de SQL Server 2012 y la de la configuración.

Fuente: http://www.elguillemola.com/index.php/2013/07/instalar-sql-server-2012-management-studio-express

Publicado el Dejar un comentario

2 Herramientas para Programar MyBusiness POS

Esta herramienta es un administrador gráfico de base de datos y un software de desarrollo producido por PremiumSoft CyberTech Ltd. para MySQL, MariaDB, Oracle, SQLite, PostgreSQL y Microsoft SQL Server. Cuenta con un Explorador como interfaz gráfica de usuario soportando múltiples conexiones para bases de datos locales y remotas. Su diseño está pensado para satisfacer las diferentes necesidades de un amplio sector del public; desde administradores y programadores de bases de datos a diferentes empresas que dan soporte y o comparten información con clientes o socios.

Ingresar al Curso gratis HelpMBP

Navicat es una herramienta que permite navegar en la base de datos MyBusiness POS y hacer algunas modificaciones directamente. En esta ocasión voy a mostrar dónde se encuentra el código fuente de MyBusiness POS y algunas funciones que se pueden reutilizar en nuestros desarrollos. La ventaja de navicat es que podemos identificar un código específico con tan solo presionar las teclas (Ctrl + F)

Para comenzar, vamos a mencionar que, dentro de la base de datos “C:\MyBusinessDatabase\myBusinessPOS2012.mdf”, el código fuente se almacena en estas dos tablas:

  • formatosdelta. Almacena los formatos de impresión, reportes y procedimientos que se ven en el sistema MyBusiness POS (en el Business ManagerPersonalización).
  • formasdelta. Almacena las ventanas o formas que se identifican en el ambiente de desarrollo (Menu principal–Programación–Ambiente de desarrollo). Las ventanas se integran de dos partes :
    • Código: El código fuente se ve de manera similar al de formatos delta
    • Diseño: esta parte se ve en forma de caracteres que solo el ambiente de desarrollo interpreta, aunque con un poco de habilidad lo podemos manipular y funciona de la misma manera. Este código se presenta así:”Forma==13635==5760==-71895==2805====$$-$$ListView==3200==750==9875==0==lista====13$$-$$Grid==12660==4250==375==875==Grid====12$$-$$TextBox”


Bien, para llegar a estas dos tablas se hace lo siguiente:

  1. Una vez descargado e instalada la aplicación, se crea una nueva conexión hacia SQL ServerNavicat Premium0000
  2. Se abre una ventana que solicita los datos. Si el servidor está de forma local, se colocan de la siguiente manera:Connection name: Su nombreHost Name: .\SQLEXPRESSAuthentication: Sql Server AuthenticationUser name: saPassword: 12345678Navicat Premium0
  3. En caso de que el servidor se encuentre en otro equipo y escucha con el puerto 1400, se configura de la siguiente forma:Navicat Premium000Connection name: Su nombreHost Name:Su_Servidor\SQLEXPRESS, 1400Authentication: Sql Server AuthenticationUser name: saPassword: 12345678
  4. Presionar el botón “Test Connection” para verificar si todo está en orden. Después presionar OKNavicat Premium00
  5. Aparece el listado de base de datos. Seleccionar la base que nos interesa “C:\MyBusinessDatabase\myBusinessPOS2012.mdf” y se muestran las tablasnavicat1
  6. En navicat es posible filtrar el nombre de la tabla con solo escribir en la parte superior derecha. en este caso, escribir la palabra “Delta” y aparecen las dos tablas que nos interesan:Navicat Premium2
  7. Al seleccionar la tabla FormatosDelta, se pueden ver la lista de códigos fuenteNavicat Premium3
  8. Para ver el detalle, es necesario seleccionar la vista MEMONavicat Premium4
  9. Al seleccionar MEMO se puede ver el código completo de cada registroNavicat Premium5
  10. En el caso de la tabla FormasDelta, se puede ver el código fuente de las ventanas o formasNavicat Premium6
  11. De igual manera, al colocar la vista MEMO, se ven las funciones utilizadas por el ambiente de desarrolloNavicat Premium7
  12. Dentro de la tabla, en la columna frm se encuentra el diseño de la ventana, pero con muchos símbolos. Ahí se encuentran los controles y botonesNavicat Premium9
Publicado el 1 comentario

Disponibilidad del servicio SQL y puerto 1400

  1. Dirigirse al icono de inicio de windows y seleccionar en la carpeta de Microsoft SQL Server 2005/Herramientas de Configuración/Administrador de Configuración
  2. Le aparecerá una pantalla como la siguiente en donde se muestra que los servicios de SQL SERVER 2005 (se encuentran en el rectángulo rojo) están activados.  Si alguno esta en color rojo, lo debe seleccionar, dando un clic con el botón derecho y elegir Propiedades
  3. Le aparecerá una ventana, seleccione la pestaña Servicio, posteriormente Automático en el Modo de inicio. Dar un clic en Aplicar y en Aceptar.
  4. Verifique que el Puerto 1400 este liberado, siga las instrucciones:
  5. En el icono Protocolos for SQLEXPRESS, verifique si los protocolos de SQL Server están habilitados
  6. Seleccione el Protocolo TCP/IP, Clic con el botón derecho y elegir propiedades
  7. Debe seleccionar la pestaña IP Addresses, verifique que en la parte inferior tenga el Puerto Dinámico 1400

+ IP All

TCP Dynamic Ports      1400

En caso de que no esté o aparezca en blanco, colocar el número de puerto 1400.

Publicado el Dejar un comentario

Ejemplo Verificador de Precios personalizado


El siguiente bloque de código permite realizar la consulta al catálogo de productos, verl las características y agregar el artículo al punto de venta.
Este código se implementa en el ambiente de desarrollo, creas un formulario; en la pestaña diseño solo agregas las etiquetas y textbox.

'jofelchez@gmail.com Jose Felix WhatsApp 7222816462
'Ejemplo de verificador de precios
Option Explicit
Dim mcp,mcl,mcm
Dim mca
Dim mcc
dim Busqueda,cCondicion
dim ApruebaEliminar
dim rstArticulo,rstClavesadd
dim rstArt
dim nPartida,n

Sub Form_Load()
'Lista.visible = false
'Grid.RowMode = True
Grid.MultiSelect = True

Me.Caption = "Verificador de Artículos"

lblArticulo.font.size = 14
lblDescripcion.font.size = 14
lblPrecio.font.size = 14
lblUnidad.font.size = 14
lblPresentacion.font.size = 14
lblCantPres.font.size = 14
'txtArticulo.ForeColor = vbGreen

LimpiarVentana
end sub

Sub Text_KeyDown()

Dim rstProds

if ControlEvento.Tag = "txtArticulo" Then
If KeyCode = 40 Then
Set Busqueda = CreateObject ("MyBBusquedaArticulos.BusquedaArticulos")
Set Busqueda.Ambiente = Ambiente
Set Busqueda.Control = txtArticulo
Busqueda.MuestraForma
Set Busqueda = Nothing
txtArticulo.SetFocus
Exit Sub
End if

End If

If KeyCode = 27 Then
DescargaForma
End If

End Sub

Function FDecimal(dValor)
FDecimal = Replace(dValor, ",", ".")
End Function

Sub Text_LostFocus()

If ControlEvento.Tag = "txtArticulo" Then
LimpiarVentana
call VerificarArticulo(txtArticulo)

End If

End Sub

sub VerificarArticulo(Articulo)

Dim s, s_adicional
dim Presentacion, Cant_Presentacion
Presentacion = ""
Cant_Presentacion = ""

cCondicion = ""
if txtArticulo <> "" then
cCondicion = cCondicion & " and prods.articulo = '" & txtArticulo & "' "
end if
s_adicional = ""

s = ""
s = s & "SELECT "
s = s & "prods.articulo As 'Articulo', "
s = s & "prods.descrip As 'Descripción', "
s = s & "impuestos.impuesto As 'Impuesto', "
'If Ambiente.rstEstacion("conimpuesto") <> 0 Then
' s = s & " precio1 * (1 + ( impuestos.valor / 100 )) As 'Precio 1', "
' s = s & " precio2 * (1 + ( impuestos.valor / 100 )) As 'Precio 2', "
' s = s & " precio3 * (1 + ( impuestos.valor / 100 )) As 'Precio 3', "
' s = s & "prods.costo_u * (1 + ( impuestos.valor / 100 )) As 'Costo Ultimo', "
'else
' s = s & " precio1 As 'Precio 1', "
' s = s & " precio2 As 'Precio 2', "
' s = s & " precio3 As 'Precio 3', "
' s = s & "prods.costo_u As 'Costo Ultimo', "
'end if
s = s & " precio1 * (1 + ( impuestos.valor / 100 )) As 'Precio 1', "
s = s & " precio2 * (1 + ( impuestos.valor / 100 )) As 'Precio 2', "
s = s & " precio3 * (1 + ( impuestos.valor / 100 )) As 'Precio 3', "
s = s & "prods.costo_u * (1 + ( impuestos.valor / 100 )) As 'Costo Ultimo', "

s = s & "prods.existencia As 'Existencia', "
s = s & "prods.linea As 'Línea', "
s = s & "prods.marca As 'Marca', "
s = s & "Fabricante As 'Fabricante', "
s = s & "Unidad As 'Unidad', "
s = s & "Invent As 'Control Inventario', "
s = s & "ParaVenta As 'Para venta', "
s = s & "Bloqueado As 'Bloqueado', "
s = s & "Bloqueado As 'Granel' "
s = s & "FROM prods INNER JOIN impuestos ON impuestos.impuesto = prods.impuesto "
s = s & "WHERE prods.articulo <> 'SYS' "

s_adicional = s & cCondicion
s_adicional = s_adicional & " ORDER BY 'Descripción' "

'mymessage "" & s_adicional
'SetSessionValue Ambiente, "SQLPRODUCTOS", s
Set rstArticulo = CreaRecordSet( "" & s_adicional , Ambiente.Connection )
'Set rstArticulo = CreaRecordSet( "SELECT * FROM tickettext where NombreTicket = ", Ambiente.Connection )

If rstArticulo.EOF Then
Set rstClavesadd = CreaRecordSet( "SELECT * FROM clavesadd WHERE clave = '" & txtArticulo & "'", Ambiente.Connection )

If Not rstClavesadd.EOF Then
'mymessage "si hay presentacion " & rstClavesadd("articulo")
'Set rstProd = CreaRecordSet( "SELECT * FROM prods WHERE articulo = '" & rstClavesadd("articulo") & "'", Ambiente.Connection )
Set rstArticulo = CreaRecordSet( "SELECT * FROM (" & s & ") a WHERE Articulo = '" & rstClavesadd("articulo") & "'", Ambiente.Connection )
Presentacion = rstClavesadd("clave") & " - " & rstClavesadd("dato1")
Cant_Presentacion = Val2(rstClavesadd("Cantidad"))
End If

End If

If Not rstArticulo.EOF then 'clEmpty(rstArticulo("Artículo")) Then
txtArticulo = rstArticulo("Articulo")
lblArticulo = "Artículo: " & rstArticulo("Articulo")
lblDescripcion = "Descripción: " & rstArticulo("Descripción")
lblPrecio = "Precio: " & formato(rstArticulo("Precio 1"),"##,##0.00" )
lblUnidad = "Unidad: " & rstArticulo("Unidad")
if Presentacion <> "" then
lblPresentacion = "Presentación: " & Presentacion
lblCantPres = "Cantidad presentación: " & Cant_Presentacion
end if
End If

end sub

Sub NuevaPartida(rstArticulo, nPrecio)
on error resume next
Set rstVenta = Rst("SELECT venta FROM ventas WHERE venta = " & ParentObject.Venta, Ambiente.Connection)
'mymessage "" & rstArticulo & nPrecio
If rstVenta.EOF Then
SalvaVenta False
End If

Query.Reset
Query.strState = "INSERT"
Query.AddField "partvta", "clave", ""
Query.AddField "partvta", "prcantidad", 1
Query.AddField "partvta", "venta", ParentObject.Venta
Query.AddField "partvta", "articulo", rstArticulo("Articulo")
Query.AddField "partvta", "cantidad", 1
Query.AddField "partvta", "precio", nPrecio / ParentObject.tipoDeCambio
Query.AddField "partvta", "preciobase", rstArticulo("precio1") / ParentObject.tipoDeCambio
Query.AddField "partvta", "descuento", 0
Query.AddField "partvta", "impuesto", rstArticulo("valor")
Query.AddField "partvta", "observ", Trim(rstArticulo("Descrip"))
Query.AddField "partvta", "partida", 0
Query.AddField "partvta", "usuario", ParentObject.Ambiente.uId
Query.AddField "partvta", "usufecha", Date
Query.AddField "partvta", "usuhora", Formato(Time, "HH:mm:ss")
Query.AddField "partvta", "almacen", 1
Query.AddField "partvta", "lista", 1
Query.AddField "partvta", "caja", ParentObject.Ambiente.Estacion
Query.AddField "partvta", "estado", "PE"
Query.AddField "partvta", "devconf", 0
Query.AddField "partvta", "iespecial", rstArticulo("iEspecial")
Query.AddField "partvta", "kit", rstArticulo("kit")
Query.AddField "partvta", "costo_u", rstArticulo("costo_u")
Query.AddField "partvta", "costo", rstArticulo("costo")
Query.AddField "partvta", "donativo", rstArticulo("Donativo") / ParentObject.tipoDeCambio
Query.AddField "partvta", "invent", 1
Query.Exec

nPartida = LastInsertedId(ParentObject.Ambiente.Connection)

ParentObject.fg2.Redraw = False

For n = ParentObject.UltimaPartida To ParentObject.fg2.Rows - ParentObject.fg2.FixedRows
If clEmpty(fg2.TextMatrix(n, 0)) Then
ParentObject.fg2.TextMatrix(n, 10) = 1
ParentObject.fg2.TextMatrix(n, 0) = rstArticulo("Articulo")
ParentObject.fg2.TextMatrix(n, 1) = 1
ParentObject.fg2.TextMatrix(n, 2) = nPrecio / ParentObject.tipoDeCambio
ParentObject.fg2.TextMatrix(n, 3) = Formato(0, formatoDeDinero)
ParentObject.fg2.TextMatrix(n, 5) = Formato(rstArticulo("Valor"), Ambiente.FDinero)
ParentObject.fg2.TextMatrix(n, 6) = Trim(rstArticulo("Descrip"))
ParentObject.fg2.TextMatrix(n, 14) = Formato(rstArticulo("iEspecial"), Ambiente.FDinero)
ParentObject.fg2.Row = n
ParentObject.fg2.Col = 6
ParentObject.fg2.CellFontBold = True
ParentObject.fg2.Col = 1
ParentObject.fg2.TextMatrix(n, 7) = nPartida
ParentObject.fg2.TextMatrix(n, 8) = 1
ParentObject.fg2.TextMatrix(n, 9) = 1
ParentObject.fg2.TextMatrix(n, 12) = Val2(rstArticulo("costo_u"))
ParentObject.fg2.TextMatrix(n, 17) = Val2(rstArticulo("Donativo")) / ParentObject.tipoDeCambio

ParentObject.UltimaPartida = n
AjustaPartida (n)

Exit For

End If
Next

ParentObject.CantidadDeArticulos = 0
ParentObject.Peso = 0

CalculaImportes
ParentObject.fg2.Redraw = True

ParentObject.Peso = 0
End Sub

Sub Button_click()

Select Case ControlEvento.Tag
Case "cmdAgregarPartida"
'Agregamos la recarga al punto de venta a través de NuevaPartida
Set rstArt = Rst("SELECT prods.*, impuestos.valor FROM prods, impuestos WHERE prods.impuesto = impuestos.impuesto " & _
" and prods.articulo = '" & txtArticulo & "' ", Ambiente.Connection)
If not rstArt.EOF Then
'SalvaVenta False
NuevaPartida rstArt, Val2(rstArt("precio1"))
End If

End Select
txtArticulo.SetFocus
End Sub

Sub LimpiarVentana()
lblArticulo = "Artículo: "
lblDescripcion = "Descripción: "
lblPrecio = "Precio: "
lblUnidad = "Unidad: "
'if Presentacion <> "" then
lblPresentacion = " "
lblCantPres = " "
'end if
end sub