21. juli 2005 - 23:40Der er
9 kommentarer og 5 løsninger
Finde næste løbenummer
Hi, jeg har en hjemmeside som meget gerne skulle smide en ordre ind i c5 i tilfælde af en bestilling bliver gennemført, men hvordan finder jeg C5's næste løbenummer ?
Eller er der en anden måde at smide ordre ind fra externe programmer ?
Normalt bruger man en fil, der indlæses i C5. Koster et par timer hos en programmør, eller du kan forsøge at få koden her igennem eksperten - vi har haft det oppe før.
Den skal mindst bestå af Debitorkonto, varenummer, antal og pris. Debitorkonto bruges til at oprette ordrehoved med tilhørende konto, herunder betalingsbetingelser mv. Når dette er oprettet, laves ordrelinierne, som jo altså består af ordrenummer (har man fra ordren), varenr (skal findes i C5), antal og pris. Det kræver ikke voldsomt med kodearbejde at få det til at virke. Af yderligere oplysninger kunne leveringsadresse være relevant.
Men det skulle vel være ganske muligt at skrive en ordre direkte i C5 via SQL - ved godt der er en masse ting man skal overveje, såsom opdaterng af lagerbeholdning så den resaverer de varer man tilføjer. Har allerede lavet en SQL som tilføjer debitorer og de virker tilsyneladne uden problemer - her vælger jeg blot det højeste løbenummer i tabellen, lægger en til og skriver recorden... Tænkte bare om der var et sted man kunne hive dette nummer ud ?
Du må ikke bare finde det højeste løbenummer i tabellen! Løbenumre skal være unikke pr. regnskab på SQL, IKKE KUN PR. TABEL!
Du skal bruge en stored procedure sp_xalseqno (tror jeg nok den hedder). Den giver dig et nummer, hvor du så har det + de næste 9 numre
Hvis du absolut vil skrive direkte i SQL-tabellerne så skal du huske at overholde alle reglerne om ingen NULL-værdier,CHAR(2),datoer klokken 00:00:00 og foranstillede mellemrum.
Ellers er det meget nemmere at bruge ODBC funktionerne indefra C5 og trække ordrerne ind i C5.
Uanset hvad du gør, så kan du ende med en hulens masse kode for at få det til at fungere korrekt. Det er betydeligt nemmere og mere sikkert at indlæse en fil med de få data, der skal anvendes, og du kan i øvrigt automatisere hele processen med betydelig mindre arbejdsindsats end den du har gang i. Bogholderi er en spøjs ting, og kan ikke bare håndteres ved at smide lidt data hist og pist i databasen, og så forvente at det kører korrekt. Husk at alle funktioner og kørsler ligger i C5 og ikke i den underliggende database. Den er bare til opbevaring af data.
true, men nu snakker vi dog kun om at oprette en debitor og en ordre (med ordrelinjer) - det er det hele - og debitoren er jeg igennem på nær lige det med løbenummeret som jeg var usikker på - problemet er at jeg ikke kan overskue at rode mere med XAL, så hellere 3 gange så meget kode .NET eller et ligende up-to-date programeringssprog - det kan jeg til enhver tid gøre hurtigere end at lave det i XAL... Er helt med på det nok er mere sikkert at kører det ind i kommafiler, men ville bare gerne automatiserer det så meget som muligt og det burde vel lade sig gører så længe man holder hoved koldt...
Anyways, i skal begge have en stor tak for jeres hjælp! - Nu prøver jeg og se om jeg ikke kan få det til at kører, ellers må jeg jo tilbage og rode med de her kommafiler :(
Hehe, det lyder ikke som om det bliver sjovt for dem som ikke kan XAL :D
Synes godt om
Ny brugerNybegynder
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.