Programación General > Visual Basic 6.0 e inferiores
Ventana Con 30 Campos
F_Tanori:
--- Cita de: "Jose Arriagada" ---Tu solucion es bastante burda, por decirlo, suavemente. Pero soluciona tu problema. Que sea lo mas eficiente, es otra cosa.
Si tienes un minima nocion de gestion de base de datos, podrias haber modelo tu problema y asunto arreglado.
Por el icono del formulario, espero que no seas de CHILE, por que, deja bastante que desear tu solucion...
--- Fin de la cita ---
Mas que ayuda, parece reclamo, si ha preguntado creo que es porque desea orientacion y algo de apoyo, de alguien que pueda ofrecerlo
Siempre hay soluciones mas eficientes que otras, pero mientras se soluciones el problema muchas veces es suficiente (No es mi idea pero siempre es prioridad)
y creo que el que deja que desear es tu comentario, porque no veo nada de aporte :P, el que critica, propone si no que mejor no diga nada ;)
Saludos
Somos una comunidad
:beer:
cpmario:
Revisando tu pregunta y las formas que colocas, me doy cuenta por ejemplo: que difícilmente encontrarás 2 razones (de las 30) que se combinen (ley de propabilidad) pero si solo se requiere de una de esas razones para no haber entregado el paquete por ejemplo: "mal tiempo" que importaría si la dirección está incorrecta, o si el cliente está de huelga. si solo una razón cualquiera de estas 3 que menciono basta para que no se entregue (lo que sea que se entregue).
El problema que planteas pudiera solucionarse también, colocando todas las causas, de 'no entrega', en un ComboBox y seleccionando solo una de ellas, si hay varias causas, se seleccione la más relevante. El único problema sería que la causa fuera 'Otra', para lo cual habría que darle oportunidad al capturista que escribiera el motivo.
No entendí lo que Jose Arriagada quiso decir con:
--- Citar ---podrias haber modelo tu problema y asunto arreglado.
--- Fin de la cita ---
Espero nos ilustre con con su idea.
:comp:
UserCode:
compadres ya lo resolvi B) y viniendo corriendo a exponerlo, indico que es precisamente la solucion que dice el buen amigo F-Tanori :good:
La Tabla que guarda lo que está en el recuadro Azul tiene estos campos:
TR_SERVICIOS (este ID es unico)
TipoServicio
TipoGestion
Fecha
ID
IDSucursal
Dias_Habiles
CodRegion
Total1 --> Total (TextBox en amarillo, Pestaña 1)
Total2 --> Total (TextBox en amarillo, Pestaña 2)
Y la Tabla que guarda lo que está en el recuadro rojo es esta asi:
CAUSAS_NO_ENTREGADOS (este ID si permite repetirse)
ID
Motivo
TipoCNE
TipoServicio
IDSucursal
CodRegion
Cant
Y efectivamente como ha comentado el amigo F_Tanori a matriz se minimizó todo:
Matriz tanto para los Check como para los Text
Aqui sólo la parte de lo de matriz:
--- Código: Text --- For i = 0 To 48 If Text1(i).Text <> "" Then RsCNE.AddNew RsCNE("CodRegion") = RsConfig("CodRegion") RsCNE("TipoServicio") = SERVICIO If i >= 0 And i < 30 Then RsCNE("TipoCNE") = 1 'No Imp ElseIf i > 29 And i <= 48 Then RsCNE("TipoCNE") = 2 'Imp End If RsCNE("IDSucursal") = SUCURSAL RsCNE("ID") = LbID.Caption RsCNE("Motivo") = Check1(i).Caption RsCNE("Cant") = Text1(i).Text RsCNE.Update End If Next i
Eso del IF i >= 0 And i < 30 Then y el otro con i > 29 And i <=48 Then
es porque el la segunda tabla estoy colocando lo que está en ambas pestañas
y para que no se mesclen los datos de una con la otra, pues lo valido con un campo:
TipoCNE = 1 --> Es No Imputable
TipoCNE = 2 --> Es Imputable
El botoncito que dice LISTO hace la sumatoria de los Text que tengan dato:
Primera Pestaña: Causas No Entregados [No Imputables]:
--- Código: Text --- Dim TotalNoImp As Double TotalNoImp = 0 'No Imp: For i = 0 To 29 TotalNoImp = TotalNoImp + Val(Text1(i).Text) Next TxtTotalNoImp = TotalNoImp
El otro botoncito de LISTO de la otra pestaña:
Causas No Entregados [Imputables]:
--- Código: Text --- Dim TotalImp As Double TotalImp = 0 'Imp: For i = 30 To 48 TotalImp = TotalImp + Val(Text1(i).Text) Next TxtTotalImp = TotalImp
Asi restauro todos los check y text:
--- Código: Text --- For i = 0 To 48 Check1(i).Value = 1 Text1(i).Text = "" Next i
--- Citar --- Tu solucion es bastante burda, por decirlo, suavemente. Pero soluciona tu problema. Que sea lo mas eficiente, es otra cosa.
--- Fin de la cita ---
Burda = sifrino (no importa si ha sido por "decirlo suavemente")
Que sea lo más eficiente es la idea y lo que siempre se trata de buscar
--- Citar ---Si tienes un minima nocion de gestion de base de datos, podrias haber modelo tu problema y asunto arreglado.
--- Fin de la cita ---
R: digo lo mismo que el amigo cpmario sobre esto.
--- Citar ---Por el icono del formulario, espero que no seas de CHILE, por que, deja bastante que desear tu solucion...
--- Fin de la cita ---
El icono es de la empresa, en eso yo no tengo nada que ver.
Y no no soy de Chile y es triste que tal vez tu lo seas, porque tal vez yo no sea un erudito en la programacion o más aun en gestiones de bases de datos, pero al menos no soy pedante.
Te recomiendo que con el ultimo comentario, que en vez de decir lo que piensas, mejor piensa lo que dices, veras que en ese orden no te llevas la sorpresa de un posible disgusto o mal entendido por parte de las personas a quienes te expresas, modera mejor tus palabras para la proxima. O en su defecto mientras sigas con esa actitud (que no te conozco ni te he hecho nada) descarta u omite mis post en el futuro, haste de la vista gorda y lee y participa en el de los otros menos en uno que yo escriba.
A los demás muchachos muchass gracias, no me sorprende que el amigo F_Tanori apreciese con la solución, me alegra no haber pasado antes porque sino, la idea hubiese sido de él (por leerle) y no mia (al menos en esto) por la obsesión y gusto de ver como podía darle la mejor solucion a ello, concordamos en lo mismo y lo coroboro al verlo. :comp:
gracias muchachos :kicking:
UserCode:
cpmario:
--- Citar ---El problema que planteas pudiera solucionarse también, colocando todas las causas, de 'no entrega', en un ComboBox y seleccionando solo una de ellas, si hay varias causas, se seleccione la más relevante. El único problema sería que la causa fuera 'Otra', para lo cual habría que darle oportunidad al capturista que escribiera el motivo.
--- Fin de la cita ---
Oops!! se me habia pasado esta parte
Si yo pense en eso tambien, ponerlo todo en un combo pero el problema era el usuario tendria que estar desplegando el combo muchas veces, además al pulsar el boton guardar se guarda todo de una vez, con un combobox tendría que estar adjutando cada item del listado en alguna variable, tabla, etc.. para luego guardar. :(
Asi como ha quedado creo que esta muy bien porque eso de hacer una tabla co 30 campos, realmente no sé como saldrian los datos para un repote ya que no todos los campos se llenan, y hablando mas de Filas y no de Registros (para verlo mejor) no serviria en el reporte, aun colocando un largo WHERE Ausente<>"" AND .... en una sql validando cada campo de los 30 en la tabla, ya me daba vueltas todo de que asi no podia ser, tal vez si para el programa pero no para reporte alguno.
:hola:
Navegación
[*] Página Anterior
Ir a la versión completa