Программирование - это просто
Advertisement
Главная arrow Уроки Delphi arrow Delphi - это просто! arrow Delphi - это просто. Урок 8.11.5:  Накладные.  Добавление и удаление строк. BDE.
27.04.2024 г.
Главное меню
Главная
Интернет магазин
Программные продукты
Биржевые роботы
Искусственный интеллект
Математика и информатика
1С:Предприятие
Уроки C#
Уроки Delphi
Уроки программирования
Web-программирование
Дизайн и графика
Компьютер для блондинок
Исходники
Статьи
Платный раздел
Рассказы про компьютеры
Хитрости и секреты
Системный подход
Размышления
Наука для чайников
Друзья сайта
Excel-это не сложно
Все о финансах
.
Delphi - это просто. Урок 8.11.5:  Накладные.  Добавление и удаление строк. BDE. Печать E-mail
Автор megabax   
15.05.2011 г.
Базы данных

Delphi - это просто. Урок 8.11.5:  Программируем печать накладных.

 Часть 5.  Добавление и удаление строк документа, а так же работа с BDE.

Исходники к уроку вы можете скачать здесь.

Сегодня мы продолжим написание программы "Складской учет". Только вот писать будем ее не на Delphi 7, а на Turbo Delphi. Спросите: "Зачем?".  Дело в том, что Turbo Delphi является бесплатной средой разработки Delphi, и, многие из тех, кто не желает покупать платную версию Delphi, пользуются именно ей, дабы не попасть в разряд нарушителей авторских прав. Ну, а если вы все же пишите на Dephi 7, то посмотреть скришоты другой среды разработки Delphi будет полезно для вашего кругозора. Ну а программный код, который мы напишем, будет компилироваться и в Delphi 7 и в Trubo Delphi - как говориться, Delphi - оно и в Африке Delphi.

И так, открываем в Turbo Delphi исходники, которые мы писали на прошлом уроке. Если у вас их нет, скачайте отсюда. Возможно, вам понадобиться создать пвсевдоним StorePrj (см. урок по созданию псевдонимов).  Но в Turbo Delphi вы не можете создать псевдоним базы данных так, же, как и в Delphi - все таки бесплатная версия среды разработки немного урезана по сравнению платной. Так что создадим средствами ODBC. Если у вас уже создан псевдоним и есть базы данных с прошлых уроков, можете пропустить описание, как его создавать. И так, заходим в Панель управления. В Windos XP это можено сделать через "Мой компьютер"*:

Delphi - это просто. Урок 8.11.5:  Программируем печать накладных. Часть 5.  Добавление и удаление строк документа.

Выбираем прочие параметры панели*:

Delphi - это просто. Урок 8.11.5:  Программируем печать накладных. Часть 5.  Добавление и удаление строк документа.

И, наконец, выбираем BDE Administrator*:

Delphi - это просто. Урок 8.11.5:  Программируем печать накладных. Часть 5.  Добавление и удаление строк документа.

Открывается вот такая программа**:

Delphi - это просто. Урок 8.11.5:  Программируем печать накладных. Часть 5.  Добавление и удаление строк документа.

Как завести новый псевдоним? Щелкаем на Databases правой кнопкой мыши, выбираем new**:

Delphi - это просто. Урок 8.11.5:  Программируем печать накладных. Часть 5.  Добавление и удаление строк документа.

У вас выскочит окно**:

Delphi - это просто. Урок 8.11.5:  Программируем печать накладных. Часть 5.  Добавление и удаление строк документа, а так же работа с BDE.

Оставляем тип "Standard", жмем OK. Созданный псевдоним переименовываем в StorePrj**:

Delphi - это просто. Урок 8.11.5:  Программируем печать накладных. Часть 5.  Добавление и удаление строк документа, а так же работа с BDE.

В правой части редактируем путь, где у вас лежат базы данных к программе складского учета**:

Delphi - это просто. Урок 8.11.5:  Программируем печать накладных. Часть 5.  Добавление и удаление строк документа, а так же работа с BDE.

Если у вас нет этих баз данных, скачайте их отсюда.

Теперь перейдем непосредственно к программированию. Выбираем форму frmDoc***:

Delphi - это просто. Урок 8.11.5:  Программируем печать накладных. Часть 5.  Добавление и удаление строк документа, а так же работа с BDE.

Добавим к форме парочку кнопочек "Добавить" и "Удалить", присвоим им имена btnAdd и btnDelete соответственно***:

Delphi - это просто. Урок 8.11.5:  Программируем печать накладных. Часть 5.  Добавление и удаление строк документа, а так же работа с BDE.

Прежде чем начать писать обработчики нажатия на эти кнопки, добавим в секцию private класса формы объявление поля FDocId:integer:***

Delphi - это просто. Урок 8.11.5:  Программируем печать накладных. Часть 5.  Добавление и удаление строк документа, а так же работа с BDE.

Соответственно, нам потребуется еще и чуть чуть переписать функцию TfrmDoc.OpenDoc:

function TfrmDoc.OpenDoc(Docid:integer;AFields:TFieldsArray):integer;

begin

   qTab.SQL.Text:=StringReplace(qTab.SQL.Text,'#docid#',IntToStr(Docid),[rfReplaceAll]);

   FDocId:=Docid;

   qTab.Active:=true;

   WaresFields:=AFields;

   SetupColumns;

   tbHeap.Filter:='id='+IntToStr(Docid);

   tbHeap.Filtered:=true;

   tbHeap.Active:=true;

   lbdbDocNum.DataField:='ID';

   lbEdDate.DataField:='DocDate';

   DBLookupComboBox.KeyValue:=tbHeap.FieldValues['Store'];

   DBLookupComboBoxTypes.KeyValue:=tbHeap.FieldValues['TypeDoc'];

   result:=ShowModal;

end;

еще добавим ка процедуру RefreshTable

procedure TfrmDoc.RefreshTable;

begin

  qTab.Active:=false;

  qTab.Active:=true;

  SetupColumns;

end;

Да, и раз мы ее добавили, то в в классе формы тоже объявите:

Delphi - это просто. Урок 8.11.5:  Программируем печать накладных. Часть 5.  Добавление и удаление строк документа, а так же работа с BDE.

 Соответственно, меняем и процедуру TfrmDoc.btnEditClick,  в самом конце три строки заменяем одной (именем той процедуру, которую мы создали: RefreshTable), а так же добавляем проверку наличия товара в редактируемой строке (у нас строка добавляется без товара, и если не вставить этот код, то при попытке присвоить переменной   null, у нас вылетит со страшным сообщением) :

procedure TfrmDoc.btnEditClick(Sender: TObject);

var frm:TfrmRowDocEdit;

begin

   frm:=TfrmRowDocEdit.Create(self);

   frm.edPrice.Text:=FloatToStr(qTab.FieldValues['Price']);

   frm.edCount.Text:=FloatToStr(qTab.FieldValues['QUANTITY']);

 

      //если у нас товар еще не заполнен

   if qTab.FieldValues['WareId']=null then

      frm.WareId:=-1

   else

      frm.WareId:=qTab.FieldValues['WareId'];

 

   if frm.OpenRow(WaresFields)=mrOk then

   begin

     tbTabl.Filter:='Id='+IntToStr(qTab.FieldValues['Id']);

     tbTabl.Filtered:=true;

     tbTabl.Active:=true;

     tbTabl.Edit;

     tbTabl.FieldValues['Price']:=StrTofloat(frm.edPrice.Text);

     tbTabl.FieldValues['QUANTITY']:=StrTofloat(frm.edCount.Text);

     tbTabl.FieldValues['Ware']:=frm.tbWares.FieldValues['Id'];

     tbTabl.FieldValues['SUMM']:=tbTabl.FieldValues['Price']*tbTabl.FieldValues['QUANTITY'];

     tbTabl.Post;

     tbTabl.Active:=false;

     RefreshTable;

   end;

end

Теперь обработки нажатия на кнопочки "Добавить" и "Удалить":

procedure TfrmDoc.btnAddClick(Sender: TObject);

begin

  tbTabl.Active:=true;

  tbTabl.Append;

  tbTabl.FieldValues['Doc']:=IntToStr(FDocid);

  tbTabl.FieldValues['Price']:=0;

  tbTabl.FieldValues['QUANTITY']:=0;

  tbTabl.Post;

  tbTabl.Active:=false;

  RefreshTable;

end;

 

procedure TfrmDoc.btnDeleteClick(Sender: TObject);

begin

   tbTabl.Active:=true;

   tbTabl.Filtered:=false;

   tbTabl.Locate('Id',qTab.FieldValues['Id'],[loCaseInsensitive]);

   tbTabl.Delete;

   tbTabl.Active:=false;

   RefreshTable;

end;

Ну, вроде все. Запустим программу на тестирование, попытаемся что нибудь добаить:

Delphi - это просто. Урок 8.11.5:  Программируем печать накладных. Часть 5.  Добавление и удаление строк документа, а так же работа с BDE.

Убедимся, что мы можем корректно отредактировать строку без товара:

Delphi - это просто. Урок 8.11.5:  Программируем печать накладных. Часть 5.  Добавление и удаление строк документа, а так же работа с BDE.

Аналогично протестируем работу кнопочки "Удалить". 

Исходники к уроку вы можете скачать здесь.


Скриншоты, помеченные знаком* , являются цитатами и иллюстрациями  в соответствии со ст. 1274 ГК РФ программного продукта "Microsoft Windows XP", авторское право на который принадлежит корпорации "Microsoft". 

Скриншоты, помеченные знаком** , являются цитатами и иллюстрациями  в соответствии со ст. 1274 ГК РФ программного продукта "BDE Administrator", авторское право на который принадлежит корпорации "Inpirce Corporation". 

Скриншоты, помеченные знаком*** , являются цитатами и иллюстрациями  в соответствии со ст. 1274 ГК РФ программного продукта "Turbo Delphi", авторское право на который принадлежит фирме "Borland Delphi".

Последнее обновление ( 06.11.2011 г. )
 
« След.   Пред. »
 
© 2024 Программирование - это просто
Joomla! - свободное программное обеспечение, распространяемое по лицензии GNU/GPL.
Русская локализация © 2005-2008 Joom.Ru - Русский Дом Joomla!
Design by Mamboteam.com | Powered by Mambobanner.de
Я принимаю Яндекс.Деньги