Club Delphi  
    Paypal   FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Varios
Registrarse FAQ Miembros Calendario Guía de estilo Buscar Temas de Hoy Marcar Foros Como Leídos

Coloboración Paypal con ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 26-01-2011
verito_83mdq verito_83mdq is offline
Miembro
NULL
 
Registrado: nov 2010
Posts: 118
Poder: 16
verito_83mdq Va por buen camino
Hola Chris! Gracias por contestar!! Bueno ahora pongo el código y explico, hay código que esta fuera de contexto pero igual pongo los procedimientos completos.


1-Busco Cliente, Selecciono cliente en el dbGrig y pongo ver datos.



Código Delphi [-]
 procedure TBuscarForm.DatosClienteBitBtnClick(Sender: TObject); 
begin 
 
 
              flag:=False; 
              PrevRecord := Buscarform.ClientesDBGrid.DataSource.DataSet.GetBookmark; 
              r:=QueryDataModule.ClienteZQuery.FieldByName('ID_Cliente').Value; 
 
              with QueryDataModule.ObservacionClienteZQuery do 
               begin 
                 If active then close; 
                 SQL.Clear; 
                 SQL.Add('Select * from observacion_cliente where observacion_cliente.ID_Cliente='+r+''); 
                 Open; 
               end; 
 
               //Prioridad Nula 
 
               if QueryDataModule.ObservacionClienteZQuery.FieldByName('ID_Prioridad').IsNull  then 
                 begin 
                  if flag=false then 
                    begin 
                     BuscarForm.Visible:=False; 
                     flag:=true; 
                     ListarDatoClienteForm:=TListarDatoClienteForm.Create(Application); 
                    end; 
                 end; 
 
 
 
 
 
 
                //Prioridad Baja 
                if QueryDataModule.ObservacionClienteZQuery.FieldByName('ID_Prioridad').Value =1 then 
                 begin 
                  if flag=false then 
                    begin 
                     BuscarForm.Visible:=False; 
                     flag:=true; 
                     ListarDatoClienteForm:=TListarDatoClienteForm.Create(Application); 
                    end; 
                 end; 
 
 
 
 
 
 
               //Prioridad Normal 
               if QueryDataModule.ObservacionClienteZQuery.FieldByName('ID_Prioridad').Value =2 then 
                 begin 
                   if flag=false then 
                     begin 
                       showmessage('Usted deberia leer las observaciones'); 
                       BuscarForm.Visible:=False; 
                       flag:=true; 
                       ListarDatoClienteForm:=TListarDatoClienteForm.Create(Application); 
                     end; 
                 end; 
 
 
 
                //Prioridad Alta 
                if QueryDataModule.ObservacionClienteZQuery.FieldByName('ID_Prioridad').Value =3 then 
                    begin 
                      if flag=false then 
                        begin 
                         BuscarForm.Visible:=False; 
                         flag:=true; 
                         ListarObservacionesForm:=TListarObservacionesForm.Create(Application); 
                         if flag=false then 
                         ListarDatoClienteForm:=TListarDatoClienteForm.Create(Application); 
                        end; 
                     end; 
 
 
 
end;





2-En el Form Create asigno los Edit.



Código Delphi [-]
procedure TListarDatoClienteForm.FormCreate(Sender: TObject); 
begin 
 
 
              ActualizarActivadoPngSpeedButton.Visible:=False; 
 
 
 
 
 
              //Datos Cliente 
 
              ApellidoEdit.Text:=QueryDataModule.ClienteZQuery.FieldByName('Apellido').AsAnsiString; 
              NombreEdit.Text:=QueryDataModule.ClienteZQuery.FieldByName('Nombre').AsAnsiString; 
              DNIEdit.Text:=QueryDataModule.ClienteZQuery.FieldByName('DNI').AsAnsiString; 
              ListarFechaNacimientoDateTimePicker.Date:=QueryDataModule.ClienteZQuery.FieldByName('Fecha_Nacimient  o').AsDateTime; 
              DireccionEdit.Text:=QueryDataModule.ClienteZQuery.FieldByName('Direccion').AsAnsiString; 
              TelefonoEdit.Text:=QueryDataModule.ClienteZQuery.FieldByName('Telefono').AsAnsiString; 
              ConyugeCheckBox.Checked:=QueryDataModule.ClienteZQuery.FieldByName('Conyuge').Value; 
              ObservacionesCheckBox.Checked:=QueryDataModule.ClienteZQuery.FieldByName('Observaciones_Check').Valu  e; 
              CelularEdit.Text:=QueryDataModule.ClienteZQuery.FieldByName('Celular').AsAnsiString; 
              E_MailEdit.Text:=QueryDataModule.ClienteZQuery.FieldByName('E_Mail').AsAnsiString; 
              OcupacionDBLookupComboBox.KeyValue:=QueryDataModule.ClienteZQuery.FieldByName('ID_Ocupacion').Value; 
              ProveedorMailDBLookupComboBox.KeyValue:=QueryDataModule.ClienteZQuery.FieldByName('ID_Proveedor_Mail  ').Value; 
               
 
 
 
               //Fecha Ingreso al Sistema 
 
 
              IngresoSistemaDiaLabel.Caption := FormatDateTime('dddd yyyy/mm/dd', QueryDataModule.ClienteZQuery.FieldByName('Fecha_Ingreso_Sistema').AsDateTime); 
              IngresoSistemaHoraLabel.Caption:= FormatDateTime('hh:nn:ss', QueryDataModule.ClienteZQuery.FieldByName('Fecha_Ingreso_Sistema').AsDateTime); 
 
 
 
              //Datos en color rojo o verde, segun el estado. 
              if QueryDataModule.ClienteZQuery.FieldByName('Baja').Value=1 then 
                  begin 
                      showmessage('Atencion Cliente Rescindido'); 
                      Self.Font.Color:=clred; 
                      ListarFechaNacimientoDateTimePicker.Font.Color:=clred; 
                  end 
 
 
              else 
                  begin 
                      Self.Caption:='Cliente Activo'; 
                      Self.Font.Color:=clgreen; 
                      ListarFechaNacimientoDateTimePicker.Font.Color:=clgreen; 
                  end; 
 
