Не могу решить задачу - клинит....

Модераторы: Duncon, Naeel Maqsudov, Игорь Акопян, Хыиуду

Ответить
Dr.Grizzly
Сообщения: 50
Зарегистрирован: 09 мар 2005, 13:57
Контактная информация:

Проблема такая. Есть районы Курганской области, есть хозяйства у районов. Базу сделал. Теперь вывожу на печать. Но хочу не всю базу а именно выбранные районы и выбранные их хозяйства. Сделал чтоб можно было выбранные районы печатать. Сделал просто. Кинул два Checklistbox'a в первом раоны, во втором хозяйтва, при чем сделал так:
===Альменевкий===
СПК "Исток"
ООО "Мир"
===Варгашинский===
ТОО "Луч"
....
это во втором checklistbox'e и естествена у каждого квадратик где можно ткнуть галку. Как вы можете предложить реализовать это? Я сделал чтоб во второй чеклистбокс кидались только те районы с хозяйтвами которые выбраны в первом чеклистбоксе.Проблема встала в перепрыгивании с одного района по завершению вывода выбранных хозяйств на другой район и печать следующих выбранных хозяйтств.
Dr.Grizzly
Сообщения: 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;
Этот код выведет один район и какие-то выбранные хозяйтва... А вот что добавить чтоб вывела следующий район с его выбранными хозяйствами? Фишка еще в тоом что названия хозяйств у районов могут быть одинаковыми
AndreykA
Сообщения: 48
Зарегистрирован: 15 ноя 2004, 12:55
Откуда: Москва
Контактная информация:

Фишка еще в тоом что названия хозяйств у районов могут быть одинаковыми
для того и существуют ключевые поля и привязки к вышестоящим таблицам, чтобы различить какое хозяйство к какому району относиться.
А алгоритм печати я представляю себе приблизительно следующим образом:

Код: Выделить всё

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;
Ответить