Date: prev next · Thread: first prev next last


Tack för ditt svar Johnny!

Jag har några intressanta projekt på gång, men har inte klart för mig vilka begränsningar som LibreOffice skulle ge mig.
(just nu är begränsningarna större)

Det är inte lätt att beskriva mina problem med bara ord.
(saknar en grafisk framställning) - nåväl, jag gör ett försök.
__________________________________________________________________________

Ett projekt handlar om att skapa en typ av ordersedel.
Idag finns den information som ordersedeln ska innehålla, i två CSV-filer (som jag bestämmer formatet på).
Den ena filen innehåller beställningsnummer, benämning, antal och pris
Den andra filen innehåller namn, adress, telefonnummer, kontaktpersoner, mm.
(just nu håller jag på att försöka slå samman dessa två listor, visserligen blir det en mängd "dubblett information", men det ställer inte till något problem och enklare att hålla ihop hela projektet)

I dag när beställningen skall verkställas, tillfogas ordernummer, datum, sidnummer, olika summor mm, och sedan skapar jag en strukturerad PDF-fil som skickas iväg i en bifogad fil tillsammans med ett e-postmeddelande. Detta är i sig inget problem, men jag skulle vilja skicka samma beställning som ett "excel-dokument", med några andra "kriterier".
Riktigt hur layouten på ordersedeln skulle se ut kan man diskutera.
Ska den sidbrytas som idag? eller ska det bara vara ett orderhuvud, en mängd produkt rader och en order fot. Dessa fält skulle jag vilja skrivskyddades. De fält till höger om produktraderna skulle jag vilja ge mottagaren möjlighet att skriva noteringar i. t.ex. vilka produkter som inte kan levereras och varför eller datum när de kan beställas igen. När det är klart ifyllt skickas denna fil åter avsändaren som en orderbekräftelse. Samma fil skulle kunna gå vidare till den som packar upp produkterna (för att ytterligare kunna göra en leveransbekräftelse / stämma av med följesedeln eller leveransen).
I samma fil som beställningen.

Men åter till problemet.
Informationen som skall in i Calc finns i csv-filer efter en bestämd struktur.
Hur får man rätt fält i csv-filen på rätt plats i Calc? (Är det möjligt?)
För att sedan skrivskydda berörda fält.

Ibland har jag funderat om det är bättre väg, att gå via en "i fyllbar" PDF.
(Idag fixar jag bara att skapa "vanliga" pdf-filer.)
__________________________________________________________________________

Ett annat önskemål är att kunna läsa information i en bestämd cell.
Dvs. jag vill med ett externt program kunna läsa av värdet i cellen C5.
__________________________________________________________________________

Ytterligare en fundering är runt ett skylt / etikett program som idag hanteras på följande sätt. Varje natt exporteras ett artikelregister till en csv-fil. (ett 20-tal fält). Denna fil bearbetas innan den importeras i ett antal andra databaser med olika funktioner. (med ett 30-tal fält).

En tanke är att ta hand om den exporterade csv-filen och göra samma bearbetning som idag. Sedan göra en enkel "import" till Calc som då innehåller hela artikelregistret. (nu är det viktigt att alla fält har rätt format)

När sedan en skylt ska skrivas ut, anges ett beställningsnummer, man väljer skylttyp och hur många utskrifter, i ett "skalprogram" Det programmet söker sedan upp produkten i Calc-arket. och hämtar in övrig information för den produkten.
Den informationen infogas i vald skylt som skrivs ut på rätt ställe.

Problemet är att jag inte vet hur cellerna i kalkylbladet automatiskt kan fyllas från en csv-fil.
_________________________________________________________________________

Har ett annat spännande projekt
Antag att jag har en lista med information i ett antal kolumner 20-30st. (idag skulle den kanske bli 1100rader)
Jag skulle vilja förbättra hanteringen av denna lista.
Dels enklare att infoga förändringar.
Man skriver ett nyckelvärde, samt den information som ska infogas i en bestämd cell. Idag får jag köra "PgUp" eller "PgDn" i Calc-arket för att hitta den rad som ska ändras, vilket tar tid.

Den andra biten är att, göra sammanställningar av detta Calc-ark.
Jag vill hämta en rubrik (som finns i Calk-arket)
Hämta alla "ettor" i kolumn H samt skriva ut sammanställningen/resultatet på en A4:a sida.
_________________________________________________________________________

