Autor Téma: Výběr a nastavení preferovaného záznamu ala RadioGroup  (Přečteno 1374 krát)

Online Jirka

  • Hrdina
  • ****
  • Příspěvků: 445
  • Karma: 9
    • Verze Delphi: XE2
Příklad tabulky se vzorovou strukturou
ID (INTEGER)
TEXT  (STRING)
PREFEROVANO (BOOL)


Potřeboval bych nastavit chování v programu tak  aby při kliknutí na jakýkoliv záznam v tabulce   (v gridu) se údaj PREFEROVANO označil jako true a ten který byl nastavený původně jako true se automaticky přepnul false (chování jako komponenta RadioGroup). 
Než se pustím do trigerů s procházením tabulky a aplikace změn , chtěl jsem se zeptat zda náhodou neexistuje lepší a jednodušší způsob jak toho docílit


Offline Stanislav Hruška

  • Padawan
  • ******
  • Příspěvků: 6161
  • Karma: 44
    • Verze Delphi: W10 + D11
Re:Výběr a nastavení preferovaného záznamu ala RadioGroup
« Odpověď #1 kdy: 04-03-2020, 18:23:30 »
To vyzerá na dobrú divočinu. Pod gridom rozumieš DBGrid? Naozaj to potrebuješ meniť v tabuľke?
Čo vlastne riešiš. Možno je lepšia cesta.
Na to spúšť nepotrebuješ. V dvoch krokoch:
1) UPDATE MYTABLE SET PREFEROVANO (fuj, čo tu robí čeština) = 0/FALSE WHERE PREFEROVANO = 1/TRUE
2) UPDATE MYTABLE SET PREFEROVANO = 1/TRUE WHERE PRIMARYKEY = :PRIMARYKEY - ten získaš z aktuálneho záznamu. Alebo použi priamo Edit, ak to je možné.
W10 64b, Delphi 10.4, FireBird 3.08
Expert na kladenie nejasne formulovaných otázok.

Offline vandrovnik

  • Guru
  • *****
  • Příspěvků: 1299
  • Karma: 51
    • Verze Delphi: 10.3
Re:Výběr a nastavení preferovaného záznamu ala RadioGroup
« Odpověď #2 kdy: 04-03-2020, 18:28:13 »
Ten trigger bych stejně udělal, jednak mi přijde rychlejší vyřešit vypnutí na serveru než to dělat v aplikaci, druhak bude alespoň jistota, že když někdo nastavi Preferovano na true přímo v tabulce na serveru, tak se ty ostatní taky vypnou.

Online Jirka

  • Hrdina
  • ****
  • Příspěvků: 445
  • Karma: 9
    • Verze Delphi: XE2
Re:Výběr a nastavení preferovaného záznamu ala RadioGroup
« Odpověď #3 kdy: 04-03-2020, 18:41:17 »
Ten trigger bych stejně udělal, jednak mi přijde rychlejší vyřešit vypnutí na serveru než to dělat v aplikaci, druhak bude alespoň jistota, že když někdo nastavi Preferovano na true přímo v tabulce na serveru, tak se ty ostatní taky vypnou.

Asi mi nic jiného nezbyde než ta ruční práce,   já jen trošku doufal že existuje automatizovanější postup uvnitř FB engine  :)

Online Jirka

  • Hrdina
  • ****
  • Příspěvků: 445
  • Karma: 9
    • Verze Delphi: XE2
Re:Výběr a nastavení preferovaného záznamu ala RadioGroup
« Odpověď #4 kdy: 04-03-2020, 18:43:25 »
To vyzerá na dobrú divočinu.
Proč by ?
Já to pokládám za vcelku standardní požadavek obsluhy

Offline vandrovnik

  • Guru
  • *****
  • Příspěvků: 1299
  • Karma: 51
    • Verze Delphi: 10.3
Re:Výběr a nastavení preferovaného záznamu ala RadioGroup
« Odpověď #5 kdy: 04-03-2020, 18:44:43 »
Asi mi nic jiného nezbyde než ta ruční práce,   já jen trošku doufal že existuje automatizovanější postup uvnitř FB engine  :)

A nebylo by lepší mít jinou tabulku, ve které by bylo ID toho preferovaného záznamu? přepisovalo by se to tím pádem jen na jednom místě.

