"the dating game"

, perpetual nybegynder - loggen.1, denne artikel først dukkede op på http: //www.undu. kom,,, hvis du har parameterized forespørgsler, du sandsynligvis bliver dato intervaller for et område eller en anden i processen.en typisk skal kunne være et salg samlede rapport til en bestemt tid.,,, den simple løsning er at oprette et par datepickers og anvende params funktion af forespørgslen til at tildele værdi.personligt, vil jeg gerne opføre forespørgslen dynamisk, hver gang.det er en anelse langsommere, men jeg kan se hele spørgsmål i min programmering kode, og det er ofte en velsignelse.,,, og jeg gerne tilbyde min brugere en hurtig metode til at få adgang til disse uklare tidsfrister, som i denne måned sidste kvartal eller et år - til - dato.hvad følger, er, hvordan jeg bygger på en dato, ranger i min ansøgning.,,, er det første skridt til at erhverve esb datoer freeware bibliotek.glen ferm og bidragydere har skabt en stor ressource på webstedet: www.esbconsult. kom. au,,, mens du er på esb sted, tag freeware biblioteker til matematik og rutiner.hver har kode omfattede og hans førsteklasses programmering.og se på statistikken program, der er det vigtigste element i stedet.hvis du gør noget fancy matematik i deres program, så er dette redskab til dig.,,, jeg bruger den dato, ranger form til også at fungere som en bekræftelse af, at brugeren ønsker at løbe den betænkning.det har to datepickers (hvis du har fulgt andre tråde ud på nettet, vil du vide, om den seneste frygt for de indfødte delphi hakkere.jeg bruger orfeus' s version i stedet med sin evne til at bare type i korte engelsk udtryk til datoer.orfeus er til rådighed fra turbopower på www.turbopower. kom).sæt de to hakkere til dags dato (eller de fælles dato afstand, hvis der er en overvældende folkelig krav) i form at skabe proc.,,, at fordelene ved at anvende orfeus kontrol er, at det er en let opgave at ændre datoerne i firecifrede år tråde.det hedder datestring og kræver en maske, som du vil se.,,, inbetweeen de to datepickers, ved navn dfrom og dto henholdsvis er en knap med en enkelt at beskrive.det tjener som et mærke og en kanal til en pop - up - menuen for at give mulighed for let at vælge en fastsat dato rækkevidde.proceduren for denne knap ser sådan ud:,,, procedure tfrmreport. btntoclick (afsender: tobject), begynder, pmdateranger. pop - up - (frmreport.left + 120, frmreport. top + 84);,,,,,, at indkaldelsen af pop - up -, er du nødt til at fortælle det, hvor pop op.de kan eksperimentere og være absolut koordinater, eller du kan bruge en formel, der kan få ret involveret.en ting er ikke at glemme, når der anvendes følgende formel, du er nødt til at skabe en stor nok til at rumme legende indpresningsdybde og menu højde:,,, (frmreport. venstre + btnto.left, frmreport. top + btnto. top + btnto. højde + 25),,, du er også den pop - up - menu. tilhører den knap til pmdateranger.på den måde, hvis brugeren klik, det dukker op i den forbudte sted.hvis brugeren ikke klik på den knap, menuen dukker op på den standard, et antal pixel lavere og til højre.det er kun en smule foruroligende.,,, pop - up - menu er befolket af menuen valg.den gruppe, jeg bruger måske eller måske ikke svarer til dine.jeg er sikker på, at du vil have en anden gruppe begreb end mit.men hemmeligheden er, at prisen for hver menu mulighed, således at det kan behandles af de centrale kontaktperson.jeg bruger den 11. - 13. i dagevis, 21 - 23 i ugevis, 31 - 33 i måneder, 41 - 43 i fjerdinger, 51 - 54 for til dato - gruppen, 61 - 62 for branchen dage 71 - 72 i årevis og 80 for den allestedsnærværende alle datoer.bemærk, at du måske havde lyst til at sætte dfrom til en tidligere dato, 1980, hvis du har behov for endnu mere historisk dato (.,,, er det vigtigt på dette tidspunkt at fortælle dig i en fælde jeg faldt i de første tre gange jeg prøvede at programmere denne fra hukommelsen.- jeg er en nybegynder, selv).der er en følelse af, at du skulle bruge den onpopup eller onchange tilfælde af pop - up - menu til menuen - håndtering.- nej!skabe en særskilt procedure for anvendelse af onclick metode for hvert menupunkt, mens det viser i menuen designer.så kan du flytte klik på alle punkter, og det omgående menu onclick til din kontaktperson.omfatter ikke forælder til et barn, menuer, du har.Made that mistake to.,,, The code to update the date picker for a set range runs of the pmMenuHandler proc:,,, procedure TFrmReport.pmMenuHandler(Sender: TObject);,, var,, t, s : TDateTime;,, begin,, t := date;,, case (sender as TMenuItem).tag of,, 11 : begin //yesterday,, eDateFrom.date := t - 1;,, eDateTo.date := t - 1;,, end;,, 12 : begin //today,, eDateFrom.date := t;,, eDateTo.date := t;,, end;,, 13 : begin //tomorrow,, eDateFrom.date := t + 1;,, eDateTo.date := t + 1;,, end;,, 21 : begin //last week,, s := t - 7;,, while isMonday(s) = false do,, s := s - 1;,, eDateFrom.date := s;,, edateto.date: = s + 6,,,,,, 22: begynder //i denne uge, s = t, mens ismonday (r) = falske,, s = s - 1;,, edatefrom.date: = s;,, edateto.date: = s + 6,,,;,, 23: begynder //næste uge, s = t + 7, mens ismonday (r) = falske,, s = s - 1;,, edatefrom.date: = s;,, edateto.date: = s + 6,,,,,, 31: begynde //////////////sidste måned, s = getfirstdayofmonth (t) - 1; //bliver sidste dag i sidste mo.,, edatefrom.date: = getfirstdayofmonth (s), edateto.date: = s,,,,,, 32: begynder //i denne måned, edatefrom.date: = getfirstdayofmonth (t);,, edateto. dato: = getlastdayofmonth (t);,,,,, 33: begynder //i næste måned, s = getlastdayofmonth (t) + 1 //får første dag i næste.,, edatefrom.date: = s;,, edateto.date: = getlastdayofmonth (s).,,,,, 41: begynder //sidste kvartal, s = getfirstdayofquarter (t) - 1; //bliver sidste dag i sidste q, edatefrom.date: = getfirstdayofquarter (s), edateto.date: = s,,,,,, 42: begynder //det kvartal, edatefrom.date: = getfirstdayofquarter (t);,, edateto.date: = getlastdayofquarter (t);,,,,, 43: begynder //næste kvartal, s = getlastdayofquarter (t) + 1 //får første dag i næste q, edatefrom.date: = s;,, edateto.date: = getlastdayofquarter (s),,,,,, 51: begynder //måned til dato, edatefrom.date: = encodedate (som thismonth, 1), edateto.date: = t,,,,,, 52: begynder //år dato, edatefrom.date: = encodedate (som 1,1);,, edateto.date: = t,,,,,, 53: begynder //sidste 365 dage, edatefrom.date: = t - 365;,, edateto.date: = t,,,,,, 54: begynder //i 13 uger,, edatefrom.date: = t - 91;,, edateto.date: = t,,,,,, 61: begynder //forudgående biz dag, s = t - 1; //i går, mens isweekend (r), s = s - 1,,,edatefrom.date: = s;,, edateto.date: = s,,,,,, 62: begynder //næste biz dag, s = t + 1 //i morgen, og isweekend (r), s = s + 1, edatefrom.date: = s,,, edateto.date: = s,,,,,, 71: begynder //sidste år, s = getfirstdayofyear (date2year (t) - 1; //bliver sidste dag i sidste år, edatefrom.date: = getfirstdayofyear (date2year (s), edateto.date: = s,,,,,, 72: begynder //år, edatefrom.date: = getfirstdayofyear (date2year (t), edateto.date: = getlastdayofyear (date2year (t);,,,,, 73: begynder //næste år, s = getlastdayofyear (date2year (t) + 1.; //får første dag i næste.,, edatefrom.date: = s;,, edateto.date: = getlastdayofyear (date2year (s),,,,, 80: begynder //alle datoer, edatefrom.date: = strtodate (1 /1 /1980 '), edateto.date: = strtodate (1 /1 /2222),,,,,,,,,,,,,, en kodestykke at drage fordel af, hvad vi gør med datoen for rækkevidde er blevet udvalgt.Here's the code for initiating a query using the date range selected:,,, procedure TFrmReport.BtnRepPrintClick(Sender: TObject);,, var,, dStart, dEnd : string;,, begin,, dStart := ' (DateProd >= ''' + dFrom.DateString('mm/dd/yyyy') + ''')';,, dEnd := ' AND (DateProd <= ''' + dTo.DateString('mm/dd/yyyy') + ''')';,, with qValue do begin,, active := false;,, sql.beginUpdate;,, sql.clear;,, sql.add('SELECT DISTINCT ');,, sql.add(' PartNum,');,, sql.add(' LotNum,');,, sql.add(' DateProd,');,, sql.add(' Production,');,, sql.add(' ProductionValue');,, sql.add('FROM ');,, sql.add(' "SALES.db"');,, sql.add('WHERE ');,, sql.add( DStart);,, sql.add( DEnd);,, sql.add ('order af ');,, sql. tilføje (' partnum,.,, sql. tilføje ('lotnum,.,, sql. tilføje (' dateprod,.,, sql. tilføje (produktion);,, sql. tilføje ('productionvalue ");,, sql. endupdate;,, aktiv: = sandt,,,,,, qrvalue. tryk,,,,,,,,,, der er ingen spørgsmål, jeg kunne have paramaterized denne forespørgsel.men det er let at bygge - og til at ændre.f.eks. har et nummer edit kasse om betænkningen form for at give mulighed for frivillig begrænsning af betænkningen.en let at tilføje efter "tilføje medbring" ville være:,,, hvis editlotnum.text < > ", så sql.add (" og lotnum = "+ editlotnum.text +");,,, hvis du har masser af parametre til at fylde denne vej, så gå til et af de dynamiske sql skabe værker.de ser ud til at dukke op overalt.jeg bruger simplequery fra lelsoft (http: //lelsoft. hypermart. netto).men hvis dato på alt, hvad du skal, skal du være med til at skrive din egen.,,, gary mugford, tanke, mekaniker, bramalea i canada, mugford @ aztekisk net. kom.



Previous:
Next Page: