Dbgrid

di il
1 risposte

Dbgrid

Salve a tutti,

ho una dbgrid dove sono elencati i materiali in magazzino, quello che vorei fare è che con il button "cbsEllipsis" aprire una finestra di dialogo e cliccando sul file pdf, questo deve essere salvato (in specifica cartella o non so nel sistema o in un database) e con un altro button tipo il precedente , quando selezione un specifica riga della dbgrid mi deve aprire il relativo file precedentemente salvato.
saluti

1 Risposte

  • Re: Dbgrid

    Evento OnEditButtonClick della DbGrid
    
    procedure TFrmMci.DbGridFattureEditButtonClick(Sender: TObject);
    Var
       SFilePath, SFileName, SDestFolder: String;
    begin
       If (Not QFatture.Active) Or (QFatture.RecordCount < 1) Then Exit;
    
       // Questo evento è comune a tutte le colonne... quindi nel caso di più colonne 
       // aventi ButtonStyle = cbsEllipsis bisogna identificare il campo selezionato...
    
       If (DbGridFatture.SelectedField = QFattureFILEPDF) Then
       Begin
          SFilePath := Trim(QFattureFILEPDF.AsString);   // se contiene anche il percorso...
    
          If (SFilePath = '') Then Exit;
    
          // FileExists - dichiarata in System.SysUtils
          
          If Not FileExists(SFilePath) Then
          Begin
             ShowMessage('Il file selezionato non esiste!' + #13#10 +
                         '("' + SFilePath + '")'           + #13#10 +
                         'Impossibile proseguire...');
             Exit;
          End;
    
          // ExtractFileName - dichiarata in System.SysUtils
          
          SFileName   := ExtractFileName(SFilePath);
          SDestFolder := 'C:\_Archivio\';
    
          // Application - Dichiarata in Vcl.Forms
          
          If FileExists(SDestFolder + SFileName) Then
             If Application.MessageBox(
                   'Il file di destinazione risulta gia esistente:' + #13#10 +
                   'Procedere comunque?',
                   'Conferma sovrascrittura',
                   MB_YESNO) <> IDYES
                Then Exit;
    
          // CopyFile è dichiarata in Winapi.Windows, il "false" finale consente la sovrascrittura
          
          If CopyFile(PChar(SFilePath), PChar(SDestFolder + SFileName), False) Then
             ShowMessage('File "' + SFileName + '"'            + #13#10 +
                         'copiato con successo nella cartella' + #13#10 +
                         '"' + SDestFolder + '"!')
          Else   
             ShowMessage('Non è stato possibile copiare il file nella cartella "' + SDestFolder + '"!');
       End;
    end;
    
Devi accedere o registrarti per scrivere nel forum
1 risposte