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

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

vovka3003 wrote:
Nilaus wrote:

Пора уже вводить скидку 75% с таким курсом доллара и вообще странно что привязка к доллару, у других цена в рублях

Интересно, а кто ещё ввел у себя скидку 75% в связи с волантильностью курса валют?

Никто не вводил, цены в рублях везде.

Пора уже вводить скидку 75% с таким курсом доллара и вообще странно что привязка к доллару, у других цена в рублях

5

(5 replies, posted in Russian)

Правильно я понял что нужно отдельно вводить Потребителя  и объекты, а потом связывать их через промежуточную таблицу?  У нас есть ПО для АСКУЭ за несколько миллионов, вот там именно так и делается,но жутко неудобно, через несколько окон и множество нажатий

6

(1 replies, posted in Russian)

Можно ли реализовать.
Есть например такая строчка скрипта (взята с этого форума) , сохраняющая файл  в папку Operators/год/месяц/день/Новости:
AddKorr.DBFile1.dbCopyTo:= 'Operators\' +FormatDateTime('yyyy', now)+'\'+FormatDateTime('mmmm', now)+'\'+FormatDateTime('dd', now)+'\Новости';

Есть ли возможность вместо названия папки Operators указать содержимое тексбокса, или запись с базы?
Добавляю, например, контрагента "Иванов И.И." и dbCopyTo  копирует в файл в папку  Иванов И.И/год/месяц/день/Новости. При этом, если папка Иванов И.И. уже существует, то новая не создавалась бы.

Спасибо!
Конечно не очень удобно выделение строки убирать, т.к. на этом было построен поиск, ну да ладно.

Со строками получилось, в том числе и по условию наличия данных в ячейке. При таком коде серым окрашивается в первую очередь, как и нужно.

/////// Цвет фона ячейки грида при условии /////////////
procedure Form1_TableGrid2_OnChange (Sender: string);
var
    i,c: integer;
    k,q: integer; 
    sDate: string;
begin
    c := Form1.TableGrid2.RowCount - 1;
    q := Form1.TableGrid2.Columns.Count - 1;
    for i := 0 to c do
    begin
        sDate := Form1.TableGrid2.Cells[5,i];
        if Form1.TableGrid2.Cells[9,i] <>'' then for k := 0 to q do Form1.TableGrid2.Cell[k,i].Color := clGray
        else if (StrToDate(sDate) - now) < 1 then for k := 0 to q do Form1.TableGrid2.Cell[k,i].Color := $007175BD
        else if (StrToDate(sDate) - now) < 3 then for k := 0 to q do Form1.TableGrid2.Cell[k,i].Color := clYellow

    end;
end;

DriveSoft
А как всю строку выделять? Второй скрипт как раз для этого и предназначен и в принципе по одному условию у меня работает, на два-три условия не получается. И как сделать условия по наличию каких-то данных в ячейке? По типу как в Экселе функция ЕПУСТО.

По выделению цветом.
При первом запуске заполняется  table_clients. По клику на строку table_clients заполняется GridPhones (телефоны, принадлежащие клиентам) посредством кнопки поиск bPhones со скриптом.  В таблице телефоны есть логическое полe rr.  Выделение цветом для поля rr работает так: если да - то цвет ячейки красный, если нет - то зеленый.  При первом запуске и выборе значений в table_clients все работает прекрасно,  но если вдруг кликнуть по таблице GridPhones, то выделение цветом больше не работает.  Т.е. оно конечно работает, но только если вручную выбирать ячейку в GridPhones, тогда цвет появляется, а через выбор в table_clients, как при старте,  цвета нет.
В другом моем проекте точно также все работает.

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

procedure Form1_TableGrid2_OnChange (Sender: string);
/////// Цвет фона ячейки грида при условии /////////////
var
    i,c: integer;
    sDate: string;
begin
    c := Form1.TableGrid2.RowCount - 1;
    for i := 0 to c do
    begin
        sDate := Form1.TableGrid2.Cells[5,i];
        if (StrToDate(sDate) - now) < 1 then Form1.TableGrid2.Cell[5,i].Color := $007175BD
        else if (StrToDate(sDate) - now) < 3 then Form1.TableGrid2.Cell[5,i].Color := clYellow
    end;
end;

И есть вот такой скрипт выделения строк по условию с примера, взятого на этом форуме:

