Avatar billede jelle Nybegynder
28. december 2001 - 19:45 Der er 11 kommentarer og
1 løsning

Grid man kan skrive lige ind i

Hej hvilket grid skal jeg bruge for at jeg skal kunne skrive lige ind i hvert felt, så jeg kan rette i felterne direkte ud at skulle ud i en ny form.
Avatar billede tjacob Juniormester
28. december 2001 - 19:55 #1
Hvilke felter????????
Avatar billede jelle Nybegynder
28. december 2001 - 19:57 #2
cells - altså i flexgrid kan jeg ikke hvis få lov til at skrive direkte i row 5 col 1 f.eks.
Det skal puttes ind med kode
Avatar billede joern Nybegynder
28. december 2001 - 20:55 #3
Hej Jelle.

Det tror jeg ikke kan lade sig gøre, men du kan ligesom i et ældre regneark have én tekstboks hvor du skriver og så overføre indholdet derfra til den celle du klikker i.  Hvis du ender med at lave det sådan, men ikke kan få det til at fungere, så skriv til dette spørgsmål igen.

Et andet alternativ er at lave en hel mængde indekserede tekstbokse, jeg har et booking-program hvor der er 70 af dem, - tæt sammen så det godt kunne ligne en grid.  http://www.jkfsoft.dk/lokbok32.htm

M.v.h.  Jørn
Avatar billede jelle Nybegynder
28. december 2001 - 23:29 #4
Nå ok - så må jeg droppe idéen, jeg er ved at lave et booking-rengskabs-kundekrtoteks-program til mit mobildiskotek.
jeg er igang med delen til at lave faktura med, har du en idé?
Det er til at tilføje linier i fakturaen, det er altså \"produkter\" der skal tilføjes, håber du forstår :)
Avatar billede joern Nybegynder
29. december 2001 - 11:15 #5
Hej Jelle.

Tilføje linier?  Mener du _________________    eller en linie med et tekstindhold?

Her er en faktura fra et af mine programmer.  Alle variabler er selvfølgelig dimensioneret et andet sted og tildelt indhold, dette er kun udskriften.  Se især til sidst hvor jeg laver ramme med \"draw\" og koordinater.

    \'overskrift
    \'--------------------------------------------------------------
      On Error GoTo printfejl
      printer.Print \"\"                              \'aktivér printer
      printer.FontName = \"Times New Roman\"
      printer.FontSize = 20
      printer.FontBold = 1
      \'printer.Print Tab(20); \"Joka\' Handel & Udlejning tlf. 5545 9678\"
      printer.Print Tab(20); \"JkfSoft-demo      tlf. 55 81 18 28\"
      printer.Print Tab(20); \"Test\"
      printer.FontSize = 16
      printer.Print Tab(38); \"Spjellerup Bygade 52, 4262 Sandved.\"
      printer.Print \"\"
      printer.Print \"\"
      printer.FontSize = 14
      printer.FontName = \"Times New Roman\"
      printer.Print Tab(16); stam(1)                    \'navn
      printer.Print Tab(16); stam(2)                    \'adr
      printer.Print Tab(16); stam(3) & \"  \" & stam(4); Tab(70); \"Kundenr. \" & stam(0)
      printer.FontBold = 0
      printer.Print Tab(75); \"Faktura nr.  \" & stam(5)
      printer.Print Tab(75); \"Dato:  \" & stam(6)
      printer.FontSize = 12
      printer.Print Tab(18); \"_____________________________________________________________________________\"
      printer.Print \" \"
      printer.Print Tab(20); \"Varenummer\"; Tab(35); \"Antal\"; Tab(45); \"Betegnelse\"; Tab(85); \"Enhedspris\"; Tab(105); \"Pris\"
      printer.Print Tab(18); \"_____________________________________________________________________________\"
     
      printer.Print \" \"
     
      For x = 0 To fakpost - 1
        xfa = 35
        If Len(fa(x)) = 1 Then xfa = 38
        If Len(fa(x)) = 2 Then xfa = 37
        If Len(fa(x)) = 3 Then xfa = 36
        xep = 84
        If Len(ep(x)) = 4 Then xep = 89
        If Len(ep(x)) = 5 Then xep = 88
        If Len(ep(x)) = 6 Then xep = 87
        If Len(ep(x)) = 7 Then xep = 86
        If Len(ep(x)) = 8 Then xep = 85
        xup = 100
        If Len(ump(x)) = 4 Then xup = 105
        If Len(ump(x)) = 5 Then xup = 104
        If Len(ump(x)) = 6 Then xup = 103
        If Len(ump(x)) = 7 Then xup = 102
        If Len(ump(x)) = 8 Then xup = 101
        printer.Print Tab(20); fnr(x); Tab(xfa); fa(x); Tab(42); betegn(x); Tab(xep); ep(x); Tab(xup); ump(x)
        If Val(ump(x)) > 0 Then formoms = formoms + Val(ump(x) * 100) / 100
      Next
     
      For x = 0 To 25 - fakpost
        printer.Print \"\"                \'tomme linier for at få sum nederst
      Next
      printer.Print Tab(18); \"_____________________________________________________________________________\"
        antlin = Len(Format(formoms, \"fixed\"))
        xup = 99
        If antlin = 4 Then xup = 105
        If antlin = 5 Then xup = 104
        If antlin = 6 Then xup = 103
        If antlin = 7 Then xup = 102
        If antlin = 8 Then xup = 101
        If antlin = 9 Then xup = 100
      printer.Print Tab(85); \"subtotal\"; Tab(xup); Format(formoms, \"fixed\")
      subtotal = Format(formoms, \"fixed\")                      \'til faktura-database

      If rabat > 0 Then
        antlin = Len(Format(rabat, \"fixed\"))
        xup = 101
        If antlin = 4 Then xup = 104
        If antlin = 5 Then xup = 103
        If antlin = 6 Then xup = 102
        printer.Print Tab(85); \"Prisafslag\"; Tab(xup); \"- \" & Format(rabat, \"fixed\")
      End If
        antlin = Len(Format((formoms - rabat) * .25, \"fixed\"))
        xup = 99
        If antlin = 4 Then xup = 105
        If antlin = 5 Then xup = 104
        If antlin = 6 Then xup = 103
        If antlin = 7 Then xup = 102
        If antlin = 8 Then xup = 101
        If antlin = 9 Then xup = 100
      printer.Print Tab(85); \"25% moms\"; Tab(xup); Format((formoms - rabat) * .25, \"fixed\")
      momsbelob = Format((formoms - rabat) * .25, \"fixed\")    \'til faktura-database
      printer.Print Tab(18); \"_____________________________________________________________________________\"
      printer.Print \"\"
      printer.FontBold = 1
      printer.FontSize = 16
      printer.Print Tab(48); \"Fakturabeløb kr.\"; Tab(73); Format((formoms - rabat) * 1.25, \"fixed\")
      fakbelob = Format((formoms - rabat) * 1.25, \"fixed\")    \'til faktura-database
      printer.Print Tab(14); \"=================================================\"
      printer.FontBold = 0
      printer.FontSize = 12
      printer.Print Tab(25); \"Betalingsbetingelser: 10 dage fra fakturadato med mindre andet er aftalt\"
      printer.Print \"\"
      printer.Print Tab(20); stam(7)
      printer.Print \"\"
      printer.Print \"\"
      \'printer.Print Tab(20); \"E-post:  joka@adr.dk\"; Tab(50); \"Internet: www.jokahandel.dk\"; Tab(90); \"Mobiltlf. 4063 9678\"
      printer.DrawWidth = 2
      printer.Print Tab(22); \"E-post:  salg@jkfsoft.dk\"; Tab(55); \"Internet: www.jkfsoft.dk\"; Tab(90); \"Tlf. 5581 1828\"
     
      printer.DrawWidth = 1
      printer.Line (1630, 1600)-(10870, 14500), , B
      printer.Line (1630, 15200)-(10870, 15600), , B
      printer.EndDoc
      Exit Sub
printfejl:
      x = MsgBox(\"Printeren melder fejl, undersøg printer og papir - muligvis mangler du bare fonten Vagabond.\", 16, \"Medd. fra udskriv faktura.\")
      Exit Sub
      Resume Next
End Sub
Avatar billede tjacob Juniormester
29. december 2001 - 14:57 #6
Hej Jelle

Klippet direkte fra MSDN Library:
\"The Hierarchical FlexGrid control provides you with advanced features for displaying data in a grid. It is similar to the Microsoft Data Bound grid (DataGrid) control, but with the distinct difference that the Hierarchical FlexGrid control does not allow the user to edit data bound to, or contained within, it.\"

Flexgrid kontrollen er altså netop lavet, så brugeren IKKE kan rette i de underliggende data.
Det ser ud til at du skal bruge en DataGrid kontrol i stedet for.

MVH tjacob
Avatar billede ea_data Nybegynder
29. december 2001 - 19:43 #7
Jeg kan bekræfte, at det er et DataGrid du skal bruge når du vil redigere direkte i felterne.
Hvis du vil prøve kan jeg anbefale, at du bruger \'VB 6 Data Form Wizard\' som følger med VB6 (jeg ved ikke om tilsvarende wizard også er med i tidligere versioner af VB): Du finder den sammen med andre Wizards i menulinien under Add-Ins, hvor der er en Add-In Manager. Her klikker du og får så mulighed for at tilføje VB 6 Data Form Wizard til udviklingsmiljøet. Når du starter Data Form Wizard skal du blot følge instruktionerne for at danne en form med datagrid klar til brug. 
Avatar billede jelle Nybegynder
29. december 2001 - 22:50 #8
Joern <-- Hvor skal jeg smide koden ind, og hvilke - hvad hedder det nu dem der man sætter dim for an - skal jeg bruge jeg kan ikke rigtigt gennemskue din kode.
kan du give mig lidt hjælp
Avatar billede joern Nybegynder
30. december 2001 - 10:40 #9
>>Jelle.

Du dimensionerer variable!    Inden jeg kastede mig ud i en større øvelse med at vejlede i at opbygge en udskrift, ville jeg dog høre om det overhovedet havde interesse.  Hvis man anvender en database under sin VB-applikation kan \"Crystal Report\" anvendes til at designe udskrifter.  Jeg gør det aldrig, fordi jeg ikke bruger Access el. anden base til data.

Det jeg især ville vise er muligheden for at anvende streger uafhængigt af den tekst der i øvrigt ansættes i en udskrift.  Det lille eksempel til sidst kan vel inspirere.

Printer.print
printer.DrawWidth = 1
printer.Line (1630, 1600)-(10870, 14500), , B
printer.Line (1630, 15200)-(10870, 15600), , B
printer.EndDoc

Tallene i parentes i koordinater i twips, der dannes en ramme på et A4-ark.

Koden i forrige eksempel udløses simpelthed ved klik på en knap \"Udskriv faktura\".

Da jeg synes det er pænest at totalen står nederst er der en tæller der sikrer at der indsættes et passende antal tomme linier.  Men man kan positionere alt i en udskrift med twips-koordinater.  Med tekst i kolonner er det nu lettere med tabulator - eks. tab(25);

At jeg benytter indekserede varialble gør det noget uoverskueligt for en uøvet.  Men hvis du ikke allerede kender til den metode, vil du på et tidspunkt opdage hvor stor en fordel det er.

I den øverste del indsætter jeg stam-data, nemlig firmaets navn og kundens navn, det sidste fra en kunde-database.  Prøv dig frem og indsæt evt. kode her, når du er nået et stykke og stadig har problemer.

Du kan jo lege med udskrift uden at have de rigtige data liggende i variabler, bare skrive klar tekst i \"\" \"\".

M.v.h.  Jørn
Avatar billede jelle Nybegynder
30. december 2001 - 15:58 #10
Kan man gøre sådan at man kan sætte nogle mål i cm på hvor teksten skal stå, altså fra toppen og fra venstre, det er fordig jeg har en fakturaskabelon som bare skal udfyldes, kan det lade sig gøre?
Avatar billede jelle Nybegynder
30. december 2001 - 16:01 #11
Jørn, du fik dine point, men jeg håber du stadig vil hjælpe mig
Avatar billede joern Nybegynder
30. december 2001 - 21:04 #12
Ja, det kan du godt, men jeg vender tilbage senere, nu skal jeg se TV.  M.v.h.  Jørn
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester