|
|
|
vfp-excel
|
|||
|---|---|---|---|
|
#18+
Использую такой метод записи в Excel s1=strt(kodp+' '+kodas+c9+Cennik.nam_price+c9+allt(str(Cennik.ves_st,10,3))+c9+allt(str(_v,10,3))+c9,'.',',') s2=strt(allt(str(sum_n/_v,10,2))+c9+allt(str(sum_f/_v,10,2))+c9+; allt(str(H0001.rasc/1000*Cennik.ves_st*_normotc*_premi,10,2))+c9+c9+allt(str(ass_buh2.cena1*1.18,10,2)), '.', ',') _cliptext=s1+s2 XlSheet.cells(_baza+__i,1).pastespecial Проблема вот в чем в некоторые поля, например, где Ctnnik.ves_st = 1, в Ex пишется вместо 1 1000 что очень неприятно. Может кто сталкивался? Есть вариант перейти на Addquery, но там надо файлы формировать, а потом устанавливать ширину столбцов. долго получается. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.09.2005, 09:23:36 |
|
||
|
vfp-excel
|
|||
|---|---|---|---|
|
#18+
http://support.microsoft.com/?scid=kb;en-us;252615&spid=7992&sid=global скачай отсюда прогу и посмотри как выполняется форматирование таблицы ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.09.2005, 09:33:27 |
|
||
|
vfp-excel
|
|||
|---|---|---|---|
|
#18+
Скорее всего не 1000 вместо 1, а 1.000 :) Так ты глянь внимательно на формирование строки (там где выделено). s1=strt(kodp+' '+kodas+c9+Cennik.nam_price+c9+allt( str(Cennik.ves_st,10,3) )+c9+allt(str(_v,10,3))+c9,'.',',') ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.09.2005, 09:53:03 |
|
||
|
vfp-excel
|
|||
|---|---|---|---|
|
#18+
AleksMedСкорее всего не 1000 вместо 1, а 1.000 :) Так ты глянь внимательно на формирование строки (там где выделено). s1=strt(kodp+' '+kodas+c9+Cennik.nam_price+c9+allt( str(Cennik.ves_st,10,3) )+c9+allt(str(_v,10,3))+c9,'.',',') Обрати внимание на strt и в ячейке вместо единицы тысяча! и если бы только в целых числах. в ценах почти всегда правильно, но иногда в 1000 раз больше: например цена 39,80 а в Ex 39 800. файл один, цикл один, а в ex один и тот же столбец по разному. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.09.2005, 13:57:10 |
|
||
|
vfp-excel
|
|||
|---|---|---|---|
|
#18+
Смотри что у тебя в региональных настройках компа (разделитель целой и дробной части, разделитель тетрад). Зачем менять "." на "," ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.09.2005, 16:23:18 |
|
||
|
vfp-excel
|
|||
|---|---|---|---|
|
#18+
Проблема не в том, что не определен разделительный знак . или , а в том, что при передаче в Ex одни числа передаются правильно, а другие (иногда) неправильно. из 200-300 записей выбираются определенные поля (количество, цена, считается сумма) и пишутся в Ex. Проблема в том, что 5-10 записях цена или количество оказываются как бы умноженными на 1000. в основном это каксется целых чисел, но иногда и десятичных дробей типа 32,80. а за set point спасибо не подумал. и вообще это уже второй глюк при таком способе заполнения ex. первый уже не помню торопился и быстро перевел на addquery. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.09.2005, 12:57:04 |
|
||
|
vfp-excel
|
|||
|---|---|---|---|
|
#18+
Все то же саме, что тебе уже сказали, но более подробно. Ты формируешь текстовую строку примерно такого вида "123456,789" Это соответсвует формату STR(...,10,3) Посылаешь ее в Excel. А теперь, главный вопрос: как эта символьная строка будет интерпретирована Excel? По умолчанию, все ячейки Excel имеют формат типа General. Это значит, что при получении информации, Excel попытается сам конвертировать полученную строку в тот тип данных, который он считает "правильным". Итак, что он видит? Он видит последовательность цифр, разделенных запятой. Одним из возможных способов интерпретации такой последовательности является следующая: Это число, а запятая - это символ-разделитель троек цифр. Т.е. это примерно такое значение автор1,000 следует читать как 1 000 Что, EXCEL с успехом и выполняет. Как?! Вы этого не хотели? Тогда будьте любезны ПЕРЕД экспортом данных ЯВНО указать Excel в каком формате должны быть данные в его ячейках. Простейший вариант - это указать символьный тип данных для всех ячеек Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. Далее на все это накладываются региональные настройки, установленные на текущем компьютере. Если не ошибаюсь, то EXCEL определяет символы разделители троек цифр, а также целой и дробной части из региональных настроек. Чтобы не мучаться с определением этих настроек следует ПЕРЕД формированием текстовой строки сделать примерно следующее Код: plaintext 1. 2. 3. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.09.2005, 21:17:03 |
|
||
|
|

start [/forum/topic.php?fid=41&gotonew=1&tid=1593566]: |
0ms |
get settings: |
6ms |
get forum list: |
12ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
183ms |
get topic data: |
9ms |
get first new msg: |
4ms |
get forum data: |
2ms |
get page messages: |
37ms |
get tp. blocked users: |
1ms |
| others: | 192ms |
| total: | 450ms |

| 0 / 0 |
