Fórum pro uživatele kancelářského balíku OpenOffice | LibreOffice
 

#1 8. 5. 2014 16:40:45

dehet
Člen
Registrace: 8. 5. 2014
Příspěvků: 7

Fromulář

Dobrý den,
zkouším vytvořit formulář, který by umožňoval zobrazit kontrolní data (podíl dvou sloupců) a zároveň umožňoval zobrazit údaj z tabulky, který by byl editovatelný (oprava podle vypočteného údaje).

V nastavení dat pro formulář jsou tři možnosti:
1. data z tabulky - pak je pole editovatelné, ale nedovedu/nejde ve formuláři zobrazit data vypočtená
2. data z dotazu (pole nejsou editovatelná) (dotaz obsahuje výpočet a spojuje dvě tabulky, možná je chyba zde?)
3. data z SQL (pole nejsou editovatelná) (dotaz spojuje dvě tabulky, dtto)

Dovedl by někdo poradit jak na to?

Díky!

Offline

#2 8. 5. 2014 18:10:56

neutr
Člen
Registrace: 8. 3. 2007
Příspěvků: 3,468

Re: Fromulář

Tohle se dělá pomocí aliasu. Vytvoříte sloupec a dáte mu nějaké jméno + výpočtový vztah. Podívejte se alias.

Editoval neutr (8. 5. 2014 19:10:25)


Moje e-mailová adresa
Pokud je Váš problém vyřešen, označte prosím svůj příspěvek za "VYŘEŠENÝ"
Zlepšíte orientaci při vyhledávání řešení JAK OZNAČIT TÉMA ZA VYŘEŠENÉ

Offline

#3 10. 5. 2014 09:20:30

dehet
Člen
Registrace: 8. 5. 2014
Příspěvků: 7

Re: Fromulář

Dobrý den, děkuji za odpověď, ale asi to není to s čím mám problém, aliasu rozumím. Problém je v tom, že když postavím formulář na dotazu nelze v něm editovat data podkladní tabulky tohoto dotazu, takže buď mohu vidět původní i vypočtená data, ale nemohu nic změnit nebo vidím jen původní data, ale nevím jakou hodnotu mám změnit, protože nevidím to co je vypočteno.

S Base jsem zkoušel experimentovat cca před 5 lety, kdy ještě nebylo moc použitelné a s databázemi mám jen mírné zkušenosti (něco jsem dělal v Accesu)

Dík.

Offline

#4 10. 5. 2014 12:29:16

neutr
Člen
Registrace: 8. 3. 2007
Příspěvků: 3,468

Re: Fromulář

To mi připadá pochopitelné. Editovat data lze jen novým dotazem, nebo zápisem dat do zdroje. Jakmile je to zpracováno máte jen "statické" náhledy. To co potřebujete je zobrazit to v Calcu a tam upravovat.


Moje e-mailová adresa
Pokud je Váš problém vyřešen, označte prosím svůj příspěvek za "VYŘEŠENÝ"
Zlepšíte orientaci při vyhledávání řešení JAK OZNAČIT TÉMA ZA VYŘEŠENÉ

Offline

#5 11. 5. 2014 22:11:55

dehet
Člen
Registrace: 8. 5. 2014
Příspěvků: 7

Re: Fromulář

Dobrý den, chápal bych to když bych chtěl změnit hodnotu, která je použita v zobrazovaném výpočtu. Jestliže však použiju pro výpočet data ze dvou sloupců a chci opravit podle toho data ve třetím sloupci, tak by tomu nic nemělo bránit. No nic v Accesu asi před 10-ti lety jsem řešil něco podobného a tam šlo myslím zadat jako zdroj prvku formuláře přímo ten vzorec, ale už si to nepamatuji.
Napadlo mně že by to mohlo jít pomocí podformuláře, kde mohu zobrazit data z jiné tabulky/dotazu, jen nevím jak zařídit, aby se synchronizoval posun po záznamech v obou tabulkách. Tuším, že to asi nepůjde. Nebo snad jo?

Offline

#6 12. 5. 2014 05:22:28

neutr
Člen
Registrace: 8. 3. 2007
Příspěvků: 3,468

Re: Fromulář

