...
- tietokanta - kanta josta asetukset haetaan
- Myyja - myyjän numero
- Näytä dialog true/false näytetäänkö s-postin lähetysdialogia
- Ostikko
- viestin runko
- Liitetiedostot, puolipisteerotettu lista
- Lähettäjä, jos tyhjä käytetään winskj:n asetuksista löytyvää
- viestin Body html formaatissa.
lahetasahkoposti(dbname,1,false,osoite,'Myyntidata','Liitteenä automaattisesti generoitu myyntidata', fn,'yoajo@skj.fi',);
Huom. Huomaa että monet smtp palvelimet suuttuvat jos samasta paikasta tulee postia liian tiheään, pidä 1 sek väli eri postien välillä jos lähetät useampia.
h1. Asiakasmuutosten seuranta
Jos halutaan seura muutoslogissa skjscriptin tekemiä asiakasmuutoksia (esim replikointi skjinterfacella tai kkalleclientilla) toimitaan alle olevan esimerkin mukaan
_
Code Block |
---|
var
a,a2,mr;
dbname;
s: string;
i: integer;
myymala:integer;
begin
dbname := 'SKJ';
// alustetaan asiakasmuutostietue
myymala := 1; // minkä myymälän nimiin muutokset kirjataan
LuoAsiakasMuutostietue(dbname,myymala,mr);
a := ttbtable.Create(nil);
a.databasename := dbname;
a.tablename := 'asiakas';
a.open;
a2 := ttbtable.Create(nil);
a2.databasename := dbname;
a2.tablename := 'asiakas2';
a2.open;
while not a.eof do
begin
if (WordCount(trim(a.FieldByName('nimi').AsString),' ')>0) and ( trim(a.FieldByName('nimi2').AsString) = '') then
begin
// alustetaan muutosten seuanta tälle asiakkaalle
AloitaAsiakasmuutos(a,a2,mr);
// tässä muunnetaan nimi kenttä muodosta "Möttönen Marko Uolevi" -> Nimi: Möttönen Nimi2: Marko Uolevi
a.edit;
s := a.FieldByName('nimi').AsString;
a.FieldByName('nimi').AsString := ExtractWord(1,s,' ');
a.FieldByName('nimi2').AsString := '';
for i:=2 to wordCount(s,' ') do
a.FieldByName('nimi2').AsString := a.FieldByName('nimi2').AsString+' '+extractWord(i,s,' ');
a.FieldByName('nimi2').AsString := trim(a.FieldByName('nimi2').AsString)
logEntry('Muutettu '+s+':->'+a.FieldByName('nimi').AsString+', '+a.FieldByName('nimi2').AsString);
a.post;
// tallennetaan mahdolliset muutokset
LopetaAsiakasmuutos(a,a2,mr,false);
end;
a.next;
end;
a.close;
a2.close;
end; |
...
...
...
Tiedostot
hakemisto läpikäyntiin ja tiedostojen etsintään
FindFirst, FindNext ja FindClose
...
- *function FindFirst(const Path: string; Attr: Integer; var F: TSearchRec): Integer;
- *function FindNext(var F: TSearchRec): Integer;
- *procedure FindClose(var F: TSearchRec);
- 'Attr''' kertoo minkätyyppisiä tiedostoja haetaan:
- faReadOnly: Read-only files
- faHidden: Hidden files
- faSysFile: System files
- faVolumeID: Volume ID files
- faDirectory: Directory files
- faArchive: Archive files
- faAnyFile: Any file
Type
- TSearchRec = record
- Time: Integer;
- Size: Integer;
- Attr: Integer;
- Name: TFileName;
- ExcludeAttr: Integer;
- FindHandle: THandle;
- FindData: TWin32FindData;
...
Huom! VERHINTA ei ole käytössä SKJTuoteImport.xls :ssä.Luokka__Asennus ja määrittely
Luokka__Asennus ja määrittely