AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Programmieren allgemein Sortieren im Clientdataset nach ID(autoinc)
Thema durchsuchen
Ansicht
Themen-Optionen

Sortieren im Clientdataset nach ID(autoinc)

Ein Thema von Natcree · begonnen am 14. Nov 2013 · letzter Beitrag vom 4. Mai 2024
 
Benutzerbild von Sir Rufo
Sir Rufo

Registriert seit: 5. Jan 2005
Ort: Stadthagen
9.454 Beiträge
 
Delphi 10 Seattle Enterprise
 
#28

AW: Sortieren im Clientdataset nach ID(autoinc)

  Alt 9. Dez 2013, 18:29
Dabei könnte das Leben so einfach sein
Delphi-Quellcode:

program dp_177583;

{$APPTYPE CONSOLE}
{$R *.res}

uses
  SysUtils,
  TypInfo,
  uAppPath in 'uAppPath.pas';

procedure OutputPath;
  begin
    Writeln( AppPath.Data );
    Writeln( AppPath.Konten );
    Writeln( AppPath.Mitgliedsausweis );
    Writeln( AppPath.Schreiben );
    Writeln( AppPath.Kassenbuch );
    Writeln( AppPath.Handkasse );
  end;

procedure Main;
  var
    LLocation : TAppDataLocation;
  begin
    for LLocation := low( TAppDataLocation ) to high( TAppDataLocation ) do
      begin
        AppPath.Location := LLocation;
        Writeln;
        Writeln( 'AppPath.Location=', GetEnumName( TypeInfo( TAppDataLocation ), Integer( LLocation ) ) );
        Writeln;
        OutputPath;
      end;
  end;

begin
  try

    Main;

  except
    on E : Exception do
      Writeln( E.ClassName, ': ', E.Message );
  end;

  ReadLn;

end.
mit
Delphi-Quellcode:
unit uAppPath;

interface

  type
    TAppDataLocation = ( adlUser, adlCommon, adlPortable );

    TAppPath = class
    private
      FLocation : TAppDataLocation;
    public
      function Data : string;
      function Kassenbuch : string; overload;
      function Kassenbuch( const ADate : TDateTime ) : string; overload;
      function Konten : string;
      function Mitgliedsausweis : string;
      function Schreiben : string;
      function Handkasse : string; overload;
      function Handkasse( const ADate : TDateTime ) : string; overload;

      property Location : TAppDataLocation read FLocation write FLocation;
    end;

  function AppPath : TAppPath;

implementation

  uses
    Windows,
    ShellApi,
    ShlObj,
    SysUtils;

  var
    _AppPath : TAppPath;

  function AppPath : TAppPath;
    begin
      if not Assigned( _AppPath )
      then
        begin
          _AppPath := TAppPath.Create;
        end;
      Result := _AppPath;
    end;

  function GetKnownFolder( const FolderID : TGUID ) : string;
    var
      LPath : PChar;
    begin
      if SHGetKnownFolderPath( FolderID, 0, 0, LPath ) >= 0
      then
        Result := LPath
      else
        Result := #0;
    end;

  function GetSpecialFolder( FolderID : longint ) : string;
    var
      Path : PChar;
      idList : PItemIDList;
    begin
      GetMem( Path, MAX_PATH );
      SHGetSpecialFolderLocation( 0, FolderID, idList );
      SHGetPathFromIDList( idList, Path );
      Result := string( Path );
      FreeMem( Path );
    end;

  function WinVersionMinVista : Boolean;
    begin
      Result := CheckWin32Version( 6, 0 );
    end;

  function UserAppDataFolder : string;
    begin
      if WinVersionMinVista
      then
        Result := GetKnownFolder( StringToGUID( '{3EB685DB-65F9-4CF6-A03A-E3EF65729F3D}' ) )
      else
        Result := GetSpecialFolder( CSIDL_APPDATA )
    end;

  function CommonAppDataFolder : string;
    begin
      if WinVersionMinVista
      then
        Result := GetKnownFolder( StringToGUID( '{62AB5D82-FDC1-4DC3-A9DD-070D1D495D97}' ) )
      else
        Result := GetSpecialFolder( CSIDL_COMMON_APPDATA )
    end;

  { TAppPath }

  function TAppPath.Data : string;
    begin
      case Location of
        adlUser :
          Result := UserAppDataFolder + '\Vereintool\';
        adlCommon :
          Result := CommonAppDataFolder + '\Vereintool\';
        adlPortable :
          Result := ExtractFilePath( ParamStr( 0 ) + 'Daten\' );
      end;
      Result := Result + 'Daten\';
    end;

  function TAppPath.Handkasse( const ADate : TDateTime ) : string;
    begin
      Result := Kassenbuch( ADate ) + FormatDateTime( '"Handkasse "yyyy".xls"', ADate );
    end;

  function TAppPath.Handkasse : string;
    begin
      Result := Handkasse( Now );
    end;

  function TAppPath.Kassenbuch( const ADate : TDateTime ) : string;
    begin
      Result := Data + FormatDateTime( '"Kassenbuch\"yyyy"\"', ADate );
    end;

  function TAppPath.Kassenbuch : string;
    begin
      Result := Kassenbuch( Now );
    end;

  function TAppPath.Konten : string;
    begin
      Result := Data + 'Konten\';
    end;

  function TAppPath.Mitgliedsausweis : string;
    begin
      Result := Data + 'Mitgliedsausweis\';
    end;

  function TAppPath.Schreiben : string;
    begin
      Result := Data + 'Schreiben\';
    end;

initialization

finalization

  FreeAndNil( _AppPath );

end.
bekommt man
Code:

AppPath.Location=adlUser

C:\Users\user123\AppData\Roaming\Vereintool\Daten\
C:\Users\user123\AppData\Roaming\Vereintool\Daten\Konten\
C:\Users\user123\AppData\Roaming\Vereintool\Daten\Mitgliedsausweis\
C:\Users\user123\AppData\Roaming\Vereintool\Daten\Schreiben\
C:\Users\user123\AppData\Roaming\Vereintool\Daten\Kassenbuch\2013\
C:\Users\user123\AppData\Roaming\Vereintool\Daten\Kassenbuch\2013\Handkasse 2013.xls

AppPath.Location=adlCommon

C:\ProgramData\Vereintool\Daten\
C:\ProgramData\Vereintool\Daten\Konten\
C:\ProgramData\Vereintool\Daten\Mitgliedsausweis\
C:\ProgramData\Vereintool\Daten\Schreiben\
C:\ProgramData\Vereintool\Daten\Kassenbuch\2013\
C:\ProgramData\Vereintool\Daten\Kassenbuch\2013\Handkasse 2013.xls

AppPath.Location=adlPortable

C:\Users\user123\Documents\RAD Studio\Projekte\_dp\dp_177583\Win32\Debug\dp_177583.exeDaten\Daten\
C:\Users\user123\Documents\RAD Studio\Projekte\_dp\dp_177583\Win32\Debug\dp_177583.exeDaten\Daten\Konten\
C:\Users\user123\Documents\RAD Studio\Projekte\_dp\dp_177583\Win32\Debug\dp_177583.exeDaten\Daten\Mitgliedsausweis\
C:\Users\user123\Documents\RAD Studio\Projekte\_dp\dp_177583\Win32\Debug\dp_177583.exeDaten\Daten\Schreiben\
C:\Users\user123\Documents\RAD Studio\Projekte\_dp\dp_177583\Win32\Debug\dp_177583.exeDaten\Daten\Kassenbuch\2013\
C:\Users\user123\Documents\RAD Studio\Projekte\_dp\dp_177583\Win32\Debug\dp_177583.exeDaten\Daten\Kassenbuch\2013\Handkasse 2013.xls
Da kann man noch weiter mit spielen
Kaum macht man's richtig - schon funktioniert's
Zertifikat: Sir Rufo (Fingerprint: ‎ea 0a 4c 14 0d b6 3a a4 c1 c5 b9 dc 90 9d f0 e9 de 13 da 60)
  Mit Zitat antworten Zitat
 


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 10:15 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz