GeneXus - Copiar datos de grid a otro

   
Vista:

Copiar datos de grid a otro

Publicado por Aroldo (103 intervenciones) el 19/01/2011 04:20:56
Buenas foro.

tengo una transaccion (Notas de Credito), cuya funcion es buscar una factura posteada anteriormente de la cual se quiere regrersar x producto.

lo que quiero hacer es insertar otro grid donde se copien los datos del primer grid que sean seleccionados para poder editar los calores de la cantidad de producto facturado, luego cuando se de click en un boton que guarde la el registro y que me abra un reporte donde me de la informacion del registro guardado...

no se si es la mejor manera de hacerlo, si sabes de otra manera de como hacerlo avisen...

desde ya gracias por su ayuda..
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:Copiar datos de grid a otro

Publicado por Aroldo (103 intervenciones) el 19/01/2011 18:28:54
Saludos de nuevo.

Consultando por hay me dijeron que podia hacerlo con un SDT (Structure Data Type), pero lo que aun no se es como mandar las lineas del grilla que tengan el check al SDT...
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Copiar datos de grid a otro

Publicado por Alejandro Araus (10 intervenciones) el 19/01/2011 18:51:51
Puedes recorrer la grilla con un for each line y preguntar si el check esta marcado

en caso de estar marcado, agregas al SDT...

saludos
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Copiar datos de grid a otro

Publicado por Aroldo (103 intervenciones) el 19/01/2011 19:29:10
eso es lo que no se como se hace.. puedo recorrer el grilla pero no se como copiarlo al SDT
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Copiar datos de grid a otro

Publicado por Alejandro Araus (10 intervenciones) el 19/01/2011 21:35:48
Supongamos que el check que esta en la grilla se llama &Sel y en caso que este seleccionado tiene valor "S"

For each line
If &sel = 'S'
&SDT09Item = New()
&SDT09Item.CodAux = 1
&SDT09Item.DesAux = 'Descripción elemento'
&SDT09.Add(&SDT09Item)
EndIf
EndFor

// &SDT09 es un SDT que tiene marcado el Check "Is collection"

Cualquier duda me comentas...
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Copiar datos de grid a otro

Publicado por Julio (301 intervenciones) el 19/01/2011 23:12:28
En tu post inicial dijiste que tienes una Trn Notas de Crédito, si esto es verdad debo decirte que en una Trn no puedes aplicar un for each line a la misma tabla eso lo puedes hacer en un Wkp, lo que tratas de hacer te resultará muy sencillo de resolver a través de un Wkp e incluyendo también algún procedimiento. Si aún no tienes muy claro el uso de SDT déjalo para después. No siempre la solución debe ser complicada, en la mayoría de los casos es más sencillo de lo que parece y lo que se necesita es plantearse bién lo que se quiere.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Copiar datos de grid a otro

Publicado por Aroldo (103 intervenciones) el 19/01/2011 23:32:35
Es como tu dices Julio, me comentaba un amigo que puede ser mas sencillo pasar la transaccion a un WKP, pero aun no se como copiar los registros de un grilla a otro, pero tambien me dijo que es bastante complejo hacer esta parte del sistema, porque una ves se haga la devolicion de un producto eso me debe afectar el cierre de caja o el credito del cliente, eso dependiento del tipo de pago de factura y tambien devolver la cantidad de producto que regresa el cliente al inventario...
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Copiar datos de grid a otro

Publicado por Julio (301 intervenciones) el 20/01/2011 00:01:36
Haber, las cosas solo son complejas mientras no se las conoce.
Te voy a hacer algunas preguntas para ver si lo que creo que quieres hacer es así mismo.
Tienes una factura ya despachada y se va a hacer una devolución o anulación de toda la factura?
Tienes una factura ya despachada y se va a hacer la devolución solo de algunos items de la factura?

Talvéz cuando estas haciendo la devolución quieres hacerlo solo en parte?, es decir, si en un item tengo diez lápices vendidos, solo quieres modificar la cantidad vendida por ejemplo ya no son diez sino cinco?

Además, me gustaría saber que otros procesos deberían reversarse al hacerce una devolución.
Tengo la sospecha de lo que intentas hacer, y no es difícil, si logras explicarte con un poco más de claridad también te podré dar una ayuda más exacta.

Ah, se me olvidaba, cuéntame exactamente para qué quieres pasar los datos de una grilla a otra (eso podría ser un poquito largo pero muy sencillo de hacer)
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Copiar datos de grid a otro

Publicado por Aroldo (103 intervenciones) el 20/01/2011 01:31:49
ok contestando tus preguntas Julio.

Tengo una Factura ya despachada y se va a hacer una devolucion de algunos o todos los items, por cada item que se quiere regresar se puede hacer toda la cantidad que llevaba o solo una parte, por ejemplo, una factura de 10 lapices, 10 borradores y 10 marcadores, el cliente quiere regresar 5 lapices, 2 borradores y todos los marcadores.... los otros procesos que deven reversarce son:

1. regresar la cantidad del producto devuelto al inventario
2. si la factura es al contado que se reste ese valor en el cierre de caja, en una cuenta especifica (Fondos Operativos en este caso.)
3. Si la factura fue al credito, que el valor de los productos devueltos se reste de la cuenta de credito del cliente.

para contestar lo de los dos grid te explico lo siguiente.

tengo una transaccion donde busco el numero de factura de la cual se quiere hacer una devolucion, automaticamente me va a cargar el nombre del cliente de la factura y el detalle (lista) de los productos facturados, supongo que los datos del grid (listado de productos) va a salir bloqueado porque lo obtengo con el numero de factura (no se si sera asi), si cambio los valores de las cantidades de los productos eso se guarda en la transaccion de facturas, no quiero eso, sino que se guarde en la transaccion de Notas de Credito, por eso pensaba pasarlo a otro grilla, uno con los datos de la factura y otro que se guarda en la transaccion de notas de credito, lo quiero hacer asi porque luego de eso tengo que crear un reporte (estado de cuenta) en donde muestro todos los movimientos de un producto, desde cuanto habia en inventario, listar las ventas que se han hecho de ese producto asi como tambien las compras y devoluciones.

saludos.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Copiar datos de grid a otro

Publicado por Julio (301 intervenciones) el 20/01/2011 02:40:28
OK, ahora sí tengo claro lo que necesitas, te voy a describir cómo yo lo haría.

Primero, tendría un Wkp(1) con una grilla en la que tengo las siguientes columnas: FacturaId, FacturaFecha, ClienteId, ClienteNombre, FacturaTotal.
El Att. ClienteId lo tendría oculto (hidden) porque ese dato es transparente para el usuario, en la parte superior del Wkp pondría una variable &BuscarFactura y otra &BuscarCliente que estarían ubicadas justo encima de las columnas con los datos correspondientes, para que funcione la búsqueda debes declarar en Conditions (de la grilla) lo siguiente:

FacturaId = &BuscarFactura or &BuscarFactura.IsEmpty();
ClienteNombre like &BuscarCliente or &BuscarCliente.IsEmpty();

En el lado derecho de la grilla tendré un botón rotulado "Reprocesar" el mismo que enviándole FacturaId me llevará a otro Wkp(2).

Segundo, el Wkp(2) lo diseñaré lo más parecido a la Trn original (es decir con una grilla) por donde se crea la factura, con las siguientes diferencias: la cantidad de artículos vendidos por línea la cargaré en una variable &ArticuloCantidad sobre la cual yo pueda editar ese valor, agregaré también otra variable &OldCantidad que llevará el mismo valor pero oculta en la grilla (hidden) en la que también se cargará la cantidad de items vendidos, agregaría también una variable, digamos &Eliminar N(1) pero en la grilla la mostraría como un CheckBox con valor de cero o uno, cuando se haga click sobre esta variable significará que el item completo será devuelto, deberás poner si es del caso los valores de los atributos que indican si es a crédito/contado, cobra IVA, etc. pero cargadas también en variables para que puedan ser modificadas.

Viéndolo así, cuando presiones el botón Confirmar, y dependiendo del evento al que lo hayas asociado (ahora viene lo bueno), deberás realizar las validaciones del caso, como por ejemplo: que la cantidad que modificaste no sea mayor a lo que se vendió (comparas &ArticuloCantidad con &OldCantidad), y alguna otra cosa que creas, pero si a lo mucho lo que modificas es la cantidad no habría más que validar.

Si te gusta la idea sería bueno que lo inicies y luego me avises para continuar...
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Copiar datos de grid a otro

Publicado por Clara (1 intervención) el 13/06/2012 14:27:55
A mi me interesa, quisiera hacer eso, me podrias ayudar!
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Copiar datos de grid a otro

Publicado por Elvin Peralta (7 intervenciones) el 09/08/2012 18:48:25
Julio, tengo un problema parecido, quisiera saber si me puedes ayudar porfavor. Gracias de antemano.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar