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

#26 Base » Správa databáze FoxPro pomocí modulu BASE - VYŘEŠENO » 30. 7. 2020 20:42:41

hdplot
Odpovědí: 5

Prosím o pomoc. Snažím se připojit a pracovat s databázi z FoxPro. Formát souborů je *.dbf a připojení se mě podařilo přes "Připojit k databázi" -> "dBase". Všechny tabulky vidím a můžu s nimi pracovat (editovat, přidávat položky a pod.), takže mezi tabulkami začínám připravovat vztahy a vazby tak, aby to fungovalo a zobrazovalo stejné údaje jako původní program Foxky.


Problém je, pokud má tabulka jedno z polí deklarované jako typ Memo. V tom případě si Foxka vytvořila další dva soubory. Např. tabulka "zakazky.dbf" má jednu z položek "Poznamka" typu Memo a v adresáři existují soubory "zakazky.cdx" a "zakazky.fpt". Soubory jsem přejmenoval na txt a prohlédl v Notepadu. *cdx" je nečitelný (rozsypaný čaj) a předpokládám, že je to soubor indexů ??. V souboru *.ftp"se dají dohledat texty, které se v původní FoxPro zobrazují v poli Poznamka. Jsou to tedy mnou požadovaná data.


Ale když v Base vytvořím Prvek textové pole a připojím ho k položce tabulky Poznamka, tak se v tomto prvku žádný text nezobrazuje.


Dotaz tedy zní, co a jak se musí nastavit, aby Base dokázala tyto data načíst a nebo po změně zase korektně uložit do souboru.



Díky za radu

#27 Re: Writer » Vložit obrázek na řádek - VYŘEŠENO » 14. 2. 2020 15:05:17

Možná trochu opožděně, ale zašlu svůj postup. V podstatě se shoduje s tím, jak postupuje tazatelka s malým rozdílem. Tedy:

1) Vložím obrázek - umístí se nahodile
2) Edituji vlastnosti vložení - dám umístit jako znak - na dříve nahodilém umístění se zarovná do pozice k nejbižšímu znaku
3) Znovu obrázek vyberu a dám vyjmout (CTRL+X)
4) Posunu kurzor na místo, kde chci obrázek mít a vložím (CTRL+V) - vloží se zpět, ale už s nastaveným umístěním jako znak, takže zůstane na místě kurzoru.

Není to tak moc práce a obejdu se bez makra - tedy univerzální použití kdykoliv

#29 Base » Programové ovládání prvku formuláře - VYŘEŠENO » 8. 11. 2019 08:01:56

hdplot
Odpovědí: 3

Mám databázový rozmulář s makry. Na formuláři je tlačítko a makrem ovládám text zobrazený na tlačítku. Příkaz vypadá takto:


ThisComponent.Drawpage.Forms.getByName("Form1").Button1.Label = "ABCD"


a způsobí, že příslušnému tlačítku "Button1" na formuláři "Form1" se změní zobrazený text na ABCD. Vše funguje jak má. Pokud ale chci stejným postupem změnit nějakou jinou vlastnost (např. šířku tlačítka) a napíšu obdobný příkaz:


ThisComponent.Drawpage.Forms.getByName("Form1").Button1.Width = 5


dostanu chybovou hlašku:


BASIC runtime error.
Property or method not found:Width


Ukázku s chybou Width jsem zvolil záměrně, protože Label i Width se vyskytují v editačním formuláři prvku a předpokládal jsem, že tak, jak jsou označené, tak se také interně volají (Label ano, Width bohužel ne). Ve skutečnosti ale nechci měnit ani Label, ani Width, ale barvu tlačítka, která je v editačním formuláři označená jako Background color, Zde jsem zkoušel .....("Form1").Button1.bgcolor.... a jiné podobné varianty, ale vše neúspěšně.


Možnosti jsou dvě: Buďto lze programově měnit pouze některé vlastnosti prvků formuláře (a s tím nic nenadělám), nebo je chyba v zápisu a klíčové slovo Width neexistuje (obdobně bgcolor atd) ale správně tam patří nějaké jiné klíčové slovo. ??? jaké ???


Kde lze seznam těchto příkazů najít ?
Díky za radu

#30 Re: Base » SQL dotaz na prázdnou položku - VYŘEŠENO » 5. 11. 2019 07:36:28