procedure Form1_TabGr_TaskList_OnChange (Sender: string);
var
   i,f,r,c: integer;
begin
     Form1.TabGr_TaskList.BeginUpdate;
     r := Form1.TabGr_TaskList.Columns.Count - 1;
     c := Form1.TabGr_TaskList.RowCount - 1;
     for i := 0 to r do
     begin
         if Form1.TabGr_TaskList.Cells[5,i] = 'Нет' then
          begin
            for f := 0 to r do
              Form1.TabGr_TaskList.Cell[f,i].Color := clGray;
          end;

     end;
     Form1.TabGr_TaskList.EndUpdate;
end;

Хотелось бы, чтобы работало выделение строк по двум условиям  даты в первом коде, а также по условию наличия  значения в ячейке (любого значения)
Например
Разница дат < 1 - цвет $007175BD
Разница дат < 3 - цвет  clYellow
Заполнена ячейка ( ячейка с датой, или текстовое поле), то цвет строки  clGray, при этом первые два условия игнорируются

P.S. Так до сих пор не смог решить проблему: ячейки (строки) выделяются цветом только когда кликнуть по целевой таблице, хотя значения в этой таблице появляются автоматически при клике на ячейку в другой таблице.
Пока выделение цветом срабатывает только при старте, при первом поиске. Если искать повторно, то цветом не выделяет.
Вот пример как это происходит: при старте все работает нормально, но стоит кликнуть на таблице телефоны, как потом выделение цветом работать перестает.:

10

(3 replies, posted in Russian)

А экспорт в HTML реально сделать? Многие программы сейчас ушли от экспорта в Excel, как раз потому, что Excel сейчас используют далеко не все, а HTML универсален и легко потом импортируется в любой табличный редактор.
Попробовал через отчет сделать, если ставить в отчете формат ODS, то открывается отчет в портативном экселе.  В отчетах правда я еще совсем не разбирался как там что делается.

11

(3 replies, posted in Russian)

Возникла проблема с выгрузкой в Эксель. На работе официально используется Calc, а некоторые пользуются портативным MS Office с флешек, или с других мест. Соответственно в программе ничего не открывается.  Есть какой-то способ прописывать путь к ярлыку, как прописывается путь к базе данных?

В нерусской части форума задавали вопрос про DBTreeView,  было бы неплохо увидеть в ближайших версиях.

13

(7 replies, posted in Russian)

Чуть поменял.Вот так работает:

SELECT
Visits.id as 'id',
strftime('%d.%m.%Y', Visits.dataPis),
Objekts.NameOb,
strftime('%d.%m.%Y', Tu.DataTu),
VidTu.Vid

FROM
Visits

LEFT OUTER JOIN visits_objects ON visits_objects.id_Visits=Visits.id
LEFT OUTER JOIN Objekts ON Objekts.id=visits_objects.id_Objekts
LEFT OUTER JOIN Tu  ON  Tu.id_visits_objects=visits_objects.id
LEFT OUTER JOIN VidTu ON VidTu.id=Tu.id_VidTu

WHERE
((Visits.dataPis >= {DateZ1} AND Visits.dataPis <= {DateZ2}) OR ({DateZ2} is null))
AND (case when '{Edit5}'='' then 1=1 else Objekts.NameOb  LIKE '%{Edit5}%' end)
AND ((Tu.DataTu >= {DateTu1} AND Tu.DataTu <= {DateTu2}) OR ({DateTu2} is null))

Иначе смешивает даты выдачи ту. Спасибо за решение, Дмитрий.

14

(7 replies, posted in Russian)

Вроде бы нашел решение.

SELECT
Visits.id as 'id',
strftime('%d.%m.%Y', Visits.dataPis),
Objekts.NameOb,
strftime('%d.%m.%Y', Tu.DataTu),
VidTu.Vid

FROM
Visits
LEFT OUTER JOIN (Objekts LEFT OUTER JOIN visits_objects ON Objekts.id=visits_objects.id_Objekts) ON Visits.id=visits_objects.id_Visits
LEFT OUTER JOIN Tu  ON  Tu.id_visits_objects=visits_objects.id
LEFT OUTER JOIN VidTu  ON Tu.id_VidTu=Tu.id

