1

(66 replies, posted in Russian)

Здравствуйте Дмитрий!!!
Будьте так добры подскажите???

var
       LISTL,T : String;
begin
      c := LIST.Count- 1;   //...тут выдаёт ошибку???
     for i := 0 to c do
begin
        T:=LISTL[i];
...........................................
...........................................

подскажите как правильно записать???

2

(3 replies, posted in Russian)

DriveSoft wrote:

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

Здравствуйте Дмитрий!!!
Я с Уважением отношусь к Вашим трудам...и ценю Ваше затраченное время в мгновенной тех.-поддержки  "форумчаном"!!!
Как говорится  <<ВИНОВАТ-ИСПРАВЛЮСЬ->> в ближайшее время!!!
Исходя из выше сказанного мною, прошу разрешить мне участвовать в тестировании 3.0 Альфа
-Возможно ли запретить:  "добавить" или "редактировать" запись из нового грида в нужной колонки?
Любой Ваш ответ приму "С Уважением и Благодарностью" ...........Роман!!!

3

(3 replies, posted in Russian)

Доброго времени суток ВСЕМ!!!
Дмитрий...возможно ли осуществить такую идею с менюшками???
Думаю интересно было всем...
Суть вопроса выложил в рисунке...
С Уважением и Благодарностью Роман!!!

smile Дмитрий взгляните пост №7...???

Дмитрий огромное СПАСИБО Вам за поддержку!!!
не бросайте на пол-пути...("я начал городить огород")

procedure Form1_Button2_OnClick (Sender: string; var Cancel: boolean);

var
    OpenDialog: TOpenDialog;
    HTML : TStringList;
    SourceVerNumber : String;     //Исходный код страницы для поиска номера версий
    PosVerNumber1 : Integer;      //Положение начало тега перед номером версии
    PosVerNumber2 : Integer;      //Положение начала метки после номера версии

    i,c: integer;
    s: string;

begin

        OpenDialog := TOpenDialog.Create(Form1);
     if OpenDialog.Execute then


begin
         HTML := TStringList.Create;
         HTML.LoadFromFile(OpenDialog.FileName);

         Form1.Memo1.Text:= (HTML.Text);

         c := Form1.Memo1.Lines.Count-1;
     for i := 0 to c do
begin

           s:= Form1.Memo1.Lines[i]; // в переменной s поочередно будет попадать каждая строка,
 //====================== ОТСЮДА У МЕНЯ ТЁМНЫЙ ЛЕС ==============================================================
           if s[0] <> '' then //SourceVerNumber[0] := //''''+ ReplaceStr(s[0], '''', '''''') + ''''
                   //else s[0] := 'NULL';

    {1}    SourceVerNumber := (s);
    {2}    PosVerNumber1 := Pos('right><td>',SourceVerNumber);
    {3}    Delete (SourceVerNumber,1,PosVerNumber1-1+Length('right><td>'));
    {4}    PosVerNumber2 := Pos('</td>',SourceVerNumber);
    {5}    Delete (SourceVerNumber,PosVernumber2,1000000);
    {6}    SourceVerNumber := Trim(SourceVernumber);
    {7}    //Form1.Memo2.Text := SourceVerNumber;

           s[0] :=SourceVerNumber;

          // else s[0] := 'NULL';

          SQLExecute ('INSERT INTO base (lastname) VALUES ('+ SourceVerNumber[0] +');');

            end;
        end;
        OpenDialog.Free;
end;

помогите откорректировать мой "чудо скрипт" ПОЖАЛУЙСТА...
                                               С Уважением и Благодарностью Роман!!!

DriveSoft wrote:

Роман
Необходимо найти все значения в тексте которые расположены между right><td> и </td> ?
Приведите пожалуйста фрагмент текстового содердимого файла, в котором необходимо найти эти значения.

Дмитрий хотел пойти по этапно...но боюсь заблудить Вас...и отделить себя до конечного результата...
=============================================================================================
Конечная цель заполнить:
таблицу "ААА"
с полем "Ticket"(текст)..."Open Time"(дата)..."id_Type"(словарь)..."Size"(вещ.число)..."Item"..."Price"..."S_L"...
"T_P"..."Close Time"..."Price"..."Commission"..."Taxes"..."Swap"..."Profit"
============================================================================================
кусочек исходного кода:               