Děkuji za radu už to funguje. Podstatné bylo to, co napsal neutr "samotné "NULL" nic bez předpony neznamená. Správný dotaz je IS NULL tedy "je prázdné"."


Takže celý dotaz pak vypadá následovně:


SELECT * FROM "Platby_A_Dokumenty" WHERE "Dokument" IS NULL


nebo pro variantu "není prázdné" pak takto


SELECT * FROM "Platby_A_Dokumenty" WHERE NOT "Dokument" IS NULL


PS - jen pro info, používám AOO, takže tato syntaxe platí i na této konfiguraci

#31 Base » SQL dotaz na prázdnou položku - VYŘEŠENO » 4. 11. 2019 13:45:10

hdplot
Odpovědí: 3

Mám databázovou tabulku (databáze plateb a dokladů) s položkami (pro zjednodušení) ID, částka, popis, odkaz, kde odkaz je textové pole s uvedeným odkazem na soubor (faktura vztahující se k hodnotě částka). Ne ke všem částkám je vyplněn údaj odkaz - tedy existují záznamy, ke kterým není přiřazena faktura. Potřebuji napsat SQL dotaz, který vyfiltruje záznamy - je faktura X není faktura.

Jedná se mi tedy o syntaxi dotazu, jak se zeptat, jestli je dané pole prázdné, nebo jestli obsahuje nějaký (libovolný) řetězec znaků. Jěco jako je NULL nebo NOT NULL, ale nedokážu přijít na správkou syntaxi.

Díky za radu

#33 Writer » Mazání položek typu "Pole" - VYŘEŠENO » 3. 8. 2019 09:44:02

hdplot
Odpovědí: 2

Mám dokument, ve kterém existuje několik položek typu Pole (názvy kapitol) které jsou provázané na Obsah dokumentu. Tyto pole byly vytvořeny pomocí menu "Vložit" - "Pole" - "Jiné" - "Křížové odkazy" - "Vložit referenci". Následně pak byly vytvořené vazby na část dokumentu s Obsahem.


Nyní vytvářím jiný dokument, který vznikl z původního Uložit jako ... Tento nový dokument edituji a některá z polí již nejsou potřebná. Pokud je ale v dokumentu i v obsahu smažu, stále zůstávají v tabulce "Vložit" - "Pole" - "Jiné" - "Křížové odkazy", přestože již nejsou funkční, přesněji řečeno již vůbec neexistují. Tímto se ale tabulka stává stále nepřehlednější. Jak správně postupovat, aby po smazání pole i křížového odkazu zmizel tento prvek i ze seznamu, a jak dodatečně odmazat z tabulky ty prvky, které tam v soušasné době již zůstaly po smazaných odkazech.


Děkuji za radu

#34 Re: Calc » Vnořené logické výrazy - VYŘEŠENO » 31. 7. 2019 05:34:29

Jenom na vysvětlenou - v buňce E6 je počet zubů ozubeného kola. Je to ze 70% pro moji vlastní potřebu, ale i v případě využití jinými lidmi to nejsou hlupáci, i z logiky věci tam číslo menší než cca 5 nedají. Něco mezi 5 až 9 už by někoho mohlo napadnout, ale norma to nepřipouští - proto ta hláška "je menší než 9" Pokud by to mělo být exaktní, tak správně by tam měla být kontrola, že v E6 je celé číslo (12,5 zubu taky neexistuje :-) ) a to taky nedělám. Nemá to být "blbuvzdorný" výpočet, ale pomůcka pro zrychlení práce.


A tak to funguje, takže díky za pomoc

#35 Re: Calc » Vnořené logické výrazy - VYŘEŠENO » 30. 7. 2019 13:28:17

Používám AOO verzi 4.1 a ta funkci IFS NEZNÁ. Proto jsem se snažil to slepit pomocí funkce IF a tam jsem se utopil v těch závorkách. Jak byto tedy bylo s použitím pouze IF ?

EDIT:

Tak s vaší napovědou už jsem to dal :-)

=IF(D6<9;"zubů < 9";IF(D6<=16;72;IF(D6<=40;60;50)))

Díky

#36 Calc » Vnořené logické výrazy - VYŘEŠENO » 30. 7. 2019 12:16:42