Vet inte om problembeskrivningen är tillräckligt tydlig.
Men sammanfattnings vis jag skulle vilja kunna hantera (främst Calc) med ett externt program.
Skriva in i celler / läsa av specifika celler.

//Jan


Johnny Rosenberg skrev 2013-01-12 13:12:
Den 12 januari 2013 12:00 skrev Jan Öhman<Jan_Ohman@glocalnet.net>:
Tack för "alla" svar!

Ska ytterligare försöka fokusera på min problematik.
(hoppas det inte blir rörigt)

//Jan

Niklas Johansson skrev 2013-01-11 18:56:
Hej Jan

Jan Öhman skrev 2013-01-11 14:42:
Eftersom jag inte hittat någon "enkel" väg att skapa ett kalkylblad från
annat program,
måste idag denna information importeras från t.ex. en txt / csv-fil.
(söker vidare, hittar jag inte någon metod, måste jag kanske byta till
annat office paket :-( )
Låt oss hoppas att detta inte behövs. Måste dock erkänna att jag inte
riktigt förstår vad
du menar första raden. Men struntar i det nu och går vidare till de andra
frågorna. ;) c
Johnny Rosenberg skrev 2013-01-11 17:25:


Finns ju andra kalkylprogram (exempelvis Gnumeric – helt värdelöst men
ändå ett kalkylprogram), men jag antar att det inte är det du är ute
efter.

_____________________________________________________________________

Jan svarar .:
Mitt mål är att på ett enkelt och stabilt sätt kunna lägga in värden i olika
celler.
Antag att det finns en textfil med någon form av innehåll exempelvis:
123;abc
456;def
789;ghijk
Denna fil har jag inga problem att läsa, bearbeta eller skapa

Önskemålet är att dessa värden skall skrivas in på följande celler i ett
kalkylblad.
123 skall infogas i cell D3
abc skall infogas i cell E3
456 skall infogas i cell D4
def skall infogas i cell E4
789 skall infogas i cell D5
ghijk skall infogas i cell E5
I cell C7 vill jag att ordet "Summa .: " skall stå och
I cell E7 skall summan av D3 + D4 + D5 stå (123 + 456 + 789 = 1368 )

Man kan säga att jag söker någon typ av API (eller SDK) för LibreOffice.
I Basic har du ett sådant API.

Värdena infogas med hjälp av ett kommando "Input D3=123" eller på något
sätt...
ThisComponent.getSheets().getByName("MittBlad").getCellByPosition(3,4).setValue(123)
ThisComponent.getSheets().getByName("MittBlad").getCellByPosition(3,4).setString("abc")

Något ditåt, har inte hållit på med Basic på länge nu.

Givetvis kan man göra det lite enklare för sig, så man slipper skriva
så långa rader:
Dim Sheet As Object, Cell As Object
Sheet=ThisComponent.getSheets().getByName("MittBlad")

Cell=Sheet.getCellByPosition(3,4)
Cell.setString("1234ABCD")
Cell.setValue(653)


Det var intressant att botanisera i de packade XML-filer som skapas av Libre
Office.
Dock vågar jag inte vara inne i dessa och skriva (även om det fungerar),
så har jag inga garantier att mitt import/export modul kommer att fungera
efter nästa uppdatering av Libre Ofice..

_____________________________________________________________________


Inläsning av textfiler görs idag med hjälp av "Arkiv / Öppna".
En "Text import" ruta öppnas, där det finns möjlighet att välja kriterier
för inläsningen.

-----------------------
Fråga 1.
Om jag redan vet filens struktur, vilken teckenuppsättning,
delningsalternativ, kolumntyp osv.
Finns det någon möjlighet att "automatisera" öppning av denna text fil
(utan att utsättas för några frågor)?
Niklas Johansson skrev 2013-01-11 18:56:

Via basic är det definitivt möjligt. Jag använder tyvärr inte Calc
tillräckligt för att veta om det går att lösa med externa länkar eller
liknande. :(
Johnny, har du koll på sånt?
Johnny Rosenberg skrev 2013-01-11 17:25:

Makro.

____________________________
Jan svarar .:
Makro / Basic, (vilket förefaller mig är samma sak)
då är jag där igen...
Basic är ett programspråk.
Ett makro kan man skriva i Basic eller Python med mera.

Har funderat om det är bättre att "damma av" Python kunskaperna, vilken
version av Python ska man använda? (2.. eller 3..)
eller att lära sig Basic...
Kan inte Python själv, mend et kan ju hända att det är enklare att
damma av gamla kunskaper än att skaffa nya. Dessutom är ju Python mer
gångbart i största allmänhet idag än vad Basic är.

Jag har ingen känsla eller ide hur det skulle fungera med makron i detta
sammanhang.
Har testat att skriva något makro för specifika celler, men att hämta
information utifrån...
Varifrån vill du hämta information? Tror det finns stöd för det mesta.
Själv har jag ett kalkylblad där jag kan se kurvor för mina bankkonton
i en viss bank dag för dag, så att jag har koll på om jag har råd att
göra si eller så eller när jag har råd med det ena eller andra.
Informationen hämtar jag genom att logga in på min bank, ta upp
sammanställningssidan där jag kan se alla mina saldon samtidigt.
Ctrl+a Ctrl+c för att flytta all text på hela sidan till urklipp. På
kalkylbladet har sedan en stor fet knapp som jag klickar på. Mitt
makro tar då in hela urklipp i en strängvariabel som text (allt annat
bortfiltrerat, exempelvis eventuella bilder), söker i texten efter
rätt kontonummer, söker upp rätt saldo och skriver till sist alla
saldon i rätt celler. Funkar klockrent varje gång. Blir mycket lite
jobb för mig: Öppna banksidan, Ctrl+a Ctrl+c, klicka på kalkylbladet,
klicka på den stora feta knappen, klart…

Har funderat på om det går att antingen låta makrot logga in på sidan,
men det verkar inte gå. Det är ju det där med lösenord och sådant. Har
även funderat på att logga in via terminalen (i Ubuntu) med den
textbaserade webbläsaren Lynx via ett skript och lägga in saldona i
urklipp den vägen, men det jag kör nu är tillräckligt enkelt för att
jag inte ska tycka det värt allt arbete att göra det ytterligare en
liten aning enklare…

Något tips hur man ska tänka?
Hur skulle man kunna lösa det med "Basic" / "Makro"
De makron man skapar, är dessa unika för ett specifikt kalkylblad eller blir
dessa aktiva för alla kalkylblad?
Det beror på var du lägger makrot. Upp till dig, med andra ord…

Frågorna bara väller fram...
___________________________


Jan Öhman skrev 2013-01-11 14:42:

-----------------------
Fråga 2.
Om jag har skapat en mall i Calc, med formler, villkorlig formatering och
ev diagram i olika celler.
Finns det idag något sätt att importera / överföra värden från en textfil
till denna mall?

(utan att rasera mallen)

-----------------------
En begränsning jag hittat och störs av är det begränsade utbudet av
"kolumntyp".
(Jag saknar t.ex. valuta).
Detta går att hantera i flera steg. dvs. först välja text, sedan läsa in
filen för att till sist markera kolumnen och konvertera den till valuta.
Att kolumntypen är "standard" säger mig inget, samt jag vet inte heller
vad det innebär.
Johnny Rosenberg skrev 2013-01-11 17:25:


Har också funderat på vad Standard är.

Angående detta, upptäckte jag nyligen, när ett antal artiklar skulle
analyseras.
De flesta beställningsnummer var endast siffror, men det fanns
beställningsnummer som hade en bokstav i sig.
tex. 1234, 1234a, 1234e eller 1234e4
När denna information lästes in fick jag ett "mystiskt" resultat.
1234 - inga problem
1235a - inget problem
Men
1234e blev 1234 (altså samma som ovan) och
1234e4 blev 12340000 ...
Johnny Rosenberg skrev 2013-01-11 17:25:


Känns logiskt, ja. Beroende på format, då förstås.

Med andra ord, resultatet av inläsningen blev inte som jag önskat.
(pga inläsningen hade tolkat beställningsnumren som siffror)
Niklas Johansson skrev 2013-01-11 18:56:

Testa att skriv in värdet 1234e4 i en cell i Calc och se vad som händer.
;)
Bokstaven e tillsammans med siffror tolkas som "exponentiell". Vill du
att det alltid ska representeras som 1234e4 så bör du importera med
kolumntypen text.

Johnny Rosenberg skrev 2013-01-11 17:25:


Se till att cellen är formaterad som text (@) innan värdet hamnar där.

____________________________
Jan svarar .:

Samma problem uppstår vid kopiering som inläsning av text / siffror.
Inte för mig igår när jag testade…

