Program pre spravu objednávok žalúzií.
Delphi & Pascal (česká wiki)
Category: Source in Pascal
Program: Zaluzie.pas, Archiv.pas, Dealer.pas, Farba.pas, Fax.pas, Filter.pas, Formul.pas, Fyzic.pas, Help.pas, Kniznic.pas, Miesto.pas, Mzdy.pas, Option.pas, Pr_zal.pas, Read_dbf.pas, Redef.pas, Sdv.pas, Tlac.pas, Trsek.pas, Zaluz.pas, Zostavy.pas
File exe: Zaluzie.exe
need: Zaluzie.zip, Help.dat, Dealer, Dealer.$$$, Fax.dat, Kumuly.$$$, Kumuly.frm, Kumuly.kum, Merac, Montaz, Option.dbf, Option.frm, Option.ind, Poradie.dat, Vystup.txt, Zaluzie.dbf, Zaluzie.dat, Zaluzie.frm, Zaluzie.ind, Zaluzie.txt, Zostava.frm
Program: Zaluzie.pas, Archiv.pas, Dealer.pas, Farba.pas, Fax.pas, Filter.pas, Formul.pas, Fyzic.pas, Help.pas, Kniznic.pas, Miesto.pas, Mzdy.pas, Option.pas, Pr_zal.pas, Read_dbf.pas, Redef.pas, Sdv.pas, Tlac.pas, Trsek.pas, Zaluz.pas, Zostavy.pas
File exe: Zaluzie.exe
need: Zaluzie.zip, Help.dat, Dealer, Dealer.$$$, Fax.dat, Kumuly.$$$, Kumuly.frm, Kumuly.kum, Merac, Montaz, Option.dbf, Option.frm, Option.ind, Poradie.dat, Vystup.txt, Zaluzie.dbf, Zaluzie.dat, Zaluzie.frm, Zaluzie.ind, Zaluzie.txt, Zostava.frm
Program bol vytvorený pre vnutorné potreby firmy KOMA pre spravu objednávok žalúzií.
Bližší popis jednotlivých funkcií:
F2 - Zalúzia
Slúži ako nosná časť celého tohto programu dajú sa v ňom zadávať informácie o objednávateľovi ako jeho MENO, ADRESA, PODLAŽIE.
Kvôli neskorším rozpisom je možné vyplniť (ŠTVRŤ) program sa potom bude týmto riadiť.
Ďalej informácie o tom kto bol dohadzovač (DEALER), kto odmeriaval žalúziu (MERAČ) a nakoniec mená až troch (MONTÁŽNIKOV).
Je možné ďalej vyplniť DATUM OBJEDNAVKY, s tým, že program okamžite prepočíta kedy uplyie doba 14 dní na vykonanie montáže (LEHOTA).
Ak je nám známa CENA žalúzie po je vyplnení okamžite vypočítava DOPLATOK. Po vyplnení ZALOHY je vypočítaný doplatok znova.
Pri vyplňovaní mzdových nákladov máme približný mzdový charakter pre jednotlivých zainteresovaných.
Žalúzie sa vypĺňajú intuitívne pričom ak nie je zadaná farba nie je možné vyplniť žalúziu ďalšiu.
Číselníky pre STVRT, DEALER, MERAC, MONTAZNIK, FARBA sú aktivované okamžite po stlačení klávesy ENTER. Potom si stačí vybrať potrebné a znova stlačiť ENTER. Ak však má užívateľ čísla v krvi stačí napísať priamo číslo program si už neako poradí sám.
F3 - DEALER, F5 - MERAC, F6 - MONTAZ, F4 - FARBA
Okno pre doplnenie číselníka dealerov (meračov, montážnikov farieb). Pohyb šipkami, ESC - koniec práce, DEL - označ dealera na zmazanie.
F4 - ULICA
Okno pre doplnenie číselníka ulíc. Ostatné ako u DEALER. Ak však stlacíte ENTER na položke vpravo objaví sa vám okno MESTO, kde si vyberiete do akého mesta potrí ulica. Aj v meste je ešte možné vybrať KRAJ. ( Upozorňujem, že názvy sú pracovné. Znamená, že ich použitie môže byť iné).
Bližší popis jednotlivých funkcií:
F2 - Zalúzia
Slúži ako nosná časť celého tohto programu dajú sa v ňom zadávať informácie o objednávateľovi ako jeho MENO, ADRESA, PODLAŽIE.
Kvôli neskorším rozpisom je možné vyplniť (ŠTVRŤ) program sa potom bude týmto riadiť.
Ďalej informácie o tom kto bol dohadzovač (DEALER), kto odmeriaval žalúziu (MERAČ) a nakoniec mená až troch (MONTÁŽNIKOV).
Je možné ďalej vyplniť DATUM OBJEDNAVKY, s tým, že program okamžite prepočíta kedy uplyie doba 14 dní na vykonanie montáže (LEHOTA).
Ak je nám známa CENA žalúzie po je vyplnení okamžite vypočítava DOPLATOK. Po vyplnení ZALOHY je vypočítaný doplatok znova.
Pri vyplňovaní mzdových nákladov máme približný mzdový charakter pre jednotlivých zainteresovaných.
Žalúzie sa vypĺňajú intuitívne pričom ak nie je zadaná farba nie je možné vyplniť žalúziu ďalšiu.
Číselníky pre STVRT, DEALER, MERAC, MONTAZNIK, FARBA sú aktivované okamžite po stlačení klávesy ENTER. Potom si stačí vybrať potrebné a znova stlačiť ENTER. Ak však má užívateľ čísla v krvi stačí napísať priamo číslo program si už neako poradí sám.
F3 - DEALER, F5 - MERAC, F6 - MONTAZ, F4 - FARBA
Okno pre doplnenie číselníka dealerov (meračov, montážnikov farieb). Pohyb šipkami, ESC - koniec práce, DEL - označ dealera na zmazanie.
F4 - ULICA
Okno pre doplnenie číselníka ulíc. Ostatné ako u DEALER. Ak však stlacíte ENTER na položke vpravo objaví sa vám okno MESTO, kde si vyberiete do akého mesta potrí ulica. Aj v meste je ešte možné vybrať KRAJ. ( Upozorňujem, že názvy sú pracovné. Znamená, že ich použitie môže byť iné).
{ MIESTO.PAS Copyright (c) TrSek alias Zdeno Sekerak } { } { Datum:19.06.1995 http://www.trsek.com } function dmiesto(subor:string;var miesto,oblast:string;vyber:boolean;hlada:integer):integer; var err:integer; fme:file of tmiesto; y,i,ir,x,poc:integer; x1,y1,x2,y2:integer; ch:char; index:array[1..vcisla] of integer; pmiesto:tmiesto; s,s1:string; reg:registers; begin case subor[2] of 'i': assign(fme,'miesto'); 'e': assign(fme,'mesto'); 'r': assign(fme,'kraj'); end; {$I-} reset(fme); err:=ioresult; if err<>0 then begin rewrite(fme); err:=ioresult; end; {$I+} if err<>0 then hlaska('Chyba z pisu na disk. Pracovně disk chr neně proti z pisu.',0); { Nasiel co hladal ak bol vstup vyplneny cislom } if (hlada<>0) then for i:=1 to filesize(fme) do begin seek(fme,i-1); read(fme,pmiesto); if not(pmiesto.del) then if hlada=pmiesto.typ_miest then begin miesto:=pmiesto.miesto;oblast:=pmiesto.oblast; dmiesto:=pmiesto.typ_miest; close(fme);exit; end; end; { zoscanuje predoslu obrazovku } if subor<>'miesto' then begin if subor='mesto' then ir:=0 else ir:=2; x1:=xw1;y1:=yw1;x2:=xw2;y2:=yw2; owindow(1,1,80,25); for i:=2 to 80 do for y:=2 to 23 do begin gotoxy(i,y); reg.ah:=8; reg.bh:=0; intr($10,reg); strana[ir+1,i,y]:=reg.ah; strana[ir+2,i,y]:=reg.al; end; end; farba(pomest,fomest); case subor[2] of 'i': okno(2,2,76,23,' Miesto -ulica ÄÄÄÄÄÄÄÄÄ Jeho oblas? ', 'ESC-Opusti ENTER [prvě] Ozna>-ENTER [druhě]-Věber Pohyb-ćĄpkami',pomest); 'e': okno(4,2,78,23,' Mesto ÄÄÄÄÄÄÄÄÄ Jeho oblast ', 'ESC-Opusti ENTER [prvě] Ozna>-ENTER [druhě]-Věber Pohyb-ćĄpkami',pomest); 'r': okno(6,2,80,23,' Kraj - oblast ÄÄÄÄÄÄÄÄÄ Jeho oblast ', 'ESC-Opusti ENTER [prvě] Ozna>-ENTER [druhě]-Věber Pohyb-ćĄpkami',pomest); end; farba(pnmest,fnmest);ir:=1; for i:=1 to vcisla do index[i]:=0; for i:=1 to filesize(fme) do begin seek(fme,i-1); read(fme,pmiesto); if not(pmiesto.del) then if ir<19 then begin index[ir]:=i; gotoxy(2,ir);write(pmiesto.typ_miest:3,'-',pmiesto.miesto,' ',pmiesto.oblast,' '); ir:=ir+1; end; end; poc:=i; if vyber then i:=ir-1 else i:=ir; if i<1 then i:=1; ch:=#1;x:=1;ir:=0;err:=1; repeat if err in [1,2] then begin if err in [1] then err:=0; end else ch:=readkey; if (ch=#0) or (err=2) then begin farba(pnmest,fnmest); gotoxy(2,i);write(pmiesto.typ_miest:3,'-',pmiesto.miesto,' ',pmiesto.oblast); if err=2 then err:=0 else ch:=readkey; case ch of #83:begin pmiesto.del:=not(pmiesto.del); if pmiesto.del then hlaska(' Ozna>eně na vymazanie. ',70) else hlaska(' Vymazanie zruçen,. ',70); seek(fme,index[i+ir]-1);write(fme,pmiesto); end; #72:begin x:=x-1; if x<1 then begin x:=2;i:=i-1;if i<1 then begin gotoxy(1,1);insline;i:=1;ir:=ir-1;end; if ir<0 then begin ir:=0;x:=1;delline;end; end; end; #80:begin x:=x+1;if x>2 then if (pmiesto.oblast=nothing(sizeof(pmiesto.oblast)-1)) or (pmiesto.miesto=nothing(sizeof(pmiesto.miesto)-1)) then hlaska(' Dalej nemozes najprv vypln oblas, pmiesto.',70) else begin x:=1;i:=i+1; if i>19 then begin gotoxy(1,1);delline;i:=19;ir:=ir+1;end; if index[i+ir]=0 then begin index[i+ir]:=filesize(fme)+1; pmiesto.typ_miest:=filesize(fme)+1; pmiesto.oblast:=nothing(sizeof(pmiesto.oblast)); pmiesto.miesto:=nothing(sizeof(pmiesto.miesto)); pmiesto.del:=false; end; end; end; else if x=1 then pmiesto.miesto:=tread(6,i,sizeof(pmiesto.miesto)-1,pmiesto.miesto,'',#13,#13); end; ch:=#0; end; if (index[i+ir]<=filesize(fme)) and (index[i+ir]<>0) then begin seek(fme,index[i+ir]-1);read(fme,pmiesto); end else begin if pmiesto.oblast<>nothing(sizeof(pmiesto.oblast)-1) then begin pmiesto.typ_miest:=filesize(fme)+1; pmiesto.del:=false; pmiesto.oblast:=nothing(sizeof(pmiesto.oblast)-1); pmiesto.miesto:=nothing(sizeof(pmiesto.miesto)-1); end else index[i+ir]:=filesize(fme)+1; end; farba(pnmest,fnmest); gotoxy(2,i);write(pmiesto.typ_miest:3,'-',pmiesto.miesto,' ',pmiesto.oblast); if pmiesto.del then write(' D') else write(' '); if x=1 then begin farba(pvmest,fvmest);gotoxy(6,i);write(pmiesto.miesto);gotoxy(6,i);end else begin farba(pvmest,fvmest);gotoxy(6+sizeof(pmiesto.miesto),i);write(pmiesto.oblast); gotoxy(7+sizeof(pmiesto.miesto),i);end; if (not(vyber) and (ch in ['A'..'z',#13])) or (vyber and (ch in ['A'..'z',#13])) then begin if x=1 then pmiesto.miesto:=tread(6,i,sizeof(pmiesto.miesto)-1,pmiesto.miesto,'',#13,ch) else begin if subor='miesto' then begin pmiesto.cis_obl:=dmiesto('mesto',s1,s,true,0);pmiesto.oblast:=s1;;end; if subor='mesto' then begin pmiesto.cis_obl:=dmiesto( 'kraj',s1,s,true,0);pmiesto.oblast:=s1;;end; if subor='kraj' then begin pmiesto.cis_obl:=1;pmiesto.oblast:='Slovensko';end; end; err:=2; if not(vyber) then ch:=#80; if x=1 then begin farba(pnmest,fvmest);gotoxy(6,i);write(pmiesto.miesto);gotoxy(6,i);end else begin farba(pnmest,fvmest);gotoxy(6+sizeof(pmiesto.miesto),i);write(pmiesto.oblast);end; end; if not(pmiesto.oblast=nothing(sizeof(pmiesto.oblast)-1)) then begin seek(fme,index[i+ir]-1);write(fme,pmiesto); end; miesto:=pmiesto.miesto;oblast:=pmiesto.oblast; until ((ch=#27) or (vyber and (x=1) and (ch in [#13]))); close(fme); dmiesto:=pmiesto.typ_miest; if subor<>'miesto' then begin owindow(1,1,80,25); for i:=2 to 80 do for y:=2 to 23 do begin if subor='mesto' then ir:=0 else ir:=2; gotoxy(i,y); reg.ah:=$9; reg.bh:=0; reg.al:=strana[ir+2,i,y]; reg.bl:=strana[ir+1,i,y]; reg.cx:=1; intr($10,reg); end; end; owindow(x1,y1,x2,y2); end;