hdplot
Odpovědí: 6

Už se s tím trápím celý den, asi jsem už vyzkoušel všechny možnosti zápisu kromě té správné. V buňce D6 mám číslo, které měním (zadávám). Do buňky D31 potřebuji dosadit podle D6 jiné číslo dle následujícího:

D6 < 9 do D31 dosaduji text "zubů < 9"
D6 je 9 až 16 do D31 dosazuji číslo 72
D6 je 17 až 40 do D31 dosazuji číslo 60
D6 > 40 do D31 dosazuji číslo 50

Vždycky se někde ztratím v závorkách, takže buď to hlásí error, nebo dává nesprávné výsledky. Jak má tedy správně zápis vypadat ?

#37 Base » Funkce Group pro pole typu Datum » 16. 4. 2019 14:54:54

hdplot
Odpovědí: 1

Mám tabulku, která obsajuje jedno pole "Datum" a jedno pole "Cislo" Potřebuji napsat dotaz, který určí součet polí "Cislo" podle toho, jak seskupí pole "Datum", tedy něco takového:

SELECT "Datum", SUM( "Cislo_1" ), COUNT( "Datum" ) FROM "Table1" GROUP BY "Datum"

Toto fubguje ale pouze v případě dvou stejných datumů. Jak ale postupovat, pokud chci seskupit např. podle celého měsíce, tedy vyřadit z porovnávání dny (nebo pro případ celého roku, tedy vyřadit v potovnávání dny i měsíce)

Díky za radu

#38 Re: Calc » Prázdná buňka ve vzorci - VYŘEŠENO » 16. 10. 2017 06:42:11