WHERE
((Visits.dataPis >= {DateZ1} AND Visits.dataPis <= {DateZ2}) OR ({DateZ2} is null))
AND (case when '{Edit5}'='' then 1=1 else Objekts.NameOb  LIKE '%{Edit5}%' end)
AND ((Tu.DataTu >= {DateTu1} AND Tu.DataTu <= {DateTu2}) OR ({DateTu2} is null))

Upd. Добавил еще в поиск по таблице VidTu, связанной с таблицей ТУ. По значению VidTu ищет прекрасно, но в самой таблице это поле пустое...Что это может быть, просто LEFT OUTER JOIN недостаточно?

15

(7 replies, posted in Russian)

Таблица Visits поле Date
Таблица Objekts поле NameOb
Таблица Tu поле Date
Таблица VidTu  поле Vid
Visits и Objekts  имеют отношение многие-ко-многим через таблицу visits_objects (видно на картинке)

В результате должны быть столбцы: Дата визита, Объект, Дата ТУ, Вид ТУ

Вообще что-то я застопорился на выводе из таблиц связанных с главной через 3-4 таблицы, сам алгоритм прописывания связей не пойму.

16

(7 replies, posted in Russian)

Имеется следующая схема базы данных


Цель SQL запросом выводить данные из этих таблиц (реализован поиск по полям таблиц)
Если для поиска NameOb в таблице Objekts  работает такой SQL код:

SELECT Visits.id AS 'id',
Objekts.NameOb
FROM Visits
LEFT OUTER JOIN (Objekts LEFT OUTER JOIN visits_objects ON Objekts.id=visits_objects.id_Objekts) ON Visits.id=visits_objects.id_Visits

то для поиска Data в  таблице Tu и Vid в таблице VidTu написать похожий код  не получается.
Или, в моем случае необходимо использовать UNION?

17

(30 replies, posted in Russian)

spectre
Странно, у меня все работает, выставил только increm.search на 13 кнопку в свойствах таблицы orderslist.

18

(15 replies, posted in Russian)

Спасибо, теперь все работает отлично!
Не подскажите, возможно ли в SQL запросе прописать в условии выбора выбранную строку в таблице?   По примеру того же тестового проекта, при выборе значения в таблице 1, кнопка поиск искала бы в первой таблице посредством SQL запроса. Это надо, чтобы сократить количество таблиц, т.к. вторую и третью таблицу хочу объединить посредством того же SQL запроса. Где-то видел похожее тут выкладывали, перерыл все, не нашел...

19

(15 replies, posted in Russian)

Прикладываю.

20

(15 replies, posted in Russian)

Вот так работает, но без пробелов

objects.nameOb || objects.UI

У Вас ругается на код (выделяет красным)

objects.nameOb || ' ' || objects.UI

Пробовал играться, убирал пробелы

objects.nameOb || '' || objects.UI

Но так уже ругается в программе на unrecognized token.

21

(15 replies, posted in Russian)

DriveSoft
Я этот код по аналогии в другой проект добавляю. Там в аналогичной таблице objects, помимо поля nameOb, есть поле UI (текстовое). В комбобоксе для удобства я выводил оба этих поля, но я так понял вышеуказанный код выводит только одно поле, игнорируя запись в FieldName.

22

(15 replies, posted in Russian)

Дмитрий, спасибо, так работает, но только почему-то в указанных в коде комбобоксах перестала работать склейка из двух полей {Ul} {nameOb}.

kunar80 wrote:
alex842 wrote:

Создание собственной кнопки со своей иконкой.

А не логичнее ли картинки кнопок загрузить в базу (размер ведь у них небольшой), а не хранить в открытой папке Images?

А как это сделать?  У меня фон для окон тоже в папке  Images хранится. Если выбрать  "сохранить изображение в базу и привязать к строке в таблице, это уже будет не фон, а загружаемая картинка.  И эти поля сохранения файлов и картинок в базу , грузятся именно в базу?

При покупке программы все обновления до версии 2.0 будут бесплатны. А потом снова 49$, или какую-то определенную сумму доплатить?
Хотя, учитывая темпы обновления версий, 2.0 еще нескоро появится. ))

25

(15 replies, posted in Russian)

Работает, но при добавлении нового клиента  при добавлении визита ошибка. Если ее игнорировать, можно добавить визит, но объекты в комбобоксе появляются все. При редактировании записи все работает как надо.