Показать сообщение отдельно
  #2  
Старый 08.10.2009, 18:06
Sed0Y Sed0Y вне форума
Прохожий
 
Регистрация: 29.09.2009
Сообщения: 10
Репутация: 10
По умолчанию

1. У меня сортировка при нажатии на Титл грида делается так:

Код:
private 
   SortASC: Boolean; // для того, что бы запоминать какая была сортировка, что бы знать какую сделать при повторном нажатии
.....
 
procedure TFMainForm.DBGridEh1TitleClick(Column: TColumnEh);
var
  SQLtxt, Comman: String;
begin
  if SortASC then
    SortASC := False
  else SortASC := True;
  SQLtxt := ' SELECT * FROM table.db  ';
  if Column.FieldName <> '' then
     if SortASC then
        Comman := SQLtxt + ' ORDER BY ' + Column.FieldName + ' ASC ');
     else
        Comman := SQLtxt + ' ORDER BY ' + Column.FieldName + ' DESC ');
  QUery1.Close;
  Query1.sql.text := '';
  query1.sql.text := Comman;
  query1.open;
end;


2. Можешь передать в "CVS" он хорошо импортируется в Эксель, так как если ты не знаешь QReport то придется немного почитать тебе (если захочешь). По поводу Ehlib то он платный, если найдешь фри, то переделать под него проект раз плюнуть...

для экспорта в "CVS" выделены строчки(я ничего не уберал, захочешь упростишь под себя):

Код:
procedure TFMainForm.SpeedButton1Click(Sender: TObject);
var
  Mem_ : TStringList;
  I, ColCount: Integer;
  SLine: String;
  DS: TDataSet;
begin
  ColCount := DBGridEh1.Columns.Count - 1;
  SLine := '';
  DS := DBGridEh1.DataSource.DataSet;
  Mem_ := TStringList.Create;
  SaveDialog1.Title := 'Save CVS file';
  SaveDialog1.InitialDir := FileDireTxt;
  SaveDialog1.Filter := 'Exel file|*.cvs';
  SaveDialog1.DefaultExt := 'txt';
  SaveDialog1.FilterIndex := 1;
  if SaveDialog1.Execute
    then begin
      for I := 0 to ColCount do // шапка
        if DBGridEh1.Columns[i].Visible then begin
          SLine := SLine + '"' + DBGridEh1.Columns[i].Title.Caption + '";';
      end;
      Mem_.Add(SLine);

      SLine := '';
      DS.First;
      while not DS.Eof do begin  // содержимое грида
        for I := 0 to ColCount do
          if DBGridEh1.Columns[i].Visible then begin
            SLine := SLine + '"' + DBGridEh1.Columns[i].DisplayText + '";';
          end;
          Mem_.Add(SLine);
          SLine := '';
          DS.Next;
      end;
      Mem_.SaveToFile(SaveDialog1.FileName); 
      ShowMessage('File : '+ SaveDialog1.FileName);
    end
  else ShowMessage('Save file was cancelled');
  Mem_.Free;
end;

ПРИ ТВОЕМ РЕШЕНИИ ВЫЛОЖИ РЕЗУЛЬТАТ, что бы и другие могли это использовать!
Ответить с цитированием