Jak prosté - nechápu, proč mě to nenapadlo :-(

#39 Calc » Prázdná buňka ve vzorci - VYŘEŠENO » 14. 10. 2017 07:13:52

hdplot
Odpovědí: 2

Mám vzorec =IF((ABS(C33))<60;C44;0), který potřebuji upravit tak, aby místo 0 dosazoval prázdnou buňku. Zkoušel jsem výraz NULL, ale bylo to špatně. Jaký správný výraz použít ??

Děkuji za radu

#40 Re: Calc » Rozbalovací seznam hodnot v buňce - VYŘEŠENO » 1. 6. 2017 12:45:24

Zkusil jsem a chápu význam slova "seřadit". Nechápu ale proč u "U" profilů mu to vadí a chová se jinak než u "I" nebo "UPE" profilů které taky vlastně seřazené nebyly. (Ale to už je jen tak pro zajímavost, nevadí když zůstane příčina neznámá. Důležité je že to začalo fungovat)

#41 Re: Calc » Rozbalovací seznam hodnot v buňce - VYŘEŠENO » 1. 6. 2017 11:59:47

Oddíl U seřazený vzestupně je "U" mezera a pak čísla vzestupně. Stejně je to i pro I - "I" mezera a čísla vzestupně. Přesto I funguje vždy a U jenom někdy.


Nicméně doplnění čtvrtého parametru pomohlo, takže to vidím jako vyřešené - Díky

#42 Re: Calc » Rozbalovací seznam hodnot v buňce - VYŘEŠENO » 1. 6. 2017 11:48:53

Tak mě to tedy nefunguje ani po smazání mezery. Zkusil jsem místo mezery doplnit podtržítko a taky bez úspěchu. Když jsem změnil text na z "U" na "UPE" (což je taky jeden z typů profilů, ale s jinými rozměry), tak to začalo fungovat i s tou mezerou

#43 Re: Calc » Rozbalovací seznam hodnot v buňce - VYŘEŠENO » 1. 6. 2017 06:24:30

Vracím se k úplně prvotnímu dotazu tohoto vlákna. Po vyřešení jsem si vytvořil tabulku s hodnotami I profilů (jak bylo naznačeno v dotazu), která fungovala bez problémů. Nyní jsem tuto tabulku doplnil o U profily (stejný postup, stejné vzorce, jenom rozsah buněk je jiný) a tabulka nefunguje. Správně zobrazuje hodnoty pro U 30 až U 80 a pak pro U 160. Pro ostatní hodnoty doplňuje znak #N/A. Nejlépe to asi bude patrné z přiložené ukázky - https://ulozto.cz/!jYZN7Ql9g1IU/i-profily-ods


Vůbec netuším, kde by mohla být chyba. Testováno na OO 4.1.1, OO 4.1.3 a LO 5.0.0. Poradíte ?

#45 Calc » Tlačítko v xlsm souboru v AOO nefunguje - VYŘEŠENO » 5. 4. 2017 13:14:05

hdplot
Odpovědí: 2

Zdravím a prosím o radu. Mám soubor vytvořený v Excelu (xlsm), který obsahuje dialogy a makra. Otevření v AOO proběhne bez problémů (bez jakékoliv výhružné hlášky) a po otevření vypadá soubor vizuálně stejně jako v Excelu. Bohužel ale je v listu umístěno jedno tlačítko (velké přes asi 6 buněk listu), které má vyvolat dialog pro zadání hodnot. (Ty se pak makrem zpracovávají a přepisují do příslušných buněk sešitu.) V Excelu vše funguje, ale v OO nelze na tlačítko vůbec kliknout - po kliknutí se vždy zvýrazní některá z buněk pod tlačítkem. Tedy nemůžu vůbec spustit dialogové okno a následně pak testovat eventuální funkčnost nebo nefunkčnost maker, protože se zaseknu hned na počátku.


Je chyba někde v nastavení zobrazení, nebo je to obecně problém otevření souboru Excelu v OO. Díky za radu.

#46 Re: Base » Univerzální použití makra v různých formulářích - VYŘEŠENÝ » 13. 2. 2017 08:54:50

Ano - toto je v zásadě to, co jsem chtěl. Jenom jsem vyhodil tem MsgBox a rozhodování ponechávám na makru podle jiné podmínky. Díky za radu

#47 Re: Base » Univerzální použití makra v různých formulářích - VYŘEŠENÝ » 10. 2. 2017 12:09:57

No jde o to, že formů je několik a zobrazují různá data z různých tabulek. Jednou se tedy jedná např. Form A který kouká do tabulky A (výkresy) a zobrazuje odkaz na soubor výkresu. Podruhé se jedná o Form B, který kouká do tabulky B (účetnictví) a zobrazuje odkaz na soubor faktury. Potřetí pak třeba o Form C, který kouká do tabulky C (zákazníci) a zobrazuje odkaz na web zákazníka. Podle výběru konkrétního řádku z tabulky v daném konkrétním formu se mi nabídne konkrétní výkres (nebo faktura atd.) k otevření. Tento odkaz zpracuje makro a tlačítkem se odkaz otevře. Ale form pro výkresy kromě odkazu zobrazuje i jiné údaje vztahující se k výkresu. Totéž form pro zákazníky a podobně. Nelze je tedy nijak slučovat do jednoho formu.


Tedy z pohledu spouštěných odkazů se jedná o zcela nezávislé tabulky i formuláře. Jde jen o to, že PRINCIP SPOUŠTĚNÍ odkazu je vždy stejný - tedy použité makro je prakticky stejné, jenom názvy prvků formuláře se mění, protože se jedná o různé nezávislé formuláře. Na každém z formů je vždy jen ten jeden typ odkazu a jenom to jedno tlačítko, které to otevírá. Jestli jsem tedy dobře pochopil vaši odpověď, tak by to tak nešlo, protože v rozbalovacím menu nelze nabízet jednou výkres a jednou fakturu - jedná se o dvě rozdílné věci a dva rozdílné formuláře.


ANO - to P.S. by asi bylo řešení. Mít na každém formuláři nějaký rozlišovač, o jaký form se jedná (třeba skrytý Label). Ten načíst a pak v makru podle tohoto přiřadit správné jména prvků, které by byly v makru připravené jako konstanty

#48 Base » Univerzální použití makra v různých formulářích - VYŘEŠENÝ » 10. 2. 2017 09:36:00

hdplot
Odpovědí: 4

Mám soubor Base, který obsahuje několik formulářů. V jednom z formulářů používám makro na otevření odkazu, který je uložen v tabulce databáze.


Sub PathRun
  dim oForm1, oForm2 as object
  dim sPathRun as string
  oForm1=ThisComponent.Drawpage.Forms.getByName("FiltrForm")
  oForm2=oForm1.getByName("SubForm")
  sPathRun=oForm2.getByName("Path").text 'Načte hodnotu odkazu z pole databáze'
  oForm2.getByName("Button_odkaz").targeturl = sPathRun 'uloží tuto hodnotu do tlačítka - odkaz pro otevření URL'
End Sub


Odkaz potom otevírám klepnutím na tlačítko pomocí akce Open dokument/web page


Nyní bych toto (podobné) makro chtěl použít v dalších asi 5 různých formulářích. Funkce bude stejná, ale prvky na ostatních formulářích se jmenují pokaždé jinak (jedná se o jména "FiltrForm", "SubForm", "Path", "Button_odkaz"). Přejmenovávat jednotlivé formuláře a prvky se mi nechce - má to vazbu i na jiná makra a celé by se mi to rozházelo a sesypalo. Existuje nějaké jiná možnost, jak výše uvedené makro udělat univerzální, nebo musím napsat pět identických maker, které se budou lišit jenom jmény odkazovaných prvků?

#49 Re: Calc » Samovolná změna vzorce - VYŘEŠENO » 9. 2. 2017 15:04:39

Problém považuji za vyřešený, ale protože řešení je několik, tak to shrnu.


1) Řešení dle neutr. - Po úpravě maker již vše funguje správně a hodnoty měsíců se aktualizují tak, jak mají. Nevýhodu vidím v tom, že pro každý měsích se musí nastavit trochu jiný vzorec pro sumarizaci (jiná podmínka), takže toto je nutné si připravit v makrech buďto předem s rezervou - výhled do budoucnosti, nebo makra průběžně každý měsíc aktualizovat