To, co uvádíte je skutečně úloha typická pro Calc. Některé databáze to umí pomocí tz. "výpočtového pole" a "vícerozměrnosti" - respektive pomocí 3. rozměru. Access to zřejmě dělá pomocí "HyperCube", která je zabudována asi od verze MSO 2003. Base ale nemá výpočtové pole ani automatickou možnost pumpovat data pomocí 3. rozměru. To se dá v určitých případech nahradit více sloupci. V Base je možné zadat některé výpočty, ale je to velice omezené.
      Zadáte například dva základní sloupce s daty, a vytvoříte 3. sloupec jako alias, který sčítá (nebo i jiná operace &, ...) několik dalších sloupců. Tyto už mají zadány různé vzorce - například s podmínkou (mohou to být také aliasy). U těchto sloupců musíte povolit záznamy typu "null" - prázdné pole.
      Následně vytvoříte pohled (sestavu) jen na ty sloupce, které chcete vidět. Ovšem to vše musí být dáno předem. Žádná dodatečná editace - nanejvýš vyjímečně oprava zdrojového záznamu.
      Je možné, že se to tak docela nevztahuje na LibreOffice, kde je zabudována databáze Firebird. Její možnosti jsem ještě nezkoumal.


      Stejně mám nepříjemný pocit, že nechápu podstatu Vaší potřeby. Píšete něco o třetím sloupci :

.."Jestliže však použiju pro výpočet data ze dvou sloupců a chci opravit podle toho data ve třetím sloupci, tak ..."..

      Rozuměl bych tomu tak, že chcete pomocí výpočtu (alias) najít chybu, nebo nějaký speciální výraz (hodnotu) a tu pak zpětně přepsat ve zdroji dat. Místo poznámky vedle Base (například v Calc kam by se vadný záznam vykopíroval a následně se zpětně dle toho přepsal zdroj) chcete přímo v daném dotazu opravit, což pochopitelně nejde. Jaký třetí sloupec máte ma mysli? Vždyť takový sloupec musí být také součástí zdroje, nebo dotazu.



      To co chcete vytvořit je vlastně zpětná vazba, která by se dala řešit teoreticky jen tak, že vytvoříte dotaz a ten zpětně upravíte na zdroj. Ten už pak přepsat (opravit) můžete. Ovšem já bych to viděl tak, že zaregistrujete Calc jako databázi a předem v Calcu tyto mouchy vychytáte.

Editoval neutr (12. 5. 2014 05:23:32)


Moje e-mailová adresa
Pokud je Váš problém vyřešen, označte prosím svůj příspěvek za "VYŘEŠENÝ"
Zlepšíte orientaci při vyhledávání řešení JAK OZNAČIT TÉMA ZA VYŘEŠENÉ

Offline

#7 13. 5. 2014 13:37:12

dehet
Člen
Registrace: 8. 5. 2014
Příspěvků: 7

Re: Fromulář

Asi se k tomu špatně vyjadřuji, ale v zásadě jste porozuměl o co mi jde. Určitě jsem neměl v úmyslu zpětnovazebně automaticky opravovat data v dotazu. V podstatě řeším ceník kde mám už nějaké předpokládané ceny za úkony, pak podle výkazu celkové ceny a ceny za jednotku chci porovnat zda předpokládaný čas na úkon odpovídá skutečnosti. Asi by bylo lepší mít ty tabulky dvě - v jedné to co se předpokládá a v druhé to co se uskutečnilo a pak to porovnávat. Ale problém je, že už ty data mám všechny pohromadě a záznamů je tam hodně někde údaj s předpokladem je jinde není a to samé na straně výkazu. Prostě mám obavu, že když bych to rozděloval tak v tom udělám binec.
Chtěl bych si jen ve formuláři zobrazit výpočet dat z výkazu a ručně ho opravit v poli předpokladu, proto ty tři sloupce.

Editoval dehet (13. 5. 2014 13:39:28)

Offline

#8 13. 5. 2014 14:22:50

neutr
Člen
Registrace: 8. 3. 2007
Příspěvků: 3,468

Re: Fromulář

Pokud to potřebujete prakticky vyřešit, tak vše (záznamy) načtěte do paměti a vložte do Calcu. Tam to můžete porovnat vzorcem. Že je toho docela hodně nevadí. Stačí aby to pobrala paměť schránky. Když ne, tak to lze odfiltrovat například podle nějakého údaje.
    Stejně bych tento problém viděl jako koncepci řešení aliasem jako souhrn všech proměnlivých dat. Možná jde o problém relací, nebo se dá předpokládat problém integrity, ale pokud jste neudělal nejakou zásadní chybu v koncepci evidence, tak je to řešitelné snadno.
    Nemám asi úplně konkrétní představu a fabulovat podle slovního popisu problém + řešení bývá náročné a mnohdy chybné. MOŽNÁ BYSTE MĚL POSTNOUT UKÁZKU.


