Delphi programozás - Szoftverfejlesztés fórum

üzenetek

hozzászólások


lao ce
(aktív tag)

hat arrol van elkepzelesem hogy en ezt hogyan csinalnam.
kerdes amugy hogyha cmb1 = Kiss es cmb2 = Bela
akkor az osszes kiss vagy bela kell megjelenjen vagy az osszes kis es bela?

amugy a checkboxokat hanyagolnam, az elso item minden comboban lehetne (all) vagy (minden) valasztas. kevesebb objectum = egyszerubb interfesz.

aztan kb... van egy sql valtozo, mondjuk aSQL
a combokat elnevezheted ugy mint a fieldek nevei, de egy cmb-vel az elejen, tehat cmbFirstName, cmbKeresztnev

az eleje az aSQL-nek valami ilyesmi lesz (megtartanam space-eket a ' jelek utan es elott!)

aSQL := ' select f1, f2, f3, f4 from table where ';

itt a datum
aSQL := aSQL + ' ( DateField >= #' + MyDateObj1.Value + '# ';
aSQL := aSQL + ' and DateField <= #' + MyDateObj2.Value + '# ) ';

aztan ugyi... vegig egy for ciklussal a kombokon

for i := 0 to ComponentCount-1 do begin
___currCompName := copy (Components.Name, 1, 3);

___currFieldName := copy(Components
.Name,4, Length(Components.Name)-3 );

aztan mikor komborol van szo es raadasul nem a (minden) van kivalasztva:

___if (currCompName = 'cmb') and
______((Components
as TCombobox).ItemIndex > 0) then

akkor hozzaadjuk az aSQL valtozohoz azt a feltetelt hogy ' and fieldname = ertek '.
meg az is van hogy itt 'and' vagy 'or' attol fuggoen hogy kiss bela hogy kell megjelenjen az elso kerdesben.

persze, ez nem ENNYIRE egyszeru mert lehet szam is meg text is meg date is a tipusa a dolognak. ez most text akar lenni de csak nem biztos hogy szintaktikailag helyesen irom.

aSQL := aSQL + ' and ' + currFieldName + ' = ''' +
Components as TCombobox)..Items.Strings [ (Components as TCombobox).ItemIndex] + ''' '

aztan egy par end a vegere es lehet futtatni a query-t.


[Szerkesztve]

üzenetek