Buenos días.
Necesito realizar Macrosustitucion en Visual Basic 2010, para realizar ciclos iteractivos con n variables.
Gracias por su tiempo.
| |||
Macrosustitucion en Visual Basic 2010 Buenos días. Necesito realizar Macrosustitucion en Visual Basic 2010, para realizar ciclos iteractivos con n variables. Gracias por su tiempo. |
| |||
Respuesta: Macrosustitucion en Visual Basic 2010 Buenos dias. La Macrosustitucion es para realizar ciclos iteractivos con n variables dentro de la ejecucion del programa. Ejemplo: tengo 15 textbox que si tienen datos realizo la misma operacion. Puedo validar cada uno de ellos y realizar la misma operacion, pero si puedo utilizar la macrosustitucion como se hacia en foxpro, me ahorraria unas cuantas lineas de codigo: Seria algo asi como: For i=0 To 15 txtTexto = "textbox" & i if txtTexto.Text <> "" Then function Operacion(txtTexto.Text) End If Next Cómo haria esto? Gracias por su tiempo. |
| ||||
Respuesta: Macrosustitucion en Visual Basic 2010 Eso es Recursión dentro de basic se usa procedimientos para recorrer los datos, por ejemplo
Código vb:
Ver original |
| |||
Respuesta: Macrosustitucion en Visual Basic 2010 Muy bueno lo que me escribes, pero, cómo paso los valores de los textbox a otra funcion, que es la misma para todos los textbox? |
| ||||
Respuesta: Macrosustitucion en Visual Basic 2010 Envias el textbox completo, si te das cuenta yo utilizo un for each definiendo la variable C as Control, un textbox es un Control, entonces C es un control del tipo textbox con todo y sus propiedades, fijate en el procedimiento anterior , y ves cuando hago un Ctype(c,textbox).text estoy accesando al control, y le digo con Ctype que lo interprete como un textbox y si se puede interpretar, puedo acceder a su propiedad Text, en el caso de string.isnullorEmpty verifico si el text del control (textbox) esta vacio si es asi, envio el objeto completo a un procedimiento vinculaerror(c) donde vincula error espera un parametro tipo control y ahi lo valido, mira el proc de validación
Código vb:
Ver original Date cuenta de otra cosa primero verifico o trato de ver si es un tipo de control con TypeOf y lo comparo si es un combobox que haga un tipo de verificacion y si es un tipo textbox que verifique la propieda text, ahora con datetimepicker seria asi
Código vb:
Ver original |
| |||
Respuesta: Macrosustitucion en Visual Basic 2010 Ahora lo veo mas claro, pero otra pregunta, en la instruccion CType(C, CONACC.TextBoxAlfanumerico).Text), quien es CONACC.TextBoxAlfanumerico)? Gracias por tu tiempo. |
| ||||
Respuesta: Macrosustitucion en Visual Basic 2010 Ahh, es como lo dije en un principio yo tengo creados objetos personalizados o sea cree un dll con herencia del textbox de microsoft y extendi sus propiedades , por eso tengo que compararlo con el tipo de mi dll y no con un textbox de microsoft, que al final de cuentas es de microsoft pero extendi sus propiedades y cree otras, como en el combobox que te dije, hice una clase que hereda de combobox y adicione un procedimiento que se llama isvalidseleccion donde comparo y devulevo un valor, despues hice una referencia en el proyecto a mi dll y en las herramientas cree una nueva pestaña, e importe la dll, y me detecto cada control, asi lo jalo al form. checate la clase del combobox, es un clase, despues genero el proyecto y genera la dll
Código vb:
Ver original En si no deberias de haber visto el conacc.textboxalfanumerico, pero se me olvido corregir tambien este, porque la validacion del tipo typeof del combo en mi codigo en realidad es asi
Código vb:
Ver original pero se me paso hacerlo con el textbox, ups, pero espero te sirva. y si te das cuenta hay una redundancia entre las cosas que se hacen, que justamente ahora me di cuenta, el combobox que anteriormente puse el codigo, tiene una funcion que se llama Valido, y yo cree un proc que anteriomente tambien puse para validarlo, que es el for each etc etc, esto es porque este codigo no lo cree yo todo, o sea, lo eh estado modificando, pero su creador ya creo estas propiedades, ojo me acabo de dar cuenta, jajaja, changos. |
| |||
Respuesta: Macrosustitucion en Visual Basic 2010 Increible el procedimiento que me escribes. Me sirve para pasar el valor de un textbox a otro procedimiento. Ahora, necesito pasar varios textbox a otro procedimiento, dependiendo si un textbox tiene datos o no. Me explico. Tengo una factura con varios renglones, 10 en total. Los textbox de cada renglon son: Renglon 1: txtCantidad1, txtDescripcion1, txtTotalRenglon1 Renglon 2: txtCantidad2, txtDescripcion2, txtTotalRenglon2 Renglon 3: txtCantidad3, txtDescripcion3, txtTotalRenglon3 y asi sucesivamente. Como hago para, con este procedimeinto, pasar los 3 valores de cada renglon al otro procedimiento? |
| ||||
Respuesta: Macrosustitucion en Visual Basic 2010 Bueno, aqui ya nos metemos a los arreglos, en programación orientada a objetos, no se como estes llevando tu aplicación, asi que te dare la forma sencilla de hacerlo, tu procedimiento puede esperar un tipo DataTable, y lo que haces es al Datatable agregarle columnas y filas dependiendo si los textbox tienen valores, algo asi
Código vb:
Ver original ahora solo creas las filas y le agregas valores
Código vb:
Ver original y en tu procedimiento que espera estos valores le pones
Código vb:
Ver original es un ejemplo tendras que darle forma, ahora tambien puede crear arreglos, esta parte es mas complicada, pero mucho mas escalable o sea mas facil de modificar despues, y tambien puedes pasar tipos arralist pero eso depende de que estes haciendo, como estas con tu aplicación, cual es tu mira, ya tienes codigo y lo estas modificando, estas empezando etc. |
| |||
Respuesta: Macrosustitucion en Visual Basic 2010 Gracias por la ayuda. Ahora solo me queda darle forma segun los requerimientos de mi aplicacion. Caulquier duda, nos vemos por aqui. De nuevo, gracias por tu tiempo y colaboración. |
Etiquetas: |