Ver Mensaje Individual
  #46  
Antiguo 24-07-2008
radge radge is offline
Miembro
 
Registrado: may 2008
Posts: 147
Reputación: 19
radge Va por buen camino
Código Delphi [-]
unit SupVision;

interface

uses
  Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
  Db, DBTables, Wwquery, Wwdatsrc, Grids, Wwdbigrd, Wwdbgrid, 
  StdCtrls, wwdbdatetimepicker, wwdblook, Buttons, ExtCtrls , ComCtrls;

type
  TfrmSupVision = class(TForm)
    DS_supvision: TwwDataSource;
    query_supvision: TwwQuery;
    UpdateSQL1: TUpdateSQL;
    Combo_Clientes: TwwDBLookupCombo;
    query_combo: TwwQuery;
    ComboBox1: TComboBox;
    query_comboname: TStringField;
    query_comboaccountnum: TStringField;
    Label1: TLabel;
    SpeedButton2: TSpeedButton;
    Edit1: TEdit;
    Label3: TLabel;
    Shape7: TShape;
    Shape1: TShape;
    Shape2: TShape;
    BtnImprimir: TBitBtn;
    Label5: TLabel;
    wwDBGrid1: TwwDBGrid;
    procedure Combo_ClientesChange(Sender: TObject);
    procedure SpeedButton2Click(Sender: TObject);
    procedure FormClose(Sender: TObject; var Action: TCloseAction);
    { procedure Button1Click(Sender: TObject); }
    procedure Edit1KeyDown(Sender: TObject; var Key: Word;
      Shift: TShiftState);
    procedure FormCreate(Sender: TObject);
    procedure ComboBox1Click(Sender: TObject);
    procedure BtnImprimirClick(Sender: TObject);
    procedure Edit1Click(Sender: TObject);
    procedure wwDBGrid1TitleButtonClick(Sender: TObject;
      AFieldName: String);
    procedure wwDBGrid1FieldChanged(Sender: TObject; Field: TField);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  frmSupVision: TfrmSupVision;
  Field_Sorted, Sort_Type, SQL_Base: string;
  CodiClient,cadena2: String;   //Variable global per saber el codi del client
  FlagE : integer;
implementation

uses ModuloDatos,UnidadesPedidoVenta, PrintPedidosSupervisados;
{$R *.DFM}

function tornarMaxID(): integer;
var cadenaSQLID : string;
query_maxID : TQuery;
begin
     query_maxID := TQuery.Create(nil);
     query_maxID.DatabaseName := Modulo_Datos.NOG_Comer.DatabaseName;
     cadenaSQLID := 'SQLLLLLLLLLLLLLLL' ;
     query_maxID.SQL.Clear;
     query_maxID.close;
     query_maxID.SQL.Add(cadenaSQLID);
     query_maxID.open;
     Result := query_maxID.Fields[0].Asinteger;
     query_maxID.Close;
     FreeAndNil(query_maxID);
end;


procedure TfrmSupVision.Combo_ClientesChange(Sender: TObject);
begin

      if FlagE = 0 then begin
          CodiClient := Combo_Clientes.Lookuptable.FieldByName('accountnum').asstring;
       end;

      SQL_Base := 'SQL';

      if (IntToStr(length(Combo_clientes.text)) > '0') then
         SQL_Base := SQL_Base +  ' AND A.accountnum = ' + QuotedStr(CodiClient);

         if (combobox1.text <> '')  then
             if combobox1.text = 'SI' then begin
                SQL_Base := SQL_Base + ' and Check_supervisado = ' +  QuotedStr('S');
             end
             else if  combobox1.text = 'NO' then begin
                SQL_Base := SQL_Base + ' and Check_supervisado = ' +  QuotedStr('N');
             end;

      if Edit1.text <> '' then
         SQL_Base := SQL_Base + ' SQL XXXXXXXXXXXXX';

    try
      query_supvision.close;
      query_supvision.SQL.Clear;
      query_supvision.SQL.Add(SQL_Base);
      query_supvision.open;
    except
      showmessage('Error al cargar los clientes');
    end;
      FlagE := 0;
end;


procedure TfrmSupVision.SpeedButton2Click(Sender: TObject);
begin
    close;
end;

procedure TfrmSupVision.FormClose(Sender: TObject;  var Action: TCloseAction);
begin
   frmSupVision := nil;
   Action       := caFree;
end;


procedure TfrmSupVision.Edit1KeyDown(Sender: TObject; var Key: Word;
  Shift: TShiftState);
begin
  if Key = VK_Return then
    Combo_ClientesChange (Sender);
end;

procedure TfrmSupVision.FormCreate(Sender: TObject);
begin
    Combo_ClientesChange (Sender);
    query_combo.Open;
    FlagE := 0;
end;

procedure TfrmSupVision.ComboBox1Click(Sender: TObject);
begin
    FlagE := 1;
end;

procedure TfrmSupVision.BtnImprimirClick(Sender: TObject);
begin
  Application.CreateForm (TfrmPrintPedidosSupervisados, frmPrintPedidosSupervisados);
  frmPrintPedidosSupervisados.ShowModal;
end;

procedure TfrmSupVision.Edit1Click(Sender: TObject);
begin
    FlagE := 1;
end;


procedure TfrmSupVision.wwDBGrid1TitleButtonClick(Sender: TObject;
  AFieldName: String);
begin
   Field_Sorted := AFieldName;

   if Sort_Type = 'ASC' then
      Sort_Type := 'DESC'
   else
      Sort_Type := 'ASC';

   if Field_Sorted = 'ALB_Fecha' then
       cadena2 :=  SQL_Base + ' ORDER BY A.' + AFieldName + ' ' + Sort_Type
   else if Field_Sorted = 'name' then
       cadena2 :=  SQL_Base + ' ORDER BY C.' + AFieldName + ' ' + Sort_Type
   else
       cadena2 :=  SQL_Base + ' ORDER BY LA.' + AFieldName + ' ' + Sort_Type;

   wwdbgrid1.DataSource.DataSet.Close;
   (wwdbgrid1.DataSource.DataSet as TwwQuery).SQL.Clear;
   (wwdbgrid1.DataSource.DataSet as TwwQuery).SQL.Add(cadena2);
   wwdbgrid1.DataSource.DataSet.Open;
end;


procedure TfrmSupVision.wwDBGrid1FieldChanged(Sender: TObject;
  Field: TField);
Var
   cadenaSQL,FilaCheck,Lin_Codi,Alb_Codi,Per_Codi,accountnum,dataareaid ,
   varDades , varUnitatsRestants : string;
   Cantidad , UnitatsServidesBD , botoseleccionat  : Integer ;
   Marca : TBookMarkStr;
begin
     try
         Lin_Codi := query_supvision.FieldbyName('LIN_Codi').AsString;
         Alb_Codi := query_supvision.FieldbyName('ALB_Codi').AsString;
         Per_Codi := query_supvision.FieldbyName('Per_Codi').AsString;
         Accountnum := query_supvision.FieldbyName('accountnum').AsString;
         Dataareaid := query_supvision.FieldbyName('dataareaid').AsString;
         Cantidad := query_supvision.FieldbyName('Cantidad').asinteger;
         UnitatsServidesBD := query_supvision.FieldbyName('Unitats_Servides').asinteger;
      except
         showmessage('No se han podido cargar los datos del albarán');
         query_supvision.cancel;
     end;
     if ((Lin_Codi <> '') and (Dataareaid <> '') and (Alb_Codi <> '') and (Per_Codi <> '') and (Accountnum <> '')) then begin
           if (combobox1.text = 'TODOS') then begin
              try
              Marca := query_supvision.Bookmark;
              except
              showmessage('error cargando formulario');
              end;
          end;

        FilaCheck := wwDBGrid1.GetFieldValue(7); // Si cambiem l'ordre del grid cambiar el GetFieldValue

        if (FilaCheck = 'S') then  begin
             // 1 unitat , fiquem la data i l'introduim  a la BD
             if (Cantidad = 1) then begin
                 cadenaSQL := 'SQL 111111111';
                 Ejecutar_SQL(cadenaSQL);

                 cadenaSQL := 'SQL 2222222';
                 Ejecutar_SQL(cadenaSQL);
                try
                 query_supvision.Close;
                 query_supvision.Open;
                except
                  showmessage('No se han podido aplicar los cambios en la Base de datos');
                end;
             end
             else begin // Si hi ha més d'una unitat d'aquella linea de pedido ==> FORM NOU
                   Application.CreateForm (TfrmUnidadesPedidoVenta, frmUnidadesPedidoVenta);
                   frmUnidadesPedidoVenta.CarregaDades(Cantidad,UnitatsServidesBD);
                   frmUnidadesPedidoVenta.ShowModal;
                   varDades := frmUnidadesPedidoVenta.rebreDades;
                   varUnitatsRestants := frmUnidadesPedidoVenta.rebreUnitatsRestants;
                   freeandnil(frmUnidadesPedidoVenta);

           try
                      cadenaSQL := 'SQL 1';
                      Ejecutar_SQL(cadenaSQL);
                      cadenaSQL := 'SQL 2';
                      Ejecutar_SQL(cadenaSQL);
                      query_supvision.Close;
                      query_supvision.Open;

                     except
                      showmessage('Error actualizando datos');
                   end;
               end;
        end
        else if (FilaCheck = 'N') then
             if (Cantidad = UnitatsServidesBD) then begin
                   botoseleccionat := MessageDlg('Estas seguro que quieres borrar las unidades servidas ?',mtCustom,[mbYes,mbNo], 0);
                 if botoseleccionat = mrYes then begin
                     cadenaSQL := 'SQL 1';
                     Ejecutar_SQL(cadenaSQL);

                     cadenaSQL := 'SQL2 ';
                     Ejecutar_SQL(cadenaSQL);
                     try
                        query_supvision.Close;
                        query_supvision.Open;
                     except
                        ;
                     end
                end
                else begin
                     query_supvision.Cancel;  // refrescar
                end;
                end;
    end
    else begin
       showmessage('Este cliente no tiene más albaranes por editar');
       query_supvision.Cancel;  // refrescar
    end;
      if (combobox1.text = 'TODOS') then begin
          try
          query_supvision.Bookmark := Marca;
          except
          ;
          end;
     end;
  end;
end.

Última edición por radge fecha: 24-07-2008 a las 12:38:47.
Responder Con Cita