Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 01.02.2011, 21:24   #11
java_91
Пользователь
 
Регистрация: 11.11.2008
Сообщений: 32
По умолчанию

Есть группа таблиц операций там таблицы: виды, группы , операции
есть группа таблиц оборудование, там таблицы: Виды, типы, группы оборудование
есть группа таблиц инструменты,там только виды и инструменты
мне нужен 1 модуль экспорта,чтобы подходил сразу к этим трем группам связанных таблиц.

Последний раз редактировалось java_91; 02.02.2011 в 08:59.
java_91 вне форума Ответить с цитированием
Старый 02.02.2011, 09:01   #12
java_91
Пользователь
 
Регистрация: 11.11.2008
Сообщений: 32
По умолчанию

Алгоритм.doc вот примерный алгоритм нарисовал
Таблицы.doc

Последний раз редактировалось java_91; 02.02.2011 в 10:31.
java_91 вне форума Ответить с цитированием
Старый 02.02.2011, 12:00   #13
java_91
Пользователь
 
Регистрация: 11.11.2008
Сообщений: 32
По умолчанию

Как тут избежать зацикливание? Оно происходит при из-за вызова из Cell3 Cell2, при это счетчик цикла обнуляется, а мне надо что бы он продолжал с того места на котором остановился
Код:
unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, Grids;

type
  TForm1 = class(TForm)
    Button1: TButton;
    StringGrid1: TStringGrid;
    procedure Cell1(n : integer);
    procedure Cell2(n : integer);
    procedure Cell3(n : integer);
    procedure Button1Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;
  k: integer;
  index : integer;
implementation

{$R *.dfm}





Procedure TForm1.Cell1(n : integer);
var i : integer;
Begin
ShowMessage('Вид'+IntToStr(k));
If n=3 Then
  For i := 1 to 3 do
    Begin
    k:=k+1;
    StringGrid1.Cells[1,k]:=IntToStr(k);
    Cell2(n-1);
    End
else
  Cell2(n);
End;


Procedure TForm1.Cell2(n : integer);
var i : integer;
Begin
   ShowMessage('Группа'+IntToStr(k));
   ShowMessage('Группа n'+IntToStr(N));
   If n=2 Then
      for i:=1 to 3 do
        Begin
        ShowMessage('Индекс группы ='+IntToStr(i));
        k:=k+1;
        StringGrid1.Cells[2,k]:=IntToStr(k);
        Cell3(n-1);
        End
  else
   Cell3(n);
cell1(n+1);
End;



Procedure TForm1.Cell3(n : integer);
var i : integer;
Begin
  ShowMessage('Наименование'+IntToStr(k));
  ShowMessage('наименование n'+IntToStr(N));
   If n=1 Then
      For i := 1 to 3 do
        Begin
        k:=k+1;
        StringGrid1.Cells[3,k]:=IntToStr(k);
        End;
  cell2(n+1);
End;

procedure TForm1.Button1Click(Sender: TObject);
begin
k := 0;
Cell1(3);
end;

end.

Последний раз редактировалось java_91; 02.02.2011 в 12:24.
java_91 вне форума Ответить с цитированием
Старый 02.02.2011, 13:08   #14
java_91
Пользователь
 
Регистрация: 11.11.2008
Сообщений: 32
Радость

Всем спасибо. Я нашел альтернативный метод решения данного алгоритма.
Если кому и интересно:
Код:
unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, Grids;

type
  TForm1 = class(TForm)
    Button1: TButton;
    StringGrid1: TStringGrid;
    procedure Cell1(n : integer);
    procedure Cell2(n : integer);
    procedure Cell3(n : integer);
    procedure Button1Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;
  k: integer;
  index : integer;
implementation

{$R *.dfm}





Procedure TForm1.Cell1(n : integer);
var i : integer;
Begin

If n=3 Then
  For i := 1 to 3 do
    Begin
    ShowMessage('Индекс Вид ='+IntToStr(i));
    k:=k+1;
    StringGrid1.Cells[0,k]:=IntToStr(k);
    Cell2(n-1);
    End
else
  Cell2(n);
exit;
End;


Procedure TForm1.Cell2(n : integer);
var i : integer;
Begin
    i:=1;
   If n=2 Then
      for i:=1 to 3 do
        Begin
        ShowMessage('Индекс группы ='+IntToStr(i));
        k:=k+1;
        StringGrid1.Cells[1,k]:=IntToStr(k);
        Cell3(n-1);
        End
  else
   Cell3(n);
//cell1(n+1);
Exit;
End;



Procedure TForm1.Cell3(n : integer);
var i : integer;
Begin
   If n=1 Then
      For i := 1 to 3 do
        Begin
        ShowMessage('Индекс Наимен ='+IntToStr(i));
        k:=k+1;
        StringGrid1.Cells[2,k]:=IntToStr(k);
        End;
 //cell2(n+1);
 Exit;
End;

procedure TForm1.Button1Click(Sender: TObject);
begin
k := 0;
Cell1(2);
end;

end.
java_91 вне форума Ответить с цитированием
Старый 02.02.2011, 13:38   #15
veniside
Старожил
 
Регистрация: 03.01.2011
Сообщений: 2,508
По умолчанию

Код:
    procedure Cell1(n : integer);
    procedure Cell2(n : integer);
    procedure Cell3(n : integer);
Охрененная динамика. А если понадобится 4-тый цикл?
(Сорри, всю тему не читал, может это именно то, что надо, тогда пусть будет так.)

Код:
 Exit;
End;
хитрый трюк.
"Когда приходит положенное время, человек перестаёт играть в пинбол. Только и всего."
veniside вне форума Ответить с цитированием
Старый 02.02.2011, 15:46   #16
java_91
Пользователь
 
Регистрация: 11.11.2008
Сообщений: 32
По умолчанию

Цитата:
хитрый трюк.
ты прав =)
а на счет динамики - предложи что-нибудь, буду рад рассмотреть все предложенные варианты
java_91 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Вложение цифр после 20 и до 100 в кружок DUC Microsoft Office Word 13 05.11.2016 22:51
Правильное вложение средств для раскрутки. Alex Cones Свободное общение 24 13.11.2010 11:47
как удалить созданную тему или хотя бы вложение свое? dasmeer Помощь студентам 1 14.03.2010 00:19
Покупка автомобиля - как вложение денег Alar Свободное общение 28 07.04.2008 13:37