Problemet löser man med "dubbelsnuttar" runt text, men måste då "kryssa" i
tecknet som omger strängar.
och då faller "automatiken", någon måste göra rätt val. (fel val kan skapa
problem utan att man upptäcker det i tid).

Vad menas med "formaterad som text (@)?
Markera alla celler som ska formateras som text → Högerklick →
Formatera celler → Tal → Välj Text eller skriv @ i fältet
”Formatbeskrivning”.

Hur skapas ett makro vid inläsning av en fil?
Va?

Det är du som skapar makrot…
Man kan i och för sig exportera makrot som textfil som man sedan kan
läsa tillbaka igen, men allvarligt talat, vad menar du?

_________________________


Jan Öhman skrev 2013-01-11 14:42:
-----------------------

Fråga 3.
Går det att få kolumntyp "text" som "standard"?
Niklas Johansson skrev 2013-01-11 18:56:

Csv-formatet har stöd för att ange textavgränsare, dvs. ifall filen har
formatet

test;försök
13;"13"

och textavgränsaren är satt till " så kommer posten försök att tolkas som
text.
Kanske inte riktigt det du ville höra men utan att ta till makron så vet
jag inte
riktigt vad jag ska föreslå. Du kan i och för sig testa att registrera
textfilen som
en databas och se om du får något annat resultat.

Om du gör det så räcker det med att byta ut textfilen för att börja tolka
den nya
datan.

/Niklas

--
Ber om ursäkt ifall det blev ett rörigt svar. Har lite för mycket att göra
för tillfället
så det blir lätt rörigt (och även fel ibland). Hoppas någon annan kan ge
dig bättre
svar.
____________________________

Jan svarar .:

Som sagt jag tackar för de svar ni gett!

Jag har en samling information om Makros för OpenOffice av i huvudsak Andrew
Pitonyak

http://www.pitonyak.org/AndrewMacro.odt
och
http://www.pitonyak.org/oo.php
(som jag fått av Johnny för OpenOffice)

Gäller dessa fortfarande?
eller ska jag söka efter nyare material för LibreOffice?

//Jan
Det är säkert jag som är korkad, men jag fattar fortfarande inte vad
du vill göra. Kan du ge ett exempel på ett scenario?
Exempelvis:
Indata: CSV-fil, vilka kolumner? Är det citattecken runt text? Datum?
Vilket tecken skiljer ett fält från ett annat? Tab, semikolon, komma,
vad?
Existerande data: Ett kalkylblad kanske?
Vad vill du göra med dina indata? Läsa hela filen och lägga den direkt
efter redan existerande data i kalkylbladet? Kanske bara läsa en viss
del av indatafilen, exempelvis efter ett visst datum? Eller bara
markera text och kopiera till urklipp och låta makrot behandla urklipp
på lämpligt sätt?
Heter indatafilen alltid likadant, så att man kan låta makrot bara
hämta filen varje gång, så att man slipper öppna den manuellt i en
textredigerare?
Kan indata vara olika saker varje gång? Exempelvis en textfil ibland,
data på någon webbsida ibland, manuellt knappande ibland? Vill du
kunna mata in data via en dialogruta?

Jag får helt enkelt inget grepp om vad du vill göra. Ena stunden
pratar du om att importera data och då blir det problem med formaten,
i nästa stund vill du knappa in data via kommandon (vilket ju är
krångligare än att bara skriva in dem direkt i kalkylbladet), eller om
det är ett makro som ska knappa in dem, eller så är det bara jag som
är lite trög…


Johnny Rosenberg



--
For unsubscribe instructions e-mail to: users+help@sv.libreoffice.org
Problems? http://www.libreoffice.org/get-help/mailing-lists/how-to-unsubscribe/
Posting guidelines + more: http://wiki.documentfoundation.org/Netiquette
List archive: http://listarchives.libreoffice.org/sv/users/
All messages sent to this list will be publicly archived and cannot be deleted

Context


Privacy Policy | Impressum (Legal Info) | Copyright information: Unless otherwise specified, all text and images on this website are licensed under the Creative Commons Attribution-Share Alike 3.0 License. This does not include the source code of LibreOffice, which is licensed under the Mozilla Public License (MPLv2). "LibreOffice" and "The Document Foundation" are registered trademarks of their corresponding registered owners or are in actual use as trademarks in one or more countries. Their respective logos and icons are also subject to international copyright laws. Use thereof is explained in our trademark policy.