Ver Mensaje Individual
  #57  
Antiguo 26-08-2008
radge radge is offline
Miembro
 
Registrado: may 2008
Posts: 147
Reputación: 19
radge Va por buen camino
Os vuelvo a dejar el codigo con los cambios descritos arriba por el compañero , sigue fallando ;(

de todas formas gracias

Código Delphi [-]

procedure TfrmSupVision.wwDBGrid1FieldChanged(Sender: TObject;
  Field: TField);
Var
  Qry: TQuery;
   cadenaSQL,FilaCheck,Lin_Codi,Alb_Codi,Per_Codi,accountnum,dataareaid ,
   varDades , varUnitatsRestants : string;
   Cantidad , UnitatsServidesBD , botoseleccionat  : Integer ;
   Marca : TBookMarkStr;
   formulari : TfrmUnidadesPedidoVenta;
begin
     try
         Lin_Codi := query_supvision.FieldbyName('LIN_Codi').AsString;
         ...
     ...
      except
         showmessage('No se han podido cargar los datos del albarán');
         query_supvision.close;
         query_supvision.open;
      end;
         if not assigned (Qry) then begin
             Qry := TQuery.Create (nil);
             Qry.DatabaseName := Modulo_Datos.NOG_Comer.DatabaseName;
         end;
         Qry.Close;
         Qry.SQL.Clear;

     if ((Lin_Codi <> '') and (Dataareaid <> '') and (Alb_Codi <> '') and (Per_Codi <> '') and (Accountnum <> '')) then begin
           if (cmbSupervisado.text = 'TODOS') then begin
              try
                 Marca := query_supvision.Bookmark;
              except
                 query_supvision.close;
                 query_supvision.open;
              end;
           end;
        try
        FilaCheck := wwDBGrid1.GetFieldValue(7); // Si cambiem l'ordre del grid cambiar el GetFieldValue
        except
        showmessage('Hubo un error cargando los datos del formulario');
        query_supvision.close;
        query_supvision.open;
        end;

        if (FilaCheck = 'S') then  begin
             // 1 unitat , fiquem la data i l'introduim  a la BD
             if (Cantidad = 1) then begin
                 Qry.SQL.Clear;
                 cadenaSQL := 'update tabla .................';
                 Qry.SQL.Add(cadenaSQL);
                 Qry.ExecSQL;

                 Qry.SQL.Clear;
                 cadenaSQL := 'Insert into tabla ............';
                 Qry.SQL.Add(cadenaSQL);
                 Qry.ExecSQL;

                 query_supvision.close;
                 query_supvision.Open;
             end
             else begin 
                   formulari := TfrmUnidadesPedidoVenta.Create(self);
                   formulari.CarregaDades(Cantidad,UnitatsServidesBD);
                   formulari.ShowModal;
                   varDades := formulari.rebreDades;
                   varUnitatsRestants := formulari.rebreUnitatsRestants;
                   if assigned(formulari) then
                  freeandnil(formulari);

                   Qry.SQL.Clear;
                   cadenaSQL := 'update tabla .........';
                   Qry.SQL.Add(cadenaSQL);
                   Qry.ExecSQL;

                   Qry.SQL.Clear;
                   cadenaSQL := 'Insert into .................';
                   Qry.SQL.Add(cadenaSQL);
                   Qry.ExecSQL;

                   query_supvision.Close;
                   query_supvision.Open;
                end;
        end
        else if (FilaCheck = 'N') then
             if (Cantidad = UnitatsServidesBD) then begin
                 // procedim a desmarcar
                   botoseleccionat := MessageDlg('Estas seguro que quieres borrar las unidades servidas ?',mtCustom,[mbYes,mbNo], 0);
                 if botoseleccionat = mrYes then begin
                     Qry.SQL.Clear;
                     cadenaSQL := 'update tabla .............. ';
                     Qry.SQL.Add(cadenaSQL);
                     Qry.ExecSQL;

                     Qry.SQL.Clear;
                     cadenaSQL := 'update table .............. ';
                     Qry.SQL.Add(cadenaSQL);
                     Qry.ExecSQL;

                     query_supvision.Close;
                     query_supvision.Open;
                 end
                else begin
                     query_supvision.cancel;
                end;
             end;
        end
    else begin
       showmessage('Este cliente no tiene más albaranes por editar');
       try
          query_supvision.Close;
          query_supvision.open;
       except
          ;
       end;
    end;
      if (cmbSupervisado.text = 'TODOS') then begin
          try
           query_supvision.Bookmark := Marca;
          except
          query_supvision.close;
          query_supvision.open;
          end;
     end;
  end;
end.
Responder Con Cita