Kaikki oikeudet tietenkin pidätetään. Viimeinen versio ohjelmasta löytyy seuraavasta linkistä: moijari.com:5002
Terttu-valikossa on uutena valintana yhteenveto, jolla saa koko terttu kannan kuvan. Siitä on helpompi hahmottaa uutta fetch versiota (lukee lokeja). edit: Ja toisaalta sen avulla on helpompi hahmottaa save toimintoa, joka ilmeisesti tekee kaikki tapahtuman tarvitsemat muutokset kantaan (eli nuo tietovirrat, summattujen tietojen päivitykset jne) (vrt. transaktiot, commit). endedit. Esimerkki kannassa se näyttää tälläisen raportin:
Lisäksi poistin submit nappulan login näytöstä, se on nyt muotoa:
html_printf(“<input type=\”submit\” value=\”Submit\” style=\”visibility:hidden;\”>”);
Lisäksi muutos moodi näyttää vain yhden tyhjän rivin entisen 10 sijasta.
Tämä on varmaan lyhin posti, jonka olen kirjoittanut.
'memberid', 'memberlength', 'membertype' 'userid', 'username', 'password' 'sovellus', 'sovelluksen nimi', 'link' 'sovellus', 'chapter', 'memberid' 'asiakasnumero', 'asiakkaan nimi', 'asiakkaan osoite', 'asiakkaan postinumero', 'asiakkaan postitmp' 'toimittajanumero', 'toimittajan nimi', 'toimittajan osoite', 'toimittajan postinumero', 'toimittajan postitmp' 'tuotenumero', 'tuotteen nimi', 'tuotteen hinta' 'sovellus', 'fromsovellus', 'tosovellus' 'tilausnumero', 'tilauksen asiakasnumero', 'tilauksen asiakkaan nimi', 'tilauspäivä', 'tilauksen summa' 'tilausnumero', 'tilausrivin numero', 'tilauksen tuotenumero', 'tilauksen tuotteen nimi', 'tilauksen tuotteen hinta', 'tilattu määrä', 'rivin summa' 'tilausnumero', 'asiakasnumero', 'tilauspäivä', 'tilauksen summa' 'toimitusnumero', 'toimituksen asiakasnumero', 'toimituksen tilauspäivä', 'toimituspäivä', 'toimituksen summa' 'toimitusnumero', 'toimitusrivin numero', 'toimituksen tuotenumero', 'toimituksen tuotteen nimi', 'toimituksen tuotteen hinta', 'tilattu määrä', 'toimitettu määrä', 'rivin summa' 'laskunumero', 'asiakasnumero', 'laskun päivä', 'tilauspäivä', 'toimituspäivä', 'eräpäivä', 'laskun summa' 'laskunumero', 'laskurivin numero', 'tuotenumero', 'tuotteen nimi', 'tuotteen hinta', 'tilattu määrä', 'toimitettu määrä', 'laskutettu määrä', 'rivin summa' 'tapahtumanumero', 'kirjauspäivä', 'kirjauskuukausi', 'kirjausvuosi', 'laskunumero', 'asiakasnumero', 'tilausnumero', 'toimitusnumero', 'tapahtuman summa' 'tapahtumanumero', 'tapahtumarivin numero', 'tilinumero', 'tapahtumarivin summa' 'sovellus', 'chapter', 'set' 'set', 'memberid' 'tilinumero', 'tilin nimi' 'sovellus', 'sovelluksen nimi', 'link', '' 'asiakasnumero', 'vuosi', 'myynti' 'asiakasnumero', 'myynti' 'asiakasnumero', 'tuotenumero', 'myynti' 'asiakasnumero', 'vuosi', 'tuotenumero', 'myynti'
; Tämä suoritetaan aina save nappulalla, näin saadaan kannasta ; ylläpidettyä ajankohtainen kuva. Huomasin muuten taas pikku optimoinnin, ; etsipä se.. skk_save_overview(struct set *set) /* JariK 20151025 */ { int comp,found,add,counts,counto; char *p,name[64],value[64],name2[64],value2[64]; char *bones,temps[64]; struct set *seto; p=set->data;
bones=NULL; while(*p!='\0') { set_get_next_element(name,&comp,value,&p); sprintf(temps,"'%s'",name); set_add_element_noquotes(&bones,temps); } ; Selataan edellinen overview läpi tietue tietueelta ; Jos kenttään add jää tosi, tietue on uusi. add=1; seto=setoverview; while(seto!=NULL) { ; Lasketaan overview rivin kenttien lukumäärä counto=0; p=seto->data; while(*p!='\0') { set_get_next_element(name,&comp,value,&p); counto++; } ; Lasketaan uuden tietueen kenttien lukumäärä counts=0; p=set->data; while(*p!='\0') { set_get_next_element(name,&comp,value,&p); counts++; } ; Jos kenttiä yhtä monta, verrataan kenttä kentält
if(counto==counts) { ; Jos found kenttään jää yksi, löysimme edellisestä overviewistä ; tämän tietueen. found=1; p=seto->data; while(*p!='\0') { set_get_next_element(name,&comp,value,&p); if(set_get_element(name,&comp,value2,bones)==0) { found=0; } } ; Jos overview:stä löytyi jo samanmuotoinen tietue, ; ei tarvitse lisätä tätä tietuetta sinne. if(found==1) { add=0; break; } } ; Tarkistetaan seuraava overview tietuemalli. seto=seto->next; } ; Jos uusi, lisätään ; if(add==1) { set_add_set_end(&setoverview,bones); } }