Moje e-mailová adresa
Pokud je Váš problém vyřešen, označte prosím svůj příspěvek za "VYŘEŠENÝ"
Zlepšíte orientaci při vyhledávání řešení JAK OZNAČIT TÉMA ZA VYŘEŠENÉ

Offline

#9 13. 5. 2014 14:32:32

dehet
Člen
Registrace: 8. 5. 2014
Příspěvků: 7

Re: Fromulář

Tak jsem se právě zjistil, že problém je v tvorbě dotazu. Jakmile je v dotazu více tabulek a mezi nimi relace, tak nelze editovat žádné pole, které ten dotaz zobrazí.
Je to chyba Base nebo dělám chybu já?

Editoval dehet (13. 5. 2014 14:54:05)

Offline

#10 13. 5. 2014 15:35:51

neutr
Člen
Registrace: 8. 3. 2007
Příspěvků: 3,468

Re: Fromulář

U relace se sleduje především přiřazení. V realční sdatabázi (trošku odlišný pojem) se to svazuje primárním (unikátním) klíčem. U relace se svazují sloupce volbou, které nemusí být klíčem jako takovým (unikátní, primární, neunikátní, cizí ap.)
     Po svázání "relací" se editace nepředpokládá alespoň u těch záznamů (sloupců) ktetré jsou přímo vázány. Jiné sloupce ano, nejméně pokud je umožněna hodnota null (ele nejsem si jist).
     Vzhledem k tomu, že zřejmě vážete dva sloupce z nichž bude 1 (nebo oba) klíčem, tak to divné není. Ale zase platí, že asi nemám úplně správnou představu. Máte 2 tabulky s "x" a "y" sloupci. Kolik vazeb (jednotlivých relací) tak figuruje? Jsou tam vazby na klíče tabulek?


Moje e-mailová adresa
Pokud je Váš problém vyřešen, označte prosím svůj příspěvek za "VYŘEŠENÝ"
Zlepšíte orientaci při vyhledávání řešení JAK OZNAČIT TÉMA ZA VYŘEŠENÉ

Offline

#11 13. 5. 2014 15:45:36

dehet
Člen
Registrace: 8. 5. 2014
Příspěvků: 7

Re: Fromulář

Ano jsou tam vazby na klíče. Zkusím to předělat a dám vědět jak to dopadlo.
Díky

Offline

#12 15. 5. 2014 15:04:08

dehet
Člen
Registrace: 8. 5. 2014
Příspěvků: 7

Re: Fromulář

Tak jsem to zkoušel horem dolem, ale pořád nic. Jakmile tam je relace, tak editovat nelze.
Mám dvě tabulky A a B.
Tabulka A je hlavní a obsahuje primární klíč ID, pole ID_B a další pole s daty.
Tabulka B je pomocná obsahuje primární klíč ID (doplnil jsem ID_A, kde hodnoty ID = ID_A) a data.
- Když vytvořím dotaz z těchto dvou tabulek a chci získat všechny záznamy z tabulky A, tak vytvořím relaci mezi A.ID_B a B.ID (buď levé nebo pravé spojení) - pak však záznamy editovat nelze (zkoušel jsem to pro všechny typy spojení).
- Mimochodem, zkoušel jsem to i v návrhovém okně relací, ale tam nelze vytvořit jinou relaci než na primární klíč (vyskočí chyba).
- Zkusil jsem tedy vytvořit dotaz s relací A.ID_B a B.ID_A (ani jedno není primární klíč) - záznamy přesto editovat nelze.
SELECT "A".*, "B"."Data" FROM { OJ "B" RIGHT OUTER JOIN "A" ON "B"."ID_A" = "A"."ID_B" }
Z toho co jste psal, tak jsem nezkusil jedině to s tou hodnotou NULL, protože nevím jak a kde.
Napadá vás ještě něco v čem by mohla být chyba?
Poslal bych obrázek, ale nevím zda sem lze vložit.

Editoval dehet (15. 5. 2014 15:28:37)

Offline

#13 17. 6. 2014 13:39:39

student
Člen
Registrace: 27. 2. 2006
Příspěvků: 112

Re: Fromulář

Niečo podobné som riešil... už skôr. Tuším, že výpočet som robil pomocou samostatného dotazu, ktorý som manuálne vložil do formulára .... ako tuším nejaké pole resp. podformulár.

Offline

Zápatí