Novo

Forum kao aplikacija na telefonu

Dodajte forum na početni ekran i koristite ga kao aplikaciju, sa menijem na dnu ekrana.

  • 8 odgovora
  • 4.183 pregleda

Najnovija ↓

Sortiranje po kolonama u Paradox-u ??? 19.04.2007. u 21:28 · pre 237 meseci #1
Da li je moguce napravitina sortiranje podataka clickom na Column Title u paradox-u ??
ili bilo kakva opcija sortiranja.
koristim standardne komponente DataSource,Table,DBGrid.
Nisam nikako nasao da Table ima opciju Sort.

Video sam da moze preko ADOTable ali sa Access bazom.
Re: Sortiranje po kolonama u Paradox-u ??? 20.04.2007. u 08:59 · pre 237 meseci
izmenjeno 1 put, poslednji put X Files 20.04.2007. u 09:16
  1. X Files20.04.2007. u 09:16zapis iz teksta poruke
#2
Da li postoji neki poseban razlog zbog koga nisi koristio TQuery kao izvor podataka za DBGrid?

U slučajevima kao tvoj, uvek hvatam događaj:
TDBGrid::OnTitleClick(TColumn *Column)
... i generišem novi SQL upit koji uzima u obzir kolonu (Column->Field->Index) na koju
je kliknuto (ORDER BY kliknuto_polje), i dalje sve lepo radi kako se očekuje.

Kada se razmišlja o sortiranju, treba imati u vidu da se 'fizičko' sortiranje retko radi, jer na većim
tabelama to može da bude relativno dugotrajan proces, pa je kao takvo i nepoželjno. Obično se
koristi (da ga tako nazovem) 'logičko' sortiranje, tj. sortiranje gde se u raznim grid-ovima, izveštajima
i sl, sve vidi sortirano, a u stvari nije došlo do fizičkog premeštanja podataka po tabeli (čitaj hard disku).

Brzina koju vidiš uglavnom je posledica lepo postavljenih indeksa. Ako ti i ovo 'logičko' sortiranje
odgovara, savetujem da korisiš Query-je, a svakako razmisli o prelaski na ADO tehnologiju, jer BDE
kao napuštena tehnologija ima sve više i više prijavljenih problema na novijim Win OS-ovima.

EDIT:
Što se tiče mogućnosti sortiranja po tabeli, pogledaj kako bi to išlo promenom Indeksa
(koga naravno prethodno moraš i obezbediti u dizajnu baze):

// Iz knjige Charlie-a Calvert-a za BCB (lako je transformisati za Delphi):
Code:

void TForm1::DoSort(TObject *Sender)
{
   switch (dynamic_cast<TComponent *>(Sender)->Tag)
   {
      case stFirst:
         DMod->AddressTable->IndexName = "FNameIndex"; 
         break;

      case stLast:
         DMod->AddressTable->IndexName = "LNameIndex";
         break;

      case stCompany:
         DMod->AddressTable->IndexName = "CompanyIndex";
         break;
   }
}

... mada ja to nikada nisam tako radio.

Sve najbolje.
Re: Sortiranje po kolonama u Paradox-u ??? 20.04.2007. u 11:04 · pre 237 meseci
izmenjeno 1 put, poslednji put Brkic 20.04.2007. u 12:20
  1. Brkic20.04.2007. u 12:20zapis iz teksta poruke
#3
Hvala ti na savetu ali mi konkretno nije pomoglo.
Re: Sortiranje po kolonama u Paradox-u ??? 20.04.2007. u 11:36 · pre 237 meseci #4
Evo sad sam upravo napravio jedan test primer:

1. Form1
2. DBGrid1
3. TDataSource1
4. Table1 ( DBDEMOS, employee.db, koji već ima složeni indeks ByName (ime+prezime) )

To sam povezao, a tabelu 'aktivirao'.

Code:

void __fastcall TForm1::DBGrid1TitleClick(TColumn *Column)
{
   switch ( Column->Field->Index )
   {
      case 0:
         Table1->IndexName = "";
         break;

      case 1:
         Table1->IndexName = "ByName";
         break;

      case 2:
         Table1->IndexName = "ByName";
         break;

      default:
      ;
   }
}

