|
|
|
Вопросы по поиску и отчету?
|
|||
|---|---|---|---|
|
#18+
1) В среде DataEnvoirment отчета добавляю три таблицы.( 1 дочерняя). Связь сохраняется только между двумя. Почему? 2)По кнопке поиск хочу сделать выборку. Пишу: IF (thisform.text3.Text!="") SELECT файл.name; FROM бд!файл; WHERE файл.name=thisform.text3.Text; INTO TABLE файл.dbf SELECT файл BROWSE ENDIF и ничего не отображается. Почему? 3) можно ли сделатьтак, чтобы выборка по запросу выводилась сразу в отчет? что для этого написаь? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.04.2007, 23:11 |
|
||
|
Вопросы по поиску и отчету?
|
|||
|---|---|---|---|
|
#18+
Neta1) В среде DataEnvoirment отчета добавляю три таблицы.( 1 дочерняя). Связь сохраняется только между двумя. Почему? Это как? Как именно "не сохраняется"? Neta 2)По кнопке поиск хочу сделать выборку. Пишу: IF (thisform.text3.Text!="") SELECT файл.name; FROM бд!файл; WHERE файл.name=thisform.text3.Text; INTO TABLE файл.dbf SELECT файл BROWSE ENDIF и ничего не отображается. Почему? Любая строка при таком сравнении будет всегда равна пустой строке, поскольку при настройке SET EXACT OFF (это настройка по умолчанию) сравнение идет до истечения символов в более короткой строке. Т.е., в данном случае, сравнение не успеет начаться, как сразу же и закончится. Сравнение символьной строки с пустой строкой так не производится. Для анализа символьного значения на "пустоту" используют функцию EMPTY() Код: plaintext 1. 2. Кстати, надеюсь, Вы понимаете, чем отличается thisform.text3.Text от thisform.text3.Value? Text - это то, что видит пользователь на форме, а Value - это то, что физически будет записано. Это далеко не всегда одно и то же. Кроме того, может и не сработать вот это условие WHERE файл.name=thisform.text3.Text Не потому, что оно не правильное, а потому, что синтаксический анализатор команды Select-SQL воспринимает конструкцию вида AAA.BBB как Имя_Таблицы.Имя_Поля читая ее справа-налево. Поэтому вполне вероятно сообщение об ошибке вроде "Column Text not found". Чтобы этого избежать необходимо присвоить значение переменной памяти и в Select-SQL использовать уже эту переменную Код: plaintext 1. 2. 3. 4. 5. 6. Наконец, если результат запроса нужен для отчета, то нет смысла формировать постоянную таблицу (INTO Table). Логичнее сформировать курсор (временную таблицу) Код: plaintext 1. 2. 3. 4. Neta3) можно ли сделатьтак, чтобы выборка по запросу выводилась сразу в отчет? что для этого написаь? Конечно. Именно так обычно отчеты и строятся. Точнее, отчет все-равно придется делать вручную. Просто источником данных для него будет курсор или таблица, сформированные по результату работы запроса или собственной процедуры. Если отчет формируется в Default DataSession, то просто перед выполнением отчета формируется курсор. А если отчет формируется в Private DataSession, то курсор формируется в методе DataEnvironment.BeforOpenTable() отчета. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.04.2007, 00:34 |
|
||
|
Вопросы по поиску и отчету?
|
|||
|---|---|---|---|
|
#18+
Большое спасибо за ответ. "Поиск" заработал!!!=))) 1)По поводу как не сохраняется связь: В DataEnviroment при расположении туда 3-х таблиц не отображается одна из линии, которая характерезует связь между таблицами. 2) Как сделать так, чтобы при поиске сразу отображался отчет, а не временная таблица. Как сделать для этого отчет? То есть, вот у меня есть отчет, в нем выбраны нужные мне поля из трех разных таблиц, где-то эти поля соединены в одну переменную. Когда я делаю запрос результат его выборки из трех таблиц помещается в одну (временную) и как теперь изменить переменные в отчете, чтобы на те же места выводились переменные из сводной таблицы. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.04.2007, 11:32 |
|
||
|
Вопросы по поиску и отчету?
|
|||
|---|---|---|---|
|
#18+
Neta 1)По поводу как не сохраняется связь: В DataEnviroment при расположении туда 3-х таблиц не отображается одна из линии, которая характерезует связь между таблицами. "Постоянные связи" в контейнере базы данных и "временные связи" в DataEnvironment - это "две большие разницы". У них разные задачи и способы создания. Чем они отличаются, можно посмотреть здесь Связи и отношения между таблицами Если Вы настроили постоянную связь в контейнере базы данных, то на основании этой связи может быть создана временная связь в DataEnvironment, но может и не быть. В общем случае, не имеет никакого значения есть или нет "постоянная связь" в контейнере базы данных к тому, какие "временные связи" будут настроены в DataEnvironment. В DataEnvironment, если необходимо можно настроить или удалить нужные "временные связи". Для этого надо нажать левой клавишей мыши на поле в главной таблице и не отпуская, перетащить указатель мыши на индекс подчиненной. Т.е. связь от поля к индексу. Но, по большому счету, связи в DataEnvironment формы, как правило, только мешают. Приводят к самым разнообразным глюкам и непониманиям. Обычно их как раз удаляют, если они настриваются автоматически. Neta 2) Как сделать так, чтобы при поиске сразу отображался отчет, а не временная таблица. Как сделать для этого отчет? То есть, вот у меня есть отчет, в нем выбраны нужные мне поля из трех разных таблиц, где-то эти поля соединены в одну переменную. Когда я делаю запрос результат его выборки из трех таблиц помещается в одну (временную) и как теперь изменить переменные в отчете, чтобы на те же места выводились переменные из сводной таблицы. Делаете запрос, указав в качестве цели курсор, например INTO CURSOR curReport NOFILTER Затем строите обычный отчет, указывая в качестве источника данных для полей отчета поля из этого самого кусрора. В процессе работы сразу по завершению Select-SQL запускаете готовый отчет. Код: plaintext 1. 2. 3. Т.е. в самом отчете идет ссылка не на поля исходной таблицы, а на поля курсорая, который будет создан перед выполнением отчета. Имя курсора, естесственно, известно заранее, как и имена полей. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.04.2007, 14:37 |
|
||
|
Вопросы по поиску и отчету?
|
|||
|---|---|---|---|
|
#18+
Большое спасибо, запрос в отчет получился. Только небольшая проблема, в отчет выводит результат запроса три раза подряд (одно и тоже). В чем причина? LOCAL lcValue lcValue = thisform.text3.Text IF Empty(m.lcValue)=.F. SELECT DISTINCT файл.name, файл.disk, файл.sost, b.time, b.season, b.country, b.place, b.weather, a.road, a.r_road, a.move, a.prep, a.property, a.type_move; FROM бд!файл INNER JOIN бд!погода b; INNER JOIN бд!препятствия a; ON a.idprep=файл.idprep; ON b.idweather=файл.idweather; WHERE файл.name=m.lcValue; INTO CURSOR curReport NOFILTER REPORT FORM i:\БД\Report\report1.frx TO PRNTER PROMPT PREVIEW ENDIF ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.04.2007, 17:05 |
|
||
|
Вопросы по поиску и отчету?
|
|||
|---|---|---|---|
|
#18+
NetaБольшое спасибо, запрос в отчет получился. Только небольшая проблема, в отчет выводит результат запроса три раза подряд (одно и тоже). В чем причина? Это значит, что вместо курсора отчету назначена другая главная таблица. Т.е. в отчете происходит сканирование не записей полученного курсора, а записей какой-то другой таблицы. Соответсвенно для каждой записи этой "другой" таблицы и выводится одна текущая запись полученного курсора. Надо проверить следующее: 1) Если отчет вызывается из Grid, то первой командой надо увести фокус с Grid на любой другой объект формы. Хотя бы на ту кнопку, по нажатию которой отчет и запускается Код: plaintext 1. 2. 3. 2) Убедится, что в DataEnvironment нет никаких курсоров. А если они необходимы, то в свойствах самого DataEnvironment должно быть пустое значение свойства DataEnvironment.InitialSelectedAlias 3) Теоретически, после выполнения команды Select-SQL текущей должна стать рабочая область того курсора, который формируется в результате этого запроса. Однако на всякий случай лучше это продублировать Код: plaintext 1. 2. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.04.2007, 17:22 |
|
||
|
Вопросы по поиску и отчету?
|
|||
|---|---|---|---|
|
#18+
Спасибо, убрала из DataEnviroment отчета старые таблицы и все стало хорошо =)))) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.04.2007, 17:58 |
|
||
|
Вопросы по поиску и отчету?
|
|||
|---|---|---|---|
|
#18+
REPORT FORM i:\БД\Report\report2.frx TO PRNTER PROMPT PREVIEW Вопрос такой: при просмотре отчета отображается только первая страница, как сделать так, чтобы отображались все или можно было бы листать страницы? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.04.2007, 15:02 |
|
||
|
Вопросы по поиску и отчету?
|
|||
|---|---|---|---|
|
#18+
Все, извините, нашла!!!=)))) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.04.2007, 15:16 |
|
||
|
Вопросы по поиску и отчету?
|
|||
|---|---|---|---|
|
#18+
Прошу прощения, кто-нибудь может мне дать полезный совет, а именно: у меня есть база данных (задание:Таблица 1: код института, название института, фамилия ректора Таблица 2: код института, название специальности, количество принятых на первый курс студентов, количество выпускников. Определить Количество специальностей в каждом институте) в access состоящая из двух таблиц, я сделал 2 формы для каждой таблицы соответственно в visual basic ,добавил DATA , связал ее с таблицами, также расположил нужное количество textbox для отображения в них данных по каждой таблице, а теперь мне нужно Определить Количество специальностей в каждом институте. Кто-нибудь может подсказать как это сделать? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.04.2007, 19:48 |
|
||
|
Вопросы по поиску и отчету?
|
|||
|---|---|---|---|
|
#18+
JaroslavПрошу прощения, кто-нибудь может мне дать полезный совет, а именно: у меня есть база данных (задание:Таблица 1: код института, название института, фамилия ректора Таблица 2: код института, название специальности, количество принятых на первый курс студентов, количество выпускников. Определить Количество специальностей в каждом институте) в access состоящая из двух таблиц, я сделал 2 формы для каждой таблицы соответственно в visual basic ,добавил DATA , связал ее с таблицами, также расположил нужное количество textbox для отображения в них данных по каждой таблице, а теперь мне нужно Определить Количество специальностей в каждом институте. Кто-нибудь может подсказать как это сделать? Код: plaintext ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.04.2007, 08:59 |
|
||
|
Вопросы по поиску и отчету?
|
|||
|---|---|---|---|
|
#18+
Код: plaintext 1. 2. 3. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.04.2007, 09:16 |
|
||
|
Вопросы по поиску и отчету?
|
|||
|---|---|---|---|
|
#18+
Вот такой еще у меня вопрос: есть форма с текстовыми полями (около 15 штук), в которых пользователь задает параметры поиска, соответственно, поле может быть как заполнено, так и пусто. По не пустым полям осуществляеться выборка (запрос). Так вот, можно лм учесть проверку на пустоту в теле самого запроса, то есть обойтись без if (не пустое поле), то запрос... А то вариантов очень много. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.04.2007, 15:59 |
|
||
|
Вопросы по поиску и отчету?
|
|||
|---|---|---|---|
|
#18+
авторТак вот, можно лм учесть проверку на пустоту в теле самого запроса, то есть обойтись без if (не пустое поле), то запрос... А то вариантов очень много. Например так: SELECT <чтото откудато> WHERE IIF(Empty(pole),.t.,pole=table_field) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.04.2007, 16:13 |
|
||
|
Вопросы по поиску и отчету?
|
|||
|---|---|---|---|
|
#18+
Помогите! Вопрос: у меня есть 2 формы: на одной расположен data1 + textboxы в которых отображаются данные из базы данных access, на другой форме одна commandbutton и label7 для вывода в ней данных, по заданному заданию, вот кстати текст к command button :Private Sub Command1_Click() Dim min As Integer Dim i As Integer Dim s As String min = 32000 Data1.Recordset.MoveFirst Do While Not Data1.Recordset.EOF If min > Data1.Recordset.Fields(2).Value Then min = Data1.Recordset.Fields(2).Value s = Data1.Recordset.Fields(1).Value End If Data1.Recordset.MoveNext Loop Label7.Caption = Str(min) + " " + s Data1.Recordset.MoveFirst End Sub Подскажите как ввести сюда связь с data которая находится на другой форме,а то просто программа пишет что Variable not defined ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.04.2007, 22:48 |
|
||
|
Вопросы по поиску и отчету?
|
|||
|---|---|---|---|
|
#18+
NetaВот такой еще у меня вопрос: есть форма с текстовыми полями (около 15 штук), в которых пользователь задает параметры поиска, соответственно, поле может быть как заполнено, так и пусто. По не пустым полям осуществляеться выборка (запрос). Так вот, можно лм учесть проверку на пустоту в теле самого запроса, то есть обойтись без if (не пустое поле), то запрос... А то вариантов очень много. Можно использовать макроподстановку Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.04.2007, 23:09 |
|
||
|
Вопросы по поиску и отчету?
|
|||
|---|---|---|---|
|
#18+
кто-нибудь знает? Вопрос: у меня есть 2 формы: на одной расположен data1 + textboxы в которых отображаются данные из базы данных access, на другой форме одна commandbutton и label7 для вывода в ней данных, по заданному заданию, вот кстати текст к command button :Private Sub Command1_Click() Dim min As Integer Dim i As Integer Dim s As String min = 32000 Data1.Recordset.MoveFirst Do While Not Data1.Recordset.EOF If min > Data1.Recordset.Fields(2).Value Then min = Data1.Recordset.Fields(2).Value s = Data1.Recordset.Fields(1).Value End If Data1.Recordset.MoveNext Loop Label7.Caption = Str(min) + " " + s Data1.Recordset.MoveFirst End Sub Подскажите как ввести сюда связь с data которая находится на другой форме,а то просто программа пишет что Variable not defined .КАК СДЕЛАТЬ связь между двумя этими формами? какой алгоритм? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.04.2007, 16:21 |
|
||
|
Вопросы по поиску и отчету?
|
|||
|---|---|---|---|
|
#18+
Все спасибо я разобрался) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.04.2007, 17:31 |
|
||
|
Вопросы по поиску и отчету?
|
|||
|---|---|---|---|
|
#18+
Кто-нибудь еще знает способы , а именно: у меня есть база данных (задание:Таблица 1: код института, название института, фамилия ректора Таблица 2: код института, название специальности, количество принятых на первый курс студентов, количество выпускников. Определить Количество специальностей в каждом институте) в access состоящая из двух таблиц, я сделал 2 формы для каждой таблицы соответственно в visual basic ,добавил DATA , связал ее с таблицами, также расположил нужное количество textbox для отображения в них данных по каждой таблице, а теперь мне нужно Определить Количество специальностей в каждом институте. Кто-нибудь может подсказать как это сделать но без select? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.04.2007, 22:58 |
|
||
|
Вопросы по поиску и отчету?
|
|||
|---|---|---|---|
|
#18+
Jaroslav Создай новую тему. Не надо "мусорить" в чужих темах. Да и далеко не все читают все подряд. Твой "довесок" могут просто не увидеть. Кстати, ты форумом не ошибся? Это форум по FoxPro, а не по VBA. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.04.2007, 23:40 |
|
||
|
Вопросы по поиску и отчету?
|
|||
|---|---|---|---|
|
#18+
Не могли бы пояснить, что происходит вот в этой строчке: lcFilter = m.lcFilter + " AND MyTab.MyField1="+TransForm(ThisForm.TextBox1.Value) Особенно, что такое "m." и вот здесь: lcSelect = "SELECT * FROM MyTab WHERE "+m.lcFilter ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.05.2007, 12:11 |
|
||
|
Вопросы по поиску и отчету?
|
|||
|---|---|---|---|
|
#18+
если переменная объявлена локальной, то использование префикса m. являестся избыточным корректным и удобным является такой синтаксис Код: plaintext 1. 2. 3. 4. 5. 6. 7. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.05.2007, 09:43 |
|
||
|
Вопросы по поиску и отчету?
|
|||
|---|---|---|---|
|
#18+
alex11100если переменная объявлена локальной, то использование префикса m. являестся избыточным Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. Чтобы "здесь писать, а здесь - не писать" надо иметь достаточно большой опыт. Проще и понятнее, писать везде. Без скидок на "локальность" и "избыточность" ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.05.2007, 13:00 |
|
||
|
Вопросы по поиску и отчету?
|
|||
|---|---|---|---|
|
#18+
2 ВладимирМ прекратите заниматься дурью есть венгерская нотация, ее и нужно придерживаться переменной LOCAL MyField быть не должно!!!!!! должна быть переменная L(тип)имя полей в таблице ln...., lt...., ldD... , быть не должно!!!!! есть свои методы именования (префикс + ...) на дворе 2007 год! есть устоявшиеся правила и принципы, которые облегчают разработку и поддержку. не нужно писать напропалую, нужно думать и облегчать себе и другим жизнь ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.05.2007, 13:10 |
|
||
|
|

start [/forum/topic.php?fid=41&msg=34525798&tid=1589249]: |
0ms |
get settings: |
10ms |
get forum list: |
21ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
188ms |
get topic data: |
9ms |
get forum data: |
2ms |
get page messages: |
66ms |
get tp. blocked users: |
2ms |
| others: | 232ms |
| total: | 538ms |

| 0 / 0 |
