FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
#1
|
|||
|
|||
Ayuda con un buscador en un StringGrid
Buenas noches, mi nombre es Johnatan y tengo una duda amigos
desarrolle un buscador de texto para un stringgrid pero tengo un problema, yo ingreso lo que yo quiera, despues lo busco por su cedula, y al buscar otro item me dice que no existe... ¿me podrian hechar una mano?( El fin de esto es que yo ingreso personas, y las tengo que buscar por su cedula) este es el codigo de mi busqueda Código:
void __fastcall TForm10::Button1Click(TObject *Sender) { int p; for (p=1;p<=Form5->StringGrid1->RowCount;p++){ if (Edit1->Text == Form5->StringGrid1->Cells[3][p]){ Form9->Nombre->Text = Form5->StringGrid1->Cells[1][p]; Form9->Apellido->Text = Form5->StringGrid1->Cells[2][p]; Form9->CI->Text = Form5->StringGrid1->Cells[3][p]; ShowMessage("Se ha encontrado al Paciente"); p=0; Form9->ShowModal(); Close();} if (Edit1->Text != Form5->StringGrid1->Cells[3][p]){ShowMessage("El Paciente no existe"); Edit1->Text=""; p=0;} break; } } Última edición por Casimiro Notevi fecha: 03-08-2012 a las 09:57:27. |
#2
|
||||
|
||||
Hola Henoc y bienvenido a Club Delphi
Como a todos los que se inician te invitamos a que leas nuestra guía de estilo. Yo haría: Código:
#define COL_CEDULA 3 bool ExistePaciente(TStringGrid *SG, AnsiString Nombre) { bool Existe = false; for(int i = SG->FixedRows; i < SG->RowCount && !Existe; i++) if(SG->Cells[COL_CEDULA][i] == Nombre) Existe = true; return Existe; } /* Llamada de ejemplo: */ void __fastcall TForm1::btnBuscarClick(TObject *Sender) { if(ExistePaciente(StringGrid1, Edit1->Text)) ShowMessage("Existe"); else ShowMessage("No existe"); }
__________________
Daniel Didriksen Guía de estilo - Uso de las etiquetas - La otra guía de estilo .... |
#3
|
|||
|
|||
Antes de todo, muchas gracias por tu ayuda ecfisa, veo que eres bastante profesional con este programa
referente a tu codigo, se lo que quieres hacer, como y con que xD, entendi todo tu codigo pero mi problema es ahora adaptarlo al mio, es decir, no se donde colocar las cosas(como dije soy bastante nuevo en el tema de c++ build referente a puntadores y demas), yo casi que el mes pasado estoy saliendo de pascal xD mas o menos asi esta arreglado mi codigo: Cita:
Cita:
tambien, y disculpa la molestia, sabrias decirme donde esta el error en mi codigo? (el del post), por que busca una vez perfectamente y a la segunda me dice que no existe? |
#4
|
||||
|
||||
Cita:
Te adjunto un ejemplo funcionando para que puedas revisar con tranquilidad como es la estructura y ubicación de funciones y demás. El ejemplo realiza la búsqueda sobre la columna 3 en cuyas celdas pongo los nombres de meses del año a fin de simplificar ya que el tipo de dato no altera en absoluto el procedimiento de búsqueda. Está realizado en Builder C++ 6. Saludos.
__________________
Daniel Didriksen Guía de estilo - Uso de las etiquetas - La otra guía de estilo .... |
#5
|
||||
|
||||
Muchas gracias por tu ayuda eficsa, sinceramente has sido de gran ayuda, pero si no es molestia se me presento un problema con las fechas..
veras el profesor me mando un buscador "Paciente con fecha de nacimiento iguales a:" y "Pacientes con fecha de nacimiento menores a:" sinceramente se me ha complicado como no tienes idea, ya eh buscado en google y hasta aqui en el foro xD, asi es como lo eh hecho: en clases.h tengo esto puesto Cita:
Cita:
///Form15->StringGrid1->Cells[1][x] = Form5->StringGrid1->Cells[1][x]; es donde quiero almacenar la busqueda (col 1 es Nombre del Paciente) y al final de todo en la forma 15, donde quiero realizar la busqueda con el boton Cita:
Cita:
|
#6
|
||||
|
||||
Hola Henoc.
Segun entiendo el problema se resume a pasar columnas de un TStringGrid (origen) a un TStringGrid (destino), para lo cuál debes basarte en la elección previa de un criterio que puede ser:
Creo que lo más sencillo es usar un TEdit para ingresar la fecha y un TComboBox para seleccionar el criterio y cuyos Items sean:
Entonces podrías hacer: Código:
#define COL_FENAC 6 void PacientesXFecha(TStringGrid *Orig, TStringGrid *Dest, TDate aDate, char TC) { int n = Dest->FixedRows, r; /* Limpiar destino */ for(r = n; r < Dest->RowCount; r ++) Dest->Rows[r]->Clear(); /* Copiar datos */ for( r = Orig->FixedRows; r < Orig->RowCount; r++) { // Igual a if(TC == 0 && StrToDate(Orig->Cells[COL_FENAC][r]) == aDate) { for(int c= Dest->FixedCols; c < Dest->ColCount; c++) Dest->Cells[c][n] = Orig->Cells[c][r]; n++; } // Menor a if(TC == 1 && StrToDate(Orig->Cells[COL_FENAC][r]) < aDate) { for(int c= Dest->FixedCols; c < Dest->ColCount; c++) Dest->Cells[c][n] = Orig->Cells[c][r]; n++; } } } Código:
void __fastcall TForm1::btnBuscarClick(TObject *Sender) { PacientesXFecha(Form5->StringGrid1, Form15->StringGrid1, StrToDate(Edit1->Text), ComboBox1->ItemIndex); }
__________________
Daniel Didriksen Guía de estilo - Uso de las etiquetas - La otra guía de estilo .... |
#7
|
|||
|
|||
y ordeenar los datos por cedula?
Cita:
brother y para ordenar estos datos del stringgrid original a uno nuveo ordenandolos por cedula de menor a mayor? sabes que se tiene varios datos por cada ingreso. nombre apellido cedula ..... ...... ..... henoc Duran 22222 --- ---- ---- Hector Rodrig 333333 .... .... ... Juan Campos 12 ---- --- --- lo que sw quiere es que esto pase a una nueva stringggrid de la siguiente manera. nombre apellido cedula ..... ...... ..... Juan Campos 12 ---- --- --- Hector Rodrig 1111 .... .... ... Hector Rodrig 333333 .... .... ... |
#8
|
||||
|
||||
Cita:
|
#9
|
|||
|
|||
Buenas presento una duda respecto al buscador:
para esta parte del codigo Cita:
yo lo entiendo asi: Cita:
|
#10
|
||||
|
||||
Hola amigo Henoc.
Cita:
Cita:
La mejor forma de respetar las celdas fijas(en gris) para trabajar con un TStringGrid es usar las propiedades FixedCols, FixedRows por ejemplo: Código:
for(int c = StringGrid1->FixedCols; c < StringGrid1->ColCount; c++ ) for(int r = StringGrid1->FixedRows; r < StringGrid1->RowCount; r++) ... Saludos.
__________________
Daniel Didriksen Guía de estilo - Uso de las etiquetas - La otra guía de estilo .... Última edición por ecfisa fecha: 03-08-2012 a las 19:45:25. Razón: corregir texto |
|
|
Temas Similares | ||||
Tema | Autor | Foro | Respuestas | Último mensaje |
ayuda stringgrid | Rasecma | Varios | 1 | 18-10-2007 10:12:56 |
Ayuda en el Uso del StringGrid | doncowboy | OOP | 2 | 24-04-2007 19:26:33 |
Ayuda con Stringgrid | estebanx | OOP | 4 | 01-06-2006 20:20:24 |
Ayuda En DbLookUpComboBox buscador Sql? | Solojuegospc.tk | Conexión con bases de datos | 0 | 05-07-2005 21:11:09 |
mysql + delphi ayuda con buscador | daregon | MySQL | 0 | 10-01-2005 19:54:35 |
|