26

(3 replies, posted in General)

Good day. I do not quite understand about the "Schools BCD" - but I think you would get something like this program.

Есть несколько проблем при составлении отчета.
1. Имеется база Temp. В базе имеется 2 записи. При создании отчета (без SQL) формируются две дублируемые записи
http://s019.radikal.ru/i602/1407/14/8de90d7d5436.jpg.
2. При добавлении записей в базу http://s011.radikal.ru/i315/1407/d5/7b084039701a.jpg http://s001.radikal.ru/i196/1407/a8/e4eb3c271eb6.jpg картинка в отчете не меняется, те же первые 2 записи + 2 дубликата.

Update
Вопрос с дублированием записей в отчете решил через SQL-запрос на дополнительной форме.
http://i080.radikal.ru/1407/14/8bdc044f2384.jpg
Неудобно, но по другому никак.
Update 2.
Рандомно (не понял при каком условии) дублирует запись в базу при выполнении sql запроса на сохранение, проблема осталась.
Update 3
Решил проблему с дублированием путем переноса sql-запроса с кнопки "Поиск" в Script. Критерии запроса не менял. Все таки Вы были правы - есть глюк с использованием поиска через кнопки без закрытия формы.

Прошу Вас обратить внимание вот на эту версию FastReport
https://code.google.com/p/laalaa/downlo … ys-Windows
Она русская (что упрощает работу с документацией, выложенной на форуме) + самое главное, она поддерживает импорт из Excel и Word.

Кстати, по сабжу.. Реализовал, но опять же через костыль.
Создается копия целевой таблицы, в нее идет все сохранение и с нее берутся необходимые данные для Report, затем через
INSERT INTO все копируется в целевую таблицу, затем  DELETE from Temp на OnClose формы.
Как-то так...

30

(33 replies, posted in Russian)

2 Niema.
В данной версии программы такое невозможно.
Update.
Хотя можно попробовать через FastReport, но не уверен.

31

(33 replies, posted in Russian)

Aleksandr.Nikolaev wrote:

а можно ли его редактировать в ручную без самой проги? к примеру каким нибудь текстовым редактором?

Конечно, вот этой программой.
http://www.fayloobmennik.net/3974144

В версии 1.42 при использовании "Отчет" (не SQL) такой проблемы нет.
Спасибо за оперативное решение проблемы.

33

(33 replies, posted in Russian)

В папке с Вашей программой в файле sqlite.db.

Доброго времени суток.
Прочитал ваше сообщение в почте, спасибо за подсказку по поводу "Новой записи".
По поводу отчетов. Решил проверить - создал новый Button и TableGrid, на кнопку поставил тот же SQL запрос и сделал вывод в   грид. Проблема не обнаружилась - грид отображает нужные данные, добавить новую запись возможно.
По вопросу сохранения данных. Кнопкой "Записать на прием" я сохраняю все в БД, т.е. запись до нажатия "Выписать квитанцию" присутствует в любом случае.
Еще более интересный вопрос. Я могу понять дублирование записи в базу по по параметрам sql-запроса, НО КАК получается записать все данные с формы (например "категория") - вот это я понять не могу...
В любом случае спасибо за ответ, если придумаю решение - отпишусь.
Update.
Создаю пустую кнопку "Отчет", без запроса, вообще без ничего - тот же глюк.

Имеется Button, на которую привязан "Отчет". Вот лист SQL-запроса

SELECT
strftime('%d.%m.%Y', ZapicNaPriem.Day) AS Day
,strftime('%H.%M', ZapicNaPriem.Time) AS Time
,ZapicNaPriem.First_Name
,ZapicNaPriem.Last_Name
,ZapicNaPriem.Patronymic
,ZapicNaPriem.Address
,Price.NameUsluga
,Cena.Cena

FROM
ZapicNaPriem

LEFT OUTER JOIN Doctors ON Doctors.id=ZapicNaPriem.id_Doctors
LEFT OUTER JOIN Price ON Price.id=ZapicNaPriem.id_Price
LEFT OUTER JOIN Cena ON Cena.id=ZapicNaPriem.id_Cena

WHERE
ZapicNaPriem.Day={Data} and
ZapicNaPriem.Last_Name LIKE '{Last_Name}' and
ZapicNaPriem.First_Name LIKE '{First_Name}' and
ZapicNaPriem.Patronymic LIKE '{Patronymic}'

После нажатия на кнопку отчета, в таблицу ZapicNaPriem дублируется последняя внесенная в нее запись. Если пытаться добавить новую запись - происходит редактирование старой, новая запись не добавляется. До нажатия все функционирует отлично. Если же вместо "Отчет" поставить, к примеру, "Excel", то данная проблема не наблюдается. В эвентах кнопки ничего не прописывалось.

Понял. Спасибо за дополнения.

Ок, но есть маленькая проблема. Если в условии стоит

WHERE ZapicNaPriem.Day={Data}

, то все работает, но если меняю на

WHERE ZapicNaPriem.First_Name={First_Name}

то выдает ошибку No such column:Александр.
ZapicNaPriem.First_Name текстовое поле. {First_Name} - TextBox.

Доброго времени суток.
В англоязычной ветке форума рассматривается вопрос о перемещении в FastReport выбранной строки из TableGrid. Подскажите, как сделать если нужно вывести все содержимое таблицы (в таблице выборка из базы)?

Очищать значение Combobox. В принципе, сделал Combobox1.ItemIndex:=-1.
Update.
Все таки "поиск" -великая вещь. Для таких же как я - http://myvisualdatabase.com/forum/viewtopic.php?id=195

А можно добавить ClearSelection для Combobox?

41

(237 replies, posted in Russian)

Хотелось бы выделять несколько объектов через Shift, что бы была возможность двигать их группой.

Имеется 3 ComboBox и следующий код.

procedure Form1_Combobox1_OnChange (Sender: string);
begin
Form1.Combobox2.dbItemID:= Form1.Combobox1.dbItemID;
end;

У Combobox3 в свойствах ParentCombobox стоит Combobox2. При изменении значения Combobox1 значение Combobox2 изменяется, но процедура ParentCombobox у 3-го не работает, только если руками не выбрать значение в Combobox2.

Возможно ли реализовать добавление результата sql запроса с Combobox? При исполнении 

Form1.Combobox1.Items.AddString( VarToStr( SQLExecute( 'SELECT NameUsluga FROM Price WHERE id_Category = 2 and id_Specializ = 1' )));

выдается ошибка "Could not convert variant of type (NULL) into type (Integer)".

44

(14 replies, posted in Russian)

Да, Ваш вариант решения намного лучше, т.к. позволяет использовать значения с базы, а в моем случае приходилось использовать переменные.
Честно говоря, уже неудобно обращаться, но может Вы подскажете, как лучше реализовать массив (как мне кажется, без него не получится) и работу с ним в ComboBox.dbItemID. Суть траблы такова. На прошлых примерах Вы показали как можно работать через SQL запрос с ComboBox. Сейчас у меня работает (Специализация)->(Фамилия)->(Категория). Немного изменив структуру формы (Редактирование базы) я хочу, что бы в соответствии с параметрами (Специализация)->(Фамилия)->(Категория), у меня была возможность выборки в ComboBox (Услуга) и (Стоимость). Базу (Price) я изменил по подобию (Doctors). Используя 

zapic_na_priem.Usluga.dbItemID := StrToInt( VarToStr( SQLExecute('SELECT id_Category FROM Price WHERE id = ' + IntToStr(zapic_na_priem.FIO_Doc.dbItemID) ) ) );;

в Combobox (Услуга) я получаю значение, например "Протезирование". Меняя врачей (Специализация)->(Фамилия)->(Категория), я могу получить только первую запись из базы (Price), принадлежащую конкретному врачу. Причем в Combobox (Услуга) у меня отображаются все услуги для всех врачей. Используя

zapic_na_priem.Usluga.Items.Clear;

я очищаю список, но получить весь список услуг для конкретного врача я не смогу.
По почте отправил на Ваш адрес измененную версию проекта.
Заранее огромное спасибо.

45

(237 replies, posted in Russian)

В события добавить OnCreate.
и +1 Savage

46

(14 replies, posted in Russian)

Ошибку понял. Пробую выбирать Items - программа не понимание DefaultIndex[1]

procedure zapic_na_priem_FIO_Doc_OnChange (Sender: string);
var
  S : String;
begin
zapic_na_priem.cat_select.Style:=csDropDown;
S:=VarToStr( SQLExecute('SELECT Cat FROM Category WHERE id = ' + IntToStr(zapic_na_priem.FIO_Doc.dbItemID) ) );
if S='Высшая' then
zapic_na_priem.ComboBox1.DefaultIndex[1];  
end;

а если

zapic_na_priem.ComboBox1.ItemIndex:=1;

, то ничего не происходит.

Update.
Решено

zapic_na_priem.ComboBox1.ItemIndex:= (1);

P.S. Текст не убираю специально - может кому поможет.

47

(14 replies, posted in Russian)

Кстати, небольшое дополнение.
А как сделать тоже самое, но не в Edit, а в ComboBox?
ComboBox1.SelText программа не понимает, ComboBox1.Text ничего не происходит.

procedure Form1_Button3_OnClick (Sender: string; var Cancel: boolean);
begin
Form1.ComboBox3.Text:= 'dsds';
end;

Все, сам допер.

procedure Form1_Button3_OnClick (Sender: string; var Cancel: boolean);
begin
Form1.ComboBox3.Style:=csDropDown;
Form1.ComboBox3.Text:= 'dsds';
end;

Update.
Все равно есть трабла. Запись в ComboBox отображается, но если не выбрать значение вручную - в базу она не записывается.

48

(14 replies, posted in Russian)

http://www.barca.ru/forum/images/smilies/bowdown2.gif
Да! Огромнейшее спасибо!

49

(14 replies, posted in Russian)

Имеется база Doctors, в которой записаны следующие данные

Фамилия
id_Специализации
id_категории

либо

id_Фамилия
id_Специализация
id_Категория

т.е

Сидоров                                Петров
Стоматолог                           Хирург
Высшая категория               Без категории

Требуется->

при выборе в ComboBox1 специализации (Хирург), в ComboBox2 можно было выбрать только "Петров", а после выбора в Edit1.Text появлялось "Без категории".
Дабы было проще, выслал на Ваш адрес (support@drive-software.com) свой проект.

50

(14 replies, posted in Russian)

Используя структуру моей базы, вывести в Edit4.Text результат сортировки связанного списка ComboBox1 и ComboBox2.