Foros del Web » Programación para mayores de 30 ;) » Programación General » Visual Basic clásico »

de msflexgrid otro

Estas en el tema de de msflexgrid otro en el foro de Visual Basic clásico en Foros del Web. mi problema es que tengo 2 msflexgrid en 1 puedo seleccionar los datos bien , tengo un boton que los exporta a otro msflexgrid , ...
  #1 (permalink)  
Antiguo 17/06/2009, 14:44
 
Fecha de Ingreso: junio-2009
Mensajes: 4
Antigüedad: 14 años, 11 meses
Puntos: 0
de msflexgrid otro

mi problema es que

tengo 2 msflexgrid en 1 puedo seleccionar los datos bien , tengo un boton que los exporta a otro msflexgrid , y tengo un boton que imprime todo lo seleccionado del segundo msflexgrid y que lo habia exportado desde el primero....

mi problema es que deseo agregar mas selecciones ejemplo ( tengo 5 selecciones y quiero agregar otra, pero el problema es que al agregar otro se me borra la primera seleccion ...¿ como puedo aumentar las selecciones sin borrar los anteriores??

aqui un ejemplo pero no me funciona como lo pido al seleccionar otros se borran los que ya habia seleccionado:

recursosvisualbasic.com.ar/htm/trucos-codigofuente-visual-basic/450-rango-de-celdas-en-flexgrid.htm


el codigo del formulario que selecciona:


Option Explicit

Dim cn As Connection
Dim rs As Recordset





' CommandButton que imprime los datos
'''''''''''''''''''''''''''''''''''''''''''''''''' '''''''''
Private Sub Command1_Click()


' imprime los registros eleccionados
Printer.Print MSFlexGrid2.Clip

' manda a imprimir
Printer.EndDoc
End Sub


' CommandButton que Selecciona todo el contenido
'''''''''''''''''''''''''''''''''''''''''''''''''' '''''''''
Private Sub Command2_Click()



With MSFlexGrid2



' borra la grilla
' si el rango es de una sola columna sale
If MSFlexGrid1.ColSel = MSFlexGrid1.Col Then
.Row = 1

.Cols = MSFlexGrid1.Cols
Exit Sub
End If

' encabezado igual al MSFlexGrid1
'.FormatString = MSFlexGrid1.FormatString

'Asigna la cantidad de filas seleccionadas del rango
.Rows = Abs(MSFlexGrid1.RowSel - MSFlexGrid1.Row) + 20

.FixedCols = MSFlexGrid1.FixedCols
.FixedRows = MSFlexGrid1.FixedRows





.Row = 1
.Col = 0

.RowSel = .Rows - 1
.ColSel = .Cols - 1
' copia los datos al otro flexgrid
.Clip = MSFlexGrid1.Clip



.ColWidth(0) = 1000
.ColWidth(1) = 4000


End With

End Sub

Private Sub Command3_Click()
impri.Show 1
End Sub

Private Sub Form_Load()


' nuevo objeto conection
Set cn = New Connection

cn.CursorLocation = adUseClient

' cadena de conexión a la base de datos biblio del directorio de visual basic
cn.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\" & _
"sistema\" & _
"ventas.mdb;Persist Security Info=False"

' abre la base de datos
cn.Open

' nuevo objeto recordset
Set rs = New ADODB.Recordset
' llena el recordset
rs.Open "Select Top 200 codigo,articulo,preciounitario From bodega", cn

MSFlexGrid1.FixedCols = 0
MSFlexGrid1.FixedRows = 1



' agrega tantas columnas tenga el recordset
MSFlexGrid1.Cols = rs.Fields.Count
' Lo mismo para las filas
MSFlexGrid1.Rows = rs.RecordCount + 1


Dim c As Integer

' recorre los campos del recordset
For c = 0 To rs.Fields.Count - 1

' Agrega los encabezados de columna al MsFlexgrid
MSFlexGrid1.TextMatrix(0, c) = rs.Fields(c).Name

Next

' Selecciona todas las celdas y columnas
MSFlexGrid1.RowSel = MSFlexGrid1.Rows - 1
MSFlexGrid1.ColSel = MSFlexGrid1.Cols - 1

' Asigna los datos del recordset al MsFlexGRid
MSFlexGrid1.Clip = rs.GetString(adClipString, -1, Chr(9), Chr(13), vbNullString)

' cierra y elimina las referencias
rs.Close
Set rs = Nothing
cn.Close
Set cn = Nothing

Command1.Caption = "Imprimir selección"
Command2.Caption = "Seleccionar"

Me.Caption = "Impresion Por selección"





End Sub

Última edición por raptorex; 17/06/2009 a las 14:53
  #2 (permalink)  
Antiguo 17/06/2009, 20:33
 
Fecha de Ingreso: abril-2009
Mensajes: 136
Antigüedad: 15 años
Puntos: 1
Respuesta: de msflexgrid otro

es sencillo al momento que le asignas revisa cual es la ultima celda llena y de alli partes yo en lo particular lo manejo con for y me sale bien........
  #3 (permalink)  
Antiguo 20/06/2009, 17:32
 
Fecha de Ingreso: junio-2009
Mensajes: 4
Antigüedad: 14 años, 11 meses
Puntos: 0
Respuesta: de msflexgrid otro

me podrias dar un ejemplo...por favor
  #4 (permalink)  
Antiguo 20/06/2009, 17:41
 
Fecha de Ingreso: abril-2009
Mensajes: 136
Antigüedad: 15 años
Puntos: 1
Respuesta: de msflexgrid otro

Raptorex seria algo asi

x= 0
for i = 1 to flex.rows - 1
if flex.textmatrix(i,columna llena) <> "" then
x=x +1
endif
next i

en el insert del flex 1 al flex 2
le indicas que la fila a tomar es x
  #5 (permalink)  
Antiguo 20/06/2009, 18:02
 
Fecha de Ingreso: junio-2009
Mensajes: 4
Antigüedad: 14 años, 11 meses
Puntos: 0
Respuesta: de msflexgrid otro

gracias men..!! funciono de maravilla
  #6 (permalink)  
Antiguo 21/06/2009, 10:20
 
Fecha de Ingreso: abril-2009
Mensajes: 136
Antigüedad: 15 años
Puntos: 1
Respuesta: de msflexgrid otro

no hay de que a la orden
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 04:26.