1

(7 replies, posted in Russian)

Отлично. Просто супер.

Form1.Edit1.Text:= Trim(Form1.Edit1.Text);

Это убирает лишние пробелы если они имеются в начале и в конце Edit1, а как убрать если они имеются в середине? Это в том случае если задумана что в Edit1 надо писать только одно слово.

2

(10 replies, posted in Russian)

спасибо работает

3

(5 replies, posted in Russian)

спасибо работает, а почему вы сортировали по BT.incomedate, мне надо по BT.id. Хотя и так работает. Я изменил на BT.id на всякий случай если вдруг пользователь ошибиться с датой.

4

(7 replies, posted in Russian)

но я не понял как это применить.
У меня на пример это сделано так:
procedure AddDay_Edit1_OnExit (Sender: string);
var
i: integer;
begin
      i:= Length(AddDay.Edit1.Text)-1;
      AddDay.Edit1.Text:= Trim(AddDay.Edit1.Text);
      AddDay.Edit1.Text:= Uppercase(Copy(AddDay.Edit1.Text,1,1))+Lowercase(Copy(AddDay.Edit1.Text,2,i));
end;

А как на моем примере применить:
var sentence : string;

sentence[1] := uppercase(sentence[1]);

5

(10 replies, posted in Russian)

Тогда надо эту колонку скрыть. Можно ли сделать это и будет ли скрипт работать если она скрыта?

6

(8 replies, posted in Russian)

Ок.

7

(7 replies, posted in Russian)

Можно на русском языке?

8

(8 replies, posted in Russian)

Уважаемый Админ.
Можете помочь по последнему посту?

9

(10 replies, posted in Russian)

Я уже приложил проект в другой теме.

http://myvisualdatabase.com/forum/misc. … download=1

10

(5 replies, posted in Russian)

DriveSoft wrote:

Пожалуйста приложите ваш проект (zip файл без exe и dll), без проекта довольно трудно все это представить в голове.

Проект прилагается.

11

(10 replies, posted in Russian)

Сделал двумя способами но оба не работают.

procedure Base_Button13_OnClick (Sender: string; var Cancel: boolean);
var
   i, c: integer;
begin
    c := Base.TableGrid1.RowCount - 1;
    for i := 0 to c do
    begin
        if SQLExecute('Select lethal from Base where id='+Base.TableGrid1.sqlValue)>0 then
        begin
                Base.TableGrid1.Cell[1,i].Color := clRed;
        end;
    end;
end;

Второй способ тоже не работает.
procedure Base_TableGrid1_OnChange (Sender: string);
var
   i, c: integer;
begin
    c := Base.TableGrid1.RowCount - 1;
    for i := 0 to c do
    begin
        if SQLExecute('Select lethal from Base where id='+Base.TableGrid1.sqlValue)>0 then
        begin
                Base.TableGrid1.Cell[1,i].Color := clRed;
        end;
    end;
end;

12

(5 replies, posted in Russian)

Имеем следующее.
[BaseTwo]
isdictionary=0
^id_Base=Base
>id_mayub=mayub

[mayub]
isdictionary=0
_invalid=TEXT

[Base]
isdictionary=0
_name=TEXT
_surname=TEXT

В таблице mayub имеется текстовое поле invalid со значениями 'Гурухи I', 'Гурухи II' и 'Гурухи III'. На русском языке это Группа I, Группа II и Группа III.
Суть программы в том что каждый пациент проходит обследование и получает инвалидность (первая, вторая или третья группа инвалидности). Также через некоторое время он опять проходит обследование и получает уже другую группу инвалидности или остается на той же группе. Например была первая, далее стала вторая.
Итак, на форме Form1 имеется Edit11, Edit22, ComboBox9 и кнопка Search1.
Edit11 - Tablename (Base), Fieldname (name)
Edit22 - Tablename (Base), Fieldname (surname)
ComboBox9 - Tablename (BaseTwo.id_mayub), Fieldname (invalid)

Search1 производит поиск таблицы Base по полям Edit11, Edit22, ComboBox9 и выводит результаты в TableGrid1.
Объясню проблему на примере.
Иван Иванов  Группа I   - первое обследование
                     Группа II  -  второе обследование
Петр Петров   Группа I  -  первое обследование
                     Группа III  -  второе обследование
                     Группа II  -  третье обследование

При поиске на таблице выводится:
1. Иван Иванов
2. Петр Петров
Если выбрать в ComboBox9 Группа I и производить поиск то в таблицу выводится:
1. Иван Иванов
2. Петр Петров
А надо чтобы поиск производился по последнему обследованию, т.е. на моем примере ничего не должно выводится.
Если выбрать Группа II то должен быть:
1. Иван Иванов
2. Петр Петров
У обоих по последнему обследованию группа 2.
Надеюсь смог объяснить.
Помогите с реализацией.
Может быть SQL запросом? Я не очень силен в этом. Подтолкните в нужную сторону.

13

(10 replies, posted in Russian)

Мне надо только это условие:
  if SQLExecute('Select lethal from Base where id='+Base.TableGrid1.sqlValue)>0

В таблице Base имеется поле lethal (boolean). Надо отметить что у меня и таблица и форма именуются Base.

14

(10 replies, posted in Russian)

Есть такой скрипт но не работает.
procedure lethal (Sender: string; var Cancel: boolean);
var
   i, c: integer;
begin
    c := Base.TableGrid1.RowCount - 1;
    for i := 0 to c do
    begin
        if SQLExecute('Select lethal from Base where id='+Base.TableGrid1.sqlValue)>0 then
        begin
                Base.TableGrid1.Cell[1,i].Color := clRed;
        end;
    end;
end;

Надо украсить вторую колонку TableGrid1 в красный если lethal (Да/Нет) в Base больше нуля или конкретно 1.
Помогите пожалуйста.

15

(8 replies, posted in Russian)

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

s:= SQLExecute('Select Count(*) From Base where lethal=0 and Base.id=(Select id_Base from BaseTwo where id_mayub=1 and BaseTwo.id=(Select max(id) from BaseTwo where BaseTwo.id_Base=Base.id))');

Суть такова. В таблице Base храниться данные Имя (текстовое поле), Умер (Да/Нет) пациента. В таблице BaseTwo храниться диагноз и инвалидность пациента. BaseTwo связана с Base, a таблица mayub (инвалидность) связана с BaseTwo. Пациент может пройти новое обследование, в результате чего может измениться его диагноз и инвалидность.
Например.
Первое обследование - аппендицит и I группа инвалидности
Второе обследование - бронхит и III группа инвалидности

Суть данного скрипта определить количество живых пациентов с группой инвалидности I. Инвалидность определяется по последнему обследованию. На моем примере скрипт должен выдать 0, так у данного пациента по последнему обследованию группа инвалидности III.

Помогите как упростить мой скрипт. Он рабочий.
Спс. заранее.

16

(8 replies, posted in Russian)

спасибо, разобрался.
Есть следующая база данных.
[BaseTwo]
isdictionary=0
^id_Base=Base
>id_mayub=mayub

[mayub]
isdictionary=0
_invalid=TEXT

[Base]
isdictionary=0
_lethal=BOOLEAN

procedure Base_Button8_OnClick (Sender: string; var Cancel: boolean);
var
s: integer;
begin
    s:= SQLExecute('Select Count(*) From BaseTwo where BaseTwo.id_mayub=1 and BaseTwo.id_Base=(Select id from Base where lethal=0)');
    Base.Edit4.Value:= s;
end;

скрипт работает нормально, но надо чтобы в Edit4 попали количество последних введенных данных.
сделал так но не получается.
s:= SQLExecute('Select Count(max(id)) From BaseTwo where BaseTwo.id_mayub=1 and BaseTwo.id_Base=(Select id from Base where lethal=0)');

помогите пожалуйста.

17

(8 replies, posted in Russian)

Спасибо помогло.
Еще один вопрос.
Как на таблице отобразить дату в виде dd.mm.yyyy, это также на вычис. поле. Имеется следующее но не работает.

(SELECT strftime('%dd.%mm.%yyyy', incomedate) FROM BaseTwo ORDER BY BaseTwo.id DESC LIMIT 1)

Спасибо заранее.

18

(8 replies, posted in Russian)

Всем привет. Как на примере PhoneBook в таблицу выводить последний номер введенного номер телефона с помощью вычис. поля.

Select number from phone where person.id=phone.id_person

Это выводить все введенные номера, а надо чтобы была последняя введенная.