Club Delphi  
    Paypal   FTP   CCD     Buscar   Trucos   Trabajo   Foros

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

Coloboración Paypal con ClubDelphi

 
 
Herramientas Buscar en Tema Desplegado
  #2  
Antiguo 12-07-2011
Avatar de ElDioni
[ElDioni] ElDioni is offline
Miembro Premium
 
Registrado: jul 2005
Ubicación: Murcia (España)
Posts: 935
Poder: 21
ElDioni Va por buen camino
Bueno, he borrado la función que os había puesto antes porque ya me mareaba de tanto orden para arriba y orden para abajo, si sumo o no sumo, cuando sumo, etc...
al final he empezado de 0 y me ha quedado lo siguiente:

Código Delphi [-]
gc:=DBGridDetalleOrdenes.MouseCoord(x,y);
    if (gc.X>0)AND(gc.Y>0) then
      begin
        if DbGridDetalleOrdenes.SelectedRows.Count<1 then
          begin
            if QueryDetalleOrden.IsEmpty=false then
              begin
                DBGridDetalleOrdenes.SelectedRows.CurrentRowSelected:=true;
              end;
          end;
        DbGridDetalleOrdenes.DataSource.DataSet.MoveBy(gc.Y - THackDBGrid(DbGridDetalleOrdenes).Row);
        orden1:='';
        Orden1:=DbGridDetalleOrdenes.DataSource.DataSet.FieldByName('orden').AsString;
        if orden1='' then exit;
        if DbGridDetalleOrdenes.SelectedRows.Count>0 then
          begin
            for w:=0 to DbGridDetalleOrdenes.SelectedRows.Count-1 do
              begin
                DbGridDetalleOrdenes.DataSource.DataSet.GotoBookmark(pointer(DbGridDetalleOrdenes.SelectedRows.items[w]));
                QueryTempOrdenes.Close;
                QueryTempOrdenes.SQL.Text:='SELECT * FROM ordenes';
                QueryTempOrdenes.Open;
                QueryTempOrdenes.Locate('norden',DBGridDetalleOrdenes.DataSource.DataSet.FieldByName('norden').AsStr  ing,[lopartialkey]);
                orden2:=QueryTempOrdenes.FieldByName('orden').AsString;
                if strtoint(orden1)'orden').AsInteger then
                  begin
                    QueryTempOrdenes.SQL.Text:='UPDATE ordenes SET orden=orden+1 WHERE orden>='+orden1+' AND orden<'+orden2+' AND maquinaelegida='+quotedstr(DbGridDetalleOrdenes.DataSource.DataSet.FieldByName('maquinaelegida').AsS  tring);
                    QueryTempOrdenes.ExecSQL;
                    QueryTempOrdenes.SQL.Text:='UPDATE ordenes SET orden='+orden1+' WHERE norden='+DbGridDetalleOrdenes.DataSource.DataSet.FieldByName('norden').AsString;
                    QueryTempOrdenes.ExecSQL;
                    orden1:=inttostr(strtoint(orden1)+1);
                  end
                else
                  begin
                    QueryTempOrdenes.SQL.Text:='UPDATE ordenes SET orden=orden-1 WHERE orden>'+orden2+' AND orden<='+orden1+' AND maquinaElegida='+quotedstr(DBGridDetalleOrdenes.DataSource.DataSet.FieldByName('MaquinaElegida').AsS  tring);
                    QueryTempordenes.ExecSQL;
                    QueryTempOrdenes.SQL.Text:='UPDATE ordenes SET orden='+orden1+' WHERE norden='+DbGridDetalleOrdenes.DataSource.DataSet.FieldByName('norden').AsString;
                    QueryTempOrdenes.ExecSQL;
                  end;
              end;
          end;
      end
    else
      begin
        exit;
      end;  
  end;
BtnRefreshOrdenClick(nil);

lo estoy probando y de momento me funciona, da igual que cojas los partes separados, juntos, de uno en uno, que los muevas hacia arriba o hacia abajo, de momento me está funcionando. Lo dejo aquí por si alguien se le ocurre algo más y por si a alguien le sirve de algo.

Saludos y gracias a todos los que han entrado para ver el problema.

Última edición por ElDioni fecha: 12-07-2011 a las 16:19:20.
Responder Con Cita
 


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
Timer dentro de SMDBGrid DasGrun OOP 4 28-10-2010 20:21:44
Recorrer SMDbgrid ingel Varios 4 06-07-2007 00:41:27
Checkbox en el FilterBar del SMDBGrid? d-hugo OOP 0 06-04-2007 13:58:41
Columna de SMDbgrid ingel Varios 1 06-06-2006 17:54:36
problema con smdbgrid el_barto OOP 2 18-07-2005 17:26:08


La franja horaria es GMT +2. Ahora son las 17:26: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