mojaSymfonia FORUM https://forum.mix-soft.pl/ |
|
import specjalny - dwukrotny odczyt pliku wejściowego https://forum.mix-soft.pl/viewtopic.php?f=15&t=2188 |
Strona 1 z 1 |
Autor: | elja [ 2010-07-11, 17:10 ] |
Tytuł: | import specjalny - dwukrotny odczyt pliku wejściowego |
witam, czy mozna przy imporcie specjalnym do FKF dwa razy przejsc po pliku z danymi wejsciowymi, tzn w szablonie importu wpisac taki kod, który umozliwi najpierw wczytanie z pliku części linijek a za drugim razem pozostałych? |
Autor: | wrob [ 2010-07-11, 20:40 ] |
Tytuł: | |
mozna - przeanalizuj sobie szablon importu z programu Sprzedaz.... |
Autor: | elja [ 2010-07-13, 08:57 ] |
Tytuł: | |
przeanalizowałam :) i rozumiem ze chodzi o #execute np. #execute("qqq.txt", "nnn.ams") z tym, ze jak uzywam execute i stworzonego specjalnie szablonu nnn.ams to faktycznie czyta mi czesc linii z pliku qqq.txt a pozniej jeszcze raz po pliku idzie ale wpisuje to do odrębnego dokumentu a ja musze miec wszystko wpisane w jednym dokumencie DP. (robie to za pomocą COMMA). i czy to sie da zrobic? |
Autor: | wrob [ 2010-07-13, 10:22 ] |
Tytuł: | |
a czemu uzywasz odrebnych szablonow ? nie da sie jednym? |
Autor: | elja [ 2010-07-13, 12:26 ] |
Tytuł: | |
no raczej nie moge wykorzytywac jednego szablonu bo przeciez chce zeby co innego robił ten drugi Pisze profil importu (wszystko do jednego dokumentu DP - COMMA). Plik z danymi wygląda w ten sposób, że jeden wiersz dotyczy jednego zapisu. Zapisy idą na „4” w korespondencji na „8” i na „5” w korespondencji na 490 oraz na 2 w korespondencji na 7. I jest tak ze najpierw są 4 -8 , 5-490, potem 2-7 dotyczące jednej rzeczy, a później znowu są 4 -8 , 5-490, 2-7 dotyczące drugiej rzeczy itd. I mój problem polega na tym, ze zapisy na 5-490 to muszą być zapisy równoległe i nie wiem jak sterowac pozycją tych zapisów w dokumencie. (tak zeby sie nie nadpisywały te pozycje). Dlatego chciałam najpierw zrobic zapisy na 4-8 i 2-7 a pozniej równoległe - wykorzystując dwukrotne czytanie pliku. |
Autor: | wrob [ 2010-07-13, 12:46 ] |
Tytuł: | |
$pozycja = x $rozbicie = y i dla rownolegloego dodaj $zapisRownolegly = 33 i ne trzeba nic kombinowac z wieloma plikami:) |
Autor: | elja [ 2010-07-13, 13:20 ] |
Tytuł: | |
hmm nie zrozumiałam:) te x i y to zmienne? ponizej przykładowy plik z danymi wejsciowymi: nic;nic;nic;nic;nic;konto;strona;kwota 1;2;3;3;3;456;WN;60.00 1;2;5;5;5;870;MA;60.00 1;2;3;3;3;550;WN;60.00 1;2;5;5;5;490;MA;60.00 1;2;3;3;3;456;WN;70.00 1;2;5;5;5;870;MA;70.00 1;2;3;3;3;550;WN;70.00 1;2;5;5;5;490;MA;70.00 3;2;45;5;5;456;WN;99.00 1;2;5;5;5;870;MA;99.00 1;2;3;3;3;550;WN;99.00 1;2;5;5;5;490;MA;99.00 1;2;45;5;5;220;WN;134.00 1;2;5;5;5;700;MA;100.00 1;2;5;5;5;700;MA;34.00 3;2;45;5;5;220;WN;220.00 1;2;5;5;5;700;MA;100.00 1;2;5;5;5;700;MA;120.00 3;2;45;5;5;220;WN;320.00 1;2;5;5;5;700;MA;120.00 1;2;5;5;5;700;MA;100.00 1;2;5;5;5;700;MA;100.00 i moj wykombinowany:) szablon: czy te x to włąsnie ma byc moje @poz (które zwiększam o 1 po wpisaniu całej pozycji (dwóch zapisów po stronie wn i ma)? zmienne sumwn i summa słuza mi do tego zeby własnie w odpowiednim momencie zwiekszyc nr pozycji i na 1 znowu ustawic rozbicie ( bo w przypadku zapisów na 2-7 "7" czyli strona "MA" moze byc rozbita na kilka. jak sobie popróbowałam z tym $pozycja = x w inym uproszczonym szablonie (bez 2-7) to pojawia sie przy próbie importu komunikat ze nie wie co to jest x Kod: #format "COMMA" #symbol_LP "LP" Section("", "dokument") { @sname = [2] $klucz = Def("Symbol_LP") $obslugujJak= "DP" Exit() @poz = 0 @roz = 1 @sumwn = 0 @summa = 0 Section( @sname, "", "REPEAT" ) { IF(equal([7], "WN")) { IF (equal([6], "456")) { MakeSec("zapis") { $pozycja = @@poz $rozbicie = 0 $strona = 0 $kwota = [8] $konto = [6] @@sumwn=[8] } } IF (equal([6], "550")) { MakeSec("zapis") { $pozycja = @@poz $rozbicie = 0 $strona = 0 $kwota = [8] $konto = [6] @@sumwn=[8] $ZapisRownolegly = 33 } } IF (equal([6], "220")) { MakeSec("zapis") { $pozycja = @@poz $rozbicie = 0 $strona = 0 $kwota = [8] $konto = [6] @@sumwn=[8] } } } ELSE { IF (equal([6], "870")) { MakeSec("zapis") { $pozycja = @@poz $rozbicie = 1 $strona = 1 $kwota = [8] $konto = [6] @@summa = SUM2(@@summa, [8]) } } IF (equal([6], "490")) { MakeSec("zapis") { $pozycja = @@poz $rozbicie = 1 $strona = 1 $kwota = [8] $konto = [6] $ZapisRownolegly = 33 @@summa = SUM2(@@summa, [8]) } } IF (equal([6], "700")) { MakeSec("zapis") { $pozycja = @@poz $rozbicie = @@roz $strona = 1 $kwota = [8] $konto = [6] @@summa = SUM2(@@summa, [8]) } } @@roz = SUM0(@@roz, 1) } IF(equal(@@summa, @@sumwn)) { @@poz = SUM0(@@poz, 1) @@roz=1 @@sumwn = 0 @@summa = 0 } } } |
Autor: | wrob [ 2010-07-13, 14:48 ] |
Tytuł: | |
no x i y to oczywiscie miejsce na twoja wartosc wg potrzeby tak wiec dobrze kombinujesz z tym @poz |
Strona 1 z 1 | Strefa czasowa UTC+1godz. [letni] |
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group http://www.phpbb.com/ |