Menú

Mostrar Mensajes

Esta sección te permite ver todos los mensajes escritos por este usuario. Ten en cuenta que sólo puedes ver los mensajes escritos en zonas a las que tienes acceso en este momento.

Mostrar Mensajes Menú

Mensajes - seba123neo

#2231
Programación Visual Basic / Re: Trabajar con FECHAS
12 Septiembre 2009, 04:17 AM
claro, lo que tenes que evaluar en el IF es si la fecha de hoy (Date) es mayor o igual a la fecha del pago del cliente, si es mayor o igual es porque le toca pagar y sino es porque todavia no llego a la fecha de pago.la fecha de inscripcion practicamente no importa es un dato mas solamente.ahora lo que tenes que hacer (no se si lo hiciste) es hacer una pantallita mas, donde puedas hacerle pagar al cliente (solo a los clientes que tienen que pagar) y asi aumentarle + 1 mes la fecha de pago, en algun lado tambien seria bueno que registres los pagos...en una tabla aparte podes hacerlo y registrar el id cliente, la fecha de pago, y demas datos que quieras, asi te queda un historial de pagos y hasta podes hacerte una pantalla para consultar los pagos de cada cliente.

saludos.
#2232
.NET (C#, VB.NET, ASP) / Re: Simular click de raton
11 Septiembre 2009, 01:53 AM
api mouse_event...
#2233
Programación Visual Basic / Re: Trabajar con FECHAS
11 Septiembre 2009, 01:46 AM
tenes que poner el numero de la columna donde esta la fecha de pago..quedaria algo asi en tu caso es la columna 7.

Código (vb) [Seleccionar]
Private Sub ColorearFecha()
    Dim vFechaPago As String
    Dim i As Integer
    Dim vColumna As Integer

    MSHFlexGrid1.Redraw = False
    For i = 2 To MSHFlexGrid1.Rows - 1
        For vColumna = 0 To MSHFlexGrid1.Cols - 1
            MSHFlexGrid1.Row = i
            MSHFlexGrid1.Col = vColumna
            vFechaPago = CDate(Format(MSHFlexGrid1.TextMatrix(i, 7), "dd/MM/yyyy"))
            If Date > CDate(vFechaPago) Then
               MSHFlexGrid1.CellBackColor = vbRed
            Else
                MSHFlexGrid1.CellBackColor = vbGreen
            End If
        Next vColumna
    Next i
    MSHFlexGrid1.Redraw = True
End Sub


proba eso, y fijate que hay algo mal ahi, porque el primer registro tiene la misma fecha de pago que la fecha de inscripcion, y deberia tener 1 mes mas o sea 09/11/2009, cuando das de alta debes guardar en ese campo 1 mes mas.en realidad te tendrian que salir todas en verde porque la fecha de hoy no es mayor a la fecha de 09/10/2009

saludos.
#2234
Programación Visual Basic / Re: Ayuda OCX
10 Septiembre 2009, 01:22 AM
lo unico que tiene adentro el OCX es esto:

Código (vb) [Seleccionar]
Public Function AddCirculo(X As Long, Y As Long, R As Long, C As Integer)
    PB.Circle (X, Y), R, QBColor(C)
End Function


pero debe tener algunas validaciones, porque si llegas a poner el ultimo parametro mayor a 15 te tira error, ya que los QBColor son de 0 hasta 15, si pones 16 te tira error.

pone por ejemplo 1000,1000,1000,1 y anda bien. pero ya te digo es algo muy basico debe tener mas validaciones, yo diria que te leas el manual de www.recursosvisualbasic.com.ar te enseña mas que lo que vi en esa pagina (que me perdone el dueño pero es mi opinion).

saludos.
#2235
Programación Visual Basic / Re: Trabajar con FECHAS
9 Septiembre 2009, 06:58 AM
es lo mismo simplemente yo lo hice asi nomas para que tengas una idea, pero bueno te explico:

Código (vb) [Seleccionar]
Private Sub ColorearFecha()
    Dim vFechaAlta As String, vFechaPago As String
    Dim i As Integer
    Dim vColumna As Integer

    MSHFlexGrid1.Redraw = False 'deshabilita el repintado para que no parpadee cuando se pintan las celdas
    For i = 2 To MSHFlexGrid1.Rows - 1 ' recorre las filas de la grilla
      For vColumna = 0 To MSHFlexGrid1.Cols - 1 'recorre las columnas de la fila actual
            MSHFlexGrid1.Row = i 'posiciona la fila actual
            MSHFlexGrid1.Col = vColumna 'posiciona la columna actual
            vFechaAlta = CDate(Format(MSHFlexGrid1.TextMatrix(i, 0), "dd/MM/yyyy")) ' saca la fecha de alta de la columna 0
            vFechaPago = DateAdd("d", 30, vFechaAlta) 'calcula la fecha de pago sumandole 30 dias a la fecha de alta
            If Date > CDate(vFechaPago) Then 'si la fecha actual es mayor a la fecha de pago es porque el tipo no pago
               MSHFlexGrid1.CellBackColor = vbRed 'marca en rojo
            Else
               MSHFlexGrid1.CellBackColor = vbGreen ' marca en verde
            End If
      Next vColumna 'siguiente columna
    Next i 'siguiente fila
    MSHFlexGrid1.Redraw = True ' habilita el repintado
End Sub


en la grilla debe haber otra columna( que seria otro campo en la base de datos) que guarde la proxima fecha de pago, la calculas directamente cuando das de alta el cliente, por ejemplo ahi vos diste de alta 2 clientes cuya fecha de alta es la misma, bueno cuando das de alta el cliente debes guardar tambien la fecha de proximo pago (que seria la fecha de alta + 30 dias). y en la grilla para estos 2 te quedaria que la fecha de proximo pago seria el 08/10/2009.eso es para cuando das de alta, ahora debes hacer una pantalla que sea para hacer pagar el cliente o desde un boton ahi nomas , ni idea como tenes pensado hacerlo, pero la idea seria que si paga por segunda vez otra vez le sumes a la fecha de pago otros 30 dias y asi sucesivamente cada vez que el cliente paga.la funcion esta la llamas despues de que cargas la grilla siempre.

saludos.

#2236
son los diferentes tipos de accesos a los archivos, Append, Input, Output...etc. lo que vos queres se hace con OutPut.

saludos.
#2238
Programación Visual Basic / Re: Trabajar con FECHAS
9 Septiembre 2009, 01:45 AM
Hola, un ejemplo para que veas como seria:

Código (vb) [Seleccionar]
Option Explicit

Private Sub Form_Load()
  With MSHFlexGrid1
     .FixedCols = 0

     .FormatString = "Fecha Alta|Nombre Cliente"

     .AddItem "07/09/2009" & vbTab & "Sebastian"
     .AddItem "08/09/2009" & vbTab & "Leandro"
     .AddItem "09/09/2009" & vbTab & "Cobein"
     .AddItem "01/06/2009" & vbTab & "Ivo"
     .AddItem "15/06/2009" & vbTab & "Karcrack"
     
     .ColWidth(0) = 1500
     .ColWidth(1) = 1500
     .RowHeight(1) = 0
  End With
  Call ColorearFecha
End Sub

Private Sub ColorearFecha()
   Dim vFechaAlta As String, vFechaPago As String
   Dim i As Integer
   Dim vColumna As Integer
   
   MSHFlexGrid1.Redraw = False
   For i = 2 To MSHFlexGrid1.Rows - 1
       For vColumna = 0 To MSHFlexGrid1.Cols - 1
           MSHFlexGrid1.Row = i
           MSHFlexGrid1.Col = vColumna
           vFechaAlta = CDate(Format(MSHFlexGrid1.TextMatrix(i, 0), "dd/MM/yyyy"))
           vFechaPago = DateAdd("d", 30, vFechaAlta)
           If Date > CDate(vFechaPago) Then
              MSHFlexGrid1.CellBackColor = vbRed
           Else
               MSHFlexGrid1.CellBackColor = vbGreen
           End If
       Next vColumna
   Next i
   MSHFlexGrid1.Redraw = True
End Sub


fijate ahi que esta la fecha de alta en cada cliente, lo recorre y se fija si la fehca actual es mayor a la fecha que debe pagar (fecha de alta + un mes).fijate que te los marca con color rojo los que se pasaron en la fecha de paga (Karcrack y Ivo )  :xD y los que todavia no les llego la fecha de pagar los marca en verde.igualemnte en la base de datos debes tener un campo que guarde la ultima fecha de pago, porque despues la fecha de alta una vez que ya pago no te va a servir mas, solo la primera vez sirve, pero despues te vas a tener que fijar en la fecha de ultimo pago, y para saber en que fecha debes fijarte te podes crear un campo que guarde si ya pago una vez o todavia no pago, me explico...si recien lo das de alta y no pago a ese campo le pones una "N" de nuevo, y fijas en la fecha de alta...y si ya pago una vez a ese campo le pones una "P" de pagado y entonces te fijas en la fecha de ultimo pago.

saludos.
#2239
¿¿ Skeletron ya creaste la bases de datos primaria ?? si queres yo te ayudo, tengo un proyecto que pasa de archivos de texto a una base de datos, para lo tuyo tendria que cambiar un par de cosas y ya tendrias la base de datos..si queres me pasas los archivos que tengas por meses de las efemerides y lo veo....tambien se me ocurrio que porias poner un campo en la base que diga que version de la base es la efemeride.por ejemplo el usuario tiene la version 1 y todas las efemerides tienen en ese campo un 1, en la version 1.1 de la base las nuevas efemerides tendran 1.1 para identificar que fueron agregadas en esa version y asi para todas, entonces podes hacer que cuando el usuario descarge una nueva version, podes colorear o identificar cuales son las nuevas efemerides con respecto a la version anterior.en algun lado tendrias que guardar la version que tenia antes y la que tiene ahora, y entonces si actualizo desde la version 1 a la 1.5 , tendrias que colorear todas las de 1.1,1.2,1.3,1.4...es solo una idea.

saludos.
#2240
Programación Visual Basic / Re: Ayuda OCX
8 Septiembre 2009, 23:38 PM
Hola, un OCX para dibujar un circulo ?, mejor mirate los metodos graficos de visual basic o api's para dibujar, y te ahorras un OCX....

saludos.