end;







3-Cuando se modifica un TEdit se habilita el boton Actulizar.







Código Delphi [-]
procedure TListarDatoClienteForm.ActualizarActivadoPngSpeedButtonClick( 
  Sender: TObject); 
begin 
 
 
           with QueryDataModule.ClienteZQuery do 
               begin 
                 If active then close; 
                   SQL.Clear; 
                   SQL.Add('Update cliente set '); 
                   SQL.Add('Apellido='''+ApellidoEdit.Text+''', '); 
                   SQL.Add('Nombre='''+NombreEdit.Text+''', '); 
                   SQL.Add('DNI='''+DNIEdit.Text+''', '); 
                   SQL.Add('Fecha_Nacimiento=:FechaNacimiento,'); 
                   ParamByName('FechaNacimiento').Value:=ListarFechaNacimientoDateTimePicker.DateTime; 
                   SQL.Add('ID_Ocupacion=:Ocupacion,'); 
                   ParamByName('Ocupacion').Value:=OcupacionDBLookupComboBox.KeyValue; 
                   SQL.Add('ID_Proveedor_Mail=:Proveedor,'); 
                   ParamByName('Proveedor').Value:=ProveedorMailDBLookupComboBox.KeyValue; 
                   //SQL.Add('ID_Ciudad='''+NombreEdit.Text+''', '); 
                   SQL.Add('Direccion='''+DireccionEdit.Text+''', '); 
                   SQL.Add('Telefono='''+TelefonoEdit.Text+''', '); 
                   SQL.Add('Celular='''+CelularEdit.Text+''', '); 
                   SQL.Add('E_Mail='''+E_MailEdit.Text+''' '); 
                   SQL.Add('Where cliente.ID_Cliente='+r+''); 
                   ExecSQL; 
               end; 
 
 
 
 
 
 
end;



4-Una vez que Actualice hago click en el boton volver, para retornar al DBGrig y en este momento es cuando me da ese error.





Código SQL [-]
 procedure TListarDatoClienteForm.AnteriorPngSpeedButtonClick( 
  Sender: TObject); 
begin 
 
 
                BuscarForm.Visible:=True; 
                //BuscarForm.BuscarPngSpeedButtonClick(Sender); 
 
                BuscarForm.ClientesDBGrid.DataSource.DataSet.GotoBookmark(PrevRecord); 
                release; 
                 
 
end;


Bueno esos son los pasos, espero que sirva ahora. Gracia Chriss y ecfisa!!!!!

Última edición por verito_83mdq fecha: 26-01-2011 a las 18:20:15.
Responder Con Cita
  #2  
Antiguo 26-01-2011
verito_83mdq verito_83mdq is offline
Miembro
NULL
 
Registrado: nov 2010
Posts: 118
Poder: 16
verito_83mdq Va por buen camino
jajaja no se pueden quejar, querían código ahí tienen!!!

La variable PrevRecord la tengo declarada como variable global pero de tipo PrevRecord: TBookmark;
y veo que ecfisa la declaro de tipo TBookmarkStr , sera eso? que es el Str que tiene adicional? string?
Saludos!!

Última edición por verito_83mdq fecha: 26-01-2011 a las 18:28:55.
Responder Con Cita
  #3  
Antiguo 26-01-2011
Avatar de ecfisa
ecfisa ecfisa is offline
Moderador
 
Registrado: dic 2005
Ubicación: Tres Arroyos, Argentina
Posts: 10.508
Poder: 38
ecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to behold
Cita:
Empezado por verito_83mdq Ver Mensaje
jajaja no se pueden quejar, querían código ahí tienen!!!
Ufff!!!! Dame tres días para revisarlo y te contesto...

Un saludo.
__________________
Daniel Didriksen

Guía de estilo - Uso de las etiquetas - La otra guía de estilo ....
Responder Con Cita
  #4  
Antiguo 26-01-2011
Avatar de ecfisa
ecfisa ecfisa is offline
Moderador
 
Registrado: dic 2005
Ubicación: Tres Arroyos, Argentina
Posts: 10.508
Poder: 38
ecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to behold
Cita:
Empezado por verito_83mdq Ver Mensaje
La variable PrevRecord la tengo declarada como variable global pero de tipo PrevRecord: TBookmark;
y veo que ecfisa la declaro de tipo TBookmarkStr , sera eso? que es el Str que tiene adicional? string?
Saludos!!
Hacen lo mismo pero TBookmarkStr es más simple de usar:
TBookmark:
Código Delphi [-]
var
  BM: TBookmark;
begin
  BM:= DataSet.Bookmark;
  try
    DataSet.MoveBy(10);
  finally
    DataSet.GotoBookmark(BM);
    DataSet.FreeBookmark(BM);  // liberar memoria
  end;
end;

TBookmarkStr:
Código Delphi [-]
var
  BM: TBookmarkStr;
begin
  BM:= DataSet.Bookmark;
  try
    DataSet.MoveBy(10);
  finally
    DataSet.Bookmark:= BM;  //Delphi libera la memoria de forma automática
  end;
end;

Aparte de que es más eficiente asignar valor a una propiedad, que llamar al procedimiento GotoBookmark.

Un saludo.
__________________
Daniel Didriksen

Guía de estilo - Uso de las etiquetas - La otra guía de estilo ....

Última edición por ecfisa fecha: 26-01-2011 a las 18:44:01.
Responder Con Cita
  #5  
Antiguo 26-01-2011
Avatar de Chris
[Chris] Chris is offline
Miembro Premium
 
Registrado: abr 2007
Ubicación: Jinotepe, Nicaragua
Posts: 1.678
Poder: 21
Chris Va por buen camino
BuscarForm.ClientesDBGrid.DataSource.DataSet es lo mismo que QueryDataModule.ClienteZQuery? Si son lo mismo entonces puede ser que el problema sea que no estes volviendo abrir QueryDataModule.ClienteZQuery con la consulta para presentar los datos.

Saludos,
Chris
__________________
Perfil Github - @chrramirez - Delphi Blog - Blog Web
Responder Con Cita
  #6  
Antiguo 26-01-2011
verito_83mdq verito_83mdq is offline
Miembro
NULL
 
Registrado: nov 2010
Posts: 118
Poder: 16
verito_83mdq Va por buen camino
Hola Chriss, gracias a todos!!! Si es lo mismo, osea el DBGrid trabaja con el mismo Query (ClienteZQuery). Como seria eso de volver a abrir?
Te referís a que tengo que hacer un Select previo a la sentencia de Bookmark?

Muchas gracias!!!!
Responder Con Cita
  #7  
Antiguo 26-01-2011
Avatar de Chris
[Chris] Chris is offline
Miembro Premium
 
Registrado: abr 2007
Ubicación: Jinotepe, Nicaragua
Posts: 1.678
Poder: 21
Chris Va por buen camino
Cita:
Empezado por verito_83mdq Ver Mensaje
Te referís a que tengo que hacer un Select previo a la sentencia de Bookmark?
Exactamente amigo!
__________________
Perfil Github - @chrramirez - Delphi Blog - Blog Web
Responder Con Cita
  #8  
Antiguo 27-01-2011
verito_83mdq verito_83mdq is offline
Miembro
NULL
 
Registrado: nov 2010
Posts: 118
Poder: 16
verito_83mdq Va por buen camino
Bueno estoy tratando de resolverlo, gracias a Chris y a ecfisa me quedo mas claro, el ejemplo que puso ecfisa es muy bueno y ayuda bastante.

Por ahora les digo Gracias a los dos!

Saludos!!!
Responder Con Cita
Respuesta


Herramientas Buscar en Tema
Buscar en Tema:

Búsqueda Avanzada
Desplegado

Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Recuperar Informacion despues de un Commit Kipow Firebird e Interbase 2 01-04-2009 19:04:02
Como recuperar el arranque después de Instalar Windows RONPABLO Linux 4 14-07-2008 17:43:33
Recuperar autoinc. después de Insert to aig MS SQL Server 2 22-09-2004 10:41:28
Como recuperar autonumerico despues de borrado, cancelado, ect. IcebergDelphi Tablas planas 2 19-05-2003 17:02:39
Recuperar autonumericos despues de Borrar, Cancelar ,Ect. IcebergDelphi Varios 1 14-05-2003 07:55:02


La franja horaria es GMT +2. Ahora son las 08:49:45.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi