Program pre spr8vu objednávok žalúzií.

Delphi & Pascal (česká wiki)
Přejít na: navigace, hledání
Kategórie: Programy v Pascalu
zaluzie.pngProgram: Zaluzie.pasArchiv.pasDealer.pasFarba.pasFax.pasFilter.pasFormul.pasFyzic.pasHelp.pasKniznic.pasMiesto.pasMzdy.pasOption.pasPr_zal.pasRead_dbf.pasRedef.pasSdv.pasTlac.pasTrsek.pasZaluz.pasZostavy.pas
Soubor exe: Zaluzie.exe
Potřebné: Zaluzie.zipHelp.datDealerDealer.$$$Fax.datKumuly.$$$Kumuly.frmKumuly.kumMeracMontazOption.dbfOption.frmOption.indPoradie.datVystup.txtZaluzie.dbfZaluzie.datZaluzie.frmZaluzie.indZaluzie.txtZostava.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é).
{ DEALER.PAS                Copyright (c) TrSek alias Zdeno Sekerak }
{ Zobrazenie/spracovanie odmien pre dealerov.                       }
{                                                                   }
{ Datum:19.06.1995                            http://www.trsek.com  }
 
function ddealer(nazo,subor:string;var meno,priezvisko:string;vyber:boolean;hlada,povod:integer):integer;
var err:integer;
   i,ir,x,poc:integer;
    ch:char;
    index:array[1..vcisla] of integer;
    dealer:tdealer;
begin
  if hlada=-1 then begin
     ddealer:=0;
     meno:=nothing(SizeOf(meno));
     priezvisko:=nothing(SizeOf(Priezvisko));
     exit;
     end;
 
  assign(fde,subor);
  {$I-}
  reset(fde);
  err:=ioresult;
  if err<>0 then begin
     rewrite(fde);
     err:=ioresult;
     end;
  {$I+}
  if err<>0 then hlaska('Chyba z pisu na disk. Pracovně disk chraneně proti z pisu.',0);
 
                                      { kto hlada ten najde !!! - databazovy sleng }
  for i:=1 to filesize(fde) do begin
      seek(fde,i-1);
      read(fde,dealer);
      if not(dealer.del) then
         if hlada=dealer.cis_deal then begin
            priezvisko:=dealer.priezv;
            ddealer:=dealer.cis_deal;
            close(fde);exit;
           end;
      end;
 
  farba(pomest,fomest);
  okno(4,2,48,23,' '+nazo+' ÄÄÄÄÄ Priezvisko ÄÄÄÄÄ',
                 'ESC-Opusti ENTER-věber Pohyb çĄpkami',pomest);
 
  farba(pnmest,fnmest);ir:=1;
  for i:=1 to vcisla do index[i]:=0;
  for i:=1 to filesize(fde) do begin
      seek(fde,i-1);
      read(fde,dealer);
      if not(dealer.del) then begin
         index[i]:=i;
         if ir<19 then begin
            gotoxy(2,ir);write(dealer.cis_deal:3,'-',dealer.priezv,'    ');
            ir:=ir+1;
            end;
         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;
  seek(fde,index[1]-1);read(fde,dealer);
  i:=1;ir:=0;dec(povod);   {.sd}
  if povod>0 then err:=2;
 
  repeat
   KurzorZap(false);
   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(dealer.cis_deal:3,'-',dealer.priezv);
      if err=2 then begin
                    if povod>0  then begin ch:=#80;dec(povod);end;
                    if povod<=0 then err:=0;
                    end
               else ch:=readkey;
      case ch of
        #83:begin                               { DEL }
            dealer.del:=not(dealer.del);
            if dealer.del then hlaska(' Ozna>eně na vymazanie. ',70)
                          else hlaska(' Vymazanie zruçen,. ',70);
            seek(fde,index[i+ir]-1);write(fde,dealer);
            end;
        #72:begin x:=x-1;                       { sipka hore }
            if x<1 then begin
               x:=1;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>1 then            { sipka dole }
               if dealer.priezv=nothing(sizeof(dealer.priezv)-1) then begin
                       hlaska(' Ňalej nem"§eç najprv vyplĺ priezvisko',70);
                       x:=x-1;
                       end
                      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(fde)+1;
                          dealer.cis_deal:=filesize(fde)+1;
                          dealer.priezv:=nothing(sizeof(dealer.priezv));
                         { dealer.meno:=nothing(sizeof(dealer.meno));}
                          dealer.del:=false;
                          end;
                        end;
                       end;
        else begin
             farba(pvmest,fvmest);
             dealer.priezv:=tread(6,i,sizeof(dealer.priezv)-1,dealer.priezv,'',#0,ch);
             end;
        end;
      ch:=#0;
     end;
 
     if (index[i+ir]<=filesize(fde)) and (index[i+ir]<>0) then begin
        seek(fde,index[i+ir]-1);read(fde,dealer);
        end
        else begin
         if dealer.priezv<>nothing(sizeof(dealer.priezv)-1) then
            begin
            dealer.cis_deal:=filesize(fde)+1;
            dealer.del:=false;
            dealer.priezv:=nothing(sizeof(dealer.priezv)-1);
            {dealer.meno:=nothing(sizeof(dealer.meno)-1);}
           end
           else index[i+ir]:=filesize(fde)+1;
         end;
 
     farba(pnmest,fnmest);
     gotoxy(2,i);write(dealer.cis_deal:3,'-'{,dealer.meno,' '},dealer.priezv);
     if dealer.del then write(' DEL')
                   else write('    ');
     if x=1 then {begin farba(pvmest,fvmest);gotoxy(6,i);write(dealer.meno);gotoxy(6,i);end
            else} begin farba(pvmest,fvmest);gotoxy(6{+sizeof(dealer.meno)},i);write(dealer.priezv);
                 gotoxy(7{+sizeof(dealer.meno)},i);end;
 
     if (not(vyber) and (ch in ['A'..'z',#32,#13])) or (vyber and (i+ir>poc) and (ch in ['A'..'z',#32,#13])) then begin
        if x=1 then {dealer.meno:=tread(6,i,sizeof(dealer.meno)-1,dealer.meno,#13,ch)
               else }dealer.priezv:=tread(6{+sizeof(dealer.meno)},i,sizeof(dealer.priezv)-1,dealer.priezv,'',#13,ch);
        err:=2;ch:=#80;
 
        if x=1 then {begin farba(pnmest,fvmest);gotoxy(6,i);write(dealer.meno);gotoxy(6,i);end
               else }begin farba(pnmest,fvmest);gotoxy(6{+sizeof(dealer.meno)},i);write(dealer.priezv);end;
               end;
 
     if not(dealer.priezv=nothing(sizeof(dealer.priezv)-1)) then begin
        seek(fde,index[i+ir]-1);write(fde,dealer);
        end;
     {meno:=dealer.meno;}priezvisko:=dealer.priezv;
   until ((ch=#27) or ((ch=#13)) );              { vyber and ch=#13 }
   close(fde);
   ddealer:=dealer.cis_deal;
 end;