![]() |
|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
![]() |
|
Опции темы | Поиск в этой теме | Опции просмотра |
#1
|
||||
|
||||
![]() Имеется таблица stringgrid
![]() Итак, нужна помощь. Требуется сделать фильтр по возрасту(до *** лет, старше *** лет, от *** до *** лет). ![]() Также нужно сделать филтр по полу через RadioGroup ![]() И сделать общий фильтр, т.е. допустим - мужской пол, с отличным знанием компьютера и знанием английского языка ![]() Было бы неплохо побыстрее. Заранее благодарен. |
#2
|
||||
|
||||
![]() База данных спасет гиганта мысли.
Некоторые программисты настолько ленивы, что сразу пишут рабочий код. Если вас наказали ни за что - радуйтесь: вы ни в чем не виноваты. |
#3
|
||||
|
||||
![]() Цитата:
![]() |
#4
|
||||
|
||||
![]() загнать данные в ClientDataSet и отображать их в DBGrid, используя свойство Filter (у ClientDataSet).
Пишу программы за еду. __________________ |
#5
|
||||
|
||||
![]() Цитата:
З.Ы. Почти все сделал, осталось только фильтр по возрасту сделать. Помогите пожалуйста. |
#6
|
||||
|
||||
![]() Чтоб упростить последующие вычисления хорошо бы добавить к таблице колонку "Возраст" и заполнять её данными из поля "Дата рождения" с помощью вот этого:
Код:
function CalculateAge(Birthday, CurrentDate: TDate): Integer; var Month, Day, Year, CurrentYear, CurrentMonth, CurrentDay: Word; begin DecodeDate(Birthday, Year, Month, Day); DecodeDate(CurrentDate, CurrentYear, CurrentMonth, CurrentDay); if (Year = CurrentYear) and (Month = CurrentMonth) and (Day = CurrentDay) then Result:= 0 else begin Result:= CurrentYear - Year; if (Month > CurrentMonth) then Dec(Result) else if (Month = CurrentMonth) and (Day > CurrentDay) then Dec(Result); end; // ©Drkb::04233 end; Код:
Label1.Caption:= Format('Петров М.А. 12.03.1978 (%d)', [CalculateAge(StrToDate('12.03.1978'), Date)]); Я не понял Вашего вопроса, но всё же Вам на него отвечу! |
#7
|
||||
|
||||
![]() Цитата:
|
#8
|
||||
|
||||
![]() Цитата:
Я не понял Вашего вопроса, но всё же Вам на него отвечу! |
#9
|
||||
|
||||
![]() Цитата:
|
#10
|
||||
|
||||
![]() Цитата:
|
#11
|
||||
|
||||
![]() Цитата:
|
#12
|
||||
|
||||
![]() Цитата:
Заранее благодарен. |
#13
|
||||
|
||||
![]() Цитата:
Я не понял Вашего вопроса, но всё же Вам на него отвечу! |
#14
|
||||
|
||||
![]() Цитата:
Ниже код для сохранения и открытия StringGrid с введенными данными. Открыть : Код:
procedure LoadTab(Tab: TStringGrid; const FileName: TFileName); var f:TextFile; iTmp,i,k:Integer; strTemp:String; begin AssignFile(f, FileName); Reset(f); with Tab do begin Readln(f, iTmp); ColCount := iTmp; Readln(f, iTmp); RowCount := iTmp; for i := 0 to ColCount - 1 do for k := 0 to RowCount - 1 do begin Readln(f, strTemp); Cells[i, k] := strTemp; end; end; CloseFile(f); end; procedure TForm1.N9Click(Sender: TObject); begin if OpenDialog1.Execute then LoadTab(Tab, OpenDialog1.FileName); Tab.Visible:=True; N3.Enabled:=True; N8.Enabled:=True; N9.Enabled:=True; end; Сохранить как : Код:
procedure SaveTab(Tab: TStringGrid; const FileName: TFileName); var f:TextFile; i,k:Integer; begin AssignFile(f, FileName); Rewrite(f); with Tab do begin Writeln(f, ColCount); Writeln(f, RowCount); for i := 0 to ColCount - 1 do for k := 0 to RowCount - 1 do Writeln(F, Cells[i, k]); end; CloseFile(F); end; procedure TForm1.N3Click(Sender: TObject); begin if SaveDialog1.Execute then SaveTab(Tab, SaveDialog1.FileName); N2.Enabled:=True; end; Tab это имя моей StringGrid, |
#15
|
||||
|
||||
![]() Тему close, всё сделал.
|