2) Řešení dle hdplot. - Nedalo mi to a vyzkoušel jsem variantu, kterou jsem zde v diskusi zmiňoval - tedy nevytvářím žádné pomocné sloupce Rok=Year(buňkaSdatumem) a Měsíc=Month(buňkaSdatumem), ale podmínku směřuji přímo do sloupce s Datumem z databáze, tedy =SUMIF(RozsahBuněkSdatumem;".12.2016";RozsahBuněkShodnotami). Takto lze použít původní neupravovaná makra a RozsahyBuněk se aktualizují v obou sloupcích (podmínka i sčítané hodnoty), protože se jedná o původní buňky vyplňované původním makrem. Nevýhoda je stejně jako u neutr, tedy je nutné si připravit vzorce pro jednotlivé měsíce v buňkách dopředu - výhled do budoucnosti, nebo buňky průběžně každý měsíc doplňovat o další řádek


3) Řešení dle lp. - Sám bych to nedal dohromady, ale podle návodu to šlo dobře a funfuje to také správně. Toto bych řekl, že je v daném případě nejlepší řešení, protože s postupným přidáváním dalších měsíců a roků do databáze se kontingenční tabulka sama automaticky rozšiřuje, takže jednou napsané řešení je bez úprav funkční neustále.


Vyzkoušeno a pro danou databázi dávají všechna 3 řešení rovnocenné výsledky, takže použít může každý co je mu bližší, nebo v návaznosti na ještě nějaké další požadované výstupy a pohledy na zdrojová data. Nicméně i nepoužité řešení bude zdrojem informací pro příště - díky za pomoc

#50 Re: Calc » Samovolná změna vzorce - VYŘEŠENO » 8. 2. 2017 08:42:56

Pro neutr


V zaslané ukázce (znovu přikládám odkaz) - Ukázkové soubory - je soubor CALCu a soubor BASE na kterých to testuji. Předpokládal jsem, že když si jej stáhnete a soubor BASE zaregistrujete, tak můžete provést testy, o kterých jsem psal a ze kterých bude zřejmý problém. Nelze to jenom prohlédnout, musí se stím experimentovat. Stačí jenom do BASE doplnit nebo odmazat nějaký záznam (nebo více záznamů) a následně načíst a aktualizovat CALC a po několika takovýchto pokusech by mělo být zřejmé, v čem je problém. Myslím, že je to určitě tím, že CALC při práci makra přidává nebo maže řádky, ale nějak "podivně" - v některých sloupcích se to projeví a v některých ne.


Pokud se týká toho barevného označení řádku, je to dobrý nápad, který by mohl zvýraznit problém. Zkusím to. Bohužel jsem teď dva dny byl bez PC, takže jsem zatím nikam nepokročil.

Zápatí

Používáme FluxBB