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

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

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль

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

Ответ
 
Опции темы Поиск в этой теме
Старый 05.06.2011, 15:25   #1
Natashka21reg
Новичок
Джуниор
 
Регистрация: 05.06.2011
Сообщений: 2
По умолчанию Вывод информации из справочника 1, неупомянутые в справочнике 2

Имеется 2 справочника spr1 и spr2. В каждом из них есть перечень данных. В первом:
код основных средств, обьект основных средств, номер тех паспорта, год и стоимость. Во втором: код проверяющего, ФИО , причина списания, дата списания, код списываемого ОС, номер техпаспорта. Неодходимо создать 3 документ, в котором бы выводились все данные из справочника1, кроме тех,что были упомянуты в справочнике 2 в таблицу StringGrid.
САМА ПРОГРАММА:
type
spr1=record // перечень основных средств
cod1:string[10];
oos1:string[30];
np1:string[10];
god1:integer;
cen1:integer;
end;

spr2=record
cod2:string[10];
Fio2:string[20];
ps2:string[30];
dat2:string[10];
cod22:string[10];
np2:string[20];
end;

spr3=record // Ведомость наличия ОС
cod3:string[10];
oos3:string[30];
np3:string[10];
dat3:string[10];

end;

var
Form2: TForm2;
z1:spr1;
F1:file of spr1;
z2:spr2;
F2:file of spr2;
z3:spr3;
F3:file of spr3;
i,j:integer;
implementation
procedure TForm2.N5Click(Sender: TObject); //запись основных средств
begin
assignfile(F1,'E:\OS');
{if fileexists('OS')=true then append(F1) else } rewrite(F1);
end;

procedure TForm2.Button1Click(Sender: TObject); //добавить основные средства
begin
with z1 do begin
cod1:=edit1.text;
oos1:=edit2.text;
np1:=edit3.text;
god1:=strtoint(edit10.Text);
cen1:=strtoint(edit6.Text);
write(f1,z1);
end;
end;

procedure TForm2.Button2Click(Sender: TObject); //закрытие основных средств
begin
closefile(f1);
end;

procedure TForm2.N9Click(Sender: TObject); //просмотр основных средств
begin
assignfile(F1,'E:\OS');
reset(f1);
label9.Caption:='Перечень основных средств';
with stringgrid1 do begin
for i:=0 to 10 do
for j:=0 to 10 do cells[i,j]:=' ';
colcount:=5;
fixedcols:=0;
fixedrows:=1;
cells[0,0]:='Код основных средств';
cells[1,0]:='Объект основных средств';
cells[2,0]:='Номер тех паспорта';
cells[3,0]:='Год';
cells[4,0]:='Стоимость';
i:=1;

while not eof(F1) do begin
with z1 do begin
read(f1,z1);
cells[0,i]:=cod1;
cells[1,i]:=oos1;
cells[2,i]:=np1;
cells[3,i]:=inttostr(god1);
cells[4,i]:=inttostr(cen1);
i:=i+1;
end;
end;
end;
end;

procedure TForm2.Button3Click(Sender: TObject); //добавление акт
begin
with z2 do begin
cod2:=edit4.text;
fio2:= edit5.Text;
ps2:= edit7.Text;
dat2:=edit8.Text;
cod22:=edit9.text;
np2:=edit11.Text;
write(f2,z2);
end;
end;

procedure TForm2.Button4Click(Sender: TObject); // закрытие акта
begin
closefile(f2);
end;

procedure TForm2.N13Click(Sender: TObject); // просмотр акта списания
begin
assignfile(F2,'E:\AKT');
reset(f2);
label9.Caption:='Акт списания основных средств';
with stringgrid1 do begin
for i:=0 to 10 do
for j:=0 to 10 do cells[i,j]:=' ';
colcount:=6;
fixedcols:=0;
fixedrows:=1;
cells[0,0]:='Код проверяющего';
cells[1,0]:='ФИО проверяющего';
cells[2,0]:='Причина списания';
cells[3,0]:='Дата проверки';
cells[4,0]:='Код списываемого ОС';
cells[5,0]:='Номер тех паспорта';
i:=1;

while not eof(F2) do begin
with z2 do begin
read(f2,z2);
cells[0,i]:=cod2;
cells[1,i]:=Fio2;
cells[2,i]:=ps2;
cells[3,i]:=dat2;
cells[4,i]:=cod22;
cells[5,i]:=np2;
i:=i+1;
end;
end;
end;

