Avatar billede Kringelholm Praktikant
03. april 2011 - 16:44 Der er 2 kommentarer og
1 løsning

Import kassekladde igen igen

Hej

Så den gal igen.

Jeg prøver og lave en kørsel som skal importer en tekstfil til kassekladden.

Jeg kan have nogle linjer i denne tekst fil som er helt ens bortset fra beløbet. I de tilfælde ville jeg gerne have at beløbet bliver lagt sammen. De linjer som skal ligge sammen kommer lige efter hinanden.

Jeg ville gerne have den til at tjekke på om felt &Tjeklinje er magen til linjen før.

Nedenstående det jeg har lavet til nu.

Jeg håber det er forståeligt

På forhånd tak.


Lars


#MacroLoad(FILE)
STR  70 &FilNavn
INT    &Counter
INT    &InsErr

REAL    &nr
STR 255 &dato
STR 255 &slet1
STR 255 &bilagogtekst
STR 255 &Tekst
STR 255 &kt
STR 255 &Tjeklinje
STR 255 &slet2
STR 255 &total
STR 255 &slet3

SET &Filnavn = #GetFile( "Import til "+FilePName(FinKladde)+":","*.kom")

IF NOT &FilNavn OR NOT #FileExists(&FilNavn) THEN
    RETURN 0
ENDIF


WINDOW 40,5 AT 20,5
PRINT "Skriver...........:  FinKladde" AT 1,1
PRINT "Fra...............:  "+&FilNavn    AT 1,2

TTSBEGIN  FinKladde
INTRODUCE FinKladde
READ &FilNavn AS Comma INTO (
      &dato,
      &slet1,
      &bilagogtekst,
      &kt,
      &slet2,
      &total,
      &slet3,
  )
SET &dato = SysInfo(5031,&dato)
SET &slet1 = SysInfo(5031,&slet1)
SET &bilagogtekst = SysInfo(5031,&bilagogtekst)
SET &kt = SysInfo(5031,&kt)
SET &slet2 = SysInfo(5031,&slet2)
SET &total = SysInfo(5031,&total)
SET &slet3 = SysInfo(5031,&slet3)
  SET &Counter = &Counter + 1

  SET Navn = "faktura"
  SET &nr = &nr+1
  SET Linienr = &nr
  SET Dato = str2date(&dato,123)
  SET &Tekst = strdel(&bilagogtekst,1,7)
  SET Tekst = &tekst
  SET Bilag = Str2num(strkeep(&bilagogtekst,&tekst))
  SET Konto = &kt
  SET &Tjeklinje = &kt+&dato+&bilagogtekst
  SET BeløbVAL = Str2num(strrem(&total,"."))
  SET Moms = "salg"
  SET Valuta = "DKK"
  SET Valutakurs = 100

  SET LøbeNummer = 0

  INSERT FinKladde

  #ADD(&InsErr,(LøbeNummer == 0))
END
TTSCOMMIT FinKladde
IF &InsErr THEN
SET Box(2,StrFmt("@SYS64094",Int2Str(&InsErr)),0)
ENDIF

PAUSE
Avatar billede dpd Nybegynder
03. april 2011 - 19:35 #1
Tilføj:
Str 255 &TjeklinjeOld // = ""
REAL    &BeløbValOld  // = 0
REAL    &NrOld

Flyt:
// SET &nr = &nr+1
// SET Linienr = &nr
// SET løbenummer = 0

// Istedet for INSERT Finkladde følgende:.

IF &TjekLinje == &TjekLinjeOld THEN
    SET BeløbVal = BeløbVal + &BeløbValOld
    SET Linienr  = &NrOld
    UPDATE FinKladde
  ELSE
    SET LøbeNummer = 0
    SET &nr = &nr+1
    SET Linienr = &nr
    INSERT FinKladde
  ENDIF
  SET &BeløbValOld  = BeløbVal
  SET &NrOld        = Linienr
  SET &TjeklinjeOld = &Tjeklinje


Linien med SET Bilag forstår jeg ikke
Avatar billede Kringelholm Praktikant
04. april 2011 - 16:09 #2
Tusinde tak

Det virker perfekt

Skriver du et svar til pointgivning.

Med venlig hilsen


Lars
Avatar billede dpd Nybegynder
04. april 2011 - 16:35 #3
Hermed 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

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