//TTEdit.prg PROCEDURE TTEdit LOCAL aData1 := {} LOCAL aData2 := {} LOCAL aDataD := {} LOCAL nArea := 11, nRec := 1, cDatei := "1", n14 := 14 CLEAR @ 1,0 SAY "Welche Datei soll editiert werden? (9=Repair2/14)" GET cDatei READ DO CASE CASE cDatei = "1" USE best index xauftrnr SELECT &nArea USE tbest EXCLUSIVE n14 := 14 CASE cDatei = "2" USE vv index xvvauf SELECT &nArea USE tvv EXCLUSIVE n14 := 14 CASE cDatei = "3" USE auftr index xaufauf SELECT &nArea USE tauftr EXCLUSIVE n14 := 14 CASE cDatei = "5" USE vers index xverskz SELECT &nArea USE tvers EXCLUSIVE n14 := 7 CASE cDatei = "9" SELECT &nArea USE tbest EXCLUSIVE n14=1 Reparatur( nArea, 1, n14 ) USE tvv EXCLUSIVE n14=2 Reparatur( nArea, 1, n14 ) USE tauftr EXCLUSIVE n14=14 Reparatur( nArea, 1, n14 ) USE tvers EXCLUSIVE n14=1 Reparatur( nArea, 1, n14 ) ENDCASE ASize( aData1, FCount() ) ASize( aData2, FCount() ) ASize( aDataD, FCount() ) DO WHILE .NOT. Eof() aData1 := SatzGet( nArea, nRec ) aData2 := SatzGet( nArea, nRec+1 ) aDataD := SatzGet( nArea, nRec+2 ) @ 3,0 SAY nRec @ 5,0 GET aData1[1] ; @ 5,8 GET aData1[2] ; @ 5,16 GET aData1[5] @ 5,45 GET aData1[n14] ; @ 5,57 GET aData1[FCount()] @ 6,0 GET aData2[1] ; @ 6,8 GET aData2[2] ; @ 6,16 GET aData2[5] @ 6,45 GET aData2[n14] ; @ 6,57 GET aData2[FCount()] @ 7,0 GET aDataD[1] ; @ 7,8 GET aDataD[2] ; @ 7,16 GET aDataD[5] @ 7,45 GET aDataD[n14] ; @ 7,57 GET aDataD[FCount()] SELECT 1 XXX := aData2[1] cAuf := IIf( ValType(XXX) = "N", Str(aData2[1]), aData2[1] ) FIND &cAuf DO WHILE cDatei = "2" .AND. aData2[1] = &(FieldName(1)) .AND. !Eof() IF aData2[2] = &(FieldName(2)) EXIT ENDIF SKIP ENDDO DO WHILE cDatei = "3" .AND. aData2[1] = &(FieldName(1)) .AND. !Eof() IF aData2[3] = &(FieldName(3)) .AND. aData2[n14] = &(FieldName(n14)) EXIT ENDIF SKIP ENDDO @ 9,0 SAY &(FieldName(1)) ; @ 9,8 SAY &(FieldName(2)) ; @ 9,16 SAY &(FieldName(5)) @ 9,45 SAY &(FieldName(n14)) ; @ 9,57 SAY &(FieldName(3)) SELECT &nArea READ cVZS := "0" @ 11,0 SAY "Vor=v - zurck=z - speichern+vor=0/1/2 " GET cVZS READ DO CASE CASE cVZS = "0" .OR. cVZS = "1" .OR. cVZS = "2" SatzPut( nArea, nRec, aData1, cVZS ) SatzPut( nArea, nRec+1, aData2, cVZS ) SatzPut( nArea, nRec+2, aDataD, cVZS ) nRec := nRec + 3 CASE cVZS = "v" nRec := nRec + 3 CASE cVZS = "z" nRec := nRec - 3 ENDCASE GO nRec ENDDO @ 15,0 SAY "Der letzte Satz hat die Nummer:" + Str(nRec) wait CLOSE DATA RETURN PROCEDURE Reparatur( nArea, nRec, n14 ) DO WHILE .NOT. Eof() aData1 := SatzGet( nArea, nRec ) aData2 := SatzGet( nArea, nRec+1 ) aDataD := SatzGet( nArea, nRec+2 ) aDataD[1] := aData1[1] := aData2[1] aDataD[n14] := aData1[n14] := aData2[n14] SatzPut( nArea, nRec, aData1, "0" ) SatzPut( nArea, nRec+1, aData2, "0" ) SatzPut( nArea, nRec+2, aDataD, "0" ) nRec= nRec+3 Go nRec ENDDO RETURN