Avatar billede simsen Mester
12. juli 2006 - 17:23 Der er 23 kommentarer og
1 løsning

oprette faktura (tekst)

Hej

Jeg er igang med at oprette et faktureringssystem til en veninde. Jeg arbejder med VS 2005 og windows forms.

Nu er jeg kommet så langt, at jeg vil have udskrevet en faktura.

Altså det jeg ønsker, er at jeg kan udskrive en fast tekst, hvor der så er nogle felter, der skal hentes fra databasen, når hun trykker på en "Udskriv faktura" knap, mens hun står på den pågældende kunde.

Hvordan gør jeg ovennævnte og hvor kan jeg læse noget tutorials om det?

mvh
simsen :-)
Avatar billede tdafoobar Nybegynder
12. juli 2006 - 17:26 #1
hvilken database ?
Avatar billede Syska Mester
12. juli 2006 - 17:49 #2
ARGGGGGGGG ( til www.exp.dk ik' dig )

Har ikke noget specielt.

Men søg på print eller liggende på http://www.codeproject.com/ burde give noget...

og så er der ens gamle ven google, men der har du jo nok allerede prøvet...

// ouT
Avatar billede simsen Mester
12. juli 2006 - 18:04 #4
tdafoobar
Det er en accessdatabase

Og så har jeg vist formuleret mig forkert :-/

Det jeg mangler hjælp til, er hvordan opbygger jeg sådan en side (der så skal printes).

Altså jeg skal have lavet en "standard" side, der alt efter hvilken kunde hun står på, skal udskrive noget fast tekst - men ellers hente forskellige felter fra databasen?

buzzzz
Og ja jeg har søgt på google - men igen det er kun selve print delen, og jeg skal bruge det der kommer lige inden - hvad skal jeg bruge til at opbygge en side med, hvor der både er standard tekst og felter fra databasen?

mvh
simsen :-)
Avatar billede Syska Mester
12. juli 2006 - 18:25 #5
Jamen, det skal opbygges gennem de Print klasser som findes.... at du så vil have noget statisk skal du jo kode ind i det.... Så vidt jeg har forstået det er der ikke nogen nem måde at printe på i .NET 2.0....... du skal opbygge dit print som du ville opbygge et almindeligt billede lavet med Graphics klassen i .NET

Så jeg er ikke helt klar over hvad du leder efter hvis det ikke er det jeg snakker om.... Hvad er det som kommer lige inden printdelen? Det må vel være hele programmet så?

Men tekst inden... det er vel bare firma, adresse etc. som er statisk. og så skal der vel udskrives de ting som de ikke allerede har fået en faktura på.... er det sådan noget her du tænker på?

// ouT
Avatar billede simsen Mester
12. juli 2006 - 18:35 #6
buzzzz

Det er netop firma, adresse osv og ja de ting, der ikke allerede har fået en faktura på skal så skrives ud. Hun opbygger en faktura, ved at skrive nogle ordrelinier ind, med et fakturanr. på hver enkelt, som så skal udskrives ud i forhold til det fakturanr. hun har valgt.

Der er 3 tabeller i databasen:

Kunder (som har KundeID)
Faktura (som har KundeID og FakturaID)
Ordrer (som har OrdreID og FakturaID)

Nu vil jeg så udskrive faktura nr. 5 med tilhørende ordrelinier (OrdreID) til kunden med KundeID nr. 9.

Det jeg synes at de links du gav, var kun med ren tekst - altså jeg ikke kan se, hvordan man henter noget ind, som både har standard (ren) tekst og så databasefelter?

mvh
simsen
Avatar billede Syska Mester
12. juli 2006 - 19:17 #7
ahhh, nu er jeg med.....

Kan da lige se om jeg kan huske hvordan det skal bruges, ved at være lang tid siden jeg sidst har brugt det.... var til et lille test projekt.

Der kommer måske noget hvis jeg ellers lige kan få det til at virke :-) Uden at skulle til at læse for meget.... :-)

// ouT
Avatar billede simsen Mester
12. juli 2006 - 19:27 #8
buzzzz

Du er en knag og imens leder jeg videre på Google - selvom jeg nu ikke synes jeg kan finde noget endnu........og jeg har altså ledt i flere timer nu :-)
Avatar billede alex_sleiborg Nybegynder
12. juli 2006 - 19:51 #9
Jeg har lavet et fakturerings system i c#. Hvor jeg opretter et excel dokument, og printer derfra
Avatar billede alex_sleiborg Nybegynder
12. juli 2006 - 19:54 #10
Ellers så skal du som buzz siger lave det hele ved hjælp af gdi+, og det kan godt være lidt besværligt. Det er klart nemmest at bruge ms excel object library, til at lave sådan et system
Avatar billede espersen Novice
12. juli 2006 - 20:02 #11
www.sigmaregnskab.dk er ellers inkl det hele ;o) dog access og knap så meget kodning ...
Avatar billede simsen Mester
12. juli 2006 - 20:10 #12
espersen

Tak men jeg laver det jo netop i .net fordi, jeg så gerne vil lære at bruge dette. Access kan jeg selv lave - jo også derfra jeg henter data ;-)

alex

Har du noget jeg kan se mht. dit forslag? - det lyder interessant

mvh
simsen :-)
Avatar billede alex_sleiborg Nybegynder
12. juli 2006 - 20:22 #13
Det du gør er at hente de data du skal bruge, ud af din database. Der efter er det bare at oprette et nyt excel dokument. For at gøre det skal du tilføje en reference til din c# app, den hedder et eller andet med excel object library v. 10 eller 11.

Mener det er sådan man opretter et nyt excel dokument

Excel.Application ExcelApp = new Excel.ApplicationClass();
            if (ExcelApp == null)
            {
                MessageBox.Show("Excel kunne ikke startes\nTjek din office installation", "Fejl ved opstart af Excel", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                return;
            }
            ExcelApp.Visible = true;
            Excel.Workbook Workbook = ExcelApp.Workbooks.Add(Excel.XlWBATemplate.xlWBATWorksheet);


            Excel.Worksheet ws = new Excel.WorksheetClass();
            ws = (Excel.Worksheet)Workbook.ActiveSheet;
Avatar billede simsen Mester
12. juli 2006 - 20:25 #14
alex
Nu er jeg total newbee indenfor c# programmering.....

Jeg kan se, jeg åbner en excel regneark - men hvordan får jeg så linket de forskellige felter (jeg har hentet ud fra databasen) ind i regnearket?

simsen :-)
Avatar billede alex_sleiborg Nybegynder
12. juli 2006 - 20:32 #15
Du bruger bare det worksheet objekt du har lavet

ws.Cells[6, 1] = "Hej";
Avatar billede simsen Mester
12. juli 2006 - 22:21 #16
buzzzz

Håber ikke du glemmer mig og kan finde det du søger :-)
Avatar billede Syska Mester
12. juli 2006 - 22:28 #17
har pt mange ting at se til inden ferien :-) *fredag* YAHHHHH, hep hey

Men skal da lige se om jeg ikke kan lave noget :-)

// ouT
Avatar billede Syska Mester
12. juli 2006 - 22:58 #18
public partial class Form1 : Form
{
    int tal = 1;
    public Form1()
    {
        InitializeComponent();
    }
    private void button1_Click(object sender, EventArgs e)
    {
        printPreviewDialog1.ShowDialog();
    }
    private void printDocument1_PrintPage(object sender, System.Drawing.Printing.PrintPageEventArgs e)
    {
        System.Drawing.Font myFont = new Font("Arial", 30);
        if(tal < 4)
            e.HasMorePages = true;
        Graphics g = e.Graphics;
        string text = string.Format("Dette er side nummer {0}", tal);
        SizeF size = g.MeasureString(text, myFont);
        g.DrawString(text, myFont, Brushes.Black, new PointF(e.PageBounds.Right - size.Width, e.PageBounds.Bottom - size.Height));
        g.Dispose();
        tal++;
    }

    private void button2_Click(object sender, EventArgs e)
    {
        printDialog1.ShowDialog();
    }
}

Her kan du se hvordan det ca. virker... du skal tilføje PrintDocument, PrintviewDialog fra toolboxen til din form.... og så bruge de event som du kan se...

Burde give en ide om hvordan det kan bruges....

Godt nok ikke med data fra en DB, men det burde nemt kun skrives ind.....

// ouT
Avatar billede simsen Mester
13. juli 2006 - 08:23 #19
buzzzz

Når jeg forsøger ovennævnte, så får jeg i preview delen at vide, at der ikke er noget document og på selve printknappen, får jeg godt nok en dialog op, men den prin
ter intet?

Jeg har dragget PrintDocument, PrintPreview og PrintDialog ind på formen

Skal jeg bruge nogle using statements?

Koden ser ud som følgende:

namespace Print
{
    public partial class Form1 : Form
    {
        int tal = 1;

        public Form1()
        {
            InitializeComponent();
        }

        private void button1_Click(object sender, EventArgs e)
        {
            printPreviewDialog1.ShowDialog();

        }

        private void button2_Click(object sender, EventArgs e)
        {
            printDialog1.ShowDialog();
        }

        private void printDocument1_PrintPage_1(object sender, System.Drawing.Printing.PrintPageEventArgs e)
        {
            System.Drawing.Font myFont = new Font("Arial", 30);
            if (tal < 4)
                e.HasMorePages = true;
            Graphics g = e.Graphics;
            string text = string.Format("Dette er side nummer {0}", tal);
            SizeF size = g.MeasureString(text, myFont);
            g.DrawString(text, myFont, Brushes.Black, new PointF(e.PageBounds.Right - size.Width, e.PageBounds.Bottom - size.Height));
            g.Dispose();
            tal++;
        }
    }
}
Avatar billede Syska Mester
13. juli 2006 - 15:13 #20
ohh, på PrintviewDialog'en skal du angive PrintDocument... det kan du gøre via VS2005 i IDE'et .....

PrintDialog skal der gøres det samme med.....

// ouT
Avatar billede simsen Mester
13. juli 2006 - 16:54 #21
Nu er jeg slet ikke med - hvor i VS2005 skal jeg gøre det? Altså jeg stiller mig på PrintDocument og hvad?
Avatar billede Syska Mester
13. juli 2006 - 17:55 #22
i hvert fald på 2 af de 3 Klasser du har dragged, kan du sætte "Document" til dit "PrintDocument" klasse.

I properties i IDE'et....

// ouT
Avatar billede simsen Mester
14. juli 2006 - 14:49 #23
buzzz
Smid et svar og du får points

alex
Håber du stadig er her - jeg opretter lige et nyt spørgsmål angående dit forslag

mvh
simsen :-)
Avatar billede Syska Mester
15. juli 2006 - 11:01 #24
svar :-)
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
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.

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