(1 строчка)<tr bgcolor=#E0E0E0 align=right><td>[b]1753736490[/b]</td><td nowrap>[b]2016.04.04 09:43:39[/b]</td><td>[b]sell[/b]</td><td class=mspt>[b]0.08[/b]</td><td>[b]eurusd[/b]</td><td style="mso-number-format:0\.0000;">[b]1.1384[/b]</td><td style="mso-number-format:0\.0000;">[b]1.1407[/b]</td><td style="mso-number-format:0\.0000;">[b]1.1318[/b]</td><td class=msdate nowrap>[b]2016.04.06 11:33:07[/b]</td><td style="mso-number-format:0\.0000;">[b]1.1348[/b]</td><td class=mspt>[b]0.00[/b]</td><td class=mspt>[b]0.00[/b]</td><td class=mspt>[b]0.34[/b]</td><td class=mspt>[b]28.80[/b]</td></tr>
(2 строчка)<tr align=right><td>[b]1753980937[/b] </td><td nowrap>[b]2016.04.06 11:26:35[/b] </td><td>[b]buy[/b]</td><td class=mspt>[b]4.00[/b] </td><td>[b]eurusd[/b] </td><td style="mso-number-format:0\.0000;">[b]1.1342[/b] </td><td style="mso-number-format:0\.0000;">[b]1.1343[/b] </td><td style="mso-number-format:0\.0000;">[b]1.1451[/b] </td><td class=msdate nowrap>[b]2016.04.06 23:32:09[/b] </td><td style="mso-number-format:0\.0000;">[b]1.1395[/b] </td><td class=mspt>[b]0.00[/b] </td><td class=mspt>[b]0.00[/b] </td><td class=mspt>[b]0.00[/b] </td><td class=mspt>[b]2 120.00[/b] </td></tr>
(3 строчка)<tr bgcolor=#E0E0E0 align=right><td>[b]1754057548[/b]</td><td nowrap>[b]2016.04.06 22:13:23[/b]</td><td>[b]sell[/b]</td><td class=mspt>[b]10.00[/b]</td><td>[b]eurusd[/b]</td><td style="mso-number-format:0\.0000;">[b]1.1404[/b]</td><td style="mso-number-format:0\.0000;">[b]1.1403[/b]</td><td style="mso-number-format:0\.0000;">[b]1.1310[/b]</td><td class=msdate nowrap>[b]2016.04.07 02:22:11[/b]</td><td style="mso-number-format:0\.0000;">[b]1.1399[/b]</td><td class=mspt>[b]0.00[/b]</td><td class=mspt>[b]0.00[/b]</td><td class=mspt>[b]66.00[/b]</td><td class=mspt>[b]500.00[/b]</td></tr>

исходник HTML прилагается...прошу прощения жирным хотел выделить нужные значения!

Дмитрий...СПАСИБО...это РАБОТАЕТ!!!
следующий этап..........
Загрузив в Memo1 (исходный код)...ищем значения, которые равны требованию...вставляем вMemo2

procedure Form1_Button2_OnClick (Sender: string; var Cancel: boolean);

var
    OpenDialog: TOpenDialog;

    SourceVerNumber : String;     //Исходный код страницы для поиска номера версий
    PosVerNumber1 : Integer;      //Положение начало тега перед номером версии
    PosVerNumber2 : Integer;      //Положение начала метки после номера версии
begin

        OpenDialog := TOpenDialog.Create(Form1);
     if OpenDialog.Execute then
        Form1.Memo1.Lines.LoadFromFile(OpenDialog.FileName);
begin

    {1}    SourceVerNumber := Form1.Memo1.Text;
    {2}    PosVerNumber1 := Pos('right><td>',SourceVerNumber);
    {3}    Delete (SourceVerNumber,1,PosVerNumber1-1+Length('right><td>'));
    {4}    PosVerNumber2 := Pos('</td>',SourceVerNumber);
    {5}    Delete (SourceVerNumber,PosVernumber2,1000000);
    {6}    SourceVerNumber := Trim(SourceVernumber);
    {7}    Form1.Memo2.Text := SourceVerNumber;

        end;
        OpenDialog.Free;
end;

   
ПРОБЛЕМА в том, что в Memo2 попадает только одно значение(самое первое)...,
а в исходном коде их много...
я понимаю...надо прописать переменные...но методом "народного-тыка" у меня не получилось!
Дмитрий помогите дописать скрипт, что бы в Memo2 попали все значения
найденные в исходном коде?????????????????????????????????????????????????????????
                                                                              С Уважением и Благодарностью Роман!!!

Друзья всем привет!!!
Попытался самостоятельно разобраться с функция s := HTTPGet('url страницы');,
но как говориться не хватает знаний...
=====================================================================================
УМЫСЕЛ конечного результата:
по клику Button1.....
открываем OpenDialog...выбрав документ...импортируем его в:
ТАБЛИЦУ "ААА" с полем "Ticket"(текст), "Open_Time"(дата/время), "id_Type"(словарь), "Size"(вещ.число)
P.S. документ прилагается...
======================================================================================
получить готовый результат...был бы конечно подарком судьбы (на форуме всего один пример
у mathmathou..."http://myvisualdatabase.com/forum/viewtopic.php?id=1851",
но как я понимаю не всё так просто и быстро...
ИСХОДЯ ИЗ ЭТОГО ПРОШУ ПОМОЩИ...как минимум:
вытащить исходный код документа в Memo1...

procedure Form1_Button1_OnClick (Sender: string; var Cancel: boolean);
var
   OpenDialog: TOpenDialog;
   s,n :string;

begin
     OpenDialog := TOpenDialog.Create(Form1);
     if OpenDialog.Execute then
begin
      n:= OpenDialog.FileName;  //узнать адресс папки
      s :=HTTPGet(n);
      Form1.Memo1.Text:= (s);
end;
end;

Проблема в том, что файл только открывается Yandex Browser, а находиться может на диске "С", в папке MVD или на флешке...
т.е.подключения интернета нет...вобщем выдаёт ошибку:  "Unknown Protocol"
Подскажите где ошибка в скрипте????????????????????????????????????
                                                            С Уважением и Благодарностью Роман!!!

9

(18 replies, posted in Russian)

Друзья.....
у кого нибудь есть проект-пример на ПОСТ №17 или ПОСТ №18???
С Уважением и Благодарностью Роман!!!

10

(54 replies, posted in Russian)

Ребята мой случай безнадёжен???
пост № 51

11

(54 replies, posted in Russian)

Всем привет!!!
iacovlogicaВам отдельное огромное спасибо!!!
Вы на протяжении моей проблемки стараетесь помочь!!!
Друзья помогите заполнить вычисл.поле???(что бы подсчитать: сумму  id_CCC за дату)
------------таблица "ААА"--------------------------------------------------               
id_CCC  |     data_A     |  profit     |     (вычислительное поле)                                                       
----------------------------------------------------------------------------------                 
    111      |  01.01.2016  |    10      |                  30
    111      |  01.01.2016  |    20      |                  30
    222     |  01.01.2016  |     5      |                   5     
    111      |  02.01.2016  |    7      |                   7
    222      |  02.01.2016  |    6      |                  17
    222      |  02.01.2016  |   11      |                  17
    333     |  03.01.2016  |    50      |                   50   
С Уважением и Благодарностью Роман!!!
тест-проект прилагается...

12

(54 replies, posted in Russian)

Доброго времени суток!!!
В первую очередь хочу выразить огромную благодарность форумчаном,
которые в меру своих знаний подсказывают или предлагают свой способ
решения той или иной возникшей проблемки...
Это действительно круто ощущать поддержку не только со стороны Дмитрия,
но и со стороны таких же пользователей MVD!!!
(Дмитрий возможно было бы здорово, если бы мы могли делать
респект-благодарности за оказанную помощь форумчаном!!!
Факт на лицо + вам побольше "свободного" времени на продвижения MVD!!!)
==================================================================
О...много-уважаемый iacovlogica огромное Вам СПАСИБО!!!
Вы действительно меня правильно поняли + Ваше решение задачи
помогло мне!!!
==================================================================
А теперь то, за чем мы здесь собрались.................................................
имею вычислительное поле, где запись:

(SELECT COUNT(*) FROM AAA ln WHERE ln.data_A = AAA.data_A AND id_CCC = CCC.id)

Это работает !!!ОК!!!
Проблема:
Как только меняю

(SELECT TOTAL(AAA.profit) FROM AAA ln WHERE ln.data_A = AAA.data_A AND id_CCC = CCC.id)

1.) данные из таблицы ААА отображают в TableGrid1, только одна строчка!!!
     хотя используя "DateTimePicker1" и "ComboBox1" при поиске считает правильно,
    но опять же в TableGrid1  отображается  только одна строчка!!!