Online Jirka

  • Hrdina
  • ****
  • Příspěvků: 445
  • Karma: 9
    • Verze Delphi: XE2
Re:Výběr a nastavení preferovaného záznamu ala RadioGroup
« Odpověď #6 kdy: 04-03-2020, 18:53:31 »
Asi mi nic jiného nezbyde než ta ruční práce,   já jen trošku doufal že existuje automatizovanější postup uvnitř FB engine  :)

A nebylo by lepší mít jinou tabulku, ve které by bylo ID toho preferovaného záznamu? přepisovalo by se to tím pádem jen na jednom místě.
Myslím že ne
1. Těchto číselníků   bude naprosté minimum
2. Jedná se o číselníky s maximálně desítkami záznamů
3. Změny nastavení budou probíhat velmi sporadicky a nehrozí ono bobtání databáze
4.  Uvnitř databáze mohu volat přímo tabulku a nikoliv VIEW  (odpadnou reference při případných změnách )

Offline Stanislav Hruška

  • Padawan
  • ******
  • Příspěvků: 6161
  • Karma: 44
    • Verze Delphi: W10 + D11
Re:Výběr a nastavení preferovaného záznamu ala RadioGroup
« Odpověď #7 kdy: 04-03-2020, 19:07:46 »
Aha, už som pochopil význam slova PREFEROVANO.
Ja by som zvolil zápis do JSON súboru. Každý užívateľ by mal svoju vlastnú voľbu. Tak mám riešený vzhľad a správanie/voľby aplikácie. Čo užívateľ, to vlastný JSON súbor.
W10 64b, Delphi 10.4, FireBird 3.08
Expert na kladenie nejasne formulovaných otázok.

Online Jirka

  • Hrdina
  • ****
  • Příspěvků: 445
  • Karma: 9
    • Verze Delphi: XE2
Re:Výběr a nastavení preferovaného záznamu ala RadioGroup
« Odpověď #8 kdy: 04-03-2020, 22:25:11 »
Aha, už som pochopil význam slova PREFEROVANO.
Ja by som zvolil zápis do JSON súboru. Každý užívateľ by mal svoju vlastnú voľbu. Tak mám riešený vzhľad a správanie/voľby aplikácie. Čo užívateľ, to vlastný JSON súbor.
A kam ten JSON soubor ukládáš ?

Offline Stanislav Hruška

  • Padawan
  • ******
  • Příspěvků: 6161
  • Karma: 44
    • Verze Delphi: W10 + D11
Re:Výběr a nastavení preferovaného záznamu ala RadioGroup
« Odpověď #9 kdy: 05-03-2020, 08:35:32 »
K *.exe. Názvy budú podľa mena prihláseného. Ale každý to má ináč. Medze sa nekladú. Predpokladám, že to pri ostrej verzii zmením, aby som nedráždil užívateľov.
Mám tam jednu fintu. Pri ladení sa mi dosť často stávalo, že sa mi ten súbor rozbil. Preto pri každom zatvorení aplikácie vytváram zálohu a v prípade poškodenia súboru ju použijem. Odvtedy som nemusel použiť prázdny súbor.
W10 64b, Delphi 10.4, FireBird 3.08
Expert na kladenie nejasne formulovaných otázok.

Offline pf1957

  • Padawan
  • ******
  • Příspěvků: 3343
  • Karma: 139
    • Verze Delphi: D2007, XE3, DX10
Re:Výběr a nastavení preferovaného záznamu ala RadioGroup
« Odpověď #10 kdy: 05-03-2020, 10:47:18 »
K *.exe. Názvy budú podľa mena prihláseného. Ale každý to má ináč. Medze sa nekladú.
Ale kladú...
1. standardni umisteni .exe ma byt v Program Files (ve strukture Company / Product /)
2. Program Files ma standardne nastavena opravneni jen ke cteni a spusteni, takze tam nema zadny soubor, do ktere se zapisuje, co delat.
3. Data na per user bazi maji byt nekde na ceste:
Kód: Delphi [Vybrat]
  1. GetSpecialFolderLocation(CSIDL_APPDATA)
typicky taky ve strukture Company / Product /



Online Jirka

  • Hrdina
  • ****
  • Příspěvků: 445
  • Karma: 9
    • Verze Delphi: XE2
