; duplikování vět v ceníku ; verze z 18.1.2007 ; Autor: WinDUO Team Name('!!! Duplikování skladu !!!') Designed('Skl_Man#1') Author('Winduo Team','EMail: winduo@winduo.cz','http://www.winduo.com','http://www.winduo.cz') Descr('Zduplikuje ceník s novým číslem skladu, Filtr=Ano') WNSType(-1); ModifyMode(True) IntCislo:LongInt Material:String x:LongInt Pozice:LongInt NovySklad:Word ZdrojSklad:Word ;DlgFollowMouse(True) ;{definice uvodniho dialogu} DefDialog('Definice převodu',418,166) DlgShade(-1,'',4,27,409,66) DlgStatic(-1,' Volba údajů',3,5,84) DlgStatic(-1,'Zadejte číslo skladu, ze kterého chcete čerpat údaje',16,42,342) DlgEdit(10,ZdrojSklad,362,38,40,,4) DlgOnLineHelp(10,'Číslo skladu, jehož položky budou použity jako zdroj') DlgStatic(-1,'Zadejte číslo skladu, který bude vygenerován',16,62,342) DlgEdit(20,NovySklad,362,62,40,,4) DlgOnLineHelp(20,'Číslo skladu, jehož položky budou použity jako zdroj') DlgButton(id_OK,'OK',246,98); DlgOnLineHelp(id_OK,'Pokračuje ve zpracování') DlgButton(id_Cancel,'Zpět',329,98); DlgOnLineHelp(id_Cancel,'Ukončí bez zpracování') if(DlgExecute()<>ID_OK) Halt Duplikovano:LongInt LocB:Boolean DeclareRec('Program') DeclareRec('Sklad') DeclareRec('KeySklad2') PomKey:KeySklad2 InitStatus(UsedKeys(KeySklad2),'Duplikuji skladové karty') ; inicializace stavoveho prouzku VetaS:LongInt VetaX:LongInt LocStr:String While(NextKey(KeySklad2,VetaS)) ; začátek cyklu přes celý soubor begin ; začátek příkazu pro zpracování jedné věty ReadRec(Sklad,VetaS) ; přečte větu ze souboru if((Sklad.Sklad=ZdrojSklad)and(InFilter(Sklad))) begin CopyRec(KeySklad2,PomKey) PomKey.Sklad=Swap(NovySklad); if(not FindKey(PomKey,VetaX)) begin Sklad.Cislo=GetNewIdent() Sklad.Sklad=NovySklad Sklad.PocStav=0 Sklad.PocStavKc=0 Sklad.PrijmyC=0 Sklad.Prijmy=0 Sklad.PrijmyKc=0 Sklad.VydajeC=0 Sklad.Vydaje=0 Sklad.VydajeKc=0 Sklad.VydajePc=0 Sklad.PrumNC=0 Sklad.SpolRok=Val(Rok()) Sklad.SpolCislo=Sklad.Cislo Sklad.AktPNC=0 Sklad.Zustatek=0 Sklad.InvStav=0 AddRec(Sklad,VetaX); Inc(Duplikovano); end; FindKeyAndRef(KeySklad2,VetaS); end Inc(Pozice) ; zvyseni citace zpracovanych vet SetStatus(Pozice) ; nastaveni stavoveho prouzku end ; konec příkazu pro zpracování jedné věty Message('Počet zduplikovaných záznamů: '+Str(Duplikovano),mb_IconInformation) END;