Проблема такая. Есть районы Курганской области, есть хозяйства у районов. Базу сделал. Теперь вывожу на печать. Но хочу не всю базу а именно выбранные районы и выбранные их хозяйства. Сделал чтоб можно было выбранные районы печатать. Сделал просто. Кинул два Checklistbox'a в первом раоны, во втором хозяйтва, при чем сделал так:
===Альменевкий===
СПК "Исток"
ООО "Мир"
===Варгашинский===
ТОО "Луч"
....
это во втором checklistbox'e и естествена у каждого квадратик где можно ткнуть галку. Как вы можете предложить реализовать это? Я сделал чтоб во второй чеклистбокс кидались только те районы с хозяйтвами которые выбраны в первом чеклистбоксе.Проблема встала в перепрыгивании с одного района по завершению вывода выбранных хозяйств на другой район и печать следующих выбранных хозяйтств.
Не могу решить задачу - клинит....
Модераторы: Duncon, Naeel Maqsudov, Игорь Акопян, Хыиуду
-
- Сообщения: 50
- Зарегистрирован: 09 мар 2005, 13:57
- Контактная информация:
-
- Сообщения: 50
- Зарегистрирован: 09 мар 2005, 13:57
- Контактная информация:
Код: Выделить всё
i:=0;
ls:=1;
repeat
If Checklistbox1.Checked[i]=true then
begin
repeat
If Checklistbox2.Checked[ls]=true then
begin
Form1.Table1.Filtered:=False;
Form1.Table1.Filter:='Key='''+CheckListBox1.Items.Strings[i]+''' AND regkey='''+CheckListBox2.Items.Strings[ls]+'''';
Form1.Table1.Filtered:=true;
repeat
...вывод на печать...
Form1.Table1.Next;
until form1.Table1.Eof;
end;
ls:=ls+1;
until ls=Checklistbox2.Items.Count;
end;
i:=i+1;
until i=Checklistbox1.Items.Count;
для того и существуют ключевые поля и привязки к вышестоящим таблицам, чтобы различить какое хозяйство к какому району относиться.Фишка еще в тоом что названия хозяйств у районов могут быть одинаковыми
А алгоритм печати я представляю себе приблизительно следующим образом:
Код: Выделить всё
for i := 0 to (Checklistbox1.Items.Count - 1) do begin
if Checklistbox1.Checked[i] then begin// проверять на True не обязательно
сначала напечатаем наименование района
затем необходимо вывести во второй чеклистбокс список хозяйств данного района
for j := 0 to (Checklistbox2.Items.Count - 1) do begin
if Checklistbox2.Checked[i] then begin
печатаем хозяйство
end;
end;
end;
end;