ВОПРОС:
Друзья подскажите, что надо исправить в  вычислительном поле...
чтобы отображались все записи из таблицы ААА как положено, а не одна строчка???

13

(54 replies, posted in Russian)

Доброго времени суток!!!
1.)

DriveSoft
попробуйте так
(SELECT TOTAL(AAA.profit) FROM AAA WHERE AAA.id_CCC=BBB.id_CCC AND BBB.data_В=AAA.data_A)

Дмитрий при таком запросе в вычислительном поле получаю все "нули"...
т.е. получается моё поле не видит условие "BBB.data_В=AAA.data_A"
как ещё можно написать,что бы условие с датой осталось такое же???
ИСХОДНИК ПОСТ№40
2.)

(SELECT TOTAL(AAA.profit) FROM AAA  WHERE ?????????????????????)

это вычислительное поле
Вопрос: что надо дописать чтоб получить сумму за дату???
------------таблица "ААА"--------------------------------------------------               
id_CCC  |     data_A     |  profit     |     (вычислительное поле)                                                       
----------------------------------------------------------------------------------                 
    111      |  01.01.2016  |   10      |                  35
    111      |  01.01.2016  |   20      |                  35 
    222     |  01.01.2016  |     5      |                  35     
    111      |  02.01.2016  |   50      |                   50

С Уважением и Благодарностью Роман!!!

14

(54 replies, posted in Russian)

Огромное Вам спасибо iacovlogica!!!
Но мне хотелось это сделать через вычислительное поле!!!

15

(54 replies, posted in Russian)

DriveSoft
попробуйте так
(SELECT TOTAL(AAA.profit) FROM AAA WHERE AAA.id_CCC=BBB.id_CCC AND BBB.data_В=AAA.data_A)

Дмитрий при таком запросе в вычислительном поле получаю все "нули"...
изменял "AND" на "OR", тогда считает общею сумму для id_CCC в таблице "ВВВ" т.е. получается
моё поле не видит условие "BBB.data_В=AAA.data_A"
как ещё можно написать,что бы условие осталось такое же???

(SELECT TOTAL(AAA.profit) FROM AAA WHERE AAA.id_CCC=BBB.id_CCC AND BBB.data_В=AAA.data_A)

ИСХОДНИК ПОСТ№40

16

(54 replies, posted in Russian)

Дмитрий взгляните пожалуйста  пост №40????

17

(54 replies, posted in Russian)

Доброго времени суток!!!
Проблема состоит в следующем:
с формы делаю запись в две таблицы....с проверкой на дубликат в таблица BBB, что имею:
------------таблица "ААА"------------                    ------------таблица "ВВВ"-------------
id_CCC  |     data_A     |  profit                       id_CCC  |     data_В     |  profits (вычислительное поле)                                                       
------------------------------------------                    --------------------------------------------
    111      |  01.01.2016  |   10                             111      |  01.01.2016  |   30    (хотелось бы так)
    111      |  01.01.2016  |   20                             222     |  01.01.2016  |    5      (хотелось бы так)
    222     |  01.01.2016  |     5                             111      |  02.01.2016  |   50     (хотелось бы так)
    111      |  02.01.2016  |   50       
