Club Delphi  
    Paypal   FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > OOP
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Coloboración Paypal con ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 12-07-2011
Avatar de ElDioni
[ElDioni] ElDioni is offline
Miembro Premium
 
Registrado: jul 2005
Ubicación: Murcia (España)
Posts: 935
Poder: 22
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
  #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: 22
ElDioni Va por buen camino
Hay una cosa rara que no se si les pasa a los demás, cuando pego el código de delphi en el hilo las instrucciones se me ven bien, pero cuano publico el hilo hay un if (no me he fijado si pasa en alguna línea más) que se ve recortado, se ve "if strtoint(orden1)'orden').AsInteger then" en lugar de "if strtoint(orden1)<QueryTempOrdenes.FieldByName('orden').AsInteger then". Tenganlo en cuenta a la hora de ver el código por si a alguno también le pasa.

Saludos.
Responder Con Cita
Respuesta



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 16:55:13.


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