Re:Výběr a nastavení preferovaného záznamu ala RadioGroup
« Odpověď #11 kdy: 05-03-2020, 14:22:43 »
Ale kladú...
1. standardni umisteni .exe ma byt v Program Files (ve strukture Company / Product /)
typicky taky ve strukture Company / Product /
Osobně takto striktní  nejsem (a znám pár firem co také ne)  .

Obecně taky používám "Company / Product /"  ale dám při instalaci na výběr kam to celé umístnit.
Pro správný chod aplikace je jen nutné aby ve složce produkt zachoval danou strukturu adresářů . Tím pádem je celá aplikace "Portable" i  v sítovém provozu

Offline pf1957

  • Padawan
  • ******
  • Příspěvků: 3343
  • Karma: 139
    • Verze Delphi: D2007, XE3, DX10
Re:Výběr a nastavení preferovaného záznamu ala RadioGroup
« Odpověď #12 kdy: 06-03-2020, 08:24:17 »
Obecně taky používám "Company / Product /"  ale dám při instalaci na výběr kam to celé umístnit.
Pro správný chod aplikace je jen nutné aby ve složce produkt zachoval danou strukturu adresářů . Tím pádem je celá aplikace "Portable" i  v sítovém provozu
Jedna vec je dat moznost nainstalovat kamkoli a druha zajistit spravnou funkci aplikace pri standardnim umisteni, ktere se na Windows predpoklada. Jsou to vetsinou torza velmi zastaralych praktik z dob DOSu, kdy clovek byl panem v podstate celeho pocitace a existuji korporatni prostredi/politiky, kde by se nic takoveho nedalo vubec nainstalovat natoz spoustet.

Dalsi vec je portable varianta: to je vetsinou nejaka minimalisticka instalace, kterou regulerne zajistuje instalator a aplikace se podle zpusobu instalace chova jako portable/full-fledged.

Jinak z meho osobniho pohledu neni okolnost, ze nekdo neco dela spatne, duvod to nasledovat ;-)


Online Jirka

  • Hrdina
  • ****
  • Příspěvků: 445
  • Karma: 9
    • Verze Delphi: XE2
Re:Výběr a nastavení preferovaného záznamu ala RadioGroup
« Odpověď #13 kdy: 06-03-2020, 20:23:09 »
Jinak z meho osobniho pohledu neni okolnost, ze nekdo neco dela spatne, duvod to nasledovat ;-)

Samozřejmě, s tím naprosto souhlasím, otázkou může být jen  "kdo a kdy to vlastně dělá špatně"  ;)

Offline pepak

  • Padawan
  • ******
  • Příspěvků: 1559
  • Karma: 37
    • Pepak.net
Re:Výběr a nastavení preferovaného záznamu ala RadioGroup
« Odpověď #14 kdy: 07-03-2020, 14:47:39 »
Excellent
Rated 1 time
No tak ukládat konfigurační soubory do stejného adresáře jako exáče je prostě špatně, tečka. Jak pf píše, správné umístění je v profilu uživatele nebo ve sdílených profilech (má-li být konfigurace společná pro všechny). Na tom není o čem uvažovat, toto jsou jednoznačná fakta. Uvažovat pak můžeme o speciálních případech, např. právě portable provoz, tam je možných variant více a závisí i dost na tom, co má aplikace dělat. Ale ani tam prostě nikdy není správně míchat zapisovatelné (konfigurace) a nezapisovatelné (exáče) soubory, ty musí být vždy odděleně. Jednoduché řešení je read-only soubor obsahující cestu, kde jsou uložené konfigurační soubory (a pokud tento soubor neexistuje, předpokládá se standardní instalace s konfigurací v profilu), případně je možné uvažovat např. o podadresáři pro konfigurace (protože ten může být nastaven jako zapisovatelný, aniž by to negativně ovlivnilo bezpečnost aplikace). Jednoznačně pak jsem za to, aby instalace byla do Program Files s tím, že uživatel si to případně na svou zodpovědnost přesune jinam; možnost uživatelského rozhodnutí při instalaci je OK, ale riziková (drtivá většina lidí netuší, proč by měli používat Program Files). Ale jednoznačně špatně je, cpát exáče by default někam jinam, třeba do profilu, jako to dělá řada programů, protože se chtějí umět samy aktualizovat a jejich tvůrci neumí pracovat s přístupovými právy.
« Poslední změna: 07-03-2020, 14:50:16 od pepak »