home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Chip 1997 April
/
Chip_1997-04_cd.bin
/
tema
/
602propc
/
disk5
/
data.5
/
WINTIME
/
APPS
/
I_MAILME.PGM
< prev
next >
Wrap
Text File
|
1996-12-03
|
11KB
|
325 lines
INCLUDE
procedure SpustitWinText602(parsablona : string[80]);
{**************************************}
var
cesta : string[80];
parwb : string[80];
parametr : string[160];
err : short;
idw : window_id;
begin
parametr := '/wbase602 '+pathwb+' '+parsablona;
err := Exec(pathWT,parametr);
if (err = 2) or (err = 3) then begin
if YesNo_box('Chyba p°i spuÜt∞nφ programu WinText602','Pravd∞podobn∞ je Üpatn∞ nastavenß cesta k programu'#10'Opravit nynφ?') then
begin
Open_view('*PWinText',no_redir,modal_view,0,0,idw);
repeat Peek_message until idw=0;
SmazatFrontu;
end;
end else
if (err < 32) and (err >= 0) then Info_box('Chyba p°i spuÜt∞nφ programu WinText602',int2str(err));
end;
procedure Napoved;
{**************************************}
begin
Info_box('Nßpov∞da pro novou Üablonu',
'1) Upravte otev°en² dokument vΦetn∞ p°ipojen²ch polφ do podoby,'#10'jakou si p°ejete.'
#10'2) Prove∩te standardn∞ tiskov² nebo faxov² MailMerge.'
#10#10'Chcete-li Üablonu ulo₧it pro dalÜφ pou₧φvßnφ, prove∩te nßsledujφcφ kroky:'
#10'3) Ulo₧te dokument jako Üablonu (WPT) s nov²m jmΘnem.'
#10'4) V Adresß°i dopl≥te Φφslo, jmΘno a popis novΘ Üablony'#10'(menu ┌dr₧ba/èablony).');
end;
procedure ZapisDoKontaktu(popis : string[40]);
{**************************************}
{zapφÜe informaci o mm do tabulky kontakt∙}
var
i,pocetmm : integer;
cis : short;
reck : integer;
begin
if not Rec_cnt(MailMerge, pocetmm) then begin
for i := 0 to pocetmm-1 do begin
Set_status_text('Zapisuji do tabulky kontakt∙...');
Set_status_nums(i,pocetmm);
Start_transaction;
reck := Insert(Tschuzky); Signalize;
if reck <> -1 then begin
cis := MailMerge[i].cislo;
Tschuzky[reck].cislo := MailMerge[i].cislo;
Tschuzky[reck].dat1 := Today;
Tschuzky[reck].doba1 := Now;
Tschuzky[reck].popis1 := popis;
Tschuzky[reck].vlozil := myName;
Tschuzky[reck].pozn1 := 'automatick² zßznamnφk';
end;
Commit;
end;
Set_status_text('');
Set_status_nums(-1,-1);
end;
end;
procedure TiskForm(zaznam : integer);
{**************************************}
{tisk formulß°e - napln∞nφ tabulky MAILMERGE aktußlnφm zßznamem
tlaΦφtko v pohledu Pfirma}
var
u1 : untyped;
rec2 : integer;
cestaKSablone : string[60];
jmenoSablony : string[80];
pozice : short;
statement : string[250];
cf : cursor;
id_pom : window_id;
sab : string[40];
spom1,spom2,spom3 : string[20];
id_sab2 : window_id;
begin
zrusitAkci := true;
if Parametry[0].sablonyWT = '' then begin
Open_view('*SABLO2ADR',-1,0,0,0,id_sab2);
repeat Peek_message until id_sab2=0;
end;
Open_view("*Psablona",no_redir,modal_view,0,0,id_form);
repeat Peek_message until id_form=0;
SmazatFrontu;
if not ZrusitAkci then begin
Err_mask(true);
Parametry[0].template := template; // zapsßnφ naposled pou₧itΘ Üablony
Err_mask(false);
u1 := template;
rec2 := Look_up(Tsablonywt,"cislo",u1);
Err_mask(true);
cestaKSablone := Parametry[0].sablonywt;
Err_mask(false);
if cestaKSablone[StrLength(cestaKSablone)] = '\' then StrDelete(cestaKSablone,StrLength(cestaKSablone),1);
jmenoSablony := cestaKSablone+'\'+Tsablonywt[rec2].jmeno+'.WPT';
if Write_lock_table(MailMerge) then
Info_box('Nelze','Tabulka pou₧φvanß pro MailMerge je zamknutß.')
else begin
if Delete_all_records(MailMerge) then Signalize
else Free_deleted(MailMerge);
if not Get_fcursor(Active_view,cf,nil) then Info_box('Chyba','Get_fcursor')
else begin
Start_transaction; // sdru₧enφ zßpis∙ do transakce za ·Φelem zrychlenφ
Insert(MailMerge);
spom1 := cf[zaznam].titul;
spom2 := cf[zaznam].jmeno;
spom3 := cf[zaznam].prijmeni;
MailMerge[0].jmeno := spom1+' '+spom2+' '+spom3; //nejde spojovat rovnou, proto₧e kurzor je beztypov²
MailMerge[0].cislo := cf[zaznam].cislo;
MailMerge[0].firma := cf[zaznam].firma;
MailMerge[0].firma2 := cf[zaznam].firma2;
MailMerge[0].funkce := cf[zaznam].funkce;
MailMerge[0].ulice := cf[zaznam].ulice;
MailMerge[0].mesto := cf[zaznam].mesto;
MailMerge[0].psc := cf[zaznam].psc;
MailMerge[0].stat := cf[zaznam].stat;
MailMerge[0].tel := cf[zaznam].telefon[0];
MailMerge[0].fax := cf[zaznam].fax[0];
MailMerge[0].ico := cf[zaznam].ico;
MailMerge[0].dic := cf[zaznam].dic;
Commit; // konec transakce
sab := Tsablonywt[rec2].popis;
ZapisDoKontaktu(sab); // automat. zßznamnφk kontakt∙
SpustitWinText602(jmenoSablony);
if template = 0 then Napoved;
end;
end;
end;
end;
procedure TiskMailMerge;
{**************************************}
{napln∞nφ tabulky MAILMERGE vÜemi vybran²mi zßznamy}
var
curmm : cursor;
err : short;
pocet,i,rec,rec2 : integer;
statement : string[250];
cesta : string[80];
u1 : untyped;
cestaKSablone : string[60];
jmenoSablony : string[80];
id_pom,id_mm : window_id;
sab : string[40];
res : integer;
spom1,spom2,spom3 : string[20];
id_sab2 : window_id;
begin
zrusitAkci := true;
if Parametry[0].sablonyWT = '' then begin
Open_view('*SABLO2ADR',-1,0,0,0,id_sab2);
repeat Peek_message until id_sab2=0;
end;
mm := false;
Open_view("*Psablona",no_redir,modal_view,0,0,id_form);
repeat Peek_message until id_form=0;
SmazatFrontu;
if not ZrusitAkci then begin
Err_mask(true);
Parametry[0].template := template;
Err_mask(false);
u1 := template;
rec2 := Look_up(Tsablonywt,"cislo",u1);
Err_mask(true);
cestaKSablone := Parametry[0].sablonywt;
Err_mask(false);
if cestaKSablone[StrLength(cestaKSablone)] = '\'
then StrDelete(cestaKSablone,StrLength(cestaKSablone),1);
jmenoSablony := cestaKSablone+'\'+Tsablonywt[rec2].jmeno+'.WPT';
Set_cursor(1);
Set_status_text('Vytvß°φm pomocnou tabulku...');
id_pom := Active_view;
if id_pom <> 0 then begin
Get_fcursor(id_pom, curmm, nil); //sejmutφ kurzoru z obrazovky, m∙₧e b²t zm∞n∞n dφky QBE
end else curmm := curmain; //nenφ otev°en pohled do dat
if Rec_cnt(curmm,pocet) then Signalize;
if Write_lock_table(MailMerge) then
Info_box('Nelze','Tabulka pou₧φvanß pro MailMerge je zamknutß.')
else begin
if Delete_all_records(MailMerge) then Signalize
else Free_deleted(MailMerge);
Set_status_text('Zapisuji do pomocnΘ tabulky...');
for i := 0 to pocet-1 do begin
Set_status_nums(i+1,-1);
Translate(curmm,i,0,res);
if res <> -1 then begin // zßznam v kurzoru nebyl zruÜen
Start_transactions; // sdru₧enφ zßpisu na disk do transakce
rec := Insert(MailMerge);
spom1 := curmm[i].titul;
spom2 := curmm[i].jmeno;
spom3 := curmm[i].prijmeni;
MailMerge[rec].jmeno := spom1+' '+spom2+' '+spom3; //nejde spojovat rovnou, proto₧e kurzor je beztypov²
MailMerge[rec].cislo := curmm[i].cislo;
MailMerge[rec].firma := curmm[i].firma;
MailMerge[rec].firma2 := curmm[i].firma2;
MailMerge[rec].funkce := curmm[i].funkce;
MailMerge[rec].ulice := curmm[i].ulice;
MailMerge[rec].mesto := curmm[i].mesto;
MailMerge[rec].stat := curmm[i].stat;
MailMerge[rec].tel := curmm[i].telefon[0];
MailMerge[rec].fax := curmm[i].fax[0];
MailMerge[rec].psc := curmm[i].psc;
MailMerge[rec].ico := curmm[i].ico;
MailMerge[rec].dic := curmm[i].dic;
Commit;
end;
end;
Set_status_text('');
Open_view('*MmVybr',no_redir,0,0,0,id_mm);
repeat Peek_message until id_mm=0;
sab := TsablonyWT[rec2].popis;
if kon then ZapisDoKontaktu(sab); // automat. zßznamnφk kontakt∙
if mm then begin
SpustitWinText602(jmenoSablony);
if template = 0 then Napoved;
end;
end; // Write_lock
Set_status_nums(-1,-1);
end;
end;
procedure OdemknoutMM;
{**************************************}
// odemkne tabulku MailMerge, aby ostatnφ mohli MM pou₧φt
begin
if Write_unlock_table(MailMerge) then begin
Info_box('Nelze','Tabulku pro mailmerge nelze odemknout.'#10'Bu∩ nenφ zamknuta nebo ji pou₧φvß n∞kdo jin².');
end
else Info_box('Provedeno','OK');
end;
procedure Odfaxovat(cislofax : string[20]; jmenofirmy : string[50]);
{**************************************}
var
g : file;
name : string[130];
obsah : string[70];
parametr : string[120];
err : short;
idw : window_id;
begin
name := GetTempDir+'FAX602.TEL';
Rewrite(g,name);
WriteLn(g,'[PHONELIST]');
obsah :=jmenofirmy+'='+cislofax;
WriteLn(g,obsah);
Close(g);
if GetProfString('FAX602 - ovladaΦ pro fax','HomeDirFM602','',parametr,120,'WIN.INI') = 0
then Info_box('Chyba','Nelze nastavit WinFM602! Je nainstalovßn?')
else begin
Set_status_text('SpouÜtφm WinFax602, prosφm Φekejte...');
err := Exec(pathWF,parametr);
if (err = 2) or (err = 3) then begin
if YesNo_box('Chyba p°i spuÜt∞nφ programu WinFax602','Pravd∞podobn∞ je Üpatn∞ nastavenß cesta k programu'#10'Opravit nynφ?') then
begin
Open_view('*PWinText',no_redir,modal_view,0,0,idw);
repeat Peek_message until idw=0;
SmazatFrontu;
end;
end else
if (err < 32) and (err >= 0) then Info_box('Chyba p°i spuÜt∞nφ programu WinFax602',int2str(err));
end;
end;
procedure Vytocit(cislotel : string[20]; jmenofirmy : string[50]);
{**************************************}
var
g : file;
name : string[130];
obsah : string[70];
err : short;
idw : window_id;
begin
name := GetTempDir+'WINM602.TEL';
Rewrite(g,name);
WriteLn(g,'[PHONELIST]');
obsah :=jmenofirmy+'='+cislotel;
WriteLn(g,obsah);
Close(g);
Set_status_text('SpouÜtφm WinMana₧er602, prosφm Φekejte...');
err := Exec(pathWM,'');
if (err = 2) or (err = 3) then begin
if YesNo_box('Chyba p°i spuÜt∞nφ programu WinMana₧er602','Pravd∞podobn∞ je Üpatn∞ nastavenß cesta k programu'#10'Opravit nynφ?') then
begin
Open_view('*PWinText',no_redir,modal_view,0,0,idw);
repeat Peek_message until idw=0;
SmazatFrontu;
end;
end else
if (err < 32) and (err >= 0) then Info_box('Chyba p°i spuÜt∞nφ programu WinMana₧er602',int2str(err));
end;