|
Esta sección te permite ver todos los posts escritos por este usuario. Ten en cuenta que sólo puedes ver los posts escritos en zonas a las que tienes acceso en este momento.
Mensajes - Jose Arriagada
Páginas: 1 2 3 [4] 5 6 ... 15
76
« en: Miércoles 18 de Enero de 2006, 22:09 »
Estimada UserCode
Antes de entrar de lleno en el tema, te felicito por tu avatar. Mas sugerente imposible.
Bueno, a lo nuestro.
Vamos a partir de cero.
Debe existir una tabla de productos, de la forma: * Codigo Producto * Descripcion * Valor * Stock Actual * Stock Minimo
Por otra parte, debe existir una tabla de ventas, de la forma: * Numero Caja * Numero Boleta * Fecha Boleta * Total Boleta
Y asociada a esta tabla, la tabla de detalle de la venta, de la forma: * Numero Caja * Numero Boleta * Codigo Producto * Cantidad Producto * Valor Producto
Entonces, ahora el proceso de venta:
Al iniciar una venta, en la pantalla la grilla de productos se encuentra en cero. Es decir, no existe nada.
A medida que se va pasando la pistola laser, que lee el codigo, se busca en la tabla de productos, y si se encuentra, muestra el codigo en la grilla, la descripcion y el valor del producto. El cursor se posiciona en la celda, donde se debe ingresar la cantidad del producto, lo que automaticamente genera que en la columna de sub-total, aparezca el valor de multiplicar el precio por la cantidad, y el cursor se queda esperando en la fila siguiente, por otro producto.
Cuando se termina de pasar todos los producto, se presiona el boton grabar, y es en ese momento que se graban los datos en la tabla de ventas y en la de detalle de ventas, y se imprime la boleta.
Este es el procedimiento mas facil.
Si deseas agregarle funcionalidades, puedes hacer que: - Elimine un producto, que el cliente no desea llevar. - Digitar el codigo del producto - Grabar los productos mientras se registran, para protegerse en caso de caida del sistema o apagon de energia. Con lo que seria posible, recuperar lo ya pasado por caja, y no tener que pasar todos los productos de nuevo.
Espero haberte dado una luz un poco mas clara referente a la forma de operar de una caja.
Ahora, si vemos la parte de construccion de la aplicacion, obviamente no puedes hacer referencias directas a tablas, dado que te traera todos los registros de esta.
Es aqui, donde entra a jugar las famosas sentencias SQL.
Dependiendo de la base de datos sobre la cual tengas tus datos, sera posibles realizar llamadas SQL a tus tablas, para traer un registro en particular o un set de registros dada una condicion determinada.
Ahora bien, la gracia esta, en usar el "ingenio" para resolver estos problemas, y conocer todas las propiedades, eventos y funciones que existen en Visual, sus controles y trucos posibles para resolver tu problema.
Por otra parte, antes de ponerte a diseñar tu aplicacion, debes realizar un "modelo" de lo que deseas hacer, lo que derivara en tu esquema de tablas necesarias para registrar tus eventos.
La programacion, dependera de tu nivel de conocimientos y la facilidad de los datos, dependera de tu gestor de base de datos.
Espero que tengas suerte, y animo, que no hay nada que no se pueda resolver con un poco de ingenio...
77
« en: Miércoles 4 de Enero de 2006, 19:37 »
Estas seguro?
Yo probe el mismo ejemplo, pero cambiando forecolor por backcolor, y funciono.
Ahora, debes tener claro, que no a todos los controles les puedes cambiar las propiedades de color. Es el caso de button control.
Usando este ejemplo, es el basico.
Se pueden cambiar los colores, pero usando funciones API de windows para otros controles.
Y eso estimado(a), es otra consulta...
78
« en: Miércoles 4 de Enero de 2006, 19:32 »
Lo que debes incorporar a "tu control" es el control commondialog, y en la propiedad de color, activar un evento que te dispare el commondialog con la propiedad ShowColor, y que rescates el color seleccionado.
79
« en: Miércoles 28 de Diciembre de 2005, 15:21 »
Private Sub Command1_Click() On Error GoTo control
For Each control In Form1 control.ForeColor = vbRed Next control Exit Sub
control: Resume Next End Sub
80
« en: Viernes 23 de Diciembre de 2005, 20:17 »
suma=timevalue(t1) + timevalue(t2) + timevalue(t3)
print Format(promedio, "hh:mm:ss")
81
« en: Viernes 23 de Diciembre de 2005, 20:15 »
Cambia
suma = TimeValue(t1) + TimeValue(t2) + TimeValue(t3)
Ahora te funcionara
82
« en: Lunes 12 de Diciembre de 2005, 19:53 »
Entonces, es asi de simple...
1° Hacemos una definicion logica de los pc involucrados 2° El PC que transfiere será el cliente (PC_C) 3° El PC que recibe, sera el servidor (PC_S) 4° El PC servidor, debe tener una carpeta compartida, con atributos de lectura y escritura. 5° El PC cliente, al ejecutar la orden de transferencia, debe crear una unidad de red, hacia la carpeta compartida del PC servidor. 6° Se realiza una copia del archivo desde el PC cliente hacia el PC servidor. 7° Al realizar la copiar, desconectas la unidad de red. 8° Listo
Para que veas como conectarte a una carpeta compartida (creando una unidad de red, y despues desconectarte, te adjunto un ejemplo super practico)
83
« en: Viernes 9 de Diciembre de 2005, 13:24 »
¿A que te refieres con enviar y recibir?
Quieres "transferir" un archivo de un PC a otro (Esto simplemente se utiliza unidades de red y comandos FileCopy) o
Quieres que exista "comunicacion" entre los PC y puedan enviar y recibir archivos entre ambos, y que estos archivos esten cifrados. Que al recibir los descifre? (Para esto requieres usar el control msWinsock)
Depende de tu respuesta, te puedo ayudar... a indicarte como puedes hacerlo... pero de ahi a entregartelo hecho... dificil...
84
« en: Miércoles 7 de Diciembre de 2005, 19:43 »
Private Sub Text1_KeyPress(KeyAscii As Integer) If KeyAscii = 13 Then sHora = Text1.Text If EsHora(sHora) = True Then 'CODIGO CUANDO LA HORA ES CORRECTA Else MsgBox "Hora incorrecta", vbInformation, "Advertencia" Text1.Text = "" Text1.SetFocus End If End If End Sub
Public Function EsHora(ByVal LaHora As String) As Boolean 'Verifica que tenga el separador de hora y minutos EsHora = False pos = InStr(LaHora, ":") If pos > 0 Then 'Obtengo la Hora sHora = Mid(LaHora, 1, pos - 1) 'Obtengo los minutos sMinutos = Mid(LaHora, pos + 1, Len(LaHora) - pos + 1) 'Verifico que sean numericos la Hora y Minutos If IsNumeric(sHora) And IsNumeric(sMinutos) Then 'Valido el rango de las horas If CDbl(sHora) >= 0 And CDbl(sHora) <= 23 Then 'Valido el rango de los minutos If CDbl(sMinutos) >= 0 And CDbl(sMinutos) <= 59 Then EsHora = True End If End If End If End If End Function
85
« en: Lunes 21 de Noviembre de 2005, 20:26 »
Recuerda que las funciones trigonometricas trabajan en base a radianes, por lo tanto, lo que debes hacer es transformar tu valor en angulos en radianes.
PI --> 180 (Si PI radianes, corresponden a 180 grados) x --> 30 (Cuantos radiantes, corresponden a 30 grados)
Entonces, en tu codigo, deberias colocar
pi = 3.1415 xcoseno = Cos(30 / 180 * pi) Print xCoseno
86
« en: Lunes 21 de Noviembre de 2005, 13:23 »
Estimado Martin,
Lamento informarte, que lo que estas pidiendo, es que te hagamos la tarea.
Situacion, que veo dificil alguien del foro realice.
La idea del foro, es atender dudas espeficas, o ayudarte en parte de codigo que no te funcione. Pero "hacerte" la pega... no lo creo.
87
« en: Lunes 14 de Noviembre de 2005, 19:23 »
Los modulos sirven para declarar variables globales, constantes, funciones y declaraciones de llamadas a APIS.
Esto es debido a que, en cada formulario, tu puedes declarar funciones locales al formulario, o locales a un evento. Lo mismo para las funciones.
Pero cuando deseas que algunas variables sean globales para todo tu proyecto, o que algunas funciones puedan ser accesadas por otros formularios, entonces, los modulos te permiten definir este.
(Estoy colocandome en el caso mas basico, por que, con un poco mas de conocimientos se pueden acceder a funciones, procedimientos y variables locales desde otros formularios. Pero eso es otro tema)
La diferencia en la declaracion de variables, es que localmente tu utilizas la sintaxis
DIM variable AS Tipo
En el modulo debes utilizar
GLOBAL variable AS Tipo
En los procedimientos y funciones, no existe gran diferencia. Lo unico es que hay que tener cuidado con los prefijos PUBLIC y PRIVATE, ya que ello indicara el ambito de aplicación de cada uno de estos.
88
« en: Viernes 11 de Noviembre de 2005, 13:28 »
Gracias por tu colaboracion
Voy a probar!!!!
89
« en: Jueves 10 de Noviembre de 2005, 17:43 »
Busca en la red el ocx marchoso.
Este control hace lo que requires...
Espero te sirva
90
« en: Martes 8 de Noviembre de 2005, 16:56 »
Tengo un cliente y un servidor, que se comunican con winsock.
El servidor funciona de maravilla. Responde a todo y controla toda. Cero problema.
El tema que me complica es lo siguiente: El cliente, tiene 3 (tres) botones - cmdConect - cmdSend - cmdClose
Si se presionan en forma consecutiva, y en la secuencia anteriormente descrita, todo funciona bien. Se comunica sin problemas con el servidor, y obtengo respuesta.
Pero, si en un solo boton, activo el evento click de cada uno de estos 3 (tres) botones, NO logro la comunicacion con el servidor.
Adjunto el codigo del cliente, para que lo prueben...
Option Explicit
Public Sub cmdClose_Click() cmdConnect.Enabled = True cmdSend.Enabled = False cmdClose.Enabled = False End Sub
Public Sub cmdConnect_Click() Winsock1.RemoteHost = "10.0.3.150" Winsock1.RemotePort = 1007 Winsock1.Connect txtRespuesta.Text = "" cmdConnect.Enabled = False cmdSend.Enabled = True cmdClose.Enabled = True txtMensajeEnviar.SetFocus End Sub
Public Sub cmdSend_Click() If Winsock1.State = sckConnected Then Winsock1.SendData txtMensajeEnviar.Text Label3.Caption = "Sending Data" Else Label3.Caption = "No se puede conectar a host" End If End Sub
Private Sub cmdStatus_Click() Label3.Caption = "Estado:" & Winsock1.State End Sub
Private Sub cmdTodosJuntos_Click() Call cmdConnect_Click Call cmdSend_Click Call cmdClose_Click End Sub
Private Sub Form_Load() txtMensajeEnviar.Text = "asdfasdfasdf" txtRespuesta.Text = "" Label3.Caption = "" txtIP.Text = Winsock1.LocalIP End Sub
Private Sub Winsock1_Connect() Select Case Winsock1.State Case 0: Label3.Caption = "Cerrada" Case 1: Label3.Caption = "Abierta" Case 2: Label3.Caption = "Escuchando" Case 3: Label3.Caption = "Solicitud pendiente" Case 4: Label3.Caption = "Resolviendo Conexion" Case 5: Label3.Caption = "Resuelta Conexion" Case 5: Label3.Caption = "Resuelta Conexion" Case 6: Label3.Caption = "Conectandose" Case 7: Label3.Caption = "Conectado" Case 8: Label3.Caption = "Cerrando" Case 9: Label3.Caption = "Error" End Select Label3.Caption = Winsock1.State & ":" & Label3.Caption End Sub
Private Sub Winsock1_DataArrival(ByVal bytesTotal As Long) Dim sData As String Winsock1.GetData sData, vbString txtRespuesta.Text = sData Label3.Caption = "Received Data" End Sub
Private Sub Winsock1_SendComplete() Label3.Caption = "Completed Data Transmission" End Sub
Si se dan cuenta, al presionar el boton cmdTodosJuntos, NO se activa el evento CONNECT del winsock.
Alguien sabe como resolver este tema?
91
« en: Viernes 7 de Octubre de 2005, 22:11 »
En un formulario de prueba inserta: - un control text, y con propiedad multiline=true - un control slider, cargando en referencias el Microsoft Windows Common Control 6.0 (sp) - un control combobox
Utiliza el siguiente codigo
Private Sub Combo1_Click() If Combo1.ListIndex >= 0 Then Text1.FontSize = Combo1.ItemData(Combo1.ListIndex) End If End Sub
Private Sub Form_Load() Text1.Text = "Coloca aqui todo el texto que deseas probar el Zoom" Slider1.Orientation = ccOrientationVertical Slider1.Height = Text1.Height Slider1.Min = 5 Slider1.Max = 100 For i = 5 To 50 Combo1.AddItem i Combo1.ItemData(Combo1.NewIndex) = i Next i
End Sub
Private Sub Slider1_Scroll() Text1.FontSize = Slider1.Value End Sub
92
« en: Lunes 3 de Octubre de 2005, 17:57 »
Estimados,
Genera una libreria DLL desde Visual Basic 6.0
En mi servidor ASP, se registro la libreria sin problemas. Se realizo una prueba de comunicacion, y la libreria logro responder sin problemas, pero cada vez que llamo a la libreria se detiene el servicio IIS.
La libreria lo que hace es simplemente es tomar dos valores, y devolver las cuatro operaciones (suma, resta, multiplica, divide).
Alguien me puede dar luz, referente del porque se esta deteniendo el servicio IIS?
93
« en: Martes 27 de Septiembre de 2005, 17:39 »
Te adjunto un ejemplo, que se compone de: - 1 Cliente - 1 Servidor
El servidor es capaz de soportar multiples conexiones.
Tu ves el codigo, y lo adaptas a tu necesidad.
Espero te sirva.
94
« en: Miércoles 7 de Septiembre de 2005, 18:01 »
Si tus registros tienen algun campo que se indice, entonces, si puedes hacerlo, utilizando el primer y ultimo indice obtenido de la primera consulta. Posteriormente, al presionar "SIGUIENTE", tu consulta comienza desde el indice ULTIMO de la consulta ANTERIOR.
Otra modalidad es, crear una pila de datos que contengan, el primer y ultimo registro, y que el posicionador de la pila, el el contador de botones SIGUIENTE y ANTERIOR.
96
« en: Viernes 19 de Agosto de 2005, 18:08 »
Hola estimados,
Mi consulta concreta:
Tengo un arbol (treeview) con "x" nodos con la propiedad checkbox en TRUE.
Existe alguna funcion, propiedad, tips o lo que sea, que me permita dejar ENABLED=FALSE un nodo en particular?
Cualquier ayuda es bienvenida.
Gracias por su futura colaboracion
97
« en: Lunes 25 de Julio de 2005, 16:18 »
Podrias ser mas especifico con el tipo de control que deseas. Tengo muchos, pero ninguno con "ese" nombre. Si indicas que deseas que haga, quizas lo tenga entre mis "cachureos"
98
« en: Miércoles 20 de Julio de 2005, 22:02 »
Utiliza el control msscript que permite evaluar expresiones matematicas. Es facil de usar, y de acuerdo a la modalidad que dices operarar (por medio de un archivo donde tienes los valores y la ecuacion), con este control te sera super facil.
Ahi te va un codigo de ejemplo, para que lo estudies y decidas.
Suerte
99
« en: Lunes 11 de Julio de 2005, 23:11 »
Un proceso de la naturaleza que explicas, es posible, pero se supone que el gestion datos lo debe solucionar y no tu, por medio de alguna consulta SQL.
Por otra parte, ¿por que se cae el servidor primario?, que tengas que tener un servidor secundario para trabajar. Hay algo dentro de tu configuracion de trabajo que no esta bien. Un servidor NUNCA debiera caerse.
100
« en: Viernes 17 de Junio de 2005, 21:42 »
Páginas: 1 2 3 [4] 5 6 ... 15
|
|
|