Sortira po imenu kada se klikne na kolone Ime ili Prezime, a sortira i po ID-ju kada se klikne na ID.
Re: Sortiranje po kolonama u Paradox-u ??? 20.04.2007. u 12:40 · pre 237 meseci #5
OK,hvala na pomoci,nasao sam employee.db ali mi jos reci gde da ubacim KOD koji si napisao ???

probao sam na milion nesta ali ne prepoznaje VOID. Treba li nesto jos dodati da bi prepoznao VOID ??
Re: Sortiranje po kolonama u Paradox-u ??? 20.04.2007. u 15:37 · pre 237 meseci
izmenjeno 1 put, poslednji put X Files 20.04.2007. u 15:49
  1. X Files20.04.2007. u 15:49zapis iz teksta poruke
#6
Pa kod ubacujes u dogadjaj: OnTitleClick komponente TDBGrid, na isti način kao što to
radiš za bilo šta drugo (npr OnClick za TButton), dakle dupli klik i upišeš kod u skeleton koji ti IDE napravi.

Razlog zbog čega ti Delphi ne prepoznaje VOID je u tome što sam kod napisao u C++, a tvoje je da samo
tih par redova prevedes na Pascal.

Odavno nisam u Pascal vodama, ali nekako ovako netestirano /ti popravi/
Code:

case Column.Field.Index of
      0:  Table1.IndexName := '';
      1:  Table1.IndexName := 'ByName';
      2:  Table1.IndexName := 'ByName';
end;

ili 1:, 2:, 3:, jer bih rekao da indeksi u pascalu idu od jedinice...
Re: Sortiranje po kolonama u Paradox-u ??? 20.04.2007. u 22:01 · pre 237 meseci #7
Ok,hvala na pomoci, radi sa employee.db bazom.

sada gledam kako da napravim bazu sa slozenim indexima.
Imam neki primer za pravljenje baze iz programa ali bas ne ide.

with Table1 do
begin
Active := False;
DatabaseName := 'D:\Delphi\JA\TelImenik3\Data';
TableType := ttParadox;
TableName := 'Data2';

{ Don't overwrite an existing table }

if not Table1.Exists then begin
{ The Table component must not be active }
{ First, describe the type of table and give }
{ it a name }
{ Next, describe the fields in the table }
with FieldDefs do begin
Clear;
with AddFieldDef do
begin
Name := 'Telefon';
DataType := ftInteger;
//Required := True;
end;
with AddFieldDef do
begin
Name := 'Ime';
DataType := ftString;
Size := 30;
end;
end;
{ Next, describe any indexes }
{ with IndexDefs do
begin
Clear;
{ The 1st index has no name because it is
{ a Paradox primary key }
{ with AddIndexDef do
begin
Name := '';
Fields := 'Field1';
Options := [ixPrimary];
end;
with AddIndexDef do
begin

Name := 'Fld2Indx';
Fields := 'Field2';
Options := [ixCaseInsensitive];
end;
end; }
{ Call the CreateTable method to create the table }
CreateTable;
Active:=true;
end;
end;

Imate li neke ispravke koda da funkcionise sa sortiranjem ??
Re: Sortiranje po kolonama u Paradox-u ??? 21.04.2007. u 00:14 · pre 237 meseci #8
Ako misliš nešto ozbiljnije praviti, a ne gubiti vreme, batali BDE.
Potpis
Someone's sitting in the shade today because someone planted a tree a long time ago.
Re: Sortiranje po kolonama u Paradox-u ??? 21.04.2007. u 09:24 · pre 237 meseci #9
Ne mislim nista ozbiljno,
nesto za moje potrebe,tj vec sam napravio ali mi treba sortiranje koje sam trazio pa bi izmenuo bazu pa ako moze pomoc oko formiranja nove baze.

Prijavite se da biste odgovorili u ovoj temi.PrijavaRegistracija

Premeštanje teme