Добро пожаловать к нам в гости! Наш сайт посвящён программе NeoBook, с помощью которой вы легко сможете создавать собственные мультимедиа-приложения без необходимости изучать сложные языки программирования! Зарегистрируйтесь, чтобы стать членом нашего сообщества.
Да сдесь больше не в плагине, а в самой переменной загвоздка. А как решить ее, не пойму. Как назначить команду таблице? Если она открывается в Rectangle, а у него нет возможности назначить команду Не хочешь читать хелп?
mishem, не могли бы сделать простенький пример, просто я никогда не работал в НБ с БД, пример любой, но только именно с той проблемой, поковыряюсь может что нарою
Что такое сложная переменная? Или это твое собственное толкование? Это что просто длинное имя, объект, структура, а может ссылка на что то? Потом, каждое поле в базе имеет свой тип данных и максимальный размер, которые определяються при создании таблицы. Если это формат дбф, то каждый файл содержит одну таблицу. В адо одбс имеется понятие алиас, вот через эту х..ню, и возможно логическое восприятие как одной базы с несколькими таблицами, если ты работаеш не с дбф а с мелкософтовым форматом, то там действительно в одном файле куча таблиц.
Quote (mishem)
А как воплотить эту команду когда я щелкаю по полям таблицы?
Обычно, у объектов имеються свойства и события, клик, даблклик, стартедит, ендедит, в этих обработчиках и вставляються значения в таблицу - свойство целлс. Но вставить текст в таблицу не равносильно заниесению этих данных в базу. Соответственно, ты должен занести данные в базу и прочитать их заново в таблицу, или записать в таблицу и сохранить в базе. То есть тут подразумевается выполнение двух разных операций, но привязанных к одному событию - изменению данных. Что бы ячейка таблицы вела себя как поле ввода, необходимо назначить ей текст контроль,то есть указать в соответствующем свойстве имя елемента эдит. Смотри в примерах использующих таблицы. В прочем о таких тонкостях лучше спроси тех кто работал стаблицами в нб.
Добавлено (28 Август 2009, 17:17) ---------------------------------------------
Quote (mishem)
Если она открывается в Rectangle
Что бы не морочить себе помидоры, сначала попробуй втавлять\менять данные из простого поля ввода.
Что бы не морочить себе помидоры, сначала попробуй втавлять\менять данные из простого поля ввода.
Это я и делаю
Quote (Alex3A)
Что такое сложная переменная? Или это твое собственное толкование?
Толкование мое, а мож прочитал где, не помню. Утверждать не хочу. Пример. Сложная переменная [[File_Name].[Prodavec].Kolvo] Alex3A, Выше я старался объяснить, что не получается.
Добавлено (28 Август 2009, 18:19) --------------------------------------------- sp3d,
Quote (sp3d)
mishem, не могли бы сделать простенький пример,
Хотел на скорую руку сделать, не успеваю, ехать надо. На следующей неделе приеду, мож тогда.
Quote (sp3d)
просто я никогда не работал в НБ с БД
А Вы попробуйте, просто вместо ID базы и имени таблицы вставьте переменные. Не хочешь читать хелп?
да у меня не получается создать БД-файл, я работал только с мускулами, но там через сервер, как создать локальную БД-файл незнаю, ладно подождем приезда
Добавлено (28 Август 2009, 19:40) --------------------------------------------- для чего нужен ReportDesigner.exe?!
Судя по названию, генератор форм отчетов, весьма распространенная и нужная штука, позволяющая самому определять форму отчета. Ну конечно применяется исключительно для дела, для баловства интереса не представляет.
Quote (mishem)
Сложная переменная [[File_Name].[Prodavec].Kolvo] Alex3A, Выше я старался объяснить, что не получается.
Судя по всему запись, рекорд, с синтаксисом нб я не знаком, выведи ее в лабел, это может быть или ссылка на элемент структуры записи, очевидно количество, или сложение трех текстовых переменных, имени файла+имя поля+количество. Если это структура, то принимающая функция должна знать ее формат, тоесть она должна быть описана в плагине, толкать туда че тебе вздумается нельзя, таким образом передается ссылка на что то, то есть грубо говоря адрес. И принимающей стороне надо знать как устроено то что ты ей пихаеш, тогда она знает что первый элемент это то то, следующий начинается там то и так далее. У каждой функции\процедуры есть определенный перечень аргументов с которыми она работает, если ты ей сунеш не то что она от тебя ожидает, в лучшем случе она тебя проигнорирует. В общем то это является елементарными понятиями, которые надо просто изучить, а уж затем что то делать. Судя по названиям, это все таки структура, ибо в ином случае, строка, носит безсмысленный характер, строку типа моябаза.дбфпродавец120 хрен кто поймет. Было бы понятнее если бы ты приводил не только свою "сложную" переменную, но и функцию в которой ты ее используеш. В таких вещах имеют значения всякие скобочки, именно они указывают на то что ты даеш.
Запылилась тема Работаю с БД, действительно есть такая досада, что "многослойные" переменые вида [[ПеРеМ1].[ПеРеМ2].пЕрЕм3] не работают в НБ на вывод этой переменной например в обекте Text или TextEntry. Эта переменная появляется в результате конекта с БД и обработки запроса на вывод значения ячейки в таблице и имеет вид как писал выше mishem, [[имя БД].[имя таблицы].ячейка таблицы] Доступно только для пользователей находится исходник и экзешник, в Прикреплении исходник, т.с. для наглядности Доступно только для пользователей mishem, сабж то решил?
не работают в НБ на вывод этой переменной например в обекте Text или TextEntry.
ну да, такие переменные в этих обьектах не воспринимаются, мало того, вроде как не воспринимаются даже переменные массива типа [Var[x]]. Приходится присваивать такие переменные в обычную переменную setvar "[Text]" "[Var[x]]" и показывать уже [Text]. Как задавать вопросы
ну фиг с этим объектом, но такая переменая не выводится в Text, т.е. пока обрабатывается в подпрограмме, то НБ есно понимает такую переменую, стоит ее вывести, то нифига Нашел пока один выход выводить через SetObjectCaption, но код раздувается
Добавлено (11 Март 2010, 16:47) --------------------------------------------- тут еще одна напасть, запустил скомпилированый проект на другом компе и при открытии и закрытии проги вылетает эта месага:
как с ней боротся, у меня на машине ничего не вылетает
ну видимо плагин зарегистрировать. ктото уже спрашивал про это в соотв. теме, вроде говорили что в реестр надо чтото записать на др. машине
ну это я так и понял, непонятно нахрена автор плагина такое замутил?! А если кто то купит и захочет сделать комерческую версию, тогда все машины этими записями
Добавлено (11 Март 2010, 17:02) ---------------------------------------------
Quote (DEMBEL)
что не получается так как я написал выше
конечно получается, но мне желательно именно в такой - как оно есть. А то с этой констукцией ростет сам код, а его в проекте дофика уже и так...
Добавлено (11 Март 2010, 17:09) --------------------------------------------- и еще такой вопрос, например я использую в проекте БД Access, а на машине где запускаю проект не установлен этот самый Access, проект не будет работать?!
Сообщение отредактировано Сергей - Чт, 11 Марта 2010, 17:02
эмм... тут не столько от наличия Access зависит... если используешь плаг DBPro, то он вроде должен сам предоставлять механизм доступа к .mdb базе, посмотри в справке к плагу (напр. плаг NeoAccess требует предустановленного интерфейса доступа, ну или хотя бы того же MS Access), ну и проверь лично, на всякий случай... Как задавать вопросы
ну это я так и понял, непонятно нахрена автор плагина такое замутил?! А если кто то купит и захочет сделать комерческую версию, тогда все машины этими записями
Автор плагина (сама NeoSoft) ничего не замутил! Тут все сделано как обычно, т.е. как и положено. Вообще очень странно, что приходится, уже в который раз, опять возвращаться к этой теме с NeoBookDBPro. Самое первое упоминание о регистрации плагина здесь. Остальные сообщения можно найти на форуме, но уже из вышеуказанного будет ясно "что и почем".
Quote (Сергей)
проект не будет работать?!
По идее, связи с Access нет никакой. Нужно просто попробовать... - А вам какую операционку поставить - экспи, семерку или висту? - Это ты сейчас о чем? - Олег Георгиевич, вам какой компьютер хотелось бы - молодежный или надежный? - Ну, конечно, надежный! - Вот, значит - экспи, без вопросов! Сейчас сделаем...
(Улицы разбитых фонарей, сезон 10, серия 17)
Единственная инновация Windows 8 это - Metro, чтобы дебилы по иконкам не промахивались!
При модном втюхе модоподдающимся начинает нравиться
dbf. Другие форматы этот плагин не воспринимает. Иначе нужен плагин NeoBookDPPro. - А вам какую операционку поставить - экспи, семерку или висту? - Это ты сейчас о чем? - Олег Георгиевич, вам какой компьютер хотелось бы - молодежный или надежный? - Ну, конечно, надежный! - Вот, значит - экспи, без вопросов! Сейчас сделаем...
(Улицы разбитых фонарей, сезон 10, серия 17)
Единственная инновация Windows 8 это - Metro, чтобы дебилы по иконкам не промахивались!
При модном втюхе модоподдающимся начинает нравиться
тут еще одна напасть, запустил скомпилированый проект на другом компе и при открытии и закрытии проги вылетает эта месага:
Я решил эту проблему у себя путем добавления ключа в реестр при установке программы. Если добавлять при первом запуске, то сначала все равно будет выскакивать такое окно.
Quote (Сергей)
интересно, а какой тогда надо выбрать формат бд, чтоб 100% везде работал, если использовать плагин NeoBookDB
Так он по моему только с DBF работает. Или я ошибаюсь? Проверить просто пока не могу. Винду только переустановил. Не хочешь читать хелп?
на машине где запускаю проект не установлен этот самый Access, проект не будет работать?!
Ответ: Будет! При условии что установлена Windows98 и выше
Открытие базы данных Microsoft Access (MDB) Самым легко переносимым типом базы данных, является Microsoft Access и его проще всего конфигурировать. Как писалось выше, большинство других типов баз данных требует, чтобы на Вашем компьютере были установлены специальное программное обеспечение и драйверы. Драйверы доступа к данным Microsoft (MDAC), требующиеся для баз данных Microsoft Access, включены в Windows, начиная с Windows98. Поэтому публикации, которые развертывают базы данных Microsoft Access, будут работоспособны на всех компьютерах, кроме очень старых компьютеров с Windows 95. (Пользователи Windows 95 могут закачать MDAC бесплатно с вебсайта Microsoft, если это нужно).
Добавлено (11 Март 2010, 19:34) --------------------------------------------- А на главный вопрос ответ нет, Нб почемуто не понимает такую переменную, что очень жаль
А на главный вопрос ответ нет, Нб почемуто не понимает такую переменную, что очень жаль
NB все воспринимает, просто следует учитывать то, что текстовой объект отображает содержимое по имени переменной, которое в случае применения конструкции типа [Var[x]], будет постоянно меняться. Составные имена переменных можно исползовать для расчетов, но не для вывода конечной информации, что и происходит в текстовом объекте. Попробуйте применить к текстовому объекту команду RefreshObject. Собственно, вариант SetVar "[Text]" "[Var[x]]" ничуть не обременителен!
Та же ситуация и с плагинами, т.к. внутри себя плагин работает с собственными (внутренними) переменными, а имена необушных переменных использует только для вывода конечного результата как, своего рода, "адресаты". Потому, "отправлять" в плагин данные через составные переменные ещё можно (о правильности позаботится необушный интерпретатор), но получать "ответ" - НЕТ!
- А вам какую операционку поставить - экспи, семерку или висту? - Это ты сейчас о чем? - Олег Георгиевич, вам какой компьютер хотелось бы - молодежный или надежный? - Ну, конечно, надежный! - Вот, значит - экспи, без вопросов! Сейчас сделаем...
(Улицы разбитых фонарей, сезон 10, серия 17)
Единственная инновация Windows 8 это - Metro, чтобы дебилы по иконкам не промахивались!
При модном втюхе модоподдающимся начинает нравиться
Peter, что то как то все рамазано, я бы [Var[x]], назвал просто массивом, а не переменной, потом во многих языках, есть понятия передача переменной по ссылке и по значению, и что такое эти ваши страшные составные переменные, это структуры или просто составное имя? Некоторые языки, в частности и ммв скрипт, позволяют манипуляции с именами, превращая содержимое переменной в ссылку на объект. Тут очевидно у вас происодят путаницы в виду оригинального синтаксиса, []используются и как делимитеры индекса массивов так и в иных синтаксических построениях. Да, и че там с массивами, одномерные, многомерные, ассоциативные?
Ни в языке NB, ни в языке ММВ, нет такого понятия "ссылка на объект". Это все - игра слов, и не более. В обоих случаях, интерпретатор тупо работает с символьным данными, и на основе их анализа определяет ЧТО и КАК дальше делать. Пример [Var[x]] это всего лишь пример. Можно написАть и иначе [Var][х], смысл совсем иной, но и в том и в другом случае интерпретатор будет оперировать содержимым переменных, а не их именами! Для интерпретатора: [Var] - означает получить содержимое переменной по имени (или присвоить значение переменной по имени), а просто Var (т.е. без скобок) - всего лишь "слово". Говоря проще, когда интерпретатору попадается конструкция типа [Var] (в нашем понимании - ИМЯ ПЕРЕМЕННОЙ), он лезет в эту переменную, и вытягивает её содержимое. Именно по-этому в тех местах скриптов, где нужно использовать именно ИМЯ переменной, вместо скобок применяются их ASCII коды, т.е. #91 и #93. Т.е. если написАть в скрипте [#91]Var[#93], то это уже будет обозначать (для интерпретатора) использовать ИМЯ переменной, а не её содержимое.
Добавлено (12 Март 2010, 18:21) ---------------------------------------------
Quote (DEMBEL)
массивы? могут быть и многомерными, например [Var[x]_[y]]
Нет, не могут! Это будет такой же обыкновенный массив, но с чуть иным синтаксисом описания членов массива.
Добавлено (12 Март 2010, 18:52) ---------------------------------------------
Quote (Alex3A)
что такое эти ваши страшные составные переменные, это структуры или просто составное имя? Некоторые языки, в частности и ммв скрипт, позволяют манипуляции с именами, превращая содержимое переменной в ссылку на объект.
Вот теперь, прочитав ещё раз, я понял суть вопроса. Ну тупой я такой, ну что поделаешь! Фактически, мы всегда имеем дело со ссылками на какие-то ячейки пямяти, в которых хранится определенная информация. Эти ячейки и называются "переменными", т.к. мы можем менять их содержимое. В NB все так и происходит - когда мы пишем [Test], для интерпретатора это означает: забраться в область пямяти (переменную) с именем Test, и вытащить от туда инфу. В этом смысле "да" - ссылка. Когда инерпретатору попадется, скажем [Test][n], то он сложит вместе содержимое переменных Test и n в одно целое, и выдаст общий "результат", т.е. если в [Test] содержится "кошка", а в [n] содержится "черная", то мы получим "кошкачерная" Если же написАть [Test[n]], то интерпретатор полезет в переменную, имя которой сложится из содержимого переменной [n] и "слова" Test, т.е. если в n содержится "5", то мы получим новое имя переменной [Test5], а если в n содежится "собака", то мы получим [Testсобака]. - А вам какую операционку поставить - экспи, семерку или висту? - Это ты сейчас о чем? - Олег Георгиевич, вам какой компьютер хотелось бы - молодежный или надежный? - Ну, конечно, надежный! - Вот, значит - экспи, без вопросов! Сейчас сделаем...
(Улицы разбитых фонарей, сезон 10, серия 17)
Единственная инновация Windows 8 это - Metro, чтобы дебилы по иконкам не промахивались!
При модном втюхе модоподдающимся начинает нравиться
Фактически, мы всегда имеем дело со ссылками на какие-то ячейки пямяти,
Это безспорно, структуры, массивы и прочее это только интерпритация ячеек памяти. то есть
Quote (Peter)
Если же написАть [Test[n]],
[Test[5]] и [Test5] одна и та же переменная? А какое же тогда там понятие о массивах? Что значит точка в конструкции [[ПеРеМ1].[ПеРеМ2].пЕрЕм3].
Quote (Peter)
Фактически, мы всегда имеем дело со ссылками на какие-то ячейки пямяти
Ну если что бы было понятней, как это все в памяти, в маш коде, переменная это адрес ячейки, а ссылка это адрес ячейки памяти в которой содержится адрес переменной. Ну это так, грубо говоря, смотря как это воспринимает компилятор, возможно и такое, что фигурирует не адрес переменной а ее значение.
в общем случае, запись [Test[n]] при [n]=5 будет интерпретироваться как [Test5]
Quote (Alex3A)
А какое же тогда там понятие о массивах?
понятия о массивах нет, это просто похоже на именованные таким образом переменные... хотя не совсем, там можно извлечь размер массива, есть такой оператор! Как задавать вопросы