end;
procedure TForm2.N12Click(Sender: TObject); // запись Акта begin
assignfile(F2,'E:\AKT');
{if fileexists('AKT')=true then append(F2) else } rewrite(F2);
end;

procedure TForm2.Button6Click(Sender: TObject); //закрытие опер. инф
begin
closefile(f2);
end;

procedure TForm2.N3Click(Sender: TObject); //формирование ведомости
label 1,2,3,4;
begin
begin
assignfile(f1,'E:\OS');
assignfile(f2,'E:\AKT');
assignfile(f3,'E:\VEDOM');
Reset(F1);
Reset(F2) ;
Rewrite(F3) ;
1:
if eof(f1) then goto 2;
Read(F1,z1);

if (z2.np2<>z1.np1) then goto 3 ;

z3.cod3:=z1.cod1;
z3.oos3:=z1.oos1;
z3.np3:=z1.np1;
if (z2.np2=z1.np1) then goto (z3.dat3:=z2.dat2);
goto 4;

3:
z3.cod3:=z1.cod1;
z3.oos3:=z1.oos1;
z3.np3:=z1.np1;
if (z2.np2=z1.np1) then goto z3.dat3:=z2.dat2;

4:
Write(F3,z3);
goto 1;

2:
CloseFile(F1);
CloseFile(F2);
CloseFile(F3);
end;

end;
procedure TForm2.N10Click(Sender: TObject); //выходная ведомость
begin
assignfile(f3,'E:\VEDOM');
reset(f3);
label9.Caption:='Ведомость наличия ОС';
with stringgrid1 do begin
for i:=0 to 10 do
for j:=0 to 10 do cells[i,j]:=' ';
colcount:=4;
fixedcols:=0;
fixedrows:=1;
cells[0,0]:='Код основного средства';
cells[1,0]:='Объект основных средств';
cells[2,0]:='Номер тех паспорта';
cells[3,0]:='Если списан, то когда';
i:=1;

while not eof(F3) do begin
with z3 do begin
read(f3,z3);
cells[0,i]:=cod3;
cells[1,i]:=oos3;
cells[2,i]:=np3;
cells[3,i]:=dat3;
i:=i+1;
end;

Последний раз редактировалось Natashka21reg; 05.06.2011 в 16:19.
Natashka21reg вне форума Ответить с цитированием
Старый 05.06.2011, 15:40   #2
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

1) зачем вам StringGrid ?! Возьмите DBGrid - он и предназначен для отображения(визуализации) данных!

2) получить все основные за исключением списанных можно примерно таким запросом:
Код:
select * from SPR1 
   where КодОсновного NOT IN 
      (select КодСписываемогоОсновного from SPR2)
Serge_Bliznykov вне форума Ответить с цитированием
Старый 05.06.2011, 16:03   #3
Natashka21reg
Новичок
Джуниор
 
Регистрация: 05.06.2011
Сообщений: 2
По умолчанию

Цитата:
Сообщение от Serge_Bliznykov Посмотреть сообщение
1) зачем вам StringGrid ?! Возьмите DBGrid - он и предназначен для отображения(визуализации) данных!

2) получить все основные за исключением списанных можно примерно таким запросом:
Код:
select * from SPR1 
   where КодОсновного NOT IN 
      (select КодСписываемогоОсновного from SPR2)
В том то и проблема, что нужно чтобы все выводились в stringgrid по столбцам:
Код основных средств/ объект основных средств/номер тех паспорта
Natashka21reg вне форума Ответить с цитированием
Старый 05.06.2011, 16:18   #4
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
В том то и проблема, что нужно чтобы все выводились в stringgrid по столбцам:
Ну так в цикле можно по набору пробежаться:
Код:
with Query do
while not eof do begin
 for i:=0 to FieldsCount-1 StringGrid.Cell[i,StringGrid.RowCount-1]:=Fields[i].AsString;
 StringGrid.RowCount:=StringGrid.RowCount+1;
 next;
end;
I'm learning to live...
Stilet вне форума Ответить с цитированием
Ответ


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

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Вывод информации с интернета! Arsenx777 Работа с сетью в Delphi 3 28.03.2011 15:19
Заполнение ячейки информацией из справочника, который сжимается по мере детализации информации в ячейке Tintin99 Microsoft Office Excel 2 26.09.2009 00:48
Вывод информации из БД Alamez Помощь студентам 2 18.05.2009 10:07
Вывод информации на экран Linel PHP 10 23.02.2009 12:46
вывод информации из файла pautina Общие вопросы Delphi 12 26.01.2009 08:54