Добро пожаловать к нам в гости! Наш сайт посвящён программе NeoBook, с помощью которой вы легко сможете создавать собственные мультимедиа-приложения без необходимости изучать сложные языки программирования! Зарегистрируйтесь, чтобы стать членом нашего сообщества.
Есть такая переменная [[File_Name].[Prodavec].Nazvanie1]Работаю с плагином NeoBookDBPro. Так вот, засада в том, что командой StrIns в поле TextEntry строки не вставляются. Так же после ввода текста ни командой
Текст не удаляется. Плюс ко всему не известно откуда появилась переменная [..Nazvanie1]. Что это за переменная и откуда она взялась? Кто нибудь сможет объяснить? Не хочешь читать хелп?
Так вот, засада в том, что командой StrIns в поле TextEntry строки не вставляются.
Командой "StrIns" в TextEntry ничего не вставляется. Она для вставки чего-либо в строку (!) и сохранения этой строки в переменную.
Quote (mishem)
Текст не удаляется.
Если я правильно понял, текст нужно удалить из TextEntry? Чтобы его удалить, нужно очистить переменную, котороя содержит значение введенное в поле. Т.е. в свойствах TextEntry второе поле "Переменная для содержимого", там- то и должна находится переменная содержащая значение поля.
Quote (mishem)
Плюс ко всему не известно откуда появилась переменная [..Nazvanie1]. Что это за переменная и откуда она взялась? Кто нибудь сможет объяснить?
И как же мы сможем это объяснить? Проек-то ваш а не наш. Скидывайте исходник, может и станет что ясно...
Я не могу подробно изучить ваш проект, т.к. у меня тоже нет плагина NeoBookDBPro и свободного времени. Если вам надо очистить поле, которое содержит переменную [[File_Name].[Prodavec].Nazvanie1], то попробуйте присвоить значение этой переменной какой-нибудь другой простой переменной, например:
mishem, объясните пожалуйста по подробней, что вам нужно. Очистить поле? Какое именно? Вот тогда мы постараемся вам помочь...
Первое. Из переменной [[File_Name].[Prodavec].Nazvanie1] при вводе текста в нее нужно что бы он копировался в переменную [[File_Name].[Prodavec].Nazvanie], то есть в поле TextEntry. В саму переменную копирование происходит, так как в таблицу базы данные вносятся. А в поле TextEntry ничего почемуто не отображается. Это почему то происходит именно с такими переменными [[File_Name].[Prodavec].Nazvanie1] , [[File_Name].[Prodavec].Nazvanie] и т.д. Второе. Введенный текст в поле TextEntry переменной [[File_Name].[Prodavec].Nazvanie1] не могу очистить. То же самое , Это почему то происходит именно с такими переменными [[File_Name].[Prodavec].Nazvanie1] , [[File_Name].[Prodavec].Nazvanie] и т.д. Не хочешь читать хелп?
mishem, попробуйте использовать более простые переменные так, как я это описал выше (пост #9). Да и вообще, составные переменные не приветствуются, это уже получается массив, а у вас как я понял нет никакого массива.
Ващето, дбф формат имеет некоторые особенности, изменения в базе наступают не сразу после записи туда значения, при изменении значения, оно не переписывается, а вставляется новая строка. это сделано для возможности отката изменения, команда дбфпак или аналогичная модифицирует базу, удаляя все ранее оставленные фрагменты. Так что подобные команды могут быть выведены в плагине, а могут и нет, так что читайте внимательно хелп по плагину.
Не забывай, я говорю относительно самого формата, а не о конкретной реализации твоего плагина. Судя по тому, что ранее у ребят небыло подобных затруднений, вероятнее всего ты просто не во всем разобрался.
Судя по тому, что ранее у ребят небыло подобных затруднений, вероятнее всего ты просто не во всем разобрался.
Вполне возможно, сижу хелп перечитываю. В NeoBookDB таких проблем не было. А сдесь именно с такими переменными не получается.
Добавлено (27 Август 2009, 19:45) --------------------------------------------- Значит так, с простыми (короткими) переменными все прекрасно вставляется, текст виден. Со сложными все иначе, вставка происходит, но текст не отображается. "Вставка происходит"-тоесть в таблицу базы данных текст добавляется. Видимо составная переменная указывает путь куда нужно вставить.
Развею некоторые заблуждения. База данных - невизуальный объект, это просто определенная структура в файле. То что ты видиш это только визуализация данных, хранящихся в базе. Показывать их можно как угодно, появление изменений в видимом объекте отнюдь не означает что данные легли в базу, о наличии изменений можно судить только считав в визуальный объект строку после ее изменения (освежив ее представление). Правила работы с дбф - навигация осущевствляется следующими методами, переход на запись номер такой то, на первую, на последнюю, на следующую, на предидущую. Добавление записи, вставить пустую запись, перейти на последнюю, она же только что вставленая пустая, записать в нее что надо, для изменения имеющейся перейти к ней и вставить изменения.
Quote (mishem)
Значит так, с простыми (короткими) переменными
Базе до лампады, какие там у тебя переменные, она о них даже не подозревает, ты просто путаешся с нбшным синтаксисом.
Quote (mishem)
Видимо составная переменная указывает путь куда нужно вставить
Для базы есть только один путь - путь к файлу базы, вставляемые данные аргумент соответствующей функции, в дбф все данные храняться в текстовом виде(внутренний формат хранения), есть разные типы полей и функции приведения типов.
Alex3A, Жаль Вы не можете посмотреть исходник. Попробую объяснить по подробней, правда у меня это не очень получается Если я открываю базу с конкретным именем с которым она создавалась , то проблем никаких нет. Автоматически создаются переменные
Code
[PRIHOD.Prihod.Nazvanie] [PRIHOD.Prihod.Kolvo] [PRIHOD.Prihod.Cena] и т.д
И поля ввода текста TextEntry, TextEntry1, TextEntry2 и т.д. Когда я щелкаю по таблице, активное поле например [PRIHOD.Prihod.Nazvanie] автоматически отображается в поле ввода с переменной [PRIHOD.Prihod.Nazvanie]
Во втором случае, когда у меня нет еще определенного файла базы и он будет создан после. Создаются переменные
Code
[[File_Name].[Prodavec].Nazvanie] [[File_Name].[Prodavec].Kolvo] [[File_Name].[Prodavec].Cena] и т.д.
И поля ввода текста TextEntry3, TextEntry4, TextEntry5 и т.д. Когда я щелкаю по таблице, то активное поле например [[File_Name].[Prodavec].Nazvanie] уже автоматически не отображается в поле ввода с переменной[[File_Name].[Prodavec].Nazvanie] Но если я ввожу текст в поле ввода с переменной[[File_Name].[Prodavec].Nazvanie] и нажимаю добавить. текст добавляется в переменную. Пробовал просто посмотреть что происходит с переменными [File_Name] и [Prodavec], где [File_Name]=имя файла, [Prodavec]=имя таблицы. Когда переменные не заключены в [], [File_Name][Prodavec] все имена отображаются, если же [[File_Name][Prodavec]] так, поле остается пустым. Думал как присвоить в поле текста ввода переменной [[File_Name].[Prodavec].Nazvanie] переменную [имя файла.имя таблицы.Nazvanie] так и не придумал. Если заранее зная имя файла и имя таблицы пишешь такую переменную, то все отображается прекрасно. Не пинайте если опять не смог объяснить
Добавлено (28 Август 2009, 13:06) ---------------------------------------------
Если я открываю базу с конкретным именем с которым она создавалась
Я так понял вам надо программно открыть БД? Т.е. файл БД будет менятся в программе и его можно будет выбирать?
Quote (mishem)
Пробовал просто посмотреть что происходит с переменными [File_Name] и [Prodavec], где [File_Name]=имя файла, [Prodavec]=имя таблицы.
Вот тут по подробней. [Prodavec] это наверно не имя таблицы, а скорее всего имя прямоугольника, в котором будет отображена таблица. У вас ведь прямоугольник не будет менять свое имя, значит использовать переменную тут ни к чему... Попробуйте для текстового поля задать переменную [[File_Name].Prihod.Nazvanie], если я конечно правильно все понял. И при открытии таблицы такде, в поле "Table" напишите Prihod а не [Prodavec].
Я так понял вам надо программно открыть БД? Т.е. файл БД будет менятся в программе и его можно будет выбирать?
Да
Quote (Bodi)
Вот тут по подробней. [Prodavec] это наверно не имя таблицы, а скорее всего имя прямоугольника, в котором будет отображена таблица.
Нет, именно имя таблицы. В одном файле базы данных, можно создать несколько таблиц с разными именами. Это одно из многих приемуществ в плагине NeoBookDBPro.
Нет, именно имя таблицы. В одном файле базы данных, можно создать несколько таблиц с разными именами. Это одно из многих приемуществ в плагине NeoBookDBPro.
Ага, понятно.
А вы пробовали присваивать значение переменной [[File_Name].[Prodavec].Nazvanie] какой нибудь одной переменной, напремер [VAR], а потом уже выводить в текстовое поле, так как я описывал это выше? Мне кажется что вся проблема заключается именно в этом, текстовое поле отказывается выводить сложную переменную...
mishem, скачайте этот плагин с офф-сайта и установите. Там, вместе с ним, устанавливаются примеры проектов. Кажется один из примеров это то, что вам нужно, если я не ошибаюсь