=============================================================================
P./S.   заполнил вычислительное поле...оно считает общею сумму для id_CCC в таблице "ВВВ"

(SELECT TOTAL(AAA.profit) FROM AAA WHERE AAA.id_CCC=CCC.id)

   
ВОПРОС:
Что надо дописать в  вычислительное поле,что бы оно считало
общею сумму у "data_A"  с такой же датой "data_В" для id_CCC в таблице "ВВВ"...   

                                             С Уважением и Благодарностью Роман!!!

Доброго времени суток!!!
Дмитрий..., а у Вас нету пример - проекта...на пост №2...???

19

(9 replies, posted in Russian)

Ура!!!! заработало!!!
Благодарю Вас Xexrby Tdutybq!!!

20

(9 replies, posted in Russian)

Приветствую Xexrby Tdutyb !!!
Благодарю за внимание..., НО....
ваш скрипт делает DateTimePicker1 не видимый-видимый,
А надо !!!!!!!!!!!!!!!!!!
при клике на Button1 открыть, показать встроенный календарь DateTimePicker???

21

(9 replies, posted in Russian)

Как можно при клике на Button1 открыть и показать встроенный календарь DateTimePicker???

22

(23 replies, posted in Russian)

Доброго времени суток!!!
в своём SQL запросе по клику на битон получаю результат...из таблицы!!!

SELECT DISTINCT Centre.score,
strftime('%d.%m.%Y',base.dateone) as dateone,
TOTAL(profitss)
FROM base
LEFT OUTER JOIN Centre ON Centre.id=base.id_Centre
WHERE
(CASE WHEN {ComboBox1}=-1 THEN 1=1 ELSE Centre.id={ComboBox1} END)
GROUP BY base.dateone, base.id_Centre

Это работает!!! ОК!!!
ВОПРОС:
1.) Что и где надо дописать, что б считало в гриде в первой колонке строчки 1,2,3,4,5...и.т.(конечного результата)
2.) свой SQL запросе по клику на битон получаю результат...из таблицы,
а возможно такой же результат получить из Form1.TableGrid1-он отображает данные из этой же таблицы???
(P./S. если я правильно понимаю надо в выше указанный SQL запрос вставить куда-то " Form1.TableGrid1" и указать клетки TableGrid1
или такой результат из грида получить нельзя???)

23

(66 replies, posted in Russian)

Благодарю....Работает!!!

24

(66 replies, posted in Russian)

Доброго времени суток!!!
Дмитрий ниже предоставлен ваш скрипт...
он удаляет выделенные строчки из грида(т.е. из таблицы)

procedure Form1_GridEmployees_OnCellClick (Sender: string; ACol, ARow: Integer);
begin
    if ACol = 0 then
        if Form1.GridEmployees.Cell[ACol,ARow].Color = clWindow then Form1.GridEmployees.Cell[ACol,ARow].Color := clRed
            else Form1.GridEmployees.Cell[ACol,ARow].Color := clWindow;
end;

procedure Form1_Button5_OnClick (Sender: string; var Cancel: boolean);
var
   i,c: integer;
   iColumn: integer;
begin
     iColumn := Form1.GridEmployees.Columns.Count-1; // в последнем столбце хранится идентификатор записи (последний столбец скрыт)

     c := Form1.GridEmployees.RowCount - 1; // число записей в таблице сетки
     for i :=0 to c do
         if Form1.GridEmployees.Cell[0, i].Color = clRed then // если запись выбрана
      SQLExecute('DELETE FROM employees WHERE id = ' + Form1.GridEmployees.Cells[iColumn, i]); //SQL-запрос для выбранной записи
     Form1.GridEmployees.dbUpdate;
end;

Вопрос:
есть возможность не удалять выбранные строчки из грида, а просто не показывать(скрыть их)
                                                   С Уважением и Благодарностью Роман!!!

Ок!!!...вразумил...
может нам Дмитрий на форуме, что то подобное включит...???