Har netop hentet open office og sidder og roder med det.
Mit problem er følgende.
Jeg har lavet en faktura til mit firma da dem der findes på nettet
ikke kan bruges.
Forstået på den måde at jeg ikke kan redigere dem i udseende og tekst.
Jeg mangler at insætte en fakturatæller der automatisk tæller op
når jeg har udskrevet en faktura og kun når jeg har udskrevet.
Ikke noget med om morgenen at komme med et nyt nummer når maskinen igen startes op.
Den skal slette alt på fakturaen men ikke den gemte version og må heller ikke slette de indtastede koder.
Derudover kan jeg heller ikke få indsat en skrive boks indeholdende
følgende ting :
Kundenavn Vare Antal pris print
Når jeg skriver under vare skal det der skrives, skrives et bestemt
sted på fakturaen. Ligesom de andre informationer.
Hele fakturaen er lavet i MICROSOFT EXEL og skulle gerne kunne
udskrives i WORD.
Selve kladen på fakturaen, altså udseendes mæssigt samt koderne skal
altid være den samme og skal på en måde gemmes så det ikke går tabt.
Kan selvfølgelig også bare fortrykke en masse fakturaklader så der kun
mangler al tekst på den samt alle udregningerne.
Har forstillet mig at der skal skrives i en boks, altså at selve fakturaen ikke kan ses før ved udskrift.
Ved at der er mange der også gerne kunne og vil bruge en så enkel
faktura uden at skulle bruge Summasumarum fra stone´s eller et andet program beregnet til en eller anden grønthandler på grøntorvet.
Mit firma og sikkert også andre har menlig ikke faste kunder der skal sendes regninger til men der skal betales kontant.
Derudover kan jeg i open office ikke flette/merge
celler. Er det bevidst udeladt eller bare glemt eller ikke kommet endnu ??
MVH
Henrik Hansen
Hjælp til maro
Moderators: Lodahl, LarsBrandi
-
- Posts: 95
- Joined: 22. Oct 2003 12:44
- Location: Vojens
- Contact:
Makro
Der er flere måder at lave en tæller på. Den jeg selv bruger ligner denne her :
Jeg bruger her en database med et løbenummer, hvor jeg henter det næste nummer i rækken. Og sætter det ind i regnearket og gemmer regnearket med det pågældende nummer. Det kan sikkert laves mere simpelt, men jeg har valgt denne løsning da der er flere brugere af systemet, så jeg er sikker på at få et entydigt nummer. Til sidst udskriver jeg dokumentet.
Rensning af felter kan ligeledes gøres på flere måder. Den nemme og mest uelegante måde er at bruge makrooptageren. Start den, slet de felter du vil have renset og stop makrooptageren.
Den anden er noget a la det her :
Her specificerer man hvilket område man vil have renset. CellFlags angiver hvad der skal slettes, f.eks om alle celleformateringer skal væk og lignendene.
Man kan også via makroer aktivere beskyttelse af dokument.
Vedr. flette/merge celler er jeg ikke helt med på hvad du mener.
Code: Select all
Sub Main
Dim mPrinter(0) As New com.sun.star.beans.PropertyValue
oDocument=ThisComponent
oSheet=oDocument.Sheets.getByName("Kunde")'Hvilket ark skal værdien rettes på
oCell=oSheet.getCellByposition(1,28) 'Celle B29
result=oCell.getString
' MsgBox result
DatabaseContext = createUnoService("com.sun.star.sdb.DatabaseContext")
DataSource = DatabaseContext.getByName("Datakilde 1")
sSQL = "INSERT INTO tilbudsnummer (done_by) VALUES ('"+ result +"')"
' MsgBox sSQL
DataSource.GetConnection("","").CreateStatement.ExecuteUpdate(sSQL)
InteractionHandler = createUnoService("com.sun.star.sdb.InteractionHandler")
Connection = DataSource.ConnectWithCompletion(InteractionHandler)
Statement = Connection.createStatement()
ResultSet = Statement.executeQuery("SELECT max(tilbudsnummer) FROM tilbudsnummer")
If Not IsNull(ResultSet) Then
While ResultSet.next
maxvaerdi=ResultSet.getString(1)
Wend
End If
oCell=oSheet.getCellByposition(1,29)
oCell.setvalue(maxvaerdi)
' cFile = "C:\Documents and Settings\dbrewer\Desktop\MyCalc" ' Windows
cFile = "/home/lbj/ooodat/"+ maxvaerdi +"" ' Linux
MsgBox cFile
cURL = ConvertToURL( cFile + ".sxc" )
MsgBox cURL
oDocument.storeAsURL( cURL, Array() )
mPrinter(0).Name="wait"
mPrinter(0).value=false
oDocument.Print(mPrinter(0))
End Sub
Rensning af felter kan ligeledes gøres på flere måder. Den nemme og mest uelegante måde er at bruge makrooptageren. Start den, slet de felter du vil have renset og stop makrooptageren.
Den anden er noget a la det her :
Code: Select all
oSheet=oDocument.Sheets.getByName("Ordrevare")'Hvilket ark skal værdien rettes på
iCellAttr = _
com.sun.star.sheet.CellFlags.VALUE + _
com.sun.star.sheet.CellFlags.DATETIME + _
com.sun.star.sheet.CellFlags.STRING + _
com.sun.star.sheet.CellFlags.ANNOTATION + _
com.sun.star.sheet.CellFlags.FORMULA
' com.sun.star.sheet.CellFlags.HARDATTR + _
' com.sun.star.sheet.CellFlags.STYLES + _
' com.sun.star.sheet.CellFlags.OBJECTS + _
' com.sun.star.sheet.CellFlags.EDITATTR
skal_slettes=oSheet.getCellRangeByName("A3:U135")
skal_slettes.ClearContents(iCellAttr)
Man kan også via makroer aktivere beskyttelse af dokument.
Vedr. flette/merge celler er jeg ikke helt med på hvad du mener.
mvh
Lars Brandi Jensen
Lars Brandi Jensen
-
- Posts: 95
- Joined: 22. Oct 2003 12:44
- Location: Vojens
- Contact:
En simpel tæller
Jeg kunne ikke lade være med at rette koden til, så man får en simpel tæller :
Code: Select all
Sub Main
Dim mPrinter(0) As New com.sun.star.beans.PropertyValue
oDocument=ThisComponent
oSheet=oDocument.Sheets.getByName("Kunde")'Hvilket ark skal værdien rettes på
oCell=oSheet.getCellByposition(1,29) 'Celle B30
result=oCell.getValue' Hent talværdien i B30
maxvaerdi=result+1'læg 1 til B30's værdi
MsgBox result
' DatabaseContext = createUnoService("com.sun.star.sdb.DatabaseContext")
' DataSource = DatabaseContext.getByName("Datakilde 1")
' sSQL = "INSERT INTO tilbudsnummer (done_by) VALUES ('"+ result +"')"
' MsgBox sSQL
' DataSource.GetConnection("","").CreateStatement.ExecuteUpdate(sSQL)
' InteractionHandler = createUnoService("com.sun.star.sdb.InteractionHandler")
' Connection = DataSource.ConnectWithCompletion(InteractionHandler)
' Statement = Connection.createStatement()
' ResultSet = Statement.executeQuery("SELECT max(tilbudsnummer) FROM tilbudsnummer")
' If Not IsNull(ResultSet) Then
' While ResultSet.next
' maxvaerdi=ResultSet.getString(1)
' Wend
' End If
oCell=oSheet.getCellByposition(1,29)' Celle B30
oCell.setvalue(maxvaerdi)' Skriv værdi i B30
' cFile = "C:\Documents and Settings\dbrewer\Desktop\MyCalc" ' Windows
' cFile = "\\hovedserver1\administration\ooodat\"+ maxvaerdi +"" ' Windows
' cFile = "/home/lbj/mnt/HOVEDSERVER1/administratio/ooodat/"+ maxvaerdi +"" ' Linux
MsgBox cFile
' cURL = ConvertToURL( cFile + ".sxc" )
' MsgBox cURL
' oDocument.storeAsURL( cURL, Array() )
' mPrinter(0).Name="wait"
' mPrinter(0).value=false
' oDocument.Print(mPrinter(0))
End Sub
mvh
Lars Brandi Jensen